#!/usr/bin/env node
/* eslint-disable */
//prettier-ignore
(() => {
    var ofe = Object.create, Kh = Object.defineProperty, afe = Object.defineProperties,
        Afe = Object.getOwnPropertyDescriptor, lfe = Object.getOwnPropertyDescriptors, cfe = Object.getOwnPropertyNames,
        ME = Object.getOwnPropertySymbols, ufe = Object.getPrototypeOf, gQ = Object.prototype.hasOwnProperty,
        nM = Object.prototype.propertyIsEnumerable;
    var sM = (t, e, r) => e in t ? Kh(t, e, {enumerable: !0, configurable: !0, writable: !0, value: r}) : t[e] = r,
        N = (t, e) => {
            for (var r in e || (e = {})) gQ.call(e, r) && sM(t, r, e[r]);
            if (ME) for (var r of ME(e)) nM.call(e, r) && sM(t, r, e[r]);
            return t
        }, ie = (t, e) => afe(t, lfe(e)), gfe = t => Kh(t, "__esModule", {value: !0});
    var Tr = (t, e) => {
            var r = {};
            for (var i in t) gQ.call(t, i) && e.indexOf(i) < 0 && (r[i] = t[i]);
            if (t != null && ME) for (var i of ME(t)) e.indexOf(i) < 0 && nM.call(t, i) && (r[i] = t[i]);
            return r
        }, ffe = (t, e) => () => (t && (e = t(t = 0)), e),
        w = (t, e) => () => (e || t((e = {exports: {}}).exports, e), e.exports), ft = (t, e) => {
            for (var r in e) Kh(t, r, {get: e[r], enumerable: !0})
        }, hfe = (t, e, r) => {
            if (e && typeof e == "object" || typeof e == "function") for (let i of cfe(e)) !gQ.call(t, i) && i !== "default" && Kh(t, i, {
                get: () => e[i],
                enumerable: !(r = Afe(e, i)) || r.enumerable
            });
            return t
        }, ge = t => hfe(gfe(Kh(t != null ? ofe(ufe(t)) : {}, "default", t && t.__esModule && "default" in t ? {
            get: () => t.default,
            enumerable: !0
        } : {value: t, enumerable: !0})), t);
    var DM = w((ZXe, SM) => {
        SM.exports = kM;
        kM.sync = Dfe;
        var xM = require("fs");

        function Rfe(t, e) {
            var r = e.pathExt !== void 0 ? e.pathExt : process.env.PATHEXT;
            if (!r || (r = r.split(";"), r.indexOf("") !== -1)) return !0;
            for (var i = 0; i < r.length; i++) {
                var n = r[i].toLowerCase();
                if (n && t.substr(-n.length).toLowerCase() === n) return !0
            }
            return !1
        }

        function PM(t, e, r) {
            return !t.isSymbolicLink() && !t.isFile() ? !1 : Rfe(e, r)
        }

        function kM(t, e, r) {
            xM.stat(t, function (i, n) {
                r(i, i ? !1 : PM(n, t, e))
            })
        }

        function Dfe(t, e) {
            return PM(xM.statSync(t), t, e)
        }
    });
    var TM = w(($Xe, RM) => {
        RM.exports = FM;
        FM.sync = Ffe;
        var NM = require("fs");

        function FM(t, e, r) {
            NM.stat(t, function (i, n) {
                r(i, i ? !1 : LM(n, e))
            })
        }

        function Ffe(t, e) {
            return LM(NM.statSync(t), e)
        }

        function LM(t, e) {
            return t.isFile() && Nfe(t, e)
        }

        function Nfe(t, e) {
            var r = t.mode, i = t.uid, n = t.gid, s = e.uid !== void 0 ? e.uid : process.getuid && process.getuid(),
                o = e.gid !== void 0 ? e.gid : process.getgid && process.getgid(), a = parseInt("100", 8),
                l = parseInt("010", 8), c = parseInt("001", 8), u = a | l,
                g = r & c || r & l && n === o || r & a && i === s || r & u && s === 0;
            return g
        }
    });
    var MM = w((tZe, OM) => {
        var eZe = require("fs"), ZE;
        process.platform === "win32" || global.TESTING_WINDOWS ? ZE = DM() : ZE = TM();
        OM.exports = xQ;
        xQ.sync = Lfe;

        function xQ(t, e, r) {
            if (typeof e == "function" && (r = e, e = {}), !r) {
                if (typeof Promise != "function") throw new TypeError("callback not provided");
                return new Promise(function (i, n) {
                    xQ(t, e || {}, function (s, o) {
                        s ? n(s) : i(o)
                    })
                })
            }
            ZE(t, e || {}, function (i, n) {
                i && (i.code === "EACCES" || e && e.ignoreErrors) && (i = null, n = !1), r(i, n)
            })
        }

        function Lfe(t, e) {
            try {
                return ZE.sync(t, e || {})
            } catch (r) {
                if (e && e.ignoreErrors || r.code === "EACCES") return !1;
                throw r
            }
        }
    });
    var qM = w((rZe, KM) => {
        var zu = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys",
            UM = require("path"), Tfe = zu ? ";" : ":", HM = MM(),
            GM = t => Object.assign(new Error(`not found: ${t}`), {code: "ENOENT"}), jM = (t, e) => {
                let r = e.colon || Tfe,
                    i = t.match(/\//) || zu && t.match(/\\/) ? [""] : [...zu ? [process.cwd()] : [], ...(e.path || process.env.PATH || "").split(r)],
                    n = zu ? e.pathExt || process.env.PATHEXT || ".EXE;.CMD;.BAT;.COM" : "", s = zu ? n.split(r) : [""];
                return zu && t.indexOf(".") !== -1 && s[0] !== "" && s.unshift(""), {pathEnv: i, pathExt: s, pathExtExe: n}
            }, YM = (t, e, r) => {
                typeof e == "function" && (r = e, e = {}), e || (e = {});
                let {pathEnv: i, pathExt: n, pathExtExe: s} = jM(t, e), o = [], a = c => new Promise((u, g) => {
                    if (c === i.length) return e.all && o.length ? u(o) : g(GM(t));
                    let f = i[c], h = /^".*"$/.test(f) ? f.slice(1, -1) : f, p = UM.join(h, t),
                        m = !h && /^\.[\\\/]/.test(t) ? t.slice(0, 2) + p : p;
                    u(l(m, c, 0))
                }), l = (c, u, g) => new Promise((f, h) => {
                    if (g === n.length) return f(a(u + 1));
                    let p = n[g];
                    HM(c + p, {pathExt: s}, (m, y) => {
                        if (!m && y) if (e.all) o.push(c + p); else return f(c + p);
                        return f(l(c, u, g + 1))
                    })
                });
                return r ? a(0).then(c => r(null, c), r) : a(0)
            }, Ofe = (t, e) => {
                e = e || {};
                let {pathEnv: r, pathExt: i, pathExtExe: n} = jM(t, e), s = [];
                for (let o = 0; o < r.length; o++) {
                    let a = r[o], l = /^".*"$/.test(a) ? a.slice(1, -1) : a, c = UM.join(l, t),
                        u = !l && /^\.[\\\/]/.test(t) ? t.slice(0, 2) + c : c;
                    for (let g = 0; g < i.length; g++) {
                        let f = u + i[g];
                        try {
                            if (HM.sync(f, {pathExt: n})) if (e.all) s.push(f); else return f
                        } catch (h) {
                        }
                    }
                }
                if (e.all && s.length) return s;
                if (e.nothrow) return null;
                throw GM(t)
            };
        KM.exports = YM;
        YM.sync = Ofe
    });
    var WM = w((iZe, PQ) => {
        "use strict";
        var JM = (t = {}) => {
            let e = t.env || process.env;
            return (t.platform || process.platform) !== "win32" ? "PATH" : Object.keys(e).reverse().find(i => i.toUpperCase() === "PATH") || "Path"
        };
        PQ.exports = JM;
        PQ.exports.default = JM
    });
    var XM = w((nZe, zM) => {
        "use strict";
        var _M = require("path"), Mfe = qM(), Kfe = WM();

        function VM(t, e) {
            let r = t.options.env || process.env, i = process.cwd(), n = t.options.cwd != null,
                s = n && process.chdir !== void 0 && !process.chdir.disabled;
            if (s) try {
                process.chdir(t.options.cwd)
            } catch (a) {
            }
            let o;
            try {
                o = Mfe.sync(t.command, {path: r[Kfe({env: r})], pathExt: e ? _M.delimiter : void 0})
            } catch (a) {
            } finally {
                s && process.chdir(i)
            }
            return o && (o = _M.resolve(n ? t.options.cwd : "", o)), o
        }

        function Ufe(t) {
            return VM(t) || VM(t, !0)
        }

        zM.exports = Ufe
    });
    var ZM = w((sZe, DQ) => {
        "use strict";
        var RQ = /([()\][%!^"`<>&|;, *?])/g;

        function Hfe(t) {
            return t = t.replace(RQ, "^$1"), t
        }

        function Gfe(t, e) {
            return t = `${t}`, t = t.replace(/(\\*)"/g, '$1$1\\"'), t = t.replace(/(\\*)$/, "$1$1"), t = `"${t}"`, t = t.replace(RQ, "^$1"), e && (t = t.replace(RQ, "^$1")), t
        }

        DQ.exports.command = Hfe;
        DQ.exports.argument = Gfe
    });
    var eK = w((oZe, $M) => {
        "use strict";
        $M.exports = /^#!(.*)/
    });
    var rK = w((aZe, tK) => {
        "use strict";
        var jfe = eK();
        tK.exports = (t = "") => {
            let e = t.match(jfe);
            if (!e) return null;
            let [r, i] = e[0].replace(/#! ?/, "").split(" "), n = r.split("/").pop();
            return n === "env" ? i : i ? `${n} ${i}` : n
        }
    });
    var nK = w((AZe, iK) => {
        "use strict";
        var FQ = require("fs"), Yfe = rK();

        function qfe(t) {
            let e = 150, r = Buffer.alloc(e), i;
            try {
                i = FQ.openSync(t, "r"), FQ.readSync(i, r, 0, e, 0), FQ.closeSync(i)
            } catch (n) {
            }
            return Yfe(r.toString())
        }

        iK.exports = qfe
    });
    var AK = w((lZe, sK) => {
        "use strict";
        var Jfe = require("path"), oK = XM(), aK = ZM(), Wfe = nK(), zfe = process.platform === "win32",
            _fe = /\.(?:com|exe)$/i, Vfe = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;

        function Xfe(t) {
            t.file = oK(t);
            let e = t.file && Wfe(t.file);
            return e ? (t.args.unshift(t.file), t.command = e, oK(t)) : t.file
        }

        function Zfe(t) {
            if (!zfe) return t;
            let e = Xfe(t), r = !_fe.test(e);
            if (t.options.forceShell || r) {
                let i = Vfe.test(e);
                t.command = Jfe.normalize(t.command), t.command = aK.command(t.command), t.args = t.args.map(s => aK.argument(s, i));
                let n = [t.command].concat(t.args).join(" ");
                t.args = ["/d", "/s", "/c", `"${n}"`], t.command = process.env.comspec || "cmd.exe", t.options.windowsVerbatimArguments = !0
            }
            return t
        }

        function $fe(t, e, r) {
            e && !Array.isArray(e) && (r = e, e = null), e = e ? e.slice(0) : [], r = Object.assign({}, r);
            let i = {command: t, args: e, options: r, file: void 0, original: {command: t, args: e}};
            return r.shell ? i : Zfe(i)
        }

        sK.exports = $fe
    });
    var uK = w((cZe, lK) => {
        "use strict";
        var NQ = process.platform === "win32";

        function LQ(t, e) {
            return Object.assign(new Error(`${e} ${t.command} ENOENT`), {
                code: "ENOENT",
                errno: "ENOENT",
                syscall: `${e} ${t.command}`,
                path: t.command,
                spawnargs: t.args
            })
        }

        function ehe(t, e) {
            if (!NQ) return;
            let r = t.emit;
            t.emit = function (i, n) {
                if (i === "exit") {
                    let s = cK(n, e, "spawn");
                    if (s) return r.call(t, "error", s)
                }
                return r.apply(t, arguments)
            }
        }

        function cK(t, e) {
            return NQ && t === 1 && !e.file ? LQ(e.original, "spawn") : null
        }

        function the(t, e) {
            return NQ && t === 1 && !e.file ? LQ(e.original, "spawnSync") : null
        }

        lK.exports = {hookChildProcess: ehe, verifyENOENT: cK, verifyENOENTSync: the, notFoundError: LQ}
    });
    var MQ = w((uZe, _u) => {
        "use strict";
        var gK = require("child_process"), TQ = AK(), OQ = uK();

        function fK(t, e, r) {
            let i = TQ(t, e, r), n = gK.spawn(i.command, i.args, i.options);
            return OQ.hookChildProcess(n, i), n
        }

        function rhe(t, e, r) {
            let i = TQ(t, e, r), n = gK.spawnSync(i.command, i.args, i.options);
            return n.error = n.error || OQ.verifyENOENTSync(n.status, i), n
        }

        _u.exports = fK;
        _u.exports.spawn = fK;
        _u.exports.sync = rhe;
        _u.exports._parse = TQ;
        _u.exports._enoent = OQ
    });
    var pK = w((gZe, hK) => {
        "use strict";

        function ihe(t, e) {
            function r() {
                this.constructor = t
            }

            r.prototype = e.prototype, t.prototype = new r
        }

        function sc(t, e, r, i) {
            this.message = t, this.expected = e, this.found = r, this.location = i, this.name = "SyntaxError", typeof Error.captureStackTrace == "function" && Error.captureStackTrace(this, sc)
        }

        ihe(sc, Error);
        sc.buildMessage = function (t, e) {
            var r = {
                literal: function (c) {
                    return '"' + n(c.text) + '"'
                }, class: function (c) {
                    var u = "", g;
                    for (g = 0; g < c.parts.length; g++) u += c.parts[g] instanceof Array ? s(c.parts[g][0]) + "-" + s(c.parts[g][1]) : s(c.parts[g]);
                    return "[" + (c.inverted ? "^" : "") + u + "]"
                }, any: function (c) {
                    return "any character"
                }, end: function (c) {
                    return "end of input"
                }, other: function (c) {
                    return c.description
                }
            };

            function i(c) {
                return c.charCodeAt(0).toString(16).toUpperCase()
            }

            function n(c) {
                return c.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\0/g, "\\0").replace(/\t/g, "\\t").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/[\x00-\x0F]/g, function (u) {
                    return "\\x0" + i(u)
                }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (u) {
                    return "\\x" + i(u)
                })
            }

            function s(c) {
                return c.replace(/\\/g, "\\\\").replace(/\]/g, "\\]").replace(/\^/g, "\\^").replace(/-/g, "\\-").replace(/\0/g, "\\0").replace(/\t/g, "\\t").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/[\x00-\x0F]/g, function (u) {
                    return "\\x0" + i(u)
                }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (u) {
                    return "\\x" + i(u)
                })
            }

            function o(c) {
                return r[c.type](c)
            }

            function a(c) {
                var u = new Array(c.length), g, f;
                for (g = 0; g < c.length; g++) u[g] = o(c[g]);
                if (u.sort(), u.length > 0) {
                    for (g = 1, f = 1; g < u.length; g++) u[g - 1] !== u[g] && (u[f] = u[g], f++);
                    u.length = f
                }
                switch (u.length) {
                    case 1:
                        return u[0];
                    case 2:
                        return u[0] + " or " + u[1];
                    default:
                        return u.slice(0, -1).join(", ") + ", or " + u[u.length - 1]
                }
            }

            function l(c) {
                return c ? '"' + n(c) + '"' : "end of input"
            }

            return "Expected " + a(t) + " but " + l(e) + " found."
        };

        function nhe(t, e) {
            e = e !== void 0 ? e : {};
            var r = {}, i = {Start: MA}, n = MA, s = function (C) {
                    return C || []
                }, o = function (C, Q, F) {
                    return [{command: C, type: Q}].concat(F || [])
                }, a = function (C, Q) {
                    return [{command: C, type: Q || ";"}]
                }, l = function (C) {
                    return C
                }, c = ";", u = Ee(";", !1), g = "&", f = Ee("&", !1), h = function (C, Q) {
                    return Q ? {chain: C, then: Q} : {chain: C}
                }, p = function (C, Q) {
                    return {type: C, line: Q}
                }, m = "&&", y = Ee("&&", !1), b = "||", S = Ee("||", !1), k = function (C, Q) {
                    return Q ? ie(N({}, C), {then: Q}) : C
                }, T = function (C, Q) {
                    return {type: C, chain: Q}
                }, Y = "|&", j = Ee("|&", !1), Z = "|", J = Ee("|", !1), re = "=", ee = Ee("=", !1), A = function (C, Q) {
                    return {name: C, args: [Q]}
                }, oe = function (C) {
                    return {name: C, args: []}
                }, le = "(", X = Ee("(", !1), O = ")", L = Ee(")", !1), pe = function (C, Q) {
                    return {type: "subshell", subshell: C, args: Q}
                }, Ce = "{", Oe = Ee("{", !1), te = "}", se = Ee("}", !1), be = function (C, Q) {
                    return {type: "group", group: C, args: Q}
                }, he = function (C, Q) {
                    return {type: "command", args: Q, envs: C}
                }, Fe = function (C) {
                    return {type: "envs", envs: C}
                }, Ue = function (C) {
                    return C
                }, xe = function (C) {
                    return C
                }, Se = /^[0-9]/, de = _e([["0", "9"]], !1, !1), V = function (C, Q, F) {
                    return {type: "redirection", subtype: Q, fd: C !== null ? parseInt(C) : null, args: [F]}
                }, Qe = ">>", ce = Ee(">>", !1), fe = ">&", gt = Ee(">&", !1), Ht = ">", Mt = Ee(">", !1), mi = "<<<",
                Gt = Ee("<<<", !1), Qr = "<&", Ti = Ee("<&", !1), Vs = "<", Un = Ee("<", !1), Hn = function (C) {
                    return {type: "argument", segments: [].concat(...C)}
                }, vr = function (C) {
                    return C
                }, Gn = "$'", gs = Ee("$'", !1), ya = "'", kA = Ee("'", !1), Ru = function (C) {
                    return [{type: "text", text: C}]
                }, fs = '""', xA = Ee('""', !1), wa = function () {
                    return {type: "text", text: ""}
                }, Fu = '"', PA = Ee('"', !1), DA = function (C) {
                    return C
                }, Sr = function (C) {
                    return {type: "arithmetic", arithmetic: C, quoted: !0}
                }, jl = function (C) {
                    return {type: "shell", shell: C, quoted: !0}
                }, Nu = function (C) {
                    return ie(N({type: "variable"}, C), {quoted: !0})
                }, So = function (C) {
                    return {type: "text", text: C}
                }, Lu = function (C) {
                    return {type: "arithmetic", arithmetic: C, quoted: !1}
                }, Sh = function (C) {
                    return {type: "shell", shell: C, quoted: !1}
                }, kh = function (C) {
                    return ie(N({type: "variable"}, C), {quoted: !1})
                }, ae = function (C) {
                    return {type: "glob", pattern: C}
                }, Oi = /^[^']/, ko = _e(["'"], !0, !1), jn = function (C) {
                    return C.join("")
                }, Tu = /^[^$"]/, vt = _e(["$", '"'], !0, !1), Yl = `\\
`, Yn = Ee(`\\
`, !1), hs = function () {
                    return ""
                }, ps = "\\", pt = Ee("\\", !1), xo = /^[\\$"`]/, lt = _e(["\\", "$", '"', "`"], !1, !1),
                mn = function (C) {
                    return C
                }, v = "\\a", Tt = Ee("\\a", !1), Ou = function () {
                    return "a"
                }, ql = "\\b", xh = Ee("\\b", !1), Ph = function () {
                    return "\b"
                }, Dh = /^[Ee]/, Rh = _e(["E", "e"], !1, !1), Fh = function () {
                    return ""
                }, G = "\\f", yt = Ee("\\f", !1), RA = function () {
                    return "\f"
                }, $i = "\\n", Jl = Ee("\\n", !1), $e = function () {
                    return `
`
                }, Ba = "\\r", Mu = Ee("\\r", !1), kE = function () {
                    return "\r"
                }, Nh = "\\t", xE = Ee("\\t", !1), gr = function () {
                    return "	"
                }, qn = "\\v", Wl = Ee("\\v", !1), Lh = function () {
                    return "\v"
                }, Xs = /^[\\'"?]/, ba = _e(["\\", "'", '"', "?"], !1, !1), En = function (C) {
                    return String.fromCharCode(parseInt(C, 16))
                }, Me = "\\x", Ku = Ee("\\x", !1), zl = "\\u", Zs = Ee("\\u", !1), _l = "\\U", FA = Ee("\\U", !1),
                Uu = function (C) {
                    return String.fromCodePoint(parseInt(C, 16))
                }, Hu = /^[0-7]/, Qa = _e([["0", "7"]], !1, !1), va = /^[0-9a-fA-f]/,
                it = _e([["0", "9"], ["a", "f"], ["A", "f"]], !1, !1), Po = ot(), NA = "-", Vl = Ee("-", !1), $s = "+",
                Xl = Ee("+", !1), PE = ".", Th = Ee(".", !1), Gu = function (C, Q, F) {
                    return {type: "number", value: (C === "-" ? -1 : 1) * parseFloat(Q.join("") + "." + F.join(""))}
                }, Oh = function (C, Q) {
                    return {type: "number", value: (C === "-" ? -1 : 1) * parseInt(Q.join(""))}
                }, DE = function (C) {
                    return N({type: "variable"}, C)
                }, Zl = function (C) {
                    return {type: "variable", name: C}
                }, RE = function (C) {
                    return C
                }, ju = "*", LA = Ee("*", !1), Lr = "/", FE = Ee("/", !1), eo = function (C, Q, F) {
                    return {type: Q === "*" ? "multiplication" : "division", right: F}
                }, to = function (C, Q) {
                    return Q.reduce((F, U) => N({left: F}, U), C)
                }, Yu = function (C, Q, F) {
                    return {type: Q === "+" ? "addition" : "subtraction", right: F}
                }, TA = "$((", R = Ee("$((", !1), q = "))", me = Ee("))", !1), Ge = function (C) {
                    return C
                }, Te = "$(", Xe = Ee("$(", !1), Et = function (C) {
                    return C
                }, Rt = "${", Jn = Ee("${", !1), _b = ":-", PO = Ee(":-", !1), DO = function (C, Q) {
                    return {name: C, defaultValue: Q}
                }, Vb = ":-}", RO = Ee(":-}", !1), FO = function (C) {
                    return {name: C, defaultValue: []}
                }, Xb = ":+", NO = Ee(":+", !1), LO = function (C, Q) {
                    return {name: C, alternativeValue: Q}
                }, Zb = ":+}", TO = Ee(":+}", !1), OO = function (C) {
                    return {name: C, alternativeValue: []}
                }, $b = function (C) {
                    return {name: C}
                }, MO = "$", KO = Ee("$", !1), UO = function (C) {
                    return e.isGlobPattern(C)
                }, HO = function (C) {
                    return C
                }, eQ = /^[a-zA-Z0-9_]/, tQ = _e([["a", "z"], ["A", "Z"], ["0", "9"], "_"], !1, !1), rQ = function () {
                    return M()
                }, iQ = /^[$@*?#a-zA-Z0-9_\-]/,
                nQ = _e(["$", "@", "*", "?", "#", ["a", "z"], ["A", "Z"], ["0", "9"], "_", "-"], !1, !1),
                GO = /^[(){}<>$|&; \t"']/,
                qu = _e(["(", ")", "{", "}", "<", ">", "$", "|", "&", ";", " ", "	", '"', "'"], !1, !1),
                sQ = /^[<>&; \t"']/, oQ = _e(["<", ">", "&", ";", " ", "	", '"', "'"], !1, !1), NE = /^[ \t]/,
                LE = _e([" ", "	"], !1, !1), B = 0, He = 0, OA = [{line: 1, column: 1}], d = 0, E = [], I = 0, D;
            if ("startRule" in e) {
                if (!(e.startRule in i)) throw new Error(`Can't start parsing from rule "` + e.startRule + '".');
                n = i[e.startRule]
            }

            function M() {
                return t.substring(He, B)
            }

            function _() {
                return It(He, B)
            }

            function ne(C, Q) {
                throw Q = Q !== void 0 ? Q : It(He, B), Mi([ut(C)], t.substring(He, B), Q)
            }

            function Be(C, Q) {
                throw Q = Q !== void 0 ? Q : It(He, B), Wn(C, Q)
            }

            function Ee(C, Q) {
                return {type: "literal", text: C, ignoreCase: Q}
            }

            function _e(C, Q, F) {
                return {type: "class", parts: C, inverted: Q, ignoreCase: F}
            }

            function ot() {
                return {type: "any"}
            }

            function wt() {
                return {type: "end"}
            }

            function ut(C) {
                return {type: "other", description: C}
            }

            function nt(C) {
                var Q = OA[C], F;
                if (Q) return Q;
                for (F = C - 1; !OA[F];) F--;
                for (Q = OA[F], Q = {
                    line: Q.line,
                    column: Q.column
                }; F < C;) t.charCodeAt(F) === 10 ? (Q.line++, Q.column = 1) : Q.column++, F++;
                return OA[C] = Q, Q
            }

            function It(C, Q) {
                var F = nt(C), U = nt(Q);
                return {
                    start: {offset: C, line: F.line, column: F.column},
                    end: {offset: Q, line: U.line, column: U.column}
                }
            }

            function ke(C) {
                B < d || (B > d && (d = B, E = []), E.push(C))
            }

            function Wn(C, Q) {
                return new sc(C, null, null, Q)
            }

            function Mi(C, Q, F) {
                return new sc(sc.buildMessage(C, Q), C, Q, F)
            }

            function MA() {
                var C, Q;
                return C = B, Q = Yr(), Q === r && (Q = null), Q !== r && (He = C, Q = s(Q)), C = Q, C
            }

            function Yr() {
                var C, Q, F, U, ue;
                if (C = B, Q = qr(), Q !== r) {
                    for (F = [], U = je(); U !== r;) F.push(U), U = je();
                    F !== r ? (U = Sa(), U !== r ? (ue = ds(), ue === r && (ue = null), ue !== r ? (He = C, Q = o(Q, U, ue), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r)
                } else B = C, C = r;
                if (C === r) if (C = B, Q = qr(), Q !== r) {
                    for (F = [], U = je(); U !== r;) F.push(U), U = je();
                    F !== r ? (U = Sa(), U === r && (U = null), U !== r ? (He = C, Q = a(Q, U), C = Q) : (B = C, C = r)) : (B = C, C = r)
                } else B = C, C = r;
                return C
            }

            function ds() {
                var C, Q, F, U, ue;
                for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                if (Q !== r) if (F = Yr(), F !== r) {
                    for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                    U !== r ? (He = C, Q = l(F), C = Q) : (B = C, C = r)
                } else B = C, C = r; else B = C, C = r;
                return C
            }

            function Sa() {
                var C;
                return t.charCodeAt(B) === 59 ? (C = c, B++) : (C = r, I === 0 && ke(u)), C === r && (t.charCodeAt(B) === 38 ? (C = g, B++) : (C = r, I === 0 && ke(f))), C
            }

            function qr() {
                var C, Q, F;
                return C = B, Q = jO(), Q !== r ? (F = jge(), F === r && (F = null), F !== r ? (He = C, Q = h(Q, F), C = Q) : (B = C, C = r)) : (B = C, C = r), C
            }

            function jge() {
                var C, Q, F, U, ue, De, Ct;
                for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                if (Q !== r) if (F = Yge(), F !== r) {
                    for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                    if (U !== r) if (ue = qr(), ue !== r) {
                        for (De = [], Ct = je(); Ct !== r;) De.push(Ct), Ct = je();
                        De !== r ? (He = C, Q = p(F, ue), C = Q) : (B = C, C = r)
                    } else B = C, C = r; else B = C, C = r
                } else B = C, C = r; else B = C, C = r;
                return C
            }

            function Yge() {
                var C;
                return t.substr(B, 2) === m ? (C = m, B += 2) : (C = r, I === 0 && ke(y)), C === r && (t.substr(B, 2) === b ? (C = b, B += 2) : (C = r, I === 0 && ke(S))), C
            }

            function jO() {
                var C, Q, F;
                return C = B, Q = Wge(), Q !== r ? (F = qge(), F === r && (F = null), F !== r ? (He = C, Q = k(Q, F), C = Q) : (B = C, C = r)) : (B = C, C = r), C
            }

            function qge() {
                var C, Q, F, U, ue, De, Ct;
                for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                if (Q !== r) if (F = Jge(), F !== r) {
                    for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                    if (U !== r) if (ue = jO(), ue !== r) {
                        for (De = [], Ct = je(); Ct !== r;) De.push(Ct), Ct = je();
                        De !== r ? (He = C, Q = T(F, ue), C = Q) : (B = C, C = r)
                    } else B = C, C = r; else B = C, C = r
                } else B = C, C = r; else B = C, C = r;
                return C
            }

            function Jge() {
                var C;
                return t.substr(B, 2) === Y ? (C = Y, B += 2) : (C = r, I === 0 && ke(j)), C === r && (t.charCodeAt(B) === 124 ? (C = Z, B++) : (C = r, I === 0 && ke(J))), C
            }

            function TE() {
                var C, Q, F, U, ue, De;
                if (C = B, Q = tM(), Q !== r) if (t.charCodeAt(B) === 61 ? (F = re, B++) : (F = r, I === 0 && ke(ee)), F !== r) if (U = JO(), U !== r) {
                    for (ue = [], De = je(); De !== r;) ue.push(De), De = je();
                    ue !== r ? (He = C, Q = A(Q, U), C = Q) : (B = C, C = r)
                } else B = C, C = r; else B = C, C = r; else B = C, C = r;
                if (C === r) if (C = B, Q = tM(), Q !== r) if (t.charCodeAt(B) === 61 ? (F = re, B++) : (F = r, I === 0 && ke(ee)), F !== r) {
                    for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                    U !== r ? (He = C, Q = oe(Q), C = Q) : (B = C, C = r)
                } else B = C, C = r; else B = C, C = r;
                return C
            }

            function Wge() {
                var C, Q, F, U, ue, De, Ct, bt, $r, Ei, Cs;
                for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                if (Q !== r) if (t.charCodeAt(B) === 40 ? (F = le, B++) : (F = r, I === 0 && ke(X)), F !== r) {
                    for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                    if (U !== r) if (ue = Yr(), ue !== r) {
                        for (De = [], Ct = je(); Ct !== r;) De.push(Ct), Ct = je();
                        if (De !== r) if (t.charCodeAt(B) === 41 ? (Ct = O, B++) : (Ct = r, I === 0 && ke(L)), Ct !== r) {
                            for (bt = [], $r = je(); $r !== r;) bt.push($r), $r = je();
                            if (bt !== r) {
                                for ($r = [], Ei = Mh(); Ei !== r;) $r.push(Ei), Ei = Mh();
                                if ($r !== r) {
                                    for (Ei = [], Cs = je(); Cs !== r;) Ei.push(Cs), Cs = je();
                                    Ei !== r ? (He = C, Q = pe(ue, $r), C = Q) : (B = C, C = r)
                                } else B = C, C = r
                            } else B = C, C = r
                        } else B = C, C = r; else B = C, C = r
                    } else B = C, C = r; else B = C, C = r
                } else B = C, C = r; else B = C, C = r;
                if (C === r) {
                    for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                    if (Q !== r) if (t.charCodeAt(B) === 123 ? (F = Ce, B++) : (F = r, I === 0 && ke(Oe)), F !== r) {
                        for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                        if (U !== r) if (ue = Yr(), ue !== r) {
                            for (De = [], Ct = je(); Ct !== r;) De.push(Ct), Ct = je();
                            if (De !== r) if (t.charCodeAt(B) === 125 ? (Ct = te, B++) : (Ct = r, I === 0 && ke(se)), Ct !== r) {
                                for (bt = [], $r = je(); $r !== r;) bt.push($r), $r = je();
                                if (bt !== r) {
                                    for ($r = [], Ei = Mh(); Ei !== r;) $r.push(Ei), Ei = Mh();
                                    if ($r !== r) {
                                        for (Ei = [], Cs = je(); Cs !== r;) Ei.push(Cs), Cs = je();
                                        Ei !== r ? (He = C, Q = be(ue, $r), C = Q) : (B = C, C = r)
                                    } else B = C, C = r
                                } else B = C, C = r
                            } else B = C, C = r; else B = C, C = r
                        } else B = C, C = r; else B = C, C = r
                    } else B = C, C = r; else B = C, C = r;
                    if (C === r) {
                        for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                        if (Q !== r) {
                            for (F = [], U = TE(); U !== r;) F.push(U), U = TE();
                            if (F !== r) {
                                for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                                if (U !== r) {
                                    if (ue = [], De = qO(), De !== r) for (; De !== r;) ue.push(De), De = qO(); else ue = r;
                                    if (ue !== r) {
                                        for (De = [], Ct = je(); Ct !== r;) De.push(Ct), Ct = je();
                                        De !== r ? (He = C, Q = he(F, ue), C = Q) : (B = C, C = r)
                                    } else B = C, C = r
                                } else B = C, C = r
                            } else B = C, C = r
                        } else B = C, C = r;
                        if (C === r) {
                            for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                            if (Q !== r) {
                                if (F = [], U = TE(), U !== r) for (; U !== r;) F.push(U), U = TE(); else F = r;
                                if (F !== r) {
                                    for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                                    U !== r ? (He = C, Q = Fe(F), C = Q) : (B = C, C = r)
                                } else B = C, C = r
                            } else B = C, C = r
                        }
                    }
                }
                return C
            }

            function YO() {
                var C, Q, F, U, ue;
                for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                if (Q !== r) {
                    if (F = [], U = OE(), U !== r) for (; U !== r;) F.push(U), U = OE(); else F = r;
                    if (F !== r) {
                        for (U = [], ue = je(); ue !== r;) U.push(ue), ue = je();
                        U !== r ? (He = C, Q = Ue(F), C = Q) : (B = C, C = r)
                    } else B = C, C = r
                } else B = C, C = r;
                return C
            }

            function qO() {
                var C, Q, F;
                for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                if (Q !== r ? (F = Mh(), F !== r ? (He = C, Q = xe(F), C = Q) : (B = C, C = r)) : (B = C, C = r), C === r) {
                    for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                    Q !== r ? (F = OE(), F !== r ? (He = C, Q = xe(F), C = Q) : (B = C, C = r)) : (B = C, C = r)
                }
                return C
            }

            function Mh() {
                var C, Q, F, U, ue;
                for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                return Q !== r ? (Se.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(de)), F === r && (F = null), F !== r ? (U = zge(), U !== r ? (ue = OE(), ue !== r ? (He = C, Q = V(F, U, ue), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C
            }

            function zge() {
                var C;
                return t.substr(B, 2) === Qe ? (C = Qe, B += 2) : (C = r, I === 0 && ke(ce)), C === r && (t.substr(B, 2) === fe ? (C = fe, B += 2) : (C = r, I === 0 && ke(gt)), C === r && (t.charCodeAt(B) === 62 ? (C = Ht, B++) : (C = r, I === 0 && ke(Mt)), C === r && (t.substr(B, 3) === mi ? (C = mi, B += 3) : (C = r, I === 0 && ke(Gt)), C === r && (t.substr(B, 2) === Qr ? (C = Qr, B += 2) : (C = r, I === 0 && ke(Ti)), C === r && (t.charCodeAt(B) === 60 ? (C = Vs, B++) : (C = r, I === 0 && ke(Un))))))), C
            }

            function OE() {
                var C, Q, F;
                for (C = B, Q = [], F = je(); F !== r;) Q.push(F), F = je();
                return Q !== r ? (F = JO(), F !== r ? (He = C, Q = xe(F), C = Q) : (B = C, C = r)) : (B = C, C = r), C
            }

            function JO() {
                var C, Q, F;
                if (C = B, Q = [], F = WO(), F !== r) for (; F !== r;) Q.push(F), F = WO(); else Q = r;
                return Q !== r && (He = C, Q = Hn(Q)), C = Q, C
            }

            function WO() {
                var C, Q;
                return C = B, Q = _ge(), Q !== r && (He = C, Q = vr(Q)), C = Q, C === r && (C = B, Q = Vge(), Q !== r && (He = C, Q = vr(Q)), C = Q, C === r && (C = B, Q = Xge(), Q !== r && (He = C, Q = vr(Q)), C = Q, C === r && (C = B, Q = Zge(), Q !== r && (He = C, Q = vr(Q)), C = Q))), C
            }

            function _ge() {
                var C, Q, F, U;
                return C = B, t.substr(B, 2) === Gn ? (Q = Gn, B += 2) : (Q = r, I === 0 && ke(gs)), Q !== r ? (F = tfe(), F !== r ? (t.charCodeAt(B) === 39 ? (U = ya, B++) : (U = r, I === 0 && ke(kA)), U !== r ? (He = C, Q = Ru(F), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C
            }

            function Vge() {
                var C, Q, F, U;
                return C = B, t.charCodeAt(B) === 39 ? (Q = ya, B++) : (Q = r, I === 0 && ke(kA)), Q !== r ? (F = $ge(), F !== r ? (t.charCodeAt(B) === 39 ? (U = ya, B++) : (U = r, I === 0 && ke(kA)), U !== r ? (He = C, Q = Ru(F), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C
            }

            function Xge() {
                var C, Q, F, U;
                if (C = B, t.substr(B, 2) === fs ? (Q = fs, B += 2) : (Q = r, I === 0 && ke(xA)), Q !== r && (He = C, Q = wa()), C = Q, C === r) if (C = B, t.charCodeAt(B) === 34 ? (Q = Fu, B++) : (Q = r, I === 0 && ke(PA)), Q !== r) {
                    for (F = [], U = zO(); U !== r;) F.push(U), U = zO();
                    F !== r ? (t.charCodeAt(B) === 34 ? (U = Fu, B++) : (U = r, I === 0 && ke(PA)), U !== r ? (He = C, Q = DA(F), C = Q) : (B = C, C = r)) : (B = C, C = r)
                } else B = C, C = r;
                return C
            }

            function Zge() {
                var C, Q, F;
                if (C = B, Q = [], F = _O(), F !== r) for (; F !== r;) Q.push(F), F = _O(); else Q = r;
                return Q !== r && (He = C, Q = DA(Q)), C = Q, C
            }

            function zO() {
                var C, Q;
                return C = B, Q = $O(), Q !== r && (He = C, Q = Sr(Q)), C = Q, C === r && (C = B, Q = eM(), Q !== r && (He = C, Q = jl(Q)), C = Q, C === r && (C = B, Q = cQ(), Q !== r && (He = C, Q = Nu(Q)), C = Q, C === r && (C = B, Q = efe(), Q !== r && (He = C, Q = So(Q)), C = Q))), C
            }

            function _O() {
                var C, Q;
                return C = B, Q = $O(), Q !== r && (He = C, Q = Lu(Q)), C = Q, C === r && (C = B, Q = eM(), Q !== r && (He = C, Q = Sh(Q)), C = Q, C === r && (C = B, Q = cQ(), Q !== r && (He = C, Q = kh(Q)), C = Q, C === r && (C = B, Q = nfe(), Q !== r && (He = C, Q = ae(Q)), C = Q, C === r && (C = B, Q = ife(), Q !== r && (He = C, Q = So(Q)), C = Q)))), C
            }

            function $ge() {
                var C, Q, F;
                for (C = B, Q = [], Oi.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(ko)); F !== r;) Q.push(F), Oi.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(ko));
                return Q !== r && (He = C, Q = jn(Q)), C = Q, C
            }

            function efe() {
                var C, Q, F;
                if (C = B, Q = [], F = VO(), F === r && (Tu.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(vt))), F !== r) for (; F !== r;) Q.push(F), F = VO(), F === r && (Tu.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(vt))); else Q = r;
                return Q !== r && (He = C, Q = jn(Q)), C = Q, C
            }

            function VO() {
                var C, Q, F;
                return C = B, t.substr(B, 2) === Yl ? (Q = Yl, B += 2) : (Q = r, I === 0 && ke(Yn)), Q !== r && (He = C, Q = hs()), C = Q, C === r && (C = B, t.charCodeAt(B) === 92 ? (Q = ps, B++) : (Q = r, I === 0 && ke(pt)), Q !== r ? (xo.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(lt)), F !== r ? (He = C, Q = mn(F), C = Q) : (B = C, C = r)) : (B = C, C = r)), C
            }

            function tfe() {
                var C, Q, F;
                for (C = B, Q = [], F = XO(), F === r && (Oi.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(ko))); F !== r;) Q.push(F), F = XO(), F === r && (Oi.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(ko)));
                return Q !== r && (He = C, Q = jn(Q)), C = Q, C
            }

            function XO() {
                var C, Q, F;
                return C = B, t.substr(B, 2) === v ? (Q = v, B += 2) : (Q = r, I === 0 && ke(Tt)), Q !== r && (He = C, Q = Ou()), C = Q, C === r && (C = B, t.substr(B, 2) === ql ? (Q = ql, B += 2) : (Q = r, I === 0 && ke(xh)), Q !== r && (He = C, Q = Ph()), C = Q, C === r && (C = B, t.charCodeAt(B) === 92 ? (Q = ps, B++) : (Q = r, I === 0 && ke(pt)), Q !== r ? (Dh.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(Rh)), F !== r ? (He = C, Q = Fh(), C = Q) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.substr(B, 2) === G ? (Q = G, B += 2) : (Q = r, I === 0 && ke(yt)), Q !== r && (He = C, Q = RA()), C = Q, C === r && (C = B, t.substr(B, 2) === $i ? (Q = $i, B += 2) : (Q = r, I === 0 && ke(Jl)), Q !== r && (He = C, Q = $e()), C = Q, C === r && (C = B, t.substr(B, 2) === Ba ? (Q = Ba, B += 2) : (Q = r, I === 0 && ke(Mu)), Q !== r && (He = C, Q = kE()), C = Q, C === r && (C = B, t.substr(B, 2) === Nh ? (Q = Nh, B += 2) : (Q = r, I === 0 && ke(xE)), Q !== r && (He = C, Q = gr()), C = Q, C === r && (C = B, t.substr(B, 2) === qn ? (Q = qn, B += 2) : (Q = r, I === 0 && ke(Wl)), Q !== r && (He = C, Q = Lh()), C = Q, C === r && (C = B, t.charCodeAt(B) === 92 ? (Q = ps, B++) : (Q = r, I === 0 && ke(pt)), Q !== r ? (Xs.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(ba)), F !== r ? (He = C, Q = mn(F), C = Q) : (B = C, C = r)) : (B = C, C = r), C === r && (C = rfe()))))))))), C
            }

            function rfe() {
                var C, Q, F, U, ue, De, Ct, bt, $r, Ei, Cs, uQ;
                return C = B, t.charCodeAt(B) === 92 ? (Q = ps, B++) : (Q = r, I === 0 && ke(pt)), Q !== r ? (F = aQ(), F !== r ? (He = C, Q = En(F), C = Q) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.substr(B, 2) === Me ? (Q = Me, B += 2) : (Q = r, I === 0 && ke(Ku)), Q !== r ? (F = B, U = B, ue = aQ(), ue !== r ? (De = zn(), De !== r ? (ue = [ue, De], U = ue) : (B = U, U = r)) : (B = U, U = r), U === r && (U = aQ()), U !== r ? F = t.substring(F, B) : F = U, F !== r ? (He = C, Q = En(F), C = Q) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.substr(B, 2) === zl ? (Q = zl, B += 2) : (Q = r, I === 0 && ke(Zs)), Q !== r ? (F = B, U = B, ue = zn(), ue !== r ? (De = zn(), De !== r ? (Ct = zn(), Ct !== r ? (bt = zn(), bt !== r ? (ue = [ue, De, Ct, bt], U = ue) : (B = U, U = r)) : (B = U, U = r)) : (B = U, U = r)) : (B = U, U = r), U !== r ? F = t.substring(F, B) : F = U, F !== r ? (He = C, Q = En(F), C = Q) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.substr(B, 2) === _l ? (Q = _l, B += 2) : (Q = r, I === 0 && ke(FA)), Q !== r ? (F = B, U = B, ue = zn(), ue !== r ? (De = zn(), De !== r ? (Ct = zn(), Ct !== r ? (bt = zn(), bt !== r ? ($r = zn(), $r !== r ? (Ei = zn(), Ei !== r ? (Cs = zn(), Cs !== r ? (uQ = zn(), uQ !== r ? (ue = [ue, De, Ct, bt, $r, Ei, Cs, uQ], U = ue) : (B = U, U = r)) : (B = U, U = r)) : (B = U, U = r)) : (B = U, U = r)) : (B = U, U = r)) : (B = U, U = r)) : (B = U, U = r)) : (B = U, U = r), U !== r ? F = t.substring(F, B) : F = U, F !== r ? (He = C, Q = Uu(F), C = Q) : (B = C, C = r)) : (B = C, C = r)))), C
            }

            function aQ() {
                var C;
                return Hu.test(t.charAt(B)) ? (C = t.charAt(B), B++) : (C = r, I === 0 && ke(Qa)), C
            }

            function zn() {
                var C;
                return va.test(t.charAt(B)) ? (C = t.charAt(B), B++) : (C = r, I === 0 && ke(it)), C
            }

            function ife() {
                var C, Q, F, U, ue;
                if (C = B, Q = [], F = B, t.charCodeAt(B) === 92 ? (U = ps, B++) : (U = r, I === 0 && ke(pt)), U !== r ? (t.length > B ? (ue = t.charAt(B), B++) : (ue = r, I === 0 && ke(Po)), ue !== r ? (He = F, U = mn(ue), F = U) : (B = F, F = r)) : (B = F, F = r), F === r && (F = B, U = B, I++, ue = rM(), I--, ue === r ? U = void 0 : (B = U, U = r), U !== r ? (t.length > B ? (ue = t.charAt(B), B++) : (ue = r, I === 0 && ke(Po)), ue !== r ? (He = F, U = mn(ue), F = U) : (B = F, F = r)) : (B = F, F = r)), F !== r) for (; F !== r;) Q.push(F), F = B, t.charCodeAt(B) === 92 ? (U = ps, B++) : (U = r, I === 0 && ke(pt)), U !== r ? (t.length > B ? (ue = t.charAt(B), B++) : (ue = r, I === 0 && ke(Po)), ue !== r ? (He = F, U = mn(ue), F = U) : (B = F, F = r)) : (B = F, F = r), F === r && (F = B, U = B, I++, ue = rM(), I--, ue === r ? U = void 0 : (B = U, U = r), U !== r ? (t.length > B ? (ue = t.charAt(B), B++) : (ue = r, I === 0 && ke(Po)), ue !== r ? (He = F, U = mn(ue), F = U) : (B = F, F = r)) : (B = F, F = r)); else Q = r;
                return Q !== r && (He = C, Q = jn(Q)), C = Q, C
            }

            function AQ() {
                var C, Q, F, U, ue, De;
                if (C = B, t.charCodeAt(B) === 45 ? (Q = NA, B++) : (Q = r, I === 0 && ke(Vl)), Q === r && (t.charCodeAt(B) === 43 ? (Q = $s, B++) : (Q = r, I === 0 && ke(Xl))), Q === r && (Q = null), Q !== r) {
                    if (F = [], Se.test(t.charAt(B)) ? (U = t.charAt(B), B++) : (U = r, I === 0 && ke(de)), U !== r) for (; U !== r;) F.push(U), Se.test(t.charAt(B)) ? (U = t.charAt(B), B++) : (U = r, I === 0 && ke(de)); else F = r;
                    if (F !== r) if (t.charCodeAt(B) === 46 ? (U = PE, B++) : (U = r, I === 0 && ke(Th)), U !== r) {
                        if (ue = [], Se.test(t.charAt(B)) ? (De = t.charAt(B), B++) : (De = r, I === 0 && ke(de)), De !== r) for (; De !== r;) ue.push(De), Se.test(t.charAt(B)) ? (De = t.charAt(B), B++) : (De = r, I === 0 && ke(de)); else ue = r;
                        ue !== r ? (He = C, Q = Gu(Q, F, ue), C = Q) : (B = C, C = r)
                    } else B = C, C = r; else B = C, C = r
                } else B = C, C = r;
                if (C === r) {
                    if (C = B, t.charCodeAt(B) === 45 ? (Q = NA, B++) : (Q = r, I === 0 && ke(Vl)), Q === r && (t.charCodeAt(B) === 43 ? (Q = $s, B++) : (Q = r, I === 0 && ke(Xl))), Q === r && (Q = null), Q !== r) {
                        if (F = [], Se.test(t.charAt(B)) ? (U = t.charAt(B), B++) : (U = r, I === 0 && ke(de)), U !== r) for (; U !== r;) F.push(U), Se.test(t.charAt(B)) ? (U = t.charAt(B), B++) : (U = r, I === 0 && ke(de)); else F = r;
                        F !== r ? (He = C, Q = Oh(Q, F), C = Q) : (B = C, C = r)
                    } else B = C, C = r;
                    if (C === r && (C = B, Q = cQ(), Q !== r && (He = C, Q = DE(Q)), C = Q, C === r && (C = B, Q = $l(), Q !== r && (He = C, Q = Zl(Q)), C = Q, C === r))) if (C = B, t.charCodeAt(B) === 40 ? (Q = le, B++) : (Q = r, I === 0 && ke(X)), Q !== r) {
                        for (F = [], U = je(); U !== r;) F.push(U), U = je();
                        if (F !== r) if (U = ZO(), U !== r) {
                            for (ue = [], De = je(); De !== r;) ue.push(De), De = je();
                            ue !== r ? (t.charCodeAt(B) === 41 ? (De = O, B++) : (De = r, I === 0 && ke(L)), De !== r ? (He = C, Q = RE(U), C = Q) : (B = C, C = r)) : (B = C, C = r)
                        } else B = C, C = r; else B = C, C = r
                    } else B = C, C = r
                }
                return C
            }

            function lQ() {
                var C, Q, F, U, ue, De, Ct, bt;
                if (C = B, Q = AQ(), Q !== r) {
                    for (F = [], U = B, ue = [], De = je(); De !== r;) ue.push(De), De = je();
                    if (ue !== r) if (t.charCodeAt(B) === 42 ? (De = ju, B++) : (De = r, I === 0 && ke(LA)), De === r && (t.charCodeAt(B) === 47 ? (De = Lr, B++) : (De = r, I === 0 && ke(FE))), De !== r) {
                        for (Ct = [], bt = je(); bt !== r;) Ct.push(bt), bt = je();
                        Ct !== r ? (bt = AQ(), bt !== r ? (He = U, ue = eo(Q, De, bt), U = ue) : (B = U, U = r)) : (B = U, U = r)
                    } else B = U, U = r; else B = U, U = r;
                    for (; U !== r;) {
                        for (F.push(U), U = B, ue = [], De = je(); De !== r;) ue.push(De), De = je();
                        if (ue !== r) if (t.charCodeAt(B) === 42 ? (De = ju, B++) : (De = r, I === 0 && ke(LA)), De === r && (t.charCodeAt(B) === 47 ? (De = Lr, B++) : (De = r, I === 0 && ke(FE))), De !== r) {
                            for (Ct = [], bt = je(); bt !== r;) Ct.push(bt), bt = je();
                            Ct !== r ? (bt = AQ(), bt !== r ? (He = U, ue = eo(Q, De, bt), U = ue) : (B = U, U = r)) : (B = U, U = r)
                        } else B = U, U = r; else B = U, U = r
                    }
                    F !== r ? (He = C, Q = to(Q, F), C = Q) : (B = C, C = r)
                } else B = C, C = r;
                return C
            }

            function ZO() {
                var C, Q, F, U, ue, De, Ct, bt;
                if (C = B, Q = lQ(), Q !== r) {
                    for (F = [], U = B, ue = [], De = je(); De !== r;) ue.push(De), De = je();
                    if (ue !== r) if (t.charCodeAt(B) === 43 ? (De = $s, B++) : (De = r, I === 0 && ke(Xl)), De === r && (t.charCodeAt(B) === 45 ? (De = NA, B++) : (De = r, I === 0 && ke(Vl))), De !== r) {
                        for (Ct = [], bt = je(); bt !== r;) Ct.push(bt), bt = je();
                        Ct !== r ? (bt = lQ(), bt !== r ? (He = U, ue = Yu(Q, De, bt), U = ue) : (B = U, U = r)) : (B = U, U = r)
                    } else B = U, U = r; else B = U, U = r;
                    for (; U !== r;) {
                        for (F.push(U), U = B, ue = [], De = je(); De !== r;) ue.push(De), De = je();
                        if (ue !== r) if (t.charCodeAt(B) === 43 ? (De = $s, B++) : (De = r, I === 0 && ke(Xl)), De === r && (t.charCodeAt(B) === 45 ? (De = NA, B++) : (De = r, I === 0 && ke(Vl))), De !== r) {
                            for (Ct = [], bt = je(); bt !== r;) Ct.push(bt), bt = je();
                            Ct !== r ? (bt = lQ(), bt !== r ? (He = U, ue = Yu(Q, De, bt), U = ue) : (B = U, U = r)) : (B = U, U = r)
                        } else B = U, U = r; else B = U, U = r
                    }
                    F !== r ? (He = C, Q = to(Q, F), C = Q) : (B = C, C = r)
                } else B = C, C = r;
                return C
            }

            function $O() {
                var C, Q, F, U, ue, De;
                if (C = B, t.substr(B, 3) === TA ? (Q = TA, B += 3) : (Q = r, I === 0 && ke(R)), Q !== r) {
                    for (F = [], U = je(); U !== r;) F.push(U), U = je();
                    if (F !== r) if (U = ZO(), U !== r) {
                        for (ue = [], De = je(); De !== r;) ue.push(De), De = je();
                        ue !== r ? (t.substr(B, 2) === q ? (De = q, B += 2) : (De = r, I === 0 && ke(me)), De !== r ? (He = C, Q = Ge(U), C = Q) : (B = C, C = r)) : (B = C, C = r)
                    } else B = C, C = r; else B = C, C = r
                } else B = C, C = r;
                return C
            }

            function eM() {
                var C, Q, F, U;
                return C = B, t.substr(B, 2) === Te ? (Q = Te, B += 2) : (Q = r, I === 0 && ke(Xe)), Q !== r ? (F = Yr(), F !== r ? (t.charCodeAt(B) === 41 ? (U = O, B++) : (U = r, I === 0 && ke(L)), U !== r ? (He = C, Q = Et(F), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C
            }

            function cQ() {
                var C, Q, F, U, ue, De;
                return C = B, t.substr(B, 2) === Rt ? (Q = Rt, B += 2) : (Q = r, I === 0 && ke(Jn)), Q !== r ? (F = $l(), F !== r ? (t.substr(B, 2) === _b ? (U = _b, B += 2) : (U = r, I === 0 && ke(PO)), U !== r ? (ue = YO(), ue !== r ? (t.charCodeAt(B) === 125 ? (De = te, B++) : (De = r, I === 0 && ke(se)), De !== r ? (He = C, Q = DO(F, ue), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.substr(B, 2) === Rt ? (Q = Rt, B += 2) : (Q = r, I === 0 && ke(Jn)), Q !== r ? (F = $l(), F !== r ? (t.substr(B, 3) === Vb ? (U = Vb, B += 3) : (U = r, I === 0 && ke(RO)), U !== r ? (He = C, Q = FO(F), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.substr(B, 2) === Rt ? (Q = Rt, B += 2) : (Q = r, I === 0 && ke(Jn)), Q !== r ? (F = $l(), F !== r ? (t.substr(B, 2) === Xb ? (U = Xb, B += 2) : (U = r, I === 0 && ke(NO)), U !== r ? (ue = YO(), ue !== r ? (t.charCodeAt(B) === 125 ? (De = te, B++) : (De = r, I === 0 && ke(se)), De !== r ? (He = C, Q = LO(F, ue), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.substr(B, 2) === Rt ? (Q = Rt, B += 2) : (Q = r, I === 0 && ke(Jn)), Q !== r ? (F = $l(), F !== r ? (t.substr(B, 3) === Zb ? (U = Zb, B += 3) : (U = r, I === 0 && ke(TO)), U !== r ? (He = C, Q = OO(F), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.substr(B, 2) === Rt ? (Q = Rt, B += 2) : (Q = r, I === 0 && ke(Jn)), Q !== r ? (F = $l(), F !== r ? (t.charCodeAt(B) === 125 ? (U = te, B++) : (U = r, I === 0 && ke(se)), U !== r ? (He = C, Q = $b(F), C = Q) : (B = C, C = r)) : (B = C, C = r)) : (B = C, C = r), C === r && (C = B, t.charCodeAt(B) === 36 ? (Q = MO, B++) : (Q = r, I === 0 && ke(KO)), Q !== r ? (F = $l(), F !== r ? (He = C, Q = $b(F), C = Q) : (B = C, C = r)) : (B = C, C = r)))))), C
            }

            function nfe() {
                var C, Q, F;
                return C = B, Q = sfe(), Q !== r ? (He = B, F = UO(Q), F ? F = void 0 : F = r, F !== r ? (He = C, Q = HO(Q), C = Q) : (B = C, C = r)) : (B = C, C = r), C
            }

            function sfe() {
                var C, Q, F, U, ue;
                if (C = B, Q = [], F = B, U = B, I++, ue = iM(), I--, ue === r ? U = void 0 : (B = U, U = r), U !== r ? (t.length > B ? (ue = t.charAt(B), B++) : (ue = r, I === 0 && ke(Po)), ue !== r ? (He = F, U = mn(ue), F = U) : (B = F, F = r)) : (B = F, F = r), F !== r) for (; F !== r;) Q.push(F), F = B, U = B, I++, ue = iM(), I--, ue === r ? U = void 0 : (B = U, U = r), U !== r ? (t.length > B ? (ue = t.charAt(B), B++) : (ue = r, I === 0 && ke(Po)), ue !== r ? (He = F, U = mn(ue), F = U) : (B = F, F = r)) : (B = F, F = r); else Q = r;
                return Q !== r && (He = C, Q = jn(Q)), C = Q, C
            }

            function tM() {
                var C, Q, F;
                if (C = B, Q = [], eQ.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(tQ)), F !== r) for (; F !== r;) Q.push(F), eQ.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(tQ)); else Q = r;
                return Q !== r && (He = C, Q = rQ()), C = Q, C
            }

            function $l() {
                var C, Q, F;
                if (C = B, Q = [], iQ.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(nQ)), F !== r) for (; F !== r;) Q.push(F), iQ.test(t.charAt(B)) ? (F = t.charAt(B), B++) : (F = r, I === 0 && ke(nQ)); else Q = r;
                return Q !== r && (He = C, Q = rQ()), C = Q, C
            }

            function rM() {
                var C;
                return GO.test(t.charAt(B)) ? (C = t.charAt(B), B++) : (C = r, I === 0 && ke(qu)), C
            }

            function iM() {
                var C;
                return sQ.test(t.charAt(B)) ? (C = t.charAt(B), B++) : (C = r, I === 0 && ke(oQ)), C
            }

            function je() {
                var C, Q;
                if (C = [], NE.test(t.charAt(B)) ? (Q = t.charAt(B), B++) : (Q = r, I === 0 && ke(LE)), Q !== r) for (; Q !== r;) C.push(Q), NE.test(t.charAt(B)) ? (Q = t.charAt(B), B++) : (Q = r, I === 0 && ke(LE)); else C = r;
                return C
            }

            if (D = n(), D !== r && B === t.length) return D;
            throw D !== r && B < t.length && ke(wt()), Mi(E, d < t.length ? t.charAt(d) : null, d < t.length ? It(d, d + 1) : It(d, d))
        }

        hK.exports = {SyntaxError: sc, parse: nhe}
    });
    var mK = w((vZe, CK) => {
        "use strict";

        function she(t, e) {
            function r() {
                this.constructor = t
            }

            r.prototype = e.prototype, t.prototype = new r
        }

        function ac(t, e, r, i) {
            this.message = t, this.expected = e, this.found = r, this.location = i, this.name = "SyntaxError", typeof Error.captureStackTrace == "function" && Error.captureStackTrace(this, ac)
        }

        she(ac, Error);
        ac.buildMessage = function (t, e) {
            var r = {
                literal: function (c) {
                    return '"' + n(c.text) + '"'
                }, class: function (c) {
                    var u = "", g;
                    for (g = 0; g < c.parts.length; g++) u += c.parts[g] instanceof Array ? s(c.parts[g][0]) + "-" + s(c.parts[g][1]) : s(c.parts[g]);
                    return "[" + (c.inverted ? "^" : "") + u + "]"
                }, any: function (c) {
                    return "any character"
                }, end: function (c) {
                    return "end of input"
                }, other: function (c) {
                    return c.description
                }
            };

            function i(c) {
                return c.charCodeAt(0).toString(16).toUpperCase()
            }

            function n(c) {
                return c.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\0/g, "\\0").replace(/\t/g, "\\t").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/[\x00-\x0F]/g, function (u) {
                    return "\\x0" + i(u)
                }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (u) {
                    return "\\x" + i(u)
                })
            }

            function s(c) {
                return c.replace(/\\/g, "\\\\").replace(/\]/g, "\\]").replace(/\^/g, "\\^").replace(/-/g, "\\-").replace(/\0/g, "\\0").replace(/\t/g, "\\t").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/[\x00-\x0F]/g, function (u) {
                    return "\\x0" + i(u)
                }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (u) {
                    return "\\x" + i(u)
                })
            }

            function o(c) {
                return r[c.type](c)
            }

            function a(c) {
                var u = new Array(c.length), g, f;
                for (g = 0; g < c.length; g++) u[g] = o(c[g]);
                if (u.sort(), u.length > 0) {
                    for (g = 1, f = 1; g < u.length; g++) u[g - 1] !== u[g] && (u[f] = u[g], f++);
                    u.length = f
                }
                switch (u.length) {
                    case 1:
                        return u[0];
                    case 2:
                        return u[0] + " or " + u[1];
                    default:
                        return u.slice(0, -1).join(", ") + ", or " + u[u.length - 1]
                }
            }

            function l(c) {
                return c ? '"' + n(c) + '"' : "end of input"
            }

            return "Expected " + a(t) + " but " + l(e) + " found."
        };

        function ohe(t, e) {
            e = e !== void 0 ? e : {};
            var r = {}, i = {resolution: he}, n = he, s = "/", o = le("/", !1), a = function (de, V) {
                    return {from: de, descriptor: V}
                }, l = function (de) {
                    return {descriptor: de}
                }, c = "@", u = le("@", !1), g = function (de, V) {
                    return {fullName: de, description: V}
                }, f = function (de) {
                    return {fullName: de}
                }, h = function () {
                    return re()
                }, p = /^[^\/@]/, m = X(["/", "@"], !0, !1), y = /^[^\/]/, b = X(["/"], !0, !1), S = 0, k = 0,
                T = [{line: 1, column: 1}], Y = 0, j = [], Z = 0, J;
            if ("startRule" in e) {
                if (!(e.startRule in i)) throw new Error(`Can't start parsing from rule "` + e.startRule + '".');
                n = i[e.startRule]
            }

            function re() {
                return t.substring(k, S)
            }

            function ee() {
                return Oe(k, S)
            }

            function A(de, V) {
                throw V = V !== void 0 ? V : Oe(k, S), be([pe(de)], t.substring(k, S), V)
            }

            function oe(de, V) {
                throw V = V !== void 0 ? V : Oe(k, S), se(de, V)
            }

            function le(de, V) {
                return {type: "literal", text: de, ignoreCase: V}
            }

            function X(de, V, Qe) {
                return {type: "class", parts: de, inverted: V, ignoreCase: Qe}
            }

            function O() {
                return {type: "any"}
            }

            function L() {
                return {type: "end"}
            }

            function pe(de) {
                return {type: "other", description: de}
            }

            function Ce(de) {
                var V = T[de], Qe;
                if (V) return V;
                for (Qe = de - 1; !T[Qe];) Qe--;
                for (V = T[Qe], V = {
                    line: V.line,
                    column: V.column
                }; Qe < de;) t.charCodeAt(Qe) === 10 ? (V.line++, V.column = 1) : V.column++, Qe++;
                return T[de] = V, V
            }

            function Oe(de, V) {
                var Qe = Ce(de), ce = Ce(V);
                return {
                    start: {offset: de, line: Qe.line, column: Qe.column},
                    end: {offset: V, line: ce.line, column: ce.column}
                }
            }

            function te(de) {
                S < Y || (S > Y && (Y = S, j = []), j.push(de))
            }

            function se(de, V) {
                return new ac(de, null, null, V)
            }

            function be(de, V, Qe) {
                return new ac(ac.buildMessage(de, V), de, V, Qe)
            }

            function he() {
                var de, V, Qe, ce;
                return de = S, V = Fe(), V !== r ? (t.charCodeAt(S) === 47 ? (Qe = s, S++) : (Qe = r, Z === 0 && te(o)), Qe !== r ? (ce = Fe(), ce !== r ? (k = de, V = a(V, ce), de = V) : (S = de, de = r)) : (S = de, de = r)) : (S = de, de = r), de === r && (de = S, V = Fe(), V !== r && (k = de, V = l(V)), de = V), de
            }

            function Fe() {
                var de, V, Qe, ce;
                return de = S, V = Ue(), V !== r ? (t.charCodeAt(S) === 64 ? (Qe = c, S++) : (Qe = r, Z === 0 && te(u)), Qe !== r ? (ce = Se(), ce !== r ? (k = de, V = g(V, ce), de = V) : (S = de, de = r)) : (S = de, de = r)) : (S = de, de = r), de === r && (de = S, V = Ue(), V !== r && (k = de, V = f(V)), de = V), de
            }

            function Ue() {
                var de, V, Qe, ce, fe;
                return de = S, t.charCodeAt(S) === 64 ? (V = c, S++) : (V = r, Z === 0 && te(u)), V !== r ? (Qe = xe(), Qe !== r ? (t.charCodeAt(S) === 47 ? (ce = s, S++) : (ce = r, Z === 0 && te(o)), ce !== r ? (fe = xe(), fe !== r ? (k = de, V = h(), de = V) : (S = de, de = r)) : (S = de, de = r)) : (S = de, de = r)) : (S = de, de = r), de === r && (de = S, V = xe(), V !== r && (k = de, V = h()), de = V), de
            }

            function xe() {
                var de, V, Qe;
                if (de = S, V = [], p.test(t.charAt(S)) ? (Qe = t.charAt(S), S++) : (Qe = r, Z === 0 && te(m)), Qe !== r) for (; Qe !== r;) V.push(Qe), p.test(t.charAt(S)) ? (Qe = t.charAt(S), S++) : (Qe = r, Z === 0 && te(m)); else V = r;
                return V !== r && (k = de, V = h()), de = V, de
            }

            function Se() {
                var de, V, Qe;
                if (de = S, V = [], y.test(t.charAt(S)) ? (Qe = t.charAt(S), S++) : (Qe = r, Z === 0 && te(b)), Qe !== r) for (; Qe !== r;) V.push(Qe), y.test(t.charAt(S)) ? (Qe = t.charAt(S), S++) : (Qe = r, Z === 0 && te(b)); else V = r;
                return V !== r && (k = de, V = h()), de = V, de
            }

            if (J = n(), J !== r && S === t.length) return J;
            throw J !== r && S < t.length && te(L()), be(j, Y < t.length ? t.charAt(Y) : null, Y < t.length ? Oe(Y, Y + 1) : Oe(Y, Y))
        }

        CK.exports = {SyntaxError: ac, parse: ohe}
    });
    var lc = w((kZe, Ac) => {
        "use strict";

        function IK(t) {
            return typeof t == "undefined" || t === null
        }

        function ahe(t) {
            return typeof t == "object" && t !== null
        }

        function Ahe(t) {
            return Array.isArray(t) ? t : IK(t) ? [] : [t]
        }

        function lhe(t, e) {
            var r, i, n, s;
            if (e) for (s = Object.keys(e), r = 0, i = s.length; r < i; r += 1) n = s[r], t[n] = e[n];
            return t
        }

        function che(t, e) {
            var r = "", i;
            for (i = 0; i < e; i += 1) r += t;
            return r
        }

        function uhe(t) {
            return t === 0 && Number.NEGATIVE_INFINITY === 1 / t
        }

        Ac.exports.isNothing = IK;
        Ac.exports.isObject = ahe;
        Ac.exports.toArray = Ahe;
        Ac.exports.repeat = che;
        Ac.exports.isNegativeZero = uhe;
        Ac.exports.extend = lhe
    });
    var Zu = w((xZe, yK) => {
        "use strict";

        function tp(t, e) {
            Error.call(this), this.name = "YAMLException", this.reason = t, this.mark = e, this.message = (this.reason || "(unknown reason)") + (this.mark ? " " + this.mark.toString() : ""), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack || ""
        }

        tp.prototype = Object.create(Error.prototype);
        tp.prototype.constructor = tp;
        tp.prototype.toString = function (e) {
            var r = this.name + ": ";
            return r += this.reason || "(unknown reason)", !e && this.mark && (r += " " + this.mark.toString()), r
        };
        yK.exports = tp
    });
    var bK = w((PZe, wK) => {
        "use strict";
        var BK = lc();

        function YQ(t, e, r, i, n) {
            this.name = t, this.buffer = e, this.position = r, this.line = i, this.column = n
        }

        YQ.prototype.getSnippet = function (e, r) {
            var i, n, s, o, a;
            if (!this.buffer) return null;
            for (e = e || 4, r = r || 75, i = "", n = this.position; n > 0 && `\0\r
\x85\u2028\u2029`.indexOf(this.buffer.charAt(n - 1)) === -1;) if (n -= 1, this.position - n > r / 2 - 1) {
                i = " ... ", n += 5;
                break
            }
            for (s = "", o = this.position; o < this.buffer.length && `\0\r
\x85\u2028\u2029`.indexOf(this.buffer.charAt(o)) === -1;) if (o += 1, o - this.position > r / 2 - 1) {
                s = " ... ", o -= 5;
                break
            }
            return a = this.buffer.slice(n, o), BK.repeat(" ", e) + i + a + s + `
` + BK.repeat(" ", e + this.position - n + i.length) + "^"
        };
        YQ.prototype.toString = function (e) {
            var r, i = "";
            return this.name && (i += 'in "' + this.name + '" '), i += "at line " + (this.line + 1) + ", column " + (this.column + 1), e || (r = this.getSnippet(), r && (i += `:
` + r)), i
        };
        wK.exports = YQ
    });
    var li = w((DZe, QK) => {
        "use strict";
        var vK = Zu(),
            ghe = ["kind", "resolve", "construct", "instanceOf", "predicate", "represent", "defaultStyle", "styleAliases"],
            fhe = ["scalar", "sequence", "mapping"];

        function hhe(t) {
            var e = {};
            return t !== null && Object.keys(t).forEach(function (r) {
                t[r].forEach(function (i) {
                    e[String(i)] = r
                })
            }), e
        }

        function phe(t, e) {
            if (e = e || {}, Object.keys(e).forEach(function (r) {
                if (ghe.indexOf(r) === -1) throw new vK('Unknown option "' + r + '" is met in definition of "' + t + '" YAML type.')
            }), this.tag = t, this.kind = e.kind || null, this.resolve = e.resolve || function () {
                return !0
            }, this.construct = e.construct || function (r) {
                return r
            }, this.instanceOf = e.instanceOf || null, this.predicate = e.predicate || null, this.represent = e.represent || null, this.defaultStyle = e.defaultStyle || null, this.styleAliases = hhe(e.styleAliases || null), fhe.indexOf(this.kind) === -1) throw new vK('Unknown kind "' + this.kind + '" is specified for "' + t + '" YAML type.')
        }

        QK.exports = phe
    });
    var cc = w((RZe, SK) => {
        "use strict";
        var kK = lc(), sI = Zu(), dhe = li();

        function qQ(t, e, r) {
            var i = [];
            return t.include.forEach(function (n) {
                r = qQ(n, e, r)
            }), t[e].forEach(function (n) {
                r.forEach(function (s, o) {
                    s.tag === n.tag && s.kind === n.kind && i.push(o)
                }), r.push(n)
            }), r.filter(function (n, s) {
                return i.indexOf(s) === -1
            })
        }

        function Che() {
            var t = {scalar: {}, sequence: {}, mapping: {}, fallback: {}}, e, r;

            function i(n) {
                t[n.kind][n.tag] = t.fallback[n.tag] = n
            }

            for (e = 0, r = arguments.length; e < r; e += 1) arguments[e].forEach(i);
            return t
        }

        function $u(t) {
            this.include = t.include || [], this.implicit = t.implicit || [], this.explicit = t.explicit || [], this.implicit.forEach(function (e) {
                if (e.loadKind && e.loadKind !== "scalar") throw new sI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")
            }), this.compiledImplicit = qQ(this, "implicit", []), this.compiledExplicit = qQ(this, "explicit", []), this.compiledTypeMap = Che(this.compiledImplicit, this.compiledExplicit)
        }

        $u.DEFAULT = null;
        $u.create = function () {
            var e, r;
            switch (arguments.length) {
                case 1:
                    e = $u.DEFAULT, r = arguments[0];
                    break;
                case 2:
                    e = arguments[0], r = arguments[1];
                    break;
                default:
                    throw new sI("Wrong number of arguments for Schema.create function")
            }
            if (e = kK.toArray(e), r = kK.toArray(r), !e.every(function (i) {
                return i instanceof $u
            })) throw new sI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");
            if (!r.every(function (i) {
                return i instanceof dhe
            })) throw new sI("Specified list of YAML types (or a single Type object) contains a non-Type object.");
            return new $u({include: e, explicit: r})
        };
        SK.exports = $u
    });
    var PK = w((FZe, xK) => {
        "use strict";
        var mhe = li();
        xK.exports = new mhe("tag:yaml.org,2002:str", {
            kind: "scalar", construct: function (t) {
                return t !== null ? t : ""
            }
        })
    });
    var RK = w((NZe, DK) => {
        "use strict";
        var Ehe = li();
        DK.exports = new Ehe("tag:yaml.org,2002:seq", {
            kind: "sequence", construct: function (t) {
                return t !== null ? t : []
            }
        })
    });
    var NK = w((LZe, FK) => {
        "use strict";
        var Ihe = li();
        FK.exports = new Ihe("tag:yaml.org,2002:map", {
            kind: "mapping", construct: function (t) {
                return t !== null ? t : {}
            }
        })
    });
    var oI = w((TZe, LK) => {
        "use strict";
        var yhe = cc();
        LK.exports = new yhe({explicit: [PK(), RK(), NK()]})
    });
    var OK = w((OZe, TK) => {
        "use strict";
        var whe = li();

        function Bhe(t) {
            if (t === null) return !0;
            var e = t.length;
            return e === 1 && t === "~" || e === 4 && (t === "null" || t === "Null" || t === "NULL")
        }

        function bhe() {
            return null
        }

        function Qhe(t) {
            return t === null
        }

        TK.exports = new whe("tag:yaml.org,2002:null", {
            kind: "scalar",
            resolve: Bhe,
            construct: bhe,
            predicate: Qhe,
            represent: {
                canonical: function () {
                    return "~"
                }, lowercase: function () {
                    return "null"
                }, uppercase: function () {
                    return "NULL"
                }, camelcase: function () {
                    return "Null"
                }
            },
            defaultStyle: "lowercase"
        })
    });
    var KK = w((MZe, MK) => {
        "use strict";
        var vhe = li();

        function She(t) {
            if (t === null) return !1;
            var e = t.length;
            return e === 4 && (t === "true" || t === "True" || t === "TRUE") || e === 5 && (t === "false" || t === "False" || t === "FALSE")
        }

        function khe(t) {
            return t === "true" || t === "True" || t === "TRUE"
        }

        function xhe(t) {
            return Object.prototype.toString.call(t) === "[object Boolean]"
        }

        MK.exports = new vhe("tag:yaml.org,2002:bool", {
            kind: "scalar",
            resolve: She,
            construct: khe,
            predicate: xhe,
            represent: {
                lowercase: function (t) {
                    return t ? "true" : "false"
                }, uppercase: function (t) {
                    return t ? "TRUE" : "FALSE"
                }, camelcase: function (t) {
                    return t ? "True" : "False"
                }
            },
            defaultStyle: "lowercase"
        })
    });
    var HK = w((KZe, UK) => {
        "use strict";
        var Phe = lc(), Dhe = li();

        function Rhe(t) {
            return 48 <= t && t <= 57 || 65 <= t && t <= 70 || 97 <= t && t <= 102
        }

        function Fhe(t) {
            return 48 <= t && t <= 55
        }

        function Nhe(t) {
            return 48 <= t && t <= 57
        }

        function Lhe(t) {
            if (t === null) return !1;
            var e = t.length, r = 0, i = !1, n;
            if (!e) return !1;
            if (n = t[r], (n === "-" || n === "+") && (n = t[++r]), n === "0") {
                if (r + 1 === e) return !0;
                if (n = t[++r], n === "b") {
                    for (r++; r < e; r++) if (n = t[r], n !== "_") {
                        if (n !== "0" && n !== "1") return !1;
                        i = !0
                    }
                    return i && n !== "_"
                }
                if (n === "x") {
                    for (r++; r < e; r++) if (n = t[r], n !== "_") {
                        if (!Rhe(t.charCodeAt(r))) return !1;
                        i = !0
                    }
                    return i && n !== "_"
                }
                for (; r < e; r++) if (n = t[r], n !== "_") {
                    if (!Fhe(t.charCodeAt(r))) return !1;
                    i = !0
                }
                return i && n !== "_"
            }
            if (n === "_") return !1;
            for (; r < e; r++) if (n = t[r], n !== "_") {
                if (n === ":") break;
                if (!Nhe(t.charCodeAt(r))) return !1;
                i = !0
            }
            return !i || n === "_" ? !1 : n !== ":" ? !0 : /^(:[0-5]?[0-9])+$/.test(t.slice(r))
        }

        function The(t) {
            var e = t, r = 1, i, n, s = [];
            return e.indexOf("_") !== -1 && (e = e.replace(/_/g, "")), i = e[0], (i === "-" || i === "+") && (i === "-" && (r = -1), e = e.slice(1), i = e[0]), e === "0" ? 0 : i === "0" ? e[1] === "b" ? r * parseInt(e.slice(2), 2) : e[1] === "x" ? r * parseInt(e, 16) : r * parseInt(e, 8) : e.indexOf(":") !== -1 ? (e.split(":").forEach(function (o) {
                s.unshift(parseInt(o, 10))
            }), e = 0, n = 1, s.forEach(function (o) {
                e += o * n, n *= 60
            }), r * e) : r * parseInt(e, 10)
        }

        function Ohe(t) {
            return Object.prototype.toString.call(t) === "[object Number]" && t % 1 == 0 && !Phe.isNegativeZero(t)
        }

        UK.exports = new Dhe("tag:yaml.org,2002:int", {
            kind: "scalar",
            resolve: Lhe,
            construct: The,
            predicate: Ohe,
            represent: {
                binary: function (t) {
                    return t >= 0 ? "0b" + t.toString(2) : "-0b" + t.toString(2).slice(1)
                }, octal: function (t) {
                    return t >= 0 ? "0" + t.toString(8) : "-0" + t.toString(8).slice(1)
                }, decimal: function (t) {
                    return t.toString(10)
                }, hexadecimal: function (t) {
                    return t >= 0 ? "0x" + t.toString(16).toUpperCase() : "-0x" + t.toString(16).toUpperCase().slice(1)
                }
            },
            defaultStyle: "decimal",
            styleAliases: {binary: [2, "bin"], octal: [8, "oct"], decimal: [10, "dec"], hexadecimal: [16, "hex"]}
        })
    });
    var YK = w((UZe, GK) => {
        "use strict";
        var jK = lc(), Mhe = li(),
            Khe = new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");

        function Uhe(t) {
            return !(t === null || !Khe.test(t) || t[t.length - 1] === "_")
        }

        function Hhe(t) {
            var e, r, i, n;
            return e = t.replace(/_/g, "").toLowerCase(), r = e[0] === "-" ? -1 : 1, n = [], "+-".indexOf(e[0]) >= 0 && (e = e.slice(1)), e === ".inf" ? r === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY : e === ".nan" ? NaN : e.indexOf(":") >= 0 ? (e.split(":").forEach(function (s) {
                n.unshift(parseFloat(s, 10))
            }), e = 0, i = 1, n.forEach(function (s) {
                e += s * i, i *= 60
            }), r * e) : r * parseFloat(e, 10)
        }

        var Ghe = /^[-+]?[0-9]+e/;

        function jhe(t, e) {
            var r;
            if (isNaN(t)) switch (e) {
                case"lowercase":
                    return ".nan";
                case"uppercase":
                    return ".NAN";
                case"camelcase":
                    return ".NaN"
            } else if (Number.POSITIVE_INFINITY === t) switch (e) {
                case"lowercase":
                    return ".inf";
                case"uppercase":
                    return ".INF";
                case"camelcase":
                    return ".Inf"
            } else if (Number.NEGATIVE_INFINITY === t) switch (e) {
                case"lowercase":
                    return "-.inf";
                case"uppercase":
                    return "-.INF";
                case"camelcase":
                    return "-.Inf"
            } else if (jK.isNegativeZero(t)) return "-0.0";
            return r = t.toString(10), Ghe.test(r) ? r.replace("e", ".e") : r
        }

        function Yhe(t) {
            return Object.prototype.toString.call(t) === "[object Number]" && (t % 1 != 0 || jK.isNegativeZero(t))
        }

        GK.exports = new Mhe("tag:yaml.org,2002:float", {
            kind: "scalar",
            resolve: Uhe,
            construct: Hhe,
            predicate: Yhe,
            represent: jhe,
            defaultStyle: "lowercase"
        })
    });
    var JQ = w((HZe, qK) => {
        "use strict";
        var qhe = cc();
        qK.exports = new qhe({include: [oI()], implicit: [OK(), KK(), HK(), YK()]})
    });
    var WQ = w((GZe, JK) => {
        "use strict";
        var Jhe = cc();
        JK.exports = new Jhe({include: [JQ()]})
    });
    var VK = w((jZe, WK) => {
        "use strict";
        var Whe = li(), zK = new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),
            _K = new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");

        function zhe(t) {
            return t === null ? !1 : zK.exec(t) !== null || _K.exec(t) !== null
        }

        function _he(t) {
            var e, r, i, n, s, o, a, l = 0, c = null, u, g, f;
            if (e = zK.exec(t), e === null && (e = _K.exec(t)), e === null) throw new Error("Date resolve error");
            if (r = +e[1], i = +e[2] - 1, n = +e[3], !e[4]) return new Date(Date.UTC(r, i, n));
            if (s = +e[4], o = +e[5], a = +e[6], e[7]) {
                for (l = e[7].slice(0, 3); l.length < 3;) l += "0";
                l = +l
            }
            return e[9] && (u = +e[10], g = +(e[11] || 0), c = (u * 60 + g) * 6e4, e[9] === "-" && (c = -c)), f = new Date(Date.UTC(r, i, n, s, o, a, l)), c && f.setTime(f.getTime() - c), f
        }

        function Vhe(t) {
            return t.toISOString()
        }

        WK.exports = new Whe("tag:yaml.org,2002:timestamp", {
            kind: "scalar",
            resolve: zhe,
            construct: _he,
            instanceOf: Date,
            represent: Vhe
        })
    });
    var ZK = w((YZe, XK) => {
        "use strict";
        var Xhe = li();

        function Zhe(t) {
            return t === "<<" || t === null
        }

        XK.exports = new Xhe("tag:yaml.org,2002:merge", {kind: "scalar", resolve: Zhe})
    });
    var t1 = w((qZe, $K) => {
        "use strict";
        var uc;
        try {
            e1 = require, uc = e1("buffer").Buffer
        } catch (t) {
        }
        var e1, $he = li(), zQ = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
\r`;

        function epe(t) {
            if (t === null) return !1;
            var e, r, i = 0, n = t.length, s = zQ;
            for (r = 0; r < n; r++) if (e = s.indexOf(t.charAt(r)), !(e > 64)) {
                if (e < 0) return !1;
                i += 6
            }
            return i % 8 == 0
        }

        function tpe(t) {
            var e, r, i = t.replace(/[\r\n=]/g, ""), n = i.length, s = zQ, o = 0, a = [];
            for (e = 0; e < n; e++) e % 4 == 0 && e && (a.push(o >> 16 & 255), a.push(o >> 8 & 255), a.push(o & 255)), o = o << 6 | s.indexOf(i.charAt(e));
            return r = n % 4 * 6, r === 0 ? (a.push(o >> 16 & 255), a.push(o >> 8 & 255), a.push(o & 255)) : r === 18 ? (a.push(o >> 10 & 255), a.push(o >> 2 & 255)) : r === 12 && a.push(o >> 4 & 255), uc ? uc.from ? uc.from(a) : new uc(a) : a
        }

        function rpe(t) {
            var e = "", r = 0, i, n, s = t.length, o = zQ;
            for (i = 0; i < s; i++) i % 3 == 0 && i && (e += o[r >> 18 & 63], e += o[r >> 12 & 63], e += o[r >> 6 & 63], e += o[r & 63]), r = (r << 8) + t[i];
            return n = s % 3, n === 0 ? (e += o[r >> 18 & 63], e += o[r >> 12 & 63], e += o[r >> 6 & 63], e += o[r & 63]) : n === 2 ? (e += o[r >> 10 & 63], e += o[r >> 4 & 63], e += o[r << 2 & 63], e += o[64]) : n === 1 && (e += o[r >> 2 & 63], e += o[r << 4 & 63], e += o[64], e += o[64]), e
        }

        function ipe(t) {
            return uc && uc.isBuffer(t)
        }

        $K.exports = new $he("tag:yaml.org,2002:binary", {
            kind: "scalar",
            resolve: epe,
            construct: tpe,
            predicate: ipe,
            represent: rpe
        })
    });
    var i1 = w((JZe, r1) => {
        "use strict";
        var npe = li(), spe = Object.prototype.hasOwnProperty, ope = Object.prototype.toString;

        function ape(t) {
            if (t === null) return !0;
            var e = [], r, i, n, s, o, a = t;
            for (r = 0, i = a.length; r < i; r += 1) {
                if (n = a[r], o = !1, ope.call(n) !== "[object Object]") return !1;
                for (s in n) if (spe.call(n, s)) if (!o) o = !0; else return !1;
                if (!o) return !1;
                if (e.indexOf(s) === -1) e.push(s); else return !1
            }
            return !0
        }

        function Ape(t) {
            return t !== null ? t : []
        }

        r1.exports = new npe("tag:yaml.org,2002:omap", {kind: "sequence", resolve: ape, construct: Ape})
    });
    var s1 = w((WZe, n1) => {
        "use strict";
        var lpe = li(), cpe = Object.prototype.toString;

        function upe(t) {
            if (t === null) return !0;
            var e, r, i, n, s, o = t;
            for (s = new Array(o.length), e = 0, r = o.length; e < r; e += 1) {
                if (i = o[e], cpe.call(i) !== "[object Object]" || (n = Object.keys(i), n.length !== 1)) return !1;
                s[e] = [n[0], i[n[0]]]
            }
            return !0
        }

        function gpe(t) {
            if (t === null) return [];
            var e, r, i, n, s, o = t;
            for (s = new Array(o.length), e = 0, r = o.length; e < r; e += 1) i = o[e], n = Object.keys(i), s[e] = [n[0], i[n[0]]];
            return s
        }

        n1.exports = new lpe("tag:yaml.org,2002:pairs", {kind: "sequence", resolve: upe, construct: gpe})
    });
    var a1 = w((zZe, o1) => {
        "use strict";
        var fpe = li(), hpe = Object.prototype.hasOwnProperty;

        function ppe(t) {
            if (t === null) return !0;
            var e, r = t;
            for (e in r) if (hpe.call(r, e) && r[e] !== null) return !1;
            return !0
        }

        function dpe(t) {
            return t !== null ? t : {}
        }

        o1.exports = new fpe("tag:yaml.org,2002:set", {kind: "mapping", resolve: ppe, construct: dpe})
    });
    var eg = w((_Ze, A1) => {
        "use strict";
        var Cpe = cc();
        A1.exports = new Cpe({include: [WQ()], implicit: [VK(), ZK()], explicit: [t1(), i1(), s1(), a1()]})
    });
    var c1 = w((VZe, l1) => {
        "use strict";
        var mpe = li();

        function Epe() {
            return !0
        }

        function Ipe() {
        }

        function ype() {
            return ""
        }

        function wpe(t) {
            return typeof t == "undefined"
        }

        l1.exports = new mpe("tag:yaml.org,2002:js/undefined", {
            kind: "scalar",
            resolve: Epe,
            construct: Ipe,
            predicate: wpe,
            represent: ype
        })
    });
    var g1 = w((XZe, u1) => {
        "use strict";
        var Bpe = li();

        function bpe(t) {
            if (t === null || t.length === 0) return !1;
            var e = t, r = /\/([gim]*)$/.exec(t), i = "";
            return !(e[0] === "/" && (r && (i = r[1]), i.length > 3 || e[e.length - i.length - 1] !== "/"))
        }

        function Qpe(t) {
            var e = t, r = /\/([gim]*)$/.exec(t), i = "";
            return e[0] === "/" && (r && (i = r[1]), e = e.slice(1, e.length - i.length - 1)), new RegExp(e, i)
        }

        function vpe(t) {
            var e = "/" + t.source + "/";
            return t.global && (e += "g"), t.multiline && (e += "m"), t.ignoreCase && (e += "i"), e
        }

        function Spe(t) {
            return Object.prototype.toString.call(t) === "[object RegExp]"
        }

        u1.exports = new Bpe("tag:yaml.org,2002:js/regexp", {
            kind: "scalar",
            resolve: bpe,
            construct: Qpe,
            predicate: Spe,
            represent: vpe
        })
    });
    var p1 = w((ZZe, f1) => {
        "use strict";
        var aI;
        try {
            h1 = require, aI = h1("esprima")
        } catch (t) {
            typeof window != "undefined" && (aI = window.esprima)
        }
        var h1, kpe = li();

        function xpe(t) {
            if (t === null) return !1;
            try {
                var e = "(" + t + ")", r = aI.parse(e, {range: !0});
                return !(r.type !== "Program" || r.body.length !== 1 || r.body[0].type !== "ExpressionStatement" || r.body[0].expression.type !== "ArrowFunctionExpression" && r.body[0].expression.type !== "FunctionExpression")
            } catch (i) {
                return !1
            }
        }

        function Ppe(t) {
            var e = "(" + t + ")", r = aI.parse(e, {range: !0}), i = [], n;
            if (r.type !== "Program" || r.body.length !== 1 || r.body[0].type !== "ExpressionStatement" || r.body[0].expression.type !== "ArrowFunctionExpression" && r.body[0].expression.type !== "FunctionExpression") throw new Error("Failed to resolve function");
            return r.body[0].expression.params.forEach(function (s) {
                i.push(s.name)
            }), n = r.body[0].expression.body.range, r.body[0].expression.body.type === "BlockStatement" ? new Function(i, e.slice(n[0] + 1, n[1] - 1)) : new Function(i, "return " + e.slice(n[0], n[1]))
        }

        function Dpe(t) {
            return t.toString()
        }

        function Rpe(t) {
            return Object.prototype.toString.call(t) === "[object Function]"
        }

        f1.exports = new kpe("tag:yaml.org,2002:js/function", {
            kind: "scalar",
            resolve: xpe,
            construct: Ppe,
            predicate: Rpe,
            represent: Dpe
        })
    });
    var rp = w(($Ze, d1) => {
        "use strict";
        var C1 = cc();
        d1.exports = C1.DEFAULT = new C1({include: [eg()], explicit: [c1(), g1(), p1()]})
    });
    var T1 = w((e$e, ip) => {
        "use strict";
        var Na = lc(), m1 = Zu(), Fpe = bK(), E1 = eg(), Npe = rp(), GA = Object.prototype.hasOwnProperty, AI = 1,
            I1 = 2, y1 = 3, lI = 4, _Q = 1, Lpe = 2, w1 = 3,
            Tpe = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,
            Ope = /[\x85\u2028\u2029]/, Mpe = /[,\[\]\{\}]/, B1 = /^(?:!|!!|![a-z\-]+!)$/i,
            b1 = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;

        function Q1(t) {
            return Object.prototype.toString.call(t)
        }

        function Ro(t) {
            return t === 10 || t === 13
        }

        function gc(t) {
            return t === 9 || t === 32
        }

        function yn(t) {
            return t === 9 || t === 32 || t === 10 || t === 13
        }

        function tg(t) {
            return t === 44 || t === 91 || t === 93 || t === 123 || t === 125
        }

        function Kpe(t) {
            var e;
            return 48 <= t && t <= 57 ? t - 48 : (e = t | 32, 97 <= e && e <= 102 ? e - 97 + 10 : -1)
        }

        function Upe(t) {
            return t === 120 ? 2 : t === 117 ? 4 : t === 85 ? 8 : 0
        }

        function Hpe(t) {
            return 48 <= t && t <= 57 ? t - 48 : -1
        }

        function v1(t) {
            return t === 48 ? "\0" : t === 97 ? "\x07" : t === 98 ? "\b" : t === 116 || t === 9 ? "	" : t === 110 ? `
` : t === 118 ? "\v" : t === 102 ? "\f" : t === 114 ? "\r" : t === 101 ? "" : t === 32 ? " " : t === 34 ? '"' : t === 47 ? "/" : t === 92 ? "\\" : t === 78 ? "\x85" : t === 95 ? "\xA0" : t === 76 ? "\u2028" : t === 80 ? "\u2029" : ""
        }

        function Gpe(t) {
            return t <= 65535 ? String.fromCharCode(t) : String.fromCharCode((t - 65536 >> 10) + 55296, (t - 65536 & 1023) + 56320)
        }

        var S1 = new Array(256), k1 = new Array(256);
        for (var rg = 0; rg < 256; rg++) S1[rg] = v1(rg) ? 1 : 0, k1[rg] = v1(rg);

        function jpe(t, e) {
            this.input = t, this.filename = e.filename || null, this.schema = e.schema || Npe, this.onWarning = e.onWarning || null, this.legacy = e.legacy || !1, this.json = e.json || !1, this.listener = e.listener || null, this.implicitTypes = this.schema.compiledImplicit, this.typeMap = this.schema.compiledTypeMap, this.length = t.length, this.position = 0, this.line = 0, this.lineStart = 0, this.lineIndent = 0, this.documents = []
        }

        function x1(t, e) {
            return new m1(e, new Fpe(t.filename, t.input, t.position, t.line, t.position - t.lineStart))
        }

        function dt(t, e) {
            throw x1(t, e)
        }

        function cI(t, e) {
            t.onWarning && t.onWarning.call(null, x1(t, e))
        }

        var P1 = {
            YAML: function (e, r, i) {
                var n, s, o;
                e.version !== null && dt(e, "duplication of %YAML directive"), i.length !== 1 && dt(e, "YAML directive accepts exactly one argument"), n = /^([0-9]+)\.([0-9]+)$/.exec(i[0]), n === null && dt(e, "ill-formed argument of the YAML directive"), s = parseInt(n[1], 10), o = parseInt(n[2], 10), s !== 1 && dt(e, "unacceptable YAML version of the document"), e.version = i[0], e.checkLineBreaks = o < 2, o !== 1 && o !== 2 && cI(e, "unsupported YAML version of the document")
            }, TAG: function (e, r, i) {
                var n, s;
                i.length !== 2 && dt(e, "TAG directive accepts exactly two arguments"), n = i[0], s = i[1], B1.test(n) || dt(e, "ill-formed tag handle (first argument) of the TAG directive"), GA.call(e.tagMap, n) && dt(e, 'there is a previously declared suffix for "' + n + '" tag handle'), b1.test(s) || dt(e, "ill-formed tag prefix (second argument) of the TAG directive"), e.tagMap[n] = s
            }
        };

        function jA(t, e, r, i) {
            var n, s, o, a;
            if (e < r) {
                if (a = t.input.slice(e, r), i) for (n = 0, s = a.length; n < s; n += 1) o = a.charCodeAt(n), o === 9 || 32 <= o && o <= 1114111 || dt(t, "expected valid JSON character"); else Tpe.test(a) && dt(t, "the stream contains non-printable characters");
                t.result += a
            }
        }

        function D1(t, e, r, i) {
            var n, s, o, a;
            for (Na.isObject(r) || dt(t, "cannot merge mappings; the provided source object is unacceptable"), n = Object.keys(r), o = 0, a = n.length; o < a; o += 1) s = n[o], GA.call(e, s) || (e[s] = r[s], i[s] = !0)
        }

        function ig(t, e, r, i, n, s, o, a) {
            var l, c;
            if (Array.isArray(n)) for (n = Array.prototype.slice.call(n), l = 0, c = n.length; l < c; l += 1) Array.isArray(n[l]) && dt(t, "nested arrays are not supported inside keys"), typeof n == "object" && Q1(n[l]) === "[object Object]" && (n[l] = "[object Object]");
            if (typeof n == "object" && Q1(n) === "[object Object]" && (n = "[object Object]"), n = String(n), e === null && (e = {}), i === "tag:yaml.org,2002:merge") if (Array.isArray(s)) for (l = 0, c = s.length; l < c; l += 1) D1(t, e, s[l], r); else D1(t, e, s, r); else !t.json && !GA.call(r, n) && GA.call(e, n) && (t.line = o || t.line, t.position = a || t.position, dt(t, "duplicated mapping key")), e[n] = s, delete r[n];
            return e
        }

        function VQ(t) {
            var e;
            e = t.input.charCodeAt(t.position), e === 10 ? t.position++ : e === 13 ? (t.position++, t.input.charCodeAt(t.position) === 10 && t.position++) : dt(t, "a line break is expected"), t.line += 1, t.lineStart = t.position
        }

        function ei(t, e, r) {
            for (var i = 0, n = t.input.charCodeAt(t.position); n !== 0;) {
                for (; gc(n);) n = t.input.charCodeAt(++t.position);
                if (e && n === 35) do n = t.input.charCodeAt(++t.position); while (n !== 10 && n !== 13 && n !== 0);
                if (Ro(n)) for (VQ(t), n = t.input.charCodeAt(t.position), i++, t.lineIndent = 0; n === 32;) t.lineIndent++, n = t.input.charCodeAt(++t.position); else break
            }
            return r !== -1 && i !== 0 && t.lineIndent < r && cI(t, "deficient indentation"), i
        }

        function uI(t) {
            var e = t.position, r;
            return r = t.input.charCodeAt(e), !!((r === 45 || r === 46) && r === t.input.charCodeAt(e + 1) && r === t.input.charCodeAt(e + 2) && (e += 3, r = t.input.charCodeAt(e), r === 0 || yn(r)))
        }

        function XQ(t, e) {
            e === 1 ? t.result += " " : e > 1 && (t.result += Na.repeat(`
`, e - 1))
        }

        function Ype(t, e, r) {
            var i, n, s, o, a, l, c, u, g = t.kind, f = t.result, h;
            if (h = t.input.charCodeAt(t.position), yn(h) || tg(h) || h === 35 || h === 38 || h === 42 || h === 33 || h === 124 || h === 62 || h === 39 || h === 34 || h === 37 || h === 64 || h === 96 || (h === 63 || h === 45) && (n = t.input.charCodeAt(t.position + 1), yn(n) || r && tg(n))) return !1;
            for (t.kind = "scalar", t.result = "", s = o = t.position, a = !1; h !== 0;) {
                if (h === 58) {
                    if (n = t.input.charCodeAt(t.position + 1), yn(n) || r && tg(n)) break
                } else if (h === 35) {
                    if (i = t.input.charCodeAt(t.position - 1), yn(i)) break
                } else {
                    if (t.position === t.lineStart && uI(t) || r && tg(h)) break;
                    if (Ro(h)) if (l = t.line, c = t.lineStart, u = t.lineIndent, ei(t, !1, -1), t.lineIndent >= e) {
                        a = !0, h = t.input.charCodeAt(t.position);
                        continue
                    } else {
                        t.position = o, t.line = l, t.lineStart = c, t.lineIndent = u;
                        break
                    }
                }
                a && (jA(t, s, o, !1), XQ(t, t.line - l), s = o = t.position, a = !1), gc(h) || (o = t.position + 1), h = t.input.charCodeAt(++t.position)
            }
            return jA(t, s, o, !1), t.result ? !0 : (t.kind = g, t.result = f, !1)
        }

        function qpe(t, e) {
            var r, i, n;
            if (r = t.input.charCodeAt(t.position), r !== 39) return !1;
            for (t.kind = "scalar", t.result = "", t.position++, i = n = t.position; (r = t.input.charCodeAt(t.position)) !== 0;) if (r === 39) if (jA(t, i, t.position, !0), r = t.input.charCodeAt(++t.position), r === 39) i = t.position, t.position++, n = t.position; else return !0; else Ro(r) ? (jA(t, i, n, !0), XQ(t, ei(t, !1, e)), i = n = t.position) : t.position === t.lineStart && uI(t) ? dt(t, "unexpected end of the document within a single quoted scalar") : (t.position++, n = t.position);
            dt(t, "unexpected end of the stream within a single quoted scalar")
        }

        function Jpe(t, e) {
            var r, i, n, s, o, a;
            if (a = t.input.charCodeAt(t.position), a !== 34) return !1;
            for (t.kind = "scalar", t.result = "", t.position++, r = i = t.position; (a = t.input.charCodeAt(t.position)) !== 0;) {
                if (a === 34) return jA(t, r, t.position, !0), t.position++, !0;
                if (a === 92) {
                    if (jA(t, r, t.position, !0), a = t.input.charCodeAt(++t.position), Ro(a)) ei(t, !1, e); else if (a < 256 && S1[a]) t.result += k1[a], t.position++; else if ((o = Upe(a)) > 0) {
                        for (n = o, s = 0; n > 0; n--) a = t.input.charCodeAt(++t.position), (o = Kpe(a)) >= 0 ? s = (s << 4) + o : dt(t, "expected hexadecimal character");
                        t.result += Gpe(s), t.position++
                    } else dt(t, "unknown escape sequence");
                    r = i = t.position
                } else Ro(a) ? (jA(t, r, i, !0), XQ(t, ei(t, !1, e)), r = i = t.position) : t.position === t.lineStart && uI(t) ? dt(t, "unexpected end of the document within a double quoted scalar") : (t.position++, i = t.position)
            }
            dt(t, "unexpected end of the stream within a double quoted scalar")
        }

        function Wpe(t, e) {
            var r = !0, i, n = t.tag, s, o = t.anchor, a, l, c, u, g, f = {}, h, p, m, y;
            if (y = t.input.charCodeAt(t.position), y === 91) l = 93, g = !1, s = []; else if (y === 123) l = 125, g = !0, s = {}; else return !1;
            for (t.anchor !== null && (t.anchorMap[t.anchor] = s), y = t.input.charCodeAt(++t.position); y !== 0;) {
                if (ei(t, !0, e), y = t.input.charCodeAt(t.position), y === l) return t.position++, t.tag = n, t.anchor = o, t.kind = g ? "mapping" : "sequence", t.result = s, !0;
                r || dt(t, "missed comma between flow collection entries"), p = h = m = null, c = u = !1, y === 63 && (a = t.input.charCodeAt(t.position + 1), yn(a) && (c = u = !0, t.position++, ei(t, !0, e))), i = t.line, ng(t, e, AI, !1, !0), p = t.tag, h = t.result, ei(t, !0, e), y = t.input.charCodeAt(t.position), (u || t.line === i) && y === 58 && (c = !0, y = t.input.charCodeAt(++t.position), ei(t, !0, e), ng(t, e, AI, !1, !0), m = t.result), g ? ig(t, s, f, p, h, m) : c ? s.push(ig(t, null, f, p, h, m)) : s.push(h), ei(t, !0, e), y = t.input.charCodeAt(t.position), y === 44 ? (r = !0, y = t.input.charCodeAt(++t.position)) : r = !1
            }
            dt(t, "unexpected end of the stream within a flow collection")
        }

        function zpe(t, e) {
            var r, i, n = _Q, s = !1, o = !1, a = e, l = 0, c = !1, u, g;
            if (g = t.input.charCodeAt(t.position), g === 124) i = !1; else if (g === 62) i = !0; else return !1;
            for (t.kind = "scalar", t.result = ""; g !== 0;) if (g = t.input.charCodeAt(++t.position), g === 43 || g === 45) _Q === n ? n = g === 43 ? w1 : Lpe : dt(t, "repeat of a chomping mode identifier"); else if ((u = Hpe(g)) >= 0) u === 0 ? dt(t, "bad explicit indentation width of a block scalar; it cannot be less than one") : o ? dt(t, "repeat of an indentation width identifier") : (a = e + u - 1, o = !0); else break;
            if (gc(g)) {
                do g = t.input.charCodeAt(++t.position); while (gc(g));
                if (g === 35) do g = t.input.charCodeAt(++t.position); while (!Ro(g) && g !== 0)
            }
            for (; g !== 0;) {
                for (VQ(t), t.lineIndent = 0, g = t.input.charCodeAt(t.position); (!o || t.lineIndent < a) && g === 32;) t.lineIndent++, g = t.input.charCodeAt(++t.position);
                if (!o && t.lineIndent > a && (a = t.lineIndent), Ro(g)) {
                    l++;
                    continue
                }
                if (t.lineIndent < a) {
                    n === w1 ? t.result += Na.repeat(`
`, s ? 1 + l : l) : n === _Q && s && (t.result += `
`);
                    break
                }
                for (i ? gc(g) ? (c = !0, t.result += Na.repeat(`
`, s ? 1 + l : l)) : c ? (c = !1, t.result += Na.repeat(`
`, l + 1)) : l === 0 ? s && (t.result += " ") : t.result += Na.repeat(`
`, l) : t.result += Na.repeat(`
`, s ? 1 + l : l), s = !0, o = !0, l = 0, r = t.position; !Ro(g) && g !== 0;) g = t.input.charCodeAt(++t.position);
                jA(t, r, t.position, !1)
            }
            return !0
        }

        function R1(t, e) {
            var r, i = t.tag, n = t.anchor, s = [], o, a = !1, l;
            for (t.anchor !== null && (t.anchorMap[t.anchor] = s), l = t.input.charCodeAt(t.position); l !== 0 && !(l !== 45 || (o = t.input.charCodeAt(t.position + 1), !yn(o)));) {
                if (a = !0, t.position++, ei(t, !0, -1) && t.lineIndent <= e) {
                    s.push(null), l = t.input.charCodeAt(t.position);
                    continue
                }
                if (r = t.line, ng(t, e, y1, !1, !0), s.push(t.result), ei(t, !0, -1), l = t.input.charCodeAt(t.position), (t.line === r || t.lineIndent > e) && l !== 0) dt(t, "bad indentation of a sequence entry"); else if (t.lineIndent < e) break
            }
            return a ? (t.tag = i, t.anchor = n, t.kind = "sequence", t.result = s, !0) : !1
        }

        function _pe(t, e, r) {
            var i, n, s, o, a = t.tag, l = t.anchor, c = {}, u = {}, g = null, f = null, h = null, p = !1, m = !1, y;
            for (t.anchor !== null && (t.anchorMap[t.anchor] = c), y = t.input.charCodeAt(t.position); y !== 0;) {
                if (i = t.input.charCodeAt(t.position + 1), s = t.line, o = t.position, (y === 63 || y === 58) && yn(i)) y === 63 ? (p && (ig(t, c, u, g, f, null), g = f = h = null), m = !0, p = !0, n = !0) : p ? (p = !1, n = !0) : dt(t, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"), t.position += 1, y = i; else if (ng(t, r, I1, !1, !0)) if (t.line === s) {
                    for (y = t.input.charCodeAt(t.position); gc(y);) y = t.input.charCodeAt(++t.position);
                    if (y === 58) y = t.input.charCodeAt(++t.position), yn(y) || dt(t, "a whitespace character is expected after the key-value separator within a block mapping"), p && (ig(t, c, u, g, f, null), g = f = h = null), m = !0, p = !1, n = !1, g = t.tag, f = t.result; else if (m) dt(t, "can not read an implicit mapping pair; a colon is missed"); else return t.tag = a, t.anchor = l, !0
                } else if (m) dt(t, "can not read a block mapping entry; a multiline key may not be an implicit key"); else return t.tag = a, t.anchor = l, !0; else break;
                if ((t.line === s || t.lineIndent > e) && (ng(t, e, lI, !0, n) && (p ? f = t.result : h = t.result), p || (ig(t, c, u, g, f, h, s, o), g = f = h = null), ei(t, !0, -1), y = t.input.charCodeAt(t.position)), t.lineIndent > e && y !== 0) dt(t, "bad indentation of a mapping entry"); else if (t.lineIndent < e) break
            }
            return p && ig(t, c, u, g, f, null), m && (t.tag = a, t.anchor = l, t.kind = "mapping", t.result = c), m
        }

        function Vpe(t) {
            var e, r = !1, i = !1, n, s, o;
            if (o = t.input.charCodeAt(t.position), o !== 33) return !1;
            if (t.tag !== null && dt(t, "duplication of a tag property"), o = t.input.charCodeAt(++t.position), o === 60 ? (r = !0, o = t.input.charCodeAt(++t.position)) : o === 33 ? (i = !0, n = "!!", o = t.input.charCodeAt(++t.position)) : n = "!", e = t.position, r) {
                do o = t.input.charCodeAt(++t.position); while (o !== 0 && o !== 62);
                t.position < t.length ? (s = t.input.slice(e, t.position), o = t.input.charCodeAt(++t.position)) : dt(t, "unexpected end of the stream within a verbatim tag")
            } else {
                for (; o !== 0 && !yn(o);) o === 33 && (i ? dt(t, "tag suffix cannot contain exclamation marks") : (n = t.input.slice(e - 1, t.position + 1), B1.test(n) || dt(t, "named tag handle cannot contain such characters"), i = !0, e = t.position + 1)), o = t.input.charCodeAt(++t.position);
                s = t.input.slice(e, t.position), Mpe.test(s) && dt(t, "tag suffix cannot contain flow indicator characters")
            }
            return s && !b1.test(s) && dt(t, "tag name cannot contain such characters: " + s), r ? t.tag = s : GA.call(t.tagMap, n) ? t.tag = t.tagMap[n] + s : n === "!" ? t.tag = "!" + s : n === "!!" ? t.tag = "tag:yaml.org,2002:" + s : dt(t, 'undeclared tag handle "' + n + '"'), !0
        }

        function Xpe(t) {
            var e, r;
            if (r = t.input.charCodeAt(t.position), r !== 38) return !1;
            for (t.anchor !== null && dt(t, "duplication of an anchor property"), r = t.input.charCodeAt(++t.position), e = t.position; r !== 0 && !yn(r) && !tg(r);) r = t.input.charCodeAt(++t.position);
            return t.position === e && dt(t, "name of an anchor node must contain at least one character"), t.anchor = t.input.slice(e, t.position), !0
        }

        function Zpe(t) {
            var e, r, i;
            if (i = t.input.charCodeAt(t.position), i !== 42) return !1;
            for (i = t.input.charCodeAt(++t.position), e = t.position; i !== 0 && !yn(i) && !tg(i);) i = t.input.charCodeAt(++t.position);
            return t.position === e && dt(t, "name of an alias node must contain at least one character"), r = t.input.slice(e, t.position), GA.call(t.anchorMap, r) || dt(t, 'unidentified alias "' + r + '"'), t.result = t.anchorMap[r], ei(t, !0, -1), !0
        }

        function ng(t, e, r, i, n) {
            var s, o, a, l = 1, c = !1, u = !1, g, f, h, p, m;
            if (t.listener !== null && t.listener("open", t), t.tag = null, t.anchor = null, t.kind = null, t.result = null, s = o = a = lI === r || y1 === r, i && ei(t, !0, -1) && (c = !0, t.lineIndent > e ? l = 1 : t.lineIndent === e ? l = 0 : t.lineIndent < e && (l = -1)), l === 1) for (; Vpe(t) || Xpe(t);) ei(t, !0, -1) ? (c = !0, a = s, t.lineIndent > e ? l = 1 : t.lineIndent === e ? l = 0 : t.lineIndent < e && (l = -1)) : a = !1;
            if (a && (a = c || n), (l === 1 || lI === r) && (AI === r || I1 === r ? p = e : p = e + 1, m = t.position - t.lineStart, l === 1 ? a && (R1(t, m) || _pe(t, m, p)) || Wpe(t, p) ? u = !0 : (o && zpe(t, p) || qpe(t, p) || Jpe(t, p) ? u = !0 : Zpe(t) ? (u = !0, (t.tag !== null || t.anchor !== null) && dt(t, "alias node should not have any properties")) : Ype(t, p, AI === r) && (u = !0, t.tag === null && (t.tag = "?")), t.anchor !== null && (t.anchorMap[t.anchor] = t.result)) : l === 0 && (u = a && R1(t, m))), t.tag !== null && t.tag !== "!") if (t.tag === "?") {
                for (t.result !== null && t.kind !== "scalar" && dt(t, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + t.kind + '"'), g = 0, f = t.implicitTypes.length; g < f; g += 1) if (h = t.implicitTypes[g], h.resolve(t.result)) {
                    t.result = h.construct(t.result), t.tag = h.tag, t.anchor !== null && (t.anchorMap[t.anchor] = t.result);
                    break
                }
            } else GA.call(t.typeMap[t.kind || "fallback"], t.tag) ? (h = t.typeMap[t.kind || "fallback"][t.tag], t.result !== null && h.kind !== t.kind && dt(t, "unacceptable node kind for !<" + t.tag + '> tag; it should be "' + h.kind + '", not "' + t.kind + '"'), h.resolve(t.result) ? (t.result = h.construct(t.result), t.anchor !== null && (t.anchorMap[t.anchor] = t.result)) : dt(t, "cannot resolve a node with !<" + t.tag + "> explicit tag")) : dt(t, "unknown tag !<" + t.tag + ">");
            return t.listener !== null && t.listener("close", t), t.tag !== null || t.anchor !== null || u
        }

        function $pe(t) {
            var e = t.position, r, i, n, s = !1, o;
            for (t.version = null, t.checkLineBreaks = t.legacy, t.tagMap = {}, t.anchorMap = {}; (o = t.input.charCodeAt(t.position)) !== 0 && (ei(t, !0, -1), o = t.input.charCodeAt(t.position), !(t.lineIndent > 0 || o !== 37));) {
                for (s = !0, o = t.input.charCodeAt(++t.position), r = t.position; o !== 0 && !yn(o);) o = t.input.charCodeAt(++t.position);
                for (i = t.input.slice(r, t.position), n = [], i.length < 1 && dt(t, "directive name must not be less than one character in length"); o !== 0;) {
                    for (; gc(o);) o = t.input.charCodeAt(++t.position);
                    if (o === 35) {
                        do o = t.input.charCodeAt(++t.position); while (o !== 0 && !Ro(o));
                        break
                    }
                    if (Ro(o)) break;
                    for (r = t.position; o !== 0 && !yn(o);) o = t.input.charCodeAt(++t.position);
                    n.push(t.input.slice(r, t.position))
                }
                o !== 0 && VQ(t), GA.call(P1, i) ? P1[i](t, i, n) : cI(t, 'unknown document directive "' + i + '"')
            }
            if (ei(t, !0, -1), t.lineIndent === 0 && t.input.charCodeAt(t.position) === 45 && t.input.charCodeAt(t.position + 1) === 45 && t.input.charCodeAt(t.position + 2) === 45 ? (t.position += 3, ei(t, !0, -1)) : s && dt(t, "directives end mark is expected"), ng(t, t.lineIndent - 1, lI, !1, !0), ei(t, !0, -1), t.checkLineBreaks && Ope.test(t.input.slice(e, t.position)) && cI(t, "non-ASCII line breaks are interpreted as content"), t.documents.push(t.result), t.position === t.lineStart && uI(t)) {
                t.input.charCodeAt(t.position) === 46 && (t.position += 3, ei(t, !0, -1));
                return
            }
            if (t.position < t.length - 1) dt(t, "end of the stream or a document separator is expected"); else return
        }

        function F1(t, e) {
            t = String(t), e = e || {}, t.length !== 0 && (t.charCodeAt(t.length - 1) !== 10 && t.charCodeAt(t.length - 1) !== 13 && (t += `
`), t.charCodeAt(0) === 65279 && (t = t.slice(1)));
            var r = new jpe(t, e), i = t.indexOf("\0");
            for (i !== -1 && (r.position = i, dt(r, "null byte is not allowed in input")), r.input += "\0"; r.input.charCodeAt(r.position) === 32;) r.lineIndent += 1, r.position += 1;
            for (; r.position < r.length - 1;) $pe(r);
            return r.documents
        }

        function N1(t, e, r) {
            e !== null && typeof e == "object" && typeof r == "undefined" && (r = e, e = null);
            var i = F1(t, r);
            if (typeof e != "function") return i;
            for (var n = 0, s = i.length; n < s; n += 1) e(i[n])
        }

        function L1(t, e) {
            var r = F1(t, e);
            if (r.length !== 0) {
                if (r.length === 1) return r[0];
                throw new m1("expected a single document in the stream, but found more")
            }
        }

        function ede(t, e, r) {
            return typeof e == "object" && e !== null && typeof r == "undefined" && (r = e, e = null), N1(t, e, Na.extend({schema: E1}, r))
        }

        function tde(t, e) {
            return L1(t, Na.extend({schema: E1}, e))
        }

        ip.exports.loadAll = N1;
        ip.exports.load = L1;
        ip.exports.safeLoadAll = ede;
        ip.exports.safeLoad = tde
    });
    var sU = w((t$e, ZQ) => {
        "use strict";
        var np = lc(), sp = Zu(), rde = rp(), ide = eg(), O1 = Object.prototype.toString,
            M1 = Object.prototype.hasOwnProperty, nde = 9, op = 10, sde = 13, ode = 32, ade = 33, Ade = 34, K1 = 35,
            lde = 37, cde = 38, ude = 39, gde = 42, U1 = 44, fde = 45, H1 = 58, hde = 61, pde = 62, dde = 63, Cde = 64,
            G1 = 91, j1 = 93, mde = 96, Y1 = 123, Ede = 124, q1 = 125, Ki = {};
        Ki[0] = "\\0";
        Ki[7] = "\\a";
        Ki[8] = "\\b";
        Ki[9] = "\\t";
        Ki[10] = "\\n";
        Ki[11] = "\\v";
        Ki[12] = "\\f";
        Ki[13] = "\\r";
        Ki[27] = "\\e";
        Ki[34] = '\\"';
        Ki[92] = "\\\\";
        Ki[133] = "\\N";
        Ki[160] = "\\_";
        Ki[8232] = "\\L";
        Ki[8233] = "\\P";
        var Ide = ["y", "Y", "yes", "Yes", "YES", "on", "On", "ON", "n", "N", "no", "No", "NO", "off", "Off", "OFF"];

        function yde(t, e) {
            var r, i, n, s, o, a, l;
            if (e === null) return {};
            for (r = {}, i = Object.keys(e), n = 0, s = i.length; n < s; n += 1) o = i[n], a = String(e[o]), o.slice(0, 2) === "!!" && (o = "tag:yaml.org,2002:" + o.slice(2)), l = t.compiledTypeMap.fallback[o], l && M1.call(l.styleAliases, a) && (a = l.styleAliases[a]), r[o] = a;
            return r
        }

        function J1(t) {
            var e, r, i;
            if (e = t.toString(16).toUpperCase(), t <= 255) r = "x", i = 2; else if (t <= 65535) r = "u", i = 4; else if (t <= 4294967295) r = "U", i = 8; else throw new sp("code point within a string may not be greater than 0xFFFFFFFF");
            return "\\" + r + np.repeat("0", i - e.length) + e
        }

        function wde(t) {
            this.schema = t.schema || rde, this.indent = Math.max(1, t.indent || 2), this.noArrayIndent = t.noArrayIndent || !1, this.skipInvalid = t.skipInvalid || !1, this.flowLevel = np.isNothing(t.flowLevel) ? -1 : t.flowLevel, this.styleMap = yde(this.schema, t.styles || null), this.sortKeys = t.sortKeys || !1, this.lineWidth = t.lineWidth || 80, this.noRefs = t.noRefs || !1, this.noCompatMode = t.noCompatMode || !1, this.condenseFlow = t.condenseFlow || !1, this.implicitTypes = this.schema.compiledImplicit, this.explicitTypes = this.schema.compiledExplicit, this.tag = null, this.result = "", this.duplicates = [], this.usedDuplicates = null
        }

        function W1(t, e) {
            for (var r = np.repeat(" ", e), i = 0, n = -1, s = "", o, a = t.length; i < a;) n = t.indexOf(`
`, i), n === -1 ? (o = t.slice(i), i = a) : (o = t.slice(i, n + 1), i = n + 1), o.length && o !== `
` && (s += r), s += o;
            return s
        }

        function $Q(t, e) {
            return `
` + np.repeat(" ", t.indent * e)
        }

        function Bde(t, e) {
            var r, i, n;
            for (r = 0, i = t.implicitTypes.length; r < i; r += 1) if (n = t.implicitTypes[r], n.resolve(e)) return !0;
            return !1
        }

        function ev(t) {
            return t === ode || t === nde
        }

        function sg(t) {
            return 32 <= t && t <= 126 || 161 <= t && t <= 55295 && t !== 8232 && t !== 8233 || 57344 <= t && t <= 65533 && t !== 65279 || 65536 <= t && t <= 1114111
        }

        function bde(t) {
            return sg(t) && !ev(t) && t !== 65279 && t !== sde && t !== op
        }

        function z1(t, e) {
            return sg(t) && t !== 65279 && t !== U1 && t !== G1 && t !== j1 && t !== Y1 && t !== q1 && t !== H1 && (t !== K1 || e && bde(e))
        }

        function Qde(t) {
            return sg(t) && t !== 65279 && !ev(t) && t !== fde && t !== dde && t !== H1 && t !== U1 && t !== G1 && t !== j1 && t !== Y1 && t !== q1 && t !== K1 && t !== cde && t !== gde && t !== ade && t !== Ede && t !== hde && t !== pde && t !== ude && t !== Ade && t !== lde && t !== Cde && t !== mde
        }

        function _1(t) {
            var e = /^\n* /;
            return e.test(t)
        }

        var V1 = 1, X1 = 2, Z1 = 3, $1 = 4, gI = 5;

        function vde(t, e, r, i, n) {
            var s, o, a, l = !1, c = !1, u = i !== -1, g = -1,
                f = Qde(t.charCodeAt(0)) && !ev(t.charCodeAt(t.length - 1));
            if (e) for (s = 0; s < t.length; s++) {
                if (o = t.charCodeAt(s), !sg(o)) return gI;
                a = s > 0 ? t.charCodeAt(s - 1) : null, f = f && z1(o, a)
            } else {
                for (s = 0; s < t.length; s++) {
                    if (o = t.charCodeAt(s), o === op) l = !0, u && (c = c || s - g - 1 > i && t[g + 1] !== " ", g = s); else if (!sg(o)) return gI;
                    a = s > 0 ? t.charCodeAt(s - 1) : null, f = f && z1(o, a)
                }
                c = c || u && s - g - 1 > i && t[g + 1] !== " "
            }
            return !l && !c ? f && !n(t) ? V1 : X1 : r > 9 && _1(t) ? gI : c ? $1 : Z1
        }

        function xde(t, e, r, i) {
            t.dump = function () {
                if (e.length === 0) return "''";
                if (!t.noCompatMode && Ide.indexOf(e) !== -1) return "'" + e + "'";
                var n = t.indent * Math.max(1, r),
                    s = t.lineWidth === -1 ? -1 : Math.max(Math.min(t.lineWidth, 40), t.lineWidth - n),
                    o = i || t.flowLevel > -1 && r >= t.flowLevel;

                function a(l) {
                    return Bde(t, l)
                }

                switch (vde(e, o, t.indent, s, a)) {
                    case V1:
                        return e;
                    case X1:
                        return "'" + e.replace(/'/g, "''") + "'";
                    case Z1:
                        return "|" + eU(e, t.indent) + tU(W1(e, n));
                    case $1:
                        return ">" + eU(e, t.indent) + tU(W1(Sde(e, s), n));
                    case gI:
                        return '"' + kde(e, s) + '"';
                    default:
                        throw new sp("impossible error: invalid scalar style")
                }
            }()
        }

        function eU(t, e) {
            var r = _1(t) ? String(e) : "", i = t[t.length - 1] === `
`, n = i && (t[t.length - 2] === `
` || t === `
`), s = n ? "+" : i ? "" : "-";
            return r + s + `
`
        }

        function tU(t) {
            return t[t.length - 1] === `
` ? t.slice(0, -1) : t
        }

        function Sde(t, e) {
            for (var r = /(\n+)([^\n]*)/g, i = function () {
                var c = t.indexOf(`
`);
                return c = c !== -1 ? c : t.length, r.lastIndex = c, rU(t.slice(0, c), e)
            }(), n = t[0] === `
` || t[0] === " ", s, o; o = r.exec(t);) {
                var a = o[1], l = o[2];
                s = l[0] === " ", i += a + (!n && !s && l !== "" ? `
` : "") + rU(l, e), n = s
            }
            return i
        }

        function rU(t, e) {
            if (t === "" || t[0] === " ") return t;
            for (var r = / [^ ]/g, i, n = 0, s, o = 0, a = 0, l = ""; i = r.exec(t);) a = i.index, a - n > e && (s = o > n ? o : a, l += `
` + t.slice(n, s), n = s + 1), o = a;
            return l += `
`, t.length - n > e && o > n ? l += t.slice(n, o) + `
` + t.slice(o + 1) : l += t.slice(n), l.slice(1)
        }

        function kde(t) {
            for (var e = "", r, i, n, s = 0; s < t.length; s++) {
                if (r = t.charCodeAt(s), r >= 55296 && r <= 56319 && (i = t.charCodeAt(s + 1), i >= 56320 && i <= 57343)) {
                    e += J1((r - 55296) * 1024 + i - 56320 + 65536), s++;
                    continue
                }
                n = Ki[r], e += !n && sg(r) ? t[s] : n || J1(r)
            }
            return e
        }

        function Pde(t, e, r) {
            var i = "", n = t.tag, s, o;
            for (s = 0, o = r.length; s < o; s += 1) fc(t, e, r[s], !1, !1) && (s !== 0 && (i += "," + (t.condenseFlow ? "" : " ")), i += t.dump);
            t.tag = n, t.dump = "[" + i + "]"
        }

        function Dde(t, e, r, i) {
            var n = "", s = t.tag, o, a;
            for (o = 0, a = r.length; o < a; o += 1) fc(t, e + 1, r[o], !0, !0) && ((!i || o !== 0) && (n += $Q(t, e)), t.dump && op === t.dump.charCodeAt(0) ? n += "-" : n += "- ", n += t.dump);
            t.tag = s, t.dump = n || "[]"
        }

        function Rde(t, e, r) {
            var i = "", n = t.tag, s = Object.keys(r), o, a, l, c, u;
            for (o = 0, a = s.length; o < a; o += 1) u = "", o !== 0 && (u += ", "), t.condenseFlow && (u += '"'), l = s[o], c = r[l], !!fc(t, e, l, !1, !1) && (t.dump.length > 1024 && (u += "? "), u += t.dump + (t.condenseFlow ? '"' : "") + ":" + (t.condenseFlow ? "" : " "), !!fc(t, e, c, !1, !1) && (u += t.dump, i += u));
            t.tag = n, t.dump = "{" + i + "}"
        }

        function Fde(t, e, r, i) {
            var n = "", s = t.tag, o = Object.keys(r), a, l, c, u, g, f;
            if (t.sortKeys === !0) o.sort(); else if (typeof t.sortKeys == "function") o.sort(t.sortKeys); else if (t.sortKeys) throw new sp("sortKeys must be a boolean or a function");
            for (a = 0, l = o.length; a < l; a += 1) f = "", (!i || a !== 0) && (f += $Q(t, e)), c = o[a], u = r[c], !!fc(t, e + 1, c, !0, !0, !0) && (g = t.tag !== null && t.tag !== "?" || t.dump && t.dump.length > 1024, g && (t.dump && op === t.dump.charCodeAt(0) ? f += "?" : f += "? "), f += t.dump, g && (f += $Q(t, e)), !!fc(t, e + 1, u, !0, g) && (t.dump && op === t.dump.charCodeAt(0) ? f += ":" : f += ": ", f += t.dump, n += f));
            t.tag = s, t.dump = n || "{}"
        }

        function iU(t, e, r) {
            var i, n, s, o, a, l;
            for (n = r ? t.explicitTypes : t.implicitTypes, s = 0, o = n.length; s < o; s += 1) if (a = n[s], (a.instanceOf || a.predicate) && (!a.instanceOf || typeof e == "object" && e instanceof a.instanceOf) && (!a.predicate || a.predicate(e))) {
                if (t.tag = r ? a.tag : "?", a.represent) {
                    if (l = t.styleMap[a.tag] || a.defaultStyle, O1.call(a.represent) === "[object Function]") i = a.represent(e, l); else if (M1.call(a.represent, l)) i = a.represent[l](e, l); else throw new sp("!<" + a.tag + '> tag resolver accepts not "' + l + '" style');
                    t.dump = i
                }
                return !0
            }
            return !1
        }

        function fc(t, e, r, i, n, s) {
            t.tag = null, t.dump = r, iU(t, r, !1) || iU(t, r, !0);
            var o = O1.call(t.dump);
            i && (i = t.flowLevel < 0 || t.flowLevel > e);
            var a = o === "[object Object]" || o === "[object Array]", l, c;
            if (a && (l = t.duplicates.indexOf(r), c = l !== -1), (t.tag !== null && t.tag !== "?" || c || t.indent !== 2 && e > 0) && (n = !1), c && t.usedDuplicates[l]) t.dump = "*ref_" + l; else {
                if (a && c && !t.usedDuplicates[l] && (t.usedDuplicates[l] = !0), o === "[object Object]") i && Object.keys(t.dump).length !== 0 ? (Fde(t, e, t.dump, n), c && (t.dump = "&ref_" + l + t.dump)) : (Rde(t, e, t.dump), c && (t.dump = "&ref_" + l + " " + t.dump)); else if (o === "[object Array]") {
                    var u = t.noArrayIndent && e > 0 ? e - 1 : e;
                    i && t.dump.length !== 0 ? (Dde(t, u, t.dump, n), c && (t.dump = "&ref_" + l + t.dump)) : (Pde(t, u, t.dump), c && (t.dump = "&ref_" + l + " " + t.dump))
                } else if (o === "[object String]") t.tag !== "?" && xde(t, t.dump, e, s); else {
                    if (t.skipInvalid) return !1;
                    throw new sp("unacceptable kind of an object to dump " + o)
                }
                t.tag !== null && t.tag !== "?" && (t.dump = "!<" + t.tag + "> " + t.dump)
            }
            return !0
        }

        function Nde(t, e) {
            var r = [], i = [], n, s;
            for (tv(t, r, i), n = 0, s = i.length; n < s; n += 1) e.duplicates.push(r[i[n]]);
            e.usedDuplicates = new Array(s)
        }

        function tv(t, e, r) {
            var i, n, s;
            if (t !== null && typeof t == "object") if (n = e.indexOf(t), n !== -1) r.indexOf(n) === -1 && r.push(n); else if (e.push(t), Array.isArray(t)) for (n = 0, s = t.length; n < s; n += 1) tv(t[n], e, r); else for (i = Object.keys(t), n = 0, s = i.length; n < s; n += 1) tv(t[i[n]], e, r)
        }

        function nU(t, e) {
            e = e || {};
            var r = new wde(e);
            return r.noRefs || Nde(t, r), fc(r, 0, t, !0, !0) ? r.dump + `
` : ""
        }

        function Lde(t, e) {
            return nU(t, np.extend({schema: ide}, e))
        }

        ZQ.exports.dump = nU;
        ZQ.exports.safeDump = Lde
    });
    var aU = w((r$e, Or) => {
        "use strict";
        var fI = T1(), oU = sU();

        function hI(t) {
            return function () {
                throw new Error("Function " + t + " is deprecated and cannot be used.")
            }
        }

        Or.exports.Type = li();
        Or.exports.Schema = cc();
        Or.exports.FAILSAFE_SCHEMA = oI();
        Or.exports.JSON_SCHEMA = JQ();
        Or.exports.CORE_SCHEMA = WQ();
        Or.exports.DEFAULT_SAFE_SCHEMA = eg();
        Or.exports.DEFAULT_FULL_SCHEMA = rp();
        Or.exports.load = fI.load;
        Or.exports.loadAll = fI.loadAll;
        Or.exports.safeLoad = fI.safeLoad;
        Or.exports.safeLoadAll = fI.safeLoadAll;
        Or.exports.dump = oU.dump;
        Or.exports.safeDump = oU.safeDump;
        Or.exports.YAMLException = Zu();
        Or.exports.MINIMAL_SCHEMA = oI();
        Or.exports.SAFE_SCHEMA = eg();
        Or.exports.DEFAULT_SCHEMA = rp();
        Or.exports.scan = hI("scan");
        Or.exports.parse = hI("parse");
        Or.exports.compose = hI("compose");
        Or.exports.addConstructor = hI("addConstructor")
    });
    var lU = w((i$e, AU) => {
        "use strict";
        var Tde = aU();
        AU.exports = Tde
    });
    var uU = w((n$e, cU) => {
        "use strict";

        function Ode(t, e) {
            function r() {
                this.constructor = t
            }

            r.prototype = e.prototype, t.prototype = new r
        }

        function hc(t, e, r, i) {
            this.message = t, this.expected = e, this.found = r, this.location = i, this.name = "SyntaxError", typeof Error.captureStackTrace == "function" && Error.captureStackTrace(this, hc)
        }

        Ode(hc, Error);
        hc.buildMessage = function (t, e) {
            var r = {
                literal: function (c) {
                    return '"' + n(c.text) + '"'
                }, class: function (c) {
                    var u = "", g;
                    for (g = 0; g < c.parts.length; g++) u += c.parts[g] instanceof Array ? s(c.parts[g][0]) + "-" + s(c.parts[g][1]) : s(c.parts[g]);
                    return "[" + (c.inverted ? "^" : "") + u + "]"
                }, any: function (c) {
                    return "any character"
                }, end: function (c) {
                    return "end of input"
                }, other: function (c) {
                    return c.description
                }
            };

            function i(c) {
                return c.charCodeAt(0).toString(16).toUpperCase()
            }

            function n(c) {
                return c.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\0/g, "\\0").replace(/\t/g, "\\t").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/[\x00-\x0F]/g, function (u) {
                    return "\\x0" + i(u)
                }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (u) {
                    return "\\x" + i(u)
                })
            }

            function s(c) {
                return c.replace(/\\/g, "\\\\").replace(/\]/g, "\\]").replace(/\^/g, "\\^").replace(/-/g, "\\-").replace(/\0/g, "\\0").replace(/\t/g, "\\t").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/[\x00-\x0F]/g, function (u) {
                    return "\\x0" + i(u)
                }).replace(/[\x10-\x1F\x7F-\x9F]/g, function (u) {
                    return "\\x" + i(u)
                })
            }

            function o(c) {
                return r[c.type](c)
            }

            function a(c) {
                var u = new Array(c.length), g, f;
                for (g = 0; g < c.length; g++) u[g] = o(c[g]);
                if (u.sort(), u.length > 0) {
                    for (g = 1, f = 1; g < u.length; g++) u[g - 1] !== u[g] && (u[f] = u[g], f++);
                    u.length = f
                }
                switch (u.length) {
                    case 1:
                        return u[0];
                    case 2:
                        return u[0] + " or " + u[1];
                    default:
                        return u.slice(0, -1).join(", ") + ", or " + u[u.length - 1]
                }
            }

            function l(c) {
                return c ? '"' + n(c) + '"' : "end of input"
            }

            return "Expected " + a(t) + " but " + l(e) + " found."
        };

        function Mde(t, e) {
            e = e !== void 0 ? e : {};
            var r = {}, i = {Start: Zs}, n = Zs, s = function (R) {
                    return [].concat(...R)
                }, o = "-", a = gr("-", !1), l = function (R) {
                    return R
                }, c = function (R) {
                    return Object.assign({}, ...R)
                }, u = "#", g = gr("#", !1), f = Wl(), h = function () {
                    return {}
                }, p = ":", m = gr(":", !1), y = function (R, q) {
                    return {[R]: q}
                }, b = ",", S = gr(",", !1), k = function (R, q) {
                    return q
                }, T = function (R, q, me) {
                    return Object.assign({}, ...[R].concat(q).map(Ge => ({[Ge]: me})))
                }, Y = function (R) {
                    return R
                }, j = function (R) {
                    return R
                }, Z = Xs("correct indentation"), J = " ", re = gr(" ", !1), ee = function (R) {
                    return R.length === TA * Yu
                }, A = function (R) {
                    return R.length === (TA + 1) * Yu
                }, oe = function () {
                    return TA++, !0
                }, le = function () {
                    return TA--, !0
                }, X = function () {
                    return Mu()
                }, O = Xs("pseudostring"), L = /^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/, pe = qn(["\r", `
`, "	", " ", "?", ":", ",", "]", "[", "{", "}", "#", "&", "*", "!", "|", ">", "'", '"', "%", "@", "`", "-"], !0, !1),
                Ce = /^[^\r\n\t ,\][{}:#"']/, Oe = qn(["\r", `
`, "	", " ", ",", "]", "[", "{", "}", ":", "#", '"', "'"], !0, !1), te = function () {
                    return Mu().replace(/^ *| *$/g, "")
                }, se = "--", be = gr("--", !1), he = /^[a-zA-Z\/0-9]/,
                Fe = qn([["a", "z"], ["A", "Z"], "/", ["0", "9"]], !1, !1), Ue = /^[^\r\n\t :,]/, xe = qn(["\r", `
`, "	", " ", ":", ","], !0, !1), Se = "null", de = gr("null", !1), V = function () {
                    return null
                }, Qe = "true", ce = gr("true", !1), fe = function () {
                    return !0
                }, gt = "false", Ht = gr("false", !1), Mt = function () {
                    return !1
                }, mi = Xs("string"), Gt = '"', Qr = gr('"', !1), Ti = function () {
                    return ""
                }, Vs = function (R) {
                    return R
                }, Un = function (R) {
                    return R.join("")
                }, Hn = /^[^"\\\0-\x1F\x7F]/, vr = qn(['"', "\\", ["\0", ""], "\x7F"], !0, !1), Gn = '\\"',
                gs = gr('\\"', !1), ya = function () {
                    return '"'
                }, kA = "\\\\", Ru = gr("\\\\", !1), fs = function () {
                    return "\\"
                }, xA = "\\/", wa = gr("\\/", !1), Fu = function () {
                    return "/"
                }, PA = "\\b", DA = gr("\\b", !1), Sr = function () {
                    return "\b"
                }, jl = "\\f", Nu = gr("\\f", !1), So = function () {
                    return "\f"
                }, Lu = "\\n", Sh = gr("\\n", !1), kh = function () {
                    return `
`
                }, ae = "\\r", Oi = gr("\\r", !1), ko = function () {
                    return "\r"
                }, jn = "\\t", Tu = gr("\\t", !1), vt = function () {
                    return "	"
                }, Yl = "\\u", Yn = gr("\\u", !1), hs = function (R, q, me, Ge) {
                    return String.fromCharCode(parseInt(`0x${R}${q}${me}${Ge}`))
                }, ps = /^[0-9a-fA-F]/, pt = qn([["0", "9"], ["a", "f"], ["A", "F"]], !1, !1), xo = Xs("blank space"),
                lt = /^[ \t]/, mn = qn([" ", "	"], !1, !1), v = Xs("white space"), Tt = /^[ \t\n\r]/,
                Ou = qn([" ", "	", `
`, "\r"], !1, !1), ql = `\r
`, xh = gr(`\r
`, !1), Ph = `
`, Dh = gr(`
`, !1), Rh = "\r", Fh = gr("\r", !1), G = 0, yt = 0, RA = [{line: 1, column: 1}], $i = 0, Jl = [], $e = 0, Ba;
            if ("startRule" in e) {
                if (!(e.startRule in i)) throw new Error(`Can't start parsing from rule "` + e.startRule + '".');
                n = i[e.startRule]
            }

            function Mu() {
                return t.substring(yt, G)
            }

            function kE() {
                return En(yt, G)
            }

            function Nh(R, q) {
                throw q = q !== void 0 ? q : En(yt, G), zl([Xs(R)], t.substring(yt, G), q)
            }

            function xE(R, q) {
                throw q = q !== void 0 ? q : En(yt, G), Ku(R, q)
            }

            function gr(R, q) {
                return {type: "literal", text: R, ignoreCase: q}
            }

            function qn(R, q, me) {
                return {type: "class", parts: R, inverted: q, ignoreCase: me}
            }

            function Wl() {
                return {type: "any"}
            }

            function Lh() {
                return {type: "end"}
            }

            function Xs(R) {
                return {type: "other", description: R}
            }

            function ba(R) {
                var q = RA[R], me;
                if (q) return q;
                for (me = R - 1; !RA[me];) me--;
                for (q = RA[me], q = {
                    line: q.line,
                    column: q.column
                }; me < R;) t.charCodeAt(me) === 10 ? (q.line++, q.column = 1) : q.column++, me++;
                return RA[R] = q, q
            }

            function En(R, q) {
                var me = ba(R), Ge = ba(q);
                return {
                    start: {offset: R, line: me.line, column: me.column},
                    end: {offset: q, line: Ge.line, column: Ge.column}
                }
            }

            function Me(R) {
                G < $i || (G > $i && ($i = G, Jl = []), Jl.push(R))
            }

            function Ku(R, q) {
                return new hc(R, null, null, q)
            }

            function zl(R, q, me) {
                return new hc(hc.buildMessage(R, q), R, q, me)
            }

            function Zs() {
                var R;
                return R = Uu(), R
            }

            function _l() {
                var R, q, me;
                for (R = G, q = [], me = FA(); me !== r;) q.push(me), me = FA();
                return q !== r && (yt = R, q = s(q)), R = q, R
            }

            function FA() {
                var R, q, me, Ge, Te;
                return R = G, q = va(), q !== r ? (t.charCodeAt(G) === 45 ? (me = o, G++) : (me = r, $e === 0 && Me(a)), me !== r ? (Ge = Lr(), Ge !== r ? (Te = Qa(), Te !== r ? (yt = R, q = l(Te), R = q) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r), R
            }

            function Uu() {
                var R, q, me;
                for (R = G, q = [], me = Hu(); me !== r;) q.push(me), me = Hu();
                return q !== r && (yt = R, q = c(q)), R = q, R
            }

            function Hu() {
                var R, q, me, Ge, Te, Xe, Et, Rt, Jn;
                if (R = G, q = Lr(), q === r && (q = null), q !== r) {
                    if (me = G, t.charCodeAt(G) === 35 ? (Ge = u, G++) : (Ge = r, $e === 0 && Me(g)), Ge !== r) {
                        if (Te = [], Xe = G, Et = G, $e++, Rt = to(), $e--, Rt === r ? Et = void 0 : (G = Et, Et = r), Et !== r ? (t.length > G ? (Rt = t.charAt(G), G++) : (Rt = r, $e === 0 && Me(f)), Rt !== r ? (Et = [Et, Rt], Xe = Et) : (G = Xe, Xe = r)) : (G = Xe, Xe = r), Xe !== r) for (; Xe !== r;) Te.push(Xe), Xe = G, Et = G, $e++, Rt = to(), $e--, Rt === r ? Et = void 0 : (G = Et, Et = r), Et !== r ? (t.length > G ? (Rt = t.charAt(G), G++) : (Rt = r, $e === 0 && Me(f)), Rt !== r ? (Et = [Et, Rt], Xe = Et) : (G = Xe, Xe = r)) : (G = Xe, Xe = r); else Te = r;
                        Te !== r ? (Ge = [Ge, Te], me = Ge) : (G = me, me = r)
                    } else G = me, me = r;
                    if (me === r && (me = null), me !== r) {
                        if (Ge = [], Te = eo(), Te !== r) for (; Te !== r;) Ge.push(Te), Te = eo(); else Ge = r;
                        Ge !== r ? (yt = R, q = h(), R = q) : (G = R, R = r)
                    } else G = R, R = r
                } else G = R, R = r;
                if (R === r && (R = G, q = va(), q !== r ? (me = Vl(), me !== r ? (Ge = Lr(), Ge === r && (Ge = null), Ge !== r ? (t.charCodeAt(G) === 58 ? (Te = p, G++) : (Te = r, $e === 0 && Me(m)), Te !== r ? (Xe = Lr(), Xe === r && (Xe = null), Xe !== r ? (Et = Qa(), Et !== r ? (yt = R, q = y(me, Et), R = q) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r), R === r && (R = G, q = va(), q !== r ? (me = $s(), me !== r ? (Ge = Lr(), Ge === r && (Ge = null), Ge !== r ? (t.charCodeAt(G) === 58 ? (Te = p, G++) : (Te = r, $e === 0 && Me(m)), Te !== r ? (Xe = Lr(), Xe === r && (Xe = null), Xe !== r ? (Et = Qa(), Et !== r ? (yt = R, q = y(me, Et), R = q) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r), R === r))) {
                    if (R = G, q = va(), q !== r) if (me = $s(), me !== r) if (Ge = Lr(), Ge !== r) if (Te = PE(), Te !== r) {
                        if (Xe = [], Et = eo(), Et !== r) for (; Et !== r;) Xe.push(Et), Et = eo(); else Xe = r;
                        Xe !== r ? (yt = R, q = y(me, Te), R = q) : (G = R, R = r)
                    } else G = R, R = r; else G = R, R = r; else G = R, R = r; else G = R, R = r;
                    if (R === r) if (R = G, q = va(), q !== r) if (me = $s(), me !== r) {
                        if (Ge = [], Te = G, Xe = Lr(), Xe === r && (Xe = null), Xe !== r ? (t.charCodeAt(G) === 44 ? (Et = b, G++) : (Et = r, $e === 0 && Me(S)), Et !== r ? (Rt = Lr(), Rt === r && (Rt = null), Rt !== r ? (Jn = $s(), Jn !== r ? (yt = Te, Xe = k(me, Jn), Te = Xe) : (G = Te, Te = r)) : (G = Te, Te = r)) : (G = Te, Te = r)) : (G = Te, Te = r), Te !== r) for (; Te !== r;) Ge.push(Te), Te = G, Xe = Lr(), Xe === r && (Xe = null), Xe !== r ? (t.charCodeAt(G) === 44 ? (Et = b, G++) : (Et = r, $e === 0 && Me(S)), Et !== r ? (Rt = Lr(), Rt === r && (Rt = null), Rt !== r ? (Jn = $s(), Jn !== r ? (yt = Te, Xe = k(me, Jn), Te = Xe) : (G = Te, Te = r)) : (G = Te, Te = r)) : (G = Te, Te = r)) : (G = Te, Te = r); else Ge = r;
                        Ge !== r ? (Te = Lr(), Te === r && (Te = null), Te !== r ? (t.charCodeAt(G) === 58 ? (Xe = p, G++) : (Xe = r, $e === 0 && Me(m)), Xe !== r ? (Et = Lr(), Et === r && (Et = null), Et !== r ? (Rt = Qa(), Rt !== r ? (yt = R, q = T(me, Ge, Rt), R = q) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)
                    } else G = R, R = r; else G = R, R = r
                }
                return R
            }

            function Qa() {
                var R, q, me, Ge, Te, Xe, Et;
                if (R = G, q = G, $e++, me = G, Ge = to(), Ge !== r ? (Te = it(), Te !== r ? (t.charCodeAt(G) === 45 ? (Xe = o, G++) : (Xe = r, $e === 0 && Me(a)), Xe !== r ? (Et = Lr(), Et !== r ? (Ge = [Ge, Te, Xe, Et], me = Ge) : (G = me, me = r)) : (G = me, me = r)) : (G = me, me = r)) : (G = me, me = r), $e--, me !== r ? (G = q, q = void 0) : q = r, q !== r ? (me = eo(), me !== r ? (Ge = Po(), Ge !== r ? (Te = _l(), Te !== r ? (Xe = NA(), Xe !== r ? (yt = R, q = Y(Te), R = q) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r), R === r && (R = G, q = to(), q !== r ? (me = Po(), me !== r ? (Ge = Uu(), Ge !== r ? (Te = NA(), Te !== r ? (yt = R, q = Y(Ge), R = q) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r), R === r)) if (R = G, q = Xl(), q !== r) {
                    if (me = [], Ge = eo(), Ge !== r) for (; Ge !== r;) me.push(Ge), Ge = eo(); else me = r;
                    me !== r ? (yt = R, q = j(q), R = q) : (G = R, R = r)
                } else G = R, R = r;
                return R
            }

            function va() {
                var R, q, me;
                for ($e++, R = G, q = [], t.charCodeAt(G) === 32 ? (me = J, G++) : (me = r, $e === 0 && Me(re)); me !== r;) q.push(me), t.charCodeAt(G) === 32 ? (me = J, G++) : (me = r, $e === 0 && Me(re));
                return q !== r ? (yt = G, me = ee(q), me ? me = void 0 : me = r, me !== r ? (q = [q, me], R = q) : (G = R, R = r)) : (G = R, R = r), $e--, R === r && (q = r, $e === 0 && Me(Z)), R
            }

            function it() {
                var R, q, me;
                for (R = G, q = [], t.charCodeAt(G) === 32 ? (me = J, G++) : (me = r, $e === 0 && Me(re)); me !== r;) q.push(me), t.charCodeAt(G) === 32 ? (me = J, G++) : (me = r, $e === 0 && Me(re));
                return q !== r ? (yt = G, me = A(q), me ? me = void 0 : me = r, me !== r ? (q = [q, me], R = q) : (G = R, R = r)) : (G = R, R = r), R
            }

            function Po() {
                var R;
                return yt = G, R = oe(), R ? R = void 0 : R = r, R
            }

            function NA() {
                var R;
                return yt = G, R = le(), R ? R = void 0 : R = r, R
            }

            function Vl() {
                var R;
                return R = Zl(), R === r && (R = Th()), R
            }

            function $s() {
                var R, q, me;
                if (R = Zl(), R === r) {
                    if (R = G, q = [], me = Gu(), me !== r) for (; me !== r;) q.push(me), me = Gu(); else q = r;
                    q !== r && (yt = R, q = X()), R = q
                }
                return R
            }

            function Xl() {
                var R;
                return R = Oh(), R === r && (R = DE(), R === r && (R = Zl(), R === r && (R = Th()))), R
            }

            function PE() {
                var R;
                return R = Oh(), R === r && (R = Zl(), R === r && (R = Gu())), R
            }

            function Th() {
                var R, q, me, Ge, Te, Xe;
                if ($e++, R = G, L.test(t.charAt(G)) ? (q = t.charAt(G), G++) : (q = r, $e === 0 && Me(pe)), q !== r) {
                    for (me = [], Ge = G, Te = Lr(), Te === r && (Te = null), Te !== r ? (Ce.test(t.charAt(G)) ? (Xe = t.charAt(G), G++) : (Xe = r, $e === 0 && Me(Oe)), Xe !== r ? (Te = [Te, Xe], Ge = Te) : (G = Ge, Ge = r)) : (G = Ge, Ge = r); Ge !== r;) me.push(Ge), Ge = G, Te = Lr(), Te === r && (Te = null), Te !== r ? (Ce.test(t.charAt(G)) ? (Xe = t.charAt(G), G++) : (Xe = r, $e === 0 && Me(Oe)), Xe !== r ? (Te = [Te, Xe], Ge = Te) : (G = Ge, Ge = r)) : (G = Ge, Ge = r);
                    me !== r ? (yt = R, q = te(), R = q) : (G = R, R = r)
                } else G = R, R = r;
                return $e--, R === r && (q = r, $e === 0 && Me(O)), R
            }

            function Gu() {
                var R, q, me, Ge, Te;
                if (R = G, t.substr(G, 2) === se ? (q = se, G += 2) : (q = r, $e === 0 && Me(be)), q === r && (q = null), q !== r) if (he.test(t.charAt(G)) ? (me = t.charAt(G), G++) : (me = r, $e === 0 && Me(Fe)), me !== r) {
                    for (Ge = [], Ue.test(t.charAt(G)) ? (Te = t.charAt(G), G++) : (Te = r, $e === 0 && Me(xe)); Te !== r;) Ge.push(Te), Ue.test(t.charAt(G)) ? (Te = t.charAt(G), G++) : (Te = r, $e === 0 && Me(xe));
                    Ge !== r ? (yt = R, q = te(), R = q) : (G = R, R = r)
                } else G = R, R = r; else G = R, R = r;
                return R
            }

            function Oh() {
                var R, q;
                return R = G, t.substr(G, 4) === Se ? (q = Se, G += 4) : (q = r, $e === 0 && Me(de)), q !== r && (yt = R, q = V()), R = q, R
            }

            function DE() {
                var R, q;
                return R = G, t.substr(G, 4) === Qe ? (q = Qe, G += 4) : (q = r, $e === 0 && Me(ce)), q !== r && (yt = R, q = fe()), R = q, R === r && (R = G, t.substr(G, 5) === gt ? (q = gt, G += 5) : (q = r, $e === 0 && Me(Ht)), q !== r && (yt = R, q = Mt()), R = q), R
            }

            function Zl() {
                var R, q, me, Ge;
                return $e++, R = G, t.charCodeAt(G) === 34 ? (q = Gt, G++) : (q = r, $e === 0 && Me(Qr)), q !== r ? (t.charCodeAt(G) === 34 ? (me = Gt, G++) : (me = r, $e === 0 && Me(Qr)), me !== r ? (yt = R, q = Ti(), R = q) : (G = R, R = r)) : (G = R, R = r), R === r && (R = G, t.charCodeAt(G) === 34 ? (q = Gt, G++) : (q = r, $e === 0 && Me(Qr)), q !== r ? (me = RE(), me !== r ? (t.charCodeAt(G) === 34 ? (Ge = Gt, G++) : (Ge = r, $e === 0 && Me(Qr)), Ge !== r ? (yt = R, q = Vs(me), R = q) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)), $e--, R === r && (q = r, $e === 0 && Me(mi)), R
            }

            function RE() {
                var R, q, me;
                if (R = G, q = [], me = ju(), me !== r) for (; me !== r;) q.push(me), me = ju(); else q = r;
                return q !== r && (yt = R, q = Un(q)), R = q, R
            }

            function ju() {
                var R, q, me, Ge, Te, Xe;
                return Hn.test(t.charAt(G)) ? (R = t.charAt(G), G++) : (R = r, $e === 0 && Me(vr)), R === r && (R = G, t.substr(G, 2) === Gn ? (q = Gn, G += 2) : (q = r, $e === 0 && Me(gs)), q !== r && (yt = R, q = ya()), R = q, R === r && (R = G, t.substr(G, 2) === kA ? (q = kA, G += 2) : (q = r, $e === 0 && Me(Ru)), q !== r && (yt = R, q = fs()), R = q, R === r && (R = G, t.substr(G, 2) === xA ? (q = xA, G += 2) : (q = r, $e === 0 && Me(wa)), q !== r && (yt = R, q = Fu()), R = q, R === r && (R = G, t.substr(G, 2) === PA ? (q = PA, G += 2) : (q = r, $e === 0 && Me(DA)), q !== r && (yt = R, q = Sr()), R = q, R === r && (R = G, t.substr(G, 2) === jl ? (q = jl, G += 2) : (q = r, $e === 0 && Me(Nu)), q !== r && (yt = R, q = So()), R = q, R === r && (R = G, t.substr(G, 2) === Lu ? (q = Lu, G += 2) : (q = r, $e === 0 && Me(Sh)), q !== r && (yt = R, q = kh()), R = q, R === r && (R = G, t.substr(G, 2) === ae ? (q = ae, G += 2) : (q = r, $e === 0 && Me(Oi)), q !== r && (yt = R, q = ko()), R = q, R === r && (R = G, t.substr(G, 2) === jn ? (q = jn, G += 2) : (q = r, $e === 0 && Me(Tu)), q !== r && (yt = R, q = vt()), R = q, R === r && (R = G, t.substr(G, 2) === Yl ? (q = Yl, G += 2) : (q = r, $e === 0 && Me(Yn)), q !== r ? (me = LA(), me !== r ? (Ge = LA(), Ge !== r ? (Te = LA(), Te !== r ? (Xe = LA(), Xe !== r ? (yt = R, q = hs(me, Ge, Te, Xe), R = q) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)) : (G = R, R = r)))))))))), R
            }

            function LA() {
                var R;
                return ps.test(t.charAt(G)) ? (R = t.charAt(G), G++) : (R = r, $e === 0 && Me(pt)), R
            }

            function Lr() {
                var R, q;
                if ($e++, R = [], lt.test(t.charAt(G)) ? (q = t.charAt(G), G++) : (q = r, $e === 0 && Me(mn)), q !== r) for (; q !== r;) R.push(q), lt.test(t.charAt(G)) ? (q = t.charAt(G), G++) : (q = r, $e === 0 && Me(mn)); else R = r;
                return $e--, R === r && (q = r, $e === 0 && Me(xo)), R
            }

            function FE() {
                var R, q;
                if ($e++, R = [], Tt.test(t.charAt(G)) ? (q = t.charAt(G), G++) : (q = r, $e === 0 && Me(Ou)), q !== r) for (; q !== r;) R.push(q), Tt.test(t.charAt(G)) ? (q = t.charAt(G), G++) : (q = r, $e === 0 && Me(Ou)); else R = r;
                return $e--, R === r && (q = r, $e === 0 && Me(v)), R
            }

            function eo() {
                var R, q, me, Ge, Te, Xe;
                if (R = G, q = to(), q !== r) {
                    for (me = [], Ge = G, Te = Lr(), Te === r && (Te = null), Te !== r ? (Xe = to(), Xe !== r ? (Te = [Te, Xe], Ge = Te) : (G = Ge, Ge = r)) : (G = Ge, Ge = r); Ge !== r;) me.push(Ge), Ge = G, Te = Lr(), Te === r && (Te = null), Te !== r ? (Xe = to(), Xe !== r ? (Te = [Te, Xe], Ge = Te) : (G = Ge, Ge = r)) : (G = Ge, Ge = r);
                    me !== r ? (q = [q, me], R = q) : (G = R, R = r)
                } else G = R, R = r;
                return R
            }

            function to() {
                var R;
                return t.substr(G, 2) === ql ? (R = ql, G += 2) : (R = r, $e === 0 && Me(xh)), R === r && (t.charCodeAt(G) === 10 ? (R = Ph, G++) : (R = r, $e === 0 && Me(Dh)), R === r && (t.charCodeAt(G) === 13 ? (R = Rh, G++) : (R = r, $e === 0 && Me(Fh)))), R
            }

            let Yu = 2, TA = 0;
            if (Ba = n(), Ba !== r && G === t.length) return Ba;
            throw Ba !== r && G < t.length && Me(Lh()), zl(Jl, $i < t.length ? t.charAt($i) : null, $i < t.length ? En($i, $i + 1) : En($i, $i))
        }

        cU.exports = {SyntaxError: hc, parse: Mde}
    });
    var CU = w((l$e, nv) => {
        "use strict";
        var jde = t => {
            let e = !1, r = !1, i = !1;
            for (let n = 0; n < t.length; n++) {
                let s = t[n];
                e && /[a-zA-Z]/.test(s) && s.toUpperCase() === s ? (t = t.slice(0, n) + "-" + t.slice(n), e = !1, i = r, r = !0, n++) : r && i && /[a-zA-Z]/.test(s) && s.toLowerCase() === s ? (t = t.slice(0, n - 1) + "-" + t.slice(n - 1), i = r, r = !1, e = !0) : (e = s.toLowerCase() === s && s.toUpperCase() !== s, i = r, r = s.toUpperCase() === s && s.toLowerCase() !== s)
            }
            return t
        }, dU = (t, e) => {
            if (!(typeof t == "string" || Array.isArray(t))) throw new TypeError("Expected the input to be `string | string[]`");
            e = Object.assign({pascalCase: !1}, e);
            let r = n => e.pascalCase ? n.charAt(0).toUpperCase() + n.slice(1) : n;
            return Array.isArray(t) ? t = t.map(n => n.trim()).filter(n => n.length).join("-") : t = t.trim(), t.length === 0 ? "" : t.length === 1 ? e.pascalCase ? t.toUpperCase() : t.toLowerCase() : (t !== t.toLowerCase() && (t = jde(t)), t = t.replace(/^[_.\- ]+/, "").toLowerCase().replace(/[_.\- ]+(\w|$)/g, (n, s) => s.toUpperCase()).replace(/\d+(\w|$)/g, n => n.toUpperCase()), r(t))
        };
        nv.exports = dU;
        nv.exports.default = dU
    });
    var EU = w((c$e, mU) => {
        mU.exports = [{
            name: "AppVeyor",
            constant: "APPVEYOR",
            env: "APPVEYOR",
            pr: "APPVEYOR_PULL_REQUEST_NUMBER"
        }, {
            name: "Azure Pipelines",
            constant: "AZURE_PIPELINES",
            env: "SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",
            pr: "SYSTEM_PULLREQUEST_PULLREQUESTID"
        }, {name: "Appcircle", constant: "APPCIRCLE", env: "AC_APPCIRCLE"}, {
            name: "Bamboo",
            constant: "BAMBOO",
            env: "bamboo_planKey"
        }, {
            name: "Bitbucket Pipelines",
            constant: "BITBUCKET",
            env: "BITBUCKET_COMMIT",
            pr: "BITBUCKET_PR_ID"
        }, {name: "Bitrise", constant: "BITRISE", env: "BITRISE_IO", pr: "BITRISE_PULL_REQUEST"}, {
            name: "Buddy",
            constant: "BUDDY",
            env: "BUDDY_WORKSPACE_ID",
            pr: "BUDDY_EXECUTION_PULL_REQUEST_ID"
        }, {
            name: "Buildkite",
            constant: "BUILDKITE",
            env: "BUILDKITE",
            pr: {env: "BUILDKITE_PULL_REQUEST", ne: "false"}
        }, {name: "CircleCI", constant: "CIRCLE", env: "CIRCLECI", pr: "CIRCLE_PULL_REQUEST"}, {
            name: "Cirrus CI",
            constant: "CIRRUS",
            env: "CIRRUS_CI",
            pr: "CIRRUS_PR"
        }, {name: "AWS CodeBuild", constant: "CODEBUILD", env: "CODEBUILD_BUILD_ARN"}, {
            name: "Codefresh",
            constant: "CODEFRESH",
            env: "CF_BUILD_ID",
            pr: {any: ["CF_PULL_REQUEST_NUMBER", "CF_PULL_REQUEST_ID"]}
        }, {name: "Codeship", constant: "CODESHIP", env: {CI_NAME: "codeship"}}, {
            name: "Drone",
            constant: "DRONE",
            env: "DRONE",
            pr: {DRONE_BUILD_EVENT: "pull_request"}
        }, {name: "dsari", constant: "DSARI", env: "DSARI"}, {
            name: "GitHub Actions",
            constant: "GITHUB_ACTIONS",
            env: "GITHUB_ACTIONS",
            pr: {GITHUB_EVENT_NAME: "pull_request"}
        }, {name: "GitLab CI", constant: "GITLAB", env: "GITLAB_CI", pr: "CI_MERGE_REQUEST_ID"}, {
            name: "GoCD",
            constant: "GOCD",
            env: "GO_PIPELINE_LABEL"
        }, {name: "LayerCI", constant: "LAYERCI", env: "LAYERCI", pr: "LAYERCI_PULL_REQUEST"}, {
            name: "Hudson",
            constant: "HUDSON",
            env: "HUDSON_URL"
        }, {
            name: "Jenkins",
            constant: "JENKINS",
            env: ["JENKINS_URL", "BUILD_ID"],
            pr: {any: ["ghprbPullId", "CHANGE_ID"]}
        }, {name: "Magnum CI", constant: "MAGNUM", env: "MAGNUM"}, {
            name: "Netlify CI",
            constant: "NETLIFY",
            env: "NETLIFY",
            pr: {env: "PULL_REQUEST", ne: "false"}
        }, {
            name: "Nevercode",
            constant: "NEVERCODE",
            env: "NEVERCODE",
            pr: {env: "NEVERCODE_PULL_REQUEST", ne: "false"}
        }, {name: "Render", constant: "RENDER", env: "RENDER", pr: {IS_PULL_REQUEST: "true"}}, {
            name: "Sail CI",
            constant: "SAIL",
            env: "SAILCI",
            pr: "SAIL_PULL_REQUEST_NUMBER"
        }, {
            name: "Semaphore",
            constant: "SEMAPHORE",
            env: "SEMAPHORE",
            pr: "PULL_REQUEST_NUMBER"
        }, {
            name: "Screwdriver",
            constant: "SCREWDRIVER",
            env: "SCREWDRIVER",
            pr: {env: "SD_PULL_REQUEST", ne: "false"}
        }, {
            name: "Shippable",
            constant: "SHIPPABLE",
            env: "SHIPPABLE",
            pr: {IS_PULL_REQUEST: "true"}
        }, {name: "Solano CI", constant: "SOLANO", env: "TDDIUM", pr: "TDDIUM_PR_ID"}, {
            name: "Strider CD",
            constant: "STRIDER",
            env: "STRIDER"
        }, {name: "TaskCluster", constant: "TASKCLUSTER", env: ["TASK_ID", "RUN_ID"]}, {
            name: "TeamCity",
            constant: "TEAMCITY",
            env: "TEAMCITY_VERSION"
        }, {
            name: "Travis CI",
            constant: "TRAVIS",
            env: "TRAVIS",
            pr: {env: "TRAVIS_PULL_REQUEST", ne: "false"}
        }, {name: "Vercel", constant: "VERCEL", env: "NOW_BUILDER"}, {
            name: "Visual Studio App Center",
            constant: "APPCENTER",
            env: "APPCENTER_BUILD_ID"
        }]
    });
    var pc = w(Vn => {
        "use strict";
        var IU = EU(), Fo = process.env;
        Object.defineProperty(Vn, "_vendors", {
            value: IU.map(function (t) {
                return t.constant
            })
        });
        Vn.name = null;
        Vn.isPR = null;
        IU.forEach(function (t) {
            let r = (Array.isArray(t.env) ? t.env : [t.env]).every(function (i) {
                return yU(i)
            });
            if (Vn[t.constant] = r, r) switch (Vn.name = t.name, typeof t.pr) {
                case"string":
                    Vn.isPR = !!Fo[t.pr];
                    break;
                case"object":
                    "env" in t.pr ? Vn.isPR = t.pr.env in Fo && Fo[t.pr.env] !== t.pr.ne : "any" in t.pr ? Vn.isPR = t.pr.any.some(function (i) {
                        return !!Fo[i]
                    }) : Vn.isPR = yU(t.pr);
                    break;
                default:
                    Vn.isPR = null
            }
        });
        Vn.isCI = !!(Fo.CI || Fo.CONTINUOUS_INTEGRATION || Fo.BUILD_NUMBER || Fo.RUN_ID || Vn.name);

        function yU(t) {
            return typeof t == "string" ? !!Fo[t] : Object.keys(t).every(function (e) {
                return Fo[e] === t[e]
            })
        }
    });
    var ag = {};
    ft(ag, {
        KeyRelationship: () => mc,
        applyCascade: () => hp,
        base64RegExp: () => vU,
        colorStringAlphaRegExp: () => QU,
        colorStringRegExp: () => bU,
        computeKey: () => YA,
        getPrintable: () => ti,
        hasExactLength: () => DU,
        hasForbiddenKeys: () => yCe,
        hasKeyRelationship: () => gv,
        hasMaxLength: () => nCe,
        hasMinLength: () => iCe,
        hasMutuallyExclusiveKeys: () => wCe,
        hasRequiredKeys: () => ICe,
        hasUniqueItems: () => sCe,
        isArray: () => _de,
        isAtLeast: () => ACe,
        isAtMost: () => lCe,
        isBase64: () => mCe,
        isBoolean: () => Jde,
        isDate: () => zde,
        isDict: () => Xde,
        isEnum: () => nn,
        isHexColor: () => CCe,
        isISO8601: () => dCe,
        isInExclusiveRange: () => uCe,
        isInInclusiveRange: () => cCe,
        isInstanceOf: () => $de,
        isInteger: () => gCe,
        isJSON: () => ECe,
        isLiteral: () => Yde,
        isLowerCase: () => fCe,
        isNegative: () => oCe,
        isNullable: () => rCe,
        isNumber: () => Wde,
        isObject: () => Zde,
        isOneOf: () => eCe,
        isOptional: () => tCe,
        isPositive: () => aCe,
        isString: () => fp,
        isTuple: () => Vde,
        isUUID4: () => pCe,
        isUnknown: () => PU,
        isUpperCase: () => hCe,
        iso8601RegExp: () => uv,
        makeCoercionFn: () => Cc,
        makeSetter: () => xU,
        makeTrait: () => kU,
        makeValidator: () => St,
        matchesRegExp: () => pp,
        plural: () => mI,
        pushError: () => mt,
        simpleKeyRegExp: () => BU,
        uuid4RegExp: () => SU
    });

    function St({test: t}) {
        return kU(t)()
    }

    function ti(t) {
        return t === null ? "null" : t === void 0 ? "undefined" : t === "" ? "an empty string" : JSON.stringify(t)
    }

    function YA(t, e) {
        var r, i, n;
        return typeof e == "number" ? `${(r = t == null ? void 0 : t.p) !== null && r !== void 0 ? r : "."}[${e}]` : BU.test(e) ? `${(i = t == null ? void 0 : t.p) !== null && i !== void 0 ? i : ""}.${e}` : `${(n = t == null ? void 0 : t.p) !== null && n !== void 0 ? n : "."}[${JSON.stringify(e)}]`
    }

    function Cc(t, e) {
        return r => {
            let i = t[e];
            return t[e] = r, Cc(t, e).bind(null, i)
        }
    }

    function xU(t, e) {
        return r => {
            t[e] = r
        }
    }

    function mI(t, e, r) {
        return t === 1 ? e : r
    }

    function mt({errors: t, p: e} = {}, r) {
        return t == null || t.push(`${e != null ? e : "."}: ${r}`), !1
    }

    function Yde(t) {
        return St({test: (e, r) => e !== t ? mt(r, `Expected a literal (got ${ti(t)})`) : !0})
    }

    function nn(t) {
        let e = Array.isArray(t) ? t : Object.values(t), r = new Set(e);
        return St({test: (i, n) => r.has(i) ? !0 : mt(n, `Expected a valid enumeration value (got ${ti(i)})`)})
    }

    var BU, bU, QU, vU, SU, uv, kU, PU, fp, qde, Jde, Wde, zde, _de, Vde, Xde, Zde, $de, eCe, hp, tCe, rCe, iCe, nCe,
        DU, sCe, oCe, aCe, ACe, lCe, cCe, uCe, gCe, pp, fCe, hCe, pCe, dCe, CCe, mCe, ECe, ICe, yCe, wCe, mc, BCe, gv,
        Is = ffe(() => {
            BU = /^[a-zA-Z_][a-zA-Z0-9_]*$/, bU = /^#[0-9a-f]{6}$/i, QU = /^#[0-9a-f]{6}([0-9a-f]{2})?$/i, vU = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/, SU = /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i, uv = /^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/, kU = t => () => t;
            PU = () => St({test: (t, e) => !0});
            fp = () => St({test: (t, e) => typeof t != "string" ? mt(e, `Expected a string (got ${ti(t)})`) : !0});
            qde = new Map([["true", !0], ["True", !0], ["1", !0], [1, !0], ["false", !1], ["False", !1], ["0", !1], [0, !1]]), Jde = () => St({
                test: (t, e) => {
                    var r;
                    if (typeof t != "boolean") {
                        if (typeof (e == null ? void 0 : e.coercions) != "undefined") {
                            if (typeof (e == null ? void 0 : e.coercion) == "undefined") return mt(e, "Unbound coercion result");
                            let i = qde.get(t);
                            if (typeof i != "undefined") return e.coercions.push([(r = e.p) !== null && r !== void 0 ? r : ".", e.coercion.bind(null, i)]), !0
                        }
                        return mt(e, `Expected a boolean (got ${ti(t)})`)
                    }
                    return !0
                }
            }), Wde = () => St({
                test: (t, e) => {
                    var r;
                    if (typeof t != "number") {
                        if (typeof (e == null ? void 0 : e.coercions) != "undefined") {
                            if (typeof (e == null ? void 0 : e.coercion) == "undefined") return mt(e, "Unbound coercion result");
                            let i;
                            if (typeof t == "string") {
                                let n;
                                try {
                                    n = JSON.parse(t)
                                } catch (s) {
                                }
                                if (typeof n == "number") if (JSON.stringify(n) === t) i = n; else return mt(e, `Received a number that can't be safely represented by the runtime (${t})`)
                            }
                            if (typeof i != "undefined") return e.coercions.push([(r = e.p) !== null && r !== void 0 ? r : ".", e.coercion.bind(null, i)]), !0
                        }
                        return mt(e, `Expected a number (got ${ti(t)})`)
                    }
                    return !0
                }
            }), zde = () => St({
                test: (t, e) => {
                    var r;
                    if (!(t instanceof Date)) {
                        if (typeof (e == null ? void 0 : e.coercions) != "undefined") {
                            if (typeof (e == null ? void 0 : e.coercion) == "undefined") return mt(e, "Unbound coercion result");
                            let i;
                            if (typeof t == "string" && uv.test(t)) i = new Date(t); else {
                                let n;
                                if (typeof t == "string") {
                                    let s;
                                    try {
                                        s = JSON.parse(t)
                                    } catch (o) {
                                    }
                                    typeof s == "number" && (n = s)
                                } else typeof t == "number" && (n = t);
                                if (typeof n != "undefined") if (Number.isSafeInteger(n) || !Number.isSafeInteger(n * 1e3)) i = new Date(n * 1e3); else return mt(e, `Received a timestamp that can't be safely represented by the runtime (${t})`)
                            }
                            if (typeof i != "undefined") return e.coercions.push([(r = e.p) !== null && r !== void 0 ? r : ".", e.coercion.bind(null, i)]), !0
                        }
                        return mt(e, `Expected a date (got ${ti(t)})`)
                    }
                    return !0
                }
            }), _de = (t, {delimiter: e} = {}) => St({
                test: (r, i) => {
                    var n;
                    if (typeof r == "string" && typeof e != "undefined" && typeof (i == null ? void 0 : i.coercions) != "undefined") {
                        if (typeof (i == null ? void 0 : i.coercion) == "undefined") return mt(i, "Unbound coercion result");
                        r = r.split(e), i.coercions.push([(n = i.p) !== null && n !== void 0 ? n : ".", i.coercion.bind(null, r)])
                    }
                    if (!Array.isArray(r)) return mt(i, `Expected an array (got ${ti(r)})`);
                    let s = !0;
                    for (let o = 0, a = r.length; o < a && (s = t(r[o], Object.assign(Object.assign({}, i), {
                        p: YA(i, o),
                        coercion: Cc(r, o)
                    })) && s, !(!s && (i == null ? void 0 : i.errors) == null)); ++o) ;
                    return s
                }
            }), Vde = (t, {delimiter: e} = {}) => {
                let r = DU(t.length);
                return St({
                    test: (i, n) => {
                        var s;
                        if (typeof i == "string" && typeof e != "undefined" && typeof (n == null ? void 0 : n.coercions) != "undefined") {
                            if (typeof (n == null ? void 0 : n.coercion) == "undefined") return mt(n, "Unbound coercion result");
                            i = i.split(e), n.coercions.push([(s = n.p) !== null && s !== void 0 ? s : ".", n.coercion.bind(null, i)])
                        }
                        if (!Array.isArray(i)) return mt(n, `Expected a tuple (got ${ti(i)})`);
                        let o = r(i, Object.assign({}, n));
                        for (let a = 0, l = i.length; a < l && a < t.length && (o = t[a](i[a], Object.assign(Object.assign({}, n), {
                            p: YA(n, a),
                            coercion: Cc(i, a)
                        })) && o, !(!o && (n == null ? void 0 : n.errors) == null)); ++a) ;
                        return o
                    }
                })
            }, Xde = (t, {keys: e = null} = {}) => St({
                test: (r, i) => {
                    if (typeof r != "object" || r === null) return mt(i, `Expected an object (got ${ti(r)})`);
                    let n = Object.keys(r), s = !0;
                    for (let o = 0, a = n.length; o < a && (s || (i == null ? void 0 : i.errors) != null); ++o) {
                        let l = n[o], c = r[l];
                        if (l === "__proto__" || l === "constructor") {
                            s = mt(Object.assign(Object.assign({}, i), {p: YA(i, l)}), "Unsafe property name");
                            continue
                        }
                        if (e !== null && !e(l, i)) {
                            s = !1;
                            continue
                        }
                        if (!t(c, Object.assign(Object.assign({}, i), {p: YA(i, l), coercion: Cc(r, l)}))) {
                            s = !1;
                            continue
                        }
                    }
                    return s
                }
            }), Zde = (t, {extra: e = null} = {}) => {
                let r = Object.keys(t);
                return St({
                    test: (i, n) => {
                        if (typeof i != "object" || i === null) return mt(n, `Expected an object (got ${ti(i)})`);
                        let s = new Set([...r, ...Object.keys(i)]), o = {}, a = !0;
                        for (let l of s) {
                            if (l === "constructor" || l === "__proto__") a = mt(Object.assign(Object.assign({}, n), {p: YA(n, l)}), "Unsafe property name"); else {
                                let c = Object.prototype.hasOwnProperty.call(t, l) ? t[l] : void 0,
                                    u = Object.prototype.hasOwnProperty.call(i, l) ? i[l] : void 0;
                                typeof c != "undefined" ? a = c(u, Object.assign(Object.assign({}, n), {
                                    p: YA(n, l),
                                    coercion: Cc(i, l)
                                })) && a : e === null ? a = mt(Object.assign(Object.assign({}, n), {p: YA(n, l)}), `Extraneous property (got ${ti(u)})`) : Object.defineProperty(o, l, {
                                    enumerable: !0,
                                    get: () => u,
                                    set: xU(i, l)
                                })
                            }
                            if (!a && (n == null ? void 0 : n.errors) == null) break
                        }
                        return e !== null && (a || (n == null ? void 0 : n.errors) != null) && (a = e(o, n) && a), a
                    }
                })
            }, $de = t => St({test: (e, r) => e instanceof t ? !0 : mt(r, `Expected an instance of ${t.name} (got ${ti(e)})`)}), eCe = (t, {exclusive: e = !1} = {}) => St({
                test: (r, i) => {
                    var n, s, o;
                    let a = [], l = typeof (i == null ? void 0 : i.errors) != "undefined" ? [] : void 0;
                    for (let c = 0, u = t.length; c < u; ++c) {
                        let g = typeof (i == null ? void 0 : i.errors) != "undefined" ? [] : void 0,
                            f = typeof (i == null ? void 0 : i.coercions) != "undefined" ? [] : void 0;
                        if (t[c](r, Object.assign(Object.assign({}, i), {
                            errors: g,
                            coercions: f,
                            p: `${(n = i == null ? void 0 : i.p) !== null && n !== void 0 ? n : "."}#${c + 1}`
                        }))) {
                            if (a.push([`#${c + 1}`, f]), !e) break
                        } else l == null || l.push(g[0])
                    }
                    if (a.length === 1) {
                        let [, c] = a[0];
                        return typeof c != "undefined" && ((s = i == null ? void 0 : i.coercions) === null || s === void 0 || s.push(...c)), !0
                    }
                    return a.length > 1 ? mt(i, `Expected to match exactly a single predicate (matched ${a.join(", ")})`) : (o = i == null ? void 0 : i.errors) === null || o === void 0 || o.push(...l), !1
                }
            }), hp = (t, e) => St({
                test: (r, i) => {
                    var n, s;
                    let o = {value: r},
                        a = typeof (i == null ? void 0 : i.coercions) != "undefined" ? Cc(o, "value") : void 0,
                        l = typeof (i == null ? void 0 : i.coercions) != "undefined" ? [] : void 0;
                    if (!t(r, Object.assign(Object.assign({}, i), {coercion: a, coercions: l}))) return !1;
                    let c = [];
                    if (typeof l != "undefined") for (let [, u] of l) c.push(u());
                    try {
                        if (typeof (i == null ? void 0 : i.coercions) != "undefined") {
                            if (o.value !== r) {
                                if (typeof (i == null ? void 0 : i.coercion) == "undefined") return mt(i, "Unbound coercion result");
                                i.coercions.push([(n = i.p) !== null && n !== void 0 ? n : ".", i.coercion.bind(null, o.value)])
                            }
                            (s = i == null ? void 0 : i.coercions) === null || s === void 0 || s.push(...l)
                        }
                        return e.every(u => u(o.value, i))
                    } finally {
                        for (let u of c) u()
                    }
                }
            }), tCe = t => St({test: (e, r) => typeof e == "undefined" ? !0 : t(e, r)}), rCe = t => St({test: (e, r) => e === null ? !0 : t(e, r)}), iCe = t => St({test: (e, r) => e.length >= t ? !0 : mt(r, `Expected to have a length of at least ${t} elements (got ${e.length})`)}), nCe = t => St({test: (e, r) => e.length <= t ? !0 : mt(r, `Expected to have a length of at most ${t} elements (got ${e.length})`)}), DU = t => St({test: (e, r) => e.length !== t ? mt(r, `Expected to have a length of exactly ${t} elements (got ${e.length})`) : !0}), sCe = ({map: t} = {}) => St({
                test: (e, r) => {
                    let i = new Set, n = new Set;
                    for (let s = 0, o = e.length; s < o; ++s) {
                        let a = e[s], l = typeof t != "undefined" ? t(a) : a;
                        if (i.has(l)) {
                            if (n.has(l)) continue;
                            mt(r, `Expected to contain unique elements; got a duplicate with ${ti(e)}`), n.add(l)
                        } else i.add(l)
                    }
                    return n.size === 0
                }
            }), oCe = () => St({test: (t, e) => t <= 0 ? !0 : mt(e, `Expected to be negative (got ${t})`)}), aCe = () => St({test: (t, e) => t >= 0 ? !0 : mt(e, `Expected to be positive (got ${t})`)}), ACe = t => St({test: (e, r) => e >= t ? !0 : mt(r, `Expected to be at least ${t} (got ${e})`)}), lCe = t => St({test: (e, r) => e <= t ? !0 : mt(r, `Expected to be at most ${t} (got ${e})`)}), cCe = (t, e) => St({test: (r, i) => r >= t && r <= e ? !0 : mt(i, `Expected to be in the [${t}; ${e}] range (got ${r})`)}), uCe = (t, e) => St({test: (r, i) => r >= t && r < e ? !0 : mt(i, `Expected to be in the [${t}; ${e}[ range (got ${r})`)}), gCe = ({unsafe: t = !1} = {}) => St({test: (e, r) => e !== Math.round(e) ? mt(r, `Expected to be an integer (got ${e})`) : Number.isSafeInteger(e) ? !0 : mt(r, `Expected to be a safe integer (got ${e})`)}), pp = t => St({test: (e, r) => t.test(e) ? !0 : mt(r, `Expected to match the pattern ${t.toString()} (got ${ti(e)})`)}), fCe = () => St({test: (t, e) => t !== t.toLowerCase() ? mt(e, `Expected to be all-lowercase (got ${t})`) : !0}), hCe = () => St({test: (t, e) => t !== t.toUpperCase() ? mt(e, `Expected to be all-uppercase (got ${t})`) : !0}), pCe = () => St({test: (t, e) => SU.test(t) ? !0 : mt(e, `Expected to be a valid UUID v4 (got ${ti(t)})`)}), dCe = () => St({test: (t, e) => uv.test(t) ? !1 : mt(e, `Expected to be a valid ISO 8601 date string (got ${ti(t)})`)}), CCe = ({alpha: t = !1}) => St({test: (e, r) => (t ? bU.test(e) : QU.test(e)) ? !0 : mt(r, `Expected to be a valid hexadecimal color string (got ${ti(e)})`)}), mCe = () => St({test: (t, e) => vU.test(t) ? !0 : mt(e, `Expected to be a valid base 64 string (got ${ti(t)})`)}), ECe = (t = PU()) => St({
                test: (e, r) => {
                    let i;
                    try {
                        i = JSON.parse(e)
                    } catch (n) {
                        return mt(r, `Expected to be a valid JSON string (got ${ti(e)})`)
                    }
                    return t(i, r)
                }
            }), ICe = t => {
                let e = new Set(t);
                return St({
                    test: (r, i) => {
                        let n = new Set(Object.keys(r)), s = [];
                        for (let o of e) n.has(o) || s.push(o);
                        return s.length > 0 ? mt(i, `Missing required ${mI(s.length, "property", "properties")} ${s.map(o => `"${o}"`).join(", ")}`) : !0
                    }
                })
            }, yCe = t => {
                let e = new Set(t);
                return St({
                    test: (r, i) => {
                        let n = new Set(Object.keys(r)), s = [];
                        for (let o of e) n.has(o) && s.push(o);
                        return s.length > 0 ? mt(i, `Forbidden ${mI(s.length, "property", "properties")} ${s.map(o => `"${o}"`).join(", ")}`) : !0
                    }
                })
            }, wCe = t => {
                let e = new Set(t);
                return St({
                    test: (r, i) => {
                        let n = new Set(Object.keys(r)), s = [];
                        for (let o of e) n.has(o) && s.push(o);
                        return s.length > 1 ? mt(i, `Mutually exclusive properties ${s.map(o => `"${o}"`).join(", ")}`) : !0
                    }
                })
            };
            (function (t) {
                t.Forbids = "Forbids", t.Requires = "Requires"
            })(mc || (mc = {}));
            BCe = {
                [mc.Forbids]: {expect: !1, message: "forbids using"},
                [mc.Requires]: {expect: !0, message: "requires using"}
            }, gv = (t, e, r, {ignore: i = []} = {}) => {
                let n = new Set(i), s = new Set(r), o = BCe[e];
                return St({
                    test: (a, l) => {
                        let c = new Set(Object.keys(a));
                        if (!c.has(t) || n.has(a[t])) return !0;
                        let u = [];
                        for (let g of s) (c.has(g) && !n.has(a[g])) !== o.expect && u.push(g);
                        return u.length >= 1 ? mt(l, `Property "${t}" ${o.message} ${mI(u.length, "property", "properties")} ${u.map(g => `"${g}"`).join(", ")}`) : !0
                    }
                })
            }
        });
    var VU = w((get, _U) => {
        "use strict";
        _U.exports = (t, ...e) => new Promise(r => {
            r(t(...e))
        })
    });
    var lg = w((fet, Ev) => {
        "use strict";
        var UCe = VU(), XU = t => {
            if (t < 1) throw new TypeError("Expected `concurrency` to be a number from 1 and up");
            let e = [], r = 0, i = () => {
                r--, e.length > 0 && e.shift()()
            }, n = (a, l, ...c) => {
                r++;
                let u = UCe(a, ...c);
                l(u), u.then(i, i)
            }, s = (a, l, ...c) => {
                r < t ? n(a, l, ...c) : e.push(n.bind(null, a, l, ...c))
            }, o = (a, ...l) => new Promise(c => s(a, c, ...l));
            return Object.defineProperties(o, {activeCount: {get: () => r}, pendingCount: {get: () => e.length}}), o
        };
        Ev.exports = XU;
        Ev.exports.default = XU
    });
    var Ep = w((pet, ZU) => {
        var HCe = "2.0.0", GCe = 256, jCe = Number.MAX_SAFE_INTEGER || 9007199254740991, YCe = 16;
        ZU.exports = {SEMVER_SPEC_VERSION: HCe, MAX_LENGTH: GCe, MAX_SAFE_INTEGER: jCe, MAX_SAFE_COMPONENT_LENGTH: YCe}
    });
    var Ip = w((det, $U) => {
        var qCe = typeof process == "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...t) => console.error("SEMVER", ...t) : () => {
        };
        $U.exports = qCe
    });
    var Ec = w((JA, e2) => {
        var {MAX_SAFE_COMPONENT_LENGTH: Iv} = Ep(), JCe = Ip();
        JA = e2.exports = {};
        var WCe = JA.re = [], tt = JA.src = [], rt = JA.t = {}, zCe = 0, kt = (t, e, r) => {
            let i = zCe++;
            JCe(i, e), rt[t] = i, tt[i] = e, WCe[i] = new RegExp(e, r ? "g" : void 0)
        };
        kt("NUMERICIDENTIFIER", "0|[1-9]\\d*");
        kt("NUMERICIDENTIFIERLOOSE", "[0-9]+");
        kt("NONNUMERICIDENTIFIER", "\\d*[a-zA-Z-][a-zA-Z0-9-]*");
        kt("MAINVERSION", `(${tt[rt.NUMERICIDENTIFIER]})\\.(${tt[rt.NUMERICIDENTIFIER]})\\.(${tt[rt.NUMERICIDENTIFIER]})`);
        kt("MAINVERSIONLOOSE", `(${tt[rt.NUMERICIDENTIFIERLOOSE]})\\.(${tt[rt.NUMERICIDENTIFIERLOOSE]})\\.(${tt[rt.NUMERICIDENTIFIERLOOSE]})`);
        kt("PRERELEASEIDENTIFIER", `(?:${tt[rt.NUMERICIDENTIFIER]}|${tt[rt.NONNUMERICIDENTIFIER]})`);
        kt("PRERELEASEIDENTIFIERLOOSE", `(?:${tt[rt.NUMERICIDENTIFIERLOOSE]}|${tt[rt.NONNUMERICIDENTIFIER]})`);
        kt("PRERELEASE", `(?:-(${tt[rt.PRERELEASEIDENTIFIER]}(?:\\.${tt[rt.PRERELEASEIDENTIFIER]})*))`);
        kt("PRERELEASELOOSE", `(?:-?(${tt[rt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${tt[rt.PRERELEASEIDENTIFIERLOOSE]})*))`);
        kt("BUILDIDENTIFIER", "[0-9A-Za-z-]+");
        kt("BUILD", `(?:\\+(${tt[rt.BUILDIDENTIFIER]}(?:\\.${tt[rt.BUILDIDENTIFIER]})*))`);
        kt("FULLPLAIN", `v?${tt[rt.MAINVERSION]}${tt[rt.PRERELEASE]}?${tt[rt.BUILD]}?`);
        kt("FULL", `^${tt[rt.FULLPLAIN]}$`);
        kt("LOOSEPLAIN", `[v=\\s]*${tt[rt.MAINVERSIONLOOSE]}${tt[rt.PRERELEASELOOSE]}?${tt[rt.BUILD]}?`);
        kt("LOOSE", `^${tt[rt.LOOSEPLAIN]}$`);
        kt("GTLT", "((?:<|>)?=?)");
        kt("XRANGEIDENTIFIERLOOSE", `${tt[rt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);
        kt("XRANGEIDENTIFIER", `${tt[rt.NUMERICIDENTIFIER]}|x|X|\\*`);
        kt("XRANGEPLAIN", `[v=\\s]*(${tt[rt.XRANGEIDENTIFIER]})(?:\\.(${tt[rt.XRANGEIDENTIFIER]})(?:\\.(${tt[rt.XRANGEIDENTIFIER]})(?:${tt[rt.PRERELEASE]})?${tt[rt.BUILD]}?)?)?`);
        kt("XRANGEPLAINLOOSE", `[v=\\s]*(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tt[rt.XRANGEIDENTIFIERLOOSE]})(?:${tt[rt.PRERELEASELOOSE]})?${tt[rt.BUILD]}?)?)?`);
        kt("XRANGE", `^${tt[rt.GTLT]}\\s*${tt[rt.XRANGEPLAIN]}$`);
        kt("XRANGELOOSE", `^${tt[rt.GTLT]}\\s*${tt[rt.XRANGEPLAINLOOSE]}$`);
        kt("COERCE", `(^|[^\\d])(\\d{1,${Iv}})(?:\\.(\\d{1,${Iv}}))?(?:\\.(\\d{1,${Iv}}))?(?:$|[^\\d])`);
        kt("COERCERTL", tt[rt.COERCE], !0);
        kt("LONETILDE", "(?:~>?)");
        kt("TILDETRIM", `(\\s*)${tt[rt.LONETILDE]}\\s+`, !0);
        JA.tildeTrimReplace = "$1~";
        kt("TILDE", `^${tt[rt.LONETILDE]}${tt[rt.XRANGEPLAIN]}$`);
        kt("TILDELOOSE", `^${tt[rt.LONETILDE]}${tt[rt.XRANGEPLAINLOOSE]}$`);
        kt("LONECARET", "(?:\\^)");
        kt("CARETTRIM", `(\\s*)${tt[rt.LONECARET]}\\s+`, !0);
        JA.caretTrimReplace = "$1^";
        kt("CARET", `^${tt[rt.LONECARET]}${tt[rt.XRANGEPLAIN]}$`);
        kt("CARETLOOSE", `^${tt[rt.LONECARET]}${tt[rt.XRANGEPLAINLOOSE]}$`);
        kt("COMPARATORLOOSE", `^${tt[rt.GTLT]}\\s*(${tt[rt.LOOSEPLAIN]})$|^$`);
        kt("COMPARATOR", `^${tt[rt.GTLT]}\\s*(${tt[rt.FULLPLAIN]})$|^$`);
        kt("COMPARATORTRIM", `(\\s*)${tt[rt.GTLT]}\\s*(${tt[rt.LOOSEPLAIN]}|${tt[rt.XRANGEPLAIN]})`, !0);
        JA.comparatorTrimReplace = "$1$2$3";
        kt("HYPHENRANGE", `^\\s*(${tt[rt.XRANGEPLAIN]})\\s+-\\s+(${tt[rt.XRANGEPLAIN]})\\s*$`);
        kt("HYPHENRANGELOOSE", `^\\s*(${tt[rt.XRANGEPLAINLOOSE]})\\s+-\\s+(${tt[rt.XRANGEPLAINLOOSE]})\\s*$`);
        kt("STAR", "(<|>)?=?\\s*\\*");
        kt("GTE0", "^\\s*>=\\s*0.0.0\\s*$");
        kt("GTE0PRE", "^\\s*>=\\s*0.0.0-0\\s*$")
    });
    var yp = w((Cet, t2) => {
        var _Ce = ["includePrerelease", "loose", "rtl"],
            VCe = t => t ? typeof t != "object" ? {loose: !0} : _Ce.filter(e => t[e]).reduce((e, r) => (e[r] = !0, e), {}) : {};
        t2.exports = VCe
    });
    var QI = w((met, r2) => {
        var i2 = /^[0-9]+$/, n2 = (t, e) => {
            let r = i2.test(t), i = i2.test(e);
            return r && i && (t = +t, e = +e), t === e ? 0 : r && !i ? -1 : i && !r ? 1 : t < e ? -1 : 1
        }, XCe = (t, e) => n2(e, t);
        r2.exports = {compareIdentifiers: n2, rcompareIdentifiers: XCe}
    });
    var Hi = w((Eet, s2) => {
        var vI = Ip(), {MAX_LENGTH: o2, MAX_SAFE_INTEGER: SI} = Ep(), {re: a2, t: A2} = Ec(),
            ZCe = yp(), {compareIdentifiers: wp} = QI(), ws = class {
                constructor(e, r) {
                    if (r = ZCe(r), e instanceof ws) {
                        if (e.loose === !!r.loose && e.includePrerelease === !!r.includePrerelease) return e;
                        e = e.version
                    } else if (typeof e != "string") throw new TypeError(`Invalid Version: ${e}`);
                    if (e.length > o2) throw new TypeError(`version is longer than ${o2} characters`);
                    vI("SemVer", e, r), this.options = r, this.loose = !!r.loose, this.includePrerelease = !!r.includePrerelease;
                    let i = e.trim().match(r.loose ? a2[A2.LOOSE] : a2[A2.FULL]);
                    if (!i) throw new TypeError(`Invalid Version: ${e}`);
                    if (this.raw = e, this.major = +i[1], this.minor = +i[2], this.patch = +i[3], this.major > SI || this.major < 0) throw new TypeError("Invalid major version");
                    if (this.minor > SI || this.minor < 0) throw new TypeError("Invalid minor version");
                    if (this.patch > SI || this.patch < 0) throw new TypeError("Invalid patch version");
                    i[4] ? this.prerelease = i[4].split(".").map(n => {
                        if (/^[0-9]+$/.test(n)) {
                            let s = +n;
                            if (s >= 0 && s < SI) return s
                        }
                        return n
                    }) : this.prerelease = [], this.build = i[5] ? i[5].split(".") : [], this.format()
                }

                format() {
                    return this.version = `${this.major}.${this.minor}.${this.patch}`, this.prerelease.length && (this.version += `-${this.prerelease.join(".")}`), this.version
                }

                toString() {
                    return this.version
                }

                compare(e) {
                    if (vI("SemVer.compare", this.version, this.options, e), !(e instanceof ws)) {
                        if (typeof e == "string" && e === this.version) return 0;
                        e = new ws(e, this.options)
                    }
                    return e.version === this.version ? 0 : this.compareMain(e) || this.comparePre(e)
                }

                compareMain(e) {
                    return e instanceof ws || (e = new ws(e, this.options)), wp(this.major, e.major) || wp(this.minor, e.minor) || wp(this.patch, e.patch)
                }

                comparePre(e) {
                    if (e instanceof ws || (e = new ws(e, this.options)), this.prerelease.length && !e.prerelease.length) return -1;
                    if (!this.prerelease.length && e.prerelease.length) return 1;
                    if (!this.prerelease.length && !e.prerelease.length) return 0;
                    let r = 0;
                    do {
                        let i = this.prerelease[r], n = e.prerelease[r];
                        if (vI("prerelease compare", r, i, n), i === void 0 && n === void 0) return 0;
                        if (n === void 0) return 1;
                        if (i === void 0) return -1;
                        if (i === n) continue;
                        return wp(i, n)
                    } while (++r)
                }

                compareBuild(e) {
                    e instanceof ws || (e = new ws(e, this.options));
                    let r = 0;
                    do {
                        let i = this.build[r], n = e.build[r];
                        if (vI("prerelease compare", r, i, n), i === void 0 && n === void 0) return 0;
                        if (n === void 0) return 1;
                        if (i === void 0) return -1;
                        if (i === n) continue;
                        return wp(i, n)
                    } while (++r)
                }

                inc(e, r) {
                    switch (e) {
                        case"premajor":
                            this.prerelease.length = 0, this.patch = 0, this.minor = 0, this.major++, this.inc("pre", r);
                            break;
                        case"preminor":
                            this.prerelease.length = 0, this.patch = 0, this.minor++, this.inc("pre", r);
                            break;
                        case"prepatch":
                            this.prerelease.length = 0, this.inc("patch", r), this.inc("pre", r);
                            break;
                        case"prerelease":
                            this.prerelease.length === 0 && this.inc("patch", r), this.inc("pre", r);
                            break;
                        case"major":
                            (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) && this.major++, this.minor = 0, this.patch = 0, this.prerelease = [];
                            break;
                        case"minor":
                            (this.patch !== 0 || this.prerelease.length === 0) && this.minor++, this.patch = 0, this.prerelease = [];
                            break;
                        case"patch":
                            this.prerelease.length === 0 && this.patch++, this.prerelease = [];
                            break;
                        case"pre":
                            if (this.prerelease.length === 0) this.prerelease = [0]; else {
                                let i = this.prerelease.length;
                                for (; --i >= 0;) typeof this.prerelease[i] == "number" && (this.prerelease[i]++, i = -2);
                                i === -1 && this.prerelease.push(0)
                            }
                            r && (this.prerelease[0] === r ? isNaN(this.prerelease[1]) && (this.prerelease = [r, 0]) : this.prerelease = [r, 0]);
                            break;
                        default:
                            throw new Error(`invalid increment argument: ${e}`)
                    }
                    return this.format(), this.raw = this.version, this
                }
            };
        s2.exports = ws
    });
    var Ic = w((Iet, l2) => {
        var {MAX_LENGTH: $Ce} = Ep(), {re: c2, t: u2} = Ec(), g2 = Hi(), eme = yp(), tme = (t, e) => {
            if (e = eme(e), t instanceof g2) return t;
            if (typeof t != "string" || t.length > $Ce || !(e.loose ? c2[u2.LOOSE] : c2[u2.FULL]).test(t)) return null;
            try {
                return new g2(t, e)
            } catch (i) {
                return null
            }
        };
        l2.exports = tme
    });
    var h2 = w((yet, f2) => {
        var rme = Ic(), ime = (t, e) => {
            let r = rme(t, e);
            return r ? r.version : null
        };
        f2.exports = ime
    });
    var d2 = w((wet, p2) => {
        var nme = Ic(), sme = (t, e) => {
            let r = nme(t.trim().replace(/^[=v]+/, ""), e);
            return r ? r.version : null
        };
        p2.exports = sme
    });
    var m2 = w((Bet, C2) => {
        var ome = Hi(), ame = (t, e, r, i) => {
            typeof r == "string" && (i = r, r = void 0);
            try {
                return new ome(t, r).inc(e, i).version
            } catch (n) {
                return null
            }
        };
        C2.exports = ame
    });
    var Bs = w((bet, E2) => {
        var I2 = Hi(), Ame = (t, e, r) => new I2(t, r).compare(new I2(e, r));
        E2.exports = Ame
    });
    var kI = w((Qet, y2) => {
        var lme = Bs(), cme = (t, e, r) => lme(t, e, r) === 0;
        y2.exports = cme
    });
    var b2 = w((vet, w2) => {
        var B2 = Ic(), ume = kI(), gme = (t, e) => {
            if (ume(t, e)) return null;
            {
                let r = B2(t), i = B2(e), n = r.prerelease.length || i.prerelease.length, s = n ? "pre" : "",
                    o = n ? "prerelease" : "";
                for (let a in r) if ((a === "major" || a === "minor" || a === "patch") && r[a] !== i[a]) return s + a;
                return o
            }
        };
        w2.exports = gme
    });
    var v2 = w((ket, Q2) => {
        var fme = Hi(), hme = (t, e) => new fme(t, e).major;
        Q2.exports = hme
    });
    var k2 = w((xet, S2) => {
        var pme = Hi(), dme = (t, e) => new pme(t, e).minor;
        S2.exports = dme
    });
    var P2 = w((Pet, x2) => {
        var Cme = Hi(), mme = (t, e) => new Cme(t, e).patch;
        x2.exports = mme
    });
    var R2 = w((Det, D2) => {
        var Eme = Ic(), Ime = (t, e) => {
            let r = Eme(t, e);
            return r && r.prerelease.length ? r.prerelease : null
        };
        D2.exports = Ime
    });
    var N2 = w((Ret, F2) => {
        var yme = Bs(), wme = (t, e, r) => yme(e, t, r);
        F2.exports = wme
    });
    var T2 = w((Fet, L2) => {
        var Bme = Bs(), bme = (t, e) => Bme(t, e, !0);
        L2.exports = bme
    });
    var xI = w((Net, O2) => {
        var M2 = Hi(), Qme = (t, e, r) => {
            let i = new M2(t, r), n = new M2(e, r);
            return i.compare(n) || i.compareBuild(n)
        };
        O2.exports = Qme
    });
    var U2 = w((Let, K2) => {
        var vme = xI(), Sme = (t, e) => t.sort((r, i) => vme(r, i, e));
        K2.exports = Sme
    });
    var G2 = w((Tet, H2) => {
        var kme = xI(), xme = (t, e) => t.sort((r, i) => kme(i, r, e));
        H2.exports = xme
    });
    var Bp = w((Oet, j2) => {
        var Pme = Bs(), Dme = (t, e, r) => Pme(t, e, r) > 0;
        j2.exports = Dme
    });
    var PI = w((Met, Y2) => {
        var Rme = Bs(), Fme = (t, e, r) => Rme(t, e, r) < 0;
        Y2.exports = Fme
    });
    var yv = w((Ket, q2) => {
        var Nme = Bs(), Lme = (t, e, r) => Nme(t, e, r) !== 0;
        q2.exports = Lme
    });
    var DI = w((Uet, J2) => {
        var Tme = Bs(), Ome = (t, e, r) => Tme(t, e, r) >= 0;
        J2.exports = Ome
    });
    var RI = w((Het, W2) => {
        var Mme = Bs(), Kme = (t, e, r) => Mme(t, e, r) <= 0;
        W2.exports = Kme
    });
    var wv = w((Get, z2) => {
        var Ume = kI(), Hme = yv(), Gme = Bp(), jme = DI(), Yme = PI(), qme = RI(), Jme = (t, e, r, i) => {
            switch (e) {
                case"===":
                    return typeof t == "object" && (t = t.version), typeof r == "object" && (r = r.version), t === r;
                case"!==":
                    return typeof t == "object" && (t = t.version), typeof r == "object" && (r = r.version), t !== r;
                case"":
                case"=":
                case"==":
                    return Ume(t, r, i);
                case"!=":
                    return Hme(t, r, i);
                case">":
                    return Gme(t, r, i);
                case">=":
                    return jme(t, r, i);
                case"<":
                    return Yme(t, r, i);
                case"<=":
                    return qme(t, r, i);
                default:
                    throw new TypeError(`Invalid operator: ${e}`)
            }
        };
        z2.exports = Jme
    });
    var V2 = w((jet, _2) => {
        var Wme = Hi(), zme = Ic(), {re: FI, t: NI} = Ec(), _me = (t, e) => {
            if (t instanceof Wme) return t;
            if (typeof t == "number" && (t = String(t)), typeof t != "string") return null;
            e = e || {};
            let r = null;
            if (!e.rtl) r = t.match(FI[NI.COERCE]); else {
                let i;
                for (; (i = FI[NI.COERCERTL].exec(t)) && (!r || r.index + r[0].length !== t.length);) (!r || i.index + i[0].length !== r.index + r[0].length) && (r = i), FI[NI.COERCERTL].lastIndex = i.index + i[1].length + i[2].length;
                FI[NI.COERCERTL].lastIndex = -1
            }
            return r === null ? null : zme(`${r[2]}.${r[3] || "0"}.${r[4] || "0"}`, e)
        };
        _2.exports = _me
    });
    var Z2 = w((Yet, X2) => {
        "use strict";
        X2.exports = function (t) {
            t.prototype[Symbol.iterator] = function* () {
                for (let e = this.head; e; e = e.next) yield e.value
            }
        }
    });
    var bp = w((qet, $2) => {
        "use strict";
        $2.exports = jt;
        jt.Node = yc;
        jt.create = jt;

        function jt(t) {
            var e = this;
            if (e instanceof jt || (e = new jt), e.tail = null, e.head = null, e.length = 0, t && typeof t.forEach == "function") t.forEach(function (n) {
                e.push(n)
            }); else if (arguments.length > 0) for (var r = 0, i = arguments.length; r < i; r++) e.push(arguments[r]);
            return e
        }

        jt.prototype.removeNode = function (t) {
            if (t.list !== this) throw new Error("removing node which does not belong to this list");
            var e = t.next, r = t.prev;
            return e && (e.prev = r), r && (r.next = e), t === this.head && (this.head = e), t === this.tail && (this.tail = r), t.list.length--, t.next = null, t.prev = null, t.list = null, e
        };
        jt.prototype.unshiftNode = function (t) {
            if (t !== this.head) {
                t.list && t.list.removeNode(t);
                var e = this.head;
                t.list = this, t.next = e, e && (e.prev = t), this.head = t, this.tail || (this.tail = t), this.length++
            }
        };
        jt.prototype.pushNode = function (t) {
            if (t !== this.tail) {
                t.list && t.list.removeNode(t);
                var e = this.tail;
                t.list = this, t.prev = e, e && (e.next = t), this.tail = t, this.head || (this.head = t), this.length++
            }
        };
        jt.prototype.push = function () {
            for (var t = 0, e = arguments.length; t < e; t++) Vme(this, arguments[t]);
            return this.length
        };
        jt.prototype.unshift = function () {
            for (var t = 0, e = arguments.length; t < e; t++) Xme(this, arguments[t]);
            return this.length
        };
        jt.prototype.pop = function () {
            if (!!this.tail) {
                var t = this.tail.value;
                return this.tail = this.tail.prev, this.tail ? this.tail.next = null : this.head = null, this.length--, t
            }
        };
        jt.prototype.shift = function () {
            if (!!this.head) {
                var t = this.head.value;
                return this.head = this.head.next, this.head ? this.head.prev = null : this.tail = null, this.length--, t
            }
        };
        jt.prototype.forEach = function (t, e) {
            e = e || this;
            for (var r = this.head, i = 0; r !== null; i++) t.call(e, r.value, i, this), r = r.next
        };
        jt.prototype.forEachReverse = function (t, e) {
            e = e || this;
            for (var r = this.tail, i = this.length - 1; r !== null; i--) t.call(e, r.value, i, this), r = r.prev
        };
        jt.prototype.get = function (t) {
            for (var e = 0, r = this.head; r !== null && e < t; e++) r = r.next;
            if (e === t && r !== null) return r.value
        };
        jt.prototype.getReverse = function (t) {
            for (var e = 0, r = this.tail; r !== null && e < t; e++) r = r.prev;
            if (e === t && r !== null) return r.value
        };
        jt.prototype.map = function (t, e) {
            e = e || this;
            for (var r = new jt, i = this.head; i !== null;) r.push(t.call(e, i.value, this)), i = i.next;
            return r
        };
        jt.prototype.mapReverse = function (t, e) {
            e = e || this;
            for (var r = new jt, i = this.tail; i !== null;) r.push(t.call(e, i.value, this)), i = i.prev;
            return r
        };
        jt.prototype.reduce = function (t, e) {
            var r, i = this.head;
            if (arguments.length > 1) r = e; else if (this.head) i = this.head.next, r = this.head.value; else throw new TypeError("Reduce of empty list with no initial value");
            for (var n = 0; i !== null; n++) r = t(r, i.value, n), i = i.next;
            return r
        };
        jt.prototype.reduceReverse = function (t, e) {
            var r, i = this.tail;
            if (arguments.length > 1) r = e; else if (this.tail) i = this.tail.prev, r = this.tail.value; else throw new TypeError("Reduce of empty list with no initial value");
            for (var n = this.length - 1; i !== null; n--) r = t(r, i.value, n), i = i.prev;
            return r
        };
        jt.prototype.toArray = function () {
            for (var t = new Array(this.length), e = 0, r = this.head; r !== null; e++) t[e] = r.value, r = r.next;
            return t
        };
        jt.prototype.toArrayReverse = function () {
            for (var t = new Array(this.length), e = 0, r = this.tail; r !== null; e++) t[e] = r.value, r = r.prev;
            return t
        };
        jt.prototype.slice = function (t, e) {
            e = e || this.length, e < 0 && (e += this.length), t = t || 0, t < 0 && (t += this.length);
            var r = new jt;
            if (e < t || e < 0) return r;
            t < 0 && (t = 0), e > this.length && (e = this.length);
            for (var i = 0, n = this.head; n !== null && i < t; i++) n = n.next;
            for (; n !== null && i < e; i++, n = n.next) r.push(n.value);
            return r
        };
        jt.prototype.sliceReverse = function (t, e) {
            e = e || this.length, e < 0 && (e += this.length), t = t || 0, t < 0 && (t += this.length);
            var r = new jt;
            if (e < t || e < 0) return r;
            t < 0 && (t = 0), e > this.length && (e = this.length);
            for (var i = this.length, n = this.tail; n !== null && i > e; i--) n = n.prev;
            for (; n !== null && i > t; i--, n = n.prev) r.push(n.value);
            return r
        };
        jt.prototype.splice = function (t, e, ...r) {
            t > this.length && (t = this.length - 1), t < 0 && (t = this.length + t);
            for (var i = 0, n = this.head; n !== null && i < t; i++) n = n.next;
            for (var s = [], i = 0; n && i < e; i++) s.push(n.value), n = this.removeNode(n);
            n === null && (n = this.tail), n !== this.head && n !== this.tail && (n = n.prev);
            for (var i = 0; i < r.length; i++) n = Zme(this, n, r[i]);
            return s
        };
        jt.prototype.reverse = function () {
            for (var t = this.head, e = this.tail, r = t; r !== null; r = r.prev) {
                var i = r.prev;
                r.prev = r.next, r.next = i
            }
            return this.head = e, this.tail = t, this
        };

        function Zme(t, e, r) {
            var i = e === t.head ? new yc(r, null, e, t) : new yc(r, e, e.next, t);
            return i.next === null && (t.tail = i), i.prev === null && (t.head = i), t.length++, i
        }

        function Vme(t, e) {
            t.tail = new yc(e, t.tail, null, t), t.head || (t.head = t.tail), t.length++
        }

        function Xme(t, e) {
            t.head = new yc(e, null, t.head, t), t.tail || (t.tail = t.head), t.length++
        }

        function yc(t, e, r, i) {
            if (!(this instanceof yc)) return new yc(t, e, r, i);
            this.list = i, this.value = t, e ? (e.next = this, this.prev = e) : this.prev = null, r ? (r.prev = this, this.next = r) : this.next = null
        }

        try {
            Z2()(jt)
        } catch (t) {
        }
    });
    var oH = w((Jet, eH) => {
        "use strict";
        var $me = bp(), wc = Symbol("max"), Oa = Symbol("length"), cg = Symbol("lengthCalculator"),
            Qp = Symbol("allowStale"), Bc = Symbol("maxAge"), Ma = Symbol("dispose"), tH = Symbol("noDisposeOnSet"),
            Ii = Symbol("lruList"), so = Symbol("cache"), rH = Symbol("updateAgeOnGet"), Bv = () => 1, iH = class {
                constructor(e) {
                    if (typeof e == "number" && (e = {max: e}), e || (e = {}), e.max && (typeof e.max != "number" || e.max < 0)) throw new TypeError("max must be a non-negative number");
                    let r = this[wc] = e.max || Infinity, i = e.length || Bv;
                    if (this[cg] = typeof i != "function" ? Bv : i, this[Qp] = e.stale || !1, e.maxAge && typeof e.maxAge != "number") throw new TypeError("maxAge must be a number");
                    this[Bc] = e.maxAge || 0, this[Ma] = e.dispose, this[tH] = e.noDisposeOnSet || !1, this[rH] = e.updateAgeOnGet || !1, this.reset()
                }

                set max(e) {
                    if (typeof e != "number" || e < 0) throw new TypeError("max must be a non-negative number");
                    this[wc] = e || Infinity, vp(this)
                }

                get max() {
                    return this[wc]
                }

                set allowStale(e) {
                    this[Qp] = !!e
                }

                get allowStale() {
                    return this[Qp]
                }

                set maxAge(e) {
                    if (typeof e != "number") throw new TypeError("maxAge must be a non-negative number");
                    this[Bc] = e, vp(this)
                }

                get maxAge() {
                    return this[Bc]
                }

                set lengthCalculator(e) {
                    typeof e != "function" && (e = Bv), e !== this[cg] && (this[cg] = e, this[Oa] = 0, this[Ii].forEach(r => {
                        r.length = this[cg](r.value, r.key), this[Oa] += r.length
                    })), vp(this)
                }

                get lengthCalculator() {
                    return this[cg]
                }

                get length() {
                    return this[Oa]
                }

                get itemCount() {
                    return this[Ii].length
                }

                rforEach(e, r) {
                    r = r || this;
                    for (let i = this[Ii].tail; i !== null;) {
                        let n = i.prev;
                        sH(this, e, i, r), i = n
                    }
                }

                forEach(e, r) {
                    r = r || this;
                    for (let i = this[Ii].head; i !== null;) {
                        let n = i.next;
                        sH(this, e, i, r), i = n
                    }
                }

                keys() {
                    return this[Ii].toArray().map(e => e.key)
                }

                values() {
                    return this[Ii].toArray().map(e => e.value)
                }

                reset() {
                    this[Ma] && this[Ii] && this[Ii].length && this[Ii].forEach(e => this[Ma](e.key, e.value)), this[so] = new Map, this[Ii] = new $me, this[Oa] = 0
                }

                dump() {
                    return this[Ii].map(e => LI(this, e) ? !1 : {
                        k: e.key,
                        v: e.value,
                        e: e.now + (e.maxAge || 0)
                    }).toArray().filter(e => e)
                }

                dumpLru() {
                    return this[Ii]
                }

                set(e, r, i) {
                    if (i = i || this[Bc], i && typeof i != "number") throw new TypeError("maxAge must be a number");
                    let n = i ? Date.now() : 0, s = this[cg](r, e);
                    if (this[so].has(e)) {
                        if (s > this[wc]) return ug(this, this[so].get(e)), !1;
                        let l = this[so].get(e).value;
                        return this[Ma] && (this[tH] || this[Ma](e, l.value)), l.now = n, l.maxAge = i, l.value = r, this[Oa] += s - l.length, l.length = s, this.get(e), vp(this), !0
                    }
                    let o = new nH(e, r, s, n, i);
                    return o.length > this[wc] ? (this[Ma] && this[Ma](e, r), !1) : (this[Oa] += o.length, this[Ii].unshift(o), this[so].set(e, this[Ii].head), vp(this), !0)
                }

                has(e) {
                    if (!this[so].has(e)) return !1;
                    let r = this[so].get(e).value;
                    return !LI(this, r)
                }

                get(e) {
                    return bv(this, e, !0)
                }

                peek(e) {
                    return bv(this, e, !1)
                }

                pop() {
                    let e = this[Ii].tail;
                    return e ? (ug(this, e), e.value) : null
                }

                del(e) {
                    ug(this, this[so].get(e))
                }

                load(e) {
                    this.reset();
                    let r = Date.now();
                    for (let i = e.length - 1; i >= 0; i--) {
                        let n = e[i], s = n.e || 0;
                        if (s === 0) this.set(n.k, n.v); else {
                            let o = s - r;
                            o > 0 && this.set(n.k, n.v, o)
                        }
                    }
                }

                prune() {
                    this[so].forEach((e, r) => bv(this, r, !1))
                }
            }, bv = (t, e, r) => {
                let i = t[so].get(e);
                if (i) {
                    let n = i.value;
                    if (LI(t, n)) {
                        if (ug(t, i), !t[Qp]) return
                    } else r && (t[rH] && (i.value.now = Date.now()), t[Ii].unshiftNode(i));
                    return n.value
                }
            }, LI = (t, e) => {
                if (!e || !e.maxAge && !t[Bc]) return !1;
                let r = Date.now() - e.now;
                return e.maxAge ? r > e.maxAge : t[Bc] && r > t[Bc]
            }, vp = t => {
                if (t[Oa] > t[wc]) for (let e = t[Ii].tail; t[Oa] > t[wc] && e !== null;) {
                    let r = e.prev;
                    ug(t, e), e = r
                }
            }, ug = (t, e) => {
                if (e) {
                    let r = e.value;
                    t[Ma] && t[Ma](r.key, r.value), t[Oa] -= r.length, t[so].delete(r.key), t[Ii].removeNode(e)
                }
            }, nH = class {
                constructor(e, r, i, n, s) {
                    this.key = e, this.value = r, this.length = i, this.now = n, this.maxAge = s || 0
                }
            }, sH = (t, e, r, i) => {
                let n = r.value;
                LI(t, n) && (ug(t, r), t[Qp] || (n = void 0)), n && e.call(i, n.value, n.key, t)
            };
        eH.exports = iH
    });
    var bs = w((Wet, aH) => {
        var gg = class {
            constructor(e, r) {
                if (r = eEe(r), e instanceof gg) return e.loose === !!r.loose && e.includePrerelease === !!r.includePrerelease ? e : new gg(e.raw, r);
                if (e instanceof Qv) return this.raw = e.value, this.set = [[e]], this.format(), this;
                if (this.options = r, this.loose = !!r.loose, this.includePrerelease = !!r.includePrerelease, this.raw = e, this.set = e.split(/\s*\|\|\s*/).map(i => this.parseRange(i.trim())).filter(i => i.length), !this.set.length) throw new TypeError(`Invalid SemVer Range: ${e}`);
                if (this.set.length > 1) {
                    let i = this.set[0];
                    if (this.set = this.set.filter(n => !lH(n[0])), this.set.length === 0) this.set = [i]; else if (this.set.length > 1) {
                        for (let n of this.set) if (n.length === 1 && sEe(n[0])) {
                            this.set = [n];
                            break
                        }
                    }
                }
                this.format()
            }

            format() {
                return this.range = this.set.map(e => e.join(" ").trim()).join("||").trim(), this.range
            }

            toString() {
                return this.range
            }

            parseRange(e) {
                e = e.trim();
                let i = `parseRange:${Object.keys(this.options).join(",")}:${e}`, n = AH.get(i);
                if (n) return n;
                let s = this.options.loose, o = s ? Gi[ki.HYPHENRANGELOOSE] : Gi[ki.HYPHENRANGE];
                e = e.replace(o, AEe(this.options.includePrerelease)), zr("hyphen replace", e), e = e.replace(Gi[ki.COMPARATORTRIM], rEe), zr("comparator trim", e, Gi[ki.COMPARATORTRIM]), e = e.replace(Gi[ki.TILDETRIM], iEe), e = e.replace(Gi[ki.CARETTRIM], nEe), e = e.split(/\s+/).join(" ");
                let a = s ? Gi[ki.COMPARATORLOOSE] : Gi[ki.COMPARATOR],
                    l = e.split(" ").map(f => oEe(f, this.options)).join(" ").split(/\s+/).map(f => aEe(f, this.options)).filter(this.options.loose ? f => !!f.match(a) : () => !0).map(f => new Qv(f, this.options)),
                    c = l.length, u = new Map;
                for (let f of l) {
                    if (lH(f)) return [f];
                    u.set(f.value, f)
                }
                u.size > 1 && u.has("") && u.delete("");
                let g = [...u.values()];
                return AH.set(i, g), g
            }

            intersects(e, r) {
                if (!(e instanceof gg)) throw new TypeError("a Range is required");
                return this.set.some(i => cH(i, r) && e.set.some(n => cH(n, r) && i.every(s => n.every(o => s.intersects(o, r)))))
            }

            test(e) {
                if (!e) return !1;
                if (typeof e == "string") try {
                    e = new tEe(e, this.options)
                } catch (r) {
                    return !1
                }
                for (let r = 0; r < this.set.length; r++) if (lEe(this.set[r], e, this.options)) return !0;
                return !1
            }
        };
        aH.exports = gg;
        var cEe = oH(), AH = new cEe({max: 1e3}), eEe = yp(), Qv = Sp(), zr = Ip(), tEe = Hi(), {
                re: Gi,
                t: ki,
                comparatorTrimReplace: rEe,
                tildeTrimReplace: iEe,
                caretTrimReplace: nEe
            } = Ec(), lH = t => t.value === "<0.0.0-0", sEe = t => t.value === "", cH = (t, e) => {
                let r = !0, i = t.slice(), n = i.pop();
                for (; r && i.length;) r = i.every(s => n.intersects(s, e)), n = i.pop();
                return r
            },
            oEe = (t, e) => (zr("comp", t, e), t = gEe(t, e), zr("caret", t), t = uEe(t, e), zr("tildes", t), t = fEe(t, e), zr("xrange", t), t = hEe(t, e), zr("stars", t), t),
            on = t => !t || t.toLowerCase() === "x" || t === "*",
            uEe = (t, e) => t.trim().split(/\s+/).map(r => pEe(r, e)).join(" "), pEe = (t, e) => {
                let r = e.loose ? Gi[ki.TILDELOOSE] : Gi[ki.TILDE];
                return t.replace(r, (i, n, s, o, a) => {
                    zr("tilde", t, i, n, s, o, a);
                    let l;
                    return on(n) ? l = "" : on(s) ? l = `>=${n}.0.0 <${+n + 1}.0.0-0` : on(o) ? l = `>=${n}.${s}.0 <${n}.${+s + 1}.0-0` : a ? (zr("replaceTilde pr", a), l = `>=${n}.${s}.${o}-${a} <${n}.${+s + 1}.0-0`) : l = `>=${n}.${s}.${o} <${n}.${+s + 1}.0-0`, zr("tilde return", l), l
                })
            }, gEe = (t, e) => t.trim().split(/\s+/).map(r => dEe(r, e)).join(" "), dEe = (t, e) => {
                zr("caret", t, e);
                let r = e.loose ? Gi[ki.CARETLOOSE] : Gi[ki.CARET], i = e.includePrerelease ? "-0" : "";
                return t.replace(r, (n, s, o, a, l) => {
                    zr("caret", t, n, s, o, a, l);
                    let c;
                    return on(s) ? c = "" : on(o) ? c = `>=${s}.0.0${i} <${+s + 1}.0.0-0` : on(a) ? s === "0" ? c = `>=${s}.${o}.0${i} <${s}.${+o + 1}.0-0` : c = `>=${s}.${o}.0${i} <${+s + 1}.0.0-0` : l ? (zr("replaceCaret pr", l), s === "0" ? o === "0" ? c = `>=${s}.${o}.${a}-${l} <${s}.${o}.${+a + 1}-0` : c = `>=${s}.${o}.${a}-${l} <${s}.${+o + 1}.0-0` : c = `>=${s}.${o}.${a}-${l} <${+s + 1}.0.0-0`) : (zr("no pr"), s === "0" ? o === "0" ? c = `>=${s}.${o}.${a}${i} <${s}.${o}.${+a + 1}-0` : c = `>=${s}.${o}.${a}${i} <${s}.${+o + 1}.0-0` : c = `>=${s}.${o}.${a} <${+s + 1}.0.0-0`), zr("caret return", c), c
                })
            }, fEe = (t, e) => (zr("replaceXRanges", t, e), t.split(/\s+/).map(r => CEe(r, e)).join(" ")), CEe = (t, e) => {
                t = t.trim();
                let r = e.loose ? Gi[ki.XRANGELOOSE] : Gi[ki.XRANGE];
                return t.replace(r, (i, n, s, o, a, l) => {
                    zr("xRange", t, i, n, s, o, a, l);
                    let c = on(s), u = c || on(o), g = u || on(a), f = g;
                    return n === "=" && f && (n = ""), l = e.includePrerelease ? "-0" : "", c ? n === ">" || n === "<" ? i = "<0.0.0-0" : i = "*" : n && f ? (u && (o = 0), a = 0, n === ">" ? (n = ">=", u ? (s = +s + 1, o = 0, a = 0) : (o = +o + 1, a = 0)) : n === "<=" && (n = "<", u ? s = +s + 1 : o = +o + 1), n === "<" && (l = "-0"), i = `${n + s}.${o}.${a}${l}`) : u ? i = `>=${s}.0.0${l} <${+s + 1}.0.0-0` : g && (i = `>=${s}.${o}.0${l} <${s}.${+o + 1}.0-0`), zr("xRange return", i), i
                })
            }, hEe = (t, e) => (zr("replaceStars", t, e), t.trim().replace(Gi[ki.STAR], "")),
            aEe = (t, e) => (zr("replaceGTE0", t, e), t.trim().replace(Gi[e.includePrerelease ? ki.GTE0PRE : ki.GTE0], "")),
            AEe = t => (e, r, i, n, s, o, a, l, c, u, g, f, h) => (on(i) ? r = "" : on(n) ? r = `>=${i}.0.0${t ? "-0" : ""}` : on(s) ? r = `>=${i}.${n}.0${t ? "-0" : ""}` : o ? r = `>=${r}` : r = `>=${r}${t ? "-0" : ""}`, on(c) ? l = "" : on(u) ? l = `<${+c + 1}.0.0-0` : on(g) ? l = `<${c}.${+u + 1}.0-0` : f ? l = `<=${c}.${u}.${g}-${f}` : t ? l = `<${c}.${u}.${+g + 1}-0` : l = `<=${l}`, `${r} ${l}`.trim()),
            lEe = (t, e, r) => {
                for (let i = 0; i < t.length; i++) if (!t[i].test(e)) return !1;
                if (e.prerelease.length && !r.includePrerelease) {
                    for (let i = 0; i < t.length; i++) if (zr(t[i].semver), t[i].semver !== Qv.ANY && t[i].semver.prerelease.length > 0) {
                        let n = t[i].semver;
                        if (n.major === e.major && n.minor === e.minor && n.patch === e.patch) return !0
                    }
                    return !1
                }
                return !0
            }
    });
    var Sp = w((zet, uH) => {
        var kp = Symbol("SemVer ANY"), xp = class {
            static get ANY() {
                return kp
            }

            constructor(e, r) {
                if (r = mEe(r), e instanceof xp) {
                    if (e.loose === !!r.loose) return e;
                    e = e.value
                }
                Sv("comparator", e, r), this.options = r, this.loose = !!r.loose, this.parse(e), this.semver === kp ? this.value = "" : this.value = this.operator + this.semver.version, Sv("comp", this)
            }

            parse(e) {
                let r = this.options.loose ? gH[fH.COMPARATORLOOSE] : gH[fH.COMPARATOR], i = e.match(r);
                if (!i) throw new TypeError(`Invalid comparator: ${e}`);
                this.operator = i[1] !== void 0 ? i[1] : "", this.operator === "=" && (this.operator = ""), i[2] ? this.semver = new hH(i[2], this.options.loose) : this.semver = kp
            }

            toString() {
                return this.value
            }

            test(e) {
                if (Sv("Comparator.test", e, this.options.loose), this.semver === kp || e === kp) return !0;
                if (typeof e == "string") try {
                    e = new hH(e, this.options)
                } catch (r) {
                    return !1
                }
                return vv(e, this.operator, this.semver, this.options)
            }

            intersects(e, r) {
                if (!(e instanceof xp)) throw new TypeError("a Comparator is required");
                if ((!r || typeof r != "object") && (r = {
                    loose: !!r,
                    includePrerelease: !1
                }), this.operator === "") return this.value === "" ? !0 : new pH(e.value, r).test(this.value);
                if (e.operator === "") return e.value === "" ? !0 : new pH(this.value, r).test(e.semver);
                let i = (this.operator === ">=" || this.operator === ">") && (e.operator === ">=" || e.operator === ">"),
                    n = (this.operator === "<=" || this.operator === "<") && (e.operator === "<=" || e.operator === "<"),
                    s = this.semver.version === e.semver.version,
                    o = (this.operator === ">=" || this.operator === "<=") && (e.operator === ">=" || e.operator === "<="),
                    a = vv(this.semver, "<", e.semver, r) && (this.operator === ">=" || this.operator === ">") && (e.operator === "<=" || e.operator === "<"),
                    l = vv(this.semver, ">", e.semver, r) && (this.operator === "<=" || this.operator === "<") && (e.operator === ">=" || e.operator === ">");
                return i || n || s && o || a || l
            }
        };
        uH.exports = xp;
        var mEe = yp(), {re: gH, t: fH} = Ec(), vv = wv(), Sv = Ip(), hH = Hi(), pH = bs()
    });
    var Pp = w((_et, dH) => {
        var EEe = bs(), IEe = (t, e, r) => {
            try {
                e = new EEe(e, r)
            } catch (i) {
                return !1
            }
            return e.test(t)
        };
        dH.exports = IEe
    });
    var mH = w((Vet, CH) => {
        var yEe = bs(), wEe = (t, e) => new yEe(t, e).set.map(r => r.map(i => i.value).join(" ").trim().split(" "));
        CH.exports = wEe
    });
    var IH = w((Xet, EH) => {
        var BEe = Hi(), bEe = bs(), QEe = (t, e, r) => {
            let i = null, n = null, s = null;
            try {
                s = new bEe(e, r)
            } catch (o) {
                return null
            }
            return t.forEach(o => {
                s.test(o) && (!i || n.compare(o) === -1) && (i = o, n = new BEe(i, r))
            }), i
        };
        EH.exports = QEe
    });
    var wH = w((Zet, yH) => {
        var vEe = Hi(), SEe = bs(), kEe = (t, e, r) => {
            let i = null, n = null, s = null;
            try {
                s = new SEe(e, r)
            } catch (o) {
                return null
            }
            return t.forEach(o => {
                s.test(o) && (!i || n.compare(o) === 1) && (i = o, n = new vEe(i, r))
            }), i
        };
        yH.exports = kEe
    });
    var QH = w(($et, BH) => {
        var kv = Hi(), xEe = bs(), bH = Bp(), PEe = (t, e) => {
            t = new xEe(t, e);
            let r = new kv("0.0.0");
            if (t.test(r) || (r = new kv("0.0.0-0"), t.test(r))) return r;
            r = null;
            for (let i = 0; i < t.set.length; ++i) {
                let n = t.set[i], s = null;
                n.forEach(o => {
                    let a = new kv(o.semver.version);
                    switch (o.operator) {
                        case">":
                            a.prerelease.length === 0 ? a.patch++ : a.prerelease.push(0), a.raw = a.format();
                        case"":
                        case">=":
                            (!s || bH(a, s)) && (s = a);
                            break;
                        case"<":
                        case"<=":
                            break;
                        default:
                            throw new Error(`Unexpected operation: ${o.operator}`)
                    }
                }), s && (!r || bH(r, s)) && (r = s)
            }
            return r && t.test(r) ? r : null
        };
        BH.exports = PEe
    });
    var SH = w((ett, vH) => {
        var DEe = bs(), REe = (t, e) => {
            try {
                return new DEe(t, e).range || "*"
            } catch (r) {
                return null
            }
        };
        vH.exports = REe
    });
    var TI = w((ttt, kH) => {
        var FEe = Hi(), xH = Sp(), {ANY: NEe} = xH, LEe = bs(), TEe = Pp(), PH = Bp(), DH = PI(), OEe = RI(),
            MEe = DI(), KEe = (t, e, r, i) => {
                t = new FEe(t, i), e = new LEe(e, i);
                let n, s, o, a, l;
                switch (r) {
                    case">":
                        n = PH, s = OEe, o = DH, a = ">", l = ">=";
                        break;
                    case"<":
                        n = DH, s = MEe, o = PH, a = "<", l = "<=";
                        break;
                    default:
                        throw new TypeError('Must provide a hilo val of "<" or ">"')
                }
                if (TEe(t, e, i)) return !1;
                for (let c = 0; c < e.set.length; ++c) {
                    let u = e.set[c], g = null, f = null;
                    if (u.forEach(h => {
                        h.semver === NEe && (h = new xH(">=0.0.0")), g = g || h, f = f || h, n(h.semver, g.semver, i) ? g = h : o(h.semver, f.semver, i) && (f = h)
                    }), g.operator === a || g.operator === l || (!f.operator || f.operator === a) && s(t, f.semver)) return !1;
                    if (f.operator === l && o(t, f.semver)) return !1
                }
                return !0
            };
        kH.exports = KEe
    });
    var FH = w((rtt, RH) => {
        var UEe = TI(), HEe = (t, e, r) => UEe(t, e, ">", r);
        RH.exports = HEe
    });
    var LH = w((itt, NH) => {
        var GEe = TI(), jEe = (t, e, r) => GEe(t, e, "<", r);
        NH.exports = jEe
    });
    var MH = w((ntt, TH) => {
        var OH = bs(), YEe = (t, e, r) => (t = new OH(t, r), e = new OH(e, r), t.intersects(e));
        TH.exports = YEe
    });
    var UH = w((stt, KH) => {
        var qEe = Pp(), JEe = Bs();
        KH.exports = (t, e, r) => {
            let i = [], n = null, s = null, o = t.sort((u, g) => JEe(u, g, r));
            for (let u of o) qEe(u, e, r) ? (s = u, n || (n = u)) : (s && i.push([n, s]), s = null, n = null);
            n && i.push([n, null]);
            let a = [];
            for (let [u, g] of i) u === g ? a.push(u) : !g && u === o[0] ? a.push("*") : g ? u === o[0] ? a.push(`<=${g}`) : a.push(`${u} - ${g}`) : a.push(`>=${u}`);
            let l = a.join(" || "), c = typeof e.raw == "string" ? e.raw : String(e);
            return l.length < c.length ? l : e
        }
    });
    var qH = w((ott, HH) => {
        var GH = bs(), OI = Sp(), {ANY: xv} = OI, Dp = Pp(), Pv = Bs(), zEe = (t, e, r = {}) => {
            if (t === e) return !0;
            t = new GH(t, r), e = new GH(e, r);
            let i = !1;
            e:for (let n of t.set) {
                for (let s of e.set) {
                    let o = WEe(n, s, r);
                    if (i = i || o !== null, o) continue e
                }
                if (i) return !1
            }
            return !0
        }, WEe = (t, e, r) => {
            if (t === e) return !0;
            if (t.length === 1 && t[0].semver === xv) {
                if (e.length === 1 && e[0].semver === xv) return !0;
                r.includePrerelease ? t = [new OI(">=0.0.0-0")] : t = [new OI(">=0.0.0")]
            }
            if (e.length === 1 && e[0].semver === xv) {
                if (r.includePrerelease) return !0;
                e = [new OI(">=0.0.0")]
            }
            let i = new Set, n, s;
            for (let h of t) h.operator === ">" || h.operator === ">=" ? n = jH(n, h, r) : h.operator === "<" || h.operator === "<=" ? s = YH(s, h, r) : i.add(h.semver);
            if (i.size > 1) return null;
            let o;
            if (n && s) {
                if (o = Pv(n.semver, s.semver, r), o > 0) return null;
                if (o === 0 && (n.operator !== ">=" || s.operator !== "<=")) return null
            }
            for (let h of i) {
                if (n && !Dp(h, String(n), r) || s && !Dp(h, String(s), r)) return null;
                for (let p of e) if (!Dp(h, String(p), r)) return !1;
                return !0
            }
            let a, l, c, u, g = s && !r.includePrerelease && s.semver.prerelease.length ? s.semver : !1,
                f = n && !r.includePrerelease && n.semver.prerelease.length ? n.semver : !1;
            g && g.prerelease.length === 1 && s.operator === "<" && g.prerelease[0] === 0 && (g = !1);
            for (let h of e) {
                if (u = u || h.operator === ">" || h.operator === ">=", c = c || h.operator === "<" || h.operator === "<=", n) {
                    if (f && h.semver.prerelease && h.semver.prerelease.length && h.semver.major === f.major && h.semver.minor === f.minor && h.semver.patch === f.patch && (f = !1), h.operator === ">" || h.operator === ">=") {
                        if (a = jH(n, h, r), a === h && a !== n) return !1
                    } else if (n.operator === ">=" && !Dp(n.semver, String(h), r)) return !1
                }
                if (s) {
                    if (g && h.semver.prerelease && h.semver.prerelease.length && h.semver.major === g.major && h.semver.minor === g.minor && h.semver.patch === g.patch && (g = !1), h.operator === "<" || h.operator === "<=") {
                        if (l = YH(s, h, r), l === h && l !== s) return !1
                    } else if (s.operator === "<=" && !Dp(s.semver, String(h), r)) return !1
                }
                if (!h.operator && (s || n) && o !== 0) return !1
            }
            return !(n && c && !s && o !== 0 || s && u && !n && o !== 0 || f || g)
        }, jH = (t, e, r) => {
            if (!t) return e;
            let i = Pv(t.semver, e.semver, r);
            return i > 0 ? t : i < 0 || e.operator === ">" && t.operator === ">=" ? e : t
        }, YH = (t, e, r) => {
            if (!t) return e;
            let i = Pv(t.semver, e.semver, r);
            return i < 0 ? t : i > 0 || e.operator === "<" && t.operator === "<=" ? e : t
        };
        HH.exports = zEe
    });
    var ri = w((att, JH) => {
        var Dv = Ec();
        JH.exports = {
            re: Dv.re,
            src: Dv.src,
            tokens: Dv.t,
            SEMVER_SPEC_VERSION: Ep().SEMVER_SPEC_VERSION,
            SemVer: Hi(),
            compareIdentifiers: QI().compareIdentifiers,
            rcompareIdentifiers: QI().rcompareIdentifiers,
            parse: Ic(),
            valid: h2(),
            clean: d2(),
            inc: m2(),
            diff: b2(),
            major: v2(),
            minor: k2(),
            patch: P2(),
            prerelease: R2(),
            compare: Bs(),
            rcompare: N2(),
            compareLoose: T2(),
            compareBuild: xI(),
            sort: U2(),
            rsort: G2(),
            gt: Bp(),
            lt: PI(),
            eq: kI(),
            neq: yv(),
            gte: DI(),
            lte: RI(),
            cmp: wv(),
            coerce: V2(),
            Comparator: Sp(),
            Range: bs(),
            satisfies: Pp(),
            toComparators: mH(),
            maxSatisfying: IH(),
            minSatisfying: wH(),
            minVersion: QH(),
            validRange: SH(),
            outside: TI(),
            gtr: FH(),
            ltr: LH(),
            intersects: MH(),
            simplifyRange: UH(),
            subset: qH()
        }
    });
    var Rv = w(MI => {
        "use strict";
        Object.defineProperty(MI, "__esModule", {value: !0});
        MI.VERSION = void 0;
        MI.VERSION = "9.1.0"
    });
    var Yt = w((exports, module) => {
        "use strict";
        var __spreadArray = exports && exports.__spreadArray || function (t, e, r) {
            if (r || arguments.length === 2) for (var i = 0, n = e.length, s; i < n; i++) (s || !(i in e)) && (s || (s = Array.prototype.slice.call(e, 0, i)), s[i] = e[i]);
            return t.concat(s || Array.prototype.slice.call(e))
        };
        Object.defineProperty(exports, "__esModule", {value: !0});
        exports.toFastProperties = exports.timer = exports.peek = exports.isES2015MapSupported = exports.PRINT_WARNING = exports.PRINT_ERROR = exports.packArray = exports.IDENTITY = exports.NOOP = exports.merge = exports.groupBy = exports.defaults = exports.assignNoOverwrite = exports.assign = exports.zipObject = exports.sortBy = exports.indexOf = exports.some = exports.difference = exports.every = exports.isObject = exports.isRegExp = exports.isArray = exports.partial = exports.uniq = exports.compact = exports.reduce = exports.findAll = exports.find = exports.cloneObj = exports.cloneArr = exports.contains = exports.has = exports.pick = exports.reject = exports.filter = exports.dropRight = exports.drop = exports.isFunction = exports.isUndefined = exports.isString = exports.forEach = exports.last = exports.first = exports.flatten = exports.map = exports.mapValues = exports.values = exports.keys = exports.isEmpty = void 0;
        exports.upperFirst = void 0;

        function isEmpty(t) {
            return t && t.length === 0
        }

        exports.isEmpty = isEmpty;

        function keys(t) {
            return t == null ? [] : Object.keys(t)
        }

        exports.keys = keys;

        function values(t) {
            for (var e = [], r = Object.keys(t), i = 0; i < r.length; i++) e.push(t[r[i]]);
            return e
        }

        exports.values = values;

        function mapValues(t, e) {
            for (var r = [], i = keys(t), n = 0; n < i.length; n++) {
                var s = i[n];
                r.push(e.call(null, t[s], s))
            }
            return r
        }

        exports.mapValues = mapValues;

        function map(t, e) {
            for (var r = [], i = 0; i < t.length; i++) r.push(e.call(null, t[i], i));
            return r
        }

        exports.map = map;

        function flatten(t) {
            for (var e = [], r = 0; r < t.length; r++) {
                var i = t[r];
                Array.isArray(i) ? e = e.concat(flatten(i)) : e.push(i)
            }
            return e
        }

        exports.flatten = flatten;

        function first(t) {
            return isEmpty(t) ? void 0 : t[0]
        }

        exports.first = first;

        function last(t) {
            var e = t && t.length;
            return e ? t[e - 1] : void 0
        }

        exports.last = last;

        function forEach(t, e) {
            if (Array.isArray(t)) for (var r = 0; r < t.length; r++) e.call(null, t[r], r); else if (isObject(t)) for (var i = keys(t), r = 0; r < i.length; r++) {
                var n = i[r], s = t[n];
                e.call(null, s, n)
            } else throw Error("non exhaustive match")
        }

        exports.forEach = forEach;

        function isString(t) {
            return typeof t == "string"
        }

        exports.isString = isString;

        function isUndefined(t) {
            return t === void 0
        }

        exports.isUndefined = isUndefined;

        function isFunction(t) {
            return t instanceof Function
        }

        exports.isFunction = isFunction;

        function drop(t, e) {
            return e === void 0 && (e = 1), t.slice(e, t.length)
        }

        exports.drop = drop;

        function dropRight(t, e) {
            return e === void 0 && (e = 1), t.slice(0, t.length - e)
        }

        exports.dropRight = dropRight;

        function filter(t, e) {
            var r = [];
            if (Array.isArray(t)) for (var i = 0; i < t.length; i++) {
                var n = t[i];
                e.call(null, n) && r.push(n)
            }
            return r
        }

        exports.filter = filter;

        function reject(t, e) {
            return filter(t, function (r) {
                return !e(r)
            })
        }

        exports.reject = reject;

        function pick(t, e) {
            for (var r = Object.keys(t), i = {}, n = 0; n < r.length; n++) {
                var s = r[n], o = t[s];
                e(o) && (i[s] = o)
            }
            return i
        }

        exports.pick = pick;

        function has(t, e) {
            return isObject(t) ? t.hasOwnProperty(e) : !1
        }

        exports.has = has;

        function contains(t, e) {
            return find(t, function (r) {
                return r === e
            }) !== void 0
        }

        exports.contains = contains;

        function cloneArr(t) {
            for (var e = [], r = 0; r < t.length; r++) e.push(t[r]);
            return e
        }

        exports.cloneArr = cloneArr;

        function cloneObj(t) {
            var e = {};
            for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
            return e
        }

        exports.cloneObj = cloneObj;

        function find(t, e) {
            for (var r = 0; r < t.length; r++) {
                var i = t[r];
                if (e.call(null, i)) return i
            }
        }

        exports.find = find;

        function findAll(t, e) {
            for (var r = [], i = 0; i < t.length; i++) {
                var n = t[i];
                e.call(null, n) && r.push(n)
            }
            return r
        }

        exports.findAll = findAll;

        function reduce(t, e, r) {
            for (var i = Array.isArray(t), n = i ? t : values(t), s = i ? [] : keys(t), o = r, a = 0; a < n.length; a++) o = e.call(null, o, n[a], i ? a : s[a]);
            return o
        }

        exports.reduce = reduce;

        function compact(t) {
            return reject(t, function (e) {
                return e == null
            })
        }

        exports.compact = compact;

        function uniq(t, e) {
            e === void 0 && (e = function (i) {
                return i
            });
            var r = [];
            return reduce(t, function (i, n) {
                var s = e(n);
                return contains(r, s) ? i : (r.push(s), i.concat(n))
            }, [])
        }

        exports.uniq = uniq;

        function partial(t) {
            for (var e = [], r = 1; r < arguments.length; r++) e[r - 1] = arguments[r];
            var i = [null], n = i.concat(e);
            return Function.bind.apply(t, n)
        }

        exports.partial = partial;

        function isArray(t) {
            return Array.isArray(t)
        }

        exports.isArray = isArray;

        function isRegExp(t) {
            return t instanceof RegExp
        }

        exports.isRegExp = isRegExp;

        function isObject(t) {
            return t instanceof Object
        }

        exports.isObject = isObject;

        function every(t, e) {
            for (var r = 0; r < t.length; r++) if (!e(t[r], r)) return !1;
            return !0
        }

        exports.every = every;

        function difference(t, e) {
            return reject(t, function (r) {
                return contains(e, r)
            })
        }

        exports.difference = difference;

        function some(t, e) {
            for (var r = 0; r < t.length; r++) if (e(t[r])) return !0;
            return !1
        }

        exports.some = some;

        function indexOf(t, e) {
            for (var r = 0; r < t.length; r++) if (t[r] === e) return r;
            return -1
        }

        exports.indexOf = indexOf;

        function sortBy(t, e) {
            var r = cloneArr(t);
            return r.sort(function (i, n) {
                return e(i) - e(n)
            }), r
        }

        exports.sortBy = sortBy;

        function zipObject(t, e) {
            if (t.length !== e.length) throw Error("can't zipObject with different number of keys and values!");
            for (var r = {}, i = 0; i < t.length; i++) r[t[i]] = e[i];
            return r
        }

        exports.zipObject = zipObject;

        function assign(t) {
            for (var e = [], r = 1; r < arguments.length; r++) e[r - 1] = arguments[r];
            for (var i = 0; i < e.length; i++) for (var n = e[i], s = keys(n), o = 0; o < s.length; o++) {
                var a = s[o];
                t[a] = n[a]
            }
            return t
        }

        exports.assign = assign;

        function assignNoOverwrite(t) {
            for (var e = [], r = 1; r < arguments.length; r++) e[r - 1] = arguments[r];
            for (var i = 0; i < e.length; i++) for (var n = e[i], s = keys(n), o = 0; o < s.length; o++) {
                var a = s[o];
                has(t, a) || (t[a] = n[a])
            }
            return t
        }

        exports.assignNoOverwrite = assignNoOverwrite;

        function defaults() {
            for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
            return assignNoOverwrite.apply(void 0, __spreadArray([{}], t, !1))
        }

        exports.defaults = defaults;

        function groupBy(t, e) {
            var r = {};
            return forEach(t, function (i) {
                var n = e(i), s = r[n];
                s ? s.push(i) : r[n] = [i]
            }), r
        }

        exports.groupBy = groupBy;

        function merge(t, e) {
            for (var r = cloneObj(t), i = keys(e), n = 0; n < i.length; n++) {
                var s = i[n], o = e[s];
                r[s] = o
            }
            return r
        }

        exports.merge = merge;

        function NOOP() {
        }

        exports.NOOP = NOOP;

        function IDENTITY(t) {
            return t
        }

        exports.IDENTITY = IDENTITY;

        function packArray(t) {
            for (var e = [], r = 0; r < t.length; r++) {
                var i = t[r];
                e.push(i !== void 0 ? i : void 0)
            }
            return e
        }

        exports.packArray = packArray;

        function PRINT_ERROR(t) {
            console && console.error && console.error("Error: " + t)
        }

        exports.PRINT_ERROR = PRINT_ERROR;

        function PRINT_WARNING(t) {
            console && console.warn && console.warn("Warning: " + t)
        }

        exports.PRINT_WARNING = PRINT_WARNING;

        function isES2015MapSupported() {
            return typeof Map == "function"
        }

        exports.isES2015MapSupported = isES2015MapSupported;

        function peek(t) {
            return t[t.length - 1]
        }

        exports.peek = peek;

        function timer(t) {
            var e = new Date().getTime(), r = t(), i = new Date().getTime(), n = i - e;
            return {time: n, value: r}
        }

        exports.timer = timer;

        function toFastProperties(toBecomeFast) {
            function FakeConstructor() {
            }

            FakeConstructor.prototype = toBecomeFast;
            var fakeInstance = new FakeConstructor;

            function fakeAccess() {
                return typeof fakeInstance.bar
            }

            return fakeAccess(), fakeAccess(), toBecomeFast;
            eval(toBecomeFast)
        }

        exports.toFastProperties = toFastProperties;

        function upperFirst(t) {
            if (!t) return t;
            var e = getCharacterFromCodePointAt(t, 0);
            return e.toUpperCase() + t.substring(e.length)
        }

        exports.upperFirst = upperFirst;
        var surrogatePairPattern = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;

        function getCharacterFromCodePointAt(t, e) {
            var r = t.substring(e, e + 1);
            return surrogatePairPattern.test(r) ? r : t[e]
        }
    });
    var UI = w((WH, KI) => {
        (function (t, e) {
            typeof define == "function" && define.amd ? define([], e) : typeof KI == "object" && KI.exports ? KI.exports = e() : t.regexpToAst = e()
        })(typeof self != "undefined" ? self : WH, function () {
            function t() {
            }

            t.prototype.saveState = function () {
                return {idx: this.idx, input: this.input, groupIdx: this.groupIdx}
            }, t.prototype.restoreState = function (p) {
                this.idx = p.idx, this.input = p.input, this.groupIdx = p.groupIdx
            }, t.prototype.pattern = function (p) {
                this.idx = 0, this.input = p, this.groupIdx = 0, this.consumeChar("/");
                var m = this.disjunction();
                this.consumeChar("/");
                for (var y = {
                    type: "Flags",
                    loc: {begin: this.idx, end: p.length},
                    global: !1,
                    ignoreCase: !1,
                    multiLine: !1,
                    unicode: !1,
                    sticky: !1
                }; this.isRegExpFlag();) switch (this.popChar()) {
                    case"g":
                        o(y, "global");
                        break;
                    case"i":
                        o(y, "ignoreCase");
                        break;
                    case"m":
                        o(y, "multiLine");
                        break;
                    case"u":
                        o(y, "unicode");
                        break;
                    case"y":
                        o(y, "sticky");
                        break
                }
                if (this.idx !== this.input.length) throw Error("Redundant input: " + this.input.substring(this.idx));
                return {type: "Pattern", flags: y, value: m, loc: this.loc(0)}
            }, t.prototype.disjunction = function () {
                var p = [], m = this.idx;
                for (p.push(this.alternative()); this.peekChar() === "|";) this.consumeChar("|"), p.push(this.alternative());
                return {type: "Disjunction", value: p, loc: this.loc(m)}
            }, t.prototype.alternative = function () {
                for (var p = [], m = this.idx; this.isTerm();) p.push(this.term());
                return {type: "Alternative", value: p, loc: this.loc(m)}
            }, t.prototype.term = function () {
                return this.isAssertion() ? this.assertion() : this.atom()
            }, t.prototype.assertion = function () {
                var p = this.idx;
                switch (this.popChar()) {
                    case"^":
                        return {type: "StartAnchor", loc: this.loc(p)};
                    case"$":
                        return {type: "EndAnchor", loc: this.loc(p)};
                    case"\\":
                        switch (this.popChar()) {
                            case"b":
                                return {type: "WordBoundary", loc: this.loc(p)};
                            case"B":
                                return {type: "NonWordBoundary", loc: this.loc(p)}
                        }
                        throw Error("Invalid Assertion Escape");
                    case"(":
                        this.consumeChar("?");
                        var m;
                        switch (this.popChar()) {
                            case"=":
                                m = "Lookahead";
                                break;
                            case"!":
                                m = "NegativeLookahead";
                                break
                        }
                        a(m);
                        var y = this.disjunction();
                        return this.consumeChar(")"), {type: m, value: y, loc: this.loc(p)}
                }
                l()
            }, t.prototype.quantifier = function (p) {
                var m, y = this.idx;
                switch (this.popChar()) {
                    case"*":
                        m = {atLeast: 0, atMost: Infinity};
                        break;
                    case"+":
                        m = {atLeast: 1, atMost: Infinity};
                        break;
                    case"?":
                        m = {atLeast: 0, atMost: 1};
                        break;
                    case"{":
                        var b = this.integerIncludingZero();
                        switch (this.popChar()) {
                            case"}":
                                m = {atLeast: b, atMost: b};
                                break;
                            case",":
                                var S;
                                this.isDigit() ? (S = this.integerIncludingZero(), m = {
                                    atLeast: b,
                                    atMost: S
                                }) : m = {atLeast: b, atMost: Infinity}, this.consumeChar("}");
                                break
                        }
                        if (p === !0 && m === void 0) return;
                        a(m);
                        break
                }
                if (!(p === !0 && m === void 0)) return a(m), this.peekChar(0) === "?" ? (this.consumeChar("?"), m.greedy = !1) : m.greedy = !0, m.type = "Quantifier", m.loc = this.loc(y), m
            }, t.prototype.atom = function () {
                var p, m = this.idx;
                switch (this.peekChar()) {
                    case".":
                        p = this.dotAll();
                        break;
                    case"\\":
                        p = this.atomEscape();
                        break;
                    case"[":
                        p = this.characterClass();
                        break;
                    case"(":
                        p = this.group();
                        break
                }
                return p === void 0 && this.isPatternCharacter() && (p = this.patternCharacter()), a(p), p.loc = this.loc(m), this.isQuantifier() && (p.quantifier = this.quantifier()), p
            }, t.prototype.dotAll = function () {
                return this.consumeChar("."), {
                    type: "Set", complement: !0, value: [n(`
`), n("\r"), n("\u2028"), n("\u2029")]
                }
            }, t.prototype.atomEscape = function () {
                switch (this.consumeChar("\\"), this.peekChar()) {
                    case"1":
                    case"2":
                    case"3":
                    case"4":
                    case"5":
                    case"6":
                    case"7":
                    case"8":
                    case"9":
                        return this.decimalEscapeAtom();
                    case"d":
                    case"D":
                    case"s":
                    case"S":
                    case"w":
                    case"W":
                        return this.characterClassEscape();
                    case"f":
                    case"n":
                    case"r":
                    case"t":
                    case"v":
                        return this.controlEscapeAtom();
                    case"c":
                        return this.controlLetterEscapeAtom();
                    case"0":
                        return this.nulCharacterAtom();
                    case"x":
                        return this.hexEscapeSequenceAtom();
                    case"u":
                        return this.regExpUnicodeEscapeSequenceAtom();
                    default:
                        return this.identityEscapeAtom()
                }
            }, t.prototype.decimalEscapeAtom = function () {
                var p = this.positiveInteger();
                return {type: "GroupBackReference", value: p}
            }, t.prototype.characterClassEscape = function () {
                var p, m = !1;
                switch (this.popChar()) {
                    case"d":
                        p = u;
                        break;
                    case"D":
                        p = u, m = !0;
                        break;
                    case"s":
                        p = f;
                        break;
                    case"S":
                        p = f, m = !0;
                        break;
                    case"w":
                        p = g;
                        break;
                    case"W":
                        p = g, m = !0;
                        break
                }
                return a(p), {type: "Set", value: p, complement: m}
            }, t.prototype.controlEscapeAtom = function () {
                var p;
                switch (this.popChar()) {
                    case"f":
                        p = n("\f");
                        break;
                    case"n":
                        p = n(`
`);
                        break;
                    case"r":
                        p = n("\r");
                        break;
                    case"t":
                        p = n("	");
                        break;
                    case"v":
                        p = n("\v");
                        break
                }
                return a(p), {type: "Character", value: p}
            }, t.prototype.controlLetterEscapeAtom = function () {
                this.consumeChar("c");
                var p = this.popChar();
                if (/[a-zA-Z]/.test(p) === !1) throw Error("Invalid ");
                var m = p.toUpperCase().charCodeAt(0) - 64;
                return {type: "Character", value: m}
            }, t.prototype.nulCharacterAtom = function () {
                return this.consumeChar("0"), {type: "Character", value: n("\0")}
            }, t.prototype.hexEscapeSequenceAtom = function () {
                return this.consumeChar("x"), this.parseHexDigits(2)
            }, t.prototype.regExpUnicodeEscapeSequenceAtom = function () {
                return this.consumeChar("u"), this.parseHexDigits(4)
            }, t.prototype.identityEscapeAtom = function () {
                var p = this.popChar();
                return {type: "Character", value: n(p)}
            }, t.prototype.classPatternCharacterAtom = function () {
                switch (this.peekChar()) {
                    case`
`:
                    case"\r":
                    case"\u2028":
                    case"\u2029":
                    case"\\":
                    case"]":
                        throw Error("TBD");
                    default:
                        var p = this.popChar();
                        return {type: "Character", value: n(p)}
                }
            }, t.prototype.characterClass = function () {
                var p = [], m = !1;
                for (this.consumeChar("["), this.peekChar(0) === "^" && (this.consumeChar("^"), m = !0); this.isClassAtom();) {
                    var y = this.classAtom(), b = y.type === "Character";
                    if (b && this.isRangeDash()) {
                        this.consumeChar("-");
                        var S = this.classAtom(), k = S.type === "Character";
                        if (k) {
                            if (S.value < y.value) throw Error("Range out of order in character class");
                            p.push({from: y.value, to: S.value})
                        } else s(y.value, p), p.push(n("-")), s(S.value, p)
                    } else s(y.value, p)
                }
                return this.consumeChar("]"), {type: "Set", complement: m, value: p}
            }, t.prototype.classAtom = function () {
                switch (this.peekChar()) {
                    case"]":
                    case`
`:
                    case"\r":
                    case"\u2028":
                    case"\u2029":
                        throw Error("TBD");
                    case"\\":
                        return this.classEscape();
                    default:
                        return this.classPatternCharacterAtom()
                }
            }, t.prototype.classEscape = function () {
                switch (this.consumeChar("\\"), this.peekChar()) {
                    case"b":
                        return this.consumeChar("b"), {type: "Character", value: n("\b")};
                    case"d":
                    case"D":
                    case"s":
                    case"S":
                    case"w":
                    case"W":
                        return this.characterClassEscape();
                    case"f":
                    case"n":
                    case"r":
                    case"t":
                    case"v":
                        return this.controlEscapeAtom();
                    case"c":
                        return this.controlLetterEscapeAtom();
                    case"0":
                        return this.nulCharacterAtom();
                    case"x":
                        return this.hexEscapeSequenceAtom();
                    case"u":
                        return this.regExpUnicodeEscapeSequenceAtom();
                    default:
                        return this.identityEscapeAtom()
                }
            }, t.prototype.group = function () {
                var p = !0;
                switch (this.consumeChar("("), this.peekChar(0)) {
                    case"?":
                        this.consumeChar("?"), this.consumeChar(":"), p = !1;
                        break;
                    default:
                        this.groupIdx++;
                        break
                }
                var m = this.disjunction();
                this.consumeChar(")");
                var y = {type: "Group", capturing: p, value: m};
                return p && (y.idx = this.groupIdx), y
            }, t.prototype.positiveInteger = function () {
                var p = this.popChar();
                if (i.test(p) === !1) throw Error("Expecting a positive integer");
                for (; r.test(this.peekChar(0));) p += this.popChar();
                return parseInt(p, 10)
            }, t.prototype.integerIncludingZero = function () {
                var p = this.popChar();
                if (r.test(p) === !1) throw Error("Expecting an integer");
                for (; r.test(this.peekChar(0));) p += this.popChar();
                return parseInt(p, 10)
            }, t.prototype.patternCharacter = function () {
                var p = this.popChar();
                switch (p) {
                    case`
`:
                    case"\r":
                    case"\u2028":
                    case"\u2029":
                    case"^":
                    case"$":
                    case"\\":
                    case".":
                    case"*":
                    case"+":
                    case"?":
                    case"(":
                    case")":
                    case"[":
                    case"|":
                        throw Error("TBD");
                    default:
                        return {type: "Character", value: n(p)}
                }
            }, t.prototype.isRegExpFlag = function () {
                switch (this.peekChar(0)) {
                    case"g":
                    case"i":
                    case"m":
                    case"u":
                    case"y":
                        return !0;
                    default:
                        return !1
                }
            }, t.prototype.isRangeDash = function () {
                return this.peekChar() === "-" && this.isClassAtom(1)
            }, t.prototype.isDigit = function () {
                return r.test(this.peekChar(0))
            }, t.prototype.isClassAtom = function (p) {
                switch (p === void 0 && (p = 0), this.peekChar(p)) {
                    case"]":
                    case`
`:
                    case"\r":
                    case"\u2028":
                    case"\u2029":
                        return !1;
                    default:
                        return !0
                }
            }, t.prototype.isTerm = function () {
                return this.isAtom() || this.isAssertion()
            }, t.prototype.isAtom = function () {
                if (this.isPatternCharacter()) return !0;
                switch (this.peekChar(0)) {
                    case".":
                    case"\\":
                    case"[":
                    case"(":
                        return !0;
                    default:
                        return !1
                }
            }, t.prototype.isAssertion = function () {
                switch (this.peekChar(0)) {
                    case"^":
                    case"$":
                        return !0;
                    case"\\":
                        switch (this.peekChar(1)) {
                            case"b":
                            case"B":
                                return !0;
                            default:
                                return !1
                        }
                    case"(":
                        return this.peekChar(1) === "?" && (this.peekChar(2) === "=" || this.peekChar(2) === "!");
                    default:
                        return !1
                }
            }, t.prototype.isQuantifier = function () {
                var p = this.saveState();
                try {
                    return this.quantifier(!0) !== void 0
                } catch (m) {
                    return !1
                } finally {
                    this.restoreState(p)
                }
            }, t.prototype.isPatternCharacter = function () {
                switch (this.peekChar()) {
                    case"^":
                    case"$":
                    case"\\":
                    case".":
                    case"*":
                    case"+":
                    case"?":
                    case"(":
                    case")":
                    case"[":
                    case"|":
                    case"/":
                    case`
`:
                    case"\r":
                    case"\u2028":
                    case"\u2029":
                        return !1;
                    default:
                        return !0
                }
            }, t.prototype.parseHexDigits = function (p) {
                for (var m = "", y = 0; y < p; y++) {
                    var b = this.popChar();
                    if (e.test(b) === !1) throw Error("Expecting a HexDecimal digits");
                    m += b
                }
                var S = parseInt(m, 16);
                return {type: "Character", value: S}
            }, t.prototype.peekChar = function (p) {
                return p === void 0 && (p = 0), this.input[this.idx + p]
            }, t.prototype.popChar = function () {
                var p = this.peekChar(0);
                return this.consumeChar(), p
            }, t.prototype.consumeChar = function (p) {
                if (p !== void 0 && this.input[this.idx] !== p) throw Error("Expected: '" + p + "' but found: '" + this.input[this.idx] + "' at offset: " + this.idx);
                if (this.idx >= this.input.length) throw Error("Unexpected end of input");
                this.idx++
            }, t.prototype.loc = function (p) {
                return {begin: p, end: this.idx}
            };
            var e = /[0-9a-fA-F]/, r = /[0-9]/, i = /[1-9]/;

            function n(p) {
                return p.charCodeAt(0)
            }

            function s(p, m) {
                p.length !== void 0 ? p.forEach(function (y) {
                    m.push(y)
                }) : m.push(p)
            }

            function o(p, m) {
                if (p[m] === !0) throw"duplicate flag " + m;
                p[m] = !0
            }

            function a(p) {
                if (p === void 0) throw Error("Internal Error - Should never get here!")
            }

            function l() {
                throw Error("Internal Error - Should never get here!")
            }

            var c, u = [];
            for (c = n("0"); c <= n("9"); c++) u.push(c);
            var g = [n("_")].concat(u);
            for (c = n("a"); c <= n("z"); c++) g.push(c);
            for (c = n("A"); c <= n("Z"); c++) g.push(c);
            var f = [n(" "), n("\f"), n(`
`), n("\r"), n("	"), n("\v"), n("	"), n("\xA0"), n("\u1680"), n("\u2000"), n("\u2001"), n("\u2002"), n("\u2003"), n("\u2004"), n("\u2005"), n("\u2006"), n("\u2007"), n("\u2008"), n("\u2009"), n("\u200A"), n("\u2028"), n("\u2029"), n("\u202F"), n("\u205F"), n("\u3000"), n("\uFEFF")];

            function h() {
            }

            return h.prototype.visitChildren = function (p) {
                for (var m in p) {
                    var y = p[m];
                    p.hasOwnProperty(m) && (y.type !== void 0 ? this.visit(y) : Array.isArray(y) && y.forEach(function (b) {
                        this.visit(b)
                    }, this))
                }
            }, h.prototype.visit = function (p) {
                switch (p.type) {
                    case"Pattern":
                        this.visitPattern(p);
                        break;
                    case"Flags":
                        this.visitFlags(p);
                        break;
                    case"Disjunction":
                        this.visitDisjunction(p);
                        break;
                    case"Alternative":
                        this.visitAlternative(p);
                        break;
                    case"StartAnchor":
                        this.visitStartAnchor(p);
                        break;
                    case"EndAnchor":
                        this.visitEndAnchor(p);
                        break;
                    case"WordBoundary":
                        this.visitWordBoundary(p);
                        break;
                    case"NonWordBoundary":
                        this.visitNonWordBoundary(p);
                        break;
                    case"Lookahead":
                        this.visitLookahead(p);
                        break;
                    case"NegativeLookahead":
                        this.visitNegativeLookahead(p);
                        break;
                    case"Character":
                        this.visitCharacter(p);
                        break;
                    case"Set":
                        this.visitSet(p);
                        break;
                    case"Group":
                        this.visitGroup(p);
                        break;
                    case"GroupBackReference":
                        this.visitGroupBackReference(p);
                        break;
                    case"Quantifier":
                        this.visitQuantifier(p);
                        break
                }
                this.visitChildren(p)
            }, h.prototype.visitPattern = function (p) {
            }, h.prototype.visitFlags = function (p) {
            }, h.prototype.visitDisjunction = function (p) {
            }, h.prototype.visitAlternative = function (p) {
            }, h.prototype.visitStartAnchor = function (p) {
            }, h.prototype.visitEndAnchor = function (p) {
            }, h.prototype.visitWordBoundary = function (p) {
            }, h.prototype.visitNonWordBoundary = function (p) {
            }, h.prototype.visitLookahead = function (p) {
            }, h.prototype.visitNegativeLookahead = function (p) {
            }, h.prototype.visitCharacter = function (p) {
            }, h.prototype.visitSet = function (p) {
            }, h.prototype.visitGroup = function (p) {
            }, h.prototype.visitGroupBackReference = function (p) {
            }, h.prototype.visitQuantifier = function (p) {
            }, {RegExpParser: t, BaseRegExpVisitor: h, VERSION: "0.5.0"}
        })
    });
    var GI = w(fg => {
        "use strict";
        Object.defineProperty(fg, "__esModule", {value: !0});
        fg.clearRegExpParserCache = fg.getRegExpAst = void 0;
        var _Ee = UI(), HI = {}, VEe = new _Ee.RegExpParser;

        function XEe(t) {
            var e = t.toString();
            if (HI.hasOwnProperty(e)) return HI[e];
            var r = VEe.pattern(e);
            return HI[e] = r, r
        }

        fg.getRegExpAst = XEe;

        function ZEe() {
            HI = {}
        }

        fg.clearRegExpParserCache = ZEe
    });
    var ZH = w(Bn => {
        "use strict";
        var $Ee = Bn && Bn.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(Bn, "__esModule", {value: !0});
        Bn.canMatchCharCode = Bn.firstCharOptimizedIndices = Bn.getOptimizedStartCodesIndices = Bn.failedOptimizationPrefixMsg = void 0;
        var zH = UI(), Qs = Yt(), _H = GI(), Ka = Fv(),
            VH = "Complement Sets are not supported for first char optimization";
        Bn.failedOptimizationPrefixMsg = `Unable to use "first char" lexer optimizations:
`;

        function eIe(t, e) {
            e === void 0 && (e = !1);
            try {
                var r = (0, _H.getRegExpAst)(t), i = jI(r.value, {}, r.flags.ignoreCase);
                return i
            } catch (s) {
                if (s.message === VH) e && (0, Qs.PRINT_WARNING)("" + Bn.failedOptimizationPrefixMsg + ("	Unable to optimize: < " + t.toString() + ` >
`) + `	Complement Sets cannot be automatically optimized.
	This will disable the lexer's first char optimizations.
	See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`); else {
                    var n = "";
                    e && (n = `
	This will disable the lexer's first char optimizations.
	See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`), (0, Qs.PRINT_ERROR)(Bn.failedOptimizationPrefixMsg + `
` + ("	Failed parsing: < " + t.toString() + ` >
`) + ("	Using the regexp-to-ast library version: " + zH.VERSION + `
`) + "	Please open an issue at: https://github.com/bd82/regexp-to-ast/issues" + n)
                }
            }
            return []
        }

        Bn.getOptimizedStartCodesIndices = eIe;

        function jI(t, e, r) {
            switch (t.type) {
                case"Disjunction":
                    for (var i = 0; i < t.value.length; i++) jI(t.value[i], e, r);
                    break;
                case"Alternative":
                    for (var n = t.value, i = 0; i < n.length; i++) {
                        var s = n[i];
                        switch (s.type) {
                            case"EndAnchor":
                            case"GroupBackReference":
                            case"Lookahead":
                            case"NegativeLookahead":
                            case"StartAnchor":
                            case"WordBoundary":
                            case"NonWordBoundary":
                                continue
                        }
                        var o = s;
                        switch (o.type) {
                            case"Character":
                                YI(o.value, e, r);
                                break;
                            case"Set":
                                if (o.complement === !0) throw Error(VH);
                                (0, Qs.forEach)(o.value, function (c) {
                                    if (typeof c == "number") YI(c, e, r); else {
                                        var u = c;
                                        if (r === !0) for (var g = u.from; g <= u.to; g++) YI(g, e, r); else {
                                            for (var g = u.from; g <= u.to && g < Ka.minOptimizationVal; g++) YI(g, e, r);
                                            if (u.to >= Ka.minOptimizationVal) for (var f = u.from >= Ka.minOptimizationVal ? u.from : Ka.minOptimizationVal, h = u.to, p = (0, Ka.charCodeToOptimizedIndex)(f), m = (0, Ka.charCodeToOptimizedIndex)(h), y = p; y <= m; y++) e[y] = y
                                        }
                                    }
                                });
                                break;
                            case"Group":
                                jI(o.value, e, r);
                                break;
                            default:
                                throw Error("Non Exhaustive Match")
                        }
                        var a = o.quantifier !== void 0 && o.quantifier.atLeast === 0;
                        if (o.type === "Group" && Nv(o) === !1 || o.type !== "Group" && a === !1) break
                    }
                    break;
                default:
                    throw Error("non exhaustive match!")
            }
            return (0, Qs.values)(e)
        }

        Bn.firstCharOptimizedIndices = jI;

        function YI(t, e, r) {
            var i = (0, Ka.charCodeToOptimizedIndex)(t);
            e[i] = i, r === !0 && tIe(t, e)
        }

        function tIe(t, e) {
            var r = String.fromCharCode(t), i = r.toUpperCase();
            if (i !== r) {
                var n = (0, Ka.charCodeToOptimizedIndex)(i.charCodeAt(0));
                e[n] = n
            } else {
                var s = r.toLowerCase();
                if (s !== r) {
                    var n = (0, Ka.charCodeToOptimizedIndex)(s.charCodeAt(0));
                    e[n] = n
                }
            }
        }

        function XH(t, e) {
            return (0, Qs.find)(t.value, function (r) {
                if (typeof r == "number") return (0, Qs.contains)(e, r);
                var i = r;
                return (0, Qs.find)(e, function (n) {
                    return i.from <= n && n <= i.to
                }) !== void 0
            })
        }

        function Nv(t) {
            return t.quantifier && t.quantifier.atLeast === 0 ? !0 : t.value ? (0, Qs.isArray)(t.value) ? (0, Qs.every)(t.value, Nv) : Nv(t.value) : !1
        }

        var rIe = function (t) {
            $Ee(e, t);

            function e(r) {
                var i = t.call(this) || this;
                return i.targetCharCodes = r, i.found = !1, i
            }

            return e.prototype.visitChildren = function (r) {
                if (this.found !== !0) {
                    switch (r.type) {
                        case"Lookahead":
                            this.visitLookahead(r);
                            return;
                        case"NegativeLookahead":
                            this.visitNegativeLookahead(r);
                            return
                    }
                    t.prototype.visitChildren.call(this, r)
                }
            }, e.prototype.visitCharacter = function (r) {
                (0, Qs.contains)(this.targetCharCodes, r.value) && (this.found = !0)
            }, e.prototype.visitSet = function (r) {
                r.complement ? XH(r, this.targetCharCodes) === void 0 && (this.found = !0) : XH(r, this.targetCharCodes) !== void 0 && (this.found = !0)
            }, e
        }(zH.BaseRegExpVisitor);

        function iIe(t, e) {
            if (e instanceof RegExp) {
                var r = (0, _H.getRegExpAst)(e), i = new rIe(t);
                return i.visit(r), i.found
            } else return (0, Qs.find)(e, function (n) {
                return (0, Qs.contains)(t, n.charCodeAt(0))
            }) !== void 0
        }

        Bn.canMatchCharCode = iIe
    });
    var Fv = w(Ze => {
        "use strict";
        var $H = Ze && Ze.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(Ze, "__esModule", {value: !0});
        Ze.charCodeToOptimizedIndex = Ze.minOptimizationVal = Ze.buildLineBreakIssueMessage = Ze.LineTerminatorOptimizedTester = Ze.isShortPattern = Ze.isCustomPattern = Ze.cloneEmptyGroups = Ze.performWarningRuntimeChecks = Ze.performRuntimeChecks = Ze.addStickyFlag = Ze.addStartOfInput = Ze.findUnreachablePatterns = Ze.findModesThatDoNotExist = Ze.findInvalidGroupType = Ze.findDuplicatePatterns = Ze.findUnsupportedFlags = Ze.findStartOfInputAnchor = Ze.findEmptyMatchRegExps = Ze.findEndOfInputAnchor = Ze.findInvalidPatterns = Ze.findMissingPatterns = Ze.validatePatterns = Ze.analyzeTokenTypes = Ze.enableSticky = Ze.disableSticky = Ze.SUPPORT_STICKY = Ze.MODES = Ze.DEFAULT_MODE = void 0;
        var eG = UI(), Ar = Rp(), Ne = Yt(), hg = ZH(), tG = GI(), Lo = "PATTERN";
        Ze.DEFAULT_MODE = "defaultMode";
        Ze.MODES = "modes";
        Ze.SUPPORT_STICKY = typeof new RegExp("(?:)").sticky == "boolean";

        function nIe() {
            Ze.SUPPORT_STICKY = !1
        }

        Ze.disableSticky = nIe;

        function sIe() {
            Ze.SUPPORT_STICKY = !0
        }

        Ze.enableSticky = sIe;

        function aIe(t, e) {
            e = (0, Ne.defaults)(e, {
                useSticky: Ze.SUPPORT_STICKY,
                debug: !1,
                safeMode: !1,
                positionTracking: "full",
                lineTerminatorCharacters: ["\r", `
`],
                tracer: function (S, k) {
                    return k()
                }
            });
            var r = e.tracer;
            r("initCharCodeToOptimizedIndexMap", function () {
                oIe()
            });
            var i;
            r("Reject Lexer.NA", function () {
                i = (0, Ne.reject)(t, function (S) {
                    return S[Lo] === Ar.Lexer.NA
                })
            });
            var n = !1, s;
            r("Transform Patterns", function () {
                n = !1, s = (0, Ne.map)(i, function (S) {
                    var k = S[Lo];
                    if ((0, Ne.isRegExp)(k)) {
                        var T = k.source;
                        return T.length === 1 && T !== "^" && T !== "$" && T !== "." && !k.ignoreCase ? T : T.length === 2 && T[0] === "\\" && !(0, Ne.contains)(["d", "D", "s", "S", "t", "r", "n", "t", "0", "c", "b", "B", "f", "v", "w", "W"], T[1]) ? T[1] : e.useSticky ? Tv(k) : Lv(k)
                    } else {
                        if ((0, Ne.isFunction)(k)) return n = !0, {exec: k};
                        if ((0, Ne.has)(k, "exec")) return n = !0, k;
                        if (typeof k == "string") {
                            if (k.length === 1) return k;
                            var Y = k.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&"), j = new RegExp(Y);
                            return e.useSticky ? Tv(j) : Lv(j)
                        } else throw Error("non exhaustive match")
                    }
                })
            });
            var o, a, l, c, u;
            r("misc mapping", function () {
                o = (0, Ne.map)(i, function (S) {
                    return S.tokenTypeIdx
                }), a = (0, Ne.map)(i, function (S) {
                    var k = S.GROUP;
                    if (k !== Ar.Lexer.SKIPPED) {
                        if ((0, Ne.isString)(k)) return k;
                        if ((0, Ne.isUndefined)(k)) return !1;
                        throw Error("non exhaustive match")
                    }
                }), l = (0, Ne.map)(i, function (S) {
                    var k = S.LONGER_ALT;
                    if (k) {
                        var T = (0, Ne.isArray)(k) ? (0, Ne.map)(k, function (Y) {
                            return (0, Ne.indexOf)(i, Y)
                        }) : [(0, Ne.indexOf)(i, k)];
                        return T
                    }
                }), c = (0, Ne.map)(i, function (S) {
                    return S.PUSH_MODE
                }), u = (0, Ne.map)(i, function (S) {
                    return (0, Ne.has)(S, "POP_MODE")
                })
            });
            var g;
            r("Line Terminator Handling", function () {
                var S = nG(e.lineTerminatorCharacters);
                g = (0, Ne.map)(i, function (k) {
                    return !1
                }), e.positionTracking !== "onlyOffset" && (g = (0, Ne.map)(i, function (k) {
                    if ((0, Ne.has)(k, "LINE_BREAKS")) return k.LINE_BREAKS;
                    if (iG(k, S) === !1) return (0, hg.canMatchCharCode)(S, k.PATTERN)
                }))
            });
            var f, h, p, m;
            r("Misc Mapping #2", function () {
                f = (0, Ne.map)(i, Ov), h = (0, Ne.map)(s, rG), p = (0, Ne.reduce)(i, function (S, k) {
                    var T = k.GROUP;
                    return (0, Ne.isString)(T) && T !== Ar.Lexer.SKIPPED && (S[T] = []), S
                }, {}), m = (0, Ne.map)(s, function (S, k) {
                    return {
                        pattern: s[k],
                        longerAlt: l[k],
                        canLineTerminator: g[k],
                        isCustom: f[k],
                        short: h[k],
                        group: a[k],
                        push: c[k],
                        pop: u[k],
                        tokenTypeIdx: o[k],
                        tokenType: i[k]
                    }
                })
            });
            var y = !0, b = [];
            return e.safeMode || r("First Char Optimization", function () {
                b = (0, Ne.reduce)(i, function (S, k, T) {
                    if (typeof k.PATTERN == "string") {
                        var Y = k.PATTERN.charCodeAt(0), j = Kv(Y);
                        Mv(S, j, m[T])
                    } else if ((0, Ne.isArray)(k.START_CHARS_HINT)) {
                        var Z;
                        (0, Ne.forEach)(k.START_CHARS_HINT, function (re) {
                            var ee = typeof re == "string" ? re.charCodeAt(0) : re, A = Kv(ee);
                            Z !== A && (Z = A, Mv(S, A, m[T]))
                        })
                    } else if ((0, Ne.isRegExp)(k.PATTERN)) if (k.PATTERN.unicode) y = !1, e.ensureOptimizations && (0, Ne.PRINT_ERROR)("" + hg.failedOptimizationPrefixMsg + ("	Unable to analyze < " + k.PATTERN.toString() + ` > pattern.
`) + `	The regexp unicode flag is not currently supported by the regexp-to-ast library.
	This will disable the lexer's first char optimizations.
	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`); else {
                        var J = (0, hg.getOptimizedStartCodesIndices)(k.PATTERN, e.ensureOptimizations);
                        (0, Ne.isEmpty)(J) && (y = !1), (0, Ne.forEach)(J, function (re) {
                            Mv(S, re, m[T])
                        })
                    } else e.ensureOptimizations && (0, Ne.PRINT_ERROR)("" + hg.failedOptimizationPrefixMsg + ("	TokenType: <" + k.name + `> is using a custom token pattern without providing <start_chars_hint> parameter.
`) + `	This will disable the lexer's first char optimizations.
	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`), y = !1;
                    return S
                }, [])
            }), r("ArrayPacking", function () {
                b = (0, Ne.packArray)(b)
            }), {
                emptyGroups: p,
                patternIdxToConfig: m,
                charCodeToPatternIdxToConfig: b,
                hasCustom: n,
                canBeOptimized: y
            }
        }

        Ze.analyzeTokenTypes = aIe;

        function lIe(t, e) {
            var r = [], i = sG(t);
            r = r.concat(i.errors);
            var n = oG(i.valid), s = n.valid;
            return r = r.concat(n.errors), r = r.concat(AIe(s)), r = r.concat(aG(s)), r = r.concat(AG(s, e)), r = r.concat(lG(s)), r
        }

        Ze.validatePatterns = lIe;

        function AIe(t) {
            var e = [], r = (0, Ne.filter)(t, function (i) {
                return (0, Ne.isRegExp)(i[Lo])
            });
            return e = e.concat(cG(r)), e = e.concat(gG(r)), e = e.concat(fG(r)), e = e.concat(hG(r)), e = e.concat(uG(r)), e
        }

        function sG(t) {
            var e = (0, Ne.filter)(t, function (n) {
                return !(0, Ne.has)(n, Lo)
            }), r = (0, Ne.map)(e, function (n) {
                return {
                    message: "Token Type: ->" + n.name + "<- missing static 'PATTERN' property",
                    type: Ar.LexerDefinitionErrorType.MISSING_PATTERN,
                    tokenTypes: [n]
                }
            }), i = (0, Ne.difference)(t, e);
            return {errors: r, valid: i}
        }

        Ze.findMissingPatterns = sG;

        function oG(t) {
            var e = (0, Ne.filter)(t, function (n) {
                var s = n[Lo];
                return !(0, Ne.isRegExp)(s) && !(0, Ne.isFunction)(s) && !(0, Ne.has)(s, "exec") && !(0, Ne.isString)(s)
            }), r = (0, Ne.map)(e, function (n) {
                return {
                    message: "Token Type: ->" + n.name + "<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",
                    type: Ar.LexerDefinitionErrorType.INVALID_PATTERN,
                    tokenTypes: [n]
                }
            }), i = (0, Ne.difference)(t, e);
            return {errors: r, valid: i}
        }

        Ze.findInvalidPatterns = oG;
        var cIe = /[^\\][\$]/;

        function cG(t) {
            var e = function (n) {
                $H(s, n);

                function s() {
                    var o = n !== null && n.apply(this, arguments) || this;
                    return o.found = !1, o
                }

                return s.prototype.visitEndAnchor = function (o) {
                    this.found = !0
                }, s
            }(eG.BaseRegExpVisitor), r = (0, Ne.filter)(t, function (n) {
                var s = n[Lo];
                try {
                    var o = (0, tG.getRegExpAst)(s), a = new e;
                    return a.visit(o), a.found
                } catch (l) {
                    return cIe.test(s.source)
                }
            }), i = (0, Ne.map)(r, function (n) {
                return {
                    message: `Unexpected RegExp Anchor Error:
	Token Type: ->` + n.name + `<- static 'PATTERN' cannot contain end of input anchor '$'
	See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS	for details.`,
                    type: Ar.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,
                    tokenTypes: [n]
                }
            });
            return i
        }

        Ze.findEndOfInputAnchor = cG;

        function uG(t) {
            var e = (0, Ne.filter)(t, function (i) {
                var n = i[Lo];
                return n.test("")
            }), r = (0, Ne.map)(e, function (i) {
                return {
                    message: "Token Type: ->" + i.name + "<- static 'PATTERN' must not match an empty string",
                    type: Ar.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,
                    tokenTypes: [i]
                }
            });
            return r
        }

        Ze.findEmptyMatchRegExps = uG;
        var uIe = /[^\\[][\^]|^\^/;

        function gG(t) {
            var e = function (n) {
                $H(s, n);

                function s() {
                    var o = n !== null && n.apply(this, arguments) || this;
                    return o.found = !1, o
                }

                return s.prototype.visitStartAnchor = function (o) {
                    this.found = !0
                }, s
            }(eG.BaseRegExpVisitor), r = (0, Ne.filter)(t, function (n) {
                var s = n[Lo];
                try {
                    var o = (0, tG.getRegExpAst)(s), a = new e;
                    return a.visit(o), a.found
                } catch (l) {
                    return uIe.test(s.source)
                }
            }), i = (0, Ne.map)(r, function (n) {
                return {
                    message: `Unexpected RegExp Anchor Error:
	Token Type: ->` + n.name + `<- static 'PATTERN' cannot contain start of input anchor '^'
	See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS	for details.`,
                    type: Ar.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,
                    tokenTypes: [n]
                }
            });
            return i
        }

        Ze.findStartOfInputAnchor = gG;

        function fG(t) {
            var e = (0, Ne.filter)(t, function (i) {
                var n = i[Lo];
                return n instanceof RegExp && (n.multiline || n.global)
            }), r = (0, Ne.map)(e, function (i) {
                return {
                    message: "Token Type: ->" + i.name + "<- static 'PATTERN' may NOT contain global('g') or multiline('m')",
                    type: Ar.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,
                    tokenTypes: [i]
                }
            });
            return r
        }

        Ze.findUnsupportedFlags = fG;

        function hG(t) {
            var e = [], r = (0, Ne.map)(t, function (s) {
                return (0, Ne.reduce)(t, function (o, a) {
                    return s.PATTERN.source === a.PATTERN.source && !(0, Ne.contains)(e, a) && a.PATTERN !== Ar.Lexer.NA && (e.push(a), o.push(a)), o
                }, [])
            });
            r = (0, Ne.compact)(r);
            var i = (0, Ne.filter)(r, function (s) {
                return s.length > 1
            }), n = (0, Ne.map)(i, function (s) {
                var o = (0, Ne.map)(s, function (l) {
                    return l.name
                }), a = (0, Ne.first)(s).PATTERN;
                return {
                    message: "The same RegExp pattern ->" + a + "<-" + ("has been used in all of the following Token Types: " + o.join(", ") + " <-"),
                    type: Ar.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,
                    tokenTypes: s
                }
            });
            return n
        }

        Ze.findDuplicatePatterns = hG;

        function aG(t) {
            var e = (0, Ne.filter)(t, function (i) {
                if (!(0, Ne.has)(i, "GROUP")) return !1;
                var n = i.GROUP;
                return n !== Ar.Lexer.SKIPPED && n !== Ar.Lexer.NA && !(0, Ne.isString)(n)
            }), r = (0, Ne.map)(e, function (i) {
                return {
                    message: "Token Type: ->" + i.name + "<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",
                    type: Ar.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,
                    tokenTypes: [i]
                }
            });
            return r
        }

        Ze.findInvalidGroupType = aG;

        function AG(t, e) {
            var r = (0, Ne.filter)(t, function (n) {
                return n.PUSH_MODE !== void 0 && !(0, Ne.contains)(e, n.PUSH_MODE)
            }), i = (0, Ne.map)(r, function (n) {
                var s = "Token Type: ->" + n.name + "<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->" + n.PUSH_MODE + "<-which does not exist";
                return {message: s, type: Ar.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST, tokenTypes: [n]}
            });
            return i
        }

        Ze.findModesThatDoNotExist = AG;

        function lG(t) {
            var e = [], r = (0, Ne.reduce)(t, function (i, n, s) {
                var o = n.PATTERN;
                return o === Ar.Lexer.NA || ((0, Ne.isString)(o) ? i.push({
                    str: o,
                    idx: s,
                    tokenType: n
                }) : (0, Ne.isRegExp)(o) && fIe(o) && i.push({str: o.source, idx: s, tokenType: n})), i
            }, []);
            return (0, Ne.forEach)(t, function (i, n) {
                (0, Ne.forEach)(r, function (s) {
                    var o = s.str, a = s.idx, l = s.tokenType;
                    if (n < a && gIe(o, i.PATTERN)) {
                        var c = "Token: ->" + l.name + `<- can never be matched.
` + ("Because it appears AFTER the Token Type ->" + i.name + "<-") + `in the lexer's definition.
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;
                        e.push({message: c, type: Ar.LexerDefinitionErrorType.UNREACHABLE_PATTERN, tokenTypes: [i, l]})
                    }
                })
            }), e
        }

        Ze.findUnreachablePatterns = lG;

        function gIe(t, e) {
            if ((0, Ne.isRegExp)(e)) {
                var r = e.exec(t);
                return r !== null && r.index === 0
            } else {
                if ((0, Ne.isFunction)(e)) return e(t, 0, [], {});
                if ((0, Ne.has)(e, "exec")) return e.exec(t, 0, [], {});
                if (typeof e == "string") return e === t;
                throw Error("non exhaustive match")
            }
        }

        function fIe(t) {
            var e = [".", "\\", "[", "]", "|", "^", "$", "(", ")", "?", "*", "+", "{"];
            return (0, Ne.find)(e, function (r) {
                return t.source.indexOf(r) !== -1
            }) === void 0
        }

        function Lv(t) {
            var e = t.ignoreCase ? "i" : "";
            return new RegExp("^(?:" + t.source + ")", e)
        }

        Ze.addStartOfInput = Lv;

        function Tv(t) {
            var e = t.ignoreCase ? "iy" : "y";
            return new RegExp("" + t.source, e)
        }

        Ze.addStickyFlag = Tv;

        function hIe(t, e, r) {
            var i = [];
            return (0, Ne.has)(t, Ze.DEFAULT_MODE) || i.push({
                message: "A MultiMode Lexer cannot be initialized without a <" + Ze.DEFAULT_MODE + `> property in its definition
`, type: Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE
            }), (0, Ne.has)(t, Ze.MODES) || i.push({
                message: "A MultiMode Lexer cannot be initialized without a <" + Ze.MODES + `> property in its definition
`, type: Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY
            }), (0, Ne.has)(t, Ze.MODES) && (0, Ne.has)(t, Ze.DEFAULT_MODE) && !(0, Ne.has)(t.modes, t.defaultMode) && i.push({
                message: "A MultiMode Lexer cannot be initialized with a " + Ze.DEFAULT_MODE + ": <" + t.defaultMode + `>which does not exist
`, type: Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST
            }), (0, Ne.has)(t, Ze.MODES) && (0, Ne.forEach)(t.modes, function (n, s) {
                (0, Ne.forEach)(n, function (o, a) {
                    (0, Ne.isUndefined)(o) && i.push({
                        message: "A Lexer cannot be initialized using an undefined Token Type. Mode:" + ("<" + s + "> at index: <" + a + `>
`), type: Ar.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED
                    })
                })
            }), i
        }

        Ze.performRuntimeChecks = hIe;

        function pIe(t, e, r) {
            var i = [], n = !1, s = (0, Ne.compact)((0, Ne.flatten)((0, Ne.mapValues)(t.modes, function (l) {
                return l
            }))), o = (0, Ne.reject)(s, function (l) {
                return l[Lo] === Ar.Lexer.NA
            }), a = nG(r);
            return e && (0, Ne.forEach)(o, function (l) {
                var c = iG(l, a);
                if (c !== !1) {
                    var u = pG(l, c), g = {message: u, type: c.issue, tokenType: l};
                    i.push(g)
                } else (0, Ne.has)(l, "LINE_BREAKS") ? l.LINE_BREAKS === !0 && (n = !0) : (0, hg.canMatchCharCode)(a, l.PATTERN) && (n = !0)
            }), e && !n && i.push({
                message: `Warning: No LINE_BREAKS Found.
	This Lexer has been defined to track line and column information,
	But none of the Token Types can be identified as matching a line terminator.
	See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS 
	for details.`, type: Ar.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS
            }), i
        }

        Ze.performWarningRuntimeChecks = pIe;

        function dIe(t) {
            var e = {}, r = (0, Ne.keys)(t);
            return (0, Ne.forEach)(r, function (i) {
                var n = t[i];
                if ((0, Ne.isArray)(n)) e[i] = []; else throw Error("non exhaustive match")
            }), e
        }

        Ze.cloneEmptyGroups = dIe;

        function Ov(t) {
            var e = t.PATTERN;
            if ((0, Ne.isRegExp)(e)) return !1;
            if ((0, Ne.isFunction)(e)) return !0;
            if ((0, Ne.has)(e, "exec")) return !0;
            if ((0, Ne.isString)(e)) return !1;
            throw Error("non exhaustive match")
        }

        Ze.isCustomPattern = Ov;

        function rG(t) {
            return (0, Ne.isString)(t) && t.length === 1 ? t.charCodeAt(0) : !1
        }

        Ze.isShortPattern = rG;
        Ze.LineTerminatorOptimizedTester = {
            test: function (t) {
                for (var e = t.length, r = this.lastIndex; r < e; r++) {
                    var i = t.charCodeAt(r);
                    if (i === 10) return this.lastIndex = r + 1, !0;
                    if (i === 13) return t.charCodeAt(r + 1) === 10 ? this.lastIndex = r + 2 : this.lastIndex = r + 1, !0
                }
                return !1
            }, lastIndex: 0
        };

        function iG(t, e) {
            if ((0, Ne.has)(t, "LINE_BREAKS")) return !1;
            if ((0, Ne.isRegExp)(t.PATTERN)) {
                try {
                    (0, hg.canMatchCharCode)(e, t.PATTERN)
                } catch (r) {
                    return {issue: Ar.LexerDefinitionErrorType.IDENTIFY_TERMINATOR, errMsg: r.message}
                }
                return !1
            } else {
                if ((0, Ne.isString)(t.PATTERN)) return !1;
                if (Ov(t)) return {issue: Ar.LexerDefinitionErrorType.CUSTOM_LINE_BREAK};
                throw Error("non exhaustive match")
            }
        }

        function pG(t, e) {
            if (e.issue === Ar.LexerDefinitionErrorType.IDENTIFY_TERMINATOR) return `Warning: unable to identify line terminator usage in pattern.
` + ("	The problem is in the <" + t.name + `> Token Type
`) + ("	 Root cause: " + e.errMsg + `.
`) + "	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";
            if (e.issue === Ar.LexerDefinitionErrorType.CUSTOM_LINE_BREAK) return `Warning: A Custom Token Pattern should specify the <line_breaks> option.
` + ("	The problem is in the <" + t.name + `> Token Type
`) + "	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";
            throw Error("non exhaustive match")
        }

        Ze.buildLineBreakIssueMessage = pG;

        function nG(t) {
            var e = (0, Ne.map)(t, function (r) {
                return (0, Ne.isString)(r) && r.length > 0 ? r.charCodeAt(0) : r
            });
            return e
        }

        function Mv(t, e, r) {
            t[e] === void 0 ? t[e] = [r] : t[e].push(r)
        }

        Ze.minOptimizationVal = 256;
        var qI = [];

        function Kv(t) {
            return t < Ze.minOptimizationVal ? t : qI[t]
        }

        Ze.charCodeToOptimizedIndex = Kv;

        function oIe() {
            if ((0, Ne.isEmpty)(qI)) {
                qI = new Array(65536);
                for (var t = 0; t < 65536; t++) qI[t] = t > 255 ? 255 + ~~(t / 255) : t
            }
        }
    });
    var pg = w(Ft => {
        "use strict";
        Object.defineProperty(Ft, "__esModule", {value: !0});
        Ft.isTokenType = Ft.hasExtendingTokensTypesMapProperty = Ft.hasExtendingTokensTypesProperty = Ft.hasCategoriesProperty = Ft.hasShortKeyProperty = Ft.singleAssignCategoriesToksMap = Ft.assignCategoriesMapProp = Ft.assignCategoriesTokensProp = Ft.assignTokenDefaultProps = Ft.expandCategories = Ft.augmentTokenTypes = Ft.tokenIdxToClass = Ft.tokenShortNameIdx = Ft.tokenStructuredMatcherNoCategories = Ft.tokenStructuredMatcher = void 0;
        var ii = Yt();

        function CIe(t, e) {
            var r = t.tokenTypeIdx;
            return r === e.tokenTypeIdx ? !0 : e.isParent === !0 && e.categoryMatchesMap[r] === !0
        }

        Ft.tokenStructuredMatcher = CIe;

        function mIe(t, e) {
            return t.tokenTypeIdx === e.tokenTypeIdx
        }

        Ft.tokenStructuredMatcherNoCategories = mIe;
        Ft.tokenShortNameIdx = 1;
        Ft.tokenIdxToClass = {};

        function EIe(t) {
            var e = dG(t);
            CG(e), EG(e), mG(e), (0, ii.forEach)(e, function (r) {
                r.isParent = r.categoryMatches.length > 0
            })
        }

        Ft.augmentTokenTypes = EIe;

        function dG(t) {
            for (var e = (0, ii.cloneArr)(t), r = t, i = !0; i;) {
                r = (0, ii.compact)((0, ii.flatten)((0, ii.map)(r, function (s) {
                    return s.CATEGORIES
                })));
                var n = (0, ii.difference)(r, e);
                e = e.concat(n), (0, ii.isEmpty)(n) ? i = !1 : r = n
            }
            return e
        }

        Ft.expandCategories = dG;

        function CG(t) {
            (0, ii.forEach)(t, function (e) {
                IG(e) || (Ft.tokenIdxToClass[Ft.tokenShortNameIdx] = e, e.tokenTypeIdx = Ft.tokenShortNameIdx++), Uv(e) && !(0, ii.isArray)(e.CATEGORIES) && (e.CATEGORIES = [e.CATEGORIES]), Uv(e) || (e.CATEGORIES = []), yG(e) || (e.categoryMatches = []), wG(e) || (e.categoryMatchesMap = {})
            })
        }

        Ft.assignTokenDefaultProps = CG;

        function mG(t) {
            (0, ii.forEach)(t, function (e) {
                e.categoryMatches = [], (0, ii.forEach)(e.categoryMatchesMap, function (r, i) {
                    e.categoryMatches.push(Ft.tokenIdxToClass[i].tokenTypeIdx)
                })
            })
        }

        Ft.assignCategoriesTokensProp = mG;

        function EG(t) {
            (0, ii.forEach)(t, function (e) {
                Hv([], e)
            })
        }

        Ft.assignCategoriesMapProp = EG;

        function Hv(t, e) {
            (0, ii.forEach)(t, function (r) {
                e.categoryMatchesMap[r.tokenTypeIdx] = !0
            }), (0, ii.forEach)(e.CATEGORIES, function (r) {
                var i = t.concat(e);
                (0, ii.contains)(i, r) || Hv(i, r)
            })
        }

        Ft.singleAssignCategoriesToksMap = Hv;

        function IG(t) {
            return (0, ii.has)(t, "tokenTypeIdx")
        }

        Ft.hasShortKeyProperty = IG;

        function Uv(t) {
            return (0, ii.has)(t, "CATEGORIES")
        }

        Ft.hasCategoriesProperty = Uv;

        function yG(t) {
            return (0, ii.has)(t, "categoryMatches")
        }

        Ft.hasExtendingTokensTypesProperty = yG;

        function wG(t) {
            return (0, ii.has)(t, "categoryMatchesMap")
        }

        Ft.hasExtendingTokensTypesMapProperty = wG;

        function IIe(t) {
            return (0, ii.has)(t, "tokenTypeIdx")
        }

        Ft.isTokenType = IIe
    });
    var Gv = w(JI => {
        "use strict";
        Object.defineProperty(JI, "__esModule", {value: !0});
        JI.defaultLexerErrorProvider = void 0;
        JI.defaultLexerErrorProvider = {
            buildUnableToPopLexerModeMessage: function (t) {
                return "Unable to pop Lexer Mode after encountering Token ->" + t.image + "<- The Mode Stack is empty"
            }, buildUnexpectedCharactersMessage: function (t, e, r, i, n) {
                return "unexpected character: ->" + t.charAt(e) + "<- at offset: " + e + "," + (" skipped " + r + " characters.")
            }
        }
    });
    var Rp = w(bc => {
        "use strict";
        Object.defineProperty(bc, "__esModule", {value: !0});
        bc.Lexer = bc.LexerDefinitionErrorType = void 0;
        var oo = Fv(), lr = Yt(), yIe = pg(), wIe = Gv(), BIe = GI(), bIe;
        (function (t) {
            t[t.MISSING_PATTERN = 0] = "MISSING_PATTERN", t[t.INVALID_PATTERN = 1] = "INVALID_PATTERN", t[t.EOI_ANCHOR_FOUND = 2] = "EOI_ANCHOR_FOUND", t[t.UNSUPPORTED_FLAGS_FOUND = 3] = "UNSUPPORTED_FLAGS_FOUND", t[t.DUPLICATE_PATTERNS_FOUND = 4] = "DUPLICATE_PATTERNS_FOUND", t[t.INVALID_GROUP_TYPE_FOUND = 5] = "INVALID_GROUP_TYPE_FOUND", t[t.PUSH_MODE_DOES_NOT_EXIST = 6] = "PUSH_MODE_DOES_NOT_EXIST", t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE = 7] = "MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE", t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY = 8] = "MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY", t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST = 9] = "MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST", t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED = 10] = "LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED", t[t.SOI_ANCHOR_FOUND = 11] = "SOI_ANCHOR_FOUND", t[t.EMPTY_MATCH_PATTERN = 12] = "EMPTY_MATCH_PATTERN", t[t.NO_LINE_BREAKS_FLAGS = 13] = "NO_LINE_BREAKS_FLAGS", t[t.UNREACHABLE_PATTERN = 14] = "UNREACHABLE_PATTERN", t[t.IDENTIFY_TERMINATOR = 15] = "IDENTIFY_TERMINATOR", t[t.CUSTOM_LINE_BREAK = 16] = "CUSTOM_LINE_BREAK"
        })(bIe = bc.LexerDefinitionErrorType || (bc.LexerDefinitionErrorType = {}));
        var Fp = {
            deferDefinitionErrorsHandling: !1,
            positionTracking: "full",
            lineTerminatorsPattern: /\n|\r\n?/g,
            lineTerminatorCharacters: [`
`, "\r"],
            ensureOptimizations: !1,
            safeMode: !1,
            errorMessageProvider: wIe.defaultLexerErrorProvider,
            traceInitPerf: !1,
            skipValidations: !1
        };
        Object.freeze(Fp);
        var QIe = function () {
            function t(e, r) {
                var i = this;
                if (r === void 0 && (r = Fp), this.lexerDefinition = e, this.lexerDefinitionErrors = [], this.lexerDefinitionWarning = [], this.patternIdxToConfig = {}, this.charCodeToPatternIdxToConfig = {}, this.modes = [], this.emptyGroups = {}, this.config = void 0, this.trackStartLines = !0, this.trackEndLines = !0, this.hasCustom = !1, this.canModeBeOptimized = {}, typeof r == "boolean") throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
a boolean 2nd argument is no longer supported`);
                this.config = (0, lr.merge)(Fp, r);
                var n = this.config.traceInitPerf;
                n === !0 ? (this.traceInitMaxIdent = Infinity, this.traceInitPerf = !0) : typeof n == "number" && (this.traceInitMaxIdent = n, this.traceInitPerf = !0), this.traceInitIndent = -1, this.TRACE_INIT("Lexer Constructor", function () {
                    var s, o = !0;
                    i.TRACE_INIT("Lexer Config handling", function () {
                        if (i.config.lineTerminatorsPattern === Fp.lineTerminatorsPattern) i.config.lineTerminatorsPattern = oo.LineTerminatorOptimizedTester; else if (i.config.lineTerminatorCharacters === Fp.lineTerminatorCharacters) throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
	For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);
                        if (r.safeMode && r.ensureOptimizations) throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');
                        i.trackStartLines = /full|onlyStart/i.test(i.config.positionTracking), i.trackEndLines = /full/i.test(i.config.positionTracking), (0, lr.isArray)(e) ? (s = {modes: {}}, s.modes[oo.DEFAULT_MODE] = (0, lr.cloneArr)(e), s[oo.DEFAULT_MODE] = oo.DEFAULT_MODE) : (o = !1, s = (0, lr.cloneObj)(e))
                    }), i.config.skipValidations === !1 && (i.TRACE_INIT("performRuntimeChecks", function () {
                        i.lexerDefinitionErrors = i.lexerDefinitionErrors.concat((0, oo.performRuntimeChecks)(s, i.trackStartLines, i.config.lineTerminatorCharacters))
                    }), i.TRACE_INIT("performWarningRuntimeChecks", function () {
                        i.lexerDefinitionWarning = i.lexerDefinitionWarning.concat((0, oo.performWarningRuntimeChecks)(s, i.trackStartLines, i.config.lineTerminatorCharacters))
                    })), s.modes = s.modes ? s.modes : {}, (0, lr.forEach)(s.modes, function (u, g) {
                        s.modes[g] = (0, lr.reject)(u, function (f) {
                            return (0, lr.isUndefined)(f)
                        })
                    });
                    var a = (0, lr.keys)(s.modes);
                    if ((0, lr.forEach)(s.modes, function (u, g) {
                        i.TRACE_INIT("Mode: <" + g + "> processing", function () {
                            if (i.modes.push(g), i.config.skipValidations === !1 && i.TRACE_INIT("validatePatterns", function () {
                                i.lexerDefinitionErrors = i.lexerDefinitionErrors.concat((0, oo.validatePatterns)(u, a))
                            }), (0, lr.isEmpty)(i.lexerDefinitionErrors)) {
                                (0, yIe.augmentTokenTypes)(u);
                                var f;
                                i.TRACE_INIT("analyzeTokenTypes", function () {
                                    f = (0, oo.analyzeTokenTypes)(u, {
                                        lineTerminatorCharacters: i.config.lineTerminatorCharacters,
                                        positionTracking: r.positionTracking,
                                        ensureOptimizations: r.ensureOptimizations,
                                        safeMode: r.safeMode,
                                        tracer: i.TRACE_INIT.bind(i)
                                    })
                                }), i.patternIdxToConfig[g] = f.patternIdxToConfig, i.charCodeToPatternIdxToConfig[g] = f.charCodeToPatternIdxToConfig, i.emptyGroups = (0, lr.merge)(i.emptyGroups, f.emptyGroups), i.hasCustom = f.hasCustom || i.hasCustom, i.canModeBeOptimized[g] = f.canBeOptimized
                            }
                        })
                    }), i.defaultMode = s.defaultMode, !(0, lr.isEmpty)(i.lexerDefinitionErrors) && !i.config.deferDefinitionErrorsHandling) {
                        var l = (0, lr.map)(i.lexerDefinitionErrors, function (u) {
                            return u.message
                        }), c = l.join(`-----------------------
`);
                        throw new Error(`Errors detected in definition of Lexer:
` + c)
                    }
                    (0, lr.forEach)(i.lexerDefinitionWarning, function (u) {
                        (0, lr.PRINT_WARNING)(u.message)
                    }), i.TRACE_INIT("Choosing sub-methods implementations", function () {
                        if (oo.SUPPORT_STICKY ? (i.chopInput = lr.IDENTITY, i.match = i.matchWithTest) : (i.updateLastIndex = lr.NOOP, i.match = i.matchWithExec), o && (i.handleModes = lr.NOOP), i.trackStartLines === !1 && (i.computeNewColumn = lr.IDENTITY), i.trackEndLines === !1 && (i.updateTokenEndLineColumnLocation = lr.NOOP), /full/i.test(i.config.positionTracking)) i.createTokenInstance = i.createFullToken; else if (/onlyStart/i.test(i.config.positionTracking)) i.createTokenInstance = i.createStartOnlyToken; else if (/onlyOffset/i.test(i.config.positionTracking)) i.createTokenInstance = i.createOffsetOnlyToken; else throw Error('Invalid <positionTracking> config option: "' + i.config.positionTracking + '"');
                        i.hasCustom ? (i.addToken = i.addTokenUsingPush, i.handlePayload = i.handlePayloadWithCustom) : (i.addToken = i.addTokenUsingMemberAccess, i.handlePayload = i.handlePayloadNoCustom)
                    }), i.TRACE_INIT("Failed Optimization Warnings", function () {
                        var u = (0, lr.reduce)(i.canModeBeOptimized, function (g, f, h) {
                            return f === !1 && g.push(h), g
                        }, []);
                        if (r.ensureOptimizations && !(0, lr.isEmpty)(u)) throw Error("Lexer Modes: < " + u.join(", ") + ` > cannot be optimized.
	 Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
	 Or inspect the console log for details on how to resolve these issues.`)
                    }), i.TRACE_INIT("clearRegExpParserCache", function () {
                        (0, BIe.clearRegExpParserCache)()
                    }), i.TRACE_INIT("toFastProperties", function () {
                        (0, lr.toFastProperties)(i)
                    })
                })
            }

            return t.prototype.tokenize = function (e, r) {
                if (r === void 0 && (r = this.defaultMode), !(0, lr.isEmpty)(this.lexerDefinitionErrors)) {
                    var i = (0, lr.map)(this.lexerDefinitionErrors, function (o) {
                        return o.message
                    }), n = i.join(`-----------------------
`);
                    throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
` + n)
                }
                var s = this.tokenizeInternal(e, r);
                return s
            }, t.prototype.tokenizeInternal = function (e, r) {
                var i = this, n, s, o, a, l, c, u, g, f, h, p, m, y, b, S, k, T = e, Y = T.length, j = 0, Z = 0,
                    J = this.hasCustom ? 0 : Math.floor(e.length / 10), re = new Array(J), ee = [],
                    A = this.trackStartLines ? 1 : void 0, oe = this.trackStartLines ? 1 : void 0,
                    le = (0, oo.cloneEmptyGroups)(this.emptyGroups), X = this.trackStartLines,
                    O = this.config.lineTerminatorsPattern, L = 0, pe = [], Ce = [], Oe = [], te = [];
                Object.freeze(te);
                var se = void 0;

                function be() {
                    return pe
                }

                function he(vr) {
                    var Gn = (0, oo.charCodeToOptimizedIndex)(vr), gs = Ce[Gn];
                    return gs === void 0 ? te : gs
                }

                var Fe = function (vr) {
                    if (Oe.length === 1 && vr.tokenType.PUSH_MODE === void 0) {
                        var Gn = i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(vr);
                        ee.push({
                            offset: vr.startOffset,
                            line: vr.startLine !== void 0 ? vr.startLine : void 0,
                            column: vr.startColumn !== void 0 ? vr.startColumn : void 0,
                            length: vr.image.length,
                            message: Gn
                        })
                    } else {
                        Oe.pop();
                        var gs = (0, lr.last)(Oe);
                        pe = i.patternIdxToConfig[gs], Ce = i.charCodeToPatternIdxToConfig[gs], L = pe.length;
                        var ya = i.canModeBeOptimized[gs] && i.config.safeMode === !1;
                        Ce && ya ? se = he : se = be
                    }
                };

                function Ue(vr) {
                    Oe.push(vr), Ce = this.charCodeToPatternIdxToConfig[vr], pe = this.patternIdxToConfig[vr], L = pe.length, L = pe.length;
                    var Gn = this.canModeBeOptimized[vr] && this.config.safeMode === !1;
                    Ce && Gn ? se = he : se = be
                }

                Ue.call(this, r);
                for (var xe; j < Y;) {
                    c = null;
                    var Se = T.charCodeAt(j), de = se(Se), V = de.length;
                    for (n = 0; n < V; n++) {
                        xe = de[n];
                        var Qe = xe.pattern;
                        u = null;
                        var ce = xe.short;
                        if (ce !== !1 ? Se === ce && (c = Qe) : xe.isCustom === !0 ? (k = Qe.exec(T, j, re, le), k !== null ? (c = k[0], k.payload !== void 0 && (u = k.payload)) : c = null) : (this.updateLastIndex(Qe, j), c = this.match(Qe, e, j)), c !== null) {
                            if (l = xe.longerAlt, l !== void 0) {
                                var fe = l.length;
                                for (o = 0; o < fe; o++) {
                                    var gt = pe[l[o]], Ht = gt.pattern;
                                    if (g = null, gt.isCustom === !0 ? (k = Ht.exec(T, j, re, le), k !== null ? (a = k[0], k.payload !== void 0 && (g = k.payload)) : a = null) : (this.updateLastIndex(Ht, j), a = this.match(Ht, e, j)), a && a.length > c.length) {
                                        c = a, u = g, xe = gt;
                                        break
                                    }
                                }
                            }
                            break
                        }
                    }
                    if (c !== null) {
                        if (f = c.length, h = xe.group, h !== void 0 && (p = xe.tokenTypeIdx, m = this.createTokenInstance(c, j, p, xe.tokenType, A, oe, f), this.handlePayload(m, u), h === !1 ? Z = this.addToken(re, Z, m) : le[h].push(m)), e = this.chopInput(e, f), j = j + f, oe = this.computeNewColumn(oe, f), X === !0 && xe.canLineTerminator === !0) {
                            var Mt = 0, mi = void 0, Gt = void 0;
                            O.lastIndex = 0;
                            do mi = O.test(c), mi === !0 && (Gt = O.lastIndex - 1, Mt++); while (mi === !0);
                            Mt !== 0 && (A = A + Mt, oe = f - Gt, this.updateTokenEndLineColumnLocation(m, h, Gt, Mt, A, oe, f))
                        }
                        this.handleModes(xe, Fe, Ue, m)
                    } else {
                        for (var Qr = j, Ti = A, Vs = oe, Un = !1; !Un && j < Y;) for (b = T.charCodeAt(j), e = this.chopInput(e, 1), j++, s = 0; s < L; s++) {
                            var Hn = pe[s], Qe = Hn.pattern, ce = Hn.short;
                            if (ce !== !1 ? T.charCodeAt(j) === ce && (Un = !0) : Hn.isCustom === !0 ? Un = Qe.exec(T, j, re, le) !== null : (this.updateLastIndex(Qe, j), Un = Qe.exec(e) !== null), Un === !0) break
                        }
                        y = j - Qr, S = this.config.errorMessageProvider.buildUnexpectedCharactersMessage(T, Qr, y, Ti, Vs), ee.push({
                            offset: Qr,
                            line: Ti,
                            column: Vs,
                            length: y,
                            message: S
                        })
                    }
                }
                return this.hasCustom || (re.length = Z), {tokens: re, groups: le, errors: ee}
            }, t.prototype.handleModes = function (e, r, i, n) {
                if (e.pop === !0) {
                    var s = e.push;
                    r(n), s !== void 0 && i.call(this, s)
                } else e.push !== void 0 && i.call(this, e.push)
            }, t.prototype.chopInput = function (e, r) {
                return e.substring(r)
            }, t.prototype.updateLastIndex = function (e, r) {
                e.lastIndex = r
            }, t.prototype.updateTokenEndLineColumnLocation = function (e, r, i, n, s, o, a) {
                var l, c;
                r !== void 0 && (l = i === a - 1, c = l ? -1 : 0, n === 1 && l === !0 || (e.endLine = s + c, e.endColumn = o - 1 + -c))
            }, t.prototype.computeNewColumn = function (e, r) {
                return e + r
            }, t.prototype.createTokenInstance = function () {
                for (var e = [], r = 0; r < arguments.length; r++) e[r] = arguments[r];
                return null
            }, t.prototype.createOffsetOnlyToken = function (e, r, i, n) {
                return {image: e, startOffset: r, tokenTypeIdx: i, tokenType: n}
            }, t.prototype.createStartOnlyToken = function (e, r, i, n, s, o) {
                return {image: e, startOffset: r, startLine: s, startColumn: o, tokenTypeIdx: i, tokenType: n}
            }, t.prototype.createFullToken = function (e, r, i, n, s, o, a) {
                return {
                    image: e,
                    startOffset: r,
                    endOffset: r + a - 1,
                    startLine: s,
                    endLine: s,
                    startColumn: o,
                    endColumn: o + a - 1,
                    tokenTypeIdx: i,
                    tokenType: n
                }
            }, t.prototype.addToken = function (e, r, i) {
                return 666
            }, t.prototype.addTokenUsingPush = function (e, r, i) {
                return e.push(i), r
            }, t.prototype.addTokenUsingMemberAccess = function (e, r, i) {
                return e[r] = i, r++, r
            }, t.prototype.handlePayload = function (e, r) {
            }, t.prototype.handlePayloadNoCustom = function (e, r) {
            }, t.prototype.handlePayloadWithCustom = function (e, r) {
                r !== null && (e.payload = r)
            }, t.prototype.match = function (e, r, i) {
                return null
            }, t.prototype.matchWithTest = function (e, r, i) {
                var n = e.test(r);
                return n === !0 ? r.substring(i, e.lastIndex) : null
            }, t.prototype.matchWithExec = function (e, r) {
                var i = e.exec(r);
                return i !== null ? i[0] : i
            }, t.prototype.TRACE_INIT = function (e, r) {
                if (this.traceInitPerf === !0) {
                    this.traceInitIndent++;
                    var i = new Array(this.traceInitIndent + 1).join("	");
                    this.traceInitIndent < this.traceInitMaxIdent && console.log(i + "--> <" + e + ">");
                    var n = (0, lr.timer)(r), s = n.time, o = n.value, a = s > 10 ? console.warn : console.log;
                    return this.traceInitIndent < this.traceInitMaxIdent && a(i + "<-- <" + e + "> time: " + s + "ms"), this.traceInitIndent--, o
                } else return r()
            }, t.SKIPPED = "This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.", t.NA = /NOT_APPLICABLE/, t
        }();
        bc.Lexer = QIe
    });
    var WA = w(xi => {
        "use strict";
        Object.defineProperty(xi, "__esModule", {value: !0});
        xi.tokenMatcher = xi.createTokenInstance = xi.EOF = xi.createToken = xi.hasTokenLabel = xi.tokenName = xi.tokenLabel = void 0;
        var ao = Yt(), vIe = Rp(), jv = pg();

        function SIe(t) {
            return BG(t) ? t.LABEL : t.name
        }

        xi.tokenLabel = SIe;

        function kIe(t) {
            return t.name
        }

        xi.tokenName = kIe;

        function BG(t) {
            return (0, ao.isString)(t.LABEL) && t.LABEL !== ""
        }

        xi.hasTokenLabel = BG;
        var xIe = "parent", bG = "categories", QG = "label", vG = "group", SG = "push_mode", kG = "pop_mode",
            xG = "longer_alt", PG = "line_breaks", DG = "start_chars_hint";

        function RG(t) {
            return PIe(t)
        }

        xi.createToken = RG;

        function PIe(t) {
            var e = t.pattern, r = {};
            if (r.name = t.name, (0, ao.isUndefined)(e) || (r.PATTERN = e), (0, ao.has)(t, xIe)) throw`The parent property is no longer supported.
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;
            return (0, ao.has)(t, bG) && (r.CATEGORIES = t[bG]), (0, jv.augmentTokenTypes)([r]), (0, ao.has)(t, QG) && (r.LABEL = t[QG]), (0, ao.has)(t, vG) && (r.GROUP = t[vG]), (0, ao.has)(t, kG) && (r.POP_MODE = t[kG]), (0, ao.has)(t, SG) && (r.PUSH_MODE = t[SG]), (0, ao.has)(t, xG) && (r.LONGER_ALT = t[xG]), (0, ao.has)(t, PG) && (r.LINE_BREAKS = t[PG]), (0, ao.has)(t, DG) && (r.START_CHARS_HINT = t[DG]), r
        }

        xi.EOF = RG({name: "EOF", pattern: vIe.Lexer.NA});
        (0, jv.augmentTokenTypes)([xi.EOF]);

        function DIe(t, e, r, i, n, s, o, a) {
            return {
                image: e,
                startOffset: r,
                endOffset: i,
                startLine: n,
                endLine: s,
                startColumn: o,
                endColumn: a,
                tokenTypeIdx: t.tokenTypeIdx,
                tokenType: t
            }
        }

        xi.createTokenInstance = DIe;

        function RIe(t, e) {
            return (0, jv.tokenStructuredMatcher)(t, e)
        }

        xi.tokenMatcher = RIe
    });
    var bn = w(Vt => {
        "use strict";
        var Ua = Vt && Vt.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(Vt, "__esModule", {value: !0});
        Vt.serializeProduction = Vt.serializeGrammar = Vt.Terminal = Vt.Alternation = Vt.RepetitionWithSeparator = Vt.Repetition = Vt.RepetitionMandatoryWithSeparator = Vt.RepetitionMandatory = Vt.Option = Vt.Alternative = Vt.Rule = Vt.NonTerminal = Vt.AbstractProduction = void 0;
        var fr = Yt(), FIe = WA(), To = function () {
            function t(e) {
                this._definition = e
            }

            return Object.defineProperty(t.prototype, "definition", {
                get: function () {
                    return this._definition
                }, set: function (e) {
                    this._definition = e
                }, enumerable: !1, configurable: !0
            }), t.prototype.accept = function (e) {
                e.visit(this), (0, fr.forEach)(this.definition, function (r) {
                    r.accept(e)
                })
            }, t
        }();
        Vt.AbstractProduction = To;
        var FG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, []) || this;
                return i.idx = 1, (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return Object.defineProperty(e.prototype, "definition", {
                get: function () {
                    return this.referencedRule !== void 0 ? this.referencedRule.definition : []
                }, set: function (r) {
                }, enumerable: !1, configurable: !0
            }), e.prototype.accept = function (r) {
                r.visit(this)
            }, e
        }(To);
        Vt.NonTerminal = FG;
        var NG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, r.definition) || this;
                return i.orgText = "", (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return e
        }(To);
        Vt.Rule = NG;
        var LG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, r.definition) || this;
                return i.ignoreAmbiguities = !1, (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return e
        }(To);
        Vt.Alternative = LG;
        var TG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, r.definition) || this;
                return i.idx = 1, (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return e
        }(To);
        Vt.Option = TG;
        var OG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, r.definition) || this;
                return i.idx = 1, (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return e
        }(To);
        Vt.RepetitionMandatory = OG;
        var MG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, r.definition) || this;
                return i.idx = 1, (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return e
        }(To);
        Vt.RepetitionMandatoryWithSeparator = MG;
        var KG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, r.definition) || this;
                return i.idx = 1, (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return e
        }(To);
        Vt.Repetition = KG;
        var UG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, r.definition) || this;
                return i.idx = 1, (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return e
        }(To);
        Vt.RepetitionWithSeparator = UG;
        var HG = function (t) {
            Ua(e, t);

            function e(r) {
                var i = t.call(this, r.definition) || this;
                return i.idx = 1, i.ignoreAmbiguities = !1, i.hasPredicates = !1, (0, fr.assign)(i, (0, fr.pick)(r, function (n) {
                    return n !== void 0
                })), i
            }

            return Object.defineProperty(e.prototype, "definition", {
                get: function () {
                    return this._definition
                }, set: function (r) {
                    this._definition = r
                }, enumerable: !1, configurable: !0
            }), e
        }(To);
        Vt.Alternation = HG;
        var WI = function () {
            function t(e) {
                this.idx = 1, (0, fr.assign)(this, (0, fr.pick)(e, function (r) {
                    return r !== void 0
                }))
            }

            return t.prototype.accept = function (e) {
                e.visit(this)
            }, t
        }();
        Vt.Terminal = WI;

        function NIe(t) {
            return (0, fr.map)(t, Np)
        }

        Vt.serializeGrammar = NIe;

        function Np(t) {
            function e(s) {
                return (0, fr.map)(s, Np)
            }

            if (t instanceof FG) {
                var r = {type: "NonTerminal", name: t.nonTerminalName, idx: t.idx};
                return (0, fr.isString)(t.label) && (r.label = t.label), r
            } else {
                if (t instanceof LG) return {type: "Alternative", definition: e(t.definition)};
                if (t instanceof TG) return {type: "Option", idx: t.idx, definition: e(t.definition)};
                if (t instanceof OG) return {type: "RepetitionMandatory", idx: t.idx, definition: e(t.definition)};
                if (t instanceof MG) return {
                    type: "RepetitionMandatoryWithSeparator",
                    idx: t.idx,
                    separator: Np(new WI({terminalType: t.separator})),
                    definition: e(t.definition)
                };
                if (t instanceof UG) return {
                    type: "RepetitionWithSeparator",
                    idx: t.idx,
                    separator: Np(new WI({terminalType: t.separator})),
                    definition: e(t.definition)
                };
                if (t instanceof KG) return {type: "Repetition", idx: t.idx, definition: e(t.definition)};
                if (t instanceof HG) return {type: "Alternation", idx: t.idx, definition: e(t.definition)};
                if (t instanceof WI) {
                    var i = {
                        type: "Terminal",
                        name: t.terminalType.name,
                        label: (0, FIe.tokenLabel)(t.terminalType),
                        idx: t.idx
                    };
                    (0, fr.isString)(t.label) && (i.terminalLabel = t.label);
                    var n = t.terminalType.PATTERN;
                    return t.terminalType.PATTERN && (i.pattern = (0, fr.isRegExp)(n) ? n.source : n), i
                } else {
                    if (t instanceof NG) return {
                        type: "Rule",
                        name: t.name,
                        orgText: t.orgText,
                        definition: e(t.definition)
                    };
                    throw Error("non exhaustive match")
                }
            }
        }

        Vt.serializeProduction = Np
    });
    var _I = w(zI => {
        "use strict";
        Object.defineProperty(zI, "__esModule", {value: !0});
        zI.RestWalker = void 0;
        var Yv = Yt(), Qn = bn(), LIe = function () {
            function t() {
            }

            return t.prototype.walk = function (e, r) {
                var i = this;
                r === void 0 && (r = []), (0, Yv.forEach)(e.definition, function (n, s) {
                    var o = (0, Yv.drop)(e.definition, s + 1);
                    if (n instanceof Qn.NonTerminal) i.walkProdRef(n, o, r); else if (n instanceof Qn.Terminal) i.walkTerminal(n, o, r); else if (n instanceof Qn.Alternative) i.walkFlat(n, o, r); else if (n instanceof Qn.Option) i.walkOption(n, o, r); else if (n instanceof Qn.RepetitionMandatory) i.walkAtLeastOne(n, o, r); else if (n instanceof Qn.RepetitionMandatoryWithSeparator) i.walkAtLeastOneSep(n, o, r); else if (n instanceof Qn.RepetitionWithSeparator) i.walkManySep(n, o, r); else if (n instanceof Qn.Repetition) i.walkMany(n, o, r); else if (n instanceof Qn.Alternation) i.walkOr(n, o, r); else throw Error("non exhaustive match")
                })
            }, t.prototype.walkTerminal = function (e, r, i) {
            }, t.prototype.walkProdRef = function (e, r, i) {
            }, t.prototype.walkFlat = function (e, r, i) {
                var n = r.concat(i);
                this.walk(e, n)
            }, t.prototype.walkOption = function (e, r, i) {
                var n = r.concat(i);
                this.walk(e, n)
            }, t.prototype.walkAtLeastOne = function (e, r, i) {
                var n = [new Qn.Option({definition: e.definition})].concat(r, i);
                this.walk(e, n)
            }, t.prototype.walkAtLeastOneSep = function (e, r, i) {
                var n = GG(e, r, i);
                this.walk(e, n)
            }, t.prototype.walkMany = function (e, r, i) {
                var n = [new Qn.Option({definition: e.definition})].concat(r, i);
                this.walk(e, n)
            }, t.prototype.walkManySep = function (e, r, i) {
                var n = GG(e, r, i);
                this.walk(e, n)
            }, t.prototype.walkOr = function (e, r, i) {
                var n = this, s = r.concat(i);
                (0, Yv.forEach)(e.definition, function (o) {
                    var a = new Qn.Alternative({definition: [o]});
                    n.walk(a, s)
                })
            }, t
        }();
        zI.RestWalker = LIe;

        function GG(t, e, r) {
            var i = [new Qn.Option({definition: [new Qn.Terminal({terminalType: t.separator})].concat(t.definition)})],
                n = i.concat(e, r);
            return n
        }
    });
    var dg = w(VI => {
        "use strict";
        Object.defineProperty(VI, "__esModule", {value: !0});
        VI.GAstVisitor = void 0;
        var Oo = bn(), TIe = function () {
            function t() {
            }

            return t.prototype.visit = function (e) {
                var r = e;
                switch (r.constructor) {
                    case Oo.NonTerminal:
                        return this.visitNonTerminal(r);
                    case Oo.Alternative:
                        return this.visitAlternative(r);
                    case Oo.Option:
                        return this.visitOption(r);
                    case Oo.RepetitionMandatory:
                        return this.visitRepetitionMandatory(r);
                    case Oo.RepetitionMandatoryWithSeparator:
                        return this.visitRepetitionMandatoryWithSeparator(r);
                    case Oo.RepetitionWithSeparator:
                        return this.visitRepetitionWithSeparator(r);
                    case Oo.Repetition:
                        return this.visitRepetition(r);
                    case Oo.Alternation:
                        return this.visitAlternation(r);
                    case Oo.Terminal:
                        return this.visitTerminal(r);
                    case Oo.Rule:
                        return this.visitRule(r);
                    default:
                        throw Error("non exhaustive match")
                }
            }, t.prototype.visitNonTerminal = function (e) {
            }, t.prototype.visitAlternative = function (e) {
            }, t.prototype.visitOption = function (e) {
            }, t.prototype.visitRepetition = function (e) {
            }, t.prototype.visitRepetitionMandatory = function (e) {
            }, t.prototype.visitRepetitionMandatoryWithSeparator = function (e) {
            }, t.prototype.visitRepetitionWithSeparator = function (e) {
            }, t.prototype.visitAlternation = function (e) {
            }, t.prototype.visitTerminal = function (e) {
            }, t.prototype.visitRule = function (e) {
            }, t
        }();
        VI.GAstVisitor = TIe
    });
    var Tp = w(ji => {
        "use strict";
        var OIe = ji && ji.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(ji, "__esModule", {value: !0});
        ji.collectMethods = ji.DslMethodsCollectorVisitor = ji.getProductionDslName = ji.isBranchingProd = ji.isOptionalProd = ji.isSequenceProd = void 0;
        var Lp = Yt(), kr = bn(), MIe = dg();

        function KIe(t) {
            return t instanceof kr.Alternative || t instanceof kr.Option || t instanceof kr.Repetition || t instanceof kr.RepetitionMandatory || t instanceof kr.RepetitionMandatoryWithSeparator || t instanceof kr.RepetitionWithSeparator || t instanceof kr.Terminal || t instanceof kr.Rule
        }

        ji.isSequenceProd = KIe;

        function qv(t, e) {
            e === void 0 && (e = []);
            var r = t instanceof kr.Option || t instanceof kr.Repetition || t instanceof kr.RepetitionWithSeparator;
            return r ? !0 : t instanceof kr.Alternation ? (0, Lp.some)(t.definition, function (i) {
                return qv(i, e)
            }) : t instanceof kr.NonTerminal && (0, Lp.contains)(e, t) ? !1 : t instanceof kr.AbstractProduction ? (t instanceof kr.NonTerminal && e.push(t), (0, Lp.every)(t.definition, function (i) {
                return qv(i, e)
            })) : !1
        }

        ji.isOptionalProd = qv;

        function UIe(t) {
            return t instanceof kr.Alternation
        }

        ji.isBranchingProd = UIe;

        function HIe(t) {
            if (t instanceof kr.NonTerminal) return "SUBRULE";
            if (t instanceof kr.Option) return "OPTION";
            if (t instanceof kr.Alternation) return "OR";
            if (t instanceof kr.RepetitionMandatory) return "AT_LEAST_ONE";
            if (t instanceof kr.RepetitionMandatoryWithSeparator) return "AT_LEAST_ONE_SEP";
            if (t instanceof kr.RepetitionWithSeparator) return "MANY_SEP";
            if (t instanceof kr.Repetition) return "MANY";
            if (t instanceof kr.Terminal) return "CONSUME";
            throw Error("non exhaustive match")
        }

        ji.getProductionDslName = HIe;
        var jG = function (t) {
            OIe(e, t);

            function e() {
                var r = t !== null && t.apply(this, arguments) || this;
                return r.separator = "-", r.dslMethods = {
                    option: [],
                    alternation: [],
                    repetition: [],
                    repetitionWithSeparator: [],
                    repetitionMandatory: [],
                    repetitionMandatoryWithSeparator: []
                }, r
            }

            return e.prototype.reset = function () {
                this.dslMethods = {
                    option: [],
                    alternation: [],
                    repetition: [],
                    repetitionWithSeparator: [],
                    repetitionMandatory: [],
                    repetitionMandatoryWithSeparator: []
                }
            }, e.prototype.visitTerminal = function (r) {
                var i = r.terminalType.name + this.separator + "Terminal";
                (0, Lp.has)(this.dslMethods, i) || (this.dslMethods[i] = []), this.dslMethods[i].push(r)
            }, e.prototype.visitNonTerminal = function (r) {
                var i = r.nonTerminalName + this.separator + "Terminal";
                (0, Lp.has)(this.dslMethods, i) || (this.dslMethods[i] = []), this.dslMethods[i].push(r)
            }, e.prototype.visitOption = function (r) {
                this.dslMethods.option.push(r)
            }, e.prototype.visitRepetitionWithSeparator = function (r) {
                this.dslMethods.repetitionWithSeparator.push(r)
            }, e.prototype.visitRepetitionMandatory = function (r) {
                this.dslMethods.repetitionMandatory.push(r)
            }, e.prototype.visitRepetitionMandatoryWithSeparator = function (r) {
                this.dslMethods.repetitionMandatoryWithSeparator.push(r)
            }, e.prototype.visitRepetition = function (r) {
                this.dslMethods.repetition.push(r)
            }, e.prototype.visitAlternation = function (r) {
                this.dslMethods.alternation.push(r)
            }, e
        }(MIe.GAstVisitor);
        ji.DslMethodsCollectorVisitor = jG;
        var XI = new jG;

        function GIe(t) {
            XI.reset(), t.accept(XI);
            var e = XI.dslMethods;
            return XI.reset(), e
        }

        ji.collectMethods = GIe
    });
    var Wv = w(Mo => {
        "use strict";
        Object.defineProperty(Mo, "__esModule", {value: !0});
        Mo.firstForTerminal = Mo.firstForBranching = Mo.firstForSequence = Mo.first = void 0;
        var ZI = Yt(), YG = bn(), Jv = Tp();

        function $I(t) {
            if (t instanceof YG.NonTerminal) return $I(t.referencedRule);
            if (t instanceof YG.Terminal) return WG(t);
            if ((0, Jv.isSequenceProd)(t)) return qG(t);
            if ((0, Jv.isBranchingProd)(t)) return JG(t);
            throw Error("non exhaustive match")
        }

        Mo.first = $I;

        function qG(t) {
            for (var e = [], r = t.definition, i = 0, n = r.length > i, s, o = !0; n && o;) s = r[i], o = (0, Jv.isOptionalProd)(s), e = e.concat($I(s)), i = i + 1, n = r.length > i;
            return (0, ZI.uniq)(e)
        }

        Mo.firstForSequence = qG;

        function JG(t) {
            var e = (0, ZI.map)(t.definition, function (r) {
                return $I(r)
            });
            return (0, ZI.uniq)((0, ZI.flatten)(e))
        }

        Mo.firstForBranching = JG;

        function WG(t) {
            return [t.terminalType]
        }

        Mo.firstForTerminal = WG
    });
    var zv = w(ey => {
        "use strict";
        Object.defineProperty(ey, "__esModule", {value: !0});
        ey.IN = void 0;
        ey.IN = "_~IN~_"
    });
    var ZG = w(vs => {
        "use strict";
        var jIe = vs && vs.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(vs, "__esModule", {value: !0});
        vs.buildInProdFollowPrefix = vs.buildBetweenProdsFollowPrefix = vs.computeAllProdsFollows = vs.ResyncFollowsWalker = void 0;
        var YIe = _I(), qIe = Wv(), zG = Yt(), _G = zv(), JIe = bn(), XG = function (t) {
            jIe(e, t);

            function e(r) {
                var i = t.call(this) || this;
                return i.topProd = r, i.follows = {}, i
            }

            return e.prototype.startWalking = function () {
                return this.walk(this.topProd), this.follows
            }, e.prototype.walkTerminal = function (r, i, n) {
            }, e.prototype.walkProdRef = function (r, i, n) {
                var s = VG(r.referencedRule, r.idx) + this.topProd.name, o = i.concat(n),
                    a = new JIe.Alternative({definition: o}), l = (0, qIe.first)(a);
                this.follows[s] = l
            }, e
        }(YIe.RestWalker);
        vs.ResyncFollowsWalker = XG;

        function WIe(t) {
            var e = {};
            return (0, zG.forEach)(t, function (r) {
                var i = new XG(r).startWalking();
                (0, zG.assign)(e, i)
            }), e
        }

        vs.computeAllProdsFollows = WIe;

        function VG(t, e) {
            return t.name + e + _G.IN
        }

        vs.buildBetweenProdsFollowPrefix = VG;

        function zIe(t) {
            var e = t.terminalType.name;
            return e + t.idx + _G.IN
        }

        vs.buildInProdFollowPrefix = zIe
    });
    var Op = w(Ha => {
        "use strict";
        Object.defineProperty(Ha, "__esModule", {value: !0});
        Ha.defaultGrammarValidatorErrorProvider = Ha.defaultGrammarResolverErrorProvider = Ha.defaultParserErrorProvider = void 0;
        var Cg = WA(), _Ie = Yt(), Ao = Yt(), _v = bn(), $G = Tp();
        Ha.defaultParserErrorProvider = {
            buildMismatchTokenMessage: function (t) {
                var e = t.expected, r = t.actual, i = t.previous, n = t.ruleName, s = (0, Cg.hasTokenLabel)(e),
                    o = s ? "--> " + (0, Cg.tokenLabel)(e) + " <--" : "token of type --> " + e.name + " <--",
                    a = "Expecting " + o + " but found --> '" + r.image + "' <--";
                return a
            }, buildNotAllInputParsedMessage: function (t) {
                var e = t.firstRedundant, r = t.ruleName;
                return "Redundant input, expecting EOF but found: " + e.image
            }, buildNoViableAltMessage: function (t) {
                var e = t.expectedPathsPerAlt, r = t.actual, i = t.previous, n = t.customUserDescription,
                    s = t.ruleName, o = "Expecting: ", a = (0, Ao.first)(r).image, l = `
but found: '` + a + "'";
                if (n) return o + n + l;
                var c = (0, Ao.reduce)(e, function (h, p) {
                    return h.concat(p)
                }, []), u = (0, Ao.map)(c, function (h) {
                    return "[" + (0, Ao.map)(h, function (p) {
                        return (0, Cg.tokenLabel)(p)
                    }).join(", ") + "]"
                }), g = (0, Ao.map)(u, function (h, p) {
                    return "  " + (p + 1) + ". " + h
                }), f = `one of these possible Token sequences:
` + g.join(`
`);
                return o + f + l
            }, buildEarlyExitMessage: function (t) {
                var e = t.expectedIterationPaths, r = t.actual, i = t.customUserDescription, n = t.ruleName,
                    s = "Expecting: ", o = (0, Ao.first)(r).image, a = `
but found: '` + o + "'";
                if (i) return s + i + a;
                var l = (0, Ao.map)(e, function (u) {
                    return "[" + (0, Ao.map)(u, function (g) {
                        return (0, Cg.tokenLabel)(g)
                    }).join(",") + "]"
                }), c = `expecting at least one iteration which starts with one of these possible Token sequences::
  ` + ("<" + l.join(" ,") + ">");
                return s + c + a
            }
        };
        Object.freeze(Ha.defaultParserErrorProvider);
        Ha.defaultGrammarResolverErrorProvider = {
            buildRuleNotFoundError: function (t, e) {
                var r = "Invalid grammar, reference to a rule which is not defined: ->" + e.nonTerminalName + `<-
inside top level rule: ->` + t.name + "<-";
                return r
            }
        };
        Ha.defaultGrammarValidatorErrorProvider = {
            buildDuplicateFoundError: function (t, e) {
                function r(u) {
                    return u instanceof _v.Terminal ? u.terminalType.name : u instanceof _v.NonTerminal ? u.nonTerminalName : ""
                }

                var i = t.name, n = (0, Ao.first)(e), s = n.idx, o = (0, $G.getProductionDslName)(n), a = r(n),
                    l = s > 0, c = "->" + o + (l ? s : "") + "<- " + (a ? "with argument: ->" + a + "<-" : "") + `
                  appears more than once (` + e.length + " times) in the top level rule: ->" + i + `<-.                  
                  For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES 
                  `;
                return c = c.replace(/[ \t]+/g, " "), c = c.replace(/\s\s+/g, `
`), c
            }, buildNamespaceConflictError: function (t) {
                var e = `Namespace conflict found in grammar.
` + ("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <" + t.name + `>.
`) + `To resolve this make sure each Terminal and Non-Terminal names are unique
This is easy to accomplish by using the convention that Terminal names start with an uppercase letter
and Non-Terminal names start with a lower case letter.`;
                return e
            }, buildAlternationPrefixAmbiguityError: function (t) {
                var e = (0, Ao.map)(t.prefixPath, function (n) {
                        return (0, Cg.tokenLabel)(n)
                    }).join(", "), r = t.alternation.idx === 0 ? "" : t.alternation.idx,
                    i = "Ambiguous alternatives: <" + t.ambiguityIndices.join(" ,") + `> due to common lookahead prefix
` + ("in <OR" + r + "> inside <" + t.topLevelRule.name + `> Rule,
`) + ("<" + e + `> may appears as a prefix path in all these alternatives.
`) + `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX
For Further details.`;
                return i
            }, buildAlternationAmbiguityError: function (t) {
                var e = (0, Ao.map)(t.prefixPath, function (n) {
                        return (0, Cg.tokenLabel)(n)
                    }).join(", "), r = t.alternation.idx === 0 ? "" : t.alternation.idx,
                    i = "Ambiguous Alternatives Detected: <" + t.ambiguityIndices.join(" ,") + "> in <OR" + r + ">" + (" inside <" + t.topLevelRule.name + `> Rule,
`) + ("<" + e + `> may appears as a prefix path in all these alternatives.
`);
                return i = i + `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
For Further details.`, i
            }, buildEmptyRepetitionError: function (t) {
                var e = (0, $G.getProductionDslName)(t.repetition);
                t.repetition.idx !== 0 && (e += t.repetition.idx);
                var r = "The repetition <" + e + "> within Rule <" + t.topLevelRule.name + `> can never consume any tokens.
This could lead to an infinite loop.`;
                return r
            }, buildTokenNameError: function (t) {
                return "deprecated"
            }, buildEmptyAlternationError: function (t) {
                var e = "Ambiguous empty alternative: <" + (t.emptyChoiceIdx + 1) + ">" + (" in <OR" + t.alternation.idx + "> inside <" + t.topLevelRule.name + `> Rule.
`) + "Only the last alternative may be an empty alternative.";
                return e
            }, buildTooManyAlternativesError: function (t) {
                var e = `An Alternation cannot have more than 256 alternatives:
` + ("<OR" + t.alternation.idx + "> inside <" + t.topLevelRule.name + `> Rule.
 has ` + (t.alternation.definition.length + 1) + " alternatives.");
                return e
            }, buildLeftRecursionError: function (t) {
                var e = t.topLevelRule.name, r = _Ie.map(t.leftRecursionPath, function (s) {
                    return s.name
                }), i = e + " --> " + r.concat([e]).join(" --> "), n = `Left Recursion found in grammar.
` + ("rule: <" + e + `> can be invoked from itself (directly or indirectly)
`) + (`without consuming any Tokens. The grammar path that causes this is: 
 ` + i + `
`) + ` To fix this refactor your grammar to remove the left recursion.
see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;
                return n
            }, buildInvalidRuleNameError: function (t) {
                return "deprecated"
            }, buildDuplicateRuleNameError: function (t) {
                var e;
                t.topLevelRule instanceof _v.Rule ? e = t.topLevelRule.name : e = t.topLevelRule;
                var r = "Duplicate definition, rule: ->" + e + "<- is already defined in the grammar: ->" + t.grammarName + "<-";
                return r
            }
        }
    });
    var rj = w(zA => {
        "use strict";
        var VIe = zA && zA.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(zA, "__esModule", {value: !0});
        zA.GastRefResolverVisitor = zA.resolveGrammar = void 0;
        var XIe = Zn(), ej = Yt(), ZIe = dg();

        function $Ie(t, e) {
            var r = new tj(t, e);
            return r.resolveRefs(), r.errors
        }

        zA.resolveGrammar = $Ie;
        var tj = function (t) {
            VIe(e, t);

            function e(r, i) {
                var n = t.call(this) || this;
                return n.nameToTopRule = r, n.errMsgProvider = i, n.errors = [], n
            }

            return e.prototype.resolveRefs = function () {
                var r = this;
                (0, ej.forEach)((0, ej.values)(this.nameToTopRule), function (i) {
                    r.currTopLevel = i, i.accept(r)
                })
            }, e.prototype.visitNonTerminal = function (r) {
                var i = this.nameToTopRule[r.nonTerminalName];
                if (i) r.referencedRule = i; else {
                    var n = this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel, r);
                    this.errors.push({
                        message: n,
                        type: XIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,
                        ruleName: this.currTopLevel.name,
                        unresolvedRefName: r.nonTerminalName
                    })
                }
            }, e
        }(ZIe.GAstVisitor);
        zA.GastRefResolverVisitor = tj
    });
    var Kp = w(Mr => {
        "use strict";
        var Qc = Mr && Mr.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(Mr, "__esModule", {value: !0});
        Mr.nextPossibleTokensAfter = Mr.possiblePathsFrom = Mr.NextTerminalAfterAtLeastOneSepWalker = Mr.NextTerminalAfterAtLeastOneWalker = Mr.NextTerminalAfterManySepWalker = Mr.NextTerminalAfterManyWalker = Mr.AbstractNextTerminalAfterProductionWalker = Mr.NextAfterTokenWalker = Mr.AbstractNextPossibleTokensWalker = void 0;
        var ij = _I(), Kt = Yt(), eye = Wv(), Dt = bn(), nj = function (t) {
            Qc(e, t);

            function e(r, i) {
                var n = t.call(this) || this;
                return n.topProd = r, n.path = i, n.possibleTokTypes = [], n.nextProductionName = "", n.nextProductionOccurrence = 0, n.found = !1, n.isAtEndOfPath = !1, n
            }

            return e.prototype.startWalking = function () {
                if (this.found = !1, this.path.ruleStack[0] !== this.topProd.name) throw Error("The path does not start with the walker's top Rule!");
                return this.ruleStack = (0, Kt.cloneArr)(this.path.ruleStack).reverse(), this.occurrenceStack = (0, Kt.cloneArr)(this.path.occurrenceStack).reverse(), this.ruleStack.pop(), this.occurrenceStack.pop(), this.updateExpectedNext(), this.walk(this.topProd), this.possibleTokTypes
            }, e.prototype.walk = function (r, i) {
                i === void 0 && (i = []), this.found || t.prototype.walk.call(this, r, i)
            }, e.prototype.walkProdRef = function (r, i, n) {
                if (r.referencedRule.name === this.nextProductionName && r.idx === this.nextProductionOccurrence) {
                    var s = i.concat(n);
                    this.updateExpectedNext(), this.walk(r.referencedRule, s)
                }
            }, e.prototype.updateExpectedNext = function () {
                (0, Kt.isEmpty)(this.ruleStack) ? (this.nextProductionName = "", this.nextProductionOccurrence = 0, this.isAtEndOfPath = !0) : (this.nextProductionName = this.ruleStack.pop(), this.nextProductionOccurrence = this.occurrenceStack.pop())
            }, e
        }(ij.RestWalker);
        Mr.AbstractNextPossibleTokensWalker = nj;
        var tye = function (t) {
            Qc(e, t);

            function e(r, i) {
                var n = t.call(this, r, i) || this;
                return n.path = i, n.nextTerminalName = "", n.nextTerminalOccurrence = 0, n.nextTerminalName = n.path.lastTok.name, n.nextTerminalOccurrence = n.path.lastTokOccurrence, n
            }

            return e.prototype.walkTerminal = function (r, i, n) {
                if (this.isAtEndOfPath && r.terminalType.name === this.nextTerminalName && r.idx === this.nextTerminalOccurrence && !this.found) {
                    var s = i.concat(n), o = new Dt.Alternative({definition: s});
                    this.possibleTokTypes = (0, eye.first)(o), this.found = !0
                }
            }, e
        }(nj);
        Mr.NextAfterTokenWalker = tye;
        var Mp = function (t) {
            Qc(e, t);

            function e(r, i) {
                var n = t.call(this) || this;
                return n.topRule = r, n.occurrence = i, n.result = {
                    token: void 0,
                    occurrence: void 0,
                    isEndOfRule: void 0
                }, n
            }

            return e.prototype.startWalking = function () {
                return this.walk(this.topRule), this.result
            }, e
        }(ij.RestWalker);
        Mr.AbstractNextTerminalAfterProductionWalker = Mp;
        var rye = function (t) {
            Qc(e, t);

            function e() {
                return t !== null && t.apply(this, arguments) || this
            }

            return e.prototype.walkMany = function (r, i, n) {
                if (r.idx === this.occurrence) {
                    var s = (0, Kt.first)(i.concat(n));
                    this.result.isEndOfRule = s === void 0, s instanceof Dt.Terminal && (this.result.token = s.terminalType, this.result.occurrence = s.idx)
                } else t.prototype.walkMany.call(this, r, i, n)
            }, e
        }(Mp);
        Mr.NextTerminalAfterManyWalker = rye;
        var iye = function (t) {
            Qc(e, t);

            function e() {
                return t !== null && t.apply(this, arguments) || this
            }

            return e.prototype.walkManySep = function (r, i, n) {
                if (r.idx === this.occurrence) {
                    var s = (0, Kt.first)(i.concat(n));
                    this.result.isEndOfRule = s === void 0, s instanceof Dt.Terminal && (this.result.token = s.terminalType, this.result.occurrence = s.idx)
                } else t.prototype.walkManySep.call(this, r, i, n)
            }, e
        }(Mp);
        Mr.NextTerminalAfterManySepWalker = iye;
        var nye = function (t) {
            Qc(e, t);

            function e() {
                return t !== null && t.apply(this, arguments) || this
            }

            return e.prototype.walkAtLeastOne = function (r, i, n) {
                if (r.idx === this.occurrence) {
                    var s = (0, Kt.first)(i.concat(n));
                    this.result.isEndOfRule = s === void 0, s instanceof Dt.Terminal && (this.result.token = s.terminalType, this.result.occurrence = s.idx)
                } else t.prototype.walkAtLeastOne.call(this, r, i, n)
            }, e
        }(Mp);
        Mr.NextTerminalAfterAtLeastOneWalker = nye;
        var sye = function (t) {
            Qc(e, t);

            function e() {
                return t !== null && t.apply(this, arguments) || this
            }

            return e.prototype.walkAtLeastOneSep = function (r, i, n) {
                if (r.idx === this.occurrence) {
                    var s = (0, Kt.first)(i.concat(n));
                    this.result.isEndOfRule = s === void 0, s instanceof Dt.Terminal && (this.result.token = s.terminalType, this.result.occurrence = s.idx)
                } else t.prototype.walkAtLeastOneSep.call(this, r, i, n)
            }, e
        }(Mp);
        Mr.NextTerminalAfterAtLeastOneSepWalker = sye;

        function sj(t, e, r) {
            r === void 0 && (r = []), r = (0, Kt.cloneArr)(r);
            var i = [], n = 0;

            function s(c) {
                return c.concat((0, Kt.drop)(t, n + 1))
            }

            function o(c) {
                var u = sj(s(c), e, r);
                return i.concat(u)
            }

            for (; r.length < e && n < t.length;) {
                var a = t[n];
                if (a instanceof Dt.Alternative) return o(a.definition);
                if (a instanceof Dt.NonTerminal) return o(a.definition);
                if (a instanceof Dt.Option) i = o(a.definition); else if (a instanceof Dt.RepetitionMandatory) {
                    var l = a.definition.concat([new Dt.Repetition({definition: a.definition})]);
                    return o(l)
                } else if (a instanceof Dt.RepetitionMandatoryWithSeparator) {
                    var l = [new Dt.Alternative({definition: a.definition}), new Dt.Repetition({definition: [new Dt.Terminal({terminalType: a.separator})].concat(a.definition)})];
                    return o(l)
                } else if (a instanceof Dt.RepetitionWithSeparator) {
                    var l = a.definition.concat([new Dt.Repetition({definition: [new Dt.Terminal({terminalType: a.separator})].concat(a.definition)})]);
                    i = o(l)
                } else if (a instanceof Dt.Repetition) {
                    var l = a.definition.concat([new Dt.Repetition({definition: a.definition})]);
                    i = o(l)
                } else {
                    if (a instanceof Dt.Alternation) return (0, Kt.forEach)(a.definition, function (c) {
                        (0, Kt.isEmpty)(c.definition) === !1 && (i = o(c.definition))
                    }), i;
                    if (a instanceof Dt.Terminal) r.push(a.terminalType); else throw Error("non exhaustive match")
                }
                n++
            }
            return i.push({partialPath: r, suffixDef: (0, Kt.drop)(t, n)}), i
        }

        Mr.possiblePathsFrom = sj;

        function aye(t, e, r, i) {
            var n = "EXIT_NONE_TERMINAL", s = [n], o = "EXIT_ALTERNATIVE", a = !1, l = e.length, c = l - i - 1, u = [],
                g = [];
            for (g.push({idx: -1, def: t, ruleStack: [], occurrenceStack: []}); !(0, Kt.isEmpty)(g);) {
                var f = g.pop();
                if (f === o) {
                    a && (0, Kt.last)(g).idx <= c && g.pop();
                    continue
                }
                var h = f.def, p = f.idx, m = f.ruleStack, y = f.occurrenceStack;
                if (!(0, Kt.isEmpty)(h)) {
                    var b = h[0];
                    if (b === n) {
                        var S = {
                            idx: p,
                            def: (0, Kt.drop)(h),
                            ruleStack: (0, Kt.dropRight)(m),
                            occurrenceStack: (0, Kt.dropRight)(y)
                        };
                        g.push(S)
                    } else if (b instanceof Dt.Terminal) if (p < l - 1) {
                        var k = p + 1, T = e[k];
                        if (r(T, b.terminalType)) {
                            var S = {idx: k, def: (0, Kt.drop)(h), ruleStack: m, occurrenceStack: y};
                            g.push(S)
                        }
                    } else if (p === l - 1) u.push({
                        nextTokenType: b.terminalType,
                        nextTokenOccurrence: b.idx,
                        ruleStack: m,
                        occurrenceStack: y
                    }), a = !0; else throw Error("non exhaustive match"); else if (b instanceof Dt.NonTerminal) {
                        var Y = (0, Kt.cloneArr)(m);
                        Y.push(b.nonTerminalName);
                        var j = (0, Kt.cloneArr)(y);
                        j.push(b.idx);
                        var S = {
                            idx: p,
                            def: b.definition.concat(s, (0, Kt.drop)(h)),
                            ruleStack: Y,
                            occurrenceStack: j
                        };
                        g.push(S)
                    } else if (b instanceof Dt.Option) {
                        var Z = {idx: p, def: (0, Kt.drop)(h), ruleStack: m, occurrenceStack: y};
                        g.push(Z), g.push(o);
                        var J = {idx: p, def: b.definition.concat((0, Kt.drop)(h)), ruleStack: m, occurrenceStack: y};
                        g.push(J)
                    } else if (b instanceof Dt.RepetitionMandatory) {
                        var re = new Dt.Repetition({definition: b.definition, idx: b.idx}),
                            ee = b.definition.concat([re], (0, Kt.drop)(h)),
                            S = {idx: p, def: ee, ruleStack: m, occurrenceStack: y};
                        g.push(S)
                    } else if (b instanceof Dt.RepetitionMandatoryWithSeparator) {
                        var A = new Dt.Terminal({terminalType: b.separator}),
                            re = new Dt.Repetition({definition: [A].concat(b.definition), idx: b.idx}),
                            ee = b.definition.concat([re], (0, Kt.drop)(h)),
                            S = {idx: p, def: ee, ruleStack: m, occurrenceStack: y};
                        g.push(S)
                    } else if (b instanceof Dt.RepetitionWithSeparator) {
                        var Z = {idx: p, def: (0, Kt.drop)(h), ruleStack: m, occurrenceStack: y};
                        g.push(Z), g.push(o);
                        var A = new Dt.Terminal({terminalType: b.separator}),
                            oe = new Dt.Repetition({definition: [A].concat(b.definition), idx: b.idx}),
                            ee = b.definition.concat([oe], (0, Kt.drop)(h)),
                            J = {idx: p, def: ee, ruleStack: m, occurrenceStack: y};
                        g.push(J)
                    } else if (b instanceof Dt.Repetition) {
                        var Z = {idx: p, def: (0, Kt.drop)(h), ruleStack: m, occurrenceStack: y};
                        g.push(Z), g.push(o);
                        var oe = new Dt.Repetition({definition: b.definition, idx: b.idx}),
                            ee = b.definition.concat([oe], (0, Kt.drop)(h)),
                            J = {idx: p, def: ee, ruleStack: m, occurrenceStack: y};
                        g.push(J)
                    } else if (b instanceof Dt.Alternation) for (var le = b.definition.length - 1; le >= 0; le--) {
                        var X = b.definition[le],
                            O = {idx: p, def: X.definition.concat((0, Kt.drop)(h)), ruleStack: m, occurrenceStack: y};
                        g.push(O), g.push(o)
                    } else if (b instanceof Dt.Alternative) g.push({
                        idx: p,
                        def: b.definition.concat((0, Kt.drop)(h)),
                        ruleStack: m,
                        occurrenceStack: y
                    }); else if (b instanceof Dt.Rule) g.push(oye(b, p, m, y)); else throw Error("non exhaustive match")
                }
            }
            return u
        }

        Mr.nextPossibleTokensAfter = aye;

        function oye(t, e, r, i) {
            var n = (0, Kt.cloneArr)(r);
            n.push(t.name);
            var s = (0, Kt.cloneArr)(i);
            return s.push(1), {idx: e, def: t.definition, ruleStack: n, occurrenceStack: s}
        }
    });
    var Up = w(tr => {
        "use strict";
        var oj = tr && tr.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(tr, "__esModule", {value: !0});
        tr.areTokenCategoriesNotUsed = tr.isStrictPrefixOfPath = tr.containsPath = tr.getLookaheadPathsForOptionalProd = tr.getLookaheadPathsForOr = tr.lookAheadSequenceFromAlternatives = tr.buildSingleAlternativeLookaheadFunction = tr.buildAlternativesLookAheadFunc = tr.buildLookaheadFuncForOptionalProd = tr.buildLookaheadFuncForOr = tr.getProdType = tr.PROD_TYPE = void 0;
        var cr = Yt(), aj = Kp(), Aye = _I(), ty = pg(), _A = bn(), lye = dg(), ci;
        (function (t) {
            t[t.OPTION = 0] = "OPTION", t[t.REPETITION = 1] = "REPETITION", t[t.REPETITION_MANDATORY = 2] = "REPETITION_MANDATORY", t[t.REPETITION_MANDATORY_WITH_SEPARATOR = 3] = "REPETITION_MANDATORY_WITH_SEPARATOR", t[t.REPETITION_WITH_SEPARATOR = 4] = "REPETITION_WITH_SEPARATOR", t[t.ALTERNATION = 5] = "ALTERNATION"
        })(ci = tr.PROD_TYPE || (tr.PROD_TYPE = {}));

        function cye(t) {
            if (t instanceof _A.Option) return ci.OPTION;
            if (t instanceof _A.Repetition) return ci.REPETITION;
            if (t instanceof _A.RepetitionMandatory) return ci.REPETITION_MANDATORY;
            if (t instanceof _A.RepetitionMandatoryWithSeparator) return ci.REPETITION_MANDATORY_WITH_SEPARATOR;
            if (t instanceof _A.RepetitionWithSeparator) return ci.REPETITION_WITH_SEPARATOR;
            if (t instanceof _A.Alternation) return ci.ALTERNATION;
            throw Error("non exhaustive match")
        }

        tr.getProdType = cye;

        function uye(t, e, r, i, n, s) {
            var o = Aj(t, e, r), a = Vv(o) ? ty.tokenStructuredMatcherNoCategories : ty.tokenStructuredMatcher;
            return s(o, i, a, n)
        }

        tr.buildLookaheadFuncForOr = uye;

        function gye(t, e, r, i, n, s) {
            var o = lj(t, e, n, r), a = Vv(o) ? ty.tokenStructuredMatcherNoCategories : ty.tokenStructuredMatcher;
            return s(o[0], a, i)
        }

        tr.buildLookaheadFuncForOptionalProd = gye;

        function fye(t, e, r, i) {
            var n = t.length, s = (0, cr.every)(t, function (l) {
                return (0, cr.every)(l, function (c) {
                    return c.length === 1
                })
            });
            if (e) return function (l) {
                for (var c = (0, cr.map)(l, function (k) {
                    return k.GATE
                }), u = 0; u < n; u++) {
                    var g = t[u], f = g.length, h = c[u];
                    if (h !== void 0 && h.call(this) === !1) continue;
                    e:for (var p = 0; p < f; p++) {
                        for (var m = g[p], y = m.length, b = 0; b < y; b++) {
                            var S = this.LA(b + 1);
                            if (r(S, m[b]) === !1) continue e
                        }
                        return u
                    }
                }
            };
            if (s && !i) {
                var o = (0, cr.map)(t, function (l) {
                    return (0, cr.flatten)(l)
                }), a = (0, cr.reduce)(o, function (l, c, u) {
                    return (0, cr.forEach)(c, function (g) {
                        (0, cr.has)(l, g.tokenTypeIdx) || (l[g.tokenTypeIdx] = u), (0, cr.forEach)(g.categoryMatches, function (f) {
                            (0, cr.has)(l, f) || (l[f] = u)
                        })
                    }), l
                }, []);
                return function () {
                    var l = this.LA(1);
                    return a[l.tokenTypeIdx]
                }
            } else return function () {
                for (var l = 0; l < n; l++) {
                    var c = t[l], u = c.length;
                    e:for (var g = 0; g < u; g++) {
                        for (var f = c[g], h = f.length, p = 0; p < h; p++) {
                            var m = this.LA(p + 1);
                            if (r(m, f[p]) === !1) continue e
                        }
                        return l
                    }
                }
            }
        }

        tr.buildAlternativesLookAheadFunc = fye;

        function hye(t, e, r) {
            var i = (0, cr.every)(t, function (c) {
                return c.length === 1
            }), n = t.length;
            if (i && !r) {
                var s = (0, cr.flatten)(t);
                if (s.length === 1 && (0, cr.isEmpty)(s[0].categoryMatches)) {
                    var o = s[0], a = o.tokenTypeIdx;
                    return function () {
                        return this.LA(1).tokenTypeIdx === a
                    }
                } else {
                    var l = (0, cr.reduce)(s, function (c, u, g) {
                        return c[u.tokenTypeIdx] = !0, (0, cr.forEach)(u.categoryMatches, function (f) {
                            c[f] = !0
                        }), c
                    }, []);
                    return function () {
                        var c = this.LA(1);
                        return l[c.tokenTypeIdx] === !0
                    }
                }
            } else return function () {
                e:for (var c = 0; c < n; c++) {
                    for (var u = t[c], g = u.length, f = 0; f < g; f++) {
                        var h = this.LA(f + 1);
                        if (e(h, u[f]) === !1) continue e
                    }
                    return !0
                }
                return !1
            }
        }

        tr.buildSingleAlternativeLookaheadFunction = hye;
        var pye = function (t) {
            oj(e, t);

            function e(r, i, n) {
                var s = t.call(this) || this;
                return s.topProd = r, s.targetOccurrence = i, s.targetProdType = n, s
            }

            return e.prototype.startWalking = function () {
                return this.walk(this.topProd), this.restDef
            }, e.prototype.checkIsTarget = function (r, i, n, s) {
                return r.idx === this.targetOccurrence && this.targetProdType === i ? (this.restDef = n.concat(s), !0) : !1
            }, e.prototype.walkOption = function (r, i, n) {
                this.checkIsTarget(r, ci.OPTION, i, n) || t.prototype.walkOption.call(this, r, i, n)
            }, e.prototype.walkAtLeastOne = function (r, i, n) {
                this.checkIsTarget(r, ci.REPETITION_MANDATORY, i, n) || t.prototype.walkOption.call(this, r, i, n)
            }, e.prototype.walkAtLeastOneSep = function (r, i, n) {
                this.checkIsTarget(r, ci.REPETITION_MANDATORY_WITH_SEPARATOR, i, n) || t.prototype.walkOption.call(this, r, i, n)
            }, e.prototype.walkMany = function (r, i, n) {
                this.checkIsTarget(r, ci.REPETITION, i, n) || t.prototype.walkOption.call(this, r, i, n)
            }, e.prototype.walkManySep = function (r, i, n) {
                this.checkIsTarget(r, ci.REPETITION_WITH_SEPARATOR, i, n) || t.prototype.walkOption.call(this, r, i, n)
            }, e
        }(Aye.RestWalker), cj = function (t) {
            oj(e, t);

            function e(r, i, n) {
                var s = t.call(this) || this;
                return s.targetOccurrence = r, s.targetProdType = i, s.targetRef = n, s.result = [], s
            }

            return e.prototype.checkIsTarget = function (r, i) {
                r.idx === this.targetOccurrence && this.targetProdType === i && (this.targetRef === void 0 || r === this.targetRef) && (this.result = r.definition)
            }, e.prototype.visitOption = function (r) {
                this.checkIsTarget(r, ci.OPTION)
            }, e.prototype.visitRepetition = function (r) {
                this.checkIsTarget(r, ci.REPETITION)
            }, e.prototype.visitRepetitionMandatory = function (r) {
                this.checkIsTarget(r, ci.REPETITION_MANDATORY)
            }, e.prototype.visitRepetitionMandatoryWithSeparator = function (r) {
                this.checkIsTarget(r, ci.REPETITION_MANDATORY_WITH_SEPARATOR)
            }, e.prototype.visitRepetitionWithSeparator = function (r) {
                this.checkIsTarget(r, ci.REPETITION_WITH_SEPARATOR)
            }, e.prototype.visitAlternation = function (r) {
                this.checkIsTarget(r, ci.ALTERNATION)
            }, e
        }(lye.GAstVisitor);

        function uj(t) {
            for (var e = new Array(t), r = 0; r < t; r++) e[r] = [];
            return e
        }

        function Xv(t) {
            for (var e = [""], r = 0; r < t.length; r++) {
                for (var i = t[r], n = [], s = 0; s < e.length; s++) {
                    var o = e[s];
                    n.push(o + "_" + i.tokenTypeIdx);
                    for (var a = 0; a < i.categoryMatches.length; a++) {
                        var l = "_" + i.categoryMatches[a];
                        n.push(o + l)
                    }
                }
                e = n
            }
            return e
        }

        function dye(t, e, r) {
            for (var i = 0; i < t.length; i++) if (i !== r) for (var n = t[i], s = 0; s < e.length; s++) {
                var o = e[s];
                if (n[o] === !0) return !1
            }
            return !0
        }

        function Zv(t, e) {
            for (var r = (0, cr.map)(t, function (u) {
                return (0, aj.possiblePathsFrom)([u], 1)
            }), i = uj(r.length), n = (0, cr.map)(r, function (u) {
                var g = {};
                return (0, cr.forEach)(u, function (f) {
                    var h = Xv(f.partialPath);
                    (0, cr.forEach)(h, function (p) {
                        g[p] = !0
                    })
                }), g
            }), s = r, o = 1; o <= e; o++) {
                var a = s;
                s = uj(a.length);
                for (var l = function (u) {
                    for (var g = a[u], f = 0; f < g.length; f++) {
                        var h = g[f].partialPath, p = g[f].suffixDef, m = Xv(h), y = dye(n, m, u);
                        if (y || (0, cr.isEmpty)(p) || h.length === e) {
                            var b = i[u];
                            if (gj(b, h) === !1) {
                                b.push(h);
                                for (var S = 0; S < m.length; S++) {
                                    var k = m[S];
                                    n[u][k] = !0
                                }
                            }
                        } else {
                            var T = (0, aj.possiblePathsFrom)(p, o + 1, h);
                            s[u] = s[u].concat(T), (0, cr.forEach)(T, function (Y) {
                                var j = Xv(Y.partialPath);
                                (0, cr.forEach)(j, function (Z) {
                                    n[u][Z] = !0
                                })
                            })
                        }
                    }
                }, c = 0; c < a.length; c++) l(c)
            }
            return i
        }

        tr.lookAheadSequenceFromAlternatives = Zv;

        function Aj(t, e, r, i) {
            var n = new cj(t, ci.ALTERNATION, i);
            return e.accept(n), Zv(n.result, r)
        }

        tr.getLookaheadPathsForOr = Aj;

        function lj(t, e, r, i) {
            var n = new cj(t, r);
            e.accept(n);
            var s = n.result, o = new pye(e, t, r), a = o.startWalking(), l = new _A.Alternative({definition: s}),
                c = new _A.Alternative({definition: a});
            return Zv([l, c], i)
        }

        tr.getLookaheadPathsForOptionalProd = lj;

        function gj(t, e) {
            e:for (var r = 0; r < t.length; r++) {
                var i = t[r];
                if (i.length === e.length) {
                    for (var n = 0; n < i.length; n++) {
                        var s = e[n], o = i[n], a = s === o || o.categoryMatchesMap[s.tokenTypeIdx] !== void 0;
                        if (a === !1) continue e
                    }
                    return !0
                }
            }
            return !1
        }

        tr.containsPath = gj;

        function Cye(t, e) {
            return t.length < e.length && (0, cr.every)(t, function (r, i) {
                var n = e[i];
                return r === n || n.categoryMatchesMap[r.tokenTypeIdx]
            })
        }

        tr.isStrictPrefixOfPath = Cye;

        function Vv(t) {
            return (0, cr.every)(t, function (e) {
                return (0, cr.every)(e, function (r) {
                    return (0, cr.every)(r, function (i) {
                        return (0, cr.isEmpty)(i.categoryMatches)
                    })
                })
            })
        }

        tr.areTokenCategoriesNotUsed = Vv
    });
    var nS = w(Xt => {
        "use strict";
        var $v = Xt && Xt.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(Xt, "__esModule", {value: !0});
        Xt.checkPrefixAlternativesAmbiguities = Xt.validateSomeNonEmptyLookaheadPath = Xt.validateTooManyAlts = Xt.RepetionCollector = Xt.validateAmbiguousAlternationAlternatives = Xt.validateEmptyOrAlternative = Xt.getFirstNoneTerminal = Xt.validateNoLeftRecursion = Xt.validateRuleIsOverridden = Xt.validateRuleDoesNotAlreadyExist = Xt.OccurrenceValidationCollector = Xt.identifyProductionForDuplicates = Xt.validateGrammar = void 0;
        var nr = Yt(), xr = Yt(), Ko = Zn(), eS = Tp(), mg = Up(), mye = Kp(), lo = bn(), tS = dg();

        function yye(t, e, r, i, n) {
            var s = nr.map(t, function (h) {
                return Eye(h, i)
            }), o = nr.map(t, function (h) {
                return rS(h, h, i)
            }), a = [], l = [], c = [];
            (0, xr.every)(o, xr.isEmpty) && (a = (0, xr.map)(t, function (h) {
                return hj(h, i)
            }), l = (0, xr.map)(t, function (h) {
                return pj(h, e, i)
            }), c = Cj(t, e, i));
            var u = Iye(t, r, i), g = (0, xr.map)(t, function (h) {
                return dj(h, i)
            }), f = (0, xr.map)(t, function (h) {
                return fj(h, t, n, i)
            });
            return nr.flatten(s.concat(c, o, a, l, u, g, f))
        }

        Xt.validateGrammar = yye;

        function Eye(t, e) {
            var r = new Ij;
            t.accept(r);
            var i = r.allProductions, n = nr.groupBy(i, mj), s = nr.pick(n, function (a) {
                return a.length > 1
            }), o = nr.map(nr.values(s), function (a) {
                var l = nr.first(a), c = e.buildDuplicateFoundError(t, a), u = (0, eS.getProductionDslName)(l), g = {
                    message: c,
                    type: Ko.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,
                    ruleName: t.name,
                    dslName: u,
                    occurrence: l.idx
                }, f = Ej(l);
                return f && (g.parameter = f), g
            });
            return o
        }

        function mj(t) {
            return (0, eS.getProductionDslName)(t) + "_#_" + t.idx + "_#_" + Ej(t)
        }

        Xt.identifyProductionForDuplicates = mj;

        function Ej(t) {
            return t instanceof lo.Terminal ? t.terminalType.name : t instanceof lo.NonTerminal ? t.nonTerminalName : ""
        }

        var Ij = function (t) {
            $v(e, t);

            function e() {
                var r = t !== null && t.apply(this, arguments) || this;
                return r.allProductions = [], r
            }

            return e.prototype.visitNonTerminal = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitOption = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitRepetitionWithSeparator = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitRepetitionMandatory = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitRepetitionMandatoryWithSeparator = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitRepetition = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitAlternation = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitTerminal = function (r) {
                this.allProductions.push(r)
            }, e
        }(tS.GAstVisitor);
        Xt.OccurrenceValidationCollector = Ij;

        function fj(t, e, r, i) {
            var n = [], s = (0, xr.reduce)(e, function (a, l) {
                return l.name === t.name ? a + 1 : a
            }, 0);
            if (s > 1) {
                var o = i.buildDuplicateRuleNameError({topLevelRule: t, grammarName: r});
                n.push({message: o, type: Ko.ParserDefinitionErrorType.DUPLICATE_RULE_NAME, ruleName: t.name})
            }
            return n
        }

        Xt.validateRuleDoesNotAlreadyExist = fj;

        function wye(t, e, r) {
            var i = [], n;
            return nr.contains(e, t) || (n = "Invalid rule override, rule: ->" + t + "<- cannot be overridden in the grammar: ->" + r + "<-as it is not defined in any of the super grammars ", i.push({
                message: n,
                type: Ko.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,
                ruleName: t
            })), i
        }

        Xt.validateRuleIsOverridden = wye;

        function rS(t, e, r, i) {
            i === void 0 && (i = []);
            var n = [], s = Hp(e.definition);
            if (nr.isEmpty(s)) return [];
            var o = t.name, a = nr.contains(s, t);
            a && n.push({
                message: r.buildLeftRecursionError({topLevelRule: t, leftRecursionPath: i}),
                type: Ko.ParserDefinitionErrorType.LEFT_RECURSION,
                ruleName: o
            });
            var l = nr.difference(s, i.concat([t])), c = nr.map(l, function (u) {
                var g = nr.cloneArr(i);
                return g.push(u), rS(t, u, r, g)
            });
            return n.concat(nr.flatten(c))
        }

        Xt.validateNoLeftRecursion = rS;

        function Hp(t) {
            var e = [];
            if (nr.isEmpty(t)) return e;
            var r = nr.first(t);
            if (r instanceof lo.NonTerminal) e.push(r.referencedRule); else if (r instanceof lo.Alternative || r instanceof lo.Option || r instanceof lo.RepetitionMandatory || r instanceof lo.RepetitionMandatoryWithSeparator || r instanceof lo.RepetitionWithSeparator || r instanceof lo.Repetition) e = e.concat(Hp(r.definition)); else if (r instanceof lo.Alternation) e = nr.flatten(nr.map(r.definition, function (o) {
                return Hp(o.definition)
            })); else if (!(r instanceof lo.Terminal)) throw Error("non exhaustive match");
            var i = (0, eS.isOptionalProd)(r), n = t.length > 1;
            if (i && n) {
                var s = nr.drop(t);
                return e.concat(Hp(s))
            } else return e
        }

        Xt.getFirstNoneTerminal = Hp;
        var iS = function (t) {
            $v(e, t);

            function e() {
                var r = t !== null && t.apply(this, arguments) || this;
                return r.alternations = [], r
            }

            return e.prototype.visitAlternation = function (r) {
                this.alternations.push(r)
            }, e
        }(tS.GAstVisitor);

        function hj(t, e) {
            var r = new iS;
            t.accept(r);
            var i = r.alternations, n = nr.reduce(i, function (s, o) {
                var a = nr.dropRight(o.definition), l = nr.map(a, function (c, u) {
                    var g = (0, mye.nextPossibleTokensAfter)([c], [], null, 1);
                    return nr.isEmpty(g) ? {
                        message: e.buildEmptyAlternationError({
                            topLevelRule: t,
                            alternation: o,
                            emptyChoiceIdx: u
                        }),
                        type: Ko.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,
                        ruleName: t.name,
                        occurrence: o.idx,
                        alternative: u + 1
                    } : null
                });
                return s.concat(nr.compact(l))
            }, []);
            return n
        }

        Xt.validateEmptyOrAlternative = hj;

        function pj(t, e, r) {
            var i = new iS;
            t.accept(i);
            var n = i.alternations;
            n = (0, xr.reject)(n, function (o) {
                return o.ignoreAmbiguities === !0
            });
            var s = nr.reduce(n, function (o, a) {
                var l = a.idx, c = a.maxLookahead || e, u = (0, mg.getLookaheadPathsForOr)(l, t, c, a),
                    g = Bye(u, a, t, r), f = yj(u, a, t, r);
                return o.concat(g, f)
            }, []);
            return s
        }

        Xt.validateAmbiguousAlternationAlternatives = pj;
        var wj = function (t) {
            $v(e, t);

            function e() {
                var r = t !== null && t.apply(this, arguments) || this;
                return r.allProductions = [], r
            }

            return e.prototype.visitRepetitionWithSeparator = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitRepetitionMandatory = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitRepetitionMandatoryWithSeparator = function (r) {
                this.allProductions.push(r)
            }, e.prototype.visitRepetition = function (r) {
                this.allProductions.push(r)
            }, e
        }(tS.GAstVisitor);
        Xt.RepetionCollector = wj;

        function dj(t, e) {
            var r = new iS;
            t.accept(r);
            var i = r.alternations, n = nr.reduce(i, function (s, o) {
                return o.definition.length > 255 && s.push({
                    message: e.buildTooManyAlternativesError({
                        topLevelRule: t,
                        alternation: o
                    }), type: Ko.ParserDefinitionErrorType.TOO_MANY_ALTS, ruleName: t.name, occurrence: o.idx
                }), s
            }, []);
            return n
        }

        Xt.validateTooManyAlts = dj;

        function Cj(t, e, r) {
            var i = [];
            return (0, xr.forEach)(t, function (n) {
                var s = new wj;
                n.accept(s);
                var o = s.allProductions;
                (0, xr.forEach)(o, function (a) {
                    var l = (0, mg.getProdType)(a), c = a.maxLookahead || e, u = a.idx,
                        g = (0, mg.getLookaheadPathsForOptionalProd)(u, n, l, c), f = g[0];
                    if ((0, xr.isEmpty)((0, xr.flatten)(f))) {
                        var h = r.buildEmptyRepetitionError({topLevelRule: n, repetition: a});
                        i.push({
                            message: h,
                            type: Ko.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,
                            ruleName: n.name
                        })
                    }
                })
            }), i
        }

        Xt.validateSomeNonEmptyLookaheadPath = Cj;

        function Bye(t, e, r, i) {
            var n = [], s = (0, xr.reduce)(t, function (a, l, c) {
                return e.definition[c].ignoreAmbiguities === !0 || (0, xr.forEach)(l, function (u) {
                    var g = [c];
                    (0, xr.forEach)(t, function (f, h) {
                        c !== h && (0, mg.containsPath)(f, u) && e.definition[h].ignoreAmbiguities !== !0 && g.push(h)
                    }), g.length > 1 && !(0, mg.containsPath)(n, u) && (n.push(u), a.push({alts: g, path: u}))
                }), a
            }, []), o = nr.map(s, function (a) {
                var l = (0, xr.map)(a.alts, function (u) {
                    return u + 1
                }), c = i.buildAlternationAmbiguityError({
                    topLevelRule: r,
                    alternation: e,
                    ambiguityIndices: l,
                    prefixPath: a.path
                });
                return {
                    message: c,
                    type: Ko.ParserDefinitionErrorType.AMBIGUOUS_ALTS,
                    ruleName: r.name,
                    occurrence: e.idx,
                    alternatives: [a.alts]
                }
            });
            return o
        }

        function yj(t, e, r, i) {
            var n = [], s = (0, xr.reduce)(t, function (o, a, l) {
                var c = (0, xr.map)(a, function (u) {
                    return {idx: l, path: u}
                });
                return o.concat(c)
            }, []);
            return (0, xr.forEach)(s, function (o) {
                var a = e.definition[o.idx];
                if (a.ignoreAmbiguities !== !0) {
                    var l = o.idx, c = o.path, u = (0, xr.findAll)(s, function (f) {
                        return e.definition[f.idx].ignoreAmbiguities !== !0 && f.idx < l && (0, mg.isStrictPrefixOfPath)(f.path, c)
                    }), g = (0, xr.map)(u, function (f) {
                        var h = [f.idx + 1, l + 1], p = e.idx === 0 ? "" : e.idx,
                            m = i.buildAlternationPrefixAmbiguityError({
                                topLevelRule: r,
                                alternation: e,
                                ambiguityIndices: h,
                                prefixPath: f.path
                            });
                        return {
                            message: m,
                            type: Ko.ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,
                            ruleName: r.name,
                            occurrence: p,
                            alternatives: h
                        }
                    });
                    n = n.concat(g)
                }
            }), n
        }

        Xt.checkPrefixAlternativesAmbiguities = yj;

        function Iye(t, e, r) {
            var i = [], n = (0, xr.map)(e, function (s) {
                return s.name
            });
            return (0, xr.forEach)(t, function (s) {
                var o = s.name;
                if ((0, xr.contains)(n, o)) {
                    var a = r.buildNamespaceConflictError(s);
                    i.push({
                        message: a,
                        type: Ko.ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,
                        ruleName: o
                    })
                }
            }), i
        }
    });
    var bj = w(Eg => {
        "use strict";
        Object.defineProperty(Eg, "__esModule", {value: !0});
        Eg.validateGrammar = Eg.resolveGrammar = void 0;
        var sS = Yt(), bye = rj(), Qye = nS(), Bj = Op();

        function vye(t) {
            t = (0, sS.defaults)(t, {errMsgProvider: Bj.defaultGrammarResolverErrorProvider});
            var e = {};
            return (0, sS.forEach)(t.rules, function (r) {
                e[r.name] = r
            }), (0, bye.resolveGrammar)(e, t.errMsgProvider)
        }

        Eg.resolveGrammar = vye;

        function Sye(t) {
            return t = (0, sS.defaults)(t, {errMsgProvider: Bj.defaultGrammarValidatorErrorProvider}), (0, Qye.validateGrammar)(t.rules, t.maxLookahead, t.tokenTypes, t.errMsgProvider, t.grammarName)
        }

        Eg.validateGrammar = Sye
    });
    var Ig = w(vn => {
        "use strict";
        var Gp = vn && vn.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(vn, "__esModule", {value: !0});
        vn.EarlyExitException = vn.NotAllInputParsedException = vn.NoViableAltException = vn.MismatchedTokenException = vn.isRecognitionException = void 0;
        var kye = Yt(), Qj = "MismatchedTokenException", vj = "NoViableAltException", Sj = "EarlyExitException",
            kj = "NotAllInputParsedException", xj = [Qj, vj, Sj, kj];
        Object.freeze(xj);

        function xye(t) {
            return (0, kye.contains)(xj, t.name)
        }

        vn.isRecognitionException = xye;
        var ry = function (t) {
            Gp(e, t);

            function e(r, i) {
                var n = this.constructor, s = t.call(this, r) || this;
                return s.token = i, s.resyncedTokens = [], Object.setPrototypeOf(s, n.prototype), Error.captureStackTrace && Error.captureStackTrace(s, s.constructor), s
            }

            return e
        }(Error), Pye = function (t) {
            Gp(e, t);

            function e(r, i, n) {
                var s = t.call(this, r, i) || this;
                return s.previousToken = n, s.name = Qj, s
            }

            return e
        }(ry);
        vn.MismatchedTokenException = Pye;
        var Dye = function (t) {
            Gp(e, t);

            function e(r, i, n) {
                var s = t.call(this, r, i) || this;
                return s.previousToken = n, s.name = vj, s
            }

            return e
        }(ry);
        vn.NoViableAltException = Dye;
        var Rye = function (t) {
            Gp(e, t);

            function e(r, i) {
                var n = t.call(this, r, i) || this;
                return n.name = kj, n
            }

            return e
        }(ry);
        vn.NotAllInputParsedException = Rye;
        var Fye = function (t) {
            Gp(e, t);

            function e(r, i, n) {
                var s = t.call(this, r, i) || this;
                return s.previousToken = n, s.name = Sj, s
            }

            return e
        }(ry);
        vn.EarlyExitException = Fye
    });
    var aS = w(Yi => {
        "use strict";
        Object.defineProperty(Yi, "__esModule", {value: !0});
        Yi.attemptInRepetitionRecovery = Yi.Recoverable = Yi.InRuleRecoveryException = Yi.IN_RULE_RECOVERY_EXCEPTION = Yi.EOF_FOLLOW_KEY = void 0;
        var iy = WA(), Ss = Yt(), Nye = Ig(), Lye = zv(), Tye = Zn();
        Yi.EOF_FOLLOW_KEY = {};
        Yi.IN_RULE_RECOVERY_EXCEPTION = "InRuleRecoveryException";

        function oS(t) {
            this.name = Yi.IN_RULE_RECOVERY_EXCEPTION, this.message = t
        }

        Yi.InRuleRecoveryException = oS;
        oS.prototype = Error.prototype;
        var Oye = function () {
            function t() {
            }

            return t.prototype.initRecoverable = function (e) {
                this.firstAfterRepMap = {}, this.resyncFollows = {}, this.recoveryEnabled = (0, Ss.has)(e, "recoveryEnabled") ? e.recoveryEnabled : Tye.DEFAULT_PARSER_CONFIG.recoveryEnabled, this.recoveryEnabled && (this.attemptInRepetitionRecovery = Pj)
            }, t.prototype.getTokenToInsert = function (e) {
                var r = (0, iy.createTokenInstance)(e, "", NaN, NaN, NaN, NaN, NaN, NaN);
                return r.isInsertedInRecovery = !0, r
            }, t.prototype.canTokenTypeBeInsertedInRecovery = function (e) {
                return !0
            }, t.prototype.tryInRepetitionRecovery = function (e, r, i, n) {
                for (var s = this, o = this.findReSyncTokenType(), a = this.exportLexerState(), l = [], c = !1, u = this.LA(1), g = this.LA(1), f = function () {
                    var h = s.LA(0), p = s.errorMessageProvider.buildMismatchTokenMessage({
                        expected: n,
                        actual: u,
                        previous: h,
                        ruleName: s.getCurrRuleFullName()
                    }), m = new Nye.MismatchedTokenException(p, u, s.LA(0));
                    m.resyncedTokens = (0, Ss.dropRight)(l), s.SAVE_ERROR(m)
                }; !c;) if (this.tokenMatcher(g, n)) {
                    f();
                    return
                } else if (i.call(this)) {
                    f(), e.apply(this, r);
                    return
                } else this.tokenMatcher(g, o) ? c = !0 : (g = this.SKIP_TOKEN(), this.addToResyncTokens(g, l));
                this.importLexerState(a)
            }, t.prototype.shouldInRepetitionRecoveryBeTried = function (e, r, i) {
                return !(i === !1 || e === void 0 || r === void 0 || this.tokenMatcher(this.LA(1), e) || this.isBackTracking() || this.canPerformInRuleRecovery(e, this.getFollowsForInRuleRecovery(e, r)))
            }, t.prototype.getFollowsForInRuleRecovery = function (e, r) {
                var i = this.getCurrentGrammarPath(e, r), n = this.getNextPossibleTokenTypes(i);
                return n
            }, t.prototype.tryInRuleRecovery = function (e, r) {
                if (this.canRecoverWithSingleTokenInsertion(e, r)) {
                    var i = this.getTokenToInsert(e);
                    return i
                }
                if (this.canRecoverWithSingleTokenDeletion(e)) {
                    var n = this.SKIP_TOKEN();
                    return this.consumeToken(), n
                }
                throw new oS("sad sad panda")
            }, t.prototype.canPerformInRuleRecovery = function (e, r) {
                return this.canRecoverWithSingleTokenInsertion(e, r) || this.canRecoverWithSingleTokenDeletion(e)
            }, t.prototype.canRecoverWithSingleTokenInsertion = function (e, r) {
                var i = this;
                if (!this.canTokenTypeBeInsertedInRecovery(e) || (0, Ss.isEmpty)(r)) return !1;
                var n = this.LA(1), s = (0, Ss.find)(r, function (o) {
                    return i.tokenMatcher(n, o)
                }) !== void 0;
                return s
            }, t.prototype.canRecoverWithSingleTokenDeletion = function (e) {
                var r = this.tokenMatcher(this.LA(2), e);
                return r
            }, t.prototype.isInCurrentRuleReSyncSet = function (e) {
                var r = this.getCurrFollowKey(), i = this.getFollowSetFromFollowKey(r);
                return (0, Ss.contains)(i, e)
            }, t.prototype.findReSyncTokenType = function () {
                for (var e = this.flattenFollowSet(), r = this.LA(1), i = 2; ;) {
                    var n = r.tokenType;
                    if ((0, Ss.contains)(e, n)) return n;
                    r = this.LA(i), i++
                }
            }, t.prototype.getCurrFollowKey = function () {
                if (this.RULE_STACK.length === 1) return Yi.EOF_FOLLOW_KEY;
                var e = this.getLastExplicitRuleShortName(), r = this.getLastExplicitRuleOccurrenceIndex(),
                    i = this.getPreviousExplicitRuleShortName();
                return {
                    ruleName: this.shortRuleNameToFullName(e),
                    idxInCallingRule: r,
                    inRule: this.shortRuleNameToFullName(i)
                }
            }, t.prototype.buildFullFollowKeyStack = function () {
                var e = this, r = this.RULE_STACK, i = this.RULE_OCCURRENCE_STACK;
                return (0, Ss.map)(r, function (n, s) {
                    return s === 0 ? Yi.EOF_FOLLOW_KEY : {
                        ruleName: e.shortRuleNameToFullName(n),
                        idxInCallingRule: i[s],
                        inRule: e.shortRuleNameToFullName(r[s - 1])
                    }
                })
            }, t.prototype.flattenFollowSet = function () {
                var e = this, r = (0, Ss.map)(this.buildFullFollowKeyStack(), function (i) {
                    return e.getFollowSetFromFollowKey(i)
                });
                return (0, Ss.flatten)(r)
            }, t.prototype.getFollowSetFromFollowKey = function (e) {
                if (e === Yi.EOF_FOLLOW_KEY) return [iy.EOF];
                var r = e.ruleName + e.idxInCallingRule + Lye.IN + e.inRule;
                return this.resyncFollows[r]
            }, t.prototype.addToResyncTokens = function (e, r) {
                return this.tokenMatcher(e, iy.EOF) || r.push(e), r
            }, t.prototype.reSyncTo = function (e) {
                for (var r = [], i = this.LA(1); this.tokenMatcher(i, e) === !1;) i = this.SKIP_TOKEN(), this.addToResyncTokens(i, r);
                return (0, Ss.dropRight)(r)
            }, t.prototype.attemptInRepetitionRecovery = function (e, r, i, n, s, o, a) {
            }, t.prototype.getCurrentGrammarPath = function (e, r) {
                var i = this.getHumanReadableRuleStack(), n = (0, Ss.cloneArr)(this.RULE_OCCURRENCE_STACK),
                    s = {ruleStack: i, occurrenceStack: n, lastTok: e, lastTokOccurrence: r};
                return s
            }, t.prototype.getHumanReadableRuleStack = function () {
                var e = this;
                return (0, Ss.map)(this.RULE_STACK, function (r) {
                    return e.shortRuleNameToFullName(r)
                })
            }, t
        }();
        Yi.Recoverable = Oye;

        function Pj(t, e, r, i, n, s, o) {
            var a = this.getKeyForAutomaticLookahead(i, n), l = this.firstAfterRepMap[a];
            if (l === void 0) {
                var c = this.getCurrRuleFullName(), u = this.getGAstProductions()[c], g = new s(u, n);
                l = g.startWalking(), this.firstAfterRepMap[a] = l
            }
            var f = l.token, h = l.occurrence, p = l.isEndOfRule;
            this.RULE_STACK.length === 1 && p && f === void 0 && (f = iy.EOF, h = 1), this.shouldInRepetitionRecoveryBeTried(f, h, o) && this.tryInRepetitionRecovery(t, e, r, f)
        }

        Yi.attemptInRepetitionRecovery = Pj
    });
    var ny = w(Jt => {
        "use strict";
        Object.defineProperty(Jt, "__esModule", {value: !0});
        Jt.getKeyForAutomaticLookahead = Jt.AT_LEAST_ONE_SEP_IDX = Jt.MANY_SEP_IDX = Jt.AT_LEAST_ONE_IDX = Jt.MANY_IDX = Jt.OPTION_IDX = Jt.OR_IDX = Jt.BITS_FOR_ALT_IDX = Jt.BITS_FOR_RULE_IDX = Jt.BITS_FOR_OCCURRENCE_IDX = Jt.BITS_FOR_METHOD_TYPE = void 0;
        Jt.BITS_FOR_METHOD_TYPE = 4;
        Jt.BITS_FOR_OCCURRENCE_IDX = 8;
        Jt.BITS_FOR_RULE_IDX = 12;
        Jt.BITS_FOR_ALT_IDX = 8;
        Jt.OR_IDX = 1 << Jt.BITS_FOR_OCCURRENCE_IDX;
        Jt.OPTION_IDX = 2 << Jt.BITS_FOR_OCCURRENCE_IDX;
        Jt.MANY_IDX = 3 << Jt.BITS_FOR_OCCURRENCE_IDX;
        Jt.AT_LEAST_ONE_IDX = 4 << Jt.BITS_FOR_OCCURRENCE_IDX;
        Jt.MANY_SEP_IDX = 5 << Jt.BITS_FOR_OCCURRENCE_IDX;
        Jt.AT_LEAST_ONE_SEP_IDX = 6 << Jt.BITS_FOR_OCCURRENCE_IDX;

        function Mye(t, e, r) {
            return r | e | t
        }

        Jt.getKeyForAutomaticLookahead = Mye;
        var Dtt = 32 - Jt.BITS_FOR_ALT_IDX
    });
    var Rj = w(sy => {
        "use strict";
        Object.defineProperty(sy, "__esModule", {value: !0});
        sy.LooksAhead = void 0;
        var Ga = Up(), co = Yt(), Dj = Zn(), ja = ny(), vc = Tp(), Kye = function () {
            function t() {
            }

            return t.prototype.initLooksAhead = function (e) {
                this.dynamicTokensEnabled = (0, co.has)(e, "dynamicTokensEnabled") ? e.dynamicTokensEnabled : Dj.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled, this.maxLookahead = (0, co.has)(e, "maxLookahead") ? e.maxLookahead : Dj.DEFAULT_PARSER_CONFIG.maxLookahead, this.lookAheadFuncsCache = (0, co.isES2015MapSupported)() ? new Map : [], (0, co.isES2015MapSupported)() ? (this.getLaFuncFromCache = this.getLaFuncFromMap, this.setLaFuncCache = this.setLaFuncCacheUsingMap) : (this.getLaFuncFromCache = this.getLaFuncFromObj, this.setLaFuncCache = this.setLaFuncUsingObj)
            }, t.prototype.preComputeLookaheadFunctions = function (e) {
                var r = this;
                (0, co.forEach)(e, function (i) {
                    r.TRACE_INIT(i.name + " Rule Lookahead", function () {
                        var n = (0, vc.collectMethods)(i), s = n.alternation, o = n.repetition, a = n.option,
                            l = n.repetitionMandatory, c = n.repetitionMandatoryWithSeparator,
                            u = n.repetitionWithSeparator;
                        (0, co.forEach)(s, function (g) {
                            var f = g.idx === 0 ? "" : g.idx;
                            r.TRACE_INIT("" + (0, vc.getProductionDslName)(g) + f, function () {
                                var h = (0, Ga.buildLookaheadFuncForOr)(g.idx, i, g.maxLookahead || r.maxLookahead, g.hasPredicates, r.dynamicTokensEnabled, r.lookAheadBuilderForAlternatives),
                                    p = (0, ja.getKeyForAutomaticLookahead)(r.fullRuleNameToShort[i.name], ja.OR_IDX, g.idx);
                                r.setLaFuncCache(p, h)
                            })
                        }), (0, co.forEach)(o, function (g) {
                            r.computeLookaheadFunc(i, g.idx, ja.MANY_IDX, Ga.PROD_TYPE.REPETITION, g.maxLookahead, (0, vc.getProductionDslName)(g))
                        }), (0, co.forEach)(a, function (g) {
                            r.computeLookaheadFunc(i, g.idx, ja.OPTION_IDX, Ga.PROD_TYPE.OPTION, g.maxLookahead, (0, vc.getProductionDslName)(g))
                        }), (0, co.forEach)(l, function (g) {
                            r.computeLookaheadFunc(i, g.idx, ja.AT_LEAST_ONE_IDX, Ga.PROD_TYPE.REPETITION_MANDATORY, g.maxLookahead, (0, vc.getProductionDslName)(g))
                        }), (0, co.forEach)(c, function (g) {
                            r.computeLookaheadFunc(i, g.idx, ja.AT_LEAST_ONE_SEP_IDX, Ga.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR, g.maxLookahead, (0, vc.getProductionDslName)(g))
                        }), (0, co.forEach)(u, function (g) {
                            r.computeLookaheadFunc(i, g.idx, ja.MANY_SEP_IDX, Ga.PROD_TYPE.REPETITION_WITH_SEPARATOR, g.maxLookahead, (0, vc.getProductionDslName)(g))
                        })
                    })
                })
            }, t.prototype.computeLookaheadFunc = function (e, r, i, n, s, o) {
                var a = this;
                this.TRACE_INIT("" + o + (r === 0 ? "" : r), function () {
                    var l = (0, Ga.buildLookaheadFuncForOptionalProd)(r, e, s || a.maxLookahead, a.dynamicTokensEnabled, n, a.lookAheadBuilderForOptional),
                        c = (0, ja.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name], i, r);
                    a.setLaFuncCache(c, l)
                })
            }, t.prototype.lookAheadBuilderForOptional = function (e, r, i) {
                return (0, Ga.buildSingleAlternativeLookaheadFunction)(e, r, i)
            }, t.prototype.lookAheadBuilderForAlternatives = function (e, r, i, n) {
                return (0, Ga.buildAlternativesLookAheadFunc)(e, r, i, n)
            }, t.prototype.getKeyForAutomaticLookahead = function (e, r) {
                var i = this.getLastExplicitRuleShortName();
                return (0, ja.getKeyForAutomaticLookahead)(i, e, r)
            }, t.prototype.getLaFuncFromCache = function (e) {
            }, t.prototype.getLaFuncFromMap = function (e) {
                return this.lookAheadFuncsCache.get(e)
            }, t.prototype.getLaFuncFromObj = function (e) {
                return this.lookAheadFuncsCache[e]
            }, t.prototype.setLaFuncCache = function (e, r) {
            }, t.prototype.setLaFuncCacheUsingMap = function (e, r) {
                this.lookAheadFuncsCache.set(e, r)
            }, t.prototype.setLaFuncUsingObj = function (e, r) {
                this.lookAheadFuncsCache[e] = r
            }, t
        }();
        sy.LooksAhead = Kye
    });
    var Fj = w(Uo => {
        "use strict";
        Object.defineProperty(Uo, "__esModule", {value: !0});
        Uo.addNoneTerminalToCst = Uo.addTerminalToCst = Uo.setNodeLocationFull = Uo.setNodeLocationOnlyOffset = void 0;

        function Uye(t, e) {
            isNaN(t.startOffset) === !0 ? (t.startOffset = e.startOffset, t.endOffset = e.endOffset) : t.endOffset < e.endOffset && (t.endOffset = e.endOffset)
        }

        Uo.setNodeLocationOnlyOffset = Uye;

        function Hye(t, e) {
            isNaN(t.startOffset) === !0 ? (t.startOffset = e.startOffset, t.startColumn = e.startColumn, t.startLine = e.startLine, t.endOffset = e.endOffset, t.endColumn = e.endColumn, t.endLine = e.endLine) : t.endOffset < e.endOffset && (t.endOffset = e.endOffset, t.endColumn = e.endColumn, t.endLine = e.endLine)
        }

        Uo.setNodeLocationFull = Hye;

        function Gye(t, e, r) {
            t.children[r] === void 0 ? t.children[r] = [e] : t.children[r].push(e)
        }

        Uo.addTerminalToCst = Gye;

        function jye(t, e, r) {
            t.children[e] === void 0 ? t.children[e] = [r] : t.children[e].push(r)
        }

        Uo.addNoneTerminalToCst = jye
    });
    var AS = w(VA => {
        "use strict";
        Object.defineProperty(VA, "__esModule", {value: !0});
        VA.defineNameProp = VA.functionName = VA.classNameFromInstance = void 0;
        var Yye = Yt();

        function qye(t) {
            return Nj(t.constructor)
        }

        VA.classNameFromInstance = qye;
        var Lj = "name";

        function Nj(t) {
            var e = t.name;
            return e || "anonymous"
        }

        VA.functionName = Nj;

        function Jye(t, e) {
            var r = Object.getOwnPropertyDescriptor(t, Lj);
            return (0, Yye.isUndefined)(r) || r.configurable ? (Object.defineProperty(t, Lj, {
                enumerable: !1,
                configurable: !0,
                writable: !1,
                value: e
            }), !0) : !1
        }

        VA.defineNameProp = Jye
    });
    var Uj = w(Pi => {
        "use strict";
        Object.defineProperty(Pi, "__esModule", {value: !0});
        Pi.validateRedundantMethods = Pi.validateMissingCstMethods = Pi.validateVisitor = Pi.CstVisitorDefinitionError = Pi.createBaseVisitorConstructorWithDefaults = Pi.createBaseSemanticVisitorConstructor = Pi.defaultVisit = void 0;
        var ks = Yt(), jp = AS();

        function Tj(t, e) {
            for (var r = (0, ks.keys)(t), i = r.length, n = 0; n < i; n++) for (var s = r[n], o = t[s], a = o.length, l = 0; l < a; l++) {
                var c = o[l];
                c.tokenTypeIdx === void 0 && this[c.name](c.children, e)
            }
        }

        Pi.defaultVisit = Tj;

        function Wye(t, e) {
            var r = function () {
            };
            (0, jp.defineNameProp)(r, t + "BaseSemantics");
            var i = {
                visit: function (n, s) {
                    if ((0, ks.isArray)(n) && (n = n[0]), !(0, ks.isUndefined)(n)) return this[n.name](n.children, s)
                }, validateVisitor: function () {
                    var n = Oj(this, e);
                    if (!(0, ks.isEmpty)(n)) {
                        var s = (0, ks.map)(n, function (o) {
                            return o.msg
                        });
                        throw Error("Errors Detected in CST Visitor <" + (0, jp.functionName)(this.constructor) + `>:
	` + ("" + s.join(`

`).replace(/\n/g, `
	`)))
                    }
                }
            };
            return r.prototype = i, r.prototype.constructor = r, r._RULE_NAMES = e, r
        }

        Pi.createBaseSemanticVisitorConstructor = Wye;

        function zye(t, e, r) {
            var i = function () {
            };
            (0, jp.defineNameProp)(i, t + "BaseSemanticsWithDefaults");
            var n = Object.create(r.prototype);
            return (0, ks.forEach)(e, function (s) {
                n[s] = Tj
            }), i.prototype = n, i.prototype.constructor = i, i
        }

        Pi.createBaseVisitorConstructorWithDefaults = zye;
        var lS;
        (function (t) {
            t[t.REDUNDANT_METHOD = 0] = "REDUNDANT_METHOD", t[t.MISSING_METHOD = 1] = "MISSING_METHOD"
        })(lS = Pi.CstVisitorDefinitionError || (Pi.CstVisitorDefinitionError = {}));

        function Oj(t, e) {
            var r = Mj(t, e), i = Kj(t, e);
            return r.concat(i)
        }

        Pi.validateVisitor = Oj;

        function Mj(t, e) {
            var r = (0, ks.map)(e, function (i) {
                if (!(0, ks.isFunction)(t[i])) return {
                    msg: "Missing visitor method: <" + i + "> on " + (0, jp.functionName)(t.constructor) + " CST Visitor.",
                    type: lS.MISSING_METHOD,
                    methodName: i
                }
            });
            return (0, ks.compact)(r)
        }

        Pi.validateMissingCstMethods = Mj;
        var _ye = ["constructor", "visit", "validateVisitor"];

        function Kj(t, e) {
            var r = [];
            for (var i in t) (0, ks.isFunction)(t[i]) && !(0, ks.contains)(_ye, i) && !(0, ks.contains)(e, i) && r.push({
                msg: "Redundant visitor method: <" + i + "> on " + (0, jp.functionName)(t.constructor) + ` CST Visitor
There is no Grammar Rule corresponding to this method's name.
`, type: lS.REDUNDANT_METHOD, methodName: i
            });
            return r
        }

        Pi.validateRedundantMethods = Kj
    });
    var Gj = w(oy => {
        "use strict";
        Object.defineProperty(oy, "__esModule", {value: !0});
        oy.TreeBuilder = void 0;
        var yg = Fj(), ni = Yt(), Hj = Uj(), Vye = Zn(), Xye = function () {
            function t() {
            }

            return t.prototype.initTreeBuilder = function (e) {
                if (this.CST_STACK = [], this.outputCst = e.outputCst, this.nodeLocationTracking = (0, ni.has)(e, "nodeLocationTracking") ? e.nodeLocationTracking : Vye.DEFAULT_PARSER_CONFIG.nodeLocationTracking, !this.outputCst) this.cstInvocationStateUpdate = ni.NOOP, this.cstFinallyStateUpdate = ni.NOOP, this.cstPostTerminal = ni.NOOP, this.cstPostNonTerminal = ni.NOOP, this.cstPostRule = ni.NOOP; else if (/full/i.test(this.nodeLocationTracking)) this.recoveryEnabled ? (this.setNodeLocationFromToken = yg.setNodeLocationFull, this.setNodeLocationFromNode = yg.setNodeLocationFull, this.cstPostRule = ni.NOOP, this.setInitialNodeLocation = this.setInitialNodeLocationFullRecovery) : (this.setNodeLocationFromToken = ni.NOOP, this.setNodeLocationFromNode = ni.NOOP, this.cstPostRule = this.cstPostRuleFull, this.setInitialNodeLocation = this.setInitialNodeLocationFullRegular); else if (/onlyOffset/i.test(this.nodeLocationTracking)) this.recoveryEnabled ? (this.setNodeLocationFromToken = yg.setNodeLocationOnlyOffset, this.setNodeLocationFromNode = yg.setNodeLocationOnlyOffset, this.cstPostRule = ni.NOOP, this.setInitialNodeLocation = this.setInitialNodeLocationOnlyOffsetRecovery) : (this.setNodeLocationFromToken = ni.NOOP, this.setNodeLocationFromNode = ni.NOOP, this.cstPostRule = this.cstPostRuleOnlyOffset, this.setInitialNodeLocation = this.setInitialNodeLocationOnlyOffsetRegular); else if (/none/i.test(this.nodeLocationTracking)) this.setNodeLocationFromToken = ni.NOOP, this.setNodeLocationFromNode = ni.NOOP, this.cstPostRule = ni.NOOP, this.setInitialNodeLocation = ni.NOOP; else throw Error('Invalid <nodeLocationTracking> config option: "' + e.nodeLocationTracking + '"')
            }, t.prototype.setInitialNodeLocationOnlyOffsetRecovery = function (e) {
                e.location = {startOffset: NaN, endOffset: NaN}
            }, t.prototype.setInitialNodeLocationOnlyOffsetRegular = function (e) {
                e.location = {startOffset: this.LA(1).startOffset, endOffset: NaN}
            }, t.prototype.setInitialNodeLocationFullRecovery = function (e) {
                e.location = {
                    startOffset: NaN,
                    startLine: NaN,
                    startColumn: NaN,
                    endOffset: NaN,
                    endLine: NaN,
                    endColumn: NaN
                }
            }, t.prototype.setInitialNodeLocationFullRegular = function (e) {
                var r = this.LA(1);
                e.location = {
                    startOffset: r.startOffset,
                    startLine: r.startLine,
                    startColumn: r.startColumn,
                    endOffset: NaN,
                    endLine: NaN,
                    endColumn: NaN
                }
            }, t.prototype.cstInvocationStateUpdate = function (e, r) {
                var i = {name: e, children: {}};
                this.setInitialNodeLocation(i), this.CST_STACK.push(i)
            }, t.prototype.cstFinallyStateUpdate = function () {
                this.CST_STACK.pop()
            }, t.prototype.cstPostRuleFull = function (e) {
                var r = this.LA(0), i = e.location;
                i.startOffset <= r.startOffset ? (i.endOffset = r.endOffset, i.endLine = r.endLine, i.endColumn = r.endColumn) : (i.startOffset = NaN, i.startLine = NaN, i.startColumn = NaN)
            }, t.prototype.cstPostRuleOnlyOffset = function (e) {
                var r = this.LA(0), i = e.location;
                i.startOffset <= r.startOffset ? i.endOffset = r.endOffset : i.startOffset = NaN
            }, t.prototype.cstPostTerminal = function (e, r) {
                var i = this.CST_STACK[this.CST_STACK.length - 1];
                (0, yg.addTerminalToCst)(i, r, e), this.setNodeLocationFromToken(i.location, r)
            }, t.prototype.cstPostNonTerminal = function (e, r) {
                var i = this.CST_STACK[this.CST_STACK.length - 1];
                (0, yg.addNoneTerminalToCst)(i, r, e), this.setNodeLocationFromNode(i.location, e.location)
            }, t.prototype.getBaseCstVisitorConstructor = function () {
                if ((0, ni.isUndefined)(this.baseCstVisitorConstructor)) {
                    var e = (0, Hj.createBaseSemanticVisitorConstructor)(this.className, (0, ni.keys)(this.gastProductionsCache));
                    return this.baseCstVisitorConstructor = e, e
                }
                return this.baseCstVisitorConstructor
            }, t.prototype.getBaseCstVisitorConstructorWithDefaults = function () {
                if ((0, ni.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)) {
                    var e = (0, Hj.createBaseVisitorConstructorWithDefaults)(this.className, (0, ni.keys)(this.gastProductionsCache), this.getBaseCstVisitorConstructor());
                    return this.baseCstVisitorWithDefaultsConstructor = e, e
                }
                return this.baseCstVisitorWithDefaultsConstructor
            }, t.prototype.getLastExplicitRuleShortName = function () {
                var e = this.RULE_STACK;
                return e[e.length - 1]
            }, t.prototype.getPreviousExplicitRuleShortName = function () {
                var e = this.RULE_STACK;
                return e[e.length - 2]
            }, t.prototype.getLastExplicitRuleOccurrenceIndex = function () {
                var e = this.RULE_OCCURRENCE_STACK;
                return e[e.length - 1]
            }, t
        }();
        oy.TreeBuilder = Xye
    });
    var Yj = w(ay => {
        "use strict";
        Object.defineProperty(ay, "__esModule", {value: !0});
        ay.LexerAdapter = void 0;
        var jj = Zn(), Zye = function () {
            function t() {
            }

            return t.prototype.initLexerAdapter = function () {
                this.tokVector = [], this.tokVectorLength = 0, this.currIdx = -1
            }, Object.defineProperty(t.prototype, "input", {
                get: function () {
                    return this.tokVector
                }, set: function (e) {
                    if (this.selfAnalysisDone !== !0) throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");
                    this.reset(), this.tokVector = e, this.tokVectorLength = e.length
                }, enumerable: !1, configurable: !0
            }), t.prototype.SKIP_TOKEN = function () {
                return this.currIdx <= this.tokVector.length - 2 ? (this.consumeToken(), this.LA(1)) : jj.END_OF_FILE
            }, t.prototype.LA = function (e) {
                var r = this.currIdx + e;
                return r < 0 || this.tokVectorLength <= r ? jj.END_OF_FILE : this.tokVector[r]
            }, t.prototype.consumeToken = function () {
                this.currIdx++
            }, t.prototype.exportLexerState = function () {
                return this.currIdx
            }, t.prototype.importLexerState = function (e) {
                this.currIdx = e
            }, t.prototype.resetLexerState = function () {
                this.currIdx = -1
            }, t.prototype.moveToTerminatedState = function () {
                this.currIdx = this.tokVector.length - 1
            }, t.prototype.getLexerPosition = function () {
                return this.exportLexerState()
            }, t
        }();
        ay.LexerAdapter = Zye
    });
    var Jj = w(Ay => {
        "use strict";
        Object.defineProperty(Ay, "__esModule", {value: !0});
        Ay.RecognizerApi = void 0;
        var qj = Yt(), $ye = Ig(), cS = Zn(), ewe = Op(), twe = nS(), rwe = bn(), iwe = function () {
            function t() {
            }

            return t.prototype.ACTION = function (e) {
                return e.call(this)
            }, t.prototype.consume = function (e, r, i) {
                return this.consumeInternal(r, e, i)
            }, t.prototype.subrule = function (e, r, i) {
                return this.subruleInternal(r, e, i)
            }, t.prototype.option = function (e, r) {
                return this.optionInternal(r, e)
            }, t.prototype.or = function (e, r) {
                return this.orInternal(r, e)
            }, t.prototype.many = function (e, r) {
                return this.manyInternal(e, r)
            }, t.prototype.atLeastOne = function (e, r) {
                return this.atLeastOneInternal(e, r)
            }, t.prototype.CONSUME = function (e, r) {
                return this.consumeInternal(e, 0, r)
            }, t.prototype.CONSUME1 = function (e, r) {
                return this.consumeInternal(e, 1, r)
            }, t.prototype.CONSUME2 = function (e, r) {
                return this.consumeInternal(e, 2, r)
            }, t.prototype.CONSUME3 = function (e, r) {
                return this.consumeInternal(e, 3, r)
            }, t.prototype.CONSUME4 = function (e, r) {
                return this.consumeInternal(e, 4, r)
            }, t.prototype.CONSUME5 = function (e, r) {
                return this.consumeInternal(e, 5, r)
            }, t.prototype.CONSUME6 = function (e, r) {
                return this.consumeInternal(e, 6, r)
            }, t.prototype.CONSUME7 = function (e, r) {
                return this.consumeInternal(e, 7, r)
            }, t.prototype.CONSUME8 = function (e, r) {
                return this.consumeInternal(e, 8, r)
            }, t.prototype.CONSUME9 = function (e, r) {
                return this.consumeInternal(e, 9, r)
            }, t.prototype.SUBRULE = function (e, r) {
                return this.subruleInternal(e, 0, r)
            }, t.prototype.SUBRULE1 = function (e, r) {
                return this.subruleInternal(e, 1, r)
            }, t.prototype.SUBRULE2 = function (e, r) {
                return this.subruleInternal(e, 2, r)
            }, t.prototype.SUBRULE3 = function (e, r) {
                return this.subruleInternal(e, 3, r)
            }, t.prototype.SUBRULE4 = function (e, r) {
                return this.subruleInternal(e, 4, r)
            }, t.prototype.SUBRULE5 = function (e, r) {
                return this.subruleInternal(e, 5, r)
            }, t.prototype.SUBRULE6 = function (e, r) {
                return this.subruleInternal(e, 6, r)
            }, t.prototype.SUBRULE7 = function (e, r) {
                return this.subruleInternal(e, 7, r)
            }, t.prototype.SUBRULE8 = function (e, r) {
                return this.subruleInternal(e, 8, r)
            }, t.prototype.SUBRULE9 = function (e, r) {
                return this.subruleInternal(e, 9, r)
            }, t.prototype.OPTION = function (e) {
                return this.optionInternal(e, 0)
            }, t.prototype.OPTION1 = function (e) {
                return this.optionInternal(e, 1)
            }, t.prototype.OPTION2 = function (e) {
                return this.optionInternal(e, 2)
            }, t.prototype.OPTION3 = function (e) {
                return this.optionInternal(e, 3)
            }, t.prototype.OPTION4 = function (e) {
                return this.optionInternal(e, 4)
            }, t.prototype.OPTION5 = function (e) {
                return this.optionInternal(e, 5)
            }, t.prototype.OPTION6 = function (e) {
                return this.optionInternal(e, 6)
            }, t.prototype.OPTION7 = function (e) {
                return this.optionInternal(e, 7)
            }, t.prototype.OPTION8 = function (e) {
                return this.optionInternal(e, 8)
            }, t.prototype.OPTION9 = function (e) {
                return this.optionInternal(e, 9)
            }, t.prototype.OR = function (e) {
                return this.orInternal(e, 0)
            }, t.prototype.OR1 = function (e) {
                return this.orInternal(e, 1)
            }, t.prototype.OR2 = function (e) {
                return this.orInternal(e, 2)
            }, t.prototype.OR3 = function (e) {
                return this.orInternal(e, 3)
            }, t.prototype.OR4 = function (e) {
                return this.orInternal(e, 4)
            }, t.prototype.OR5 = function (e) {
                return this.orInternal(e, 5)
            }, t.prototype.OR6 = function (e) {
                return this.orInternal(e, 6)
            }, t.prototype.OR7 = function (e) {
                return this.orInternal(e, 7)
            }, t.prototype.OR8 = function (e) {
                return this.orInternal(e, 8)
            }, t.prototype.OR9 = function (e) {
                return this.orInternal(e, 9)
            }, t.prototype.MANY = function (e) {
                this.manyInternal(0, e)
            }, t.prototype.MANY1 = function (e) {
                this.manyInternal(1, e)
            }, t.prototype.MANY2 = function (e) {
                this.manyInternal(2, e)
            }, t.prototype.MANY3 = function (e) {
                this.manyInternal(3, e)
            }, t.prototype.MANY4 = function (e) {
                this.manyInternal(4, e)
            }, t.prototype.MANY5 = function (e) {
                this.manyInternal(5, e)
            }, t.prototype.MANY6 = function (e) {
                this.manyInternal(6, e)
            }, t.prototype.MANY7 = function (e) {
                this.manyInternal(7, e)
            }, t.prototype.MANY8 = function (e) {
                this.manyInternal(8, e)
            }, t.prototype.MANY9 = function (e) {
                this.manyInternal(9, e)
            }, t.prototype.MANY_SEP = function (e) {
                this.manySepFirstInternal(0, e)
            }, t.prototype.MANY_SEP1 = function (e) {
                this.manySepFirstInternal(1, e)
            }, t.prototype.MANY_SEP2 = function (e) {
                this.manySepFirstInternal(2, e)
            }, t.prototype.MANY_SEP3 = function (e) {
                this.manySepFirstInternal(3, e)
            }, t.prototype.MANY_SEP4 = function (e) {
                this.manySepFirstInternal(4, e)
            }, t.prototype.MANY_SEP5 = function (e) {
                this.manySepFirstInternal(5, e)
            }, t.prototype.MANY_SEP6 = function (e) {
                this.manySepFirstInternal(6, e)
            }, t.prototype.MANY_SEP7 = function (e) {
                this.manySepFirstInternal(7, e)
            }, t.prototype.MANY_SEP8 = function (e) {
                this.manySepFirstInternal(8, e)
            }, t.prototype.MANY_SEP9 = function (e) {
                this.manySepFirstInternal(9, e)
            }, t.prototype.AT_LEAST_ONE = function (e) {
                this.atLeastOneInternal(0, e)
            }, t.prototype.AT_LEAST_ONE1 = function (e) {
                return this.atLeastOneInternal(1, e)
            }, t.prototype.AT_LEAST_ONE2 = function (e) {
                this.atLeastOneInternal(2, e)
            }, t.prototype.AT_LEAST_ONE3 = function (e) {
                this.atLeastOneInternal(3, e)
            }, t.prototype.AT_LEAST_ONE4 = function (e) {
                this.atLeastOneInternal(4, e)
            }, t.prototype.AT_LEAST_ONE5 = function (e) {
                this.atLeastOneInternal(5, e)
            }, t.prototype.AT_LEAST_ONE6 = function (e) {
                this.atLeastOneInternal(6, e)
            }, t.prototype.AT_LEAST_ONE7 = function (e) {
                this.atLeastOneInternal(7, e)
            }, t.prototype.AT_LEAST_ONE8 = function (e) {
                this.atLeastOneInternal(8, e)
            }, t.prototype.AT_LEAST_ONE9 = function (e) {
                this.atLeastOneInternal(9, e)
            }, t.prototype.AT_LEAST_ONE_SEP = function (e) {
                this.atLeastOneSepFirstInternal(0, e)
            }, t.prototype.AT_LEAST_ONE_SEP1 = function (e) {
                this.atLeastOneSepFirstInternal(1, e)
            }, t.prototype.AT_LEAST_ONE_SEP2 = function (e) {
                this.atLeastOneSepFirstInternal(2, e)
            }, t.prototype.AT_LEAST_ONE_SEP3 = function (e) {
                this.atLeastOneSepFirstInternal(3, e)
            }, t.prototype.AT_LEAST_ONE_SEP4 = function (e) {
                this.atLeastOneSepFirstInternal(4, e)
            }, t.prototype.AT_LEAST_ONE_SEP5 = function (e) {
                this.atLeastOneSepFirstInternal(5, e)
            }, t.prototype.AT_LEAST_ONE_SEP6 = function (e) {
                this.atLeastOneSepFirstInternal(6, e)
            }, t.prototype.AT_LEAST_ONE_SEP7 = function (e) {
                this.atLeastOneSepFirstInternal(7, e)
            }, t.prototype.AT_LEAST_ONE_SEP8 = function (e) {
                this.atLeastOneSepFirstInternal(8, e)
            }, t.prototype.AT_LEAST_ONE_SEP9 = function (e) {
                this.atLeastOneSepFirstInternal(9, e)
            }, t.prototype.RULE = function (e, r, i) {
                if (i === void 0 && (i = cS.DEFAULT_RULE_CONFIG), (0, qj.contains)(this.definedRulesNames, e)) {
                    var n = ewe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({
                        topLevelRule: e,
                        grammarName: this.className
                    }), s = {message: n, type: cS.ParserDefinitionErrorType.DUPLICATE_RULE_NAME, ruleName: e};
                    this.definitionErrors.push(s)
                }
                this.definedRulesNames.push(e);
                var o = this.defineRule(e, r, i);
                return this[e] = o, o
            }, t.prototype.OVERRIDE_RULE = function (e, r, i) {
                i === void 0 && (i = cS.DEFAULT_RULE_CONFIG);
                var n = [];
                n = n.concat((0, twe.validateRuleIsOverridden)(e, this.definedRulesNames, this.className)), this.definitionErrors = this.definitionErrors.concat(n);
                var s = this.defineRule(e, r, i);
                return this[e] = s, s
            }, t.prototype.BACKTRACK = function (e, r) {
                return function () {
                    this.isBackTrackingStack.push(1);
                    var i = this.saveRecogState();
                    try {
                        return e.apply(this, r), !0
                    } catch (n) {
                        if ((0, $ye.isRecognitionException)(n)) return !1;
                        throw n
                    } finally {
                        this.reloadRecogState(i), this.isBackTrackingStack.pop()
                    }
                }
            }, t.prototype.getGAstProductions = function () {
                return this.gastProductionsCache
            }, t.prototype.getSerializedGastProductions = function () {
                return (0, rwe.serializeGrammar)((0, qj.values)(this.gastProductionsCache))
            }, t
        }();
        Ay.RecognizerApi = iwe
    });
    var Vj = w(ly => {
        "use strict";
        Object.defineProperty(ly, "__esModule", {value: !0});
        ly.RecognizerEngine = void 0;
        var Rr = Yt(), $n = ny(), cy = Ig(), Wj = Up(), wg = Kp(), zj = Zn(), nwe = aS(), _j = WA(), Yp = pg(),
            swe = AS(), owe = function () {
                function t() {
                }

                return t.prototype.initRecognizerEngine = function (e, r) {
                    if (this.className = (0, swe.classNameFromInstance)(this), this.shortRuleNameToFull = {}, this.fullRuleNameToShort = {}, this.ruleShortNameIdx = 256, this.tokenMatcher = Yp.tokenStructuredMatcherNoCategories, this.definedRulesNames = [], this.tokensMap = {}, this.isBackTrackingStack = [], this.RULE_STACK = [], this.RULE_OCCURRENCE_STACK = [], this.gastProductionsCache = {}, (0, Rr.has)(r, "serializedGrammar")) throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
	See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
	For Further details.`);
                    if ((0, Rr.isArray)(e)) {
                        if ((0, Rr.isEmpty)(e)) throw Error(`A Token Vocabulary cannot be empty.
	Note that the first argument for the parser constructor
	is no longer a Token vector (since v4.0).`);
                        if (typeof e[0].startOffset == "number") throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
	See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
	For Further details.`)
                    }
                    if ((0, Rr.isArray)(e)) this.tokensMap = (0, Rr.reduce)(e, function (o, a) {
                        return o[a.name] = a, o
                    }, {}); else if ((0, Rr.has)(e, "modes") && (0, Rr.every)((0, Rr.flatten)((0, Rr.values)(e.modes)), Yp.isTokenType)) {
                        var i = (0, Rr.flatten)((0, Rr.values)(e.modes)), n = (0, Rr.uniq)(i);
                        this.tokensMap = (0, Rr.reduce)(n, function (o, a) {
                            return o[a.name] = a, o
                        }, {})
                    } else if ((0, Rr.isObject)(e)) this.tokensMap = (0, Rr.cloneObj)(e); else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");
                    this.tokensMap.EOF = _j.EOF;
                    var s = (0, Rr.every)((0, Rr.values)(e), function (o) {
                        return (0, Rr.isEmpty)(o.categoryMatches)
                    });
                    this.tokenMatcher = s ? Yp.tokenStructuredMatcherNoCategories : Yp.tokenStructuredMatcher, (0, Yp.augmentTokenTypes)((0, Rr.values)(this.tokensMap))
                }, t.prototype.defineRule = function (e, r, i) {
                    if (this.selfAnalysisDone) throw Error("Grammar rule <" + e + `> may not be defined after the 'performSelfAnalysis' method has been called'
Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);
                    var n = (0, Rr.has)(i, "resyncEnabled") ? i.resyncEnabled : zj.DEFAULT_RULE_CONFIG.resyncEnabled,
                        s = (0, Rr.has)(i, "recoveryValueFunc") ? i.recoveryValueFunc : zj.DEFAULT_RULE_CONFIG.recoveryValueFunc,
                        o = this.ruleShortNameIdx << $n.BITS_FOR_METHOD_TYPE + $n.BITS_FOR_OCCURRENCE_IDX;
                    this.ruleShortNameIdx++, this.shortRuleNameToFull[o] = e, this.fullRuleNameToShort[e] = o;

                    function a(u) {
                        try {
                            if (this.outputCst === !0) {
                                r.apply(this, u);
                                var g = this.CST_STACK[this.CST_STACK.length - 1];
                                return this.cstPostRule(g), g
                            } else return r.apply(this, u)
                        } catch (f) {
                            return this.invokeRuleCatch(f, n, s)
                        } finally {
                            this.ruleFinallyStateUpdate()
                        }
                    }

                    var l = function (u, g) {
                        return u === void 0 && (u = 0), this.ruleInvocationStateUpdate(o, e, u), a.call(this, g)
                    }, c = "ruleName";
                    return l[c] = e, l.originalGrammarAction = r, l
                }, t.prototype.invokeRuleCatch = function (e, r, i) {
                    var n = this.RULE_STACK.length === 1, s = r && !this.isBackTracking() && this.recoveryEnabled;
                    if ((0, cy.isRecognitionException)(e)) {
                        var o = e;
                        if (s) {
                            var a = this.findReSyncTokenType();
                            if (this.isInCurrentRuleReSyncSet(a)) if (o.resyncedTokens = this.reSyncTo(a), this.outputCst) {
                                var l = this.CST_STACK[this.CST_STACK.length - 1];
                                return l.recoveredNode = !0, l
                            } else return i(); else {
                                if (this.outputCst) {
                                    var l = this.CST_STACK[this.CST_STACK.length - 1];
                                    l.recoveredNode = !0, o.partialCstResult = l
                                }
                                throw o
                            }
                        } else {
                            if (n) return this.moveToTerminatedState(), i();
                            throw o
                        }
                    } else throw e
                }, t.prototype.optionInternal = function (e, r) {
                    var i = this.getKeyForAutomaticLookahead($n.OPTION_IDX, r);
                    return this.optionInternalLogic(e, r, i)
                }, t.prototype.optionInternalLogic = function (e, r, i) {
                    var n = this, s = this.getLaFuncFromCache(i), o, a;
                    if (e.DEF !== void 0) {
                        if (o = e.DEF, a = e.GATE, a !== void 0) {
                            var l = s;
                            s = function () {
                                return a.call(n) && l.call(n)
                            }
                        }
                    } else o = e;
                    if (s.call(this) === !0) return o.call(this)
                }, t.prototype.atLeastOneInternal = function (e, r) {
                    var i = this.getKeyForAutomaticLookahead($n.AT_LEAST_ONE_IDX, e);
                    return this.atLeastOneInternalLogic(e, r, i)
                }, t.prototype.atLeastOneInternalLogic = function (e, r, i) {
                    var n = this, s = this.getLaFuncFromCache(i), o, a;
                    if (r.DEF !== void 0) {
                        if (o = r.DEF, a = r.GATE, a !== void 0) {
                            var l = s;
                            s = function () {
                                return a.call(n) && l.call(n)
                            }
                        }
                    } else o = r;
                    if (s.call(this) === !0) for (var c = this.doSingleRepetition(o); s.call(this) === !0 && c === !0;) c = this.doSingleRepetition(o); else throw this.raiseEarlyExitException(e, Wj.PROD_TYPE.REPETITION_MANDATORY, r.ERR_MSG);
                    this.attemptInRepetitionRecovery(this.atLeastOneInternal, [e, r], s, $n.AT_LEAST_ONE_IDX, e, wg.NextTerminalAfterAtLeastOneWalker)
                }, t.prototype.atLeastOneSepFirstInternal = function (e, r) {
                    var i = this.getKeyForAutomaticLookahead($n.AT_LEAST_ONE_SEP_IDX, e);
                    this.atLeastOneSepFirstInternalLogic(e, r, i)
                }, t.prototype.atLeastOneSepFirstInternalLogic = function (e, r, i) {
                    var n = this, s = r.DEF, o = r.SEP, a = this.getLaFuncFromCache(i);
                    if (a.call(this) === !0) {
                        s.call(this);
                        for (var l = function () {
                            return n.tokenMatcher(n.LA(1), o)
                        }; this.tokenMatcher(this.LA(1), o) === !0;) this.CONSUME(o), s.call(this);
                        this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [e, o, l, s, wg.NextTerminalAfterAtLeastOneSepWalker], l, $n.AT_LEAST_ONE_SEP_IDX, e, wg.NextTerminalAfterAtLeastOneSepWalker)
                    } else throw this.raiseEarlyExitException(e, Wj.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR, r.ERR_MSG)
                }, t.prototype.manyInternal = function (e, r) {
                    var i = this.getKeyForAutomaticLookahead($n.MANY_IDX, e);
                    return this.manyInternalLogic(e, r, i)
                }, t.prototype.manyInternalLogic = function (e, r, i) {
                    var n = this, s = this.getLaFuncFromCache(i), o, a;
                    if (r.DEF !== void 0) {
                        if (o = r.DEF, a = r.GATE, a !== void 0) {
                            var l = s;
                            s = function () {
                                return a.call(n) && l.call(n)
                            }
                        }
                    } else o = r;
                    for (var c = !0; s.call(this) === !0 && c === !0;) c = this.doSingleRepetition(o);
                    this.attemptInRepetitionRecovery(this.manyInternal, [e, r], s, $n.MANY_IDX, e, wg.NextTerminalAfterManyWalker, c)
                }, t.prototype.manySepFirstInternal = function (e, r) {
                    var i = this.getKeyForAutomaticLookahead($n.MANY_SEP_IDX, e);
                    this.manySepFirstInternalLogic(e, r, i)
                }, t.prototype.manySepFirstInternalLogic = function (e, r, i) {
                    var n = this, s = r.DEF, o = r.SEP, a = this.getLaFuncFromCache(i);
                    if (a.call(this) === !0) {
                        s.call(this);
                        for (var l = function () {
                            return n.tokenMatcher(n.LA(1), o)
                        }; this.tokenMatcher(this.LA(1), o) === !0;) this.CONSUME(o), s.call(this);
                        this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [e, o, l, s, wg.NextTerminalAfterManySepWalker], l, $n.MANY_SEP_IDX, e, wg.NextTerminalAfterManySepWalker)
                    }
                }, t.prototype.repetitionSepSecondInternal = function (e, r, i, n, s) {
                    for (; i();) this.CONSUME(r), n.call(this);
                    this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [e, r, i, n, s], i, $n.AT_LEAST_ONE_SEP_IDX, e, s)
                }, t.prototype.doSingleRepetition = function (e) {
                    var r = this.getLexerPosition();
                    e.call(this);
                    var i = this.getLexerPosition();
                    return i > r
                }, t.prototype.orInternal = function (e, r) {
                    var i = this.getKeyForAutomaticLookahead($n.OR_IDX, r), n = (0, Rr.isArray)(e) ? e : e.DEF,
                        s = this.getLaFuncFromCache(i), o = s.call(this, n);
                    if (o !== void 0) {
                        var a = n[o];
                        return a.ALT.call(this)
                    }
                    this.raiseNoAltException(r, e.ERR_MSG)
                }, t.prototype.ruleFinallyStateUpdate = function () {
                    if (this.RULE_STACK.pop(), this.RULE_OCCURRENCE_STACK.pop(), this.cstFinallyStateUpdate(), this.RULE_STACK.length === 0 && this.isAtEndOfInput() === !1) {
                        var e = this.LA(1), r = this.errorMessageProvider.buildNotAllInputParsedMessage({
                            firstRedundant: e,
                            ruleName: this.getCurrRuleFullName()
                        });
                        this.SAVE_ERROR(new cy.NotAllInputParsedException(r, e))
                    }
                }, t.prototype.subruleInternal = function (e, r, i) {
                    var n;
                    try {
                        var s = i !== void 0 ? i.ARGS : void 0;
                        return n = e.call(this, r, s), this.cstPostNonTerminal(n, i !== void 0 && i.LABEL !== void 0 ? i.LABEL : e.ruleName), n
                    } catch (o) {
                        this.subruleInternalError(o, i, e.ruleName)
                    }
                }, t.prototype.subruleInternalError = function (e, r, i) {
                    throw(0, cy.isRecognitionException)(e) && e.partialCstResult !== void 0 && (this.cstPostNonTerminal(e.partialCstResult, r !== void 0 && r.LABEL !== void 0 ? r.LABEL : i), delete e.partialCstResult), e
                }, t.prototype.consumeInternal = function (e, r, i) {
                    var n;
                    try {
                        var s = this.LA(1);
                        this.tokenMatcher(s, e) === !0 ? (this.consumeToken(), n = s) : this.consumeInternalError(e, s, i)
                    } catch (o) {
                        n = this.consumeInternalRecovery(e, r, o)
                    }
                    return this.cstPostTerminal(i !== void 0 && i.LABEL !== void 0 ? i.LABEL : e.name, n), n
                }, t.prototype.consumeInternalError = function (e, r, i) {
                    var n, s = this.LA(0);
                    throw i !== void 0 && i.ERR_MSG ? n = i.ERR_MSG : n = this.errorMessageProvider.buildMismatchTokenMessage({
                        expected: e,
                        actual: r,
                        previous: s,
                        ruleName: this.getCurrRuleFullName()
                    }), this.SAVE_ERROR(new cy.MismatchedTokenException(n, r, s))
                }, t.prototype.consumeInternalRecovery = function (e, r, i) {
                    if (this.recoveryEnabled && i.name === "MismatchedTokenException" && !this.isBackTracking()) {
                        var n = this.getFollowsForInRuleRecovery(e, r);
                        try {
                            return this.tryInRuleRecovery(e, n)
                        } catch (s) {
                            throw s.name === nwe.IN_RULE_RECOVERY_EXCEPTION ? i : s
                        }
                    } else throw i
                }, t.prototype.saveRecogState = function () {
                    var e = this.errors, r = (0, Rr.cloneArr)(this.RULE_STACK);
                    return {errors: e, lexerState: this.exportLexerState(), RULE_STACK: r, CST_STACK: this.CST_STACK}
                }, t.prototype.reloadRecogState = function (e) {
                    this.errors = e.errors, this.importLexerState(e.lexerState), this.RULE_STACK = e.RULE_STACK
                }, t.prototype.ruleInvocationStateUpdate = function (e, r, i) {
                    this.RULE_OCCURRENCE_STACK.push(i), this.RULE_STACK.push(e), this.cstInvocationStateUpdate(r, e)
                }, t.prototype.isBackTracking = function () {
                    return this.isBackTrackingStack.length !== 0
                }, t.prototype.getCurrRuleFullName = function () {
                    var e = this.getLastExplicitRuleShortName();
                    return this.shortRuleNameToFull[e]
                }, t.prototype.shortRuleNameToFullName = function (e) {
                    return this.shortRuleNameToFull[e]
                }, t.prototype.isAtEndOfInput = function () {
                    return this.tokenMatcher(this.LA(1), _j.EOF)
                }, t.prototype.reset = function () {
                    this.resetLexerState(), this.isBackTrackingStack = [], this.errors = [], this.RULE_STACK = [], this.CST_STACK = [], this.RULE_OCCURRENCE_STACK = []
                }, t
            }();
        ly.RecognizerEngine = owe
    });
    var Zj = w(uy => {
        "use strict";
        Object.defineProperty(uy, "__esModule", {value: !0});
        uy.ErrorHandler = void 0;
        var uS = Ig(), gS = Yt(), Xj = Up(), awe = Zn(), Awe = function () {
            function t() {
            }

            return t.prototype.initErrorHandler = function (e) {
                this._errors = [], this.errorMessageProvider = (0, gS.has)(e, "errorMessageProvider") ? e.errorMessageProvider : awe.DEFAULT_PARSER_CONFIG.errorMessageProvider
            }, t.prototype.SAVE_ERROR = function (e) {
                if ((0, uS.isRecognitionException)(e)) return e.context = {
                    ruleStack: this.getHumanReadableRuleStack(),
                    ruleOccurrenceStack: (0, gS.cloneArr)(this.RULE_OCCURRENCE_STACK)
                }, this._errors.push(e), e;
                throw Error("Trying to save an Error which is not a RecognitionException")
            }, Object.defineProperty(t.prototype, "errors", {
                get: function () {
                    return (0, gS.cloneArr)(this._errors)
                }, set: function (e) {
                    this._errors = e
                }, enumerable: !1, configurable: !0
            }), t.prototype.raiseEarlyExitException = function (e, r, i) {
                for (var n = this.getCurrRuleFullName(), s = this.getGAstProductions()[n], o = (0, Xj.getLookaheadPathsForOptionalProd)(e, s, r, this.maxLookahead), a = o[0], l = [], c = 1; c <= this.maxLookahead; c++) l.push(this.LA(c));
                var u = this.errorMessageProvider.buildEarlyExitMessage({
                    expectedIterationPaths: a,
                    actual: l,
                    previous: this.LA(0),
                    customUserDescription: i,
                    ruleName: n
                });
                throw this.SAVE_ERROR(new uS.EarlyExitException(u, this.LA(1), this.LA(0)))
            }, t.prototype.raiseNoAltException = function (e, r) {
                for (var i = this.getCurrRuleFullName(), n = this.getGAstProductions()[i], s = (0, Xj.getLookaheadPathsForOr)(e, n, this.maxLookahead), o = [], a = 1; a <= this.maxLookahead; a++) o.push(this.LA(a));
                var l = this.LA(0), c = this.errorMessageProvider.buildNoViableAltMessage({
                    expectedPathsPerAlt: s,
                    actual: o,
                    previous: l,
                    customUserDescription: r,
                    ruleName: this.getCurrRuleFullName()
                });
                throw this.SAVE_ERROR(new uS.NoViableAltException(c, this.LA(1), l))
            }, t
        }();
        uy.ErrorHandler = Awe
    });
    var tY = w(gy => {
        "use strict";
        Object.defineProperty(gy, "__esModule", {value: !0});
        gy.ContentAssist = void 0;
        var $j = Kp(), eY = Yt(), lwe = function () {
            function t() {
            }

            return t.prototype.initContentAssist = function () {
            }, t.prototype.computeContentAssist = function (e, r) {
                var i = this.gastProductionsCache[e];
                if ((0, eY.isUndefined)(i)) throw Error("Rule ->" + e + "<- does not exist in this grammar.");
                return (0, $j.nextPossibleTokensAfter)([i], r, this.tokenMatcher, this.maxLookahead)
            }, t.prototype.getNextPossibleTokenTypes = function (e) {
                var r = (0, eY.first)(e.ruleStack), i = this.getGAstProductions(), n = i[r],
                    s = new $j.NextAfterTokenWalker(n, e).startWalking();
                return s
            }, t
        }();
        gy.ContentAssist = lwe
    });
    var lY = w(fy => {
        "use strict";
        Object.defineProperty(fy, "__esModule", {value: !0});
        fy.GastRecorder = void 0;
        var Sn = Yt(), Ho = bn(), cwe = Rp(), rY = pg(), iY = WA(), uwe = Zn(), gwe = ny(),
            hy = {description: "This Object indicates the Parser is during Recording Phase"};
        Object.freeze(hy);
        var nY = !0, sY = Math.pow(2, gwe.BITS_FOR_OCCURRENCE_IDX) - 1,
            oY = (0, iY.createToken)({name: "RECORDING_PHASE_TOKEN", pattern: cwe.Lexer.NA});
        (0, rY.augmentTokenTypes)([oY]);
        var aY = (0, iY.createTokenInstance)(oY, `This IToken indicates the Parser is in Recording Phase
	See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`, -1, -1, -1, -1, -1, -1);
        Object.freeze(aY);
        var fwe = {
            name: `This CSTNode indicates the Parser is in Recording Phase
	See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`, children: {}
        }, pwe = function () {
            function t() {
            }

            return t.prototype.initGastRecorder = function (e) {
                this.recordingProdStack = [], this.RECORDING_PHASE = !1
            }, t.prototype.enableRecording = function () {
                var e = this;
                this.RECORDING_PHASE = !0, this.TRACE_INIT("Enable Recording", function () {
                    for (var r = function (n) {
                        var s = n > 0 ? n : "";
                        e["CONSUME" + s] = function (o, a) {
                            return this.consumeInternalRecord(o, n, a)
                        }, e["SUBRULE" + s] = function (o, a) {
                            return this.subruleInternalRecord(o, n, a)
                        }, e["OPTION" + s] = function (o) {
                            return this.optionInternalRecord(o, n)
                        }, e["OR" + s] = function (o) {
                            return this.orInternalRecord(o, n)
                        }, e["MANY" + s] = function (o) {
                            this.manyInternalRecord(n, o)
                        }, e["MANY_SEP" + s] = function (o) {
                            this.manySepFirstInternalRecord(n, o)
                        }, e["AT_LEAST_ONE" + s] = function (o) {
                            this.atLeastOneInternalRecord(n, o)
                        }, e["AT_LEAST_ONE_SEP" + s] = function (o) {
                            this.atLeastOneSepFirstInternalRecord(n, o)
                        }
                    }, i = 0; i < 10; i++) r(i);
                    e.consume = function (n, s, o) {
                        return this.consumeInternalRecord(s, n, o)
                    }, e.subrule = function (n, s, o) {
                        return this.subruleInternalRecord(s, n, o)
                    }, e.option = function (n, s) {
                        return this.optionInternalRecord(s, n)
                    }, e.or = function (n, s) {
                        return this.orInternalRecord(s, n)
                    }, e.many = function (n, s) {
                        this.manyInternalRecord(n, s)
                    }, e.atLeastOne = function (n, s) {
                        this.atLeastOneInternalRecord(n, s)
                    }, e.ACTION = e.ACTION_RECORD, e.BACKTRACK = e.BACKTRACK_RECORD, e.LA = e.LA_RECORD
                })
            }, t.prototype.disableRecording = function () {
                var e = this;
                this.RECORDING_PHASE = !1, this.TRACE_INIT("Deleting Recording methods", function () {
                    for (var r = 0; r < 10; r++) {
                        var i = r > 0 ? r : "";
                        delete e["CONSUME" + i], delete e["SUBRULE" + i], delete e["OPTION" + i], delete e["OR" + i], delete e["MANY" + i], delete e["MANY_SEP" + i], delete e["AT_LEAST_ONE" + i], delete e["AT_LEAST_ONE_SEP" + i]
                    }
                    delete e.consume, delete e.subrule, delete e.option, delete e.or, delete e.many, delete e.atLeastOne, delete e.ACTION, delete e.BACKTRACK, delete e.LA
                })
            }, t.prototype.ACTION_RECORD = function (e) {
            }, t.prototype.BACKTRACK_RECORD = function (e, r) {
                return function () {
                    return !0
                }
            }, t.prototype.LA_RECORD = function (e) {
                return uwe.END_OF_FILE
            }, t.prototype.topLevelRuleRecord = function (e, r) {
                try {
                    var i = new Ho.Rule({definition: [], name: e});
                    return i.name = e, this.recordingProdStack.push(i), r.call(this), this.recordingProdStack.pop(), i
                } catch (n) {
                    if (n.KNOWN_RECORDER_ERROR !== !0) try {
                        n.message = n.message + `
	 This error was thrown during the "grammar recording phase" For more info see:
	https://chevrotain.io/docs/guide/internals.html#grammar-recording`
                    } catch (s) {
                        throw n
                    }
                    throw n
                }
            }, t.prototype.optionInternalRecord = function (e, r) {
                return qp.call(this, Ho.Option, e, r)
            }, t.prototype.atLeastOneInternalRecord = function (e, r) {
                qp.call(this, Ho.RepetitionMandatory, r, e)
            }, t.prototype.atLeastOneSepFirstInternalRecord = function (e, r) {
                qp.call(this, Ho.RepetitionMandatoryWithSeparator, r, e, nY)
            }, t.prototype.manyInternalRecord = function (e, r) {
                qp.call(this, Ho.Repetition, r, e)
            }, t.prototype.manySepFirstInternalRecord = function (e, r) {
                qp.call(this, Ho.RepetitionWithSeparator, r, e, nY)
            }, t.prototype.orInternalRecord = function (e, r) {
                return hwe.call(this, e, r)
            }, t.prototype.subruleInternalRecord = function (e, r, i) {
                if (py(r), !e || (0, Sn.has)(e, "ruleName") === !1) {
                    var n = new Error("<SUBRULE" + AY(r) + "> argument is invalid" + (" expecting a Parser method reference but got: <" + JSON.stringify(e) + ">") + (`
 inside top level rule: <` + this.recordingProdStack[0].name + ">"));
                    throw n.KNOWN_RECORDER_ERROR = !0, n
                }
                var s = (0, Sn.peek)(this.recordingProdStack), o = e.ruleName, a = new Ho.NonTerminal({
                    idx: r,
                    nonTerminalName: o,
                    label: i == null ? void 0 : i.LABEL,
                    referencedRule: void 0
                });
                return s.definition.push(a), this.outputCst ? fwe : hy
            }, t.prototype.consumeInternalRecord = function (e, r, i) {
                if (py(r), !(0, rY.hasShortKeyProperty)(e)) {
                    var n = new Error("<CONSUME" + AY(r) + "> argument is invalid" + (" expecting a TokenType reference but got: <" + JSON.stringify(e) + ">") + (`
 inside top level rule: <` + this.recordingProdStack[0].name + ">"));
                    throw n.KNOWN_RECORDER_ERROR = !0, n
                }
                var s = (0, Sn.peek)(this.recordingProdStack),
                    o = new Ho.Terminal({idx: r, terminalType: e, label: i == null ? void 0 : i.LABEL});
                return s.definition.push(o), aY
            }, t
        }();
        fy.GastRecorder = pwe;

        function qp(t, e, r, i) {
            i === void 0 && (i = !1), py(r);
            var n = (0, Sn.peek)(this.recordingProdStack), s = (0, Sn.isFunction)(e) ? e : e.DEF,
                o = new t({definition: [], idx: r});
            return i && (o.separator = e.SEP), (0, Sn.has)(e, "MAX_LOOKAHEAD") && (o.maxLookahead = e.MAX_LOOKAHEAD), this.recordingProdStack.push(o), s.call(this), n.definition.push(o), this.recordingProdStack.pop(), hy
        }

        function hwe(t, e) {
            var r = this;
            py(e);
            var i = (0, Sn.peek)(this.recordingProdStack), n = (0, Sn.isArray)(t) === !1, s = n === !1 ? t : t.DEF,
                o = new Ho.Alternation({definition: [], idx: e, ignoreAmbiguities: n && t.IGNORE_AMBIGUITIES === !0});
            (0, Sn.has)(t, "MAX_LOOKAHEAD") && (o.maxLookahead = t.MAX_LOOKAHEAD);
            var a = (0, Sn.some)(s, function (l) {
                return (0, Sn.isFunction)(l.GATE)
            });
            return o.hasPredicates = a, i.definition.push(o), (0, Sn.forEach)(s, function (l) {
                var c = new Ho.Alternative({definition: []});
                o.definition.push(c), (0, Sn.has)(l, "IGNORE_AMBIGUITIES") ? c.ignoreAmbiguities = l.IGNORE_AMBIGUITIES : (0, Sn.has)(l, "GATE") && (c.ignoreAmbiguities = !0), r.recordingProdStack.push(c), l.ALT.call(r), r.recordingProdStack.pop()
            }), hy
        }

        function AY(t) {
            return t === 0 ? "" : "" + t
        }

        function py(t) {
            if (t < 0 || t > sY) {
                var e = new Error("Invalid DSL Method idx value: <" + t + `>
	` + ("Idx value must be a none negative value smaller than " + (sY + 1)));
                throw e.KNOWN_RECORDER_ERROR = !0, e
            }
        }
    });
    var uY = w(dy => {
        "use strict";
        Object.defineProperty(dy, "__esModule", {value: !0});
        dy.PerformanceTracer = void 0;
        var cY = Yt(), dwe = Zn(), Cwe = function () {
            function t() {
            }

            return t.prototype.initPerformanceTracer = function (e) {
                if ((0, cY.has)(e, "traceInitPerf")) {
                    var r = e.traceInitPerf, i = typeof r == "number";
                    this.traceInitMaxIdent = i ? r : Infinity, this.traceInitPerf = i ? r > 0 : r
                } else this.traceInitMaxIdent = 0, this.traceInitPerf = dwe.DEFAULT_PARSER_CONFIG.traceInitPerf;
                this.traceInitIndent = -1
            }, t.prototype.TRACE_INIT = function (e, r) {
                if (this.traceInitPerf === !0) {
                    this.traceInitIndent++;
                    var i = new Array(this.traceInitIndent + 1).join("	");
                    this.traceInitIndent < this.traceInitMaxIdent && console.log(i + "--> <" + e + ">");
                    var n = (0, cY.timer)(r), s = n.time, o = n.value, a = s > 10 ? console.warn : console.log;
                    return this.traceInitIndent < this.traceInitMaxIdent && a(i + "<-- <" + e + "> time: " + s + "ms"), this.traceInitIndent--, o
                } else return r()
            }, t
        }();
        dy.PerformanceTracer = Cwe
    });
    var gY = w(Cy => {
        "use strict";
        Object.defineProperty(Cy, "__esModule", {value: !0});
        Cy.applyMixins = void 0;

        function mwe(t, e) {
            e.forEach(function (r) {
                var i = r.prototype;
                Object.getOwnPropertyNames(i).forEach(function (n) {
                    if (n !== "constructor") {
                        var s = Object.getOwnPropertyDescriptor(i, n);
                        s && (s.get || s.set) ? Object.defineProperty(t.prototype, n, s) : t.prototype[n] = r.prototype[n]
                    }
                })
            })
        }

        Cy.applyMixins = mwe
    });
    var Zn = w(Er => {
        "use strict";
        var fY = Er && Er.__extends || function () {
            var t = function (e, r) {
                return t = Object.setPrototypeOf || {__proto__: []} instanceof Array && function (i, n) {
                    i.__proto__ = n
                } || function (i, n) {
                    for (var s in n) Object.prototype.hasOwnProperty.call(n, s) && (i[s] = n[s])
                }, t(e, r)
            };
            return function (e, r) {
                if (typeof r != "function" && r !== null) throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
                t(e, r);

                function i() {
                    this.constructor = e
                }

                e.prototype = r === null ? Object.create(r) : (i.prototype = r.prototype, new i)
            }
        }();
        Object.defineProperty(Er, "__esModule", {value: !0});
        Er.EmbeddedActionsParser = Er.CstParser = Er.Parser = Er.EMPTY_ALT = Er.ParserDefinitionErrorType = Er.DEFAULT_RULE_CONFIG = Er.DEFAULT_PARSER_CONFIG = Er.END_OF_FILE = void 0;
        var an = Yt(), Ewe = ZG(), hY = WA(), pY = Op(), dY = bj(), Iwe = aS(), ywe = Rj(), wwe = Gj(), Bwe = Yj(),
            bwe = Jj(), Qwe = Vj(), vwe = Zj(), Swe = tY(), kwe = lY(), xwe = uY(), Pwe = gY();
        Er.END_OF_FILE = (0, hY.createTokenInstance)(hY.EOF, "", NaN, NaN, NaN, NaN, NaN, NaN);
        Object.freeze(Er.END_OF_FILE);
        Er.DEFAULT_PARSER_CONFIG = Object.freeze({
            recoveryEnabled: !1,
            maxLookahead: 3,
            dynamicTokensEnabled: !1,
            outputCst: !0,
            errorMessageProvider: pY.defaultParserErrorProvider,
            nodeLocationTracking: "none",
            traceInitPerf: !1,
            skipValidations: !1
        });
        Er.DEFAULT_RULE_CONFIG = Object.freeze({
            recoveryValueFunc: function () {
            }, resyncEnabled: !0
        });
        var Dwe;
        (function (t) {
            t[t.INVALID_RULE_NAME = 0] = "INVALID_RULE_NAME", t[t.DUPLICATE_RULE_NAME = 1] = "DUPLICATE_RULE_NAME", t[t.INVALID_RULE_OVERRIDE = 2] = "INVALID_RULE_OVERRIDE", t[t.DUPLICATE_PRODUCTIONS = 3] = "DUPLICATE_PRODUCTIONS", t[t.UNRESOLVED_SUBRULE_REF = 4] = "UNRESOLVED_SUBRULE_REF", t[t.LEFT_RECURSION = 5] = "LEFT_RECURSION", t[t.NONE_LAST_EMPTY_ALT = 6] = "NONE_LAST_EMPTY_ALT", t[t.AMBIGUOUS_ALTS = 7] = "AMBIGUOUS_ALTS", t[t.CONFLICT_TOKENS_RULES_NAMESPACE = 8] = "CONFLICT_TOKENS_RULES_NAMESPACE", t[t.INVALID_TOKEN_NAME = 9] = "INVALID_TOKEN_NAME", t[t.NO_NON_EMPTY_LOOKAHEAD = 10] = "NO_NON_EMPTY_LOOKAHEAD", t[t.AMBIGUOUS_PREFIX_ALTS = 11] = "AMBIGUOUS_PREFIX_ALTS", t[t.TOO_MANY_ALTS = 12] = "TOO_MANY_ALTS"
        })(Dwe = Er.ParserDefinitionErrorType || (Er.ParserDefinitionErrorType = {}));

        function Rwe(t) {
            return t === void 0 && (t = void 0), function () {
                return t
            }
        }

        Er.EMPTY_ALT = Rwe;
        var my = function () {
            function t(e, r) {
                this.definitionErrors = [], this.selfAnalysisDone = !1;
                var i = this;
                if (i.initErrorHandler(r), i.initLexerAdapter(), i.initLooksAhead(r), i.initRecognizerEngine(e, r), i.initRecoverable(r), i.initTreeBuilder(r), i.initContentAssist(), i.initGastRecorder(r), i.initPerformanceTracer(r), (0, an.has)(r, "ignoredIssues")) throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
	Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
	See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
	For further details.`);
                this.skipValidations = (0, an.has)(r, "skipValidations") ? r.skipValidations : Er.DEFAULT_PARSER_CONFIG.skipValidations
            }

            return t.performSelfAnalysis = function (e) {
                throw Error("The **static** `performSelfAnalysis` method has been deprecated.	\nUse the **instance** method with the same name instead.")
            }, t.prototype.performSelfAnalysis = function () {
                var e = this;
                this.TRACE_INIT("performSelfAnalysis", function () {
                    var r;
                    e.selfAnalysisDone = !0;
                    var i = e.className;
                    e.TRACE_INIT("toFastProps", function () {
                        (0, an.toFastProperties)(e)
                    }), e.TRACE_INIT("Grammar Recording", function () {
                        try {
                            e.enableRecording(), (0, an.forEach)(e.definedRulesNames, function (s) {
                                var o = e[s], a = o.originalGrammarAction, l = void 0;
                                e.TRACE_INIT(s + " Rule", function () {
                                    l = e.topLevelRuleRecord(s, a)
                                }), e.gastProductionsCache[s] = l
                            })
                        } finally {
                            e.disableRecording()
                        }
                    });
                    var n = [];
                    if (e.TRACE_INIT("Grammar Resolving", function () {
                        n = (0, dY.resolveGrammar)({rules: (0, an.values)(e.gastProductionsCache)}), e.definitionErrors = e.definitionErrors.concat(n)
                    }), e.TRACE_INIT("Grammar Validations", function () {
                        if ((0, an.isEmpty)(n) && e.skipValidations === !1) {
                            var s = (0, dY.validateGrammar)({
                                rules: (0, an.values)(e.gastProductionsCache),
                                maxLookahead: e.maxLookahead,
                                tokenTypes: (0, an.values)(e.tokensMap),
                                errMsgProvider: pY.defaultGrammarValidatorErrorProvider,
                                grammarName: i
                            });
                            e.definitionErrors = e.definitionErrors.concat(s)
                        }
                    }), (0, an.isEmpty)(e.definitionErrors) && (e.recoveryEnabled && e.TRACE_INIT("computeAllProdsFollows", function () {
                        var s = (0, Ewe.computeAllProdsFollows)((0, an.values)(e.gastProductionsCache));
                        e.resyncFollows = s
                    }), e.TRACE_INIT("ComputeLookaheadFunctions", function () {
                        e.preComputeLookaheadFunctions((0, an.values)(e.gastProductionsCache))
                    })), !t.DEFER_DEFINITION_ERRORS_HANDLING && !(0, an.isEmpty)(e.definitionErrors)) throw r = (0, an.map)(e.definitionErrors, function (s) {
                        return s.message
                    }), new Error(`Parser Definition Errors detected:
 ` + r.join(`
-------------------------------
`))
                })
            }, t.DEFER_DEFINITION_ERRORS_HANDLING = !1, t
        }();
        Er.Parser = my;
        (0, Pwe.applyMixins)(my, [Iwe.Recoverable, ywe.LooksAhead, wwe.TreeBuilder, Bwe.LexerAdapter, Qwe.RecognizerEngine, bwe.RecognizerApi, vwe.ErrorHandler, Swe.ContentAssist, kwe.GastRecorder, xwe.PerformanceTracer]);
        var Fwe = function (t) {
            fY(e, t);

            function e(r, i) {
                i === void 0 && (i = Er.DEFAULT_PARSER_CONFIG);
                var n = this, s = (0, an.cloneObj)(i);
                return s.outputCst = !0, n = t.call(this, r, s) || this, n
            }

            return e
        }(my);
        Er.CstParser = Fwe;
        var Nwe = function (t) {
            fY(e, t);

            function e(r, i) {
                i === void 0 && (i = Er.DEFAULT_PARSER_CONFIG);
                var n = this, s = (0, an.cloneObj)(i);
                return s.outputCst = !1, n = t.call(this, r, s) || this, n
            }

            return e
        }(my);
        Er.EmbeddedActionsParser = Nwe
    });
    var mY = w(Ey => {
        "use strict";
        Object.defineProperty(Ey, "__esModule", {value: !0});
        Ey.createSyntaxDiagramsCode = void 0;
        var CY = Rv();

        function Lwe(t, e) {
            var r = e === void 0 ? {} : e, i = r.resourceBase,
                n = i === void 0 ? "https://unpkg.com/chevrotain@" + CY.VERSION + "/diagrams/" : i, s = r.css,
                o = s === void 0 ? "https://unpkg.com/chevrotain@" + CY.VERSION + "/diagrams/diagrams.css" : s, a = `
<!-- This is a generated file -->
<!DOCTYPE html>
<meta charset="utf-8">
<style>
  body {
    background-color: hsl(30, 20%, 95%)
  }
</style>

`, l = `
<link rel='stylesheet' href='` + o + `'>
`, c = `
<script src='` + n + `vendor/railroad-diagrams.js'></script>
<script src='` + n + `src/diagrams_builder.js'></script>
<script src='` + n + `src/diagrams_behavior.js'></script>
<script src='` + n + `src/main.js'></script>
`, u = `
<div id="diagrams" align="center"></div>    
`, g = `
<script>
    window.serializedGrammar = ` + JSON.stringify(t, null, "  ") + `;
</script>
`, f = `
<script>
    var diagramsDiv = document.getElementById("diagrams");
    main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv);
</script>
`;
            return a + l + c + u + g + f
        }

        Ey.createSyntaxDiagramsCode = Lwe
    });
    var yY = w(Ve => {
        "use strict";
        Object.defineProperty(Ve, "__esModule", {value: !0});
        Ve.Parser = Ve.createSyntaxDiagramsCode = Ve.clearCache = Ve.GAstVisitor = Ve.serializeProduction = Ve.serializeGrammar = Ve.Terminal = Ve.Rule = Ve.RepetitionWithSeparator = Ve.RepetitionMandatoryWithSeparator = Ve.RepetitionMandatory = Ve.Repetition = Ve.Option = Ve.NonTerminal = Ve.Alternative = Ve.Alternation = Ve.defaultLexerErrorProvider = Ve.NoViableAltException = Ve.NotAllInputParsedException = Ve.MismatchedTokenException = Ve.isRecognitionException = Ve.EarlyExitException = Ve.defaultParserErrorProvider = Ve.tokenName = Ve.tokenMatcher = Ve.tokenLabel = Ve.EOF = Ve.createTokenInstance = Ve.createToken = Ve.LexerDefinitionErrorType = Ve.Lexer = Ve.EMPTY_ALT = Ve.ParserDefinitionErrorType = Ve.EmbeddedActionsParser = Ve.CstParser = Ve.VERSION = void 0;
        var Twe = Rv();
        Object.defineProperty(Ve, "VERSION", {
            enumerable: !0, get: function () {
                return Twe.VERSION
            }
        });
        var Iy = Zn();
        Object.defineProperty(Ve, "CstParser", {
            enumerable: !0, get: function () {
                return Iy.CstParser
            }
        });
        Object.defineProperty(Ve, "EmbeddedActionsParser", {
            enumerable: !0, get: function () {
                return Iy.EmbeddedActionsParser
            }
        });
        Object.defineProperty(Ve, "ParserDefinitionErrorType", {
            enumerable: !0, get: function () {
                return Iy.ParserDefinitionErrorType
            }
        });
        Object.defineProperty(Ve, "EMPTY_ALT", {
            enumerable: !0, get: function () {
                return Iy.EMPTY_ALT
            }
        });
        var EY = Rp();
        Object.defineProperty(Ve, "Lexer", {
            enumerable: !0, get: function () {
                return EY.Lexer
            }
        });
        Object.defineProperty(Ve, "LexerDefinitionErrorType", {
            enumerable: !0, get: function () {
                return EY.LexerDefinitionErrorType
            }
        });
        var Bg = WA();
        Object.defineProperty(Ve, "createToken", {
            enumerable: !0, get: function () {
                return Bg.createToken
            }
        });
        Object.defineProperty(Ve, "createTokenInstance", {
            enumerable: !0, get: function () {
                return Bg.createTokenInstance
            }
        });
        Object.defineProperty(Ve, "EOF", {
            enumerable: !0, get: function () {
                return Bg.EOF
            }
        });
        Object.defineProperty(Ve, "tokenLabel", {
            enumerable: !0, get: function () {
                return Bg.tokenLabel
            }
        });
        Object.defineProperty(Ve, "tokenMatcher", {
            enumerable: !0, get: function () {
                return Bg.tokenMatcher
            }
        });
        Object.defineProperty(Ve, "tokenName", {
            enumerable: !0, get: function () {
                return Bg.tokenName
            }
        });
        var Owe = Op();
        Object.defineProperty(Ve, "defaultParserErrorProvider", {
            enumerable: !0, get: function () {
                return Owe.defaultParserErrorProvider
            }
        });
        var Jp = Ig();
        Object.defineProperty(Ve, "EarlyExitException", {
            enumerable: !0, get: function () {
                return Jp.EarlyExitException
            }
        });
        Object.defineProperty(Ve, "isRecognitionException", {
            enumerable: !0, get: function () {
                return Jp.isRecognitionException
            }
        });
        Object.defineProperty(Ve, "MismatchedTokenException", {
            enumerable: !0, get: function () {
                return Jp.MismatchedTokenException
            }
        });
        Object.defineProperty(Ve, "NotAllInputParsedException", {
            enumerable: !0, get: function () {
                return Jp.NotAllInputParsedException
            }
        });
        Object.defineProperty(Ve, "NoViableAltException", {
            enumerable: !0, get: function () {
                return Jp.NoViableAltException
            }
        });
        var Mwe = Gv();
        Object.defineProperty(Ve, "defaultLexerErrorProvider", {
            enumerable: !0, get: function () {
                return Mwe.defaultLexerErrorProvider
            }
        });
        var Go = bn();
        Object.defineProperty(Ve, "Alternation", {
            enumerable: !0, get: function () {
                return Go.Alternation
            }
        });
        Object.defineProperty(Ve, "Alternative", {
            enumerable: !0, get: function () {
                return Go.Alternative
            }
        });
        Object.defineProperty(Ve, "NonTerminal", {
            enumerable: !0, get: function () {
                return Go.NonTerminal
            }
        });
        Object.defineProperty(Ve, "Option", {
            enumerable: !0, get: function () {
                return Go.Option
            }
        });
        Object.defineProperty(Ve, "Repetition", {
            enumerable: !0, get: function () {
                return Go.Repetition
            }
        });
        Object.defineProperty(Ve, "RepetitionMandatory", {
            enumerable: !0, get: function () {
                return Go.RepetitionMandatory
            }
        });
        Object.defineProperty(Ve, "RepetitionMandatoryWithSeparator", {
            enumerable: !0, get: function () {
                return Go.RepetitionMandatoryWithSeparator
            }
        });
        Object.defineProperty(Ve, "RepetitionWithSeparator", {
            enumerable: !0, get: function () {
                return Go.RepetitionWithSeparator
            }
        });
        Object.defineProperty(Ve, "Rule", {
            enumerable: !0, get: function () {
                return Go.Rule
            }
        });
        Object.defineProperty(Ve, "Terminal", {
            enumerable: !0, get: function () {
                return Go.Terminal
            }
        });
        var IY = bn();
        Object.defineProperty(Ve, "serializeGrammar", {
            enumerable: !0, get: function () {
                return IY.serializeGrammar
            }
        });
        Object.defineProperty(Ve, "serializeProduction", {
            enumerable: !0, get: function () {
                return IY.serializeProduction
            }
        });
        var Kwe = dg();
        Object.defineProperty(Ve, "GAstVisitor", {
            enumerable: !0, get: function () {
                return Kwe.GAstVisitor
            }
        });

        function Uwe() {
            console.warn(`The clearCache function was 'soft' removed from the Chevrotain API.
	 It performs no action other than printing this message.
	 Please avoid using it as it will be completely removed in the future`)
        }

        Ve.clearCache = Uwe;
        var Hwe = mY();
        Object.defineProperty(Ve, "createSyntaxDiagramsCode", {
            enumerable: !0, get: function () {
                return Hwe.createSyntaxDiagramsCode
            }
        });
        var Gwe = function () {
            function t() {
                throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead.	
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)
            }

            return t
        }();
        Ve.Parser = Gwe
    });
    var bY = w((_tt, wY) => {
        var yy = yY(), Ya = yy.createToken, BY = yy.tokenMatcher, fS = yy.Lexer, jwe = yy.EmbeddedActionsParser;
        wY.exports = t => {
            let e = Ya({name: "LogicalOperator", pattern: fS.NA}), r = Ya({name: "Or", pattern: /\|/, categories: e}),
                i = Ya({name: "Xor", pattern: /\^/, categories: e}), n = Ya({name: "And", pattern: /&/, categories: e}),
                s = Ya({name: "Not", pattern: /!/}), o = Ya({name: "LParen", pattern: /\(/}),
                a = Ya({name: "RParen", pattern: /\)/}), l = Ya({name: "Query", pattern: t}),
                u = [Ya({name: "WhiteSpace", pattern: /\s+/, group: fS.SKIPPED}), r, i, n, o, a, s, e, l],
                g = new fS(u);

            class f extends jwe {
                constructor(p) {
                    super(u);
                    this.RULE("expression", () => this.SUBRULE(this.logicalExpression)), this.RULE("logicalExpression", () => {
                        let y = this.SUBRULE(this.atomicExpression);
                        return this.MANY(() => {
                            let b = y, S = this.CONSUME(e), k = this.SUBRULE2(this.atomicExpression);
                            BY(S, r) ? y = T => b(T) || k(T) : BY(S, i) ? y = T => !!(b(T) ^ k(T)) : y = T => b(T) && k(T)
                        }), y
                    }), this.RULE("atomicExpression", () => this.OR([{ALT: () => this.SUBRULE(this.parenthesisExpression)}, {
                        ALT: () => {
                            let {image: m} = this.CONSUME(l);
                            return y => y(m)
                        }
                    }, {
                        ALT: () => {
                            this.CONSUME(s);
                            let m = this.SUBRULE(this.atomicExpression);
                            return y => !m(y)
                        }
                    }])), this.RULE("parenthesisExpression", () => {
                        let m;
                        return this.CONSUME(o), m = this.SUBRULE(this.expression), this.CONSUME(a), m
                    }), this.performSelfAnalysis()
                }
            }

            return {TinylogicLexer: g, TinylogicParser: f}
        }
    });
    var QY = w(wy => {
        var Ywe = bY();
        wy.makeParser = (t = /[a-z]+/) => {
            let {TinylogicLexer: e, TinylogicParser: r} = Ywe(t), i = new r;
            return (n, s) => {
                let o = e.tokenize(n);
                return i.input = o.tokens, i.expression()(s)
            }
        };
        wy.parse = wy.makeParser()
    });
    var SY = w((Xtt, vY) => {
        "use strict";
        vY.exports = {
            aliceblue: [240, 248, 255],
            antiquewhite: [250, 235, 215],
            aqua: [0, 255, 255],
            aquamarine: [127, 255, 212],
            azure: [240, 255, 255],
            beige: [245, 245, 220],
            bisque: [255, 228, 196],
            black: [0, 0, 0],
            blanchedalmond: [255, 235, 205],
            blue: [0, 0, 255],
            blueviolet: [138, 43, 226],
            brown: [165, 42, 42],
            burlywood: [222, 184, 135],
            cadetblue: [95, 158, 160],
            chartreuse: [127, 255, 0],
            chocolate: [210, 105, 30],
            coral: [255, 127, 80],
            cornflowerblue: [100, 149, 237],
            cornsilk: [255, 248, 220],
            crimson: [220, 20, 60],
            cyan: [0, 255, 255],
            darkblue: [0, 0, 139],
            darkcyan: [0, 139, 139],
            darkgoldenrod: [184, 134, 11],
            darkgray: [169, 169, 169],
            darkgreen: [0, 100, 0],
            darkgrey: [169, 169, 169],
            darkkhaki: [189, 183, 107],
            darkmagenta: [139, 0, 139],
            darkolivegreen: [85, 107, 47],
            darkorange: [255, 140, 0],
            darkorchid: [153, 50, 204],
            darkred: [139, 0, 0],
            darksalmon: [233, 150, 122],
            darkseagreen: [143, 188, 143],
            darkslateblue: [72, 61, 139],
            darkslategray: [47, 79, 79],
            darkslategrey: [47, 79, 79],
            darkturquoise: [0, 206, 209],
            darkviolet: [148, 0, 211],
            deeppink: [255, 20, 147],
            deepskyblue: [0, 191, 255],
            dimgray: [105, 105, 105],
            dimgrey: [105, 105, 105],
            dodgerblue: [30, 144, 255],
            firebrick: [178, 34, 34],
            floralwhite: [255, 250, 240],
            forestgreen: [34, 139, 34],
            fuchsia: [255, 0, 255],
            gainsboro: [220, 220, 220],
            ghostwhite: [248, 248, 255],
            gold: [255, 215, 0],
            goldenrod: [218, 165, 32],
            gray: [128, 128, 128],
            green: [0, 128, 0],
            greenyellow: [173, 255, 47],
            grey: [128, 128, 128],
            honeydew: [240, 255, 240],
            hotpink: [255, 105, 180],
            indianred: [205, 92, 92],
            indigo: [75, 0, 130],
            ivory: [255, 255, 240],
            khaki: [240, 230, 140],
            lavender: [230, 230, 250],
            lavenderblush: [255, 240, 245],
            lawngreen: [124, 252, 0],
            lemonchiffon: [255, 250, 205],
            lightblue: [173, 216, 230],
            lightcoral: [240, 128, 128],
            lightcyan: [224, 255, 255],
            lightgoldenrodyellow: [250, 250, 210],
            lightgray: [211, 211, 211],
            lightgreen: [144, 238, 144],
            lightgrey: [211, 211, 211],
            lightpink: [255, 182, 193],
            lightsalmon: [255, 160, 122],
            lightseagreen: [32, 178, 170],
            lightskyblue: [135, 206, 250],
            lightslategray: [119, 136, 153],
            lightslategrey: [119, 136, 153],
            lightsteelblue: [176, 196, 222],
            lightyellow: [255, 255, 224],
            lime: [0, 255, 0],
            limegreen: [50, 205, 50],
            linen: [250, 240, 230],
            magenta: [255, 0, 255],
            maroon: [128, 0, 0],
            mediumaquamarine: [102, 205, 170],
            mediumblue: [0, 0, 205],
            mediumorchid: [186, 85, 211],
            mediumpurple: [147, 112, 219],
            mediumseagreen: [60, 179, 113],
            mediumslateblue: [123, 104, 238],
            mediumspringgreen: [0, 250, 154],
            mediumturquoise: [72, 209, 204],
            mediumvioletred: [199, 21, 133],
            midnightblue: [25, 25, 112],
            mintcream: [245, 255, 250],
            mistyrose: [255, 228, 225],
            moccasin: [255, 228, 181],
            navajowhite: [255, 222, 173],
            navy: [0, 0, 128],
            oldlace: [253, 245, 230],
            olive: [128, 128, 0],
            olivedrab: [107, 142, 35],
            orange: [255, 165, 0],
            orangered: [255, 69, 0],
            orchid: [218, 112, 214],
            palegoldenrod: [238, 232, 170],
            palegreen: [152, 251, 152],
            paleturquoise: [175, 238, 238],
            palevioletred: [219, 112, 147],
            papayawhip: [255, 239, 213],
            peachpuff: [255, 218, 185],
            peru: [205, 133, 63],
            pink: [255, 192, 203],
            plum: [221, 160, 221],
            powderblue: [176, 224, 230],
            purple: [128, 0, 128],
            rebeccapurple: [102, 51, 153],
            red: [255, 0, 0],
            rosybrown: [188, 143, 143],
            royalblue: [65, 105, 225],
            saddlebrown: [139, 69, 19],
            salmon: [250, 128, 114],
            sandybrown: [244, 164, 96],
            seagreen: [46, 139, 87],
            seashell: [255, 245, 238],
            sienna: [160, 82, 45],
            silver: [192, 192, 192],
            skyblue: [135, 206, 235],
            slateblue: [106, 90, 205],
            slategray: [112, 128, 144],
            slategrey: [112, 128, 144],
            snow: [255, 250, 250],
            springgreen: [0, 255, 127],
            steelblue: [70, 130, 180],
            tan: [210, 180, 140],
            teal: [0, 128, 128],
            thistle: [216, 191, 216],
            tomato: [255, 99, 71],
            turquoise: [64, 224, 208],
            violet: [238, 130, 238],
            wheat: [245, 222, 179],
            white: [255, 255, 255],
            whitesmoke: [245, 245, 245],
            yellow: [255, 255, 0],
            yellowgreen: [154, 205, 50]
        }
    });
    var hS = w((Ztt, kY) => {
        var Wp = SY(), xY = {};
        for (let t of Object.keys(Wp)) xY[Wp[t]] = t;
        var at = {
            rgb: {channels: 3, labels: "rgb"},
            hsl: {channels: 3, labels: "hsl"},
            hsv: {channels: 3, labels: "hsv"},
            hwb: {channels: 3, labels: "hwb"},
            cmyk: {channels: 4, labels: "cmyk"},
            xyz: {channels: 3, labels: "xyz"},
            lab: {channels: 3, labels: "lab"},
            lch: {channels: 3, labels: "lch"},
            hex: {channels: 1, labels: ["hex"]},
            keyword: {channels: 1, labels: ["keyword"]},
            ansi16: {channels: 1, labels: ["ansi16"]},
            ansi256: {channels: 1, labels: ["ansi256"]},
            hcg: {channels: 3, labels: ["h", "c", "g"]},
            apple: {channels: 3, labels: ["r16", "g16", "b16"]},
            gray: {channels: 1, labels: ["gray"]}
        };
        kY.exports = at;
        for (let t of Object.keys(at)) {
            if (!("channels" in at[t])) throw new Error("missing channels property: " + t);
            if (!("labels" in at[t])) throw new Error("missing channel labels property: " + t);
            if (at[t].labels.length !== at[t].channels) throw new Error("channel and label counts mismatch: " + t);
            let {channels: e, labels: r} = at[t];
            delete at[t].channels, delete at[t].labels, Object.defineProperty(at[t], "channels", {value: e}), Object.defineProperty(at[t], "labels", {value: r})
        }
        at.rgb.hsl = function (t) {
            let e = t[0] / 255, r = t[1] / 255, i = t[2] / 255, n = Math.min(e, r, i), s = Math.max(e, r, i), o = s - n,
                a, l;
            s === n ? a = 0 : e === s ? a = (r - i) / o : r === s ? a = 2 + (i - e) / o : i === s && (a = 4 + (e - r) / o), a = Math.min(a * 60, 360), a < 0 && (a += 360);
            let c = (n + s) / 2;
            return s === n ? l = 0 : c <= .5 ? l = o / (s + n) : l = o / (2 - s - n), [a, l * 100, c * 100]
        };
        at.rgb.hsv = function (t) {
            let e, r, i, n, s, o = t[0] / 255, a = t[1] / 255, l = t[2] / 255, c = Math.max(o, a, l),
                u = c - Math.min(o, a, l), g = function (f) {
                    return (c - f) / 6 / u + 1 / 2
                };
            return u === 0 ? (n = 0, s = 0) : (s = u / c, e = g(o), r = g(a), i = g(l), o === c ? n = i - r : a === c ? n = 1 / 3 + e - i : l === c && (n = 2 / 3 + r - e), n < 0 ? n += 1 : n > 1 && (n -= 1)), [n * 360, s * 100, c * 100]
        };
        at.rgb.hwb = function (t) {
            let e = t[0], r = t[1], i = t[2], n = at.rgb.hsl(t)[0], s = 1 / 255 * Math.min(e, Math.min(r, i));
            return i = 1 - 1 / 255 * Math.max(e, Math.max(r, i)), [n, s * 100, i * 100]
        };
        at.rgb.cmyk = function (t) {
            let e = t[0] / 255, r = t[1] / 255, i = t[2] / 255, n = Math.min(1 - e, 1 - r, 1 - i),
                s = (1 - e - n) / (1 - n) || 0, o = (1 - r - n) / (1 - n) || 0, a = (1 - i - n) / (1 - n) || 0;
            return [s * 100, o * 100, a * 100, n * 100]
        };

        function qwe(t, e) {
            return (t[0] - e[0]) ** 2 + (t[1] - e[1]) ** 2 + (t[2] - e[2]) ** 2
        }

        at.rgb.keyword = function (t) {
            let e = xY[t];
            if (e) return e;
            let r = Infinity, i;
            for (let n of Object.keys(Wp)) {
                let s = Wp[n], o = qwe(t, s);
                o < r && (r = o, i = n)
            }
            return i
        };
        at.keyword.rgb = function (t) {
            return Wp[t]
        };
        at.rgb.xyz = function (t) {
            let e = t[0] / 255, r = t[1] / 255, i = t[2] / 255;
            e = e > .04045 ? ((e + .055) / 1.055) ** 2.4 : e / 12.92, r = r > .04045 ? ((r + .055) / 1.055) ** 2.4 : r / 12.92, i = i > .04045 ? ((i + .055) / 1.055) ** 2.4 : i / 12.92;
            let n = e * .4124 + r * .3576 + i * .1805, s = e * .2126 + r * .7152 + i * .0722,
                o = e * .0193 + r * .1192 + i * .9505;
            return [n * 100, s * 100, o * 100]
        };
        at.rgb.lab = function (t) {
            let e = at.rgb.xyz(t), r = e[0], i = e[1], n = e[2];
            r /= 95.047, i /= 100, n /= 108.883, r = r > .008856 ? r ** (1 / 3) : 7.787 * r + 16 / 116, i = i > .008856 ? i ** (1 / 3) : 7.787 * i + 16 / 116, n = n > .008856 ? n ** (1 / 3) : 7.787 * n + 16 / 116;
            let s = 116 * i - 16, o = 500 * (r - i), a = 200 * (i - n);
            return [s, o, a]
        };
        at.hsl.rgb = function (t) {
            let e = t[0] / 360, r = t[1] / 100, i = t[2] / 100, n, s, o;
            if (r === 0) return o = i * 255, [o, o, o];
            i < .5 ? n = i * (1 + r) : n = i + r - i * r;
            let a = 2 * i - n, l = [0, 0, 0];
            for (let c = 0; c < 3; c++) s = e + 1 / 3 * -(c - 1), s < 0 && s++, s > 1 && s--, 6 * s < 1 ? o = a + (n - a) * 6 * s : 2 * s < 1 ? o = n : 3 * s < 2 ? o = a + (n - a) * (2 / 3 - s) * 6 : o = a, l[c] = o * 255;
            return l
        };
        at.hsl.hsv = function (t) {
            let e = t[0], r = t[1] / 100, i = t[2] / 100, n = r, s = Math.max(i, .01);
            i *= 2, r *= i <= 1 ? i : 2 - i, n *= s <= 1 ? s : 2 - s;
            let o = (i + r) / 2, a = i === 0 ? 2 * n / (s + n) : 2 * r / (i + r);
            return [e, a * 100, o * 100]
        };
        at.hsv.rgb = function (t) {
            let e = t[0] / 60, r = t[1] / 100, i = t[2] / 100, n = Math.floor(e) % 6, s = e - Math.floor(e),
                o = 255 * i * (1 - r), a = 255 * i * (1 - r * s), l = 255 * i * (1 - r * (1 - s));
            switch (i *= 255, n) {
                case 0:
                    return [i, l, o];
                case 1:
                    return [a, i, o];
                case 2:
                    return [o, i, l];
                case 3:
                    return [o, a, i];
                case 4:
                    return [l, o, i];
                case 5:
                    return [i, o, a]
            }
        };
        at.hsv.hsl = function (t) {
            let e = t[0], r = t[1] / 100, i = t[2] / 100, n = Math.max(i, .01), s, o;
            o = (2 - r) * i;
            let a = (2 - r) * n;
            return s = r * n, s /= a <= 1 ? a : 2 - a, s = s || 0, o /= 2, [e, s * 100, o * 100]
        };
        at.hwb.rgb = function (t) {
            let e = t[0] / 360, r = t[1] / 100, i = t[2] / 100, n = r + i, s;
            n > 1 && (r /= n, i /= n);
            let o = Math.floor(6 * e), a = 1 - i;
            s = 6 * e - o, (o & 1) != 0 && (s = 1 - s);
            let l = r + s * (a - r), c, u, g;
            switch (o) {
                default:
                case 6:
                case 0:
                    c = a, u = l, g = r;
                    break;
                case 1:
                    c = l, u = a, g = r;
                    break;
                case 2:
                    c = r, u = a, g = l;
                    break;
                case 3:
                    c = r, u = l, g = a;
                    break;
                case 4:
                    c = l, u = r, g = a;
                    break;
                case 5:
                    c = a, u = r, g = l;
                    break
            }
            return [c * 255, u * 255, g * 255]
        };
        at.cmyk.rgb = function (t) {
            let e = t[0] / 100, r = t[1] / 100, i = t[2] / 100, n = t[3] / 100, s = 1 - Math.min(1, e * (1 - n) + n),
                o = 1 - Math.min(1, r * (1 - n) + n), a = 1 - Math.min(1, i * (1 - n) + n);
            return [s * 255, o * 255, a * 255]
        };
        at.xyz.rgb = function (t) {
            let e = t[0] / 100, r = t[1] / 100, i = t[2] / 100, n, s, o;
            return n = e * 3.2406 + r * -1.5372 + i * -.4986, s = e * -.9689 + r * 1.8758 + i * .0415, o = e * .0557 + r * -.204 + i * 1.057, n = n > .0031308 ? 1.055 * n ** (1 / 2.4) - .055 : n * 12.92, s = s > .0031308 ? 1.055 * s ** (1 / 2.4) - .055 : s * 12.92, o = o > .0031308 ? 1.055 * o ** (1 / 2.4) - .055 : o * 12.92, n = Math.min(Math.max(0, n), 1), s = Math.min(Math.max(0, s), 1), o = Math.min(Math.max(0, o), 1), [n * 255, s * 255, o * 255]
        };
        at.xyz.lab = function (t) {
            let e = t[0], r = t[1], i = t[2];
            e /= 95.047, r /= 100, i /= 108.883, e = e > .008856 ? e ** (1 / 3) : 7.787 * e + 16 / 116, r = r > .008856 ? r ** (1 / 3) : 7.787 * r + 16 / 116, i = i > .008856 ? i ** (1 / 3) : 7.787 * i + 16 / 116;
            let n = 116 * r - 16, s = 500 * (e - r), o = 200 * (r - i);
            return [n, s, o]
        };
        at.lab.xyz = function (t) {
            let e = t[0], r = t[1], i = t[2], n, s, o;
            s = (e + 16) / 116, n = r / 500 + s, o = s - i / 200;
            let a = s ** 3, l = n ** 3, c = o ** 3;
            return s = a > .008856 ? a : (s - 16 / 116) / 7.787, n = l > .008856 ? l : (n - 16 / 116) / 7.787, o = c > .008856 ? c : (o - 16 / 116) / 7.787, n *= 95.047, s *= 100, o *= 108.883, [n, s, o]
        };
        at.lab.lch = function (t) {
            let e = t[0], r = t[1], i = t[2], n;
            n = Math.atan2(i, r) * 360 / 2 / Math.PI, n < 0 && (n += 360);
            let o = Math.sqrt(r * r + i * i);
            return [e, o, n]
        };
        at.lch.lab = function (t) {
            let e = t[0], r = t[1], n = t[2] / 360 * 2 * Math.PI, s = r * Math.cos(n), o = r * Math.sin(n);
            return [e, s, o]
        };
        at.rgb.ansi16 = function (t, e = null) {
            let [r, i, n] = t, s = e === null ? at.rgb.hsv(t)[2] : e;
            if (s = Math.round(s / 50), s === 0) return 30;
            let o = 30 + (Math.round(n / 255) << 2 | Math.round(i / 255) << 1 | Math.round(r / 255));
            return s === 2 && (o += 60), o
        };
        at.hsv.ansi16 = function (t) {
            return at.rgb.ansi16(at.hsv.rgb(t), t[2])
        };
        at.rgb.ansi256 = function (t) {
            let e = t[0], r = t[1], i = t[2];
            return e === r && r === i ? e < 8 ? 16 : e > 248 ? 231 : Math.round((e - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(e / 255 * 5) + 6 * Math.round(r / 255 * 5) + Math.round(i / 255 * 5)
        };
        at.ansi16.rgb = function (t) {
            let e = t % 10;
            if (e === 0 || e === 7) return t > 50 && (e += 3.5), e = e / 10.5 * 255, [e, e, e];
            let r = (~~(t > 50) + 1) * .5, i = (e & 1) * r * 255, n = (e >> 1 & 1) * r * 255,
                s = (e >> 2 & 1) * r * 255;
            return [i, n, s]
        };
        at.ansi256.rgb = function (t) {
            if (t >= 232) {
                let s = (t - 232) * 10 + 8;
                return [s, s, s]
            }
            t -= 16;
            let e, r = Math.floor(t / 36) / 5 * 255, i = Math.floor((e = t % 36) / 6) / 5 * 255, n = e % 6 / 5 * 255;
            return [r, i, n]
        };
        at.rgb.hex = function (t) {
            let r = (((Math.round(t[0]) & 255) << 16) + ((Math.round(t[1]) & 255) << 8) + (Math.round(t[2]) & 255)).toString(16).toUpperCase();
            return "000000".substring(r.length) + r
        };
        at.hex.rgb = function (t) {
            let e = t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
            if (!e) return [0, 0, 0];
            let r = e[0];
            e[0].length === 3 && (r = r.split("").map(a => a + a).join(""));
            let i = parseInt(r, 16), n = i >> 16 & 255, s = i >> 8 & 255, o = i & 255;
            return [n, s, o]
        };
        at.rgb.hcg = function (t) {
            let e = t[0] / 255, r = t[1] / 255, i = t[2] / 255, n = Math.max(Math.max(e, r), i),
                s = Math.min(Math.min(e, r), i), o = n - s, a, l;
            return o < 1 ? a = s / (1 - o) : a = 0, o <= 0 ? l = 0 : n === e ? l = (r - i) / o % 6 : n === r ? l = 2 + (i - e) / o : l = 4 + (e - r) / o, l /= 6, l %= 1, [l * 360, o * 100, a * 100]
        };
        at.hsl.hcg = function (t) {
            let e = t[1] / 100, r = t[2] / 100, i = r < .5 ? 2 * e * r : 2 * e * (1 - r), n = 0;
            return i < 1 && (n = (r - .5 * i) / (1 - i)), [t[0], i * 100, n * 100]
        };
        at.hsv.hcg = function (t) {
            let e = t[1] / 100, r = t[2] / 100, i = e * r, n = 0;
            return i < 1 && (n = (r - i) / (1 - i)), [t[0], i * 100, n * 100]
        };
        at.hcg.rgb = function (t) {
            let e = t[0] / 360, r = t[1] / 100, i = t[2] / 100;
            if (r === 0) return [i * 255, i * 255, i * 255];
            let n = [0, 0, 0], s = e % 1 * 6, o = s % 1, a = 1 - o, l = 0;
            switch (Math.floor(s)) {
                case 0:
                    n[0] = 1, n[1] = o, n[2] = 0;
                    break;
                case 1:
                    n[0] = a, n[1] = 1, n[2] = 0;
                    break;
                case 2:
                    n[0] = 0, n[1] = 1, n[2] = o;
                    break;
                case 3:
                    n[0] = 0, n[1] = a, n[2] = 1;
                    break;
                case 4:
                    n[0] = o, n[1] = 0, n[2] = 1;
                    break;
                default:
                    n[0] = 1, n[1] = 0, n[2] = a
            }
            return l = (1 - r) * i, [(r * n[0] + l) * 255, (r * n[1] + l) * 255, (r * n[2] + l) * 255]
        };
        at.hcg.hsv = function (t) {
            let e = t[1] / 100, r = t[2] / 100, i = e + r * (1 - e), n = 0;
            return i > 0 && (n = e / i), [t[0], n * 100, i * 100]
        };
        at.hcg.hsl = function (t) {
            let e = t[1] / 100, i = t[2] / 100 * (1 - e) + .5 * e, n = 0;
            return i > 0 && i < .5 ? n = e / (2 * i) : i >= .5 && i < 1 && (n = e / (2 * (1 - i))), [t[0], n * 100, i * 100]
        };
        at.hcg.hwb = function (t) {
            let e = t[1] / 100, r = t[2] / 100, i = e + r * (1 - e);
            return [t[0], (i - e) * 100, (1 - i) * 100]
        };
        at.hwb.hcg = function (t) {
            let e = t[1] / 100, r = t[2] / 100, i = 1 - r, n = i - e, s = 0;
            return n < 1 && (s = (i - n) / (1 - n)), [t[0], n * 100, s * 100]
        };
        at.apple.rgb = function (t) {
            return [t[0] / 65535 * 255, t[1] / 65535 * 255, t[2] / 65535 * 255]
        };
        at.rgb.apple = function (t) {
            return [t[0] / 255 * 65535, t[1] / 255 * 65535, t[2] / 255 * 65535]
        };
        at.gray.rgb = function (t) {
            return [t[0] / 100 * 255, t[0] / 100 * 255, t[0] / 100 * 255]
        };
        at.gray.hsl = function (t) {
            return [0, 0, t[0]]
        };
        at.gray.hsv = at.gray.hsl;
        at.gray.hwb = function (t) {
            return [0, 100, t[0]]
        };
        at.gray.cmyk = function (t) {
            return [0, 0, 0, t[0]]
        };
        at.gray.lab = function (t) {
            return [t[0], 0, 0]
        };
        at.gray.hex = function (t) {
            let e = Math.round(t[0] / 100 * 255) & 255, i = ((e << 16) + (e << 8) + e).toString(16).toUpperCase();
            return "000000".substring(i.length) + i
        };
        at.rgb.gray = function (t) {
            return [(t[0] + t[1] + t[2]) / 3 / 255 * 100]
        }
    });
    var DY = w(($tt, PY) => {
        var By = hS();

        function Jwe() {
            let t = {}, e = Object.keys(By);
            for (let r = e.length, i = 0; i < r; i++) t[e[i]] = {distance: -1, parent: null};
            return t
        }

        function Wwe(t) {
            let e = Jwe(), r = [t];
            for (e[t].distance = 0; r.length;) {
                let i = r.pop(), n = Object.keys(By[i]);
                for (let s = n.length, o = 0; o < s; o++) {
                    let a = n[o], l = e[a];
                    l.distance === -1 && (l.distance = e[i].distance + 1, l.parent = i, r.unshift(a))
                }
            }
            return e
        }

        function zwe(t, e) {
            return function (r) {
                return e(t(r))
            }
        }

        function _we(t, e) {
            let r = [e[t].parent, t], i = By[e[t].parent][t], n = e[t].parent;
            for (; e[n].parent;) r.unshift(e[n].parent), i = zwe(By[e[n].parent][n], i), n = e[n].parent;
            return i.conversion = r, i
        }

        PY.exports = function (t) {
            let e = Wwe(t), r = {}, i = Object.keys(e);
            for (let n = i.length, s = 0; s < n; s++) {
                let o = i[s];
                e[o].parent !== null && (r[o] = _we(o, e))
            }
            return r
        }
    });
    var FY = w((ert, RY) => {
        var pS = hS(), Vwe = DY(), bg = {}, Xwe = Object.keys(pS);

        function Zwe(t) {
            let e = function (...r) {
                let i = r[0];
                return i == null ? i : (i.length > 1 && (r = i), t(r))
            };
            return "conversion" in t && (e.conversion = t.conversion), e
        }

        function $we(t) {
            let e = function (...r) {
                let i = r[0];
                if (i == null) return i;
                i.length > 1 && (r = i);
                let n = t(r);
                if (typeof n == "object") for (let s = n.length, o = 0; o < s; o++) n[o] = Math.round(n[o]);
                return n
            };
            return "conversion" in t && (e.conversion = t.conversion), e
        }

        Xwe.forEach(t => {
            bg[t] = {}, Object.defineProperty(bg[t], "channels", {value: pS[t].channels}), Object.defineProperty(bg[t], "labels", {value: pS[t].labels});
            let e = Vwe(t);
            Object.keys(e).forEach(i => {
                let n = e[i];
                bg[t][i] = $we(n), bg[t][i].raw = Zwe(n)
            })
        });
        RY.exports = bg
    });
    var KY = w((trt, NY) => {
        "use strict";
        var LY = (t, e) => (...r) => `[${t(...r) + e}m`, TY = (t, e) => (...r) => {
            let i = t(...r);
            return `[${38 + e};5;${i}m`
        }, OY = (t, e) => (...r) => {
            let i = t(...r);
            return `[${38 + e};2;${i[0]};${i[1]};${i[2]}m`
        }, by = t => t, MY = (t, e, r) => [t, e, r], Qg = (t, e, r) => {
            Object.defineProperty(t, e, {
                get: () => {
                    let i = r();
                    return Object.defineProperty(t, e, {value: i, enumerable: !0, configurable: !0}), i
                }, enumerable: !0, configurable: !0
            })
        }, dS, vg = (t, e, r, i) => {
            dS === void 0 && (dS = FY());
            let n = i ? 10 : 0, s = {};
            for (let [o, a] of Object.entries(dS)) {
                let l = o === "ansi16" ? "ansi" : o;
                o === e ? s[l] = t(r, n) : typeof a == "object" && (s[l] = t(a[e], n))
            }
            return s
        };

        function eBe() {
            let t = new Map, e = {
                modifier: {
                    reset: [0, 0],
                    bold: [1, 22],
                    dim: [2, 22],
                    italic: [3, 23],
                    underline: [4, 24],
                    inverse: [7, 27],
                    hidden: [8, 28],
                    strikethrough: [9, 29]
                },
                color: {
                    black: [30, 39],
                    red: [31, 39],
                    green: [32, 39],
                    yellow: [33, 39],
                    blue: [34, 39],
                    magenta: [35, 39],
                    cyan: [36, 39],
                    white: [37, 39],
                    blackBright: [90, 39],
                    redBright: [91, 39],
                    greenBright: [92, 39],
                    yellowBright: [93, 39],
                    blueBright: [94, 39],
                    magentaBright: [95, 39],
                    cyanBright: [96, 39],
                    whiteBright: [97, 39]
                },
                bgColor: {
                    bgBlack: [40, 49],
                    bgRed: [41, 49],
                    bgGreen: [42, 49],
                    bgYellow: [43, 49],
                    bgBlue: [44, 49],
                    bgMagenta: [45, 49],
                    bgCyan: [46, 49],
                    bgWhite: [47, 49],
                    bgBlackBright: [100, 49],
                    bgRedBright: [101, 49],
                    bgGreenBright: [102, 49],
                    bgYellowBright: [103, 49],
                    bgBlueBright: [104, 49],
                    bgMagentaBright: [105, 49],
                    bgCyanBright: [106, 49],
                    bgWhiteBright: [107, 49]
                }
            };
            e.color.gray = e.color.blackBright, e.bgColor.bgGray = e.bgColor.bgBlackBright, e.color.grey = e.color.blackBright, e.bgColor.bgGrey = e.bgColor.bgBlackBright;
            for (let [r, i] of Object.entries(e)) {
                for (let [n, s] of Object.entries(i)) e[n] = {
                    open: `[${s[0]}m`,
                    close: `[${s[1]}m`
                }, i[n] = e[n], t.set(s[0], s[1]);
                Object.defineProperty(e, r, {value: i, enumerable: !1})
            }
            return Object.defineProperty(e, "codes", {
                value: t,
                enumerable: !1
            }), e.color.close = "[39m", e.bgColor.close = "[49m", Qg(e.color, "ansi", () => vg(LY, "ansi16", by, !1)), Qg(e.color, "ansi256", () => vg(TY, "ansi256", by, !1)), Qg(e.color, "ansi16m", () => vg(OY, "rgb", MY, !1)), Qg(e.bgColor, "ansi", () => vg(LY, "ansi16", by, !0)), Qg(e.bgColor, "ansi256", () => vg(TY, "ansi256", by, !0)), Qg(e.bgColor, "ansi16m", () => vg(OY, "rgb", MY, !0)), e
        }

        Object.defineProperty(NY, "exports", {enumerable: !0, get: eBe})
    });
    var HY = w((rrt, UY) => {
        "use strict";
        UY.exports = (t, e = process.argv) => {
            let r = t.startsWith("-") ? "" : t.length === 1 ? "-" : "--", i = e.indexOf(r + t), n = e.indexOf("--");
            return i !== -1 && (n === -1 || i < n)
        }
    });
    var YY = w((irt, GY) => {
        "use strict";
        var tBe = require("os"), jY = require("tty"), xs = HY(), {env: ui} = process, XA;
        xs("no-color") || xs("no-colors") || xs("color=false") || xs("color=never") ? XA = 0 : (xs("color") || xs("colors") || xs("color=true") || xs("color=always")) && (XA = 1);
        "FORCE_COLOR" in ui && (ui.FORCE_COLOR === "true" ? XA = 1 : ui.FORCE_COLOR === "false" ? XA = 0 : XA = ui.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(ui.FORCE_COLOR, 10), 3));

        function CS(t) {
            return t === 0 ? !1 : {level: t, hasBasic: !0, has256: t >= 2, has16m: t >= 3}
        }

        function mS(t, e) {
            if (XA === 0) return 0;
            if (xs("color=16m") || xs("color=full") || xs("color=truecolor")) return 3;
            if (xs("color=256")) return 2;
            if (t && !e && XA === void 0) return 0;
            let r = XA || 0;
            if (ui.TERM === "dumb") return r;
            if (process.platform === "win32") {
                let i = tBe.release().split(".");
                return Number(i[0]) >= 10 && Number(i[2]) >= 10586 ? Number(i[2]) >= 14931 ? 3 : 2 : 1
            }
            if ("CI" in ui) return ["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some(i => i in ui) || ui.CI_NAME === "codeship" ? 1 : r;
            if ("TEAMCITY_VERSION" in ui) return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ui.TEAMCITY_VERSION) ? 1 : 0;
            if ("GITHUB_ACTIONS" in ui) return 1;
            if (ui.COLORTERM === "truecolor") return 3;
            if ("TERM_PROGRAM" in ui) {
                let i = parseInt((ui.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
                switch (ui.TERM_PROGRAM) {
                    case"iTerm.app":
                        return i >= 3 ? 3 : 2;
                    case"Apple_Terminal":
                        return 2
                }
            }
            return /-256(color)?$/i.test(ui.TERM) ? 2 : /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ui.TERM) || "COLORTERM" in ui ? 1 : r
        }

        function rBe(t) {
            let e = mS(t, t && t.isTTY);
            return CS(e)
        }

        GY.exports = {supportsColor: rBe, stdout: CS(mS(!0, jY.isatty(1))), stderr: CS(mS(!0, jY.isatty(2)))}
    });
    var JY = w((nrt, qY) => {
        "use strict";
        var iBe = (t, e, r) => {
            let i = t.indexOf(e);
            if (i === -1) return t;
            let n = e.length, s = 0, o = "";
            do o += t.substr(s, i - s) + e + r, s = i + n, i = t.indexOf(e, s); while (i !== -1);
            return o += t.substr(s), o
        }, nBe = (t, e, r, i) => {
            let n = 0, s = "";
            do {
                let o = t[i - 1] === "\r";
                s += t.substr(n, (o ? i - 1 : i) - n) + e + (o ? `\r
` : `
`) + r, n = i + 1, i = t.indexOf(`
`, n)
            } while (i !== -1);
            return s += t.substr(n), s
        };
        qY.exports = {stringReplaceAll: iBe, stringEncaseCRLFWithFirstIndex: nBe}
    });
    var XY = w((srt, WY) => {
        "use strict";
        var sBe = /(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,
            zY = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g, oBe = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,
            aBe = /\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi, ABe = new Map([["n", `
`], ["r", "\r"], ["t", "	"], ["b", "\b"], ["f", "\f"], ["v", "\v"], ["0", "\0"], ["\\", "\\"], ["e", ""], ["a", "\x07"]]);

        function _Y(t) {
            let e = t[0] === "u", r = t[1] === "{";
            return e && !r && t.length === 5 || t[0] === "x" && t.length === 3 ? String.fromCharCode(parseInt(t.slice(1), 16)) : e && r ? String.fromCodePoint(parseInt(t.slice(2, -1), 16)) : ABe.get(t) || t
        }

        function lBe(t, e) {
            let r = [], i = e.trim().split(/\s*,\s*/g), n;
            for (let s of i) {
                let o = Number(s);
                if (!Number.isNaN(o)) r.push(o); else if (n = s.match(oBe)) r.push(n[2].replace(aBe, (a, l, c) => l ? _Y(l) : c)); else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${t}')`)
            }
            return r
        }

        function cBe(t) {
            zY.lastIndex = 0;
            let e = [], r;
            for (; (r = zY.exec(t)) !== null;) {
                let i = r[1];
                if (r[2]) {
                    let n = lBe(i, r[2]);
                    e.push([i].concat(n))
                } else e.push([i])
            }
            return e
        }

        function VY(t, e) {
            let r = {};
            for (let n of e) for (let s of n.styles) r[s[0]] = n.inverse ? null : s.slice(1);
            let i = t;
            for (let [n, s] of Object.entries(r)) if (!!Array.isArray(s)) {
                if (!(n in i)) throw new Error(`Unknown Chalk style: ${n}`);
                i = s.length > 0 ? i[n](...s) : i[n]
            }
            return i
        }

        WY.exports = (t, e) => {
            let r = [], i = [], n = [];
            if (e.replace(sBe, (s, o, a, l, c, u) => {
                if (o) n.push(_Y(o)); else if (l) {
                    let g = n.join("");
                    n = [], i.push(r.length === 0 ? g : VY(t, r)(g)), r.push({inverse: a, styles: cBe(l)})
                } else if (c) {
                    if (r.length === 0) throw new Error("Found extraneous } in Chalk template literal");
                    i.push(VY(t, r)(n.join(""))), n = [], r.pop()
                } else n.push(u)
            }), i.push(n.join("")), r.length > 0) {
                let s = `Chalk template literal is missing ${r.length} closing bracket${r.length === 1 ? "" : "s"} (\`}\`)`;
                throw new Error(s)
            }
            return i.join("")
        }
    });
    var BS = w((ort, ZY) => {
        "use strict";
        var zp = KY(), {stdout: ES, stderr: IS} = YY(), {
            stringReplaceAll: uBe,
            stringEncaseCRLFWithFirstIndex: gBe
        } = JY(), $Y = ["ansi", "ansi", "ansi256", "ansi16m"], Sg = Object.create(null), fBe = (t, e = {}) => {
            if (e.level > 3 || e.level < 0) throw new Error("The `level` option should be an integer from 0 to 3");
            let r = ES ? ES.level : 0;
            t.level = e.level === void 0 ? r : e.level
        }, eq = class {
            constructor(e) {
                return tq(e)
            }
        }, tq = t => {
            let e = {};
            return fBe(e, t), e.template = (...r) => hBe(e.template, ...r), Object.setPrototypeOf(e, Qy.prototype), Object.setPrototypeOf(e.template, e), e.template.constructor = () => {
                throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")
            }, e.template.Instance = eq, e.template
        };

        function Qy(t) {
            return tq(t)
        }

        for (let [t, e] of Object.entries(zp)) Sg[t] = {
            get() {
                let r = vy(this, yS(e.open, e.close, this._styler), this._isEmpty);
                return Object.defineProperty(this, t, {value: r}), r
            }
        };
        Sg.visible = {
            get() {
                let t = vy(this, this._styler, !0);
                return Object.defineProperty(this, "visible", {value: t}), t
            }
        };
        var rq = ["rgb", "hex", "keyword", "hsl", "hsv", "hwb", "ansi", "ansi256"];
        for (let t of rq) Sg[t] = {
            get() {
                let {level: e} = this;
                return function (...r) {
                    let i = yS(zp.color[$Y[e]][t](...r), zp.color.close, this._styler);
                    return vy(this, i, this._isEmpty)
                }
            }
        };
        for (let t of rq) {
            let e = "bg" + t[0].toUpperCase() + t.slice(1);
            Sg[e] = {
                get() {
                    let {level: r} = this;
                    return function (...i) {
                        let n = yS(zp.bgColor[$Y[r]][t](...i), zp.bgColor.close, this._styler);
                        return vy(this, n, this._isEmpty)
                    }
                }
            }
        }
        var pBe = Object.defineProperties(() => {
        }, ie(N({}, Sg), {
            level: {
                enumerable: !0, get() {
                    return this._generator.level
                }, set(t) {
                    this._generator.level = t
                }
            }
        })), yS = (t, e, r) => {
            let i, n;
            return r === void 0 ? (i = t, n = e) : (i = r.openAll + t, n = e + r.closeAll), {
                open: t,
                close: e,
                openAll: i,
                closeAll: n,
                parent: r
            }
        }, vy = (t, e, r) => {
            let i = (...n) => dBe(i, n.length === 1 ? "" + n[0] : n.join(" "));
            return i.__proto__ = pBe, i._generator = t, i._styler = e, i._isEmpty = r, i
        }, dBe = (t, e) => {
            if (t.level <= 0 || !e) return t._isEmpty ? "" : e;
            let r = t._styler;
            if (r === void 0) return e;
            let {openAll: i, closeAll: n} = r;
            if (e.indexOf("") !== -1) for (; r !== void 0;) e = uBe(e, r.close, r.open), r = r.parent;
            let s = e.indexOf(`
`);
            return s !== -1 && (e = gBe(e, n, i, s)), i + e + n
        }, wS, hBe = (t, ...e) => {
            let [r] = e;
            if (!Array.isArray(r)) return e.join(" ");
            let i = e.slice(1), n = [r.raw[0]];
            for (let s = 1; s < r.length; s++) n.push(String(i[s - 1]).replace(/[{}\\]/g, "\\$&"), String(r.raw[s]));
            return wS === void 0 && (wS = XY()), wS(t, n.join(""))
        };
        Object.defineProperties(Qy.prototype, Sg);
        var _p = Qy();
        _p.supportsColor = ES;
        _p.stderr = Qy({level: IS ? IS.level : 0});
        _p.stderr.supportsColor = IS;
        _p.Level = {None: 0, Basic: 1, Ansi256: 2, TrueColor: 3, 0: "None", 1: "Basic", 2: "Ansi256", 3: "TrueColor"};
        ZY.exports = _p
    });
    var Sy = w(Ps => {
        "use strict";
        Ps.isInteger = t => typeof t == "number" ? Number.isInteger(t) : typeof t == "string" && t.trim() !== "" ? Number.isInteger(Number(t)) : !1;
        Ps.find = (t, e) => t.nodes.find(r => r.type === e);
        Ps.exceedsLimit = (t, e, r = 1, i) => i === !1 || !Ps.isInteger(t) || !Ps.isInteger(e) ? !1 : (Number(e) - Number(t)) / Number(r) >= i;
        Ps.escapeNode = (t, e = 0, r) => {
            let i = t.nodes[e];
            !i || (r && i.type === r || i.type === "open" || i.type === "close") && i.escaped !== !0 && (i.value = "\\" + i.value, i.escaped = !0)
        };
        Ps.encloseBrace = t => t.type !== "brace" ? !1 : t.commas >> 0 + t.ranges >> 0 == 0 ? (t.invalid = !0, !0) : !1;
        Ps.isInvalidBrace = t => t.type !== "brace" ? !1 : t.invalid === !0 || t.dollar ? !0 : t.commas >> 0 + t.ranges >> 0 == 0 || t.open !== !0 || t.close !== !0 ? (t.invalid = !0, !0) : !1;
        Ps.isOpenOrClose = t => t.type === "open" || t.type === "close" ? !0 : t.open === !0 || t.close === !0;
        Ps.reduce = t => t.reduce((e, r) => (r.type === "text" && e.push(r.value), r.type === "range" && (r.type = "text"), e), []);
        Ps.flatten = (...t) => {
            let e = [], r = i => {
                for (let n = 0; n < i.length; n++) {
                    let s = i[n];
                    Array.isArray(s) ? r(s, e) : s !== void 0 && e.push(s)
                }
                return e
            };
            return r(t), e
        }
    });
    var ky = w((Art, iq) => {
        "use strict";
        var nq = Sy();
        iq.exports = (t, e = {}) => {
            let r = (i, n = {}) => {
                let s = e.escapeInvalid && nq.isInvalidBrace(n), o = i.invalid === !0 && e.escapeInvalid === !0, a = "";
                if (i.value) return (s || o) && nq.isOpenOrClose(i) ? "\\" + i.value : i.value;
                if (i.value) return i.value;
                if (i.nodes) for (let l of i.nodes) a += r(l);
                return a
            };
            return r(t)
        }
    });
    var oq = w((lrt, sq) => {
        "use strict";
        sq.exports = function (t) {
            return typeof t == "number" ? t - t == 0 : typeof t == "string" && t.trim() !== "" ? Number.isFinite ? Number.isFinite(+t) : isFinite(+t) : !1
        }
    });
    var pq = w((crt, aq) => {
        "use strict";
        var Aq = oq(), Sc = (t, e, r) => {
            if (Aq(t) === !1) throw new TypeError("toRegexRange: expected the first argument to be a number");
            if (e === void 0 || t === e) return String(t);
            if (Aq(e) === !1) throw new TypeError("toRegexRange: expected the second argument to be a number.");
            let i = N({relaxZeros: !0}, r);
            typeof i.strictZeros == "boolean" && (i.relaxZeros = i.strictZeros === !1);
            let n = String(i.relaxZeros), s = String(i.shorthand), o = String(i.capture), a = String(i.wrap),
                l = t + ":" + e + "=" + n + s + o + a;
            if (Sc.cache.hasOwnProperty(l)) return Sc.cache[l].result;
            let c = Math.min(t, e), u = Math.max(t, e);
            if (Math.abs(c - u) === 1) {
                let m = t + "|" + e;
                return i.capture ? `(${m})` : i.wrap === !1 ? m : `(?:${m})`
            }
            let g = cq(t) || cq(e), f = {min: t, max: e, a: c, b: u}, h = [], p = [];
            if (g && (f.isPadded = g, f.maxLen = String(f.max).length), c < 0) {
                let m = u < 0 ? Math.abs(u) : 1;
                p = lq(m, Math.abs(c), f, i), c = f.a = 0
            }
            return u >= 0 && (h = lq(c, u, f, i)), f.negatives = p, f.positives = h, f.result = CBe(p, h, i), i.capture === !0 ? f.result = `(${f.result})` : i.wrap !== !1 && h.length + p.length > 1 && (f.result = `(?:${f.result})`), Sc.cache[l] = f, f.result
        };

        function CBe(t, e, r) {
            let i = bS(t, e, "-", !1, r) || [], n = bS(e, t, "", !1, r) || [], s = bS(t, e, "-?", !0, r) || [];
            return i.concat(s).concat(n).join("|")
        }

        function EBe(t, e) {
            let r = 1, i = 1, n = uq(t, r), s = new Set([e]);
            for (; t <= n && n <= e;) s.add(n), r += 1, n = uq(t, r);
            for (n = gq(e + 1, i) - 1; t < n && n <= e;) s.add(n), i += 1, n = gq(e + 1, i) - 1;
            return s = [...s], s.sort(mBe), s
        }

        function wBe(t, e, r) {
            if (t === e) return {pattern: t, count: [], digits: 0};
            let i = IBe(t, e), n = i.length, s = "", o = 0;
            for (let a = 0; a < n; a++) {
                let [l, c] = i[a];
                l === c ? s += l : l !== "0" || c !== "9" ? s += yBe(l, c, r) : o++
            }
            return o && (s += r.shorthand === !0 ? "\\d" : "[0-9]"), {pattern: s, count: [o], digits: n}
        }

        function lq(t, e, r, i) {
            let n = EBe(t, e), s = [], o = t, a;
            for (let l = 0; l < n.length; l++) {
                let c = n[l], u = wBe(String(o), String(c), i), g = "";
                if (!r.isPadded && a && a.pattern === u.pattern) {
                    a.count.length > 1 && a.count.pop(), a.count.push(u.count[0]), a.string = a.pattern + fq(a.count), o = c + 1;
                    continue
                }
                r.isPadded && (g = BBe(c, r, i)), u.string = g + u.pattern + fq(u.count), s.push(u), o = c + 1, a = u
            }
            return s
        }

        function bS(t, e, r, i, n) {
            let s = [];
            for (let o of t) {
                let {string: a} = o;
                !i && !hq(e, "string", a) && s.push(r + a), i && hq(e, "string", a) && s.push(r + a)
            }
            return s
        }

        function IBe(t, e) {
            let r = [];
            for (let i = 0; i < t.length; i++) r.push([t[i], e[i]]);
            return r
        }

        function mBe(t, e) {
            return t > e ? 1 : e > t ? -1 : 0
        }

        function hq(t, e, r) {
            return t.some(i => i[e] === r)
        }

        function uq(t, e) {
            return Number(String(t).slice(0, -e) + "9".repeat(e))
        }

        function gq(t, e) {
            return t - t % Math.pow(10, e)
        }

        function fq(t) {
            let [e = 0, r = ""] = t;
            return r || e > 1 ? `{${e + (r ? "," + r : "")}}` : ""
        }

        function yBe(t, e, r) {
            return `[${t}${e - t == 1 ? "" : "-"}${e}]`
        }

        function cq(t) {
            return /^-?(0+)\d/.test(t)
        }

        function BBe(t, e, r) {
            if (!e.isPadded) return t;
            let i = Math.abs(e.maxLen - String(t).length), n = r.relaxZeros !== !1;
            switch (i) {
                case 0:
                    return "";
                case 1:
                    return n ? "0?" : "0";
                case 2:
                    return n ? "0{0,2}" : "00";
                default:
                    return n ? `0{0,${i}}` : `0{${i}}`
            }
        }

        Sc.cache = {};
        Sc.clearCache = () => Sc.cache = {};
        aq.exports = Sc
    });
    var SS = w((urt, dq) => {
        "use strict";
        var bBe = require("util"), Cq = pq(), mq = t => t !== null && typeof t == "object" && !Array.isArray(t),
            QBe = t => e => t === !0 ? Number(e) : String(e),
            QS = t => typeof t == "number" || typeof t == "string" && t !== "", Vp = t => Number.isInteger(+t),
            vS = t => {
                let e = `${t}`, r = -1;
                if (e[0] === "-" && (e = e.slice(1)), e === "0") return !1;
                for (; e[++r] === "0";) ;
                return r > 0
            }, vBe = (t, e, r) => typeof t == "string" || typeof e == "string" ? !0 : r.stringify === !0,
            SBe = (t, e, r) => {
                if (e > 0) {
                    let i = t[0] === "-" ? "-" : "";
                    i && (t = t.slice(1)), t = i + t.padStart(i ? e - 1 : e, "0")
                }
                return r === !1 ? String(t) : t
            }, Eq = (t, e) => {
                let r = t[0] === "-" ? "-" : "";
                for (r && (t = t.slice(1), e--); t.length < e;) t = "0" + t;
                return r ? "-" + t : t
            }, kBe = (t, e) => {
                t.negatives.sort((o, a) => o < a ? -1 : o > a ? 1 : 0), t.positives.sort((o, a) => o < a ? -1 : o > a ? 1 : 0);
                let r = e.capture ? "" : "?:", i = "", n = "", s;
                return t.positives.length && (i = t.positives.join("|")), t.negatives.length && (n = `-(${r}${t.negatives.join("|")})`), i && n ? s = `${i}|${n}` : s = i || n, e.wrap ? `(${r}${s})` : s
            }, Iq = (t, e, r, i) => {
                if (r) return Cq(t, e, N({wrap: !1}, i));
                let n = String.fromCharCode(t);
                if (t === e) return n;
                let s = String.fromCharCode(e);
                return `[${n}-${s}]`
            }, yq = (t, e, r) => {
                if (Array.isArray(t)) {
                    let i = r.wrap === !0, n = r.capture ? "" : "?:";
                    return i ? `(${n}${t.join("|")})` : t.join("|")
                }
                return Cq(t, e, r)
            }, wq = (...t) => new RangeError("Invalid range arguments: " + bBe.inspect(...t)), Bq = (t, e, r) => {
                if (r.strictRanges === !0) throw wq([t, e]);
                return []
            }, xBe = (t, e) => {
                if (e.strictRanges === !0) throw new TypeError(`Expected step "${t}" to be a number`);
                return []
            }, PBe = (t, e, r = 1, i = {}) => {
                let n = Number(t), s = Number(e);
                if (!Number.isInteger(n) || !Number.isInteger(s)) {
                    if (i.strictRanges === !0) throw wq([t, e]);
                    return []
                }
                n === 0 && (n = 0), s === 0 && (s = 0);
                let o = n > s, a = String(t), l = String(e), c = String(r);
                r = Math.max(Math.abs(r), 1);
                let u = vS(a) || vS(l) || vS(c), g = u ? Math.max(a.length, l.length, c.length) : 0,
                    f = u === !1 && vBe(t, e, i) === !1, h = i.transform || QBe(f);
                if (i.toRegex && r === 1) return Iq(Eq(t, g), Eq(e, g), !0, i);
                let p = {negatives: [], positives: []}, m = S => p[S < 0 ? "negatives" : "positives"].push(Math.abs(S)),
                    y = [], b = 0;
                for (; o ? n >= s : n <= s;) i.toRegex === !0 && r > 1 ? m(n) : y.push(SBe(h(n, b), g, f)), n = o ? n - r : n + r, b++;
                return i.toRegex === !0 ? r > 1 ? kBe(p, i) : yq(y, null, N({wrap: !1}, i)) : y
            }, DBe = (t, e, r = 1, i = {}) => {
                if (!Vp(t) && t.length > 1 || !Vp(e) && e.length > 1) return Bq(t, e, i);
                let n = i.transform || (f => String.fromCharCode(f)), s = `${t}`.charCodeAt(0), o = `${e}`.charCodeAt(0),
                    a = s > o, l = Math.min(s, o), c = Math.max(s, o);
                if (i.toRegex && r === 1) return Iq(l, c, !1, i);
                let u = [], g = 0;
                for (; a ? s >= o : s <= o;) u.push(n(s, g)), s = a ? s - r : s + r, g++;
                return i.toRegex === !0 ? yq(u, null, {wrap: !1, options: i}) : u
            }, xy = (t, e, r, i = {}) => {
                if (e == null && QS(t)) return [t];
                if (!QS(t) || !QS(e)) return Bq(t, e, i);
                if (typeof r == "function") return xy(t, e, 1, {transform: r});
                if (mq(r)) return xy(t, e, 0, r);
                let n = N({}, i);
                return n.capture === !0 && (n.wrap = !0), r = r || n.step || 1, Vp(r) ? Vp(t) && Vp(e) ? PBe(t, e, r, n) : DBe(t, e, Math.max(Math.abs(r), 1), n) : r != null && !mq(r) ? xBe(r, n) : xy(t, e, 1, r)
            };
        dq.exports = xy
    });
    var vq = w((grt, bq) => {
        "use strict";
        var RBe = SS(), Qq = Sy(), FBe = (t, e = {}) => {
            let r = (i, n = {}) => {
                let s = Qq.isInvalidBrace(n), o = i.invalid === !0 && e.escapeInvalid === !0, a = s === !0 || o === !0,
                    l = e.escapeInvalid === !0 ? "\\" : "", c = "";
                if (i.isOpen === !0 || i.isClose === !0) return l + i.value;
                if (i.type === "open") return a ? l + i.value : "(";
                if (i.type === "close") return a ? l + i.value : ")";
                if (i.type === "comma") return i.prev.type === "comma" ? "" : a ? i.value : "|";
                if (i.value) return i.value;
                if (i.nodes && i.ranges > 0) {
                    let u = Qq.reduce(i.nodes), g = RBe(...u, ie(N({}, e), {wrap: !1, toRegex: !0}));
                    if (g.length !== 0) return u.length > 1 && g.length > 1 ? `(${g})` : g
                }
                if (i.nodes) for (let u of i.nodes) c += r(u, i);
                return c
            };
            return r(t)
        };
        bq.exports = FBe
    });
    var xq = w((frt, Sq) => {
        "use strict";
        var NBe = SS(), kq = ky(), kg = Sy(), kc = (t = "", e = "", r = !1) => {
            let i = [];
            if (t = [].concat(t), e = [].concat(e), !e.length) return t;
            if (!t.length) return r ? kg.flatten(e).map(n => `{${n}}`) : e;
            for (let n of t) if (Array.isArray(n)) for (let s of n) i.push(kc(s, e, r)); else for (let s of e) r === !0 && typeof s == "string" && (s = `{${s}}`), i.push(Array.isArray(s) ? kc(n, s, r) : n + s);
            return kg.flatten(i)
        }, LBe = (t, e = {}) => {
            let r = e.rangeLimit === void 0 ? 1e3 : e.rangeLimit, i = (n, s = {}) => {
                n.queue = [];
                let o = s, a = s.queue;
                for (; o.type !== "brace" && o.type !== "root" && o.parent;) o = o.parent, a = o.queue;
                if (n.invalid || n.dollar) {
                    a.push(kc(a.pop(), kq(n, e)));
                    return
                }
                if (n.type === "brace" && n.invalid !== !0 && n.nodes.length === 2) {
                    a.push(kc(a.pop(), ["{}"]));
                    return
                }
                if (n.nodes && n.ranges > 0) {
                    let g = kg.reduce(n.nodes);
                    if (kg.exceedsLimit(...g, e.step, r)) throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");
                    let f = NBe(...g, e);
                    f.length === 0 && (f = kq(n, e)), a.push(kc(a.pop(), f)), n.nodes = [];
                    return
                }
                let l = kg.encloseBrace(n), c = n.queue, u = n;
                for (; u.type !== "brace" && u.type !== "root" && u.parent;) u = u.parent, c = u.queue;
                for (let g = 0; g < n.nodes.length; g++) {
                    let f = n.nodes[g];
                    if (f.type === "comma" && n.type === "brace") {
                        g === 1 && c.push(""), c.push("");
                        continue
                    }
                    if (f.type === "close") {
                        a.push(kc(a.pop(), c, l));
                        continue
                    }
                    if (f.value && f.type !== "open") {
                        c.push(kc(c.pop(), f.value));
                        continue
                    }
                    f.nodes && i(f, n)
                }
                return c
            };
            return kg.flatten(i(t))
        };
        Sq.exports = LBe
    });
    var Dq = w((hrt, Pq) => {
        "use strict";
        Pq.exports = {
            MAX_LENGTH: 1024 * 64,
            CHAR_0: "0",
            CHAR_9: "9",
            CHAR_UPPERCASE_A: "A",
            CHAR_LOWERCASE_A: "a",
            CHAR_UPPERCASE_Z: "Z",
            CHAR_LOWERCASE_Z: "z",
            CHAR_LEFT_PARENTHESES: "(",
            CHAR_RIGHT_PARENTHESES: ")",
            CHAR_ASTERISK: "*",
            CHAR_AMPERSAND: "&",
            CHAR_AT: "@",
            CHAR_BACKSLASH: "\\",
            CHAR_BACKTICK: "`",
            CHAR_CARRIAGE_RETURN: "\r",
            CHAR_CIRCUMFLEX_ACCENT: "^",
            CHAR_COLON: ":",
            CHAR_COMMA: ",",
            CHAR_DOLLAR: "$",
            CHAR_DOT: ".",
            CHAR_DOUBLE_QUOTE: '"',
            CHAR_EQUAL: "=",
            CHAR_EXCLAMATION_MARK: "!",
            CHAR_FORM_FEED: "\f",
            CHAR_FORWARD_SLASH: "/",
            CHAR_HASH: "#",
            CHAR_HYPHEN_MINUS: "-",
            CHAR_LEFT_ANGLE_BRACKET: "<",
            CHAR_LEFT_CURLY_BRACE: "{",
            CHAR_LEFT_SQUARE_BRACKET: "[",
            CHAR_LINE_FEED: `
`,
            CHAR_NO_BREAK_SPACE: "\xA0",
            CHAR_PERCENT: "%",
            CHAR_PLUS: "+",
            CHAR_QUESTION_MARK: "?",
            CHAR_RIGHT_ANGLE_BRACKET: ">",
            CHAR_RIGHT_CURLY_BRACE: "}",
            CHAR_RIGHT_SQUARE_BRACKET: "]",
            CHAR_SEMICOLON: ";",
            CHAR_SINGLE_QUOTE: "'",
            CHAR_SPACE: " ",
            CHAR_TAB: "	",
            CHAR_UNDERSCORE: "_",
            CHAR_VERTICAL_LINE: "|",
            CHAR_ZERO_WIDTH_NOBREAK_SPACE: "\uFEFF"
        }
    });
    var Tq = w((prt, Rq) => {
        "use strict";
        var TBe = ky(), {
            MAX_LENGTH: Fq,
            CHAR_BACKSLASH: kS,
            CHAR_BACKTICK: OBe,
            CHAR_COMMA: MBe,
            CHAR_DOT: KBe,
            CHAR_LEFT_PARENTHESES: UBe,
            CHAR_RIGHT_PARENTHESES: HBe,
            CHAR_LEFT_CURLY_BRACE: GBe,
            CHAR_RIGHT_CURLY_BRACE: jBe,
            CHAR_LEFT_SQUARE_BRACKET: Nq,
            CHAR_RIGHT_SQUARE_BRACKET: Lq,
            CHAR_DOUBLE_QUOTE: YBe,
            CHAR_SINGLE_QUOTE: qBe,
            CHAR_NO_BREAK_SPACE: JBe,
            CHAR_ZERO_WIDTH_NOBREAK_SPACE: WBe
        } = Dq(), zBe = (t, e = {}) => {
            if (typeof t != "string") throw new TypeError("Expected a string");
            let r = e || {}, i = typeof r.maxLength == "number" ? Math.min(Fq, r.maxLength) : Fq;
            if (t.length > i) throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${i})`);
            let n = {type: "root", input: t, nodes: []}, s = [n], o = n, a = n, l = 0, c = t.length, u = 0, g = 0, f,
                h = {}, p = () => t[u++], m = y => {
                    if (y.type === "text" && a.type === "dot" && (a.type = "text"), a && a.type === "text" && y.type === "text") {
                        a.value += y.value;
                        return
                    }
                    return o.nodes.push(y), y.parent = o, y.prev = a, a = y, y
                };
            for (m({type: "bos"}); u < c;) if (o = s[s.length - 1], f = p(), !(f === WBe || f === JBe)) {
                if (f === kS) {
                    m({type: "text", value: (e.keepEscaping ? f : "") + p()});
                    continue
                }
                if (f === Lq) {
                    m({type: "text", value: "\\" + f});
                    continue
                }
                if (f === Nq) {
                    l++;
                    let y = !0, b;
                    for (; u < c && (b = p());) {
                        if (f += b, b === Nq) {
                            l++;
                            continue
                        }
                        if (b === kS) {
                            f += p();
                            continue
                        }
                        if (b === Lq && (l--, l === 0)) break
                    }
                    m({type: "text", value: f});
                    continue
                }
                if (f === UBe) {
                    o = m({type: "paren", nodes: []}), s.push(o), m({type: "text", value: f});
                    continue
                }
                if (f === HBe) {
                    if (o.type !== "paren") {
                        m({type: "text", value: f});
                        continue
                    }
                    o = s.pop(), m({type: "text", value: f}), o = s[s.length - 1];
                    continue
                }
                if (f === YBe || f === qBe || f === OBe) {
                    let y = f, b;
                    for (e.keepQuotes !== !0 && (f = ""); u < c && (b = p());) {
                        if (b === kS) {
                            f += b + p();
                            continue
                        }
                        if (b === y) {
                            e.keepQuotes === !0 && (f += b);
                            break
                        }
                        f += b
                    }
                    m({type: "text", value: f});
                    continue
                }
                if (f === GBe) {
                    g++;
                    let y = a.value && a.value.slice(-1) === "$" || o.dollar === !0;
                    o = m({
                        type: "brace",
                        open: !0,
                        close: !1,
                        dollar: y,
                        depth: g,
                        commas: 0,
                        ranges: 0,
                        nodes: []
                    }), s.push(o), m({type: "open", value: f});
                    continue
                }
                if (f === jBe) {
                    if (o.type !== "brace") {
                        m({type: "text", value: f});
                        continue
                    }
                    let y = "close";
                    o = s.pop(), o.close = !0, m({type: y, value: f}), g--, o = s[s.length - 1];
                    continue
                }
                if (f === MBe && g > 0) {
                    if (o.ranges > 0) {
                        o.ranges = 0;
                        let y = o.nodes.shift();
                        o.nodes = [y, {type: "text", value: TBe(o)}]
                    }
                    m({type: "comma", value: f}), o.commas++;
                    continue
                }
                if (f === KBe && g > 0 && o.commas === 0) {
                    let y = o.nodes;
                    if (g === 0 || y.length === 0) {
                        m({type: "text", value: f});
                        continue
                    }
                    if (a.type === "dot") {
                        if (o.range = [], a.value += f, a.type = "range", o.nodes.length !== 3 && o.nodes.length !== 5) {
                            o.invalid = !0, o.ranges = 0, a.type = "text";
                            continue
                        }
                        o.ranges++, o.args = [];
                        continue
                    }
                    if (a.type === "range") {
                        y.pop();
                        let b = y[y.length - 1];
                        b.value += a.value + f, a = b, o.ranges--;
                        continue
                    }
                    m({type: "dot", value: f});
                    continue
                }
                m({type: "text", value: f})
            }
            do if (o = s.pop(), o.type !== "root") {
                o.nodes.forEach(S => {
                    S.nodes || (S.type === "open" && (S.isOpen = !0), S.type === "close" && (S.isClose = !0), S.nodes || (S.type = "text"), S.invalid = !0)
                });
                let y = s[s.length - 1], b = y.nodes.indexOf(o);
                y.nodes.splice(b, 1, ...o.nodes)
            } while (s.length > 0);
            return m({type: "eos"}), n
        };
        Rq.exports = zBe
    });
    var Kq = w((drt, Oq) => {
        "use strict";
        var Mq = ky(), _Be = vq(), VBe = xq(), XBe = Tq(), es = (t, e = {}) => {
            let r = [];
            if (Array.isArray(t)) for (let i of t) {
                let n = es.create(i, e);
                Array.isArray(n) ? r.push(...n) : r.push(n)
            } else r = [].concat(es.create(t, e));
            return e && e.expand === !0 && e.nodupes === !0 && (r = [...new Set(r)]), r
        };
        es.parse = (t, e = {}) => XBe(t, e);
        es.stringify = (t, e = {}) => typeof t == "string" ? Mq(es.parse(t, e), e) : Mq(t, e);
        es.compile = (t, e = {}) => (typeof t == "string" && (t = es.parse(t, e)), _Be(t, e));
        es.expand = (t, e = {}) => {
            typeof t == "string" && (t = es.parse(t, e));
            let r = VBe(t, e);
            return e.noempty === !0 && (r = r.filter(Boolean)), e.nodupes === !0 && (r = [...new Set(r)]), r
        };
        es.create = (t, e = {}) => t === "" || t.length < 3 ? [t] : e.expand !== !0 ? es.compile(t, e) : es.expand(t, e);
        Oq.exports = es
    });
    var Xp = w((Crt, Uq) => {
        "use strict";
        var ZBe = require("path"), jo = "\\\\/", Hq = `[^${jo}]`, qa = "\\.", $Be = "\\+", e0e = "\\?", Py = "\\/",
            t0e = "(?=.)", Gq = "[^/]", xS = `(?:${Py}|$)`, jq = `(?:^|${Py})`, PS = `${qa}{1,2}${xS}`,
            r0e = `(?!${qa})`, i0e = `(?!${jq}${PS})`, n0e = `(?!${qa}{0,1}${xS})`, s0e = `(?!${PS})`,
            o0e = `[^.${Py}]`, a0e = `${Gq}*?`, Yq = {
                DOT_LITERAL: qa,
                PLUS_LITERAL: $Be,
                QMARK_LITERAL: e0e,
                SLASH_LITERAL: Py,
                ONE_CHAR: t0e,
                QMARK: Gq,
                END_ANCHOR: xS,
                DOTS_SLASH: PS,
                NO_DOT: r0e,
                NO_DOTS: i0e,
                NO_DOT_SLASH: n0e,
                NO_DOTS_SLASH: s0e,
                QMARK_NO_DOT: o0e,
                STAR: a0e,
                START_ANCHOR: jq
            }, A0e = ie(N({}, Yq), {
                SLASH_LITERAL: `[${jo}]`,
                QMARK: Hq,
                STAR: `${Hq}*?`,
                DOTS_SLASH: `${qa}{1,2}(?:[${jo}]|$)`,
                NO_DOT: `(?!${qa})`,
                NO_DOTS: `(?!(?:^|[${jo}])${qa}{1,2}(?:[${jo}]|$))`,
                NO_DOT_SLASH: `(?!${qa}{0,1}(?:[${jo}]|$))`,
                NO_DOTS_SLASH: `(?!${qa}{1,2}(?:[${jo}]|$))`,
                QMARK_NO_DOT: `[^.${jo}]`,
                START_ANCHOR: `(?:^|[${jo}])`,
                END_ANCHOR: `(?:[${jo}]|$)`
            }), l0e = {
                alnum: "a-zA-Z0-9",
                alpha: "a-zA-Z",
                ascii: "\\x00-\\x7F",
                blank: " \\t",
                cntrl: "\\x00-\\x1F\\x7F",
                digit: "0-9",
                graph: "\\x21-\\x7E",
                lower: "a-z",
                print: "\\x20-\\x7E ",
                punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",
                space: " \\t\\r\\n\\v\\f",
                upper: "A-Z",
                word: "A-Za-z0-9_",
                xdigit: "A-Fa-f0-9"
            };
        Uq.exports = {
            MAX_LENGTH: 1024 * 64,
            POSIX_REGEX_SOURCE: l0e,
            REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
            REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/,
            REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/,
            REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g,
            REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g,
            REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g,
            REPLACEMENTS: {"***": "*", "**/**": "**", "**/**/**": "**"},
            CHAR_0: 48,
            CHAR_9: 57,
            CHAR_UPPERCASE_A: 65,
            CHAR_LOWERCASE_A: 97,
            CHAR_UPPERCASE_Z: 90,
            CHAR_LOWERCASE_Z: 122,
            CHAR_LEFT_PARENTHESES: 40,
            CHAR_RIGHT_PARENTHESES: 41,
            CHAR_ASTERISK: 42,
            CHAR_AMPERSAND: 38,
            CHAR_AT: 64,
            CHAR_BACKWARD_SLASH: 92,
            CHAR_CARRIAGE_RETURN: 13,
            CHAR_CIRCUMFLEX_ACCENT: 94,
            CHAR_COLON: 58,
            CHAR_COMMA: 44,
            CHAR_DOT: 46,
            CHAR_DOUBLE_QUOTE: 34,
            CHAR_EQUAL: 61,
            CHAR_EXCLAMATION_MARK: 33,
            CHAR_FORM_FEED: 12,
            CHAR_FORWARD_SLASH: 47,
            CHAR_GRAVE_ACCENT: 96,
            CHAR_HASH: 35,
            CHAR_HYPHEN_MINUS: 45,
            CHAR_LEFT_ANGLE_BRACKET: 60,
            CHAR_LEFT_CURLY_BRACE: 123,
            CHAR_LEFT_SQUARE_BRACKET: 91,
            CHAR_LINE_FEED: 10,
            CHAR_NO_BREAK_SPACE: 160,
            CHAR_PERCENT: 37,
            CHAR_PLUS: 43,
            CHAR_QUESTION_MARK: 63,
            CHAR_RIGHT_ANGLE_BRACKET: 62,
            CHAR_RIGHT_CURLY_BRACE: 125,
            CHAR_RIGHT_SQUARE_BRACKET: 93,
            CHAR_SEMICOLON: 59,
            CHAR_SINGLE_QUOTE: 39,
            CHAR_SPACE: 32,
            CHAR_TAB: 9,
            CHAR_UNDERSCORE: 95,
            CHAR_VERTICAL_LINE: 124,
            CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279,
            SEP: ZBe.sep,
            extglobChars(t) {
                return {
                    "!": {type: "negate", open: "(?:(?!(?:", close: `))${t.STAR})`},
                    "?": {type: "qmark", open: "(?:", close: ")?"},
                    "+": {type: "plus", open: "(?:", close: ")+"},
                    "*": {type: "star", open: "(?:", close: ")*"},
                    "@": {type: "at", open: "(?:", close: ")"}
                }
            },
            globChars(t) {
                return t === !0 ? A0e : Yq
            }
        }
    });
    var Zp = w(kn => {
        "use strict";
        var c0e = require("path"), u0e = process.platform === "win32", {
            REGEX_BACKSLASH: g0e,
            REGEX_REMOVE_BACKSLASH: f0e,
            REGEX_SPECIAL_CHARS: h0e,
            REGEX_SPECIAL_CHARS_GLOBAL: p0e
        } = Xp();
        kn.isObject = t => t !== null && typeof t == "object" && !Array.isArray(t);
        kn.hasRegexChars = t => h0e.test(t);
        kn.isRegexChar = t => t.length === 1 && kn.hasRegexChars(t);
        kn.escapeRegex = t => t.replace(p0e, "\\$1");
        kn.toPosixSlashes = t => t.replace(g0e, "/");
        kn.removeBackslashes = t => t.replace(f0e, e => e === "\\" ? "" : e);
        kn.supportsLookbehinds = () => {
            let t = process.version.slice(1).split(".").map(Number);
            return t.length === 3 && t[0] >= 9 || t[0] === 8 && t[1] >= 10
        };
        kn.isWindows = t => t && typeof t.windows == "boolean" ? t.windows : u0e === !0 || c0e.sep === "\\";
        kn.escapeLast = (t, e, r) => {
            let i = t.lastIndexOf(e, r);
            return i === -1 ? t : t[i - 1] === "\\" ? kn.escapeLast(t, e, i - 1) : `${t.slice(0, i)}\\${t.slice(i)}`
        };
        kn.removePrefix = (t, e = {}) => {
            let r = t;
            return r.startsWith("./") && (r = r.slice(2), e.prefix = "./"), r
        };
        kn.wrapOutput = (t, e = {}, r = {}) => {
            let i = r.contains ? "" : "^", n = r.contains ? "" : "$", s = `${i}(?:${t})${n}`;
            return e.negated === !0 && (s = `(?:^(?!${s}).*$)`), s
        }
    });
    var Zq = w((Ert, qq) => {
        "use strict";
        var Jq = Zp(), {
            CHAR_ASTERISK: DS,
            CHAR_AT: d0e,
            CHAR_BACKWARD_SLASH: $p,
            CHAR_COMMA: C0e,
            CHAR_DOT: RS,
            CHAR_EXCLAMATION_MARK: FS,
            CHAR_FORWARD_SLASH: Wq,
            CHAR_LEFT_CURLY_BRACE: NS,
            CHAR_LEFT_PARENTHESES: LS,
            CHAR_LEFT_SQUARE_BRACKET: m0e,
            CHAR_PLUS: E0e,
            CHAR_QUESTION_MARK: zq,
            CHAR_RIGHT_CURLY_BRACE: I0e,
            CHAR_RIGHT_PARENTHESES: _q,
            CHAR_RIGHT_SQUARE_BRACKET: y0e
        } = Xp(), Vq = t => t === Wq || t === $p, Xq = t => {
            t.isPrefix !== !0 && (t.depth = t.isGlobstar ? Infinity : 1)
        }, w0e = (t, e) => {
            let r = e || {}, i = t.length - 1, n = r.parts === !0 || r.scanToEnd === !0, s = [], o = [], a = [], l = t,
                c = -1, u = 0, g = 0, f = !1, h = !1, p = !1, m = !1, y = !1, b = !1, S = !1, k = !1, T = !1, Y = !1,
                j = 0, Z, J, re = {value: "", depth: 0, isGlob: !1}, ee = () => c >= i, A = () => l.charCodeAt(c + 1),
                oe = () => (Z = J, l.charCodeAt(++c));
            for (; c < i;) {
                J = oe();
                let pe;
                if (J === $p) {
                    S = re.backslashes = !0, J = oe(), J === NS && (b = !0);
                    continue
                }
                if (b === !0 || J === NS) {
                    for (j++; ee() !== !0 && (J = oe());) {
                        if (J === $p) {
                            S = re.backslashes = !0, oe();
                            continue
                        }
                        if (J === NS) {
                            j++;
                            continue
                        }
                        if (b !== !0 && J === RS && (J = oe()) === RS) {
                            if (f = re.isBrace = !0, p = re.isGlob = !0, Y = !0, n === !0) continue;
                            break
                        }
                        if (b !== !0 && J === C0e) {
                            if (f = re.isBrace = !0, p = re.isGlob = !0, Y = !0, n === !0) continue;
                            break
                        }
                        if (J === I0e && (j--, j === 0)) {
                            b = !1, f = re.isBrace = !0, Y = !0;
                            break
                        }
                    }
                    if (n === !0) continue;
                    break
                }
                if (J === Wq) {
                    if (s.push(c), o.push(re), re = {value: "", depth: 0, isGlob: !1}, Y === !0) continue;
                    if (Z === RS && c === u + 1) {
                        u += 2;
                        continue
                    }
                    g = c + 1;
                    continue
                }
                if (r.noext !== !0 && (J === E0e || J === d0e || J === DS || J === zq || J === FS) === !0 && A() === LS) {
                    if (p = re.isGlob = !0, m = re.isExtglob = !0, Y = !0, J === FS && c === u && (T = !0), n === !0) {
                        for (; ee() !== !0 && (J = oe());) {
                            if (J === $p) {
                                S = re.backslashes = !0, J = oe();
                                continue
                            }
                            if (J === _q) {
                                p = re.isGlob = !0, Y = !0;
                                break
                            }
                        }
                        continue
                    }
                    break
                }
                if (J === DS) {
                    if (Z === DS && (y = re.isGlobstar = !0), p = re.isGlob = !0, Y = !0, n === !0) continue;
                    break
                }
                if (J === zq) {
                    if (p = re.isGlob = !0, Y = !0, n === !0) continue;
                    break
                }
                if (J === m0e) {
                    for (; ee() !== !0 && (pe = oe());) {
                        if (pe === $p) {
                            S = re.backslashes = !0, oe();
                            continue
                        }
                        if (pe === y0e) {
                            h = re.isBracket = !0, p = re.isGlob = !0, Y = !0;
                            break
                        }
                    }
                    if (n === !0) continue;
                    break
                }
                if (r.nonegate !== !0 && J === FS && c === u) {
                    k = re.negated = !0, u++;
                    continue
                }
                if (r.noparen !== !0 && J === LS) {
                    if (p = re.isGlob = !0, n === !0) {
                        for (; ee() !== !0 && (J = oe());) {
                            if (J === LS) {
                                S = re.backslashes = !0, J = oe();
                                continue
                            }
                            if (J === _q) {
                                Y = !0;
                                break
                            }
                        }
                        continue
                    }
                    break
                }
                if (p === !0) {
                    if (Y = !0, n === !0) continue;
                    break
                }
            }
            r.noext === !0 && (m = !1, p = !1);
            let le = l, X = "", O = "";
            u > 0 && (X = l.slice(0, u), l = l.slice(u), g -= u), le && p === !0 && g > 0 ? (le = l.slice(0, g), O = l.slice(g)) : p === !0 ? (le = "", O = l) : le = l, le && le !== "" && le !== "/" && le !== l && Vq(le.charCodeAt(le.length - 1)) && (le = le.slice(0, -1)), r.unescape === !0 && (O && (O = Jq.removeBackslashes(O)), le && S === !0 && (le = Jq.removeBackslashes(le)));
            let L = {
                prefix: X,
                input: t,
                start: u,
                base: le,
                glob: O,
                isBrace: f,
                isBracket: h,
                isGlob: p,
                isExtglob: m,
                isGlobstar: y,
                negated: k,
                negatedExtglob: T
            };
            if (r.tokens === !0 && (L.maxDepth = 0, Vq(J) || o.push(re), L.tokens = o), r.parts === !0 || r.tokens === !0) {
                let pe;
                for (let Ce = 0; Ce < s.length; Ce++) {
                    let Oe = pe ? pe + 1 : u, te = s[Ce], se = t.slice(Oe, te);
                    r.tokens && (Ce === 0 && u !== 0 ? (o[Ce].isPrefix = !0, o[Ce].value = X) : o[Ce].value = se, Xq(o[Ce]), L.maxDepth += o[Ce].depth), (Ce !== 0 || se !== "") && a.push(se), pe = te
                }
                if (pe && pe + 1 < t.length) {
                    let Ce = t.slice(pe + 1);
                    a.push(Ce), r.tokens && (o[o.length - 1].value = Ce, Xq(o[o.length - 1]), L.maxDepth += o[o.length - 1].depth)
                }
                L.slashes = s, L.parts = a
            }
            return L
        };
        qq.exports = w0e
    });
    var rJ = w((Irt, $q) => {
        "use strict";
        var Dy = Xp(), ts = Zp(), {
            MAX_LENGTH: Ry,
            POSIX_REGEX_SOURCE: B0e,
            REGEX_NON_SPECIAL_CHARS: b0e,
            REGEX_SPECIAL_CHARS_BACKREF: Q0e,
            REPLACEMENTS: eJ
        } = Dy, v0e = (t, e) => {
            if (typeof e.expandRange == "function") return e.expandRange(...t, e);
            t.sort();
            let r = `[${t.join("-")}]`;
            try {
                new RegExp(r)
            } catch (i) {
                return t.map(n => ts.escapeRegex(n)).join("..")
            }
            return r
        }, xg = (t, e) => `Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`, tJ = (t, e) => {
            if (typeof t != "string") throw new TypeError("Expected a string");
            t = eJ[t] || t;
            let r = N({}, e), i = typeof r.maxLength == "number" ? Math.min(Ry, r.maxLength) : Ry, n = t.length;
            if (n > i) throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);
            let s = {type: "bos", value: "", output: r.prepend || ""}, o = [s], a = r.capture ? "" : "?:",
                l = ts.isWindows(e), c = Dy.globChars(l), u = Dy.extglobChars(c), {
                    DOT_LITERAL: g,
                    PLUS_LITERAL: f,
                    SLASH_LITERAL: h,
                    ONE_CHAR: p,
                    DOTS_SLASH: m,
                    NO_DOT: y,
                    NO_DOT_SLASH: b,
                    NO_DOTS_SLASH: S,
                    QMARK: k,
                    QMARK_NO_DOT: T,
                    STAR: Y,
                    START_ANCHOR: j
                } = c, Z = V => `(${a}(?:(?!${j}${V.dot ? m : g}).)*?)`, J = r.dot ? "" : y, re = r.dot ? k : T,
                ee = r.bash === !0 ? Z(r) : Y;
            r.capture && (ee = `(${ee})`), typeof r.noext == "boolean" && (r.noextglob = r.noext);
            let A = {
                input: t,
                index: -1,
                start: 0,
                dot: r.dot === !0,
                consumed: "",
                output: "",
                prefix: "",
                backtrack: !1,
                negated: !1,
                brackets: 0,
                braces: 0,
                parens: 0,
                quotes: 0,
                globstar: !1,
                tokens: o
            };
            t = ts.removePrefix(t, A), n = t.length;
            let oe = [], le = [], X = [], O = s, L, pe = () => A.index === n - 1,
                Ce = A.peek = (V = 1) => t[A.index + V], Oe = A.advance = () => t[++A.index] || "",
                te = () => t.slice(A.index + 1), se = (V = "", Qe = 0) => {
                    A.consumed += V, A.index += Qe
                }, be = V => {
                    A.output += V.output != null ? V.output : V.value, se(V.value)
                }, he = () => {
                    let V = 1;
                    for (; Ce() === "!" && (Ce(2) !== "(" || Ce(3) === "?");) Oe(), A.start++, V++;
                    return V % 2 == 0 ? !1 : (A.negated = !0, A.start++, !0)
                }, Fe = V => {
                    A[V]++, X.push(V)
                }, Ue = V => {
                    A[V]--, X.pop()
                }, xe = V => {
                    if (O.type === "globstar") {
                        let Qe = A.braces > 0 && (V.type === "comma" || V.type === "brace"),
                            ce = V.extglob === !0 || oe.length && (V.type === "pipe" || V.type === "paren");
                        V.type !== "slash" && V.type !== "paren" && !Qe && !ce && (A.output = A.output.slice(0, -O.output.length), O.type = "star", O.value = "*", O.output = ee, A.output += O.output)
                    }
                    if (oe.length && V.type !== "paren" && (oe[oe.length - 1].inner += V.value), (V.value || V.output) && be(V), O && O.type === "text" && V.type === "text") {
                        O.value += V.value, O.output = (O.output || "") + V.value;
                        return
                    }
                    V.prev = O, o.push(V), O = V
                }, Se = (V, Qe) => {
                    let ce = ie(N({}, u[Qe]), {conditions: 1, inner: ""});
                    ce.prev = O, ce.parens = A.parens, ce.output = A.output;
                    let fe = (r.capture ? "(" : "") + ce.open;
                    Fe("parens"), xe({type: V, value: Qe, output: A.output ? "" : p}), xe({
                        type: "paren",
                        extglob: !0,
                        value: Oe(),
                        output: fe
                    }), oe.push(ce)
                }, de = V => {
                    let Qe = V.close + (r.capture ? ")" : ""), ce;
                    if (V.type === "negate") {
                        let fe = ee;
                        V.inner && V.inner.length > 1 && V.inner.includes("/") && (fe = Z(r)), (fe !== ee || pe() || /^\)+$/.test(te())) && (Qe = V.close = `)$))${fe}`), V.inner.includes("*") && (ce = te()) && /^\.[^\\/.]+$/.test(ce) && (Qe = V.close = `)${ce})${fe})`), V.prev.type === "bos" && (A.negatedExtglob = !0)
                    }
                    xe({type: "paren", extglob: !0, value: L, output: Qe}), Ue("parens")
                };
            if (r.fastpaths !== !1 && !/(^[*!]|[/()[\]{}"])/.test(t)) {
                let V = !1,
                    Qe = t.replace(Q0e, (ce, fe, gt, Ht, Mt, mi) => Ht === "\\" ? (V = !0, ce) : Ht === "?" ? fe ? fe + Ht + (Mt ? k.repeat(Mt.length) : "") : mi === 0 ? re + (Mt ? k.repeat(Mt.length) : "") : k.repeat(gt.length) : Ht === "." ? g.repeat(gt.length) : Ht === "*" ? fe ? fe + Ht + (Mt ? ee : "") : ee : fe ? ce : `\\${ce}`);
                return V === !0 && (r.unescape === !0 ? Qe = Qe.replace(/\\/g, "") : Qe = Qe.replace(/\\+/g, ce => ce.length % 2 == 0 ? "\\\\" : ce ? "\\" : "")), Qe === t && r.contains === !0 ? (A.output = t, A) : (A.output = ts.wrapOutput(Qe, A, e), A)
            }
            for (; !pe();) {
                if (L = Oe(), L === "\0") continue;
                if (L === "\\") {
                    let ce = Ce();
                    if (ce === "/" && r.bash !== !0 || ce === "." || ce === ";") continue;
                    if (!ce) {
                        L += "\\", xe({type: "text", value: L});
                        continue
                    }
                    let fe = /^\\+/.exec(te()), gt = 0;
                    if (fe && fe[0].length > 2 && (gt = fe[0].length, A.index += gt, gt % 2 != 0 && (L += "\\")), r.unescape === !0 ? L = Oe() : L += Oe(), A.brackets === 0) {
                        xe({type: "text", value: L});
                        continue
                    }
                }
                if (A.brackets > 0 && (L !== "]" || O.value === "[" || O.value === "[^")) {
                    if (r.posix !== !1 && L === ":") {
                        let ce = O.value.slice(1);
                        if (ce.includes("[") && (O.posix = !0, ce.includes(":"))) {
                            let fe = O.value.lastIndexOf("["), gt = O.value.slice(0, fe), Ht = O.value.slice(fe + 2),
                                Mt = B0e[Ht];
                            if (Mt) {
                                O.value = gt + Mt, A.backtrack = !0, Oe(), !s.output && o.indexOf(O) === 1 && (s.output = p);
                                continue
                            }
                        }
                    }
                    (L === "[" && Ce() !== ":" || L === "-" && Ce() === "]") && (L = `\\${L}`), L === "]" && (O.value === "[" || O.value === "[^") && (L = `\\${L}`), r.posix === !0 && L === "!" && O.value === "[" && (L = "^"), O.value += L, be({value: L});
                    continue
                }
                if (A.quotes === 1 && L !== '"') {
                    L = ts.escapeRegex(L), O.value += L, be({value: L});
                    continue
                }
                if (L === '"') {
                    A.quotes = A.quotes === 1 ? 0 : 1, r.keepQuotes === !0 && xe({type: "text", value: L});
                    continue
                }
                if (L === "(") {
                    Fe("parens"), xe({type: "paren", value: L});
                    continue
                }
                if (L === ")") {
                    if (A.parens === 0 && r.strictBrackets === !0) throw new SyntaxError(xg("opening", "("));
                    let ce = oe[oe.length - 1];
                    if (ce && A.parens === ce.parens + 1) {
                        de(oe.pop());
                        continue
                    }
                    xe({type: "paren", value: L, output: A.parens ? ")" : "\\)"}), Ue("parens");
                    continue
                }
                if (L === "[") {
                    if (r.nobracket === !0 || !te().includes("]")) {
                        if (r.nobracket !== !0 && r.strictBrackets === !0) throw new SyntaxError(xg("closing", "]"));
                        L = `\\${L}`
                    } else Fe("brackets");
                    xe({type: "bracket", value: L});
                    continue
                }
                if (L === "]") {
                    if (r.nobracket === !0 || O && O.type === "bracket" && O.value.length === 1) {
                        xe({type: "text", value: L, output: `\\${L}`});
                        continue
                    }
                    if (A.brackets === 0) {
                        if (r.strictBrackets === !0) throw new SyntaxError(xg("opening", "["));
                        xe({type: "text", value: L, output: `\\${L}`});
                        continue
                    }
                    Ue("brackets");
                    let ce = O.value.slice(1);
                    if (O.posix !== !0 && ce[0] === "^" && !ce.includes("/") && (L = `/${L}`), O.value += L, be({value: L}), r.literalBrackets === !1 || ts.hasRegexChars(ce)) continue;
                    let fe = ts.escapeRegex(O.value);
                    if (A.output = A.output.slice(0, -O.value.length), r.literalBrackets === !0) {
                        A.output += fe, O.value = fe;
                        continue
                    }
                    O.value = `(${a}${fe}|${O.value})`, A.output += O.value;
                    continue
                }
                if (L === "{" && r.nobrace !== !0) {
                    Fe("braces");
                    let ce = {
                        type: "brace",
                        value: L,
                        output: "(",
                        outputIndex: A.output.length,
                        tokensIndex: A.tokens.length
                    };
                    le.push(ce), xe(ce);
                    continue
                }
                if (L === "}") {
                    let ce = le[le.length - 1];
                    if (r.nobrace === !0 || !ce) {
                        xe({type: "text", value: L, output: L});
                        continue
                    }
                    let fe = ")";
                    if (ce.dots === !0) {
                        let gt = o.slice(), Ht = [];
                        for (let Mt = gt.length - 1; Mt >= 0 && (o.pop(), gt[Mt].type !== "brace"); Mt--) gt[Mt].type !== "dots" && Ht.unshift(gt[Mt].value);
                        fe = v0e(Ht, r), A.backtrack = !0
                    }
                    if (ce.comma !== !0 && ce.dots !== !0) {
                        let gt = A.output.slice(0, ce.outputIndex), Ht = A.tokens.slice(ce.tokensIndex);
                        ce.value = ce.output = "\\{", L = fe = "\\}", A.output = gt;
                        for (let Mt of Ht) A.output += Mt.output || Mt.value
                    }
                    xe({type: "brace", value: L, output: fe}), Ue("braces"), le.pop();
                    continue
                }
                if (L === "|") {
                    oe.length > 0 && oe[oe.length - 1].conditions++, xe({type: "text", value: L});
                    continue
                }
                if (L === ",") {
                    let ce = L, fe = le[le.length - 1];
                    fe && X[X.length - 1] === "braces" && (fe.comma = !0, ce = "|"), xe({
                        type: "comma",
                        value: L,
                        output: ce
                    });
                    continue
                }
                if (L === "/") {
                    if (O.type === "dot" && A.index === A.start + 1) {
                        A.start = A.index + 1, A.consumed = "", A.output = "", o.pop(), O = s;
                        continue
                    }
                    xe({type: "slash", value: L, output: h});
                    continue
                }
                if (L === ".") {
                    if (A.braces > 0 && O.type === "dot") {
                        O.value === "." && (O.output = g);
                        let ce = le[le.length - 1];
                        O.type = "dots", O.output += L, O.value += L, ce.dots = !0;
                        continue
                    }
                    if (A.braces + A.parens === 0 && O.type !== "bos" && O.type !== "slash") {
                        xe({type: "text", value: L, output: g});
                        continue
                    }
                    xe({type: "dot", value: L, output: g});
                    continue
                }
                if (L === "?") {
                    if (!(O && O.value === "(") && r.noextglob !== !0 && Ce() === "(" && Ce(2) !== "?") {
                        Se("qmark", L);
                        continue
                    }
                    if (O && O.type === "paren") {
                        let fe = Ce(), gt = L;
                        if (fe === "<" && !ts.supportsLookbehinds()) throw new Error("Node.js v10 or higher is required for regex lookbehinds");
                        (O.value === "(" && !/[!=<:]/.test(fe) || fe === "<" && !/<([!=]|\w+>)/.test(te())) && (gt = `\\${L}`), xe({
                            type: "text",
                            value: L,
                            output: gt
                        });
                        continue
                    }
                    if (r.dot !== !0 && (O.type === "slash" || O.type === "bos")) {
                        xe({type: "qmark", value: L, output: T});
                        continue
                    }
                    xe({type: "qmark", value: L, output: k});
                    continue
                }
                if (L === "!") {
                    if (r.noextglob !== !0 && Ce() === "(" && (Ce(2) !== "?" || !/[!=<:]/.test(Ce(3)))) {
                        Se("negate", L);
                        continue
                    }
                    if (r.nonegate !== !0 && A.index === 0) {
                        he();
                        continue
                    }
                }
                if (L === "+") {
                    if (r.noextglob !== !0 && Ce() === "(" && Ce(2) !== "?") {
                        Se("plus", L);
                        continue
                    }
                    if (O && O.value === "(" || r.regex === !1) {
                        xe({type: "plus", value: L, output: f});
                        continue
                    }
                    if (O && (O.type === "bracket" || O.type === "paren" || O.type === "brace") || A.parens > 0) {
                        xe({type: "plus", value: L});
                        continue
                    }
                    xe({type: "plus", value: f});
                    continue
                }
                if (L === "@") {
                    if (r.noextglob !== !0 && Ce() === "(" && Ce(2) !== "?") {
                        xe({type: "at", extglob: !0, value: L, output: ""});
                        continue
                    }
                    xe({type: "text", value: L});
                    continue
                }
                if (L !== "*") {
                    (L === "$" || L === "^") && (L = `\\${L}`);
                    let ce = b0e.exec(te());
                    ce && (L += ce[0], A.index += ce[0].length), xe({type: "text", value: L});
                    continue
                }
                if (O && (O.type === "globstar" || O.star === !0)) {
                    O.type = "star", O.star = !0, O.value += L, O.output = ee, A.backtrack = !0, A.globstar = !0, se(L);
                    continue
                }
                let V = te();
                if (r.noextglob !== !0 && /^\([^?]/.test(V)) {
                    Se("star", L);
                    continue
                }
                if (O.type === "star") {
                    if (r.noglobstar === !0) {
                        se(L);
                        continue
                    }
                    let ce = O.prev, fe = ce.prev, gt = ce.type === "slash" || ce.type === "bos",
                        Ht = fe && (fe.type === "star" || fe.type === "globstar");
                    if (r.bash === !0 && (!gt || V[0] && V[0] !== "/")) {
                        xe({type: "star", value: L, output: ""});
                        continue
                    }
                    let Mt = A.braces > 0 && (ce.type === "comma" || ce.type === "brace"),
                        mi = oe.length && (ce.type === "pipe" || ce.type === "paren");
                    if (!gt && ce.type !== "paren" && !Mt && !mi) {
                        xe({type: "star", value: L, output: ""});
                        continue
                    }
                    for (; V.slice(0, 3) === "/**";) {
                        let Gt = t[A.index + 4];
                        if (Gt && Gt !== "/") break;
                        V = V.slice(3), se("/**", 3)
                    }
                    if (ce.type === "bos" && pe()) {
                        O.type = "globstar", O.value += L, O.output = Z(r), A.output = O.output, A.globstar = !0, se(L);
                        continue
                    }
                    if (ce.type === "slash" && ce.prev.type !== "bos" && !Ht && pe()) {
                        A.output = A.output.slice(0, -(ce.output + O.output).length), ce.output = `(?:${ce.output}`, O.type = "globstar", O.output = Z(r) + (r.strictSlashes ? ")" : "|$)"), O.value += L, A.globstar = !0, A.output += ce.output + O.output, se(L);
                        continue
                    }
                    if (ce.type === "slash" && ce.prev.type !== "bos" && V[0] === "/") {
                        let Gt = V[1] !== void 0 ? "|$" : "";
                        A.output = A.output.slice(0, -(ce.output + O.output).length), ce.output = `(?:${ce.output}`, O.type = "globstar", O.output = `${Z(r)}${h}|${h}${Gt})`, O.value += L, A.output += ce.output + O.output, A.globstar = !0, se(L + Oe()), xe({
                            type: "slash",
                            value: "/",
                            output: ""
                        });
                        continue
                    }
                    if (ce.type === "bos" && V[0] === "/") {
                        O.type = "globstar", O.value += L, O.output = `(?:^|${h}|${Z(r)}${h})`, A.output = O.output, A.globstar = !0, se(L + Oe()), xe({
                            type: "slash",
                            value: "/",
                            output: ""
                        });
                        continue
                    }
                    A.output = A.output.slice(0, -O.output.length), O.type = "globstar", O.output = Z(r), O.value += L, A.output += O.output, A.globstar = !0, se(L);
                    continue
                }
                let Qe = {type: "star", value: L, output: ee};
                if (r.bash === !0) {
                    Qe.output = ".*?", (O.type === "bos" || O.type === "slash") && (Qe.output = J + Qe.output), xe(Qe);
                    continue
                }
                if (O && (O.type === "bracket" || O.type === "paren") && r.regex === !0) {
                    Qe.output = L, xe(Qe);
                    continue
                }
                (A.index === A.start || O.type === "slash" || O.type === "dot") && (O.type === "dot" ? (A.output += b, O.output += b) : r.dot === !0 ? (A.output += S, O.output += S) : (A.output += J, O.output += J), Ce() !== "*" && (A.output += p, O.output += p)), xe(Qe)
            }
            for (; A.brackets > 0;) {
                if (r.strictBrackets === !0) throw new SyntaxError(xg("closing", "]"));
                A.output = ts.escapeLast(A.output, "["), Ue("brackets")
            }
            for (; A.parens > 0;) {
                if (r.strictBrackets === !0) throw new SyntaxError(xg("closing", ")"));
                A.output = ts.escapeLast(A.output, "("), Ue("parens")
            }
            for (; A.braces > 0;) {
                if (r.strictBrackets === !0) throw new SyntaxError(xg("closing", "}"));
                A.output = ts.escapeLast(A.output, "{"), Ue("braces")
            }
            if (r.strictSlashes !== !0 && (O.type === "star" || O.type === "bracket") && xe({
                type: "maybe_slash",
                value: "",
                output: `${h}?`
            }), A.backtrack === !0) {
                A.output = "";
                for (let V of A.tokens) A.output += V.output != null ? V.output : V.value, V.suffix && (A.output += V.suffix)
            }
            return A
        };
        tJ.fastpaths = (t, e) => {
            let r = N({}, e), i = typeof r.maxLength == "number" ? Math.min(Ry, r.maxLength) : Ry, n = t.length;
            if (n > i) throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);
            t = eJ[t] || t;
            let s = ts.isWindows(e), {
                    DOT_LITERAL: o,
                    SLASH_LITERAL: a,
                    ONE_CHAR: l,
                    DOTS_SLASH: c,
                    NO_DOT: u,
                    NO_DOTS: g,
                    NO_DOTS_SLASH: f,
                    STAR: h,
                    START_ANCHOR: p
                } = Dy.globChars(s), m = r.dot ? g : u, y = r.dot ? f : u, b = r.capture ? "" : "?:",
                S = {negated: !1, prefix: ""}, k = r.bash === !0 ? ".*?" : h;
            r.capture && (k = `(${k})`);
            let T = J => J.noglobstar === !0 ? k : `(${b}(?:(?!${p}${J.dot ? c : o}).)*?)`, Y = J => {
                switch (J) {
                    case"*":
                        return `${m}${l}${k}`;
                    case".*":
                        return `${o}${l}${k}`;
                    case"*.*":
                        return `${m}${k}${o}${l}${k}`;
                    case"*/*":
                        return `${m}${k}${a}${l}${y}${k}`;
                    case"**":
                        return m + T(r);
                    case"**/*":
                        return `(?:${m}${T(r)}${a})?${y}${l}${k}`;
                    case"**/*.*":
                        return `(?:${m}${T(r)}${a})?${y}${k}${o}${l}${k}`;
                    case"**/.*":
                        return `(?:${m}${T(r)}${a})?${o}${l}${k}`;
                    default: {
                        let re = /^(.*?)\.(\w+)$/.exec(J);
                        if (!re) return;
                        let ee = Y(re[1]);
                        return ee ? ee + o + re[2] : void 0
                    }
                }
            }, j = ts.removePrefix(t, S), Z = Y(j);
            return Z && r.strictSlashes !== !0 && (Z += `${a}?`), Z
        };
        $q.exports = tJ
    });
    var nJ = w((yrt, iJ) => {
        "use strict";
        var S0e = require("path"), k0e = Zq(), TS = rJ(), OS = Zp(), x0e = Xp(),
            P0e = t => t && typeof t == "object" && !Array.isArray(t), _r = (t, e, r = !1) => {
                if (Array.isArray(t)) {
                    let u = t.map(f => _r(f, e, r));
                    return f => {
                        for (let h of u) {
                            let p = h(f);
                            if (p) return p
                        }
                        return !1
                    }
                }
                let i = P0e(t) && t.tokens && t.input;
                if (t === "" || typeof t != "string" && !i) throw new TypeError("Expected pattern to be a non-empty string");
                let n = e || {}, s = OS.isWindows(e), o = i ? _r.compileRe(t, e) : _r.makeRe(t, e, !1, !0), a = o.state;
                delete o.state;
                let l = () => !1;
                if (n.ignore) {
                    let u = ie(N({}, e), {ignore: null, onMatch: null, onResult: null});
                    l = _r(n.ignore, u, r)
                }
                let c = (u, g = !1) => {
                    let {isMatch: f, match: h, output: p} = _r.test(u, o, e, {glob: t, posix: s}),
                        m = {glob: t, state: a, regex: o, posix: s, input: u, output: p, match: h, isMatch: f};
                    return typeof n.onResult == "function" && n.onResult(m), f === !1 ? (m.isMatch = !1, g ? m : !1) : l(u) ? (typeof n.onIgnore == "function" && n.onIgnore(m), m.isMatch = !1, g ? m : !1) : (typeof n.onMatch == "function" && n.onMatch(m), g ? m : !0)
                };
                return r && (c.state = a), c
            };
        _r.test = (t, e, r, {glob: i, posix: n} = {}) => {
            if (typeof t != "string") throw new TypeError("Expected input to be a string");
            if (t === "") return {isMatch: !1, output: ""};
            let s = r || {}, o = s.format || (n ? OS.toPosixSlashes : null), a = t === i, l = a && o ? o(t) : t;
            return a === !1 && (l = o ? o(t) : t, a = l === i), (a === !1 || s.capture === !0) && (s.matchBase === !0 || s.basename === !0 ? a = _r.matchBase(t, e, r, n) : a = e.exec(l)), {
                isMatch: Boolean(a),
                match: a,
                output: l
            }
        };
        _r.matchBase = (t, e, r, i = OS.isWindows(r)) => (e instanceof RegExp ? e : _r.makeRe(e, r)).test(S0e.basename(t));
        _r.isMatch = (t, e, r) => _r(e, r)(t);
        _r.parse = (t, e) => Array.isArray(t) ? t.map(r => _r.parse(r, e)) : TS(t, ie(N({}, e), {fastpaths: !1}));
        _r.scan = (t, e) => k0e(t, e);
        _r.compileRe = (t, e, r = !1, i = !1) => {
            if (r === !0) return t.output;
            let n = e || {}, s = n.contains ? "" : "^", o = n.contains ? "" : "$", a = `${s}(?:${t.output})${o}`;
            t && t.negated === !0 && (a = `^(?!${a}).*$`);
            let l = _r.toRegex(a, e);
            return i === !0 && (l.state = t), l
        };
        _r.makeRe = (t, e = {}, r = !1, i = !1) => {
            if (!t || typeof t != "string") throw new TypeError("Expected a non-empty string");
            let n = {negated: !1, fastpaths: !0};
            return e.fastpaths !== !1 && (t[0] === "." || t[0] === "*") && (n.output = TS.fastpaths(t, e)), n.output || (n = TS(t, e)), _r.compileRe(n, e, r, i)
        };
        _r.toRegex = (t, e) => {
            try {
                let r = e || {};
                return new RegExp(t, r.flags || (r.nocase ? "i" : ""))
            } catch (r) {
                if (e && e.debug === !0) throw r;
                return /$^/
            }
        };
        _r.constants = x0e;
        iJ.exports = _r
    });
    var MS = w((wrt, sJ) => {
        "use strict";
        sJ.exports = nJ()
    });
    var rs = w((Brt, oJ) => {
        "use strict";
        var aJ = require("util"), AJ = Kq(), Yo = MS(), KS = Zp(), lJ = t => t === "" || t === "./", Pr = (t, e, r) => {
            e = [].concat(e), t = [].concat(t);
            let i = new Set, n = new Set, s = new Set, o = 0, a = u => {
                s.add(u.output), r && r.onResult && r.onResult(u)
            };
            for (let u = 0; u < e.length; u++) {
                let g = Yo(String(e[u]), ie(N({}, r), {onResult: a}), !0),
                    f = g.state.negated || g.state.negatedExtglob;
                f && o++;
                for (let h of t) {
                    let p = g(h, !0);
                    !(f ? !p.isMatch : p.isMatch) || (f ? i.add(p.output) : (i.delete(p.output), n.add(p.output)))
                }
            }
            let c = (o === e.length ? [...s] : [...n]).filter(u => !i.has(u));
            if (r && c.length === 0) {
                if (r.failglob === !0) throw new Error(`No matches found for "${e.join(", ")}"`);
                if (r.nonull === !0 || r.nullglob === !0) return r.unescape ? e.map(u => u.replace(/\\/g, "")) : e
            }
            return c
        };
        Pr.match = Pr;
        Pr.matcher = (t, e) => Yo(t, e);
        Pr.isMatch = (t, e, r) => Yo(e, r)(t);
        Pr.any = Pr.isMatch;
        Pr.not = (t, e, r = {}) => {
            e = [].concat(e).map(String);
            let i = new Set, n = [], s = a => {
                r.onResult && r.onResult(a), n.push(a.output)
            }, o = Pr(t, e, ie(N({}, r), {onResult: s}));
            for (let a of n) o.includes(a) || i.add(a);
            return [...i]
        };
        Pr.contains = (t, e, r) => {
            if (typeof t != "string") throw new TypeError(`Expected a string: "${aJ.inspect(t)}"`);
            if (Array.isArray(e)) return e.some(i => Pr.contains(t, i, r));
            if (typeof e == "string") {
                if (lJ(t) || lJ(e)) return !1;
                if (t.includes(e) || t.startsWith("./") && t.slice(2).includes(e)) return !0
            }
            return Pr.isMatch(t, e, ie(N({}, r), {contains: !0}))
        };
        Pr.matchKeys = (t, e, r) => {
            if (!KS.isObject(t)) throw new TypeError("Expected the first argument to be an object");
            let i = Pr(Object.keys(t), e, r), n = {};
            for (let s of i) n[s] = t[s];
            return n
        };
        Pr.some = (t, e, r) => {
            let i = [].concat(t);
            for (let n of [].concat(e)) {
                let s = Yo(String(n), r);
                if (i.some(o => s(o))) return !0
            }
            return !1
        };
        Pr.every = (t, e, r) => {
            let i = [].concat(t);
            for (let n of [].concat(e)) {
                let s = Yo(String(n), r);
                if (!i.every(o => s(o))) return !1
            }
            return !0
        };
        Pr.all = (t, e, r) => {
            if (typeof t != "string") throw new TypeError(`Expected a string: "${aJ.inspect(t)}"`);
            return [].concat(e).every(i => Yo(i, r)(t))
        };
        Pr.capture = (t, e, r) => {
            let i = KS.isWindows(r),
                s = Yo.makeRe(String(t), ie(N({}, r), {capture: !0})).exec(i ? KS.toPosixSlashes(e) : e);
            if (s) return s.slice(1).map(o => o === void 0 ? "" : o)
        };
        Pr.makeRe = (...t) => Yo.makeRe(...t);
        Pr.scan = (...t) => Yo.scan(...t);
        Pr.parse = (t, e) => {
            let r = [];
            for (let i of [].concat(t || [])) for (let n of AJ(String(i), e)) r.push(Yo.parse(n, e));
            return r
        };
        Pr.braces = (t, e) => {
            if (typeof t != "string") throw new TypeError("Expected a string");
            return e && e.nobrace === !0 || !/\{.*\}/.test(t) ? [t] : AJ(t, e)
        };
        Pr.braceExpand = (t, e) => {
            if (typeof t != "string") throw new TypeError("Expected a string");
            return Pr.braces(t, ie(N({}, e), {expand: !0}))
        };
        oJ.exports = Pr
    });
    var uJ = w((brt, cJ) => {
        "use strict";
        cJ.exports = ({onlyFirst: t = !1} = {}) => {
            let e = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");
            return new RegExp(e, t ? void 0 : "g")
        }
    });
    var fJ = w((Qrt, gJ) => {
        "use strict";
        var D0e = uJ();
        gJ.exports = t => typeof t == "string" ? t.replace(D0e(), "") : t
    });
    var xJ = w((jrt, kJ) => {
        "use strict";
        kJ.exports = (...t) => [...new Set([].concat(...t))]
    });
    var ek = w((Yrt, PJ) => {
        "use strict";
        var j0e = require("stream"), DJ = j0e.PassThrough, Y0e = Array.prototype.slice;
        PJ.exports = q0e;

        function q0e() {
            let t = [], e = !1, r = Y0e.call(arguments), i = r[r.length - 1];
            i && !Array.isArray(i) && i.pipe == null ? r.pop() : i = {};
            let n = i.end !== !1;
            i.objectMode == null && (i.objectMode = !0), i.highWaterMark == null && (i.highWaterMark = 64 * 1024);
            let s = DJ(i);

            function o() {
                for (let c = 0, u = arguments.length; c < u; c++) t.push(RJ(arguments[c], i));
                return a(), this
            }

            function a() {
                if (e) return;
                e = !0;
                let c = t.shift();
                if (!c) {
                    process.nextTick(l);
                    return
                }
                Array.isArray(c) || (c = [c]);
                let u = c.length + 1;

                function g() {
                    --u > 0 || (e = !1, a())
                }

                function f(h) {
                    function p() {
                        h.removeListener("merge2UnpipeEnd", p), h.removeListener("end", p), g()
                    }

                    if (h._readableState.endEmitted) return g();
                    h.on("merge2UnpipeEnd", p), h.on("end", p), h.pipe(s, {end: !1}), h.resume()
                }

                for (let h = 0; h < c.length; h++) f(c[h]);
                g()
            }

            function l() {
                return e = !1, s.emit("queueDrain"), n && s.end()
            }

            return s.setMaxListeners(0), s.add = o, s.on("unpipe", function (c) {
                c.emit("merge2UnpipeEnd")
            }), r.length && o.apply(null, r), s
        }

        function RJ(t, e) {
            if (Array.isArray(t)) for (let r = 0, i = t.length; r < i; r++) t[r] = RJ(t[r], e); else {
                if (!t._readableState && t.pipe && (t = t.pipe(DJ(e))), !t._readableState || !t.pause || !t.pipe) throw new Error("Only readable stream can be merged.");
                t.pause()
            }
            return t
        }
    });
    var FJ = w(Oy => {
        "use strict";
        Object.defineProperty(Oy, "__esModule", {value: !0});

        function J0e(t) {
            return t.reduce((e, r) => [].concat(e, r), [])
        }

        Oy.flatten = J0e;

        function W0e(t, e) {
            let r = [[]], i = 0;
            for (let n of t) e(n) ? (i++, r[i] = []) : r[i].push(n);
            return r
        }

        Oy.splitWhen = W0e
    });
    var NJ = w(tk => {
        "use strict";
        Object.defineProperty(tk, "__esModule", {value: !0});

        function z0e(t) {
            return t.code === "ENOENT"
        }

        tk.isEnoentCodeError = z0e
    });
    var TJ = w(rk => {
        "use strict";
        Object.defineProperty(rk, "__esModule", {value: !0});
        var LJ = class {
            constructor(e, r) {
                this.name = e, this.isBlockDevice = r.isBlockDevice.bind(r), this.isCharacterDevice = r.isCharacterDevice.bind(r), this.isDirectory = r.isDirectory.bind(r), this.isFIFO = r.isFIFO.bind(r), this.isFile = r.isFile.bind(r), this.isSocket = r.isSocket.bind(r), this.isSymbolicLink = r.isSymbolicLink.bind(r)
            }
        };

        function _0e(t, e) {
            return new LJ(t, e)
        }

        rk.createDirentFromStats = _0e
    });
    var OJ = w(Tg => {
        "use strict";
        Object.defineProperty(Tg, "__esModule", {value: !0});
        var V0e = require("path"), X0e = 2, Z0e = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;

        function $0e(t) {
            return t.replace(/\\/g, "/")
        }

        Tg.unixify = $0e;

        function ebe(t, e) {
            return V0e.resolve(t, e)
        }

        Tg.makeAbsolute = ebe;

        function tbe(t) {
            return t.replace(Z0e, "\\$2")
        }

        Tg.escape = tbe;

        function rbe(t) {
            if (t.charAt(0) === ".") {
                let e = t.charAt(1);
                if (e === "/" || e === "\\") return t.slice(X0e)
            }
            return t
        }

        Tg.removeLeadingDotSegment = rbe
    });
    var KJ = w((_rt, MJ) => {
        MJ.exports = function (e) {
            if (typeof e != "string" || e === "") return !1;
            for (var r; r = /(\\).|([@?!+*]\(.*\))/g.exec(e);) {
                if (r[2]) return !0;
                e = e.slice(r.index + r[0].length)
            }
            return !1
        }
    });
    var GJ = w((Vrt, UJ) => {
        var ibe = KJ(), HJ = {"{": "}", "(": ")", "[": "]"}, nbe = function (t) {
            if (t[0] === "!") return !0;
            for (var e = 0, r = -2, i = -2, n = -2, s = -2, o = -2; e < t.length;) {
                if (t[e] === "*" || t[e + 1] === "?" && /[\].+)]/.test(t[e]) || i !== -1 && t[e] === "[" && t[e + 1] !== "]" && (i < e && (i = t.indexOf("]", e)), i > e && (o === -1 || o > i || (o = t.indexOf("\\", e), o === -1 || o > i))) || n !== -1 && t[e] === "{" && t[e + 1] !== "}" && (n = t.indexOf("}", e), n > e && (o = t.indexOf("\\", e), o === -1 || o > n)) || s !== -1 && t[e] === "(" && t[e + 1] === "?" && /[:!=]/.test(t[e + 2]) && t[e + 3] !== ")" && (s = t.indexOf(")", e), s > e && (o = t.indexOf("\\", e), o === -1 || o > s)) || r !== -1 && t[e] === "(" && t[e + 1] !== "|" && (r < e && (r = t.indexOf("|", e)), r !== -1 && t[r + 1] !== ")" && (s = t.indexOf(")", r), s > r && (o = t.indexOf("\\", r), o === -1 || o > s)))) return !0;
                if (t[e] === "\\") {
                    var a = t[e + 1];
                    e += 2;
                    var l = HJ[a];
                    if (l) {
                        var c = t.indexOf(l, e);
                        c !== -1 && (e = c + 1)
                    }
                    if (t[e] === "!") return !0
                } else e++
            }
            return !1
        }, sbe = function (t) {
            if (t[0] === "!") return !0;
            for (var e = 0; e < t.length;) {
                if (/[*?{}()[\]]/.test(t[e])) return !0;
                if (t[e] === "\\") {
                    var r = t[e + 1];
                    e += 2;
                    var i = HJ[r];
                    if (i) {
                        var n = t.indexOf(i, e);
                        n !== -1 && (e = n + 1)
                    }
                    if (t[e] === "!") return !0
                } else e++
            }
            return !1
        };
        UJ.exports = function (e, r) {
            if (typeof e != "string" || e === "") return !1;
            if (ibe(e)) return !0;
            var i = nbe;
            return r && r.strict === !1 && (i = sbe), i(e)
        }
    });
    var YJ = w((Xrt, jJ) => {
        "use strict";
        var obe = GJ(), abe = require("path").posix.dirname, Abe = require("os").platform() === "win32", ik = "/",
            lbe = /\\/g, cbe = /[\{\[].*[\}\]]$/, ube = /(^|[^\\])([\{\[]|\([^\)]+$)/,
            gbe = /\\([\!\*\?\|\[\]\(\)\{\}])/g;
        jJ.exports = function (e, r) {
            var i = Object.assign({flipBackslashes: !0}, r);
            i.flipBackslashes && Abe && e.indexOf(ik) < 0 && (e = e.replace(lbe, ik)), cbe.test(e) && (e += ik), e += "a";
            do e = abe(e); while (obe(e) || ube.test(e));
            return e.replace(gbe, "$1")
        }
    });
    var $J = w(si => {
        "use strict";
        Object.defineProperty(si, "__esModule", {value: !0});
        var fbe = require("path"), hbe = YJ(), qJ = rs(), pbe = MS(), JJ = "**", dbe = "\\", Cbe = /[*?]|^!/,
            mbe = /\[.*]/, Ebe = /(?:^|[^!*+?@])\(.*\|.*\)/, Ibe = /[!*+?@]\(.*\)/, ybe = /{.*(?:,|\.\.).*}/;

        function zJ(t, e = {}) {
            return !WJ(t, e)
        }

        si.isStaticPattern = zJ;

        function WJ(t, e = {}) {
            return !!(e.caseSensitiveMatch === !1 || t.includes(dbe) || Cbe.test(t) || mbe.test(t) || Ebe.test(t) || e.extglob !== !1 && Ibe.test(t) || e.braceExpansion !== !1 && ybe.test(t))
        }

        si.isDynamicPattern = WJ;

        function wbe(t) {
            return My(t) ? t.slice(1) : t
        }

        si.convertToPositivePattern = wbe;

        function Bbe(t) {
            return "!" + t
        }

        si.convertToNegativePattern = Bbe;

        function My(t) {
            return t.startsWith("!") && t[1] !== "("
        }

        si.isNegativePattern = My;

        function _J(t) {
            return !My(t)
        }

        si.isPositivePattern = _J;

        function bbe(t) {
            return t.filter(My)
        }

        si.getNegativePatterns = bbe;

        function Qbe(t) {
            return t.filter(_J)
        }

        si.getPositivePatterns = Qbe;

        function vbe(t) {
            return hbe(t, {flipBackslashes: !1})
        }

        si.getBaseDirectory = vbe;

        function Sbe(t) {
            return t.includes(JJ)
        }

        si.hasGlobStar = Sbe;

        function VJ(t) {
            return t.endsWith("/" + JJ)
        }

        si.endsWithSlashGlobStar = VJ;

        function kbe(t) {
            let e = fbe.basename(t);
            return VJ(t) || zJ(e)
        }

        si.isAffectDepthOfReadingPattern = kbe;

        function xbe(t) {
            return t.reduce((e, r) => e.concat(XJ(r)), [])
        }

        si.expandPatternsWithBraceExpansion = xbe;

        function XJ(t) {
            return qJ.braces(t, {expand: !0, nodupes: !0})
        }

        si.expandBraceExpansion = XJ;

        function Pbe(t, e) {
            let r = pbe.scan(t, Object.assign(Object.assign({}, e), {parts: !0}));
            return r.parts.length === 0 ? [t] : r.parts
        }

        si.getPatternParts = Pbe;

        function ZJ(t, e) {
            return qJ.makeRe(t, e)
        }

        si.makeRe = ZJ;

        function Dbe(t, e) {
            return t.map(r => ZJ(r, e))
        }

        si.convertPatternsToRe = Dbe;

        function Rbe(t, e) {
            return e.some(r => r.test(t))
        }

        si.matchAny = Rbe
    });
    var t3 = w(nk => {
        "use strict";
        Object.defineProperty(nk, "__esModule", {value: !0});
        var Fbe = ek();

        function Nbe(t) {
            let e = Fbe(t);
            return t.forEach(r => {
                r.once("error", i => e.emit("error", i))
            }), e.once("close", () => e3(t)), e.once("end", () => e3(t)), e
        }

        nk.merge = Nbe;

        function e3(t) {
            t.forEach(e => e.emit("close"))
        }
    });
    var r3 = w(Ky => {
        "use strict";
        Object.defineProperty(Ky, "__esModule", {value: !0});

        function Lbe(t) {
            return typeof t == "string"
        }

        Ky.isString = Lbe;

        function Tbe(t) {
            return t === ""
        }

        Ky.isEmpty = Tbe
    });
    var za = w(Wa => {
        "use strict";
        Object.defineProperty(Wa, "__esModule", {value: !0});
        var Obe = FJ();
        Wa.array = Obe;
        var Mbe = NJ();
        Wa.errno = Mbe;
        var Kbe = TJ();
        Wa.fs = Kbe;
        var Ube = OJ();
        Wa.path = Ube;
        var Hbe = $J();
        Wa.pattern = Hbe;
        var Gbe = t3();
        Wa.stream = Gbe;
        var jbe = r3();
        Wa.string = jbe
    });
    var a3 = w(_a => {
        "use strict";
        Object.defineProperty(_a, "__esModule", {value: !0});
        var Fc = za();

        function Ybe(t, e) {
            let r = i3(t), i = n3(t, e.ignore), n = r.filter(l => Fc.pattern.isStaticPattern(l, e)),
                s = r.filter(l => Fc.pattern.isDynamicPattern(l, e)), o = sk(n, i, !1), a = sk(s, i, !0);
            return o.concat(a)
        }

        _a.generate = Ybe;

        function sk(t, e, r) {
            let i = s3(t);
            return "." in i ? [ok(".", t, e, r)] : o3(i, e, r)
        }

        _a.convertPatternsToTasks = sk;

        function i3(t) {
            return Fc.pattern.getPositivePatterns(t)
        }

        _a.getPositivePatterns = i3;

        function n3(t, e) {
            return Fc.pattern.getNegativePatterns(t).concat(e).map(Fc.pattern.convertToPositivePattern)
        }

        _a.getNegativePatternsAsPositive = n3;

        function s3(t) {
            let e = {};
            return t.reduce((r, i) => {
                let n = Fc.pattern.getBaseDirectory(i);
                return n in r ? r[n].push(i) : r[n] = [i], r
            }, e)
        }

        _a.groupPatternsByBaseDirectory = s3;

        function o3(t, e, r) {
            return Object.keys(t).map(i => ok(i, t[i], e, r))
        }

        _a.convertPatternGroupsToTasks = o3;

        function ok(t, e, r, i) {
            return {
                dynamic: i,
                positive: e,
                negative: r,
                base: t,
                patterns: [].concat(e, r.map(Fc.pattern.convertToNegativePattern))
            }
        }

        _a.convertPatternGroupToTask = ok
    });
    var l3 = w(Uy => {
        "use strict";
        Object.defineProperty(Uy, "__esModule", {value: !0});
        Uy.read = void 0;

        function qbe(t, e, r) {
            e.fs.lstat(t, (i, n) => {
                if (i !== null) {
                    A3(r, i);
                    return
                }
                if (!n.isSymbolicLink() || !e.followSymbolicLink) {
                    ak(r, n);
                    return
                }
                e.fs.stat(t, (s, o) => {
                    if (s !== null) {
                        if (e.throwErrorOnBrokenSymbolicLink) {
                            A3(r, s);
                            return
                        }
                        ak(r, n);
                        return
                    }
                    e.markSymbolicLink && (o.isSymbolicLink = () => !0), ak(r, o)
                })
            })
        }

        Uy.read = qbe;

        function A3(t, e) {
            t(e)
        }

        function ak(t, e) {
            t(null, e)
        }
    });
    var c3 = w(Hy => {
        "use strict";
        Object.defineProperty(Hy, "__esModule", {value: !0});
        Hy.read = void 0;

        function Jbe(t, e) {
            let r = e.fs.lstatSync(t);
            if (!r.isSymbolicLink() || !e.followSymbolicLink) return r;
            try {
                let i = e.fs.statSync(t);
                return e.markSymbolicLink && (i.isSymbolicLink = () => !0), i
            } catch (i) {
                if (!e.throwErrorOnBrokenSymbolicLink) return r;
                throw i
            }
        }

        Hy.read = Jbe
    });
    var u3 = w(ZA => {
        "use strict";
        Object.defineProperty(ZA, "__esModule", {value: !0});
        ZA.createFileSystemAdapter = ZA.FILE_SYSTEM_ADAPTER = void 0;
        var Gy = require("fs");
        ZA.FILE_SYSTEM_ADAPTER = {lstat: Gy.lstat, stat: Gy.stat, lstatSync: Gy.lstatSync, statSync: Gy.statSync};

        function Wbe(t) {
            return t === void 0 ? ZA.FILE_SYSTEM_ADAPTER : Object.assign(Object.assign({}, ZA.FILE_SYSTEM_ADAPTER), t)
        }

        ZA.createFileSystemAdapter = Wbe
    });
    var f3 = w(Ak => {
        "use strict";
        Object.defineProperty(Ak, "__esModule", {value: !0});
        var zbe = u3(), g3 = class {
            constructor(e = {}) {
                this._options = e, this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, !0), this.fs = zbe.createFileSystemAdapter(this._options.fs), this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, !1), this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, !0)
            }

            _getValue(e, r) {
                return e != null ? e : r
            }
        };
        Ak.default = g3
    });
    var Nc = w($A => {
        "use strict";
        Object.defineProperty($A, "__esModule", {value: !0});
        $A.statSync = $A.stat = $A.Settings = void 0;
        var h3 = l3(), _be = c3(), lk = f3();
        $A.Settings = lk.default;

        function Vbe(t, e, r) {
            if (typeof e == "function") {
                h3.read(t, ck(), e);
                return
            }
            h3.read(t, ck(e), r)
        }

        $A.stat = Vbe;

        function Xbe(t, e) {
            let r = ck(e);
            return _be.read(t, r)
        }

        $A.statSync = Xbe;

        function ck(t = {}) {
            return t instanceof lk.default ? t : new lk.default(t)
        }
    });
    var d3 = w((Ait, p3) => {
        p3.exports = Zbe;

        function Zbe(t, e) {
            var r, i, n, s = !0;
            Array.isArray(t) ? (r = [], i = t.length) : (n = Object.keys(t), r = {}, i = n.length);

            function o(l) {
                function c() {
                    e && e(l, r), e = null
                }

                s ? process.nextTick(c) : c()
            }

            function a(l, c, u) {
                r[l] = u, (--i == 0 || c) && o(c)
            }

            i ? n ? n.forEach(function (l) {
                t[l](function (c, u) {
                    a(l, c, u)
                })
            }) : t.forEach(function (l, c) {
                l(function (u, g) {
                    a(c, u, g)
                })
            }) : o(null), s = !1
        }
    });
    var uk = w(jy => {
        "use strict";
        Object.defineProperty(jy, "__esModule", {value: !0});
        jy.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;
        var Yy = process.versions.node.split(".");
        if (Yy[0] === void 0 || Yy[1] === void 0) throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);
        var C3 = Number.parseInt(Yy[0], 10), $be = Number.parseInt(Yy[1], 10), m3 = 10, eQe = 10, tQe = C3 > m3,
            rQe = C3 === m3 && $be >= eQe;
        jy.IS_SUPPORT_READDIR_WITH_FILE_TYPES = tQe || rQe
    });
    var I3 = w(qy => {
        "use strict";
        Object.defineProperty(qy, "__esModule", {value: !0});
        qy.createDirentFromStats = void 0;
        var E3 = class {
            constructor(e, r) {
                this.name = e, this.isBlockDevice = r.isBlockDevice.bind(r), this.isCharacterDevice = r.isCharacterDevice.bind(r), this.isDirectory = r.isDirectory.bind(r), this.isFIFO = r.isFIFO.bind(r), this.isFile = r.isFile.bind(r), this.isSocket = r.isSocket.bind(r), this.isSymbolicLink = r.isSymbolicLink.bind(r)
            }
        };

        function iQe(t, e) {
            return new E3(t, e)
        }

        qy.createDirentFromStats = iQe
    });
    var gk = w(Jy => {
        "use strict";
        Object.defineProperty(Jy, "__esModule", {value: !0});
        Jy.fs = void 0;
        var nQe = I3();
        Jy.fs = nQe
    });
    var fk = w(Wy => {
        "use strict";
        Object.defineProperty(Wy, "__esModule", {value: !0});
        Wy.joinPathSegments = void 0;

        function sQe(t, e, r) {
            return t.endsWith(r) ? t + e : t + r + e
        }

        Wy.joinPathSegments = sQe
    });
    var v3 = w(el => {
        "use strict";
        Object.defineProperty(el, "__esModule", {value: !0});
        el.readdir = el.readdirWithFileTypes = el.read = void 0;
        var oQe = Nc(), y3 = d3(), aQe = uk(), w3 = gk(), B3 = fk();

        function AQe(t, e, r) {
            if (!e.stats && aQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
                b3(t, e, r);
                return
            }
            Q3(t, e, r)
        }

        el.read = AQe;

        function b3(t, e, r) {
            e.fs.readdir(t, {withFileTypes: !0}, (i, n) => {
                if (i !== null) {
                    zy(r, i);
                    return
                }
                let s = n.map(a => ({
                    dirent: a,
                    name: a.name,
                    path: B3.joinPathSegments(t, a.name, e.pathSegmentSeparator)
                }));
                if (!e.followSymbolicLinks) {
                    hk(r, s);
                    return
                }
                let o = s.map(a => lQe(a, e));
                y3(o, (a, l) => {
                    if (a !== null) {
                        zy(r, a);
                        return
                    }
                    hk(r, l)
                })
            })
        }

        el.readdirWithFileTypes = b3;

        function lQe(t, e) {
            return r => {
                if (!t.dirent.isSymbolicLink()) {
                    r(null, t);
                    return
                }
                e.fs.stat(t.path, (i, n) => {
                    if (i !== null) {
                        if (e.throwErrorOnBrokenSymbolicLink) {
                            r(i);
                            return
                        }
                        r(null, t);
                        return
                    }
                    t.dirent = w3.fs.createDirentFromStats(t.name, n), r(null, t)
                })
            }
        }

        function Q3(t, e, r) {
            e.fs.readdir(t, (i, n) => {
                if (i !== null) {
                    zy(r, i);
                    return
                }
                let s = n.map(o => {
                    let a = B3.joinPathSegments(t, o, e.pathSegmentSeparator);
                    return l => {
                        oQe.stat(a, e.fsStatSettings, (c, u) => {
                            if (c !== null) {
                                l(c);
                                return
                            }
                            let g = {name: o, path: a, dirent: w3.fs.createDirentFromStats(o, u)};
                            e.stats && (g.stats = u), l(null, g)
                        })
                    }
                });
                y3(s, (o, a) => {
                    if (o !== null) {
                        zy(r, o);
                        return
                    }
                    hk(r, a)
                })
            })
        }

        el.readdir = Q3;

        function zy(t, e) {
            t(e)
        }

        function hk(t, e) {
            t(null, e)
        }
    });
    var D3 = w(tl => {
        "use strict";
        Object.defineProperty(tl, "__esModule", {value: !0});
        tl.readdir = tl.readdirWithFileTypes = tl.read = void 0;
        var cQe = Nc(), uQe = uk(), S3 = gk(), k3 = fk();

        function gQe(t, e) {
            return !e.stats && uQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES ? x3(t, e) : P3(t, e)
        }

        tl.read = gQe;

        function x3(t, e) {
            return e.fs.readdirSync(t, {withFileTypes: !0}).map(i => {
                let n = {dirent: i, name: i.name, path: k3.joinPathSegments(t, i.name, e.pathSegmentSeparator)};
                if (n.dirent.isSymbolicLink() && e.followSymbolicLinks) try {
                    let s = e.fs.statSync(n.path);
                    n.dirent = S3.fs.createDirentFromStats(n.name, s)
                } catch (s) {
                    if (e.throwErrorOnBrokenSymbolicLink) throw s
                }
                return n
            })
        }

        tl.readdirWithFileTypes = x3;

        function P3(t, e) {
            return e.fs.readdirSync(t).map(i => {
                let n = k3.joinPathSegments(t, i, e.pathSegmentSeparator), s = cQe.statSync(n, e.fsStatSettings),
                    o = {name: i, path: n, dirent: S3.fs.createDirentFromStats(i, s)};
                return e.stats && (o.stats = s), o
            })
        }

        tl.readdir = P3
    });
    var R3 = w(rl => {
        "use strict";
        Object.defineProperty(rl, "__esModule", {value: !0});
        rl.createFileSystemAdapter = rl.FILE_SYSTEM_ADAPTER = void 0;
        var Og = require("fs");
        rl.FILE_SYSTEM_ADAPTER = {
            lstat: Og.lstat,
            stat: Og.stat,
            lstatSync: Og.lstatSync,
            statSync: Og.statSync,
            readdir: Og.readdir,
            readdirSync: Og.readdirSync
        };

        function fQe(t) {
            return t === void 0 ? rl.FILE_SYSTEM_ADAPTER : Object.assign(Object.assign({}, rl.FILE_SYSTEM_ADAPTER), t)
        }

        rl.createFileSystemAdapter = fQe
    });
    var N3 = w(pk => {
        "use strict";
        Object.defineProperty(pk, "__esModule", {value: !0});
        var hQe = require("path"), pQe = Nc(), dQe = R3(), F3 = class {
            constructor(e = {}) {
                this._options = e, this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, !1), this.fs = dQe.createFileSystemAdapter(this._options.fs), this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, hQe.sep), this.stats = this._getValue(this._options.stats, !1), this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, !0), this.fsStatSettings = new pQe.Settings({
                    followSymbolicLink: this.followSymbolicLinks,
                    fs: this.fs,
                    throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink
                })
            }

            _getValue(e, r) {
                return e != null ? e : r
            }
        };
        pk.default = F3
    });
    var _y = w(il => {
        "use strict";
        Object.defineProperty(il, "__esModule", {value: !0});
        il.Settings = il.scandirSync = il.scandir = void 0;
        var L3 = v3(), CQe = D3(), dk = N3();
        il.Settings = dk.default;

        function mQe(t, e, r) {
            if (typeof e == "function") {
                L3.read(t, Ck(), e);
                return
            }
            L3.read(t, Ck(e), r)
        }

        il.scandir = mQe;

        function EQe(t, e) {
            let r = Ck(e);
            return CQe.read(t, r)
        }

        il.scandirSync = EQe;

        function Ck(t = {}) {
            return t instanceof dk.default ? t : new dk.default(t)
        }
    });
    var O3 = w((mit, T3) => {
        "use strict";

        function IQe(t) {
            var e = new t, r = e;

            function i() {
                var s = e;
                return s.next ? e = s.next : (e = new t, r = e), s.next = null, s
            }

            function n(s) {
                r.next = s, r = s
            }

            return {get: i, release: n}
        }

        T3.exports = IQe
    });
    var K3 = w((Eit, mk) => {
        "use strict";
        var yQe = O3();

        function M3(t, e, r) {
            if (typeof t == "function" && (r = e, e = t, t = null), r < 1) throw new Error("fastqueue concurrency must be greater than 1");
            var i = yQe(wQe), n = null, s = null, o = 0, a = null, l = {
                push: m,
                drain: Wo,
                saturated: Wo,
                pause: u,
                paused: !1,
                concurrency: r,
                running: c,
                resume: h,
                idle: p,
                length: g,
                getQueue: f,
                unshift: y,
                empty: Wo,
                kill: S,
                killAndDrain: k,
                error: T
            };
            return l;

            function c() {
                return o
            }

            function u() {
                l.paused = !0
            }

            function g() {
                for (var Y = n, j = 0; Y;) Y = Y.next, j++;
                return j
            }

            function f() {
                for (var Y = n, j = []; Y;) j.push(Y.value), Y = Y.next;
                return j
            }

            function h() {
                if (!!l.paused) {
                    l.paused = !1;
                    for (var Y = 0; Y < l.concurrency; Y++) o++, b()
                }
            }

            function p() {
                return o === 0 && l.length() === 0
            }

            function m(Y, j) {
                var Z = i.get();
                Z.context = t, Z.release = b, Z.value = Y, Z.callback = j || Wo, Z.errorHandler = a, o === l.concurrency || l.paused ? s ? (s.next = Z, s = Z) : (n = Z, s = Z, l.saturated()) : (o++, e.call(t, Z.value, Z.worked))
            }

            function y(Y, j) {
                var Z = i.get();
                Z.context = t, Z.release = b, Z.value = Y, Z.callback = j || Wo, o === l.concurrency || l.paused ? n ? (Z.next = n, n = Z) : (n = Z, s = Z, l.saturated()) : (o++, e.call(t, Z.value, Z.worked))
            }

            function b(Y) {
                Y && i.release(Y);
                var j = n;
                j ? l.paused ? o-- : (s === n && (s = null), n = j.next, j.next = null, e.call(t, j.value, j.worked), s === null && l.empty()) : --o == 0 && l.drain()
            }

            function S() {
                n = null, s = null, l.drain = Wo
            }

            function k() {
                n = null, s = null, l.drain(), l.drain = Wo
            }

            function T(Y) {
                a = Y
            }
        }

        function Wo() {
        }

        function wQe() {
            this.value = null, this.callback = Wo, this.next = null, this.release = Wo, this.context = null, this.errorHandler = null;
            var t = this;
            this.worked = function (r, i) {
                var n = t.callback, s = t.errorHandler, o = t.value;
                t.value = null, t.callback = Wo, t.errorHandler && s(r, o), n.call(t.context, r, i), t.release(t)
            }
        }

        function BQe(t, e, r) {
            typeof t == "function" && (r = e, e = t, t = null);

            function i(c, u) {
                e.call(this, c).then(function (g) {
                    u(null, g)
                }, u)
            }

            var n = M3(t, i, r), s = n.push, o = n.unshift;
            return n.push = a, n.unshift = l, n;

            function a(c) {
                return new Promise(function (u, g) {
                    s(c, function (f, h) {
                        if (f) {
                            g(f);
                            return
                        }
                        u(h)
                    })
                })
            }

            function l(c) {
                return new Promise(function (u, g) {
                    o(c, function (f, h) {
                        if (f) {
                            g(f);
                            return
                        }
                        u(h)
                    })
                })
            }
        }

        mk.exports = M3;
        mk.exports.promise = BQe
    });
    var Vy = w(zo => {
        "use strict";
        Object.defineProperty(zo, "__esModule", {value: !0});
        zo.joinPathSegments = zo.replacePathSegmentSeparator = zo.isAppliedFilter = zo.isFatalError = void 0;

        function bQe(t, e) {
            return t.errorFilter === null ? !0 : !t.errorFilter(e)
        }

        zo.isFatalError = bQe;

        function QQe(t, e) {
            return t === null || t(e)
        }

        zo.isAppliedFilter = QQe;

        function vQe(t, e) {
            return t.split(/[/\\]/).join(e)
        }

        zo.replacePathSegmentSeparator = vQe;

        function SQe(t, e, r) {
            return t === "" ? e : t.endsWith(r) ? t + e : t + r + e
        }

        zo.joinPathSegments = SQe
    });
    var Ik = w(Ek => {
        "use strict";
        Object.defineProperty(Ek, "__esModule", {value: !0});
        var kQe = Vy(), U3 = class {
            constructor(e, r) {
                this._root = e, this._settings = r, this._root = kQe.replacePathSegmentSeparator(e, r.pathSegmentSeparator)
            }
        };
        Ek.default = U3
    });
    var wk = w(yk => {
        "use strict";
        Object.defineProperty(yk, "__esModule", {value: !0});
        var xQe = require("events"), PQe = _y(), DQe = K3(), Xy = Vy(), RQe = Ik(), H3 = class extends RQe.default {
            constructor(e, r) {
                super(e, r);
                this._settings = r, this._scandir = PQe.scandir, this._emitter = new xQe.EventEmitter, this._queue = DQe(this._worker.bind(this), this._settings.concurrency), this._isFatalError = !1, this._isDestroyed = !1, this._queue.drain = () => {
                    this._isFatalError || this._emitter.emit("end")
                }
            }

            read() {
                return this._isFatalError = !1, this._isDestroyed = !1, setImmediate(() => {
                    this._pushToQueue(this._root, this._settings.basePath)
                }), this._emitter
            }

            get isDestroyed() {
                return this._isDestroyed
            }

            destroy() {
                if (this._isDestroyed) throw new Error("The reader is already destroyed");
                this._isDestroyed = !0, this._queue.killAndDrain()
            }

            onEntry(e) {
                this._emitter.on("entry", e)
            }

            onError(e) {
                this._emitter.once("error", e)
            }

            onEnd(e) {
                this._emitter.once("end", e)
            }

            _pushToQueue(e, r) {
                let i = {directory: e, base: r};
                this._queue.push(i, n => {
                    n !== null && this._handleError(n)
                })
            }

            _worker(e, r) {
                this._scandir(e.directory, this._settings.fsScandirSettings, (i, n) => {
                    if (i !== null) {
                        r(i, void 0);
                        return
                    }
                    for (let s of n) this._handleEntry(s, e.base);
                    r(null, void 0)
                })
            }

            _handleError(e) {
                this._isDestroyed || !Xy.isFatalError(this._settings, e) || (this._isFatalError = !0, this._isDestroyed = !0, this._emitter.emit("error", e))
            }

            _handleEntry(e, r) {
                if (this._isDestroyed || this._isFatalError) return;
                let i = e.path;
                r !== void 0 && (e.path = Xy.joinPathSegments(r, e.name, this._settings.pathSegmentSeparator)), Xy.isAppliedFilter(this._settings.entryFilter, e) && this._emitEntry(e), e.dirent.isDirectory() && Xy.isAppliedFilter(this._settings.deepFilter, e) && this._pushToQueue(i, e.path)
            }

            _emitEntry(e) {
                this._emitter.emit("entry", e)
            }
        };
        yk.default = H3
    });
    var j3 = w(Bk => {
        "use strict";
        Object.defineProperty(Bk, "__esModule", {value: !0});
        var FQe = wk(), G3 = class {
            constructor(e, r) {
                this._root = e, this._settings = r, this._reader = new FQe.default(this._root, this._settings), this._storage = new Set
            }

            read(e) {
                this._reader.onError(r => {
                    NQe(e, r)
                }), this._reader.onEntry(r => {
                    this._storage.add(r)
                }), this._reader.onEnd(() => {
                    LQe(e, [...this._storage])
                }), this._reader.read()
            }
        };
        Bk.default = G3;

        function NQe(t, e) {
            t(e)
        }

        function LQe(t, e) {
            t(null, e)
        }
    });
    var q3 = w(bk => {
        "use strict";
        Object.defineProperty(bk, "__esModule", {value: !0});
        var TQe = require("stream"), OQe = wk(), Y3 = class {
            constructor(e, r) {
                this._root = e, this._settings = r, this._reader = new OQe.default(this._root, this._settings), this._stream = new TQe.Readable({
                    objectMode: !0,
                    read: () => {
                    },
                    destroy: () => {
                        this._reader.isDestroyed || this._reader.destroy()
                    }
                })
            }

            read() {
                return this._reader.onError(e => {
                    this._stream.emit("error", e)
                }), this._reader.onEntry(e => {
                    this._stream.push(e)
                }), this._reader.onEnd(() => {
                    this._stream.push(null)
                }), this._reader.read(), this._stream
            }
        };
        bk.default = Y3
    });
    var W3 = w(Qk => {
        "use strict";
        Object.defineProperty(Qk, "__esModule", {value: !0});
        var MQe = _y(), Zy = Vy(), KQe = Ik(), J3 = class extends KQe.default {
            constructor() {
                super(...arguments);
                this._scandir = MQe.scandirSync, this._storage = new Set, this._queue = new Set
            }

            read() {
                return this._pushToQueue(this._root, this._settings.basePath), this._handleQueue(), [...this._storage]
            }

            _pushToQueue(e, r) {
                this._queue.add({directory: e, base: r})
            }

            _handleQueue() {
                for (let e of this._queue.values()) this._handleDirectory(e.directory, e.base)
            }

            _handleDirectory(e, r) {
                try {
                    let i = this._scandir(e, this._settings.fsScandirSettings);
                    for (let n of i) this._handleEntry(n, r)
                } catch (i) {
                    this._handleError(i)
                }
            }

            _handleError(e) {
                if (!!Zy.isFatalError(this._settings, e)) throw e
            }

            _handleEntry(e, r) {
                let i = e.path;
                r !== void 0 && (e.path = Zy.joinPathSegments(r, e.name, this._settings.pathSegmentSeparator)), Zy.isAppliedFilter(this._settings.entryFilter, e) && this._pushToStorage(e), e.dirent.isDirectory() && Zy.isAppliedFilter(this._settings.deepFilter, e) && this._pushToQueue(i, e.path)
            }

            _pushToStorage(e) {
                this._storage.add(e)
            }
        };
        Qk.default = J3
    });
    var _3 = w(vk => {
        "use strict";
        Object.defineProperty(vk, "__esModule", {value: !0});
        var UQe = W3(), z3 = class {
            constructor(e, r) {
                this._root = e, this._settings = r, this._reader = new UQe.default(this._root, this._settings)
            }

            read() {
                return this._reader.read()
            }
        };
        vk.default = z3
    });
    var X3 = w(Sk => {
        "use strict";
        Object.defineProperty(Sk, "__esModule", {value: !0});
        var HQe = require("path"), GQe = _y(), V3 = class {
            constructor(e = {}) {
                this._options = e, this.basePath = this._getValue(this._options.basePath, void 0), this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY), this.deepFilter = this._getValue(this._options.deepFilter, null), this.entryFilter = this._getValue(this._options.entryFilter, null), this.errorFilter = this._getValue(this._options.errorFilter, null), this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, HQe.sep), this.fsScandirSettings = new GQe.Settings({
                    followSymbolicLinks: this._options.followSymbolicLinks,
                    fs: this._options.fs,
                    pathSegmentSeparator: this._options.pathSegmentSeparator,
                    stats: this._options.stats,
                    throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink
                })
            }

            _getValue(e, r) {
                return e != null ? e : r
            }
        };
        Sk.default = V3
    });
    var xk = w(_o => {
        "use strict";
        Object.defineProperty(_o, "__esModule", {value: !0});
        _o.Settings = _o.walkStream = _o.walkSync = _o.walk = void 0;
        var Z3 = j3(), jQe = q3(), YQe = _3(), kk = X3();
        _o.Settings = kk.default;

        function qQe(t, e, r) {
            if (typeof e == "function") {
                new Z3.default(t, $y()).read(e);
                return
            }
            new Z3.default(t, $y(e)).read(r)
        }

        _o.walk = qQe;

        function JQe(t, e) {
            let r = $y(e);
            return new YQe.default(t, r).read()
        }

        _o.walkSync = JQe;

        function WQe(t, e) {
            let r = $y(e);
            return new jQe.default(t, r).read()
        }

        _o.walkStream = WQe;

        function $y(t = {}) {
            return t instanceof kk.default ? t : new kk.default(t)
        }
    });
    var Dk = w(Pk => {
        "use strict";
        Object.defineProperty(Pk, "__esModule", {value: !0});
        var zQe = require("path"), _Qe = Nc(), $3 = za(), eW = class {
            constructor(e) {
                this._settings = e, this._fsStatSettings = new _Qe.Settings({
                    followSymbolicLink: this._settings.followSymbolicLinks,
                    fs: this._settings.fs,
                    throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks
                })
            }

            _getFullEntryPath(e) {
                return zQe.resolve(this._settings.cwd, e)
            }

            _makeEntry(e, r) {
                let i = {name: r, path: r, dirent: $3.fs.createDirentFromStats(r, e)};
                return this._settings.stats && (i.stats = e), i
            }

            _isFatalError(e) {
                return !$3.errno.isEnoentCodeError(e) && !this._settings.suppressErrors
            }
        };
        Pk.default = eW
    });
    var Fk = w(Rk => {
        "use strict";
        Object.defineProperty(Rk, "__esModule", {value: !0});
        var VQe = require("stream"), XQe = Nc(), ZQe = xk(), $Qe = Dk(), tW = class extends $Qe.default {
            constructor() {
                super(...arguments);
                this._walkStream = ZQe.walkStream, this._stat = XQe.stat
            }

            dynamic(e, r) {
                return this._walkStream(e, r)
            }

            static(e, r) {
                let i = e.map(this._getFullEntryPath, this), n = new VQe.PassThrough({objectMode: !0});
                n._write = (s, o, a) => this._getEntry(i[s], e[s], r).then(l => {
                    l !== null && r.entryFilter(l) && n.push(l), s === i.length - 1 && n.end(), a()
                }).catch(a);
                for (let s = 0; s < i.length; s++) n.write(s);
                return n
            }

            _getEntry(e, r, i) {
                return this._getStat(e).then(n => this._makeEntry(n, r)).catch(n => {
                    if (i.errorFilter(n)) return null;
                    throw n
                })
            }

            _getStat(e) {
                return new Promise((r, i) => {
                    this._stat(e, this._fsStatSettings, (n, s) => n === null ? r(s) : i(n))
                })
            }
        };
        Rk.default = tW
    });
    var iW = w(Nk => {
        "use strict";
        Object.defineProperty(Nk, "__esModule", {value: !0});
        var Mg = za(), rW = class {
            constructor(e, r, i) {
                this._patterns = e, this._settings = r, this._micromatchOptions = i, this._storage = [], this._fillStorage()
            }

            _fillStorage() {
                let e = Mg.pattern.expandPatternsWithBraceExpansion(this._patterns);
                for (let r of e) {
                    let i = this._getPatternSegments(r), n = this._splitSegmentsIntoSections(i);
                    this._storage.push({complete: n.length <= 1, pattern: r, segments: i, sections: n})
                }
            }

            _getPatternSegments(e) {
                return Mg.pattern.getPatternParts(e, this._micromatchOptions).map(i => Mg.pattern.isDynamicPattern(i, this._settings) ? {
                    dynamic: !0,
                    pattern: i,
                    patternRe: Mg.pattern.makeRe(i, this._micromatchOptions)
                } : {dynamic: !1, pattern: i})
            }

            _splitSegmentsIntoSections(e) {
                return Mg.array.splitWhen(e, r => r.dynamic && Mg.pattern.hasGlobStar(r.pattern))
            }
        };
        Nk.default = rW
    });
    var sW = w(Lk => {
        "use strict";
        Object.defineProperty(Lk, "__esModule", {value: !0});
        var eve = iW(), nW = class extends eve.default {
            match(e) {
                let r = e.split("/"), i = r.length, n = this._storage.filter(s => !s.complete || s.segments.length > i);
                for (let s of n) {
                    let o = s.sections[0];
                    if (!s.complete && i > o.length || r.every((l, c) => {
                        let u = s.segments[c];
                        return !!(u.dynamic && u.patternRe.test(l) || !u.dynamic && u.pattern === l)
                    })) return !0
                }
                return !1
            }
        };
        Lk.default = nW
    });
    var aW = w(Tk => {
        "use strict";
        Object.defineProperty(Tk, "__esModule", {value: !0});
        var ew = za(), tve = sW(), oW = class {
            constructor(e, r) {
                this._settings = e, this._micromatchOptions = r
            }

            getFilter(e, r, i) {
                let n = this._getMatcher(r), s = this._getNegativePatternsRe(i);
                return o => this._filter(e, o, n, s)
            }

            _getMatcher(e) {
                return new tve.default(e, this._settings, this._micromatchOptions)
            }

            _getNegativePatternsRe(e) {
                let r = e.filter(ew.pattern.isAffectDepthOfReadingPattern);
                return ew.pattern.convertPatternsToRe(r, this._micromatchOptions)
            }

            _filter(e, r, i, n) {
                let s = this._getEntryLevel(e, r.path);
                if (this._isSkippedByDeep(s) || this._isSkippedSymbolicLink(r)) return !1;
                let o = ew.path.removeLeadingDotSegment(r.path);
                return this._isSkippedByPositivePatterns(o, i) ? !1 : this._isSkippedByNegativePatterns(o, n)
            }

            _isSkippedByDeep(e) {
                return e >= this._settings.deep
            }

            _isSkippedSymbolicLink(e) {
                return !this._settings.followSymbolicLinks && e.dirent.isSymbolicLink()
            }

            _getEntryLevel(e, r) {
                let i = e.split("/").length;
                return r.split("/").length - (e === "" ? 0 : i)
            }

            _isSkippedByPositivePatterns(e, r) {
                return !this._settings.baseNameMatch && !r.match(e)
            }

            _isSkippedByNegativePatterns(e, r) {
                return !ew.pattern.matchAny(e, r)
            }
        };
        Tk.default = oW
    });
    var lW = w(Ok => {
        "use strict";
        Object.defineProperty(Ok, "__esModule", {value: !0});
        var od = za(), AW = class {
            constructor(e, r) {
                this._settings = e, this._micromatchOptions = r, this.index = new Map
            }

            getFilter(e, r) {
                let i = od.pattern.convertPatternsToRe(e, this._micromatchOptions),
                    n = od.pattern.convertPatternsToRe(r, this._micromatchOptions);
                return s => this._filter(s, i, n)
            }

            _filter(e, r, i) {
                if (this._settings.unique) {
                    if (this._isDuplicateEntry(e)) return !1;
                    this._createIndexRecord(e)
                }
                if (this._onlyFileFilter(e) || this._onlyDirectoryFilter(e) || this._isSkippedByAbsoluteNegativePatterns(e, i)) return !1;
                let n = this._settings.baseNameMatch ? e.name : e.path;
                return this._isMatchToPatterns(n, r) && !this._isMatchToPatterns(e.path, i)
            }

            _isDuplicateEntry(e) {
                return this.index.has(e.path)
            }

            _createIndexRecord(e) {
                this.index.set(e.path, void 0)
            }

            _onlyFileFilter(e) {
                return this._settings.onlyFiles && !e.dirent.isFile()
            }

            _onlyDirectoryFilter(e) {
                return this._settings.onlyDirectories && !e.dirent.isDirectory()
            }

            _isSkippedByAbsoluteNegativePatterns(e, r) {
                if (!this._settings.absolute) return !1;
                let i = od.path.makeAbsolute(this._settings.cwd, e.path);
                return this._isMatchToPatterns(i, r)
            }

            _isMatchToPatterns(e, r) {
                let i = od.path.removeLeadingDotSegment(e);
                return od.pattern.matchAny(i, r)
            }
        };
        Ok.default = AW
    });
    var uW = w(Mk => {
        "use strict";
        Object.defineProperty(Mk, "__esModule", {value: !0});
        var rve = za(), cW = class {
            constructor(e) {
                this._settings = e
            }

            getFilter() {
                return e => this._isNonFatalError(e)
            }

            _isNonFatalError(e) {
                return rve.errno.isEnoentCodeError(e) || this._settings.suppressErrors
            }
        };
        Mk.default = cW
    });
    var hW = w(Kk => {
        "use strict";
        Object.defineProperty(Kk, "__esModule", {value: !0});
        var gW = za(), fW = class {
            constructor(e) {
                this._settings = e
            }

            getTransformer() {
                return e => this._transform(e)
            }

            _transform(e) {
                let r = e.path;
                return this._settings.absolute && (r = gW.path.makeAbsolute(this._settings.cwd, r), r = gW.path.unixify(r)), this._settings.markDirectories && e.dirent.isDirectory() && (r += "/"), this._settings.objectMode ? Object.assign(Object.assign({}, e), {path: r}) : r
            }
        };
        Kk.default = fW
    });
    var tw = w(Uk => {
        "use strict";
        Object.defineProperty(Uk, "__esModule", {value: !0});
        var ive = require("path"), nve = aW(), sve = lW(), ove = uW(), ave = hW(), pW = class {
            constructor(e) {
                this._settings = e, this.errorFilter = new ove.default(this._settings), this.entryFilter = new sve.default(this._settings, this._getMicromatchOptions()), this.deepFilter = new nve.default(this._settings, this._getMicromatchOptions()), this.entryTransformer = new ave.default(this._settings)
            }

            _getRootDirectory(e) {
                return ive.resolve(this._settings.cwd, e.base)
            }

            _getReaderOptions(e) {
                let r = e.base === "." ? "" : e.base;
                return {
                    basePath: r,
                    pathSegmentSeparator: "/",
                    concurrency: this._settings.concurrency,
                    deepFilter: this.deepFilter.getFilter(r, e.positive, e.negative),
                    entryFilter: this.entryFilter.getFilter(e.positive, e.negative),
                    errorFilter: this.errorFilter.getFilter(),
                    followSymbolicLinks: this._settings.followSymbolicLinks,
                    fs: this._settings.fs,
                    stats: this._settings.stats,
                    throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,
                    transform: this.entryTransformer.getTransformer()
                }
            }

            _getMicromatchOptions() {
                return {
                    dot: this._settings.dot,
                    matchBase: this._settings.baseNameMatch,
                    nobrace: !this._settings.braceExpansion,
                    nocase: !this._settings.caseSensitiveMatch,
                    noext: !this._settings.extglob,
                    noglobstar: !this._settings.globstar,
                    posix: !0,
                    strictSlashes: !1
                }
            }
        };
        Uk.default = pW
    });
    var CW = w(Hk => {
        "use strict";
        Object.defineProperty(Hk, "__esModule", {value: !0});
        var Ave = Fk(), lve = tw(), dW = class extends lve.default {
            constructor() {
                super(...arguments);
                this._reader = new Ave.default(this._settings)
            }

            read(e) {
                let r = this._getRootDirectory(e), i = this._getReaderOptions(e), n = [];
                return new Promise((s, o) => {
                    let a = this.api(r, e, i);
                    a.once("error", o), a.on("data", l => n.push(i.transform(l))), a.once("end", () => s(n))
                })
            }

            api(e, r, i) {
                return r.dynamic ? this._reader.dynamic(e, i) : this._reader.static(r.patterns, i)
            }
        };
        Hk.default = dW
    });
    var EW = w(Gk => {
        "use strict";
        Object.defineProperty(Gk, "__esModule", {value: !0});
        var cve = require("stream"), uve = Fk(), gve = tw(), mW = class extends gve.default {
            constructor() {
                super(...arguments);
                this._reader = new uve.default(this._settings)
            }

            read(e) {
                let r = this._getRootDirectory(e), i = this._getReaderOptions(e), n = this.api(r, e, i),
                    s = new cve.Readable({
                        objectMode: !0, read: () => {
                        }
                    });
                return n.once("error", o => s.emit("error", o)).on("data", o => s.emit("data", i.transform(o))).once("end", () => s.emit("end")), s.once("close", () => n.destroy()), s
            }

            api(e, r, i) {
                return r.dynamic ? this._reader.dynamic(e, i) : this._reader.static(r.patterns, i)
            }
        };
        Gk.default = mW
    });
    var yW = w(jk => {
        "use strict";
        Object.defineProperty(jk, "__esModule", {value: !0});
        var fve = Nc(), hve = xk(), pve = Dk(), IW = class extends pve.default {
            constructor() {
                super(...arguments);
                this._walkSync = hve.walkSync, this._statSync = fve.statSync
            }

            dynamic(e, r) {
                return this._walkSync(e, r)
            }

            static(e, r) {
                let i = [];
                for (let n of e) {
                    let s = this._getFullEntryPath(n), o = this._getEntry(s, n, r);
                    o === null || !r.entryFilter(o) || i.push(o)
                }
                return i
            }

            _getEntry(e, r, i) {
                try {
                    let n = this._getStat(e);
                    return this._makeEntry(n, r)
                } catch (n) {
                    if (i.errorFilter(n)) return null;
                    throw n
                }
            }

            _getStat(e) {
                return this._statSync(e, this._fsStatSettings)
            }
        };
        jk.default = IW
    });
    var BW = w(Yk => {
        "use strict";
        Object.defineProperty(Yk, "__esModule", {value: !0});
        var dve = yW(), Cve = tw(), wW = class extends Cve.default {
            constructor() {
                super(...arguments);
                this._reader = new dve.default(this._settings)
            }

            read(e) {
                let r = this._getRootDirectory(e), i = this._getReaderOptions(e);
                return this.api(r, e, i).map(i.transform)
            }

            api(e, r, i) {
                return r.dynamic ? this._reader.dynamic(e, i) : this._reader.static(r.patterns, i)
            }
        };
        Yk.default = wW
    });
    var QW = w(ad => {
        "use strict";
        Object.defineProperty(ad, "__esModule", {value: !0});
        var Kg = require("fs"), mve = require("os"), Eve = mve.cpus().length;
        ad.DEFAULT_FILE_SYSTEM_ADAPTER = {
            lstat: Kg.lstat,
            lstatSync: Kg.lstatSync,
            stat: Kg.stat,
            statSync: Kg.statSync,
            readdir: Kg.readdir,
            readdirSync: Kg.readdirSync
        };
        var bW = class {
            constructor(e = {}) {
                this._options = e, this.absolute = this._getValue(this._options.absolute, !1), this.baseNameMatch = this._getValue(this._options.baseNameMatch, !1), this.braceExpansion = this._getValue(this._options.braceExpansion, !0), this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, !0), this.concurrency = this._getValue(this._options.concurrency, Eve), this.cwd = this._getValue(this._options.cwd, process.cwd()), this.deep = this._getValue(this._options.deep, Infinity), this.dot = this._getValue(this._options.dot, !1), this.extglob = this._getValue(this._options.extglob, !0), this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, !0), this.fs = this._getFileSystemMethods(this._options.fs), this.globstar = this._getValue(this._options.globstar, !0), this.ignore = this._getValue(this._options.ignore, []), this.markDirectories = this._getValue(this._options.markDirectories, !1), this.objectMode = this._getValue(this._options.objectMode, !1), this.onlyDirectories = this._getValue(this._options.onlyDirectories, !1), this.onlyFiles = this._getValue(this._options.onlyFiles, !0), this.stats = this._getValue(this._options.stats, !1), this.suppressErrors = this._getValue(this._options.suppressErrors, !1), this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, !1), this.unique = this._getValue(this._options.unique, !0), this.onlyDirectories && (this.onlyFiles = !1), this.stats && (this.objectMode = !0)
            }

            _getValue(e, r) {
                return e === void 0 ? r : e
            }

            _getFileSystemMethods(e = {}) {
                return Object.assign(Object.assign({}, ad.DEFAULT_FILE_SYSTEM_ADAPTER), e)
            }
        };
        ad.default = bW
    });
    var rw = w((jit, vW) => {
        "use strict";
        var SW = a3(), Ive = CW(), yve = EW(), wve = BW(), qk = QW(), Lc = za();

        async function Wk(t, e) {
            Ug(t);
            let r = Jk(t, Ive.default, e), i = await Promise.all(r);
            return Lc.array.flatten(i)
        }

        (function (t) {
            function e(o, a) {
                Ug(o);
                let l = Jk(o, wve.default, a);
                return Lc.array.flatten(l)
            }

            t.sync = e;

            function r(o, a) {
                Ug(o);
                let l = Jk(o, yve.default, a);
                return Lc.stream.merge(l)
            }

            t.stream = r;

            function i(o, a) {
                Ug(o);
                let l = [].concat(o), c = new qk.default(a);
                return SW.generate(l, c)
            }

            t.generateTasks = i;

            function n(o, a) {
                Ug(o);
                let l = new qk.default(a);
                return Lc.pattern.isDynamicPattern(o, l)
            }

            t.isDynamicPattern = n;

            function s(o) {
                return Ug(o), Lc.path.escape(o)
            }

            t.escapePath = s
        })(Wk || (Wk = {}));

        function Jk(t, e, r) {
            let i = [].concat(t), n = new qk.default(r), s = SW.generate(i, n), o = new e(n);
            return s.map(o.read, o)
        }

        function Ug(t) {
            if (![].concat(t).every(i => Lc.string.isString(i) && !Lc.string.isEmpty(i))) throw new TypeError("Patterns must be a string (non empty) or an array of strings")
        }

        vW.exports = Wk
    });
    var xW = w(Tc => {
        "use strict";
        var {promisify: Bve} = require("util"), kW = require("fs");

        async function zk(t, e, r) {
            if (typeof r != "string") throw new TypeError(`Expected a string, got ${typeof r}`);
            try {
                return (await Bve(kW[t])(r))[e]()
            } catch (i) {
                if (i.code === "ENOENT") return !1;
                throw i
            }
        }

        function _k(t, e, r) {
            if (typeof r != "string") throw new TypeError(`Expected a string, got ${typeof r}`);
            try {
                return kW[t](r)[e]()
            } catch (i) {
                if (i.code === "ENOENT") return !1;
                throw i
            }
        }

        Tc.isFile = zk.bind(null, "stat", "isFile");
        Tc.isDirectory = zk.bind(null, "stat", "isDirectory");
        Tc.isSymlink = zk.bind(null, "lstat", "isSymbolicLink");
        Tc.isFileSync = _k.bind(null, "statSync", "isFile");
        Tc.isDirectorySync = _k.bind(null, "statSync", "isDirectory");
        Tc.isSymlinkSync = _k.bind(null, "lstatSync", "isSymbolicLink")
    });
    var NW = w((qit, Vk) => {
        "use strict";
        var Oc = require("path"), PW = xW(), DW = t => t.length > 1 ? `{${t.join(",")}}` : t[0], RW = (t, e) => {
            let r = t[0] === "!" ? t.slice(1) : t;
            return Oc.isAbsolute(r) ? r : Oc.join(e, r)
        }, bve = (t, e) => Oc.extname(t) ? `**/${t}` : `**/${t}.${DW(e)}`, FW = (t, e) => {
            if (e.files && !Array.isArray(e.files)) throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);
            if (e.extensions && !Array.isArray(e.extensions)) throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);
            return e.files && e.extensions ? e.files.map(r => Oc.posix.join(t, bve(r, e.extensions))) : e.files ? e.files.map(r => Oc.posix.join(t, `**/${r}`)) : e.extensions ? [Oc.posix.join(t, `**/*.${DW(e.extensions)}`)] : [Oc.posix.join(t, "**")]
        };
        Vk.exports = async (t, e) => {
            if (e = N({cwd: process.cwd()}, e), typeof e.cwd != "string") throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);
            let r = await Promise.all([].concat(t).map(async i => await PW.isDirectory(RW(i, e.cwd)) ? FW(i, e) : i));
            return [].concat.apply([], r)
        };
        Vk.exports.sync = (t, e) => {
            if (e = N({cwd: process.cwd()}, e), typeof e.cwd != "string") throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);
            let r = [].concat(t).map(i => PW.isDirectorySync(RW(i, e.cwd)) ? FW(i, e) : i);
            return [].concat.apply([], r)
        }
    });
    var YW = w((Jit, LW) => {
        function TW(t) {
            return Array.isArray(t) ? t : [t]
        }

        var OW = "", MW = " ", Xk = "\\", Qve = /^\s+$/, vve = /^\\!/, Sve = /^\\#/, kve = /\r?\n/g,
            xve = /^\.*\/|^\.+$/, Zk = "/",
            KW = typeof Symbol != "undefined" ? Symbol.for("node-ignore") : "node-ignore",
            Pve = (t, e, r) => Object.defineProperty(t, e, {value: r}), Dve = /([0-z])-([0-z])/g,
            Rve = t => t.replace(Dve, (e, r, i) => r.charCodeAt(0) <= i.charCodeAt(0) ? e : OW), Fve = t => {
                let {length: e} = t;
                return t.slice(0, e - e % 2)
            },
            Nve = [[/\\?\s+$/, t => t.indexOf("\\") === 0 ? MW : OW], [/\\\s/g, () => MW], [/[\\$.|*+(){^]/g, t => `\\${t}`], [/(?!\\)\?/g, () => "[^/]"], [/^\//, () => "^"], [/\//g, () => "\\/"], [/^\^*\\\*\\\*\\\//, () => "^(?:.*\\/)?"], [/^(?=[^^])/, function () {
                return /\/(?!$)/.test(this) ? "^" : "(?:^|\\/)"
            }], [/\\\/\\\*\\\*(?=\\\/|$)/g, (t, e, r) => e + 6 < r.length ? "(?:\\/[^\\/]+)*" : "\\/.+"], [/(^|[^\\]+)\\\*(?=.+)/g, (t, e) => `${e}[^\\/]*`], [/\\\\\\(?=[$.|*+(){^])/g, () => Xk], [/\\\\/g, () => Xk], [/(\\)?\[([^\]/]*?)(\\*)($|\])/g, (t, e, r, i, n) => e === Xk ? `\\[${r}${Fve(i)}${n}` : n === "]" && i.length % 2 == 0 ? `[${Rve(r)}${i}]` : "[]"], [/(?:[^*])$/, t => /\/$/.test(t) ? `${t}$` : `${t}(?=$|\\/$)`], [/(\^|\\\/)?\\\*$/, (t, e) => `${e ? `${e}[^/]+` : "[^/]*"}(?=$|\\/$)`]],
            UW = Object.create(null), Lve = (t, e) => {
                let r = UW[t];
                return r || (r = Nve.reduce((i, n) => i.replace(n[0], n[1].bind(t)), t), UW[t] = r), e ? new RegExp(r, "i") : new RegExp(r)
            }, $k = t => typeof t == "string", Tve = t => t && $k(t) && !Qve.test(t) && t.indexOf("#") !== 0,
            Ove = t => t.split(kve), HW = class {
                constructor(e, r, i, n) {
                    this.origin = e, this.pattern = r, this.negative = i, this.regex = n
                }
            }, Mve = (t, e) => {
                let r = t, i = !1;
                t.indexOf("!") === 0 && (i = !0, t = t.substr(1)), t = t.replace(vve, "!").replace(Sve, "#");
                let n = Lve(t, e);
                return new HW(r, t, i, n)
            }, Kve = (t, e) => {
                throw new e(t)
            },
            Va = (t, e, r) => $k(t) ? t ? Va.isNotRelative(t) ? r(`path should be a \`path.relative()\`d string, but got "${e}"`, RangeError) : !0 : r("path must not be empty", TypeError) : r(`path must be a string, but got \`${e}\``, TypeError),
            GW = t => xve.test(t);
        Va.isNotRelative = GW;
        Va.convert = t => t;
        var jW = class {
            constructor({ignorecase: e = !0} = {}) {
                Pve(this, KW, !0), this._rules = [], this._ignorecase = e, this._initCache()
            }

            _initCache() {
                this._ignoreCache = Object.create(null), this._testCache = Object.create(null)
            }

            _addPattern(e) {
                if (e && e[KW]) {
                    this._rules = this._rules.concat(e._rules), this._added = !0;
                    return
                }
                if (Tve(e)) {
                    let r = Mve(e, this._ignorecase);
                    this._added = !0, this._rules.push(r)
                }
            }

            add(e) {
                return this._added = !1, TW($k(e) ? Ove(e) : e).forEach(this._addPattern, this), this._added && this._initCache(), this
            }

            addPattern(e) {
                return this.add(e)
            }

            _testOne(e, r) {
                let i = !1, n = !1;
                return this._rules.forEach(s => {
                    let {negative: o} = s;
                    if (n === o && i !== n || o && !i && !n && !r) return;
                    s.regex.test(e) && (i = !o, n = o)
                }), {ignored: i, unignored: n}
            }

            _test(e, r, i, n) {
                let s = e && Va.convert(e);
                return Va(s, e, Kve), this._t(s, r, i, n)
            }

            _t(e, r, i, n) {
                if (e in r) return r[e];
                if (n || (n = e.split(Zk)), n.pop(), !n.length) return r[e] = this._testOne(e, i);
                let s = this._t(n.join(Zk) + Zk, r, i, n);
                return r[e] = s.ignored ? s : this._testOne(e, i)
            }

            ignores(e) {
                return this._test(e, this._ignoreCache, !1).ignored
            }

            createFilter() {
                return e => !this.ignores(e)
            }

            filter(e) {
                return TW(e).filter(this.createFilter())
            }

            test(e) {
                return this._test(e, this._testCache, !0)
            }
        }, iw = t => new jW(t), Uve = () => !1, Hve = t => Va(t && Va.convert(t), t, Uve);
        iw.isPathValid = Hve;
        iw.default = iw;
        LW.exports = iw;
        if (typeof process != "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32")) {
            let t = r => /^\\\\\?\\/.test(r) || /["<>|\u0000-\u001F]+/u.test(r) ? r : r.replace(/\\/g, "/");
            Va.convert = t;
            let e = /^[a-z]:\//i;
            Va.isNotRelative = r => e.test(r) || GW(r)
        }
    });
    var JW = w((Wit, qW) => {
        "use strict";
        qW.exports = t => {
            let e = /^\\\\\?\\/.test(t), r = /[^\u0000-\u0080]+/.test(t);
            return e || r ? t : t.replace(/\\/g, "/")
        }
    });
    var $W = w((zit, ex) => {
        "use strict";
        var {promisify: Gve} = require("util"), WW = require("fs"), Xa = require("path"), zW = rw(), jve = YW(),
            Ad = JW(), _W = ["**/node_modules/**", "**/flow-typed/**", "**/coverage/**", "**/.git"],
            Yve = Gve(WW.readFile),
            qve = t => e => e.startsWith("!") ? "!" + Xa.posix.join(t, e.slice(1)) : Xa.posix.join(t, e),
            Jve = (t, e) => {
                let r = Ad(Xa.relative(e.cwd, Xa.dirname(e.fileName)));
                return t.split(/\r?\n/).filter(Boolean).filter(i => !i.startsWith("#")).map(qve(r))
            }, VW = t => {
                let e = jve();
                for (let r of t) e.add(Jve(r.content, {cwd: r.cwd, fileName: r.filePath}));
                return e
            }, Wve = (t, e) => {
                if (t = Ad(t), Xa.isAbsolute(e)) {
                    if (Ad(e).startsWith(t)) return e;
                    throw new Error(`Path ${e} is not in cwd ${t}`)
                }
                return Xa.join(t, e)
            }, XW = (t, e) => r => t.ignores(Ad(Xa.relative(e, Wve(e, r.path || r)))), zve = async (t, e) => {
                let r = Xa.join(e, t), i = await Yve(r, "utf8");
                return {cwd: e, filePath: r, content: i}
            }, _ve = (t, e) => {
                let r = Xa.join(e, t), i = WW.readFileSync(r, "utf8");
                return {cwd: e, filePath: r, content: i}
            }, ZW = ({ignore: t = [], cwd: e = Ad(process.cwd())} = {}) => ({ignore: t, cwd: e});
        ex.exports = async t => {
            t = ZW(t);
            let e = await zW("**/.gitignore", {ignore: _W.concat(t.ignore), cwd: t.cwd}),
                r = await Promise.all(e.map(n => zve(n, t.cwd))), i = VW(r);
            return XW(i, t.cwd)
        };
        ex.exports.sync = t => {
            t = ZW(t);
            let r = zW.sync("**/.gitignore", {ignore: _W.concat(t.ignore), cwd: t.cwd}).map(n => _ve(n, t.cwd)),
                i = VW(r);
            return XW(i, t.cwd)
        }
    });
    var i8 = w((_it, e8) => {
        "use strict";
        var {Transform: Vve} = require("stream"), tx = class extends Vve {
            constructor() {
                super({objectMode: !0})
            }
        }, t8 = class extends tx {
            constructor(e) {
                super();
                this._filter = e
            }

            _transform(e, r, i) {
                this._filter(e) && this.push(e), i()
            }
        }, r8 = class extends tx {
            constructor() {
                super();
                this._pushed = new Set
            }

            _transform(e, r, i) {
                this._pushed.has(e) || (this.push(e), this._pushed.add(e)), i()
            }
        };
        e8.exports = {FilterStream: t8, UniqueStream: r8}
    });
    var sx = w((Vit, Mc) => {
        "use strict";
        var n8 = require("fs"), nw = xJ(), Xve = ek(), sw = rw(), ow = NW(), rx = $W(), {
                FilterStream: Zve,
                UniqueStream: $ve
            } = i8(), s8 = () => !1, o8 = t => t[0] === "!", eSe = t => {
                if (!t.every(e => typeof e == "string")) throw new TypeError("Patterns must be a string or an array of strings")
            }, tSe = (t = {}) => {
                if (!t.cwd) return;
                let e;
                try {
                    e = n8.statSync(t.cwd)
                } catch {
                    return
                }
                if (!e.isDirectory()) throw new Error("The `cwd` option must be a path to a directory")
            }, rSe = t => t.stats instanceof n8.Stats ? t.path : t, aw = (t, e) => {
                t = nw([].concat(t)), eSe(t), tSe(e);
                let r = [];
                e = N({ignore: [], expandDirectories: !0}, e);
                for (let [i, n] of t.entries()) {
                    if (o8(n)) continue;
                    let s = t.slice(i).filter(a => o8(a)).map(a => a.slice(1)),
                        o = ie(N({}, e), {ignore: e.ignore.concat(s)});
                    r.push({pattern: n, options: o})
                }
                return r
            }, iSe = (t, e) => {
                let r = {};
                return t.options.cwd && (r.cwd = t.options.cwd), Array.isArray(t.options.expandDirectories) ? r = ie(N({}, r), {files: t.options.expandDirectories}) : typeof t.options.expandDirectories == "object" && (r = N(N({}, r), t.options.expandDirectories)), e(t.pattern, r)
            }, ix = (t, e) => t.options.expandDirectories ? iSe(t, e) : [t.pattern],
            a8 = t => t && t.gitignore ? rx.sync({cwd: t.cwd, ignore: t.ignore}) : s8, nx = t => e => {
                let {options: r} = t;
                return r.ignore && Array.isArray(r.ignore) && r.expandDirectories && (r.ignore = ow.sync(r.ignore)), {
                    pattern: e,
                    options: r
                }
            };
        Mc.exports = async (t, e) => {
            let r = aw(t, e), i = async () => e && e.gitignore ? rx({cwd: e.cwd, ignore: e.ignore}) : s8,
                n = async () => {
                    let l = await Promise.all(r.map(async c => {
                        let u = await ix(c, ow);
                        return Promise.all(u.map(nx(c)))
                    }));
                    return nw(...l)
                }, [s, o] = await Promise.all([i(), n()]), a = await Promise.all(o.map(l => sw(l.pattern, l.options)));
            return nw(...a).filter(l => !s(rSe(l)))
        };
        Mc.exports.sync = (t, e) => {
            let r = aw(t, e), i = [];
            for (let o of r) {
                let a = ix(o, ow.sync).map(nx(o));
                i.push(...a)
            }
            let n = a8(e), s = [];
            for (let o of i) s = nw(s, sw.sync(o.pattern, o.options));
            return s.filter(o => !n(o))
        };
        Mc.exports.stream = (t, e) => {
            let r = aw(t, e), i = [];
            for (let a of r) {
                let l = ix(a, ow.sync).map(nx(a));
                i.push(...l)
            }
            let n = a8(e), s = new Zve(a => !n(a)), o = new $ve;
            return Xve(i.map(a => sw.stream(a.pattern, a.options))).pipe(s).pipe(o)
        };
        Mc.exports.generateGlobTasks = aw;
        Mc.exports.hasMagic = (t, e) => [].concat(t).some(r => sw.isDynamicPattern(r, e));
        Mc.exports.gitignore = rx
    });
    var Rn = w((Bnt, w8) => {
        function dSe(t) {
            var e = typeof t;
            return t != null && (e == "object" || e == "function")
        }

        w8.exports = dSe
    });
    var hx = w((bnt, B8) => {
        var CSe = typeof global == "object" && global && global.Object === Object && global;
        B8.exports = CSe
    });
    var Fs = w((Qnt, b8) => {
        var mSe = hx(), ESe = typeof self == "object" && self && self.Object === Object && self,
            ISe = mSe || ESe || Function("return this")();
        b8.exports = ISe
    });
    var v8 = w((vnt, Q8) => {
        var ySe = Fs(), wSe = function () {
            return ySe.Date.now()
        };
        Q8.exports = wSe
    });
    var k8 = w((Snt, S8) => {
        var BSe = /\s/;

        function bSe(t) {
            for (var e = t.length; e-- && BSe.test(t.charAt(e));) ;
            return e
        }

        S8.exports = bSe
    });
    var P8 = w((knt, x8) => {
        var QSe = k8(), vSe = /^\s+/;

        function SSe(t) {
            return t && t.slice(0, QSe(t) + 1).replace(vSe, "")
        }

        x8.exports = SSe
    });
    var Hc = w((xnt, D8) => {
        var kSe = Fs(), xSe = kSe.Symbol;
        D8.exports = xSe
    });
    var L8 = w((Pnt, R8) => {
        var F8 = Hc(), N8 = Object.prototype, PSe = N8.hasOwnProperty, DSe = N8.toString,
            Id = F8 ? F8.toStringTag : void 0;

        function RSe(t) {
            var e = PSe.call(t, Id), r = t[Id];
            try {
                t[Id] = void 0;
                var i = !0
            } catch (s) {
            }
            var n = DSe.call(t);
            return i && (e ? t[Id] = r : delete t[Id]), n
        }

        R8.exports = RSe
    });
    var O8 = w((Dnt, T8) => {
        var FSe = Object.prototype, NSe = FSe.toString;

        function LSe(t) {
            return NSe.call(t)
        }

        T8.exports = LSe
    });
    var Gc = w((Rnt, M8) => {
        var K8 = Hc(), TSe = L8(), OSe = O8(), MSe = "[object Null]", KSe = "[object Undefined]",
            U8 = K8 ? K8.toStringTag : void 0;

        function USe(t) {
            return t == null ? t === void 0 ? KSe : MSe : U8 && U8 in Object(t) ? TSe(t) : OSe(t)
        }

        M8.exports = USe
    });
    var Zo = w((Fnt, H8) => {
        function HSe(t) {
            return t != null && typeof t == "object"
        }

        H8.exports = HSe
    });
    var yd = w((Nnt, G8) => {
        var GSe = Gc(), jSe = Zo(), YSe = "[object Symbol]";

        function qSe(t) {
            return typeof t == "symbol" || jSe(t) && GSe(t) == YSe
        }

        G8.exports = qSe
    });
    var J8 = w((Lnt, j8) => {
        var JSe = P8(), Y8 = Rn(), WSe = yd(), q8 = 0 / 0, zSe = /^[-+]0x[0-9a-f]+$/i, _Se = /^0b[01]+$/i,
            VSe = /^0o[0-7]+$/i, XSe = parseInt;

        function ZSe(t) {
            if (typeof t == "number") return t;
            if (WSe(t)) return q8;
            if (Y8(t)) {
                var e = typeof t.valueOf == "function" ? t.valueOf() : t;
                t = Y8(e) ? e + "" : e
            }
            if (typeof t != "string") return t === 0 ? t : +t;
            t = JSe(t);
            var r = _Se.test(t);
            return r || VSe.test(t) ? XSe(t.slice(2), r ? 2 : 8) : zSe.test(t) ? q8 : +t
        }

        j8.exports = ZSe
    });
    var _8 = w((Tnt, W8) => {
        var $Se = Rn(), px = v8(), z8 = J8(), eke = "Expected a function", tke = Math.max, rke = Math.min;

        function ike(t, e, r) {
            var i, n, s, o, a, l, c = 0, u = !1, g = !1, f = !0;
            if (typeof t != "function") throw new TypeError(eke);
            e = z8(e) || 0, $Se(r) && (u = !!r.leading, g = "maxWait" in r, s = g ? tke(z8(r.maxWait) || 0, e) : s, f = "trailing" in r ? !!r.trailing : f);

            function h(j) {
                var Z = i, J = n;
                return i = n = void 0, c = j, o = t.apply(J, Z), o
            }

            function p(j) {
                return c = j, a = setTimeout(b, e), u ? h(j) : o
            }

            function m(j) {
                var Z = j - l, J = j - c, re = e - Z;
                return g ? rke(re, s - J) : re
            }

            function y(j) {
                var Z = j - l, J = j - c;
                return l === void 0 || Z >= e || Z < 0 || g && J >= s
            }

            function b() {
                var j = px();
                if (y(j)) return S(j);
                a = setTimeout(b, m(j))
            }

            function S(j) {
                return a = void 0, f && i ? h(j) : (i = n = void 0, o)
            }

            function k() {
                a !== void 0 && clearTimeout(a), c = 0, i = l = n = a = void 0
            }

            function T() {
                return a === void 0 ? o : S(px())
            }

            function Y() {
                var j = px(), Z = y(j);
                if (i = arguments, n = this, l = j, Z) {
                    if (a === void 0) return p(l);
                    if (g) return clearTimeout(a), a = setTimeout(b, e), h(l)
                }
                return a === void 0 && (a = setTimeout(b, e)), o
            }

            return Y.cancel = k, Y.flush = T, Y
        }

        W8.exports = ike
    });
    var X8 = w((Ont, V8) => {
        var nke = _8(), ske = Rn(), oke = "Expected a function";

        function ake(t, e, r) {
            var i = !0, n = !0;
            if (typeof t != "function") throw new TypeError(oke);
            return ske(r) && (i = "leading" in r ? !!r.leading : i, n = "trailing" in r ? !!r.trailing : n), nke(t, e, {
                leading: i,
                maxWait: e,
                trailing: n
            })
        }

        V8.exports = ake
    });
    var eA = w(($a, Sw) => {
        "use strict";
        Object.defineProperty($a, "__esModule", {value: !0});
        var s4 = ["Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "BigInt64Array", "BigUint64Array"];

        function Ike(t) {
            return s4.includes(t)
        }

        var yke = ["Function", "Generator", "AsyncGenerator", "GeneratorFunction", "AsyncGeneratorFunction", "AsyncFunction", "Observable", "Array", "Buffer", "Object", "RegExp", "Date", "Error", "Map", "Set", "WeakMap", "WeakSet", "ArrayBuffer", "SharedArrayBuffer", "DataView", "Promise", "URL", "FormData", "URLSearchParams", "HTMLElement", ...s4];

        function wke(t) {
            return yke.includes(t)
        }

        var Bke = ["null", "undefined", "string", "number", "bigint", "boolean", "symbol"];

        function bke(t) {
            return Bke.includes(t)
        }

        function zg(t) {
            return e => typeof e === t
        }

        var {toString: o4} = Object.prototype, kd = t => {
            let e = o4.call(t).slice(8, -1);
            if (/HTML\w+Element/.test(e) && z.domElement(t)) return "HTMLElement";
            if (wke(e)) return e
        }, hr = t => e => kd(e) === t;

        function z(t) {
            if (t === null) return "null";
            switch (typeof t) {
                case"undefined":
                    return "undefined";
                case"string":
                    return "string";
                case"number":
                    return "number";
                case"boolean":
                    return "boolean";
                case"function":
                    return "Function";
                case"bigint":
                    return "bigint";
                case"symbol":
                    return "symbol";
                default:
            }
            if (z.observable(t)) return "Observable";
            if (z.array(t)) return "Array";
            if (z.buffer(t)) return "Buffer";
            let e = kd(t);
            if (e) return e;
            if (t instanceof String || t instanceof Boolean || t instanceof Number) throw new TypeError("Please don't use object wrappers for primitive types");
            return "Object"
        }

        z.undefined = zg("undefined");
        z.string = zg("string");
        var Qke = zg("number");
        z.number = t => Qke(t) && !z.nan(t);
        z.bigint = zg("bigint");
        z.function_ = zg("function");
        z.null_ = t => t === null;
        z.class_ = t => z.function_(t) && t.toString().startsWith("class ");
        z.boolean = t => t === !0 || t === !1;
        z.symbol = zg("symbol");
        z.numericString = t => z.string(t) && !z.emptyStringOrWhitespace(t) && !Number.isNaN(Number(t));
        z.array = (t, e) => Array.isArray(t) ? z.function_(e) ? t.every(e) : !0 : !1;
        z.buffer = t => {
            var e, r, i, n;
            return (n = (i = (r = (e = t) === null || e === void 0 ? void 0 : e.constructor) === null || r === void 0 ? void 0 : r.isBuffer) === null || i === void 0 ? void 0 : i.call(r, t)) !== null && n !== void 0 ? n : !1
        };
        z.nullOrUndefined = t => z.null_(t) || z.undefined(t);
        z.object = t => !z.null_(t) && (typeof t == "object" || z.function_(t));
        z.iterable = t => {
            var e;
            return z.function_((e = t) === null || e === void 0 ? void 0 : e[Symbol.iterator])
        };
        z.asyncIterable = t => {
            var e;
            return z.function_((e = t) === null || e === void 0 ? void 0 : e[Symbol.asyncIterator])
        };
        z.generator = t => z.iterable(t) && z.function_(t.next) && z.function_(t.throw);
        z.asyncGenerator = t => z.asyncIterable(t) && z.function_(t.next) && z.function_(t.throw);
        z.nativePromise = t => hr("Promise")(t);
        var vke = t => {
            var e, r;
            return z.function_((e = t) === null || e === void 0 ? void 0 : e.then) && z.function_((r = t) === null || r === void 0 ? void 0 : r.catch)
        };
        z.promise = t => z.nativePromise(t) || vke(t);
        z.generatorFunction = hr("GeneratorFunction");
        z.asyncGeneratorFunction = t => kd(t) === "AsyncGeneratorFunction";
        z.asyncFunction = t => kd(t) === "AsyncFunction";
        z.boundFunction = t => z.function_(t) && !t.hasOwnProperty("prototype");
        z.regExp = hr("RegExp");
        z.date = hr("Date");
        z.error = hr("Error");
        z.map = t => hr("Map")(t);
        z.set = t => hr("Set")(t);
        z.weakMap = t => hr("WeakMap")(t);
        z.weakSet = t => hr("WeakSet")(t);
        z.int8Array = hr("Int8Array");
        z.uint8Array = hr("Uint8Array");
        z.uint8ClampedArray = hr("Uint8ClampedArray");
        z.int16Array = hr("Int16Array");
        z.uint16Array = hr("Uint16Array");
        z.int32Array = hr("Int32Array");
        z.uint32Array = hr("Uint32Array");
        z.float32Array = hr("Float32Array");
        z.float64Array = hr("Float64Array");
        z.bigInt64Array = hr("BigInt64Array");
        z.bigUint64Array = hr("BigUint64Array");
        z.arrayBuffer = hr("ArrayBuffer");
        z.sharedArrayBuffer = hr("SharedArrayBuffer");
        z.dataView = hr("DataView");
        z.directInstanceOf = (t, e) => Object.getPrototypeOf(t) === e.prototype;
        z.urlInstance = t => hr("URL")(t);
        z.urlString = t => {
            if (!z.string(t)) return !1;
            try {
                return new URL(t), !0
            } catch (e) {
                return !1
            }
        };
        z.truthy = t => Boolean(t);
        z.falsy = t => !t;
        z.nan = t => Number.isNaN(t);
        z.primitive = t => z.null_(t) || bke(typeof t);
        z.integer = t => Number.isInteger(t);
        z.safeInteger = t => Number.isSafeInteger(t);
        z.plainObject = t => {
            if (o4.call(t) !== "[object Object]") return !1;
            let e = Object.getPrototypeOf(t);
            return e === null || e === Object.getPrototypeOf({})
        };
        z.typedArray = t => Ike(kd(t));
        var Ske = t => z.safeInteger(t) && t >= 0;
        z.arrayLike = t => !z.nullOrUndefined(t) && !z.function_(t) && Ske(t.length);
        z.inRange = (t, e) => {
            if (z.number(e)) return t >= Math.min(0, e) && t <= Math.max(e, 0);
            if (z.array(e) && e.length === 2) return t >= Math.min(...e) && t <= Math.max(...e);
            throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)
        };
        var kke = 1, xke = ["innerHTML", "ownerDocument", "style", "attributes", "nodeValue"];
        z.domElement = t => z.object(t) && t.nodeType === kke && z.string(t.nodeName) && !z.plainObject(t) && xke.every(e => e in t);
        z.observable = t => {
            var e, r, i, n;
            return t ? t === ((r = (e = t)[Symbol.observable]) === null || r === void 0 ? void 0 : r.call(e)) || t === ((n = (i = t)["@@observable"]) === null || n === void 0 ? void 0 : n.call(i)) : !1
        };
        z.nodeStream = t => z.object(t) && z.function_(t.pipe) && !z.observable(t);
        z.infinite = t => t === Infinity || t === -Infinity;
        var a4 = t => e => z.integer(e) && Math.abs(e % 2) === t;
        z.evenInteger = a4(0);
        z.oddInteger = a4(1);
        z.emptyArray = t => z.array(t) && t.length === 0;
        z.nonEmptyArray = t => z.array(t) && t.length > 0;
        z.emptyString = t => z.string(t) && t.length === 0;
        z.nonEmptyString = t => z.string(t) && t.length > 0;
        var Pke = t => z.string(t) && !/\S/.test(t);
        z.emptyStringOrWhitespace = t => z.emptyString(t) || Pke(t);
        z.emptyObject = t => z.object(t) && !z.map(t) && !z.set(t) && Object.keys(t).length === 0;
        z.nonEmptyObject = t => z.object(t) && !z.map(t) && !z.set(t) && Object.keys(t).length > 0;
        z.emptySet = t => z.set(t) && t.size === 0;
        z.nonEmptySet = t => z.set(t) && t.size > 0;
        z.emptyMap = t => z.map(t) && t.size === 0;
        z.nonEmptyMap = t => z.map(t) && t.size > 0;
        z.propertyKey = t => z.any([z.string, z.number, z.symbol], t);
        z.formData = t => hr("FormData")(t);
        z.urlSearchParams = t => hr("URLSearchParams")(t);
        var A4 = (t, e, r) => {
            if (!z.function_(e)) throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);
            if (r.length === 0) throw new TypeError("Invalid number of values");
            return t.call(r, e)
        };
        z.any = (t, ...e) => (z.array(t) ? t : [t]).some(i => A4(Array.prototype.some, i, e));
        z.all = (t, ...e) => A4(Array.prototype.every, t, e);
        var We = (t, e, r, i = {}) => {
            if (!t) {
                let {multipleValues: n} = i,
                    s = n ? `received values of types ${[...new Set(r.map(o => `\`${z(o)}\``))].join(", ")}` : `received value of type \`${z(r)}\``;
                throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)
            }
        };
        $a.assert = {
            undefined: t => We(z.undefined(t), "undefined", t),
            string: t => We(z.string(t), "string", t),
            number: t => We(z.number(t), "number", t),
            bigint: t => We(z.bigint(t), "bigint", t),
            function_: t => We(z.function_(t), "Function", t),
            null_: t => We(z.null_(t), "null", t),
            class_: t => We(z.class_(t), "Class", t),
            boolean: t => We(z.boolean(t), "boolean", t),
            symbol: t => We(z.symbol(t), "symbol", t),
            numericString: t => We(z.numericString(t), "string with a number", t),
            array: (t, e) => {
                We(z.array(t), "Array", t), e && t.forEach(e)
            },
            buffer: t => We(z.buffer(t), "Buffer", t),
            nullOrUndefined: t => We(z.nullOrUndefined(t), "null or undefined", t),
            object: t => We(z.object(t), "Object", t),
            iterable: t => We(z.iterable(t), "Iterable", t),
            asyncIterable: t => We(z.asyncIterable(t), "AsyncIterable", t),
            generator: t => We(z.generator(t), "Generator", t),
            asyncGenerator: t => We(z.asyncGenerator(t), "AsyncGenerator", t),
            nativePromise: t => We(z.nativePromise(t), "native Promise", t),
            promise: t => We(z.promise(t), "Promise", t),
            generatorFunction: t => We(z.generatorFunction(t), "GeneratorFunction", t),
            asyncGeneratorFunction: t => We(z.asyncGeneratorFunction(t), "AsyncGeneratorFunction", t),
            asyncFunction: t => We(z.asyncFunction(t), "AsyncFunction", t),
            boundFunction: t => We(z.boundFunction(t), "Function", t),
            regExp: t => We(z.regExp(t), "RegExp", t),
            date: t => We(z.date(t), "Date", t),
            error: t => We(z.error(t), "Error", t),
            map: t => We(z.map(t), "Map", t),
            set: t => We(z.set(t), "Set", t),
            weakMap: t => We(z.weakMap(t), "WeakMap", t),
            weakSet: t => We(z.weakSet(t), "WeakSet", t),
            int8Array: t => We(z.int8Array(t), "Int8Array", t),
            uint8Array: t => We(z.uint8Array(t), "Uint8Array", t),
            uint8ClampedArray: t => We(z.uint8ClampedArray(t), "Uint8ClampedArray", t),
            int16Array: t => We(z.int16Array(t), "Int16Array", t),
            uint16Array: t => We(z.uint16Array(t), "Uint16Array", t),
            int32Array: t => We(z.int32Array(t), "Int32Array", t),
            uint32Array: t => We(z.uint32Array(t), "Uint32Array", t),
            float32Array: t => We(z.float32Array(t), "Float32Array", t),
            float64Array: t => We(z.float64Array(t), "Float64Array", t),
            bigInt64Array: t => We(z.bigInt64Array(t), "BigInt64Array", t),
            bigUint64Array: t => We(z.bigUint64Array(t), "BigUint64Array", t),
            arrayBuffer: t => We(z.arrayBuffer(t), "ArrayBuffer", t),
            sharedArrayBuffer: t => We(z.sharedArrayBuffer(t), "SharedArrayBuffer", t),
            dataView: t => We(z.dataView(t), "DataView", t),
            urlInstance: t => We(z.urlInstance(t), "URL", t),
            urlString: t => We(z.urlString(t), "string with a URL", t),
            truthy: t => We(z.truthy(t), "truthy", t),
            falsy: t => We(z.falsy(t), "falsy", t),
            nan: t => We(z.nan(t), "NaN", t),
            primitive: t => We(z.primitive(t), "primitive", t),
            integer: t => We(z.integer(t), "integer", t),
            safeInteger: t => We(z.safeInteger(t), "integer", t),
            plainObject: t => We(z.plainObject(t), "plain object", t),
            typedArray: t => We(z.typedArray(t), "TypedArray", t),
            arrayLike: t => We(z.arrayLike(t), "array-like", t),
            domElement: t => We(z.domElement(t), "HTMLElement", t),
            observable: t => We(z.observable(t), "Observable", t),
            nodeStream: t => We(z.nodeStream(t), "Node.js Stream", t),
            infinite: t => We(z.infinite(t), "infinite number", t),
            emptyArray: t => We(z.emptyArray(t), "empty array", t),
            nonEmptyArray: t => We(z.nonEmptyArray(t), "non-empty array", t),
            emptyString: t => We(z.emptyString(t), "empty string", t),
            nonEmptyString: t => We(z.nonEmptyString(t), "non-empty string", t),
            emptyStringOrWhitespace: t => We(z.emptyStringOrWhitespace(t), "empty string or whitespace", t),
            emptyObject: t => We(z.emptyObject(t), "empty object", t),
            nonEmptyObject: t => We(z.nonEmptyObject(t), "non-empty object", t),
            emptySet: t => We(z.emptySet(t), "empty set", t),
            nonEmptySet: t => We(z.nonEmptySet(t), "non-empty set", t),
            emptyMap: t => We(z.emptyMap(t), "empty map", t),
            nonEmptyMap: t => We(z.nonEmptyMap(t), "non-empty map", t),
            propertyKey: t => We(z.propertyKey(t), "PropertyKey", t),
            formData: t => We(z.formData(t), "FormData", t),
            urlSearchParams: t => We(z.urlSearchParams(t), "URLSearchParams", t),
            evenInteger: t => We(z.evenInteger(t), "even integer", t),
            oddInteger: t => We(z.oddInteger(t), "odd integer", t),
            directInstanceOf: (t, e) => We(z.directInstanceOf(t, e), "T", t),
            inRange: (t, e) => We(z.inRange(t, e), "in range", t),
            any: (t, ...e) => We(z.any(t, ...e), "predicate returns truthy for any value", e, {multipleValues: !0}),
            all: (t, ...e) => We(z.all(t, ...e), "predicate returns truthy for all values", e, {multipleValues: !0})
        };
        Object.defineProperties(z, {class: {value: z.class_}, function: {value: z.function_}, null: {value: z.null_}});
        Object.defineProperties($a.assert, {
            class: {value: $a.assert.class_},
            function: {value: $a.assert.function_},
            null: {value: $a.assert.null_}
        });
        $a.default = z;
        Sw.exports = z;
        Sw.exports.default = z;
        Sw.exports.assert = $a.assert
    });
    var l4 = w((Gst, Lx) => {
        "use strict";
        var Tx = class extends Error {
            constructor(e) {
                super(e || "Promise was canceled");
                this.name = "CancelError"
            }

            get isCanceled() {
                return !0
            }
        }, xd = class {
            static fn(e) {
                return (...r) => new xd((i, n, s) => {
                    r.push(s), e(...r).then(i, n)
                })
            }

            constructor(e) {
                this._cancelHandlers = [], this._isPending = !0, this._isCanceled = !1, this._rejectOnCancel = !0, this._promise = new Promise((r, i) => {
                    this._reject = i;
                    let n = a => {
                        this._isPending = !1, r(a)
                    }, s = a => {
                        this._isPending = !1, i(a)
                    }, o = a => {
                        if (!this._isPending) throw new Error("The `onCancel` handler was attached after the promise settled.");
                        this._cancelHandlers.push(a)
                    };
                    return Object.defineProperties(o, {
                        shouldReject: {
                            get: () => this._rejectOnCancel, set: a => {
                                this._rejectOnCancel = a
                            }
                        }
                    }), e(n, s, o)
                })
            }

            then(e, r) {
                return this._promise.then(e, r)
            }

            catch(e) {
                return this._promise.catch(e)
            }

            finally(e) {
                return this._promise.finally(e)
            }

            cancel(e) {
                if (!(!this._isPending || this._isCanceled)) {
                    if (this._cancelHandlers.length > 0) try {
                        for (let r of this._cancelHandlers) r()
                    } catch (r) {
                        this._reject(r)
                    }
                    this._isCanceled = !0, this._rejectOnCancel && this._reject(new Tx(e))
                }
            }

            get isCanceled() {
                return this._isCanceled
            }
        };
        Object.setPrototypeOf(xd.prototype, Promise.prototype);
        Lx.exports = xd;
        Lx.exports.CancelError = Tx
    });
    var c4 = w((Ox, Mx) => {
        "use strict";
        Object.defineProperty(Ox, "__esModule", {value: !0});
        var Dke = require("tls"), Kx = (t, e) => {
            let r;
            typeof e == "function" ? r = {connect: e} : r = e;
            let i = typeof r.connect == "function", n = typeof r.secureConnect == "function",
                s = typeof r.close == "function", o = () => {
                    i && r.connect(), t instanceof Dke.TLSSocket && n && (t.authorized ? r.secureConnect() : t.authorizationError || t.once("secureConnect", r.secureConnect)), s && t.once("close", r.close)
                };
            t.writable && !t.connecting ? o() : t.connecting ? t.once("connect", o) : t.destroyed && s && r.close(t._hadError)
        };
        Ox.default = Kx;
        Mx.exports = Kx;
        Mx.exports.default = Kx
    });
    var u4 = w((Ux, Hx) => {
        "use strict";
        Object.defineProperty(Ux, "__esModule", {value: !0});
        var Rke = c4(), Fke = Number(process.versions.node.split(".")[0]), Gx = t => {
            let e = {
                start: Date.now(),
                socket: void 0,
                lookup: void 0,
                connect: void 0,
                secureConnect: void 0,
                upload: void 0,
                response: void 0,
                end: void 0,
                error: void 0,
                abort: void 0,
                phases: {
                    wait: void 0,
                    dns: void 0,
                    tcp: void 0,
                    tls: void 0,
                    request: void 0,
                    firstByte: void 0,
                    download: void 0,
                    total: void 0
                }
            };
            t.timings = e;
            let r = o => {
                let a = o.emit.bind(o);
                o.emit = (l, ...c) => (l === "error" && (e.error = Date.now(), e.phases.total = e.error - e.start, o.emit = a), a(l, ...c))
            };
            r(t), t.prependOnceListener("abort", () => {
                e.abort = Date.now(), (!e.response || Fke >= 13) && (e.phases.total = Date.now() - e.start)
            });
            let i = o => {
                e.socket = Date.now(), e.phases.wait = e.socket - e.start;
                let a = () => {
                    e.lookup = Date.now(), e.phases.dns = e.lookup - e.socket
                };
                o.prependOnceListener("lookup", a), Rke.default(o, {
                    connect: () => {
                        e.connect = Date.now(), e.lookup === void 0 && (o.removeListener("lookup", a), e.lookup = e.connect, e.phases.dns = e.lookup - e.socket), e.phases.tcp = e.connect - e.lookup
                    }, secureConnect: () => {
                        e.secureConnect = Date.now(), e.phases.tls = e.secureConnect - e.connect
                    }
                })
            };
            t.socket ? i(t.socket) : t.prependOnceListener("socket", i);
            let n = () => {
                var o;
                e.upload = Date.now(), e.phases.request = e.upload - (o = e.secureConnect, o != null ? o : e.connect)
            };
            return (() => typeof t.writableFinished == "boolean" ? t.writableFinished : t.finished && t.outputSize === 0 && (!t.socket || t.socket.writableLength === 0))() ? n() : t.prependOnceListener("finish", n), t.prependOnceListener("response", o => {
                e.response = Date.now(), e.phases.firstByte = e.response - e.upload, o.timings = e, r(o), o.prependOnceListener("end", () => {
                    e.end = Date.now(), e.phases.download = e.end - e.response, e.phases.total = e.end - e.start
                })
            }), e
        };
        Ux.default = Gx;
        Hx.exports = Gx;
        Hx.exports.default = Gx
    });
    var m4 = w((jst, jx) => {
        "use strict";
        var {
                V4MAPPED: Nke,
                ADDRCONFIG: Lke,
                ALL: g4,
                promises: {Resolver: f4},
                lookup: Tke
            } = require("dns"), {promisify: Yx} = require("util"), Oke = require("os"),
            _g = Symbol("cacheableLookupCreateConnection"), qx = Symbol("cacheableLookupInstance"),
            h4 = Symbol("expires"), Mke = typeof g4 == "number", p4 = t => {
                if (!(t && typeof t.createConnection == "function")) throw new Error("Expected an Agent instance as the first argument")
            }, Kke = t => {
                for (let e of t) e.family !== 6 && (e.address = `::ffff:${e.address}`, e.family = 6)
            }, d4 = () => {
                let t = !1, e = !1;
                for (let r of Object.values(Oke.networkInterfaces())) for (let i of r) if (!i.internal && (i.family === "IPv6" ? e = !0 : t = !0, t && e)) return {
                    has4: t,
                    has6: e
                };
                return {has4: t, has6: e}
            }, Uke = t => Symbol.iterator in t, C4 = {ttl: !0}, Hke = {all: !0}, Jx = class {
                constructor({
                                cache: e = new Map,
                                maxTtl: r = Infinity,
                                fallbackDuration: i = 3600,
                                errorTtl: n = .15,
                                resolver: s = new f4,
                                lookup: o = Tke
                            } = {}) {
                    if (this.maxTtl = r, this.errorTtl = n, this._cache = e, this._resolver = s, this._dnsLookup = Yx(o), this._resolver instanceof f4 ? (this._resolve4 = this._resolver.resolve4.bind(this._resolver), this._resolve6 = this._resolver.resolve6.bind(this._resolver)) : (this._resolve4 = Yx(this._resolver.resolve4.bind(this._resolver)), this._resolve6 = Yx(this._resolver.resolve6.bind(this._resolver))), this._iface = d4(), this._pending = {}, this._nextRemovalTime = !1, this._hostnamesToFallback = new Set, i < 1) this._fallback = !1; else {
                        this._fallback = !0;
                        let a = setInterval(() => {
                            this._hostnamesToFallback.clear()
                        }, i * 1e3);
                        a.unref && a.unref()
                    }
                    this.lookup = this.lookup.bind(this), this.lookupAsync = this.lookupAsync.bind(this)
                }

                set servers(e) {
                    this.clear(), this._resolver.setServers(e)
                }

                get servers() {
                    return this._resolver.getServers()
                }

                lookup(e, r, i) {
                    if (typeof r == "function" ? (i = r, r = {}) : typeof r == "number" && (r = {family: r}), !i) throw new Error("Callback must be a function.");
                    this.lookupAsync(e, r).then(n => {
                        r.all ? i(null, n) : i(null, n.address, n.family, n.expires, n.ttl)
                    }, i)
                }

                async lookupAsync(e, r = {}) {
                    typeof r == "number" && (r = {family: r});
                    let i = await this.query(e);
                    if (r.family === 6) {
                        let n = i.filter(s => s.family === 6);
                        r.hints & Nke && (Mke && r.hints & g4 || n.length === 0) ? Kke(i) : i = n
                    } else r.family === 4 && (i = i.filter(n => n.family === 4));
                    if (r.hints & Lke) {
                        let {_iface: n} = this;
                        i = i.filter(s => s.family === 6 ? n.has6 : n.has4)
                    }
                    if (i.length === 0) {
                        let n = new Error(`cacheableLookup ENOTFOUND ${e}`);
                        throw n.code = "ENOTFOUND", n.hostname = e, n
                    }
                    return r.all ? i : i[0]
                }

                async query(e) {
                    let r = await this._cache.get(e);
                    if (!r) {
                        let i = this._pending[e];
                        if (i) r = await i; else {
                            let n = this.queryAndCache(e);
                            this._pending[e] = n, r = await n
                        }
                    }
                    return r = r.map(i => N({}, i)), r
                }

                async _resolve(e) {
                    let r = async c => {
                            try {
                                return await c
                            } catch (u) {
                                if (u.code === "ENODATA" || u.code === "ENOTFOUND") return [];
                                throw u
                            }
                        }, [i, n] = await Promise.all([this._resolve4(e, C4), this._resolve6(e, C4)].map(c => r(c))), s = 0,
                        o = 0, a = 0, l = Date.now();
                    for (let c of i) c.family = 4, c.expires = l + c.ttl * 1e3, s = Math.max(s, c.ttl);
                    for (let c of n) c.family = 6, c.expires = l + c.ttl * 1e3, o = Math.max(o, c.ttl);
                    return i.length > 0 ? n.length > 0 ? a = Math.min(s, o) : a = s : a = o, {
                        entries: [...i, ...n],
                        cacheTtl: a
                    }
                }

                async _lookup(e) {
                    try {
                        return {entries: await this._dnsLookup(e, {all: !0}), cacheTtl: 0}
                    } catch (r) {
                        return {entries: [], cacheTtl: 0}
                    }
                }

                async _set(e, r, i) {
                    if (this.maxTtl > 0 && i > 0) {
                        i = Math.min(i, this.maxTtl) * 1e3, r[h4] = Date.now() + i;
                        try {
                            await this._cache.set(e, r, i)
                        } catch (n) {
                            this.lookupAsync = async () => {
                                let s = new Error("Cache Error. Please recreate the CacheableLookup instance.");
                                throw s.cause = n, s
                            }
                        }
                        Uke(this._cache) && this._tick(i)
                    }
                }

                async queryAndCache(e) {
                    if (this._hostnamesToFallback.has(e)) return this._dnsLookup(e, Hke);
                    try {
                        let r = await this._resolve(e);
                        r.entries.length === 0 && this._fallback && (r = await this._lookup(e), r.entries.length !== 0 && this._hostnamesToFallback.add(e));
                        let i = r.entries.length === 0 ? this.errorTtl : r.cacheTtl;
                        return await this._set(e, r.entries, i), delete this._pending[e], r.entries
                    } catch (r) {
                        throw delete this._pending[e], r
                    }
                }

                _tick(e) {
                    let r = this._nextRemovalTime;
                    (!r || e < r) && (clearTimeout(this._removalTimeout), this._nextRemovalTime = e, this._removalTimeout = setTimeout(() => {
                        this._nextRemovalTime = !1;
                        let i = Infinity, n = Date.now();
                        for (let [s, o] of this._cache) {
                            let a = o[h4];
                            n >= a ? this._cache.delete(s) : a < i && (i = a)
                        }
                        i !== Infinity && this._tick(i - n)
                    }, e), this._removalTimeout.unref && this._removalTimeout.unref())
                }

                install(e) {
                    if (p4(e), _g in e) throw new Error("CacheableLookup has been already installed");
                    e[_g] = e.createConnection, e[qx] = this, e.createConnection = (r, i) => ("lookup" in r || (r.lookup = this.lookup), e[_g](r, i))
                }

                uninstall(e) {
                    if (p4(e), e[_g]) {
                        if (e[qx] !== this) throw new Error("The agent is not owned by this CacheableLookup instance");
                        e.createConnection = e[_g], delete e[_g], delete e[qx]
                    }
                }

                updateInterfaceInfo() {
                    let {_iface: e} = this;
                    this._iface = d4(), (e.has4 && !this._iface.has4 || e.has6 && !this._iface.has6) && this._cache.clear()
                }

                clear(e) {
                    if (e) {
                        this._cache.delete(e);
                        return
                    }
                    this._cache.clear()
                }
            };
        jx.exports = Jx;
        jx.exports.default = Jx
    });
    var y4 = w((Yst, Wx) => {
        "use strict";
        var Gke = typeof URL == "undefined" ? require("url").URL : URL, jke = "text/plain", Yke = "us-ascii",
            E4 = (t, e) => e.some(r => r instanceof RegExp ? r.test(t) : r === t), qke = (t, {stripHash: e}) => {
                let r = t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);
                if (!r) throw new Error(`Invalid URL: ${t}`);
                let i = r[1].split(";"), n = r[2], s = e ? "" : r[3], o = !1;
                i[i.length - 1] === "base64" && (i.pop(), o = !0);
                let a = (i.shift() || "").toLowerCase(), c = [...i.map(u => {
                    let [g, f = ""] = u.split("=").map(h => h.trim());
                    return g === "charset" && (f = f.toLowerCase(), f === Yke) ? "" : `${g}${f ? `=${f}` : ""}`
                }).filter(Boolean)];
                return o && c.push("base64"), (c.length !== 0 || a && a !== jke) && c.unshift(a), `data:${c.join(";")},${o ? n.trim() : n}${s ? `#${s}` : ""}`
            }, I4 = (t, e) => {
                if (e = N({
                    defaultProtocol: "http:",
                    normalizeProtocol: !0,
                    forceHttp: !1,
                    forceHttps: !1,
                    stripAuthentication: !0,
                    stripHash: !1,
                    stripWWW: !0,
                    removeQueryParameters: [/^utm_\w+/i],
                    removeTrailingSlash: !0,
                    removeDirectoryIndex: !1,
                    sortQueryParameters: !0
                }, e), Reflect.has(e, "normalizeHttps")) throw new Error("options.normalizeHttps is renamed to options.forceHttp");
                if (Reflect.has(e, "normalizeHttp")) throw new Error("options.normalizeHttp is renamed to options.forceHttps");
                if (Reflect.has(e, "stripFragment")) throw new Error("options.stripFragment is renamed to options.stripHash");
                if (t = t.trim(), /^data:/i.test(t)) return qke(t, e);
                let r = t.startsWith("//");
                !r && /^\.*\//.test(t) || (t = t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//, e.defaultProtocol));
                let n = new Gke(t);
                if (e.forceHttp && e.forceHttps) throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");
                if (e.forceHttp && n.protocol === "https:" && (n.protocol = "http:"), e.forceHttps && n.protocol === "http:" && (n.protocol = "https:"), e.stripAuthentication && (n.username = "", n.password = ""), e.stripHash && (n.hash = ""), n.pathname && (n.pathname = n.pathname.replace(/((?!:).|^)\/{2,}/g, (s, o) => /^(?!\/)/g.test(o) ? `${o}/` : "/")), n.pathname && (n.pathname = decodeURI(n.pathname)), e.removeDirectoryIndex === !0 && (e.removeDirectoryIndex = [/^index\.[a-z]+$/]), Array.isArray(e.removeDirectoryIndex) && e.removeDirectoryIndex.length > 0) {
                    let s = n.pathname.split("/"), o = s[s.length - 1];
                    E4(o, e.removeDirectoryIndex) && (s = s.slice(0, s.length - 1), n.pathname = s.slice(1).join("/") + "/")
                }
                if (n.hostname && (n.hostname = n.hostname.replace(/\.$/, ""), e.stripWWW && /^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname) && (n.hostname = n.hostname.replace(/^www\./, ""))), Array.isArray(e.removeQueryParameters)) for (let s of [...n.searchParams.keys()]) E4(s, e.removeQueryParameters) && n.searchParams.delete(s);
                return e.sortQueryParameters && n.searchParams.sort(), e.removeTrailingSlash && (n.pathname = n.pathname.replace(/\/$/, "")), t = n.toString(), (e.removeTrailingSlash || n.pathname === "/") && n.hash === "" && (t = t.replace(/\/$/, "")), r && !e.normalizeProtocol && (t = t.replace(/^http:\/\//, "//")), e.stripProtocol && (t = t.replace(/^(?:https?:)?\/\//, "")), t
            };
        Wx.exports = I4;
        Wx.exports.default = I4
    });
    var b4 = w((qst, w4) => {
        w4.exports = B4;

        function B4(t, e) {
            if (t && e) return B4(t)(e);
            if (typeof t != "function") throw new TypeError("need wrapper function");
            return Object.keys(t).forEach(function (i) {
                r[i] = t[i]
            }), r;

            function r() {
                for (var i = new Array(arguments.length), n = 0; n < i.length; n++) i[n] = arguments[n];
                var s = t.apply(this, i), o = i[i.length - 1];
                return typeof s == "function" && s !== o && Object.keys(o).forEach(function (a) {
                    s[a] = o[a]
                }), s
            }
        }
    });
    var _x = w((Jst, zx) => {
        var Q4 = b4();
        zx.exports = Q4(kw);
        zx.exports.strict = Q4(v4);
        kw.proto = kw(function () {
            Object.defineProperty(Function.prototype, "once", {
                value: function () {
                    return kw(this)
                }, configurable: !0
            }), Object.defineProperty(Function.prototype, "onceStrict", {
                value: function () {
                    return v4(this)
                }, configurable: !0
            })
        });

        function kw(t) {
            var e = function () {
                return e.called ? e.value : (e.called = !0, e.value = t.apply(this, arguments))
            };
            return e.called = !1, e
        }

        function v4(t) {
            var e = function () {
                if (e.called) throw new Error(e.onceError);
                return e.called = !0, e.value = t.apply(this, arguments)
            }, r = t.name || "Function wrapped with `once`";
            return e.onceError = r + " shouldn't be called more than once", e.called = !1, e
        }
    });
    var Vx = w((Wst, S4) => {
        var Jke = _x(), Wke = function () {
        }, zke = function (t) {
            return t.setHeader && typeof t.abort == "function"
        }, _ke = function (t) {
            return t.stdio && Array.isArray(t.stdio) && t.stdio.length === 3
        }, k4 = function (t, e, r) {
            if (typeof e == "function") return k4(t, null, e);
            e || (e = {}), r = Jke(r || Wke);
            var i = t._writableState, n = t._readableState, s = e.readable || e.readable !== !1 && t.readable,
                o = e.writable || e.writable !== !1 && t.writable, a = function () {
                    t.writable || l()
                }, l = function () {
                    o = !1, s || r.call(t)
                }, c = function () {
                    s = !1, o || r.call(t)
                }, u = function (p) {
                    r.call(t, p ? new Error("exited with error code: " + p) : null)
                }, g = function (p) {
                    r.call(t, p)
                }, f = function () {
                    if (s && !(n && n.ended)) return r.call(t, new Error("premature close"));
                    if (o && !(i && i.ended)) return r.call(t, new Error("premature close"))
                }, h = function () {
                    t.req.on("finish", l)
                };
            return zke(t) ? (t.on("complete", l), t.on("abort", f), t.req ? h() : t.on("request", h)) : o && !i && (t.on("end", a), t.on("close", a)), _ke(t) && t.on("exit", u), t.on("end", c), t.on("finish", l), e.error !== !1 && t.on("error", g), t.on("close", f), function () {
                t.removeListener("complete", l), t.removeListener("abort", f), t.removeListener("request", h), t.req && t.req.removeListener("finish", l), t.removeListener("end", a), t.removeListener("close", a), t.removeListener("finish", l), t.removeListener("exit", u), t.removeListener("end", c), t.removeListener("error", g), t.removeListener("close", f)
            }
        };
        S4.exports = k4
    });
    var D4 = w((zst, x4) => {
        var Vke = _x(), Xke = Vx(), Xx = require("fs"), Pd = function () {
        }, Zke = /^v?\.0/.test(process.version), xw = function (t) {
            return typeof t == "function"
        }, $ke = function (t) {
            return !Zke || !Xx ? !1 : (t instanceof (Xx.ReadStream || Pd) || t instanceof (Xx.WriteStream || Pd)) && xw(t.close)
        }, exe = function (t) {
            return t.setHeader && xw(t.abort)
        }, txe = function (t, e, r, i) {
            i = Vke(i);
            var n = !1;
            t.on("close", function () {
                n = !0
            }), Xke(t, {readable: e, writable: r}, function (o) {
                if (o) return i(o);
                n = !0, i()
            });
            var s = !1;
            return function (o) {
                if (!n && !s) {
                    if (s = !0, $ke(t)) return t.close(Pd);
                    if (exe(t)) return t.abort();
                    if (xw(t.destroy)) return t.destroy();
                    i(o || new Error("stream was destroyed"))
                }
            }
        }, P4 = function (t) {
            t()
        }, rxe = function (t, e) {
            return t.pipe(e)
        }, ixe = function () {
            var t = Array.prototype.slice.call(arguments), e = xw(t[t.length - 1] || Pd) && t.pop() || Pd;
            if (Array.isArray(t[0]) && (t = t[0]), t.length < 2) throw new Error("pump requires two streams per minimum");
            var r, i = t.map(function (n, s) {
                var o = s < t.length - 1, a = s > 0;
                return txe(n, o, a, function (l) {
                    r || (r = l), l && i.forEach(P4), !o && (i.forEach(P4), e(r))
                })
            });
            return t.reduce(rxe)
        };
        x4.exports = ixe
    });
    var F4 = w((_st, R4) => {
        "use strict";
        var {PassThrough: nxe} = require("stream");
        R4.exports = t => {
            t = N({}, t);
            let {array: e} = t, {encoding: r} = t, i = r === "buffer", n = !1;
            e ? n = !(r || i) : r = r || "utf8", i && (r = null);
            let s = new nxe({objectMode: n});
            r && s.setEncoding(r);
            let o = 0, a = [];
            return s.on("data", l => {
                a.push(l), n ? o = a.length : o += l.length
            }), s.getBufferedValue = () => e ? a : i ? Buffer.concat(a, o) : a.join(""), s.getBufferedLength = () => o, s
        }
    });
    var N4 = w((Vst, Vg) => {
        "use strict";
        var sxe = D4(), oxe = F4(), Zx = class extends Error {
            constructor() {
                super("maxBuffer exceeded");
                this.name = "MaxBufferError"
            }
        };

        async function Pw(t, e) {
            if (!t) return Promise.reject(new Error("Expected a stream"));
            e = N({maxBuffer: Infinity}, e);
            let {maxBuffer: r} = e, i;
            return await new Promise((n, s) => {
                let o = a => {
                    a && (a.bufferedData = i.getBufferedValue()), s(a)
                };
                i = sxe(t, oxe(e), a => {
                    if (a) {
                        o(a);
                        return
                    }
                    n()
                }), i.on("data", () => {
                    i.getBufferedLength() > r && o(new Zx)
                })
            }), i.getBufferedValue()
        }

        Vg.exports = Pw;
        Vg.exports.default = Pw;
        Vg.exports.buffer = (t, e) => Pw(t, ie(N({}, e), {encoding: "buffer"}));
        Vg.exports.array = (t, e) => Pw(t, ie(N({}, e), {array: !0}));
        Vg.exports.MaxBufferError = Zx
    });
    var T4 = w((Zst, L4) => {
        "use strict";
        var axe = [200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501],
            Axe = [200, 203, 204, 300, 301, 302, 303, 307, 308, 404, 405, 410, 414, 501], lxe = {
                date: !0,
                connection: !0,
                "keep-alive": !0,
                "proxy-authenticate": !0,
                "proxy-authorization": !0,
                te: !0,
                trailer: !0,
                "transfer-encoding": !0,
                upgrade: !0
            }, cxe = {"content-length": !0, "content-encoding": !0, "transfer-encoding": !0, "content-range": !0};

        function $x(t) {
            let e = {};
            if (!t) return e;
            let r = t.trim().split(/\s*,\s*/);
            for (let i of r) {
                let [n, s] = i.split(/\s*=\s*/, 2);
                e[n] = s === void 0 ? !0 : s.replace(/^"|"$/g, "")
            }
            return e
        }

        function uxe(t) {
            let e = [];
            for (let r in t) {
                let i = t[r];
                e.push(i === !0 ? r : r + "=" + i)
            }
            if (!!e.length) return e.join(", ")
        }

        L4.exports = class {
            constructor(e, r, {
                shared: i,
                cacheHeuristic: n,
                immutableMinTimeToLive: s,
                ignoreCargoCult: o,
                trustServerDate: a,
                _fromObject: l
            } = {}) {
                if (l) {
                    this._fromObject(l);
                    return
                }
                if (!r || !r.headers) throw Error("Response headers missing");
                this._assertRequestHasHeaders(e), this._responseTime = this.now(), this._isShared = i !== !1, this._trustServerDate = a !== void 0 ? a : !0, this._cacheHeuristic = n !== void 0 ? n : .1, this._immutableMinTtl = s !== void 0 ? s : 24 * 3600 * 1e3, this._status = "status" in r ? r.status : 200, this._resHeaders = r.headers, this._rescc = $x(r.headers["cache-control"]), this._method = "method" in e ? e.method : "GET", this._url = e.url, this._host = e.headers.host, this._noAuthorization = !e.headers.authorization, this._reqHeaders = r.headers.vary ? e.headers : null, this._reqcc = $x(e.headers["cache-control"]), o && "pre-check" in this._rescc && "post-check" in this._rescc && (delete this._rescc["pre-check"], delete this._rescc["post-check"], delete this._rescc["no-cache"], delete this._rescc["no-store"], delete this._rescc["must-revalidate"], this._resHeaders = Object.assign({}, this._resHeaders, {"cache-control": uxe(this._rescc)}), delete this._resHeaders.expires, delete this._resHeaders.pragma), !r.headers["cache-control"] && /no-cache/.test(r.headers.pragma) && (this._rescc["no-cache"] = !0)
            }

            now() {
                return Date.now()
            }

            storable() {
                return !!(!this._reqcc["no-store"] && (this._method === "GET" || this._method === "HEAD" || this._method === "POST" && this._hasExplicitExpiration()) && Axe.indexOf(this._status) !== -1 && !this._rescc["no-store"] && (!this._isShared || !this._rescc.private) && (!this._isShared || this._noAuthorization || this._allowsStoringAuthenticated()) && (this._resHeaders.expires || this._rescc.public || this._rescc["max-age"] || this._rescc["s-maxage"] || axe.indexOf(this._status) !== -1))
            }

            _hasExplicitExpiration() {
                return this._isShared && this._rescc["s-maxage"] || this._rescc["max-age"] || this._resHeaders.expires
            }

            _assertRequestHasHeaders(e) {
                if (!e || !e.headers) throw Error("Request headers missing")
            }

            satisfiesWithoutRevalidation(e) {
                this._assertRequestHasHeaders(e);
                let r = $x(e.headers["cache-control"]);
                return r["no-cache"] || /no-cache/.test(e.headers.pragma) || r["max-age"] && this.age() > r["max-age"] || r["min-fresh"] && this.timeToLive() < 1e3 * r["min-fresh"] || this.stale() && !(r["max-stale"] && !this._rescc["must-revalidate"] && (r["max-stale"] === !0 || r["max-stale"] > this.age() - this.maxAge())) ? !1 : this._requestMatches(e, !1)
            }

            _requestMatches(e, r) {
                return (!this._url || this._url === e.url) && this._host === e.headers.host && (!e.method || this._method === e.method || r && e.method === "HEAD") && this._varyMatches(e)
            }

            _allowsStoringAuthenticated() {
                return this._rescc["must-revalidate"] || this._rescc.public || this._rescc["s-maxage"]
            }

            _varyMatches(e) {
                if (!this._resHeaders.vary) return !0;
                if (this._resHeaders.vary === "*") return !1;
                let r = this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);
                for (let i of r) if (e.headers[i] !== this._reqHeaders[i]) return !1;
                return !0
            }

            _copyWithoutHopByHopHeaders(e) {
                let r = {};
                for (let i in e) lxe[i] || (r[i] = e[i]);
                if (e.connection) {
                    let i = e.connection.trim().split(/\s*,\s*/);
                    for (let n of i) delete r[n]
                }
                if (r.warning) {
                    let i = r.warning.split(/,/).filter(n => !/^\s*1[0-9][0-9]/.test(n));
                    i.length ? r.warning = i.join(",").trim() : delete r.warning
                }
                return r
            }

            responseHeaders() {
                let e = this._copyWithoutHopByHopHeaders(this._resHeaders), r = this.age();
                return r > 3600 * 24 && !this._hasExplicitExpiration() && this.maxAge() > 3600 * 24 && (e.warning = (e.warning ? `${e.warning}, ` : "") + '113 - "rfc7234 5.5.4"'), e.age = `${Math.round(r)}`, e.date = new Date(this.now()).toUTCString(), e
            }

            date() {
                return this._trustServerDate ? this._serverDate() : this._responseTime
            }

            _serverDate() {
                let e = Date.parse(this._resHeaders.date);
                if (isFinite(e)) {
                    let r = 8 * 3600 * 1e3;
                    if (Math.abs(this._responseTime - e) < r) return e
                }
                return this._responseTime
            }

            age() {
                let e = Math.max(0, (this._responseTime - this.date()) / 1e3);
                if (this._resHeaders.age) {
                    let i = this._ageValue();
                    i > e && (e = i)
                }
                let r = (this.now() - this._responseTime) / 1e3;
                return e + r
            }

            _ageValue() {
                let e = parseInt(this._resHeaders.age);
                return isFinite(e) ? e : 0
            }

            maxAge() {
                if (!this.storable() || this._rescc["no-cache"] || this._isShared && this._resHeaders["set-cookie"] && !this._rescc.public && !this._rescc.immutable || this._resHeaders.vary === "*") return 0;
                if (this._isShared) {
                    if (this._rescc["proxy-revalidate"]) return 0;
                    if (this._rescc["s-maxage"]) return parseInt(this._rescc["s-maxage"], 10)
                }
                if (this._rescc["max-age"]) return parseInt(this._rescc["max-age"], 10);
                let e = this._rescc.immutable ? this._immutableMinTtl : 0, r = this._serverDate();
                if (this._resHeaders.expires) {
                    let i = Date.parse(this._resHeaders.expires);
                    return Number.isNaN(i) || i < r ? 0 : Math.max(e, (i - r) / 1e3)
                }
                if (this._resHeaders["last-modified"]) {
                    let i = Date.parse(this._resHeaders["last-modified"]);
                    if (isFinite(i) && r > i) return Math.max(e, (r - i) / 1e3 * this._cacheHeuristic)
                }
                return e
            }

            timeToLive() {
                return Math.max(0, this.maxAge() - this.age()) * 1e3
            }

            stale() {
                return this.maxAge() <= this.age()
            }

            static fromObject(e) {
                return new this(void 0, void 0, {_fromObject: e})
            }

            _fromObject(e) {
                if (this._responseTime) throw Error("Reinitialized");
                if (!e || e.v !== 1) throw Error("Invalid serialization");
                this._responseTime = e.t, this._isShared = e.sh, this._cacheHeuristic = e.ch, this._immutableMinTtl = e.imm !== void 0 ? e.imm : 24 * 3600 * 1e3, this._status = e.st, this._resHeaders = e.resh, this._rescc = e.rescc, this._method = e.m, this._url = e.u, this._host = e.h, this._noAuthorization = e.a, this._reqHeaders = e.reqh, this._reqcc = e.reqcc
            }

            toObject() {
                return {
                    v: 1,
                    t: this._responseTime,
                    sh: this._isShared,
                    ch: this._cacheHeuristic,
                    imm: this._immutableMinTtl,
                    st: this._status,
                    resh: this._resHeaders,
                    rescc: this._rescc,
                    m: this._method,
                    u: this._url,
                    h: this._host,
                    a: this._noAuthorization,
                    reqh: this._reqHeaders,
                    reqcc: this._reqcc
                }
            }

            revalidationHeaders(e) {
                this._assertRequestHasHeaders(e);
                let r = this._copyWithoutHopByHopHeaders(e.headers);
                if (delete r["if-range"], !this._requestMatches(e, !0) || !this.storable()) return delete r["if-none-match"], delete r["if-modified-since"], r;
                if (this._resHeaders.etag && (r["if-none-match"] = r["if-none-match"] ? `${r["if-none-match"]}, ${this._resHeaders.etag}` : this._resHeaders.etag), r["accept-ranges"] || r["if-match"] || r["if-unmodified-since"] || this._method && this._method != "GET") {
                    if (delete r["if-modified-since"], r["if-none-match"]) {
                        let n = r["if-none-match"].split(/,/).filter(s => !/^\s*W\//.test(s));
                        n.length ? r["if-none-match"] = n.join(",").trim() : delete r["if-none-match"]
                    }
                } else this._resHeaders["last-modified"] && !r["if-modified-since"] && (r["if-modified-since"] = this._resHeaders["last-modified"]);
                return r
            }

            revalidatedPolicy(e, r) {
                if (this._assertRequestHasHeaders(e), !r || !r.headers) throw Error("Response headers missing");
                let i = !1;
                if (r.status !== void 0 && r.status != 304 ? i = !1 : r.headers.etag && !/^\s*W\//.test(r.headers.etag) ? i = this._resHeaders.etag && this._resHeaders.etag.replace(/^\s*W\//, "") === r.headers.etag : this._resHeaders.etag && r.headers.etag ? i = this._resHeaders.etag.replace(/^\s*W\//, "") === r.headers.etag.replace(/^\s*W\//, "") : this._resHeaders["last-modified"] ? i = this._resHeaders["last-modified"] === r.headers["last-modified"] : !this._resHeaders.etag && !this._resHeaders["last-modified"] && !r.headers.etag && !r.headers["last-modified"] && (i = !0), !i) return {
                    policy: new this.constructor(e, r),
                    modified: r.status != 304,
                    matches: !1
                };
                let n = {};
                for (let o in this._resHeaders) n[o] = o in r.headers && !cxe[o] ? r.headers[o] : this._resHeaders[o];
                let s = Object.assign({}, r, {status: this._status, method: this._method, headers: n});
                return {
                    policy: new this.constructor(e, s, {
                        shared: this._isShared,
                        cacheHeuristic: this._cacheHeuristic,
                        immutableMinTimeToLive: this._immutableMinTtl,
                        trustServerDate: this._trustServerDate
                    }), modified: !1, matches: !0
                }
            }
        }
    });
    var Dw = w(($st, O4) => {
        "use strict";
        O4.exports = t => {
            let e = {};
            for (let [r, i] of Object.entries(t)) e[r.toLowerCase()] = i;
            return e
        }
    });
    var U4 = w((eot, M4) => {
        "use strict";
        var gxe = require("stream").Readable, fxe = Dw(), K4 = class extends gxe {
            constructor(e, r, i, n) {
                if (typeof e != "number") throw new TypeError("Argument `statusCode` should be a number");
                if (typeof r != "object") throw new TypeError("Argument `headers` should be an object");
                if (!(i instanceof Buffer)) throw new TypeError("Argument `body` should be a buffer");
                if (typeof n != "string") throw new TypeError("Argument `url` should be a string");
                super();
                this.statusCode = e, this.headers = fxe(r), this.body = i, this.url = n
            }

            _read() {
                this.push(this.body), this.push(null)
            }
        };
        M4.exports = K4
    });
    var G4 = w((tot, H4) => {
        "use strict";
        var hxe = ["destroy", "setTimeout", "socket", "headers", "trailers", "rawHeaders", "statusCode", "httpVersion", "httpVersionMinor", "httpVersionMajor", "rawTrailers", "statusMessage"];
        H4.exports = (t, e) => {
            let r = new Set(Object.keys(t).concat(hxe));
            for (let i of r) i in e || (e[i] = typeof t[i] == "function" ? t[i].bind(t) : t[i])
        }
    });
    var Y4 = w((rot, j4) => {
        "use strict";
        var pxe = require("stream").PassThrough, dxe = G4(), Cxe = t => {
            if (!(t && t.pipe)) throw new TypeError("Parameter `response` must be a response stream.");
            let e = new pxe;
            return dxe(t, e), t.pipe(e)
        };
        j4.exports = Cxe
    });
    var q4 = w(eP => {
        eP.stringify = function t(e) {
            if (typeof e == "undefined") return e;
            if (e && Buffer.isBuffer(e)) return JSON.stringify(":base64:" + e.toString("base64"));
            if (e && e.toJSON && (e = e.toJSON()), e && typeof e == "object") {
                var r = "", i = Array.isArray(e);
                r = i ? "[" : "{";
                var n = !0;
                for (var s in e) {
                    var o = typeof e[s] == "function" || !i && typeof e[s] == "undefined";
                    Object.hasOwnProperty.call(e, s) && !o && (n || (r += ","), n = !1, i ? e[s] == null ? r += "null" : r += t(e[s]) : e[s] !== void 0 && (r += t(s) + ":" + t(e[s])))
                }
                return r += i ? "]" : "}", r
            } else return typeof e == "string" ? JSON.stringify(/^:/.test(e) ? ":" + e : e) : typeof e == "undefined" ? "null" : JSON.stringify(e)
        };
        eP.parse = function (t) {
            return JSON.parse(t, function (e, r) {
                return typeof r == "string" ? /^:base64:/.test(r) ? Buffer.from(r.substring(8), "base64") : /^:/.test(r) ? r.substring(1) : r : r
            })
        }
    });
    var _4 = w((not, J4) => {
        "use strict";
        var mxe = require("events"), W4 = q4(), Exe = t => {
            let e = {
                redis: "@keyv/redis",
                mongodb: "@keyv/mongo",
                mongo: "@keyv/mongo",
                sqlite: "@keyv/sqlite",
                postgresql: "@keyv/postgres",
                postgres: "@keyv/postgres",
                mysql: "@keyv/mysql"
            };
            if (t.adapter || t.uri) {
                let r = t.adapter || /^[^:]*/.exec(t.uri)[0];
                return new (require(e[r]))(t)
            }
            return new Map
        }, z4 = class extends mxe {
            constructor(e, r) {
                super();
                if (this.opts = Object.assign({
                    namespace: "keyv",
                    serialize: W4.stringify,
                    deserialize: W4.parse
                }, typeof e == "string" ? {uri: e} : e, r), !this.opts.store) {
                    let i = Object.assign({}, this.opts);
                    this.opts.store = Exe(i)
                }
                typeof this.opts.store.on == "function" && this.opts.store.on("error", i => this.emit("error", i)), this.opts.store.namespace = this.opts.namespace
            }

            _getKeyPrefix(e) {
                return `${this.opts.namespace}:${e}`
            }

            get(e, r) {
                e = this._getKeyPrefix(e);
                let {store: i} = this.opts;
                return Promise.resolve().then(() => i.get(e)).then(n => typeof n == "string" ? this.opts.deserialize(n) : n).then(n => {
                    if (n !== void 0) {
                        if (typeof n.expires == "number" && Date.now() > n.expires) {
                            this.delete(e);
                            return
                        }
                        return r && r.raw ? n : n.value
                    }
                })
            }

            set(e, r, i) {
                e = this._getKeyPrefix(e), typeof i == "undefined" && (i = this.opts.ttl), i === 0 && (i = void 0);
                let {store: n} = this.opts;
                return Promise.resolve().then(() => {
                    let s = typeof i == "number" ? Date.now() + i : null;
                    return r = {value: r, expires: s}, this.opts.serialize(r)
                }).then(s => n.set(e, s, i)).then(() => !0)
            }

            delete(e) {
                e = this._getKeyPrefix(e);
                let {store: r} = this.opts;
                return Promise.resolve().then(() => r.delete(e))
            }

            clear() {
                let {store: e} = this.opts;
                return Promise.resolve().then(() => e.clear())
            }
        };
        J4.exports = z4
    });
    var Z4 = w((sot, V4) => {
        "use strict";
        var Ixe = require("events"), Rw = require("url"), yxe = y4(), wxe = N4(), tP = T4(), X4 = U4(), Bxe = Dw(),
            bxe = Y4(), Qxe = _4(), ea = class {
                constructor(e, r) {
                    if (typeof e != "function") throw new TypeError("Parameter `request` must be a function");
                    return this.cache = new Qxe({
                        uri: typeof r == "string" && r,
                        store: typeof r != "string" && r,
                        namespace: "cacheable-request"
                    }), this.createCacheableRequest(e)
                }

                createCacheableRequest(e) {
                    return (r, i) => {
                        let n;
                        if (typeof r == "string") n = rP(Rw.parse(r)), r = {}; else if (r instanceof Rw.URL) n = rP(Rw.parse(r.toString())), r = {}; else {
                            let [g, ...f] = (r.path || "").split("?"), h = f.length > 0 ? `?${f.join("?")}` : "";
                            n = rP(ie(N({}, r), {pathname: g, search: h}))
                        }
                        r = N(N({
                            headers: {},
                            method: "GET",
                            cache: !0,
                            strictTtl: !1,
                            automaticFailover: !1
                        }, r), vxe(n)), r.headers = Bxe(r.headers);
                        let s = new Ixe,
                            o = yxe(Rw.format(n), {stripWWW: !1, removeTrailingSlash: !1, stripAuthentication: !1}),
                            a = `${r.method}:${o}`, l = !1, c = !1, u = g => {
                                c = !0;
                                let f = !1, h, p = new Promise(y => {
                                    h = () => {
                                        f || (f = !0, y())
                                    }
                                }), m = y => {
                                    if (l && !g.forceRefresh) {
                                        y.status = y.statusCode;
                                        let S = tP.fromObject(l.cachePolicy).revalidatedPolicy(g, y);
                                        if (!S.modified) {
                                            let k = S.policy.responseHeaders();
                                            y = new X4(l.statusCode, k, l.body, l.url), y.cachePolicy = S.policy, y.fromCache = !0
                                        }
                                    }
                                    y.fromCache || (y.cachePolicy = new tP(g, y, g), y.fromCache = !1);
                                    let b;
                                    g.cache && y.cachePolicy.storable() ? (b = bxe(y), (async () => {
                                        try {
                                            let S = wxe.buffer(y);
                                            if (await Promise.race([p, new Promise(j => y.once("end", j))]), f) return;
                                            let k = await S, T = {
                                                cachePolicy: y.cachePolicy.toObject(),
                                                url: y.url,
                                                statusCode: y.fromCache ? l.statusCode : y.statusCode,
                                                body: k
                                            }, Y = g.strictTtl ? y.cachePolicy.timeToLive() : void 0;
                                            g.maxTtl && (Y = Y ? Math.min(Y, g.maxTtl) : g.maxTtl), await this.cache.set(a, T, Y)
                                        } catch (S) {
                                            s.emit("error", new ea.CacheError(S))
                                        }
                                    })()) : g.cache && l && (async () => {
                                        try {
                                            await this.cache.delete(a)
                                        } catch (S) {
                                            s.emit("error", new ea.CacheError(S))
                                        }
                                    })(), s.emit("response", b || y), typeof i == "function" && i(b || y)
                                };
                                try {
                                    let y = e(g, m);
                                    y.once("error", h), y.once("abort", h), s.emit("request", y)
                                } catch (y) {
                                    s.emit("error", new ea.RequestError(y))
                                }
                            };
                        return (async () => {
                            let g = async h => {
                                await Promise.resolve();
                                let p = h.cache ? await this.cache.get(a) : void 0;
                                if (typeof p == "undefined") return u(h);
                                let m = tP.fromObject(p.cachePolicy);
                                if (m.satisfiesWithoutRevalidation(h) && !h.forceRefresh) {
                                    let y = m.responseHeaders(), b = new X4(p.statusCode, y, p.body, p.url);
                                    b.cachePolicy = m, b.fromCache = !0, s.emit("response", b), typeof i == "function" && i(b)
                                } else l = p, h.headers = m.revalidationHeaders(h), u(h)
                            }, f = h => s.emit("error", new ea.CacheError(h));
                            this.cache.once("error", f), s.on("response", () => this.cache.removeListener("error", f));
                            try {
                                await g(r)
                            } catch (h) {
                                r.automaticFailover && !c && u(r), s.emit("error", new ea.CacheError(h))
                            }
                        })(), s
                    }
                }
            };

        function vxe(t) {
            let e = N({}, t);
            return e.path = `${t.pathname || "/"}${t.search || ""}`, delete e.pathname, delete e.search, e
        }

        function rP(t) {
            return {
                protocol: t.protocol,
                auth: t.auth,
                hostname: t.hostname || t.host || "localhost",
                port: t.port,
                pathname: t.pathname,
                search: t.search
            }
        }

        ea.RequestError = class extends Error {
            constructor(t) {
                super(t.message);
                this.name = "RequestError", Object.assign(this, t)
            }
        };
        ea.CacheError = class extends Error {
            constructor(t) {
                super(t.message);
                this.name = "CacheError", Object.assign(this, t)
            }
        };
        V4.exports = ea
    });
    var ez = w((oot, $4) => {
        "use strict";
        var Sxe = ["aborted", "complete", "headers", "httpVersion", "httpVersionMinor", "httpVersionMajor", "method", "rawHeaders", "rawTrailers", "setTimeout", "socket", "statusCode", "statusMessage", "trailers", "url"];
        $4.exports = (t, e) => {
            if (e._readableState.autoDestroy) throw new Error("The second stream must have the `autoDestroy` option set to `false`");
            let r = new Set(Object.keys(t).concat(Sxe)), i = {};
            for (let n of r) n in e || (i[n] = {
                get() {
                    let s = t[n];
                    return typeof s == "function" ? s.bind(t) : s
                }, set(s) {
                    t[n] = s
                }, enumerable: !0, configurable: !1
            });
            return Object.defineProperties(e, i), t.once("aborted", () => {
                e.destroy(), e.emit("aborted")
            }), t.once("close", () => {
                t.complete && e.readable ? e.once("end", () => {
                    e.emit("close")
                }) : e.emit("close")
            }), e
        }
    });
    var rz = w((aot, tz) => {
        "use strict";
        var {Transform: kxe, PassThrough: xxe} = require("stream"), iP = require("zlib"), Pxe = ez();
        tz.exports = t => {
            let e = (t.headers["content-encoding"] || "").toLowerCase();
            if (!["gzip", "deflate", "br"].includes(e)) return t;
            let r = e === "br";
            if (r && typeof iP.createBrotliDecompress != "function") return t.destroy(new Error("Brotli is not supported on Node.js < 12")), t;
            let i = !0, n = new kxe({
                transform(a, l, c) {
                    i = !1, c(null, a)
                }, flush(a) {
                    a()
                }
            }), s = new xxe({
                autoDestroy: !1, destroy(a, l) {
                    t.destroy(), l(a)
                }
            }), o = r ? iP.createBrotliDecompress() : iP.createUnzip();
            return o.once("error", a => {
                if (i && !t.readable) {
                    s.end();
                    return
                }
                s.destroy(a)
            }), Pxe(t, s), t.pipe(n).pipe(o).pipe(s), s
        }
    });
    var nP = w((Aot, iz) => {
        "use strict";
        var nz = class {
            constructor(e = {}) {
                if (!(e.maxSize && e.maxSize > 0)) throw new TypeError("`maxSize` must be a number greater than 0");
                this.maxSize = e.maxSize, this.onEviction = e.onEviction, this.cache = new Map, this.oldCache = new Map, this._size = 0
            }

            _set(e, r) {
                if (this.cache.set(e, r), this._size++, this._size >= this.maxSize) {
                    if (this._size = 0, typeof this.onEviction == "function") for (let [i, n] of this.oldCache.entries()) this.onEviction(i, n);
                    this.oldCache = this.cache, this.cache = new Map
                }
            }

            get(e) {
                if (this.cache.has(e)) return this.cache.get(e);
                if (this.oldCache.has(e)) {
                    let r = this.oldCache.get(e);
                    return this.oldCache.delete(e), this._set(e, r), r
                }
            }

            set(e, r) {
                return this.cache.has(e) ? this.cache.set(e, r) : this._set(e, r), this
            }

            has(e) {
                return this.cache.has(e) || this.oldCache.has(e)
            }

            peek(e) {
                if (this.cache.has(e)) return this.cache.get(e);
                if (this.oldCache.has(e)) return this.oldCache.get(e)
            }

            delete(e) {
                let r = this.cache.delete(e);
                return r && this._size--, this.oldCache.delete(e) || r
            }

            clear() {
                this.cache.clear(), this.oldCache.clear(), this._size = 0
            }

            * keys() {
                for (let [e] of this) yield e
            }

            * values() {
                for (let [, e] of this) yield e
            }

            * [Symbol.iterator]() {
                for (let e of this.cache) yield e;
                for (let e of this.oldCache) {
                    let [r] = e;
                    this.cache.has(r) || (yield e)
                }
            }

            get size() {
                let e = 0;
                for (let r of this.oldCache.keys()) this.cache.has(r) || e++;
                return Math.min(this._size + e, this.maxSize)
            }
        };
        iz.exports = nz
    });
    var oP = w((lot, sz) => {
        "use strict";
        var Dxe = require("events"), Rxe = require("tls"), Fxe = require("http2"), Nxe = nP(),
            gn = Symbol("currentStreamsCount"), oz = Symbol("request"), Ns = Symbol("cachedOriginSet"),
            Xg = Symbol("gracefullyClosing"),
            Lxe = ["maxDeflateDynamicTableSize", "maxSessionMemory", "maxHeaderListPairs", "maxOutstandingPings", "maxReservedRemoteStreams", "maxSendHeaderBlockLength", "paddingStrategy", "localAddress", "path", "rejectUnauthorized", "minDHSize", "ca", "cert", "clientCertEngine", "ciphers", "key", "pfx", "servername", "minVersion", "maxVersion", "secureProtocol", "crl", "honorCipherOrder", "ecdhCurve", "dhparam", "secureOptions", "sessionIdContext"],
            Txe = (t, e, r) => {
                let i = 0, n = t.length;
                for (; i < n;) {
                    let s = i + n >>> 1;
                    r(t[s], e) ? i = s + 1 : n = s
                }
                return i
            }, Oxe = (t, e) => t.remoteSettings.maxConcurrentStreams > e.remoteSettings.maxConcurrentStreams,
            sP = (t, e) => {
                for (let r of t) r[Ns].length < e[Ns].length && r[Ns].every(i => e[Ns].includes(i)) && r[gn] + e[gn] <= e.remoteSettings.maxConcurrentStreams && az(r)
            }, Mxe = (t, e) => {
                for (let r of t) e[Ns].length < r[Ns].length && e[Ns].every(i => r[Ns].includes(i)) && e[gn] + r[gn] <= r.remoteSettings.maxConcurrentStreams && az(e)
            }, Az = ({agent: t, isFree: e}) => {
                let r = {};
                for (let i in t.sessions) {
                    let s = t.sessions[i].filter(o => {
                        let a = o[tA.kCurrentStreamsCount] < o.remoteSettings.maxConcurrentStreams;
                        return e ? a : !a
                    });
                    s.length !== 0 && (r[i] = s)
                }
                return r
            }, az = t => {
                t[Xg] = !0, t[gn] === 0 && t.close()
            }, tA = class extends Dxe {
                constructor({
                                timeout: e = 6e4,
                                maxSessions: r = Infinity,
                                maxFreeSessions: i = 10,
                                maxCachedTlsSessions: n = 100
                            } = {}) {
                    super();
                    this.sessions = {}, this.queue = {}, this.timeout = e, this.maxSessions = r, this.maxFreeSessions = i, this._freeSessionsCount = 0, this._sessionsCount = 0, this.settings = {enablePush: !1}, this.tlsSessionCache = new Nxe({maxSize: n})
                }

                static normalizeOrigin(e, r) {
                    return typeof e == "string" && (e = new URL(e)), r && e.hostname !== r && (e.hostname = r), e.origin
                }

                normalizeOptions(e) {
                    let r = "";
                    if (e) for (let i of Lxe) e[i] && (r += `:${e[i]}`);
                    return r
                }

                _tryToCreateNewSession(e, r) {
                    if (!(e in this.queue) || !(r in this.queue[e])) return;
                    let i = this.queue[e][r];
                    this._sessionsCount < this.maxSessions && !i.completed && (i.completed = !0, i())
                }

                getSession(e, r, i) {
                    return new Promise((n, s) => {
                        Array.isArray(i) ? (i = [...i], n()) : i = [{resolve: n, reject: s}];
                        let o = this.normalizeOptions(r), a = tA.normalizeOrigin(e, r && r.servername);
                        if (a === void 0) {
                            for (let {reject: u} of i) u(new TypeError("The `origin` argument needs to be a string or an URL object"));
                            return
                        }
                        if (o in this.sessions) {
                            let u = this.sessions[o], g = -1, f = -1, h;
                            for (let p of u) {
                                let m = p.remoteSettings.maxConcurrentStreams;
                                if (m < g) break;
                                if (p[Ns].includes(a)) {
                                    let y = p[gn];
                                    if (y >= m || p[Xg] || p.destroyed) continue;
                                    h || (g = m), y > f && (h = p, f = y)
                                }
                            }
                            if (h) {
                                if (i.length !== 1) {
                                    for (let {reject: p} of i) {
                                        let m = new Error(`Expected the length of listeners to be 1, got ${i.length}.
Please report this to https://github.com/szmarczak/http2-wrapper/`);
                                        p(m)
                                    }
                                    return
                                }
                                i[0].resolve(h);
                                return
                            }
                        }
                        if (o in this.queue) {
                            if (a in this.queue[o]) {
                                this.queue[o][a].listeners.push(...i), this._tryToCreateNewSession(o, a);
                                return
                            }
                        } else this.queue[o] = {};
                        let l = () => {
                            o in this.queue && this.queue[o][a] === c && (delete this.queue[o][a], Object.keys(this.queue[o]).length === 0 && delete this.queue[o])
                        }, c = () => {
                            let u = `${a}:${o}`, g = !1;
                            try {
                                let f = Fxe.connect(e, N({
                                    createConnection: this.createConnection,
                                    settings: this.settings,
                                    session: this.tlsSessionCache.get(u)
                                }, r));
                                f[gn] = 0, f[Xg] = !1;
                                let h = () => f[gn] < f.remoteSettings.maxConcurrentStreams, p = !0;
                                f.socket.once("session", y => {
                                    this.tlsSessionCache.set(u, y)
                                }), f.once("error", y => {
                                    for (let {reject: b} of i) b(y);
                                    this.tlsSessionCache.delete(u)
                                }), f.setTimeout(this.timeout, () => {
                                    f.destroy()
                                }), f.once("close", () => {
                                    if (g) {
                                        p && this._freeSessionsCount--, this._sessionsCount--;
                                        let y = this.sessions[o];
                                        y.splice(y.indexOf(f), 1), y.length === 0 && delete this.sessions[o]
                                    } else {
                                        let y = new Error("Session closed without receiving a SETTINGS frame");
                                        y.code = "HTTP2WRAPPER_NOSETTINGS";
                                        for (let {reject: b} of i) b(y);
                                        l()
                                    }
                                    this._tryToCreateNewSession(o, a)
                                });
                                let m = () => {
                                    if (!(!(o in this.queue) || !h())) {
                                        for (let y of f[Ns]) if (y in this.queue[o]) {
                                            let {listeners: b} = this.queue[o][y];
                                            for (; b.length !== 0 && h();) b.shift().resolve(f);
                                            let S = this.queue[o];
                                            if (S[y].listeners.length === 0 && (delete S[y], Object.keys(S).length === 0)) {
                                                delete this.queue[o];
                                                break
                                            }
                                            if (!h()) break
                                        }
                                    }
                                };
                                f.on("origin", () => {
                                    f[Ns] = f.originSet, !!h() && (m(), sP(this.sessions[o], f))
                                }), f.once("remoteSettings", () => {
                                    if (f.ref(), f.unref(), this._sessionsCount++, c.destroyed) {
                                        let y = new Error("Agent has been destroyed");
                                        for (let b of i) b.reject(y);
                                        f.destroy();
                                        return
                                    }
                                    f[Ns] = f.originSet;
                                    {
                                        let y = this.sessions;
                                        if (o in y) {
                                            let b = y[o];
                                            b.splice(Txe(b, f, Oxe), 0, f)
                                        } else y[o] = [f]
                                    }
                                    this._freeSessionsCount += 1, g = !0, this.emit("session", f), m(), l(), f[gn] === 0 && this._freeSessionsCount > this.maxFreeSessions && f.close(), i.length !== 0 && (this.getSession(a, r, i), i.length = 0), f.on("remoteSettings", () => {
                                        m(), sP(this.sessions[o], f)
                                    })
                                }), f[oz] = f.request, f.request = (y, b) => {
                                    if (f[Xg]) throw new Error("The session is gracefully closing. No new streams are allowed.");
                                    let S = f[oz](y, b);
                                    return f.ref(), ++f[gn], f[gn] === f.remoteSettings.maxConcurrentStreams && this._freeSessionsCount--, S.once("close", () => {
                                        if (p = h(), --f[gn], !f.destroyed && !f.closed && (Mxe(this.sessions[o], f), h() && !f.closed)) {
                                            p || (this._freeSessionsCount++, p = !0);
                                            let k = f[gn] === 0;
                                            k && f.unref(), k && (this._freeSessionsCount > this.maxFreeSessions || f[Xg]) ? f.close() : (sP(this.sessions[o], f), m())
                                        }
                                    }), S
                                }
                            } catch (f) {
                                for (let h of i) h.reject(f);
                                l()
                            }
                        };
                        c.listeners = i, c.completed = !1, c.destroyed = !1, this.queue[o][a] = c, this._tryToCreateNewSession(o, a)
                    })
                }

                request(e, r, i, n) {
                    return new Promise((s, o) => {
                        this.getSession(e, r, [{
                            reject: o, resolve: a => {
                                try {
                                    s(a.request(i, n))
                                } catch (l) {
                                    o(l)
                                }
                            }
                        }])
                    })
                }

                createConnection(e, r) {
                    return tA.connect(e, r)
                }

                static connect(e, r) {
                    r.ALPNProtocols = ["h2"];
                    let i = e.port || 443, n = e.hostname || e.host;
                    return typeof r.servername == "undefined" && (r.servername = n), Rxe.connect(i, n, r)
                }

                closeFreeSessions() {
                    for (let e of Object.values(this.sessions)) for (let r of e) r[gn] === 0 && r.close()
                }

                destroy(e) {
                    for (let r of Object.values(this.sessions)) for (let i of r) i.destroy(e);
                    for (let r of Object.values(this.queue)) for (let i of Object.values(r)) i.destroyed = !0;
                    this.queue = {}
                }

                get freeSessions() {
                    return Az({agent: this, isFree: !0})
                }

                get busySessions() {
                    return Az({agent: this, isFree: !1})
                }
            };
        tA.kCurrentStreamsCount = gn;
        tA.kGracefullyClosing = Xg;
        sz.exports = {Agent: tA, globalAgent: new tA}
    });
    var aP = w((cot, lz) => {
        "use strict";
        var {Readable: Kxe} = require("stream"), cz = class extends Kxe {
            constructor(e, r) {
                super({highWaterMark: r, autoDestroy: !1});
                this.statusCode = null, this.statusMessage = "", this.httpVersion = "2.0", this.httpVersionMajor = 2, this.httpVersionMinor = 0, this.headers = {}, this.trailers = {}, this.req = null, this.aborted = !1, this.complete = !1, this.upgrade = null, this.rawHeaders = [], this.rawTrailers = [], this.socket = e, this.connection = e, this._dumped = !1
            }

            _destroy(e) {
                this.req._request.destroy(e)
            }

            setTimeout(e, r) {
                return this.req.setTimeout(e, r), this
            }

            _dump() {
                this._dumped || (this._dumped = !0, this.removeAllListeners("data"), this.resume())
            }

            _read() {
                this.req && this.req._request.resume()
            }
        };
        lz.exports = cz
    });
    var AP = w((uot, uz) => {
        "use strict";
        uz.exports = t => {
            let e = {
                protocol: t.protocol,
                hostname: typeof t.hostname == "string" && t.hostname.startsWith("[") ? t.hostname.slice(1, -1) : t.hostname,
                host: t.host,
                hash: t.hash,
                search: t.search,
                pathname: t.pathname,
                href: t.href,
                path: `${t.pathname || ""}${t.search || ""}`
            };
            return typeof t.port == "string" && t.port.length !== 0 && (e.port = Number(t.port)), (t.username || t.password) && (e.auth = `${t.username || ""}:${t.password || ""}`), e
        }
    });
    var fz = w((got, gz) => {
        "use strict";
        gz.exports = (t, e, r) => {
            for (let i of r) t.on(i, (...n) => e.emit(i, ...n))
        }
    });
    var pz = w((fot, hz) => {
        "use strict";
        hz.exports = t => {
            switch (t) {
                case":method":
                case":scheme":
                case":authority":
                case":path":
                    return !0;
                default:
                    return !1
            }
        }
    });
    var Cz = w((pot, dz) => {
        "use strict";
        var Zg = (t, e, r) => {
            dz.exports[e] = class extends t {
                constructor(...n) {
                    super(typeof r == "string" ? r : r(n));
                    this.name = `${super.name} [${e}]`, this.code = e
                }
            }
        };
        Zg(TypeError, "ERR_INVALID_ARG_TYPE", t => {
            let e = t[0].includes(".") ? "property" : "argument", r = t[1], i = Array.isArray(r);
            return i && (r = `${r.slice(0, -1).join(", ")} or ${r.slice(-1)}`), `The "${t[0]}" ${e} must be ${i ? "one of" : "of"} type ${r}. Received ${typeof t[2]}`
        });
        Zg(TypeError, "ERR_INVALID_PROTOCOL", t => `Protocol "${t[0]}" not supported. Expected "${t[1]}"`);
        Zg(Error, "ERR_HTTP_HEADERS_SENT", t => `Cannot ${t[0]} headers after they are sent to the client`);
        Zg(TypeError, "ERR_INVALID_HTTP_TOKEN", t => `${t[0]} must be a valid HTTP token [${t[1]}]`);
        Zg(TypeError, "ERR_HTTP_INVALID_HEADER_VALUE", t => `Invalid value "${t[0]} for header "${t[1]}"`);
        Zg(TypeError, "ERR_INVALID_CHAR", t => `Invalid character in ${t[0]} [${t[1]}]`)
    });
    var gP = w((dot, mz) => {
        "use strict";
        var Uxe = require("http2"), {Writable: Hxe} = require("stream"), {Agent: Ez, globalAgent: Gxe} = oP(),
            jxe = aP(), Yxe = AP(), qxe = fz(), Jxe = pz(), {
                ERR_INVALID_ARG_TYPE: lP,
                ERR_INVALID_PROTOCOL: Wxe,
                ERR_HTTP_HEADERS_SENT: Iz,
                ERR_INVALID_HTTP_TOKEN: zxe,
                ERR_HTTP_INVALID_HEADER_VALUE: _xe,
                ERR_INVALID_CHAR: Vxe
            } = Cz(), {
                HTTP2_HEADER_STATUS: yz,
                HTTP2_HEADER_METHOD: wz,
                HTTP2_HEADER_PATH: Bz,
                HTTP2_METHOD_CONNECT: Xxe
            } = Uxe.constants, Wi = Symbol("headers"), cP = Symbol("origin"), uP = Symbol("session"),
            bz = Symbol("options"), Fw = Symbol("flushedHeaders"), Dd = Symbol("jobs"), Zxe = /^[\^`\-\w!#$%&*+.|~]+$/,
            $xe = /[^\t\u0020-\u007E\u0080-\u00FF]/, Qz = class extends Hxe {
                constructor(e, r, i) {
                    super({autoDestroy: !1});
                    let n = typeof e == "string" || e instanceof URL;
                    if (n && (e = Yxe(e instanceof URL ? e : new URL(e))), typeof r == "function" || r === void 0 ? (i = r, r = n ? e : N({}, e)) : r = N(N({}, e), r), r.h2session) this[uP] = r.h2session; else if (r.agent === !1) this.agent = new Ez({maxFreeSessions: 0}); else if (typeof r.agent == "undefined" || r.agent === null) typeof r.createConnection == "function" ? (this.agent = new Ez({maxFreeSessions: 0}), this.agent.createConnection = r.createConnection) : this.agent = Gxe; else if (typeof r.agent.request == "function") this.agent = r.agent; else throw new lP("options.agent", ["Agent-like Object", "undefined", "false"], r.agent);
                    if (r.protocol && r.protocol !== "https:") throw new Wxe(r.protocol, "https:");
                    let s = r.port || r.defaultPort || this.agent && this.agent.defaultPort || 443,
                        o = r.hostname || r.host || "localhost";
                    delete r.hostname, delete r.host, delete r.port;
                    let {timeout: a} = r;
                    if (r.timeout = void 0, this[Wi] = Object.create(null), this[Dd] = [], this.socket = null, this.connection = null, this.method = r.method || "GET", this.path = r.path, this.res = null, this.aborted = !1, this.reusedSocket = !1, r.headers) for (let [l, c] of Object.entries(r.headers)) this.setHeader(l, c);
                    r.auth && !("authorization" in this[Wi]) && (this[Wi].authorization = "Basic " + Buffer.from(r.auth).toString("base64")), r.session = r.tlsSession, r.path = r.socketPath, this[bz] = r, s === 443 ? (this[cP] = `https://${o}`, ":authority" in this[Wi] || (this[Wi][":authority"] = o)) : (this[cP] = `https://${o}:${s}`, ":authority" in this[Wi] || (this[Wi][":authority"] = `${o}:${s}`)), a && this.setTimeout(a), i && this.once("response", i), this[Fw] = !1
                }

                get method() {
                    return this[Wi][wz]
                }

                set method(e) {
                    e && (this[Wi][wz] = e.toUpperCase())
                }

                get path() {
                    return this[Wi][Bz]
                }

                set path(e) {
                    e && (this[Wi][Bz] = e)
                }

                get _mustNotHaveABody() {
                    return this.method === "GET" || this.method === "HEAD" || this.method === "DELETE"
                }

                _write(e, r, i) {
                    if (this._mustNotHaveABody) {
                        i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));
                        return
                    }
                    this.flushHeaders();
                    let n = () => this._request.write(e, r, i);
                    this._request ? n() : this[Dd].push(n)
                }

                _final(e) {
                    if (this.destroyed) return;
                    this.flushHeaders();
                    let r = () => {
                        if (this._mustNotHaveABody) {
                            e();
                            return
                        }
                        this._request.end(e)
                    };
                    this._request ? r() : this[Dd].push(r)
                }

                abort() {
                    this.res && this.res.complete || (this.aborted || process.nextTick(() => this.emit("abort")), this.aborted = !0, this.destroy())
                }

                _destroy(e, r) {
                    this.res && this.res._dump(), this._request && this._request.destroy(), r(e)
                }

                async flushHeaders() {
                    if (this[Fw] || this.destroyed) return;
                    this[Fw] = !0;
                    let e = this.method === Xxe, r = i => {
                        if (this._request = i, this.destroyed) {
                            i.destroy();
                            return
                        }
                        e || qxe(i, this, ["timeout", "continue", "close", "error"]);
                        let n = o => (...a) => {
                            !this.writable && !this.destroyed ? o(...a) : this.once("finish", () => {
                                o(...a)
                            })
                        };
                        i.once("response", n((o, a, l) => {
                            let c = new jxe(this.socket, i.readableHighWaterMark);
                            this.res = c, c.req = this, c.statusCode = o[yz], c.headers = o, c.rawHeaders = l, c.once("end", () => {
                                this.aborted ? (c.aborted = !0, c.emit("aborted")) : (c.complete = !0, c.socket = null, c.connection = null)
                            }), e ? (c.upgrade = !0, this.emit("connect", c, i, Buffer.alloc(0)) ? this.emit("close") : i.destroy()) : (i.on("data", u => {
                                !c._dumped && !c.push(u) && i.pause()
                            }), i.once("end", () => {
                                c.push(null)
                            }), this.emit("response", c) || c._dump())
                        })), i.once("headers", n(o => this.emit("information", {statusCode: o[yz]}))), i.once("trailers", n((o, a, l) => {
                            let {res: c} = this;
                            c.trailers = o, c.rawTrailers = l
                        }));
                        let {socket: s} = i.session;
                        this.socket = s, this.connection = s;
                        for (let o of this[Dd]) o();
                        this.emit("socket", this.socket)
                    };
                    if (this[uP]) try {
                        r(this[uP].request(this[Wi]))
                    } catch (i) {
                        this.emit("error", i)
                    } else {
                        this.reusedSocket = !0;
                        try {
                            r(await this.agent.request(this[cP], this[bz], this[Wi]))
                        } catch (i) {
                            this.emit("error", i)
                        }
                    }
                }

                getHeader(e) {
                    if (typeof e != "string") throw new lP("name", "string", e);
                    return this[Wi][e.toLowerCase()]
                }

                get headersSent() {
                    return this[Fw]
                }

                removeHeader(e) {
                    if (typeof e != "string") throw new lP("name", "string", e);
                    if (this.headersSent) throw new Iz("remove");
                    delete this[Wi][e.toLowerCase()]
                }

                setHeader(e, r) {
                    if (this.headersSent) throw new Iz("set");
                    if (typeof e != "string" || !Zxe.test(e) && !Jxe(e)) throw new zxe("Header name", e);
                    if (typeof r == "undefined") throw new _xe(r, e);
                    if ($xe.test(r)) throw new Vxe("header content", e);
                    this[Wi][e.toLowerCase()] = r
                }

                setNoDelay() {
                }

                setSocketKeepAlive() {
                }

                setTimeout(e, r) {
                    let i = () => this._request.setTimeout(e, r);
                    return this._request ? i() : this[Dd].push(i), this
                }

                get maxHeadersCount() {
                    if (!this.destroyed && this._request) return this._request.session.localSettings.maxHeaderListSize
                }

                set maxHeadersCount(e) {
                }
            };
        mz.exports = Qz
    });
    var Sz = w((Cot, vz) => {
        "use strict";
        var ePe = require("tls");
        vz.exports = (t = {}) => new Promise((e, r) => {
            let i = ePe.connect(t, () => {
                t.resolveSocket ? (i.off("error", r), e({
                    alpnProtocol: i.alpnProtocol,
                    socket: i
                })) : (i.destroy(), e({alpnProtocol: i.alpnProtocol}))
            });
            i.on("error", r)
        })
    });
    var xz = w((mot, kz) => {
        "use strict";
        var tPe = require("net");
        kz.exports = t => {
            let e = t.host, r = t.headers && t.headers.host;
            return r && (r.startsWith("[") ? r.indexOf("]") === -1 ? e = r : e = r.slice(1, -1) : e = r.split(":", 1)[0]), tPe.isIP(e) ? "" : e
        }
    });
    var Rz = w((Eot, fP) => {
        "use strict";
        var Pz = require("http"), hP = require("https"), rPe = Sz(), iPe = nP(), nPe = gP(), sPe = xz(), oPe = AP(),
            Nw = new iPe({maxSize: 100}), Rd = new Map, Dz = (t, e, r) => {
                e._httpMessage = {shouldKeepAlive: !0};
                let i = () => {
                    t.emit("free", e, r)
                };
                e.on("free", i);
                let n = () => {
                    t.removeSocket(e, r)
                };
                e.on("close", n);
                let s = () => {
                    t.removeSocket(e, r), e.off("close", n), e.off("free", i), e.off("agentRemove", s)
                };
                e.on("agentRemove", s), t.emit("free", e, r)
            }, aPe = async t => {
                let e = `${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;
                if (!Nw.has(e)) {
                    if (Rd.has(e)) return (await Rd.get(e)).alpnProtocol;
                    let {path: r, agent: i} = t;
                    t.path = t.socketPath;
                    let n = rPe(t);
                    Rd.set(e, n);
                    try {
                        let {socket: s, alpnProtocol: o} = await n;
                        if (Nw.set(e, o), t.path = r, o === "h2") s.destroy(); else {
                            let {globalAgent: a} = hP, l = hP.Agent.prototype.createConnection;
                            i ? i.createConnection === l ? Dz(i, s, t) : s.destroy() : a.createConnection === l ? Dz(a, s, t) : s.destroy()
                        }
                        return Rd.delete(e), o
                    } catch (s) {
                        throw Rd.delete(e), s
                    }
                }
                return Nw.get(e)
            };
        fP.exports = async (t, e, r) => {
            if ((typeof t == "string" || t instanceof URL) && (t = oPe(new URL(t))), typeof e == "function" && (r = e, e = void 0), e = ie(N(N({ALPNProtocols: ["h2", "http/1.1"]}, t), e), {resolveSocket: !0}), !Array.isArray(e.ALPNProtocols) || e.ALPNProtocols.length === 0) throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");
            e.protocol = e.protocol || "https:";
            let i = e.protocol === "https:";
            e.host = e.hostname || e.host || "localhost", e.session = e.tlsSession, e.servername = e.servername || sPe(e), e.port = e.port || (i ? 443 : 80), e._defaultAgent = i ? hP.globalAgent : Pz.globalAgent;
            let n = e.agent;
            if (n) {
                if (n.addRequest) throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");
                e.agent = n[i ? "https" : "http"]
            }
            return i && await aPe(e) === "h2" ? (n && (e.agent = n.http2), new nPe(e, r)) : Pz.request(e, r)
        };
        fP.exports.protocolCache = Nw
    });
    var Nz = w((Iot, Fz) => {
        "use strict";
        var APe = require("http2"), lPe = oP(), pP = gP(), cPe = aP(), uPe = Rz(), gPe = (t, e, r) => new pP(t, e, r),
            fPe = (t, e, r) => {
                let i = new pP(t, e, r);
                return i.end(), i
            };
        Fz.exports = ie(N(ie(N({}, APe), {ClientRequest: pP, IncomingMessage: cPe}), lPe), {
            request: gPe,
            get: fPe,
            auto: uPe
        })
    });
    var CP = w(dP => {
        "use strict";
        Object.defineProperty(dP, "__esModule", {value: !0});
        var Lz = eA();
        dP.default = t => Lz.default.nodeStream(t) && Lz.default.function_(t.getBoundary)
    });
    var Kz = w(mP => {
        "use strict";
        Object.defineProperty(mP, "__esModule", {value: !0});
        var Tz = require("fs"), Oz = require("util"), Mz = eA(), hPe = CP(), pPe = Oz.promisify(Tz.stat);
        mP.default = async (t, e) => {
            if (e && "content-length" in e) return Number(e["content-length"]);
            if (!t) return 0;
            if (Mz.default.string(t)) return Buffer.byteLength(t);
            if (Mz.default.buffer(t)) return t.length;
            if (hPe.default(t)) return Oz.promisify(t.getLength.bind(t))();
            if (t instanceof Tz.ReadStream) {
                let {size: r} = await pPe(t.path);
                return r === 0 ? void 0 : r
            }
        }
    });
    var IP = w(EP => {
        "use strict";
        Object.defineProperty(EP, "__esModule", {value: !0});

        function dPe(t, e, r) {
            let i = {};
            for (let n of r) i[n] = (...s) => {
                e.emit(n, ...s)
            }, t.on(n, i[n]);
            return () => {
                for (let n of r) t.off(n, i[n])
            }
        }

        EP.default = dPe
    });
    var Uz = w(yP => {
        "use strict";
        Object.defineProperty(yP, "__esModule", {value: !0});
        yP.default = () => {
            let t = [];
            return {
                once(e, r, i) {
                    e.once(r, i), t.push({origin: e, event: r, fn: i})
                }, unhandleAll() {
                    for (let e of t) {
                        let {origin: r, event: i, fn: n} = e;
                        r.removeListener(i, n)
                    }
                    t.length = 0
                }
            }
        }
    });
    var Gz = w(Fd => {
        "use strict";
        Object.defineProperty(Fd, "__esModule", {value: !0});
        Fd.TimeoutError = void 0;
        var CPe = require("net"), mPe = Uz(), Hz = Symbol("reentry"), EPe = () => {
        }, wP = class extends Error {
            constructor(e, r) {
                super(`Timeout awaiting '${r}' for ${e}ms`);
                this.event = r, this.name = "TimeoutError", this.code = "ETIMEDOUT"
            }
        };
        Fd.TimeoutError = wP;
        Fd.default = (t, e, r) => {
            if (Hz in t) return EPe;
            t[Hz] = !0;
            let i = [], {once: n, unhandleAll: s} = mPe.default(), o = (g, f, h) => {
                var p;
                let m = setTimeout(f, g, g, h);
                (p = m.unref) === null || p === void 0 || p.call(m);
                let y = () => {
                    clearTimeout(m)
                };
                return i.push(y), y
            }, {host: a, hostname: l} = r, c = (g, f) => {
                t.destroy(new wP(g, f))
            }, u = () => {
                for (let g of i) g();
                s()
            };
            if (t.once("error", g => {
                if (u(), t.listenerCount("error") === 0) throw g
            }), t.once("close", u), n(t, "response", g => {
                n(g, "end", u)
            }), typeof e.request != "undefined" && o(e.request, c, "request"), typeof e.socket != "undefined") {
                let g = () => {
                    c(e.socket, "socket")
                };
                t.setTimeout(e.socket, g), i.push(() => {
                    t.removeListener("timeout", g)
                })
            }
            return n(t, "socket", g => {
                var f;
                let {socketPath: h} = t;
                if (g.connecting) {
                    let p = Boolean(h != null ? h : CPe.isIP((f = l != null ? l : a) !== null && f !== void 0 ? f : "") !== 0);
                    if (typeof e.lookup != "undefined" && !p && typeof g.address().address == "undefined") {
                        let m = o(e.lookup, c, "lookup");
                        n(g, "lookup", m)
                    }
                    if (typeof e.connect != "undefined") {
                        let m = () => o(e.connect, c, "connect");
                        p ? n(g, "connect", m()) : n(g, "lookup", y => {
                            y === null && n(g, "connect", m())
                        })
                    }
                    typeof e.secureConnect != "undefined" && r.protocol === "https:" && n(g, "connect", () => {
                        let m = o(e.secureConnect, c, "secureConnect");
                        n(g, "secureConnect", m)
                    })
                }
                if (typeof e.send != "undefined") {
                    let p = () => o(e.send, c, "send");
                    g.connecting ? n(g, "connect", () => {
                        n(t, "upload-complete", p())
                    }) : n(t, "upload-complete", p())
                }
            }), typeof e.response != "undefined" && n(t, "upload-complete", () => {
                let g = o(e.response, c, "response");
                n(t, "response", g)
            }), u
        }
    });
    var Yz = w(BP => {
        "use strict";
        Object.defineProperty(BP, "__esModule", {value: !0});
        var jz = eA();
        BP.default = t => {
            t = t;
            let e = {
                protocol: t.protocol,
                hostname: jz.default.string(t.hostname) && t.hostname.startsWith("[") ? t.hostname.slice(1, -1) : t.hostname,
                host: t.host,
                hash: t.hash,
                search: t.search,
                pathname: t.pathname,
                href: t.href,
                path: `${t.pathname || ""}${t.search || ""}`
            };
            return jz.default.string(t.port) && t.port.length > 0 && (e.port = Number(t.port)), (t.username || t.password) && (e.auth = `${t.username || ""}:${t.password || ""}`), e
        }
    });
    var qz = w(bP => {
        "use strict";
        Object.defineProperty(bP, "__esModule", {value: !0});
        var IPe = require("url"), yPe = ["protocol", "host", "hostname", "port", "pathname", "search"];
        bP.default = (t, e) => {
            var r, i;
            if (e.path) {
                if (e.pathname) throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");
                if (e.search) throw new TypeError("Parameters `path` and `search` are mutually exclusive.");
                if (e.searchParams) throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")
            }
            if (e.search && e.searchParams) throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");
            if (!t) {
                if (!e.protocol) throw new TypeError("No URL protocol specified");
                t = `${e.protocol}//${(i = (r = e.hostname) !== null && r !== void 0 ? r : e.host) !== null && i !== void 0 ? i : ""}`
            }
            let n = new IPe.URL(t);
            if (e.path) {
                let s = e.path.indexOf("?");
                s === -1 ? e.pathname = e.path : (e.pathname = e.path.slice(0, s), e.search = e.path.slice(s + 1)), delete e.path
            }
            for (let s of yPe) e[s] && (n[s] = e[s].toString());
            return n
        }
    });
    var Wz = w(QP => {
        "use strict";
        Object.defineProperty(QP, "__esModule", {value: !0});
        var Jz = class {
            constructor() {
                this.weakMap = new WeakMap, this.map = new Map
            }

            set(e, r) {
                typeof e == "object" ? this.weakMap.set(e, r) : this.map.set(e, r)
            }

            get(e) {
                return typeof e == "object" ? this.weakMap.get(e) : this.map.get(e)
            }

            has(e) {
                return typeof e == "object" ? this.weakMap.has(e) : this.map.has(e)
            }
        };
        QP.default = Jz
    });
    var SP = w(vP => {
        "use strict";
        Object.defineProperty(vP, "__esModule", {value: !0});
        var wPe = async t => {
            let e = [], r = 0;
            for await(let i of t) e.push(i), r += Buffer.byteLength(i);
            return Buffer.isBuffer(e[0]) ? Buffer.concat(e, r) : Buffer.from(e.join(""))
        };
        vP.default = wPe
    });
    var _z = w(qc => {
        "use strict";
        Object.defineProperty(qc, "__esModule", {value: !0});
        qc.dnsLookupIpVersionToFamily = qc.isDnsLookupIpVersion = void 0;
        var zz = {auto: 0, ipv4: 4, ipv6: 6};
        qc.isDnsLookupIpVersion = t => t in zz;
        qc.dnsLookupIpVersionToFamily = t => {
            if (qc.isDnsLookupIpVersion(t)) return zz[t];
            throw new Error("Invalid DNS lookup IP version")
        }
    });
    var kP = w(Lw => {
        "use strict";
        Object.defineProperty(Lw, "__esModule", {value: !0});
        Lw.isResponseOk = void 0;
        Lw.isResponseOk = t => {
            let {statusCode: e} = t, r = t.request.options.followRedirect ? 299 : 399;
            return e >= 200 && e <= r || e === 304
        }
    });
    var Xz = w(xP => {
        "use strict";
        Object.defineProperty(xP, "__esModule", {value: !0});
        var Vz = new Set;
        xP.default = t => {
            Vz.has(t) || (Vz.add(t), process.emitWarning(`Got: ${t}`, {type: "DeprecationWarning"}))
        }
    });
    var Zz = w(PP => {
        "use strict";
        Object.defineProperty(PP, "__esModule", {value: !0});
        var Ir = eA(), BPe = (t, e) => {
            if (Ir.default.null_(t.encoding)) throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");
            Ir.assert.any([Ir.default.string, Ir.default.undefined], t.encoding), Ir.assert.any([Ir.default.boolean, Ir.default.undefined], t.resolveBodyOnly), Ir.assert.any([Ir.default.boolean, Ir.default.undefined], t.methodRewriting), Ir.assert.any([Ir.default.boolean, Ir.default.undefined], t.isStream), Ir.assert.any([Ir.default.string, Ir.default.undefined], t.responseType), t.responseType === void 0 && (t.responseType = "text");
            let {retry: r} = t;
            if (e ? t.retry = N({}, e.retry) : t.retry = {
                calculateDelay: i => i.computedValue,
                limit: 0,
                methods: [],
                statusCodes: [],
                errorCodes: [],
                maxRetryAfter: void 0
            }, Ir.default.object(r) ? (t.retry = N(N({}, t.retry), r), t.retry.methods = [...new Set(t.retry.methods.map(i => i.toUpperCase()))], t.retry.statusCodes = [...new Set(t.retry.statusCodes)], t.retry.errorCodes = [...new Set(t.retry.errorCodes)]) : Ir.default.number(r) && (t.retry.limit = r), Ir.default.undefined(t.retry.maxRetryAfter) && (t.retry.maxRetryAfter = Math.min(...[t.timeout.request, t.timeout.connect].filter(Ir.default.number))), Ir.default.object(t.pagination)) {
                e && (t.pagination = N(N({}, e.pagination), t.pagination));
                let {pagination: i} = t;
                if (!Ir.default.function_(i.transform)) throw new Error("`options.pagination.transform` must be implemented");
                if (!Ir.default.function_(i.shouldContinue)) throw new Error("`options.pagination.shouldContinue` must be implemented");
                if (!Ir.default.function_(i.filter)) throw new TypeError("`options.pagination.filter` must be implemented");
                if (!Ir.default.function_(i.paginate)) throw new Error("`options.pagination.paginate` must be implemented")
            }
            return t.responseType === "json" && t.headers.accept === void 0 && (t.headers.accept = "application/json"), t
        };
        PP.default = BPe
    });
    var $z = w(Nd => {
        "use strict";
        Object.defineProperty(Nd, "__esModule", {value: !0});
        Nd.retryAfterStatusCodes = void 0;
        Nd.retryAfterStatusCodes = new Set([413, 429, 503]);
        var bPe = ({attemptCount: t, retryOptions: e, error: r, retryAfter: i}) => {
            if (t > e.limit) return 0;
            let n = e.methods.includes(r.options.method), s = e.errorCodes.includes(r.code),
                o = r.response && e.statusCodes.includes(r.response.statusCode);
            if (!n || !s && !o) return 0;
            if (r.response) {
                if (i) return e.maxRetryAfter === void 0 || i > e.maxRetryAfter ? 0 : i;
                if (r.response.statusCode === 413) return 0
            }
            let a = Math.random() * 100;
            return 2 ** (t - 1) * 1e3 + a
        };
        Nd.default = bPe
    });
    var Td = w(qt => {
        "use strict";
        Object.defineProperty(qt, "__esModule", {value: !0});
        qt.UnsupportedProtocolError = qt.ReadError = qt.TimeoutError = qt.UploadError = qt.CacheError = qt.HTTPError = qt.MaxRedirectsError = qt.RequestError = qt.setNonEnumerableProperties = qt.knownHookEvents = qt.withoutBody = qt.kIsNormalizedAlready = void 0;
        var e5 = require("util"), t5 = require("stream"), QPe = require("fs"), Al = require("url"),
            r5 = require("http"), DP = require("http"), vPe = require("https"), SPe = u4(), kPe = m4(), i5 = Z4(),
            xPe = rz(), PPe = Nz(), DPe = Dw(), Ie = eA(), RPe = Kz(), n5 = CP(), FPe = IP(), s5 = Gz(), NPe = Yz(),
            o5 = qz(), LPe = Wz(), TPe = SP(), a5 = _z(), OPe = kP(), ll = Xz(), MPe = Zz(), KPe = $z(), RP,
            Ri = Symbol("request"), Tw = Symbol("response"), $g = Symbol("responseSize"), ef = Symbol("downloadedSize"),
            tf = Symbol("bodySize"), rf = Symbol("uploadedSize"), Ow = Symbol("serverResponsesPiped"),
            A5 = Symbol("unproxyEvents"), l5 = Symbol("isFromCache"), FP = Symbol("cancelTimeouts"),
            c5 = Symbol("startedReading"), nf = Symbol("stopReading"), Mw = Symbol("triggerRead"), cl = Symbol("body"),
            Ld = Symbol("jobs"), u5 = Symbol("originalResponse"), g5 = Symbol("retryTimeout");
        qt.kIsNormalizedAlready = Symbol("isNormalizedAlready");
        var UPe = Ie.default.string(process.versions.brotli);
        qt.withoutBody = new Set(["GET", "HEAD"]);
        qt.knownHookEvents = ["init", "beforeRequest", "beforeRedirect", "beforeError", "beforeRetry", "afterResponse"];

        function HPe(t) {
            for (let e in t) {
                let r = t[e];
                if (!Ie.default.string(r) && !Ie.default.number(r) && !Ie.default.boolean(r) && !Ie.default.null_(r) && !Ie.default.undefined(r)) throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)
            }
        }

        function GPe(t) {
            return Ie.default.object(t) && !("statusCode" in t)
        }

        var NP = new LPe.default, jPe = async t => new Promise((e, r) => {
            let i = n => {
                r(n)
            };
            t.pending || e(), t.once("error", i), t.once("ready", () => {
                t.off("error", i), e()
            })
        }), YPe = new Set([300, 301, 302, 303, 304, 307, 308]), qPe = ["context", "body", "json", "form"];
        qt.setNonEnumerableProperties = (t, e) => {
            let r = {};
            for (let i of t) if (!!i) for (let n of qPe) n in i && (r[n] = {
                writable: !0,
                configurable: !0,
                enumerable: !1,
                value: i[n]
            });
            Object.defineProperties(e, r)
        };
        var fi = class extends Error {
            constructor(e, r, i) {
                var n;
                super(e);
                if (Error.captureStackTrace(this, this.constructor), this.name = "RequestError", this.code = r.code, i instanceof LP ? (Object.defineProperty(this, "request", {
                    enumerable: !1,
                    value: i
                }), Object.defineProperty(this, "response", {
                    enumerable: !1,
                    value: i[Tw]
                }), Object.defineProperty(this, "options", {
                    enumerable: !1,
                    value: i.options
                })) : Object.defineProperty(this, "options", {
                    enumerable: !1,
                    value: i
                }), this.timings = (n = this.request) === null || n === void 0 ? void 0 : n.timings, Ie.default.string(r.stack) && Ie.default.string(this.stack)) {
                    let s = this.stack.indexOf(this.message) + this.message.length, o = this.stack.slice(s).split(`
`).reverse(), a = r.stack.slice(r.stack.indexOf(r.message) + r.message.length).split(`
`).reverse();
                    for (; a.length !== 0 && a[0] === o[0];) o.shift();
                    this.stack = `${this.stack.slice(0, s)}${o.reverse().join(`
`)}${a.reverse().join(`
`)}`
                }
            }
        };
        qt.RequestError = fi;
        var TP = class extends fi {
            constructor(e) {
                super(`Redirected ${e.options.maxRedirects} times. Aborting.`, {}, e);
                this.name = "MaxRedirectsError"
            }
        };
        qt.MaxRedirectsError = TP;
        var OP = class extends fi {
            constructor(e) {
                super(`Response code ${e.statusCode} (${e.statusMessage})`, {}, e.request);
                this.name = "HTTPError"
            }
        };
        qt.HTTPError = OP;
        var MP = class extends fi {
            constructor(e, r) {
                super(e.message, e, r);
                this.name = "CacheError"
            }
        };
        qt.CacheError = MP;
        var KP = class extends fi {
            constructor(e, r) {
                super(e.message, e, r);
                this.name = "UploadError"
            }
        };
        qt.UploadError = KP;
        var UP = class extends fi {
            constructor(e, r, i) {
                super(e.message, e, i);
                this.name = "TimeoutError", this.event = e.event, this.timings = r
            }
        };
        qt.TimeoutError = UP;
        var Kw = class extends fi {
            constructor(e, r) {
                super(e.message, e, r);
                this.name = "ReadError"
            }
        };
        qt.ReadError = Kw;
        var HP = class extends fi {
            constructor(e) {
                super(`Unsupported protocol "${e.url.protocol}"`, {}, e);
                this.name = "UnsupportedProtocolError"
            }
        };
        qt.UnsupportedProtocolError = HP;
        var JPe = ["socket", "connect", "continue", "information", "upgrade", "timeout"], LP = class extends t5.Duplex {
            constructor(e, r = {}, i) {
                super({autoDestroy: !1, highWaterMark: 0});
                this[ef] = 0, this[rf] = 0, this.requestInitialized = !1, this[Ow] = new Set, this.redirects = [], this[nf] = !1, this[Mw] = !1, this[Ld] = [], this.retryCount = 0, this._progressCallbacks = [];
                let n = () => this._unlockWrite(), s = () => this._lockWrite();
                this.on("pipe", c => {
                    c.prependListener("data", n), c.on("data", s), c.prependListener("end", n), c.on("end", s)
                }), this.on("unpipe", c => {
                    c.off("data", n), c.off("data", s), c.off("end", n), c.off("end", s)
                }), this.on("pipe", c => {
                    c instanceof DP.IncomingMessage && (this.options.headers = N(N({}, c.headers), this.options.headers))
                });
                let {json: o, body: a, form: l} = r;
                if ((o || a || l) && this._lockWrite(), qt.kIsNormalizedAlready in r) this.options = r; else try {
                    this.options = this.constructor.normalizeArguments(e, r, i)
                } catch (c) {
                    Ie.default.nodeStream(r.body) && r.body.destroy(), this.destroy(c);
                    return
                }
                (async () => {
                    var c;
                    try {
                        this.options.body instanceof QPe.ReadStream && await jPe(this.options.body);
                        let {url: u} = this.options;
                        if (!u) throw new TypeError("Missing `url` property");
                        if (this.requestUrl = u.toString(), decodeURI(this.requestUrl), await this._finalizeBody(), await this._makeRequest(), this.destroyed) {
                            (c = this[Ri]) === null || c === void 0 || c.destroy();
                            return
                        }
                        for (let g of this[Ld]) g();
                        this[Ld].length = 0, this.requestInitialized = !0
                    } catch (u) {
                        if (u instanceof fi) {
                            this._beforeError(u);
                            return
                        }
                        this.destroyed || this.destroy(u)
                    }
                })()
            }

            static normalizeArguments(e, r, i) {
                var n, s, o, a, l;
                let c = r;
                if (Ie.default.object(e) && !Ie.default.urlInstance(e)) r = N(N(N({}, i), e), r); else {
                    if (e && r && r.url !== void 0) throw new TypeError("The `url` option is mutually exclusive with the `input` argument");
                    r = N(N({}, i), r), e !== void 0 && (r.url = e), Ie.default.urlInstance(r.url) && (r.url = new Al.URL(r.url.toString()))
                }
                if (r.cache === !1 && (r.cache = void 0), r.dnsCache === !1 && (r.dnsCache = void 0), Ie.assert.any([Ie.default.string, Ie.default.undefined], r.method), Ie.assert.any([Ie.default.object, Ie.default.undefined], r.headers), Ie.assert.any([Ie.default.string, Ie.default.urlInstance, Ie.default.undefined], r.prefixUrl), Ie.assert.any([Ie.default.object, Ie.default.undefined], r.cookieJar), Ie.assert.any([Ie.default.object, Ie.default.string, Ie.default.undefined], r.searchParams), Ie.assert.any([Ie.default.object, Ie.default.string, Ie.default.undefined], r.cache), Ie.assert.any([Ie.default.object, Ie.default.number, Ie.default.undefined], r.timeout), Ie.assert.any([Ie.default.object, Ie.default.undefined], r.context), Ie.assert.any([Ie.default.object, Ie.default.undefined], r.hooks), Ie.assert.any([Ie.default.boolean, Ie.default.undefined], r.decompress), Ie.assert.any([Ie.default.boolean, Ie.default.undefined], r.ignoreInvalidCookies), Ie.assert.any([Ie.default.boolean, Ie.default.undefined], r.followRedirect), Ie.assert.any([Ie.default.number, Ie.default.undefined], r.maxRedirects), Ie.assert.any([Ie.default.boolean, Ie.default.undefined], r.throwHttpErrors), Ie.assert.any([Ie.default.boolean, Ie.default.undefined], r.http2), Ie.assert.any([Ie.default.boolean, Ie.default.undefined], r.allowGetBody), Ie.assert.any([Ie.default.string, Ie.default.undefined], r.localAddress), Ie.assert.any([a5.isDnsLookupIpVersion, Ie.default.undefined], r.dnsLookupIpVersion), Ie.assert.any([Ie.default.object, Ie.default.undefined], r.https), Ie.assert.any([Ie.default.boolean, Ie.default.undefined], r.rejectUnauthorized), r.https && (Ie.assert.any([Ie.default.boolean, Ie.default.undefined], r.https.rejectUnauthorized), Ie.assert.any([Ie.default.function_, Ie.default.undefined], r.https.checkServerIdentity), Ie.assert.any([Ie.default.string, Ie.default.object, Ie.default.array, Ie.default.undefined], r.https.certificateAuthority), Ie.assert.any([Ie.default.string, Ie.default.object, Ie.default.array, Ie.default.undefined], r.https.key), Ie.assert.any([Ie.default.string, Ie.default.object, Ie.default.array, Ie.default.undefined], r.https.certificate), Ie.assert.any([Ie.default.string, Ie.default.undefined], r.https.passphrase), Ie.assert.any([Ie.default.string, Ie.default.buffer, Ie.default.array, Ie.default.undefined], r.https.pfx)), Ie.assert.any([Ie.default.object, Ie.default.undefined], r.cacheOptions), Ie.default.string(r.method) ? r.method = r.method.toUpperCase() : r.method = "GET", r.headers === (i == null ? void 0 : i.headers) ? r.headers = N({}, r.headers) : r.headers = DPe(N(N({}, i == null ? void 0 : i.headers), r.headers)), "slashes" in r) throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");
                if ("auth" in r) throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");
                if ("searchParams" in r && r.searchParams && r.searchParams !== (i == null ? void 0 : i.searchParams)) {
                    let h;
                    if (Ie.default.string(r.searchParams) || r.searchParams instanceof Al.URLSearchParams) h = new Al.URLSearchParams(r.searchParams); else {
                        HPe(r.searchParams), h = new Al.URLSearchParams;
                        for (let p in r.searchParams) {
                            let m = r.searchParams[p];
                            m === null ? h.append(p, "") : m !== void 0 && h.append(p, m)
                        }
                    }
                    (n = i == null ? void 0 : i.searchParams) === null || n === void 0 || n.forEach((p, m) => {
                        h.has(m) || h.append(m, p)
                    }), r.searchParams = h
                }
                if (r.username = (s = r.username) !== null && s !== void 0 ? s : "", r.password = (o = r.password) !== null && o !== void 0 ? o : "", Ie.default.undefined(r.prefixUrl) ? r.prefixUrl = (a = i == null ? void 0 : i.prefixUrl) !== null && a !== void 0 ? a : "" : (r.prefixUrl = r.prefixUrl.toString(), r.prefixUrl !== "" && !r.prefixUrl.endsWith("/") && (r.prefixUrl += "/")), Ie.default.string(r.url)) {
                    if (r.url.startsWith("/")) throw new Error("`input` must not start with a slash when using `prefixUrl`");
                    r.url = o5.default(r.prefixUrl + r.url, r)
                } else (Ie.default.undefined(r.url) && r.prefixUrl !== "" || r.protocol) && (r.url = o5.default(r.prefixUrl, r));
                if (r.url) {
                    "port" in r && delete r.port;
                    let {prefixUrl: h} = r;
                    Object.defineProperty(r, "prefixUrl", {
                        set: m => {
                            let y = r.url;
                            if (!y.href.startsWith(m)) throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${m}: ${y.href}`);
                            r.url = new Al.URL(m + y.href.slice(h.length)), h = m
                        }, get: () => h
                    });
                    let {protocol: p} = r.url;
                    if (p === "unix:" && (p = "http:", r.url = new Al.URL(`http://unix${r.url.pathname}${r.url.search}`)), r.searchParams && (r.url.search = r.searchParams.toString()), p !== "http:" && p !== "https:") throw new HP(r);
                    r.username === "" ? r.username = r.url.username : r.url.username = r.username, r.password === "" ? r.password = r.url.password : r.url.password = r.password
                }
                let {cookieJar: u} = r;
                if (u) {
                    let {setCookie: h, getCookieString: p} = u;
                    Ie.assert.function_(h), Ie.assert.function_(p), h.length === 4 && p.length === 0 && (h = e5.promisify(h.bind(r.cookieJar)), p = e5.promisify(p.bind(r.cookieJar)), r.cookieJar = {
                        setCookie: h,
                        getCookieString: p
                    })
                }
                let {cache: g} = r;
                if (g && (NP.has(g) || NP.set(g, new i5((h, p) => {
                    let m = h[Ri](h, p);
                    return Ie.default.promise(m) && (m.once = (y, b) => {
                        if (y === "error") m.catch(b); else if (y === "abort") (async () => {
                            try {
                                (await m).once("abort", b)
                            } catch (S) {
                            }
                        })(); else throw new Error(`Unknown HTTP2 promise event: ${y}`);
                        return m
                    }), m
                }, g))), r.cacheOptions = N({}, r.cacheOptions), r.dnsCache === !0) RP || (RP = new kPe.default), r.dnsCache = RP; else if (!Ie.default.undefined(r.dnsCache) && !r.dnsCache.lookup) throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ie.default(r.dnsCache)}`);
                Ie.default.number(r.timeout) ? r.timeout = {request: r.timeout} : i && r.timeout !== i.timeout ? r.timeout = N(N({}, i.timeout), r.timeout) : r.timeout = N({}, r.timeout), r.context || (r.context = {});
                let f = r.hooks === (i == null ? void 0 : i.hooks);
                r.hooks = N({}, r.hooks);
                for (let h of qt.knownHookEvents) if (h in r.hooks) if (Ie.default.array(r.hooks[h])) r.hooks[h] = [...r.hooks[h]]; else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${Ie.default(r.hooks[h])}`); else r.hooks[h] = [];
                if (i && !f) for (let h of qt.knownHookEvents) i.hooks[h].length > 0 && (r.hooks[h] = [...i.hooks[h], ...r.hooks[h]]);
                if ("family" in r && ll.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'), (i == null ? void 0 : i.https) && (r.https = N(N({}, i.https), r.https)), "rejectUnauthorized" in r && ll.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'), "checkServerIdentity" in r && ll.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'), "ca" in r && ll.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'), "key" in r && ll.default('"options.key" was never documented, please use "options.https.key"'), "cert" in r && ll.default('"options.cert" was never documented, please use "options.https.certificate"'), "passphrase" in r && ll.default('"options.passphrase" was never documented, please use "options.https.passphrase"'), "pfx" in r && ll.default('"options.pfx" was never documented, please use "options.https.pfx"'), "followRedirects" in r) throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");
                if (r.agent) {
                    for (let h in r.agent) if (h !== "http" && h !== "https" && h !== "http2") throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)
                }
                return r.maxRedirects = (l = r.maxRedirects) !== null && l !== void 0 ? l : 0, qt.setNonEnumerableProperties([i, c], r), MPe.default(r, i)
            }

            _lockWrite() {
                let e = () => {
                    throw new TypeError("The payload has been already provided")
                };
                this.write = e, this.end = e
            }

            _unlockWrite() {
                this.write = super.write, this.end = super.end
            }

            async _finalizeBody() {
                let {options: e} = this, {headers: r} = e, i = !Ie.default.undefined(e.form),
                    n = !Ie.default.undefined(e.json), s = !Ie.default.undefined(e.body), o = i || n || s,
                    a = qt.withoutBody.has(e.method) && !(e.method === "GET" && e.allowGetBody);
                if (this._cannotHaveBody = a, o) {
                    if (a) throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);
                    if ([s, i, n].filter(l => l).length > 1) throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");
                    if (s && !(e.body instanceof t5.Readable) && !Ie.default.string(e.body) && !Ie.default.buffer(e.body) && !n5.default(e.body)) throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");
                    if (i && !Ie.default.object(e.form)) throw new TypeError("The `form` option must be an Object");
                    {
                        let l = !Ie.default.string(r["content-type"]);
                        s ? (n5.default(e.body) && l && (r["content-type"] = `multipart/form-data; boundary=${e.body.getBoundary()}`), this[cl] = e.body) : i ? (l && (r["content-type"] = "application/x-www-form-urlencoded"), this[cl] = new Al.URLSearchParams(e.form).toString()) : (l && (r["content-type"] = "application/json"), this[cl] = e.stringifyJson(e.json));
                        let c = await RPe.default(this[cl], e.headers);
                        Ie.default.undefined(r["content-length"]) && Ie.default.undefined(r["transfer-encoding"]) && !a && !Ie.default.undefined(c) && (r["content-length"] = String(c))
                    }
                } else a ? this._lockWrite() : this._unlockWrite();
                this[tf] = Number(r["content-length"]) || void 0
            }

            async _onResponseBase(e) {
                let {options: r} = this, {url: i} = r;
                this[u5] = e, r.decompress && (e = xPe(e));
                let n = e.statusCode, s = e;
                s.statusMessage = s.statusMessage ? s.statusMessage : r5.STATUS_CODES[n], s.url = r.url.toString(), s.requestUrl = this.requestUrl, s.redirectUrls = this.redirects, s.request = this, s.isFromCache = e.fromCache || !1, s.ip = this.ip, s.retryCount = this.retryCount, this[l5] = s.isFromCache, this[$g] = Number(e.headers["content-length"]) || void 0, this[Tw] = e, e.once("end", () => {
                    this[$g] = this[ef], this.emit("downloadProgress", this.downloadProgress)
                }), e.once("error", a => {
                    e.destroy(), this._beforeError(new Kw(a, this))
                }), e.once("aborted", () => {
                    this._beforeError(new Kw({
                        name: "Error",
                        message: "The server aborted pending request",
                        code: "ECONNRESET"
                    }, this))
                }), this.emit("downloadProgress", this.downloadProgress);
                let o = e.headers["set-cookie"];
                if (Ie.default.object(r.cookieJar) && o) {
                    let a = o.map(async l => r.cookieJar.setCookie(l, i.toString()));
                    r.ignoreInvalidCookies && (a = a.map(async l => l.catch(() => {
                    })));
                    try {
                        await Promise.all(a)
                    } catch (l) {
                        this._beforeError(l);
                        return
                    }
                }
                if (r.followRedirect && e.headers.location && YPe.has(n)) {
                    if (e.resume(), this[Ri] && (this[FP](), delete this[Ri], this[A5]()), (n === 303 && r.method !== "GET" && r.method !== "HEAD" || !r.methodRewriting) && (r.method = "GET", "body" in r && delete r.body, "json" in r && delete r.json, "form" in r && delete r.form, this[cl] = void 0, delete r.headers["content-length"]), this.redirects.length >= r.maxRedirects) {
                        this._beforeError(new TP(this));
                        return
                    }
                    try {
                        let l = Buffer.from(e.headers.location, "binary").toString(), c = new Al.URL(l, i),
                            u = c.toString();
                        decodeURI(u), c.hostname !== i.hostname || c.port !== i.port ? ("host" in r.headers && delete r.headers.host, "cookie" in r.headers && delete r.headers.cookie, "authorization" in r.headers && delete r.headers.authorization, (r.username || r.password) && (r.username = "", r.password = "")) : (c.username = r.username, c.password = r.password), this.redirects.push(u), r.url = c;
                        for (let g of r.hooks.beforeRedirect) await g(r, s);
                        this.emit("redirect", s, r), await this._makeRequest()
                    } catch (l) {
                        this._beforeError(l);
                        return
                    }
                    return
                }
                if (r.isStream && r.throwHttpErrors && !OPe.isResponseOk(s)) {
                    this._beforeError(new OP(s));
                    return
                }
                e.on("readable", () => {
                    this[Mw] && this._read()
                }), this.on("resume", () => {
                    e.resume()
                }), this.on("pause", () => {
                    e.pause()
                }), e.once("end", () => {
                    this.push(null)
                }), this.emit("response", e);
                for (let a of this[Ow]) if (!a.headersSent) {
                    for (let l in e.headers) {
                        let c = r.decompress ? l !== "content-encoding" : !0, u = e.headers[l];
                        c && a.setHeader(l, u)
                    }
                    a.statusCode = n
                }
            }

            async _onResponse(e) {
                try {
                    await this._onResponseBase(e)
                } catch (r) {
                    this._beforeError(r)
                }
            }

            _onRequest(e) {
                let {options: r} = this, {timeout: i, url: n} = r;
                SPe.default(e), this[FP] = s5.default(e, i, n);
                let s = r.cache ? "cacheableResponse" : "response";
                e.once(s, l => {
                    this._onResponse(l)
                }), e.once("error", l => {
                    var c;
                    e.destroy(), (c = e.res) === null || c === void 0 || c.removeAllListeners("end"), l = l instanceof s5.TimeoutError ? new UP(l, this.timings, this) : new fi(l.message, l, this), this._beforeError(l)
                }), this[A5] = FPe.default(e, this, JPe), this[Ri] = e, this.emit("uploadProgress", this.uploadProgress);
                let o = this[cl], a = this.redirects.length === 0 ? this : e;
                Ie.default.nodeStream(o) ? (o.pipe(a), o.once("error", l => {
                    this._beforeError(new KP(l, this))
                })) : (this._unlockWrite(), Ie.default.undefined(o) ? (this._cannotHaveBody || this._noPipe) && (a.end(), this._lockWrite()) : (this._writeRequest(o, void 0, () => {
                }), a.end(), this._lockWrite())), this.emit("request", e)
            }

            async _createCacheableRequest(e, r) {
                return new Promise((i, n) => {
                    Object.assign(r, NPe.default(e)), delete r.url;
                    let s, o = NP.get(r.cache)(r, async a => {
                        a._readableState.autoDestroy = !1, s && (await s).emit("cacheableResponse", a), i(a)
                    });
                    r.url = e, o.once("error", n), o.once("request", async a => {
                        s = a, i(s)
                    })
                })
            }

            async _makeRequest() {
                var e, r, i, n, s;
                let {options: o} = this, {headers: a} = o;
                for (let b in a) if (Ie.default.undefined(a[b])) delete a[b]; else if (Ie.default.null_(a[b])) throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${b}\` header`);
                if (o.decompress && Ie.default.undefined(a["accept-encoding"]) && (a["accept-encoding"] = UPe ? "gzip, deflate, br" : "gzip, deflate"), o.cookieJar) {
                    let b = await o.cookieJar.getCookieString(o.url.toString());
                    Ie.default.nonEmptyString(b) && (o.headers.cookie = b)
                }
                for (let b of o.hooks.beforeRequest) {
                    let S = await b(o);
                    if (!Ie.default.undefined(S)) {
                        o.request = () => S;
                        break
                    }
                }
                o.body && this[cl] !== o.body && (this[cl] = o.body);
                let {agent: l, request: c, timeout: u, url: g} = o;
                if (o.dnsCache && !("lookup" in o) && (o.lookup = o.dnsCache.lookup), g.hostname === "unix") {
                    let b = /(?<socketPath>.+?):(?<path>.+)/.exec(`${g.pathname}${g.search}`);
                    if (b == null ? void 0 : b.groups) {
                        let {socketPath: S, path: k} = b.groups;
                        Object.assign(o, {socketPath: S, path: k, host: ""})
                    }
                }
                let f = g.protocol === "https:", h;
                o.http2 ? h = PPe.auto : h = f ? vPe.request : r5.request;
                let p = (e = o.request) !== null && e !== void 0 ? e : h,
                    m = o.cache ? this._createCacheableRequest : p;
                l && !o.http2 && (o.agent = l[f ? "https" : "http"]), o[Ri] = p, delete o.request, delete o.timeout;
                let y = o;
                if (y.shared = (r = o.cacheOptions) === null || r === void 0 ? void 0 : r.shared, y.cacheHeuristic = (i = o.cacheOptions) === null || i === void 0 ? void 0 : i.cacheHeuristic, y.immutableMinTimeToLive = (n = o.cacheOptions) === null || n === void 0 ? void 0 : n.immutableMinTimeToLive, y.ignoreCargoCult = (s = o.cacheOptions) === null || s === void 0 ? void 0 : s.ignoreCargoCult, o.dnsLookupIpVersion !== void 0) try {
                    y.family = a5.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)
                } catch (b) {
                    throw new Error("Invalid `dnsLookupIpVersion` option value")
                }
                o.https && ("rejectUnauthorized" in o.https && (y.rejectUnauthorized = o.https.rejectUnauthorized), o.https.checkServerIdentity && (y.checkServerIdentity = o.https.checkServerIdentity), o.https.certificateAuthority && (y.ca = o.https.certificateAuthority), o.https.certificate && (y.cert = o.https.certificate), o.https.key && (y.key = o.https.key), o.https.passphrase && (y.passphrase = o.https.passphrase), o.https.pfx && (y.pfx = o.https.pfx));
                try {
                    let b = await m(g, y);
                    Ie.default.undefined(b) && (b = h(g, y)), o.request = c, o.timeout = u, o.agent = l, o.https && ("rejectUnauthorized" in o.https && delete y.rejectUnauthorized, o.https.checkServerIdentity && delete y.checkServerIdentity, o.https.certificateAuthority && delete y.ca, o.https.certificate && delete y.cert, o.https.key && delete y.key, o.https.passphrase && delete y.passphrase, o.https.pfx && delete y.pfx), GPe(b) ? this._onRequest(b) : this.writable ? (this.once("finish", () => {
                        this._onResponse(b)
                    }), this._unlockWrite(), this.end(), this._lockWrite()) : this._onResponse(b)
                } catch (b) {
                    throw b instanceof i5.CacheError ? new MP(b, this) : new fi(b.message, b, this)
                }
            }

            async _error(e) {
                try {
                    for (let r of this.options.hooks.beforeError) e = await r(e)
                } catch (r) {
                    e = new fi(r.message, r, this)
                }
                this.destroy(e)
            }

            _beforeError(e) {
                if (this[nf]) return;
                let {options: r} = this, i = this.retryCount + 1;
                this[nf] = !0, e instanceof fi || (e = new fi(e.message, e, this));
                let n = e, {response: s} = n;
                (async () => {
                    if (s && !s.body) {
                        s.setEncoding(this._readableState.encoding);
                        try {
                            s.rawBody = await TPe.default(s), s.body = s.rawBody.toString()
                        } catch (o) {
                        }
                    }
                    if (this.listenerCount("retry") !== 0) {
                        let o;
                        try {
                            let a;
                            s && "retry-after" in s.headers && (a = Number(s.headers["retry-after"]), Number.isNaN(a) ? (a = Date.parse(s.headers["retry-after"]) - Date.now(), a <= 0 && (a = 1)) : a *= 1e3), o = await r.retry.calculateDelay({
                                attemptCount: i,
                                retryOptions: r.retry,
                                error: n,
                                retryAfter: a,
                                computedValue: KPe.default({
                                    attemptCount: i,
                                    retryOptions: r.retry,
                                    error: n,
                                    retryAfter: a,
                                    computedValue: 0
                                })
                            })
                        } catch (a) {
                            this._error(new fi(a.message, a, this));
                            return
                        }
                        if (o) {
                            let a = async () => {
                                try {
                                    for (let l of this.options.hooks.beforeRetry) await l(this.options, n, i)
                                } catch (l) {
                                    this._error(new fi(l.message, e, this));
                                    return
                                }
                                this.destroyed || (this.destroy(), this.emit("retry", i, e))
                            };
                            this[g5] = setTimeout(a, o);
                            return
                        }
                    }
                    this._error(n)
                })()
            }

            _read() {
                this[Mw] = !0;
                let e = this[Tw];
                if (e && !this[nf]) {
                    e.readableLength && (this[Mw] = !1);
                    let r;
                    for (; (r = e.read()) !== null;) {
                        this[ef] += r.length, this[c5] = !0;
                        let i = this.downloadProgress;
                        i.percent < 1 && this.emit("downloadProgress", i), this.push(r)
                    }
                }
            }

            _write(e, r, i) {
                let n = () => {
                    this._writeRequest(e, r, i)
                };
                this.requestInitialized ? n() : this[Ld].push(n)
            }

            _writeRequest(e, r, i) {
                this[Ri].destroyed || (this._progressCallbacks.push(() => {
                    this[rf] += Buffer.byteLength(e, r);
                    let n = this.uploadProgress;
                    n.percent < 1 && this.emit("uploadProgress", n)
                }), this[Ri].write(e, r, n => {
                    !n && this._progressCallbacks.length > 0 && this._progressCallbacks.shift()(), i(n)
                }))
            }

            _final(e) {
                let r = () => {
                    for (; this._progressCallbacks.length !== 0;) this._progressCallbacks.shift()();
                    if (!(Ri in this)) {
                        e();
                        return
                    }
                    if (this[Ri].destroyed) {
                        e();
                        return
                    }
                    this[Ri].end(i => {
                        i || (this[tf] = this[rf], this.emit("uploadProgress", this.uploadProgress), this[Ri].emit("upload-complete")), e(i)
                    })
                };
                this.requestInitialized ? r() : this[Ld].push(r)
            }

            _destroy(e, r) {
                var i;
                this[nf] = !0, clearTimeout(this[g5]), Ri in this && (this[FP](), ((i = this[Tw]) === null || i === void 0 ? void 0 : i.complete) || this[Ri].destroy()), e !== null && !Ie.default.undefined(e) && !(e instanceof fi) && (e = new fi(e.message, e, this)), r(e)
            }

            get _isAboutToError() {
                return this[nf]
            }

            get ip() {
                var e;
                return (e = this.socket) === null || e === void 0 ? void 0 : e.remoteAddress
            }

            get aborted() {
                var e, r, i;
                return ((r = (e = this[Ri]) === null || e === void 0 ? void 0 : e.destroyed) !== null && r !== void 0 ? r : this.destroyed) && !((i = this[u5]) === null || i === void 0 ? void 0 : i.complete)
            }

            get socket() {
                var e, r;
                return (r = (e = this[Ri]) === null || e === void 0 ? void 0 : e.socket) !== null && r !== void 0 ? r : void 0
            }

            get downloadProgress() {
                let e;
                return this[$g] ? e = this[ef] / this[$g] : this[$g] === this[ef] ? e = 1 : e = 0, {
                    percent: e,
                    transferred: this[ef],
                    total: this[$g]
                }
            }

            get uploadProgress() {
                let e;
                return this[tf] ? e = this[rf] / this[tf] : this[tf] === this[rf] ? e = 1 : e = 0, {
                    percent: e,
                    transferred: this[rf],
                    total: this[tf]
                }
            }

            get timings() {
                var e;
                return (e = this[Ri]) === null || e === void 0 ? void 0 : e.timings
            }

            get isFromCache() {
                return this[l5]
            }

            pipe(e, r) {
                if (this[c5]) throw new Error("Failed to pipe. The response has been emitted already.");
                return e instanceof DP.ServerResponse && this[Ow].add(e), super.pipe(e, r)
            }

            unpipe(e) {
                return e instanceof DP.ServerResponse && this[Ow].delete(e), super.unpipe(e), this
            }
        };
        qt.default = LP
    });
    var Od = w(po => {
        "use strict";
        var WPe = po && po.__createBinding || (Object.create ? function (t, e, r, i) {
            i === void 0 && (i = r), Object.defineProperty(t, i, {
                enumerable: !0, get: function () {
                    return e[r]
                }
            })
        } : function (t, e, r, i) {
            i === void 0 && (i = r), t[i] = e[r]
        }), zPe = po && po.__exportStar || function (t, e) {
            for (var r in t) r !== "default" && !Object.prototype.hasOwnProperty.call(e, r) && WPe(e, t, r)
        };
        Object.defineProperty(po, "__esModule", {value: !0});
        po.CancelError = po.ParseError = void 0;
        var f5 = Td(), h5 = class extends f5.RequestError {
            constructor(e, r) {
                let {options: i} = r.request;
                super(`${e.message} in "${i.url.toString()}"`, e, r.request);
                this.name = "ParseError"
            }
        };
        po.ParseError = h5;
        var p5 = class extends f5.RequestError {
            constructor(e) {
                super("Promise was canceled", {}, e);
                this.name = "CancelError"
            }

            get isCanceled() {
                return !0
            }
        };
        po.CancelError = p5;
        zPe(Td(), po)
    });
    var C5 = w(GP => {
        "use strict";
        Object.defineProperty(GP, "__esModule", {value: !0});
        var d5 = Od(), _Pe = (t, e, r, i) => {
            let {rawBody: n} = t;
            try {
                if (e === "text") return n.toString(i);
                if (e === "json") return n.length === 0 ? "" : r(n.toString());
                if (e === "buffer") return n;
                throw new d5.ParseError({message: `Unknown body type '${e}'`, name: "Error"}, t)
            } catch (s) {
                throw new d5.ParseError(s, t)
            }
        };
        GP.default = _Pe
    });
    var jP = w(ul => {
        "use strict";
        var VPe = ul && ul.__createBinding || (Object.create ? function (t, e, r, i) {
            i === void 0 && (i = r), Object.defineProperty(t, i, {
                enumerable: !0, get: function () {
                    return e[r]
                }
            })
        } : function (t, e, r, i) {
            i === void 0 && (i = r), t[i] = e[r]
        }), XPe = ul && ul.__exportStar || function (t, e) {
            for (var r in t) r !== "default" && !Object.prototype.hasOwnProperty.call(e, r) && VPe(e, t, r)
        };
        Object.defineProperty(ul, "__esModule", {value: !0});
        var ZPe = require("events"), $Pe = eA(), eDe = l4(), Uw = Od(), m5 = C5(), E5 = Td(), tDe = IP(), rDe = SP(),
            I5 = kP(), iDe = ["request", "response", "redirect", "uploadProgress", "downloadProgress"];

        function y5(t) {
            let e, r, i = new ZPe.EventEmitter, n = new eDe((o, a, l) => {
                let c = u => {
                    let g = new E5.default(void 0, t);
                    g.retryCount = u, g._noPipe = !0, l(() => g.destroy()), l.shouldReject = !1, l(() => a(new Uw.CancelError(g))), e = g, g.once("response", async p => {
                        var m;
                        if (p.retryCount = u, p.request.aborted) return;
                        let y;
                        try {
                            y = await rDe.default(g), p.rawBody = y
                        } catch (T) {
                            return
                        }
                        if (g._isAboutToError) return;
                        let b = ((m = p.headers["content-encoding"]) !== null && m !== void 0 ? m : "").toLowerCase(),
                            S = ["gzip", "deflate", "br"].includes(b), {options: k} = g;
                        if (S && !k.decompress) p.body = y; else try {
                            p.body = m5.default(p, k.responseType, k.parseJson, k.encoding)
                        } catch (T) {
                            if (p.body = y.toString(), I5.isResponseOk(p)) {
                                g._beforeError(T);
                                return
                            }
                        }
                        try {
                            for (let [T, Y] of k.hooks.afterResponse.entries()) p = await Y(p, async j => {
                                let Z = E5.default.normalizeArguments(void 0, ie(N({}, j), {
                                    retry: {calculateDelay: () => 0},
                                    throwHttpErrors: !1,
                                    resolveBodyOnly: !1
                                }), k);
                                Z.hooks.afterResponse = Z.hooks.afterResponse.slice(0, T);
                                for (let re of Z.hooks.beforeRetry) await re(Z);
                                let J = y5(Z);
                                return l(() => {
                                    J.catch(() => {
                                    }), J.cancel()
                                }), J
                            })
                        } catch (T) {
                            g._beforeError(new Uw.RequestError(T.message, T, g));
                            return
                        }
                        if (!I5.isResponseOk(p)) {
                            g._beforeError(new Uw.HTTPError(p));
                            return
                        }
                        r = p, o(g.options.resolveBodyOnly ? p.body : p)
                    });
                    let f = p => {
                        if (n.isCanceled) return;
                        let {options: m} = g;
                        if (p instanceof Uw.HTTPError && !m.throwHttpErrors) {
                            let {response: y} = p;
                            o(g.options.resolveBodyOnly ? y.body : y);
                            return
                        }
                        a(p)
                    };
                    g.once("error", f);
                    let h = g.options.body;
                    g.once("retry", (p, m) => {
                        var y, b;
                        if (h === ((y = m.request) === null || y === void 0 ? void 0 : y.options.body) && $Pe.default.nodeStream((b = m.request) === null || b === void 0 ? void 0 : b.options.body)) {
                            f(m);
                            return
                        }
                        c(p)
                    }), tDe.default(g, i, iDe)
                };
                c(0)
            });
            n.on = (o, a) => (i.on(o, a), n);
            let s = o => {
                let a = (async () => {
                    await n;
                    let {options: l} = r.request;
                    return m5.default(r, o, l.parseJson, l.encoding)
                })();
                return Object.defineProperties(a, Object.getOwnPropertyDescriptors(n)), a
            };
            return n.json = () => {
                let {headers: o} = e.options;
                return !e.writableFinished && o.accept === void 0 && (o.accept = "application/json"), s("json")
            }, n.buffer = () => s("buffer"), n.text = () => s("text"), n
        }

        ul.default = y5;
        XPe(Od(), ul)
    });
    var w5 = w(YP => {
        "use strict";
        Object.defineProperty(YP, "__esModule", {value: !0});
        var nDe = Od();

        function sDe(t, ...e) {
            let r = (async () => {
                if (t instanceof nDe.RequestError) try {
                    for (let n of e) if (n) for (let s of n) t = await s(t)
                } catch (n) {
                    t = n
                }
                throw t
            })(), i = () => r;
            return r.json = i, r.text = i, r.buffer = i, r.on = i, r
        }

        YP.default = sDe
    });
    var Q5 = w(qP => {
        "use strict";
        Object.defineProperty(qP, "__esModule", {value: !0});
        var B5 = eA();

        function b5(t) {
            for (let e of Object.values(t)) (B5.default.plainObject(e) || B5.default.array(e)) && b5(e);
            return Object.freeze(t)
        }

        qP.default = b5
    });
    var S5 = w(v5 => {
        "use strict";
        Object.defineProperty(v5, "__esModule", {value: !0})
    });
    var JP = w(Ls => {
        "use strict";
        var oDe = Ls && Ls.__createBinding || (Object.create ? function (t, e, r, i) {
            i === void 0 && (i = r), Object.defineProperty(t, i, {
                enumerable: !0, get: function () {
                    return e[r]
                }
            })
        } : function (t, e, r, i) {
            i === void 0 && (i = r), t[i] = e[r]
        }), aDe = Ls && Ls.__exportStar || function (t, e) {
            for (var r in t) r !== "default" && !Object.prototype.hasOwnProperty.call(e, r) && oDe(e, t, r)
        };
        Object.defineProperty(Ls, "__esModule", {value: !0});
        Ls.defaultHandler = void 0;
        var k5 = eA(), Ts = jP(), ADe = w5(), Hw = Td(), lDe = Q5(), cDe = {
                RequestError: Ts.RequestError,
                CacheError: Ts.CacheError,
                ReadError: Ts.ReadError,
                HTTPError: Ts.HTTPError,
                MaxRedirectsError: Ts.MaxRedirectsError,
                TimeoutError: Ts.TimeoutError,
                ParseError: Ts.ParseError,
                CancelError: Ts.CancelError,
                UnsupportedProtocolError: Ts.UnsupportedProtocolError,
                UploadError: Ts.UploadError
            }, uDe = async t => new Promise(e => {
                setTimeout(e, t)
            }), {normalizeArguments: Gw} = Hw.default, x5 = (...t) => {
                let e;
                for (let r of t) e = Gw(void 0, r, e);
                return e
            }, gDe = t => t.isStream ? new Hw.default(void 0, t) : Ts.default(t),
            fDe = t => "defaults" in t && "options" in t.defaults,
            hDe = ["get", "post", "put", "patch", "head", "delete"];
        Ls.defaultHandler = (t, e) => e(t);
        var P5 = (t, e) => {
            if (t) for (let r of t) r(e)
        }, D5 = t => {
            t._rawHandlers = t.handlers, t.handlers = t.handlers.map(i => (n, s) => {
                let o, a = i(n, l => (o = s(l), o));
                if (a !== o && !n.isStream && o) {
                    let l = a, {then: c, catch: u, finally: g} = l;
                    Object.setPrototypeOf(l, Object.getPrototypeOf(o)), Object.defineProperties(l, Object.getOwnPropertyDescriptors(o)), l.then = c, l.catch = u, l.finally = g
                }
                return a
            });
            let e = (i, n = {}, s) => {
                var o, a;
                let l = 0, c = u => t.handlers[l++](u, l === t.handlers.length ? gDe : c);
                if (k5.default.plainObject(i)) {
                    let u = N(N({}, i), n);
                    Hw.setNonEnumerableProperties([i, n], u), n = u, i = void 0
                }
                try {
                    let u;
                    try {
                        P5(t.options.hooks.init, n), P5((o = n.hooks) === null || o === void 0 ? void 0 : o.init, n)
                    } catch (f) {
                        u = f
                    }
                    let g = Gw(i, n, s != null ? s : t.options);
                    if (g[Hw.kIsNormalizedAlready] = !0, u) throw new Ts.RequestError(u.message, u, g);
                    return c(g)
                } catch (u) {
                    if (n.isStream) throw u;
                    return ADe.default(u, t.options.hooks.beforeError, (a = n.hooks) === null || a === void 0 ? void 0 : a.beforeError)
                }
            };
            e.extend = (...i) => {
                let n = [t.options], s = [...t._rawHandlers], o;
                for (let a of i) fDe(a) ? (n.push(a.defaults.options), s.push(...a.defaults._rawHandlers), o = a.defaults.mutableDefaults) : (n.push(a), "handlers" in a && s.push(...a.handlers), o = a.mutableDefaults);
                return s = s.filter(a => a !== Ls.defaultHandler), s.length === 0 && s.push(Ls.defaultHandler), D5({
                    options: x5(...n),
                    handlers: s,
                    mutableDefaults: Boolean(o)
                })
            };
            let r = async function* (i, n) {
                let s = Gw(i, n, t.options);
                s.resolveBodyOnly = !1;
                let o = s.pagination;
                if (!k5.default.object(o)) throw new TypeError("`options.pagination` must be implemented");
                let a = [], {countLimit: l} = o, c = 0;
                for (; c < o.requestLimit;) {
                    c !== 0 && await uDe(o.backoff);
                    let u = await e(void 0, void 0, s), g = await o.transform(u), f = [];
                    for (let p of g) if (o.filter(p, a, f) && (!o.shouldContinue(p, a, f) || (yield p, o.stackAllItems && a.push(p), f.push(p), --l <= 0))) return;
                    let h = o.paginate(u, a, f);
                    if (h === !1) return;
                    h === u.request.options ? s = u.request.options : h !== void 0 && (s = Gw(void 0, h, s)), c++
                }
            };
            e.paginate = r, e.paginate.all = async (i, n) => {
                let s = [];
                for await(let o of r(i, n)) s.push(o);
                return s
            }, e.paginate.each = r, e.stream = (i, n) => e(i, ie(N({}, n), {isStream: !0}));
            for (let i of hDe) e[i] = (n, s) => e(n, ie(N({}, s), {method: i})), e.stream[i] = (n, s) => e(n, ie(N({}, s), {
                method: i,
                isStream: !0
            }));
            return Object.assign(e, cDe), Object.defineProperty(e, "defaults", {
                value: t.mutableDefaults ? t : lDe.default(t),
                writable: t.mutableDefaults,
                configurable: t.mutableDefaults,
                enumerable: !0
            }), e.mergeOptions = x5, e
        };
        Ls.default = D5;
        aDe(S5(), Ls)
    });
    var Yw = w((rA, jw) => {
        "use strict";
        var pDe = rA && rA.__createBinding || (Object.create ? function (t, e, r, i) {
            i === void 0 && (i = r), Object.defineProperty(t, i, {
                enumerable: !0, get: function () {
                    return e[r]
                }
            })
        } : function (t, e, r, i) {
            i === void 0 && (i = r), t[i] = e[r]
        }), R5 = rA && rA.__exportStar || function (t, e) {
            for (var r in t) r !== "default" && !Object.prototype.hasOwnProperty.call(e, r) && pDe(e, t, r)
        };
        Object.defineProperty(rA, "__esModule", {value: !0});
        var dDe = require("url"), F5 = JP(), CDe = {
            options: {
                method: "GET",
                retry: {
                    limit: 2,
                    methods: ["GET", "PUT", "HEAD", "DELETE", "OPTIONS", "TRACE"],
                    statusCodes: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
                    errorCodes: ["ETIMEDOUT", "ECONNRESET", "EADDRINUSE", "ECONNREFUSED", "EPIPE", "ENOTFOUND", "ENETUNREACH", "EAI_AGAIN"],
                    maxRetryAfter: void 0,
                    calculateDelay: ({computedValue: t}) => t
                },
                timeout: {},
                headers: {"user-agent": "got (https://github.com/sindresorhus/got)"},
                hooks: {
                    init: [],
                    beforeRequest: [],
                    beforeRedirect: [],
                    beforeRetry: [],
                    beforeError: [],
                    afterResponse: []
                },
                cache: void 0,
                dnsCache: void 0,
                decompress: !0,
                throwHttpErrors: !0,
                followRedirect: !0,
                isStream: !1,
                responseType: "text",
                resolveBodyOnly: !1,
                maxRedirects: 10,
                prefixUrl: "",
                methodRewriting: !0,
                ignoreInvalidCookies: !1,
                context: {},
                http2: !1,
                allowGetBody: !1,
                https: void 0,
                pagination: {
                    transform: t => t.request.options.responseType === "json" ? t.body : JSON.parse(t.body),
                    paginate: t => {
                        if (!Reflect.has(t.headers, "link")) return !1;
                        let e = t.headers.link.split(","), r;
                        for (let i of e) {
                            let n = i.split(";");
                            if (n[1].includes("next")) {
                                r = n[0].trimStart().trim(), r = r.slice(1, -1);
                                break
                            }
                        }
                        return r ? {url: new dDe.URL(r)} : !1
                    },
                    filter: () => !0,
                    shouldContinue: () => !0,
                    countLimit: Infinity,
                    backoff: 0,
                    requestLimit: 1e4,
                    stackAllItems: !0
                },
                parseJson: t => JSON.parse(t),
                stringifyJson: t => JSON.stringify(t),
                cacheOptions: {}
            }, handlers: [F5.defaultHandler], mutableDefaults: !1
        }, WP = F5.default(CDe);
        rA.default = WP;
        jw.exports = WP;
        jw.exports.default = WP;
        jw.exports.__esModule = !0;
        R5(JP(), rA);
        R5(jP(), rA)
    });
    var O5 = w(sf => {
        "use strict";
        var jot = require("net"), mDe = require("tls"), zP = require("http"), N5 = require("https"),
            EDe = require("events"), Yot = require("assert"), IDe = require("util");
        sf.httpOverHttp = yDe;
        sf.httpsOverHttp = wDe;
        sf.httpOverHttps = BDe;
        sf.httpsOverHttps = bDe;

        function yDe(t) {
            var e = new iA(t);
            return e.request = zP.request, e
        }

        function wDe(t) {
            var e = new iA(t);
            return e.request = zP.request, e.createSocket = L5, e.defaultPort = 443, e
        }

        function BDe(t) {
            var e = new iA(t);
            return e.request = N5.request, e
        }

        function bDe(t) {
            var e = new iA(t);
            return e.request = N5.request, e.createSocket = L5, e.defaultPort = 443, e
        }

        function iA(t) {
            var e = this;
            e.options = t || {}, e.proxyOptions = e.options.proxy || {}, e.maxSockets = e.options.maxSockets || zP.Agent.defaultMaxSockets, e.requests = [], e.sockets = [], e.on("free", function (i, n, s, o) {
                for (var a = T5(n, s, o), l = 0, c = e.requests.length; l < c; ++l) {
                    var u = e.requests[l];
                    if (u.host === a.host && u.port === a.port) {
                        e.requests.splice(l, 1), u.request.onSocket(i);
                        return
                    }
                }
                i.destroy(), e.removeSocket(i)
            })
        }

        IDe.inherits(iA, EDe.EventEmitter);
        iA.prototype.addRequest = function (e, r, i, n) {
            var s = this, o = _P({request: e}, s.options, T5(r, i, n));
            if (s.sockets.length >= this.maxSockets) {
                s.requests.push(o);
                return
            }
            s.createSocket(o, function (a) {
                a.on("free", l), a.on("close", c), a.on("agentRemove", c), e.onSocket(a);

                function l() {
                    s.emit("free", a, o)
                }

                function c(u) {
                    s.removeSocket(a), a.removeListener("free", l), a.removeListener("close", c), a.removeListener("agentRemove", c)
                }
            })
        };
        iA.prototype.createSocket = function (e, r) {
            var i = this, n = {};
            i.sockets.push(n);
            var s = _P({}, i.proxyOptions, {
                method: "CONNECT",
                path: e.host + ":" + e.port,
                agent: !1,
                headers: {host: e.host + ":" + e.port}
            });
            e.localAddress && (s.localAddress = e.localAddress), s.proxyAuth && (s.headers = s.headers || {}, s.headers["Proxy-Authorization"] = "Basic " + new Buffer(s.proxyAuth).toString("base64")), gl("making CONNECT request");
            var o = i.request(s);
            o.useChunkedEncodingByDefault = !1, o.once("response", a), o.once("upgrade", l), o.once("connect", c), o.once("error", u), o.end();

            function a(g) {
                g.upgrade = !0
            }

            function l(g, f, h) {
                process.nextTick(function () {
                    c(g, f, h)
                })
            }

            function c(g, f, h) {
                if (o.removeAllListeners(), f.removeAllListeners(), g.statusCode !== 200) {
                    gl("tunneling socket could not be established, statusCode=%d", g.statusCode), f.destroy();
                    var p = new Error("tunneling socket could not be established, statusCode=" + g.statusCode);
                    p.code = "ECONNRESET", e.request.emit("error", p), i.removeSocket(n);
                    return
                }
                if (h.length > 0) {
                    gl("got illegal response body from proxy"), f.destroy();
                    var p = new Error("got illegal response body from proxy");
                    p.code = "ECONNRESET", e.request.emit("error", p), i.removeSocket(n);
                    return
                }
                return gl("tunneling connection has established"), i.sockets[i.sockets.indexOf(n)] = f, r(f)
            }

            function u(g) {
                o.removeAllListeners(), gl(`tunneling socket could not be established, cause=%s
`, g.message, g.stack);
                var f = new Error("tunneling socket could not be established, cause=" + g.message);
                f.code = "ECONNRESET", e.request.emit("error", f), i.removeSocket(n)
            }
        };
        iA.prototype.removeSocket = function (e) {
            var r = this.sockets.indexOf(e);
            if (r !== -1) {
                this.sockets.splice(r, 1);
                var i = this.requests.shift();
                i && this.createSocket(i, function (n) {
                    i.request.onSocket(n)
                })
            }
        };

        function L5(t, e) {
            var r = this;
            iA.prototype.createSocket.call(r, t, function (i) {
                var n = t.request.getHeader("host"),
                    s = _P({}, r.options, {socket: i, servername: n ? n.replace(/:.*$/, "") : t.host}),
                    o = mDe.connect(0, s);
                r.sockets[r.sockets.indexOf(i)] = o, e(o)
            })
        }

        function T5(t, e, r) {
            return typeof t == "string" ? {host: t, port: e, localAddress: r} : t
        }

        function _P(t) {
            for (var e = 1, r = arguments.length; e < r; ++e) {
                var i = arguments[e];
                if (typeof i == "object") for (var n = Object.keys(i), s = 0, o = n.length; s < o; ++s) {
                    var a = n[s];
                    i[a] !== void 0 && (t[a] = i[a])
                }
            }
            return t
        }

        var gl;
        process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? gl = function () {
            var t = Array.prototype.slice.call(arguments);
            typeof t[0] == "string" ? t[0] = "TUNNEL: " + t[0] : t.unshift("TUNNEL:"), console.error.apply(console, t)
        } : gl = function () {
        };
        sf.debug = gl
    });
    var K5 = w((Jot, M5) => {
        M5.exports = O5()
    });
    var _5 = w((Ww, eD) => {
        var z5 = Object.assign({}, require("fs")), tD = function () {
            var t = typeof document != "undefined" && document.currentScript ? document.currentScript.src : void 0;
            return typeof __filename != "undefined" && (t = t || __filename), function (e) {
                e = e || {};
                var r = typeof e != "undefined" ? e : {}, i, n;
                r.ready = new Promise(function (d, E) {
                    i = d, n = E
                });
                var s = {}, o;
                for (o in r) r.hasOwnProperty(o) && (s[o] = r[o]);
                var a = [], l = "./this.program", c = function (d, E) {
                    throw E
                }, u = !1, g = !0, f = "";

                function h(d) {
                    return r.locateFile ? r.locateFile(d, f) : f + d
                }

                var p, m, y, b;
                g && (u ? f = require("path").dirname(f) + "/" : f = __dirname + "/", p = function (E, I) {
                    var D = Qa(E);
                    return D ? I ? D : D.toString() : (y || (y = z5), b || (b = require("path")), E = b.normalize(E), y.readFileSync(E, I ? null : "utf8"))
                }, m = function (E) {
                    var I = p(E, !0);
                    return I.buffer || (I = new Uint8Array(I)), X(I.buffer), I
                }, process.argv.length > 1 && (l = process.argv[1].replace(/\\/g, "/")), a = process.argv.slice(2), c = function (d) {
                    process.exit(d)
                }, r.inspect = function () {
                    return "[Emscripten Module object]"
                });
                var S = r.print || console.log.bind(console), k = r.printErr || console.warn.bind(console);
                for (o in s) s.hasOwnProperty(o) && (r[o] = s[o]);
                s = null, r.arguments && (a = r.arguments), r.thisProgram && (l = r.thisProgram), r.quit && (c = r.quit);
                var T = 16;

                function Y(d, E) {
                    return E || (E = T), Math.ceil(d / E) * E
                }

                var j = 0, Z = function (d) {
                    j = d
                }, J;
                r.wasmBinary && (J = r.wasmBinary);
                var re = r.noExitRuntime || !0;
                typeof WebAssembly != "object" && Sr("no native wasm support detected");

                function ee(d, E, I) {
                    switch (E = E || "i8", E.charAt(E.length - 1) === "*" && (E = "i32"), E) {
                        case"i1":
                            return de[d >> 0];
                        case"i8":
                            return de[d >> 0];
                        case"i16":
                            return Qe[d >> 1];
                        case"i32":
                            return fe[d >> 2];
                        case"i64":
                            return fe[d >> 2];
                        case"float":
                            return Ht[d >> 2];
                        case"double":
                            return Mt[d >> 3];
                        default:
                            Sr("invalid type for getValue: " + E)
                    }
                    return null
                }

                var A, oe = !1, le;

                function X(d, E) {
                    d || Sr("Assertion failed: " + E)
                }

                function O(d) {
                    var E = r["_" + d];
                    return X(E, "Cannot call unknown function " + d + ", make sure it is exported"), E
                }

                function L(d, E, I, D, M) {
                    var _ = {
                        string: function (nt) {
                            var It = 0;
                            if (nt != null && nt !== 0) {
                                var ke = (nt.length << 2) + 1;
                                It = B(ke), be(nt, It, ke)
                            }
                            return It
                        }, array: function (nt) {
                            var It = B(nt.length);
                            return Ue(nt, It), It
                        }
                    };

                    function ne(nt) {
                        return E === "string" ? te(nt) : E === "boolean" ? Boolean(nt) : nt
                    }

                    var Be = O(d), Ee = [], _e = 0;
                    if (D) for (var ot = 0; ot < D.length; ot++) {
                        var wt = _[I[ot]];
                        wt ? (_e === 0 && (_e = NE()), Ee[ot] = wt(D[ot])) : Ee[ot] = D[ot]
                    }
                    var ut = Be.apply(null, Ee);
                    return ut = ne(ut), _e !== 0 && LE(_e), ut
                }

                function pe(d, E, I, D) {
                    I = I || [];
                    var M = I.every(function (ne) {
                        return ne === "number"
                    }), _ = E !== "string";
                    return _ && M && !D ? O(d) : function () {
                        return L(d, E, I, arguments, D)
                    }
                }

                var Ce = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : void 0;

                function Oe(d, E, I) {
                    for (var D = E + I, M = E; d[M] && !(M >= D);) ++M;
                    if (M - E > 16 && d.subarray && Ce) return Ce.decode(d.subarray(E, M));
                    for (var _ = ""; E < M;) {
                        var ne = d[E++];
                        if (!(ne & 128)) {
                            _ += String.fromCharCode(ne);
                            continue
                        }
                        var Be = d[E++] & 63;
                        if ((ne & 224) == 192) {
                            _ += String.fromCharCode((ne & 31) << 6 | Be);
                            continue
                        }
                        var Ee = d[E++] & 63;
                        if ((ne & 240) == 224 ? ne = (ne & 15) << 12 | Be << 6 | Ee : ne = (ne & 7) << 18 | Be << 12 | Ee << 6 | d[E++] & 63, ne < 65536) _ += String.fromCharCode(ne); else {
                            var _e = ne - 65536;
                            _ += String.fromCharCode(55296 | _e >> 10, 56320 | _e & 1023)
                        }
                    }
                    return _
                }

                function te(d, E) {
                    return d ? Oe(V, d, E) : ""
                }

                function se(d, E, I, D) {
                    if (!(D > 0)) return 0;
                    for (var M = I, _ = I + D - 1, ne = 0; ne < d.length; ++ne) {
                        var Be = d.charCodeAt(ne);
                        if (Be >= 55296 && Be <= 57343) {
                            var Ee = d.charCodeAt(++ne);
                            Be = 65536 + ((Be & 1023) << 10) | Ee & 1023
                        }
                        if (Be <= 127) {
                            if (I >= _) break;
                            E[I++] = Be
                        } else if (Be <= 2047) {
                            if (I + 1 >= _) break;
                            E[I++] = 192 | Be >> 6, E[I++] = 128 | Be & 63
                        } else if (Be <= 65535) {
                            if (I + 2 >= _) break;
                            E[I++] = 224 | Be >> 12, E[I++] = 128 | Be >> 6 & 63, E[I++] = 128 | Be & 63
                        } else {
                            if (I + 3 >= _) break;
                            E[I++] = 240 | Be >> 18, E[I++] = 128 | Be >> 12 & 63, E[I++] = 128 | Be >> 6 & 63, E[I++] = 128 | Be & 63
                        }
                    }
                    return E[I] = 0, I - M
                }

                function be(d, E, I) {
                    return se(d, V, E, I)
                }

                function he(d) {
                    for (var E = 0, I = 0; I < d.length; ++I) {
                        var D = d.charCodeAt(I);
                        D >= 55296 && D <= 57343 && (D = 65536 + ((D & 1023) << 10) | d.charCodeAt(++I) & 1023), D <= 127 ? ++E : D <= 2047 ? E += 2 : D <= 65535 ? E += 3 : E += 4
                    }
                    return E
                }

                function Fe(d) {
                    var E = he(d) + 1, I = Et(E);
                    return I && se(d, de, I, E), I
                }

                function Ue(d, E) {
                    de.set(d, E)
                }

                function xe(d, E) {
                    return d % E > 0 && (d += E - d % E), d
                }

                var Se, de, V, Qe, ce, fe, gt, Ht, Mt;

                function mi(d) {
                    Se = d, r.HEAP8 = de = new Int8Array(d), r.HEAP16 = Qe = new Int16Array(d), r.HEAP32 = fe = new Int32Array(d), r.HEAPU8 = V = new Uint8Array(d), r.HEAPU16 = ce = new Uint16Array(d), r.HEAPU32 = gt = new Uint32Array(d), r.HEAPF32 = Ht = new Float32Array(d), r.HEAPF64 = Mt = new Float64Array(d)
                }

                var Gt = r.INITIAL_MEMORY || 16777216, Qr, Ti = [], Vs = [], Un = [], Hn = !1;

                function vr() {
                    if (r.preRun) for (typeof r.preRun == "function" && (r.preRun = [r.preRun]); r.preRun.length;) ya(r.preRun.shift());
                    ko(Ti)
                }

                function Gn() {
                    Hn = !0, !r.noFSInit && !v.init.initialized && v.init(), hs.init(), ko(Vs)
                }

                function gs() {
                    if (r.postRun) for (typeof r.postRun == "function" && (r.postRun = [r.postRun]); r.postRun.length;) Ru(r.postRun.shift());
                    ko(Un)
                }

                function ya(d) {
                    Ti.unshift(d)
                }

                function kA(d) {
                    Vs.unshift(d)
                }

                function Ru(d) {
                    Un.unshift(d)
                }

                var fs = 0, xA = null, wa = null;

                function Fu(d) {
                    return d
                }

                function PA(d) {
                    fs++, r.monitorRunDependencies && r.monitorRunDependencies(fs)
                }

                function DA(d) {
                    if (fs--, r.monitorRunDependencies && r.monitorRunDependencies(fs), fs == 0 && (xA !== null && (clearInterval(xA), xA = null), wa)) {
                        var E = wa;
                        wa = null, E()
                    }
                }

                r.preloadedImages = {}, r.preloadedAudios = {};

                function Sr(d) {
                    r.onAbort && r.onAbort(d), d += "", k(d), oe = !0, le = 1, d = "abort(" + d + "). Build with -s ASSERTIONS=1 for more info.";
                    var E = new WebAssembly.RuntimeError(d);
                    throw n(E), E
                }

                var jl = "data:application/octet-stream;base64,";

                function Nu(d) {
                    return d.startsWith(jl)
                }

                var So = "data:application/octet-stream;base64, ";
                Nu(So) || (So = h(So));

                function Lu(d) {
                    try {
                        if (d == So && J) return new Uint8Array(J);
                        var E = Qa(d);
                        if (E) return E;
                        if (m) return m(d);
                        throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"
                    } catch (I) {
                        Sr(I)
                    }
                }

                function Sh(d, E) {
                    var I, D, M;
                    try {
                        M = Lu(d), D = new WebAssembly.Module(M), I = new WebAssembly.Instance(D, E)
                    } catch (ne) {
                        var _ = ne.toString();
                        throw k("failed to compile wasm module: " + _), (_.includes("imported Memory") || _.includes("memory import")) && k("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."), ne
                    }
                    return [I, D]
                }

                function kh() {
                    var d = {a: va};

                    function E(M, _) {
                        var ne = M.exports;
                        r.asm = ne, A = r.asm.u, mi(A.buffer), Qr = r.asm.pa, kA(r.asm.v), DA("wasm-instantiate")
                    }

                    if (PA("wasm-instantiate"), r.instantiateWasm) try {
                        var I = r.instantiateWasm(d, E);
                        return I
                    } catch (M) {
                        return k("Module.instantiateWasm callback failed with error: " + M), !1
                    }
                    var D = Sh(So, d);
                    return E(D[0]), r.asm
                }

                var ae, Oi;

                function ko(d) {
                    for (; d.length > 0;) {
                        var E = d.shift();
                        if (typeof E == "function") {
                            E(r);
                            continue
                        }
                        var I = E.func;
                        typeof I == "number" ? E.arg === void 0 ? Qr.get(I)() : Qr.get(I)(E.arg) : I(E.arg === void 0 ? null : E.arg)
                    }
                }

                function jn(d, E) {
                    var I = new Date(fe[d >> 2] * 1e3);
                    fe[E >> 2] = I.getUTCSeconds(), fe[E + 4 >> 2] = I.getUTCMinutes(), fe[E + 8 >> 2] = I.getUTCHours(), fe[E + 12 >> 2] = I.getUTCDate(), fe[E + 16 >> 2] = I.getUTCMonth(), fe[E + 20 >> 2] = I.getUTCFullYear() - 1900, fe[E + 24 >> 2] = I.getUTCDay(), fe[E + 36 >> 2] = 0, fe[E + 32 >> 2] = 0;
                    var D = Date.UTC(I.getUTCFullYear(), 0, 1, 0, 0, 0, 0),
                        M = (I.getTime() - D) / (1e3 * 60 * 60 * 24) | 0;
                    return fe[E + 28 >> 2] = M, jn.GMTString || (jn.GMTString = Fe("GMT")), fe[E + 40 >> 2] = jn.GMTString, E
                }

                function Tu(d, E) {
                    return jn(d, E)
                }

                var vt = {
                    splitPath: function (d) {
                        var E = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
                        return E.exec(d).slice(1)
                    }, normalizeArray: function (d, E) {
                        for (var I = 0, D = d.length - 1; D >= 0; D--) {
                            var M = d[D];
                            M === "." ? d.splice(D, 1) : M === ".." ? (d.splice(D, 1), I++) : I && (d.splice(D, 1), I--)
                        }
                        if (E) for (; I; I--) d.unshift("..");
                        return d
                    }, normalize: function (d) {
                        var E = d.charAt(0) === "/", I = d.substr(-1) === "/";
                        return d = vt.normalizeArray(d.split("/").filter(function (D) {
                            return !!D
                        }), !E).join("/"), !d && !E && (d = "."), d && I && (d += "/"), (E ? "/" : "") + d
                    }, dirname: function (d) {
                        var E = vt.splitPath(d), I = E[0], D = E[1];
                        return !I && !D ? "." : (D && (D = D.substr(0, D.length - 1)), I + D)
                    }, basename: function (d) {
                        if (d === "/") return "/";
                        d = vt.normalize(d), d = d.replace(/\/$/, "");
                        var E = d.lastIndexOf("/");
                        return E === -1 ? d : d.substr(E + 1)
                    }, extname: function (d) {
                        return vt.splitPath(d)[3]
                    }, join: function () {
                        var d = Array.prototype.slice.call(arguments, 0);
                        return vt.normalize(d.join("/"))
                    }, join2: function (d, E) {
                        return vt.normalize(d + "/" + E)
                    }
                };

                function Yl() {
                    if (typeof crypto == "object" && typeof crypto.getRandomValues == "function") {
                        var d = new Uint8Array(1);
                        return function () {
                            return crypto.getRandomValues(d), d[0]
                        }
                    } else if (g) try {
                        var E = require("crypto");
                        return function () {
                            return E.randomBytes(1)[0]
                        }
                    } catch (I) {
                    }
                    return function () {
                        Sr("randomDevice")
                    }
                }

                var Yn = {
                    resolve: function () {
                        for (var d = "", E = !1, I = arguments.length - 1; I >= -1 && !E; I--) {
                            var D = I >= 0 ? arguments[I] : v.cwd();
                            if (typeof D != "string") throw new TypeError("Arguments to path.resolve must be strings");
                            if (!D) return "";
                            d = D + "/" + d, E = D.charAt(0) === "/"
                        }
                        return d = vt.normalizeArray(d.split("/").filter(function (M) {
                            return !!M
                        }), !E).join("/"), (E ? "/" : "") + d || "."
                    }, relative: function (d, E) {
                        d = Yn.resolve(d).substr(1), E = Yn.resolve(E).substr(1);

                        function I(_e) {
                            for (var ot = 0; ot < _e.length && _e[ot] === ""; ot++) ;
                            for (var wt = _e.length - 1; wt >= 0 && _e[wt] === ""; wt--) ;
                            return ot > wt ? [] : _e.slice(ot, wt - ot + 1)
                        }

                        for (var D = I(d.split("/")), M = I(E.split("/")), _ = Math.min(D.length, M.length), ne = _, Be = 0; Be < _; Be++) if (D[Be] !== M[Be]) {
                            ne = Be;
                            break
                        }
                        for (var Ee = [], Be = ne; Be < D.length; Be++) Ee.push("..");
                        return Ee = Ee.concat(M.slice(ne)), Ee.join("/")
                    }
                }, hs = {
                    ttys: [], init: function () {
                    }, shutdown: function () {
                    }, register: function (d, E) {
                        hs.ttys[d] = {input: [], output: [], ops: E}, v.registerDevice(d, hs.stream_ops)
                    }, stream_ops: {
                        open: function (d) {
                            var E = hs.ttys[d.node.rdev];
                            if (!E) throw new v.ErrnoError(43);
                            d.tty = E, d.seekable = !1
                        }, close: function (d) {
                            d.tty.ops.flush(d.tty)
                        }, flush: function (d) {
                            d.tty.ops.flush(d.tty)
                        }, read: function (d, E, I, D, M) {
                            if (!d.tty || !d.tty.ops.get_char) throw new v.ErrnoError(60);
                            for (var _ = 0, ne = 0; ne < D; ne++) {
                                var Be;
                                try {
                                    Be = d.tty.ops.get_char(d.tty)
                                } catch (Ee) {
                                    throw new v.ErrnoError(29)
                                }
                                if (Be === void 0 && _ === 0) throw new v.ErrnoError(6);
                                if (Be == null) break;
                                _++, E[I + ne] = Be
                            }
                            return _ && (d.node.timestamp = Date.now()), _
                        }, write: function (d, E, I, D, M) {
                            if (!d.tty || !d.tty.ops.put_char) throw new v.ErrnoError(60);
                            try {
                                for (var _ = 0; _ < D; _++) d.tty.ops.put_char(d.tty, E[I + _])
                            } catch (ne) {
                                throw new v.ErrnoError(29)
                            }
                            return D && (d.node.timestamp = Date.now()), _
                        }
                    }, default_tty_ops: {
                        get_char: function (d) {
                            if (!d.input.length) {
                                var E = null;
                                if (g) {
                                    var I = 256, D = Buffer.alloc ? Buffer.alloc(I) : new Buffer(I), M = 0;
                                    try {
                                        M = y.readSync(process.stdin.fd, D, 0, I, null)
                                    } catch (_) {
                                        if (_.toString().includes("EOF")) M = 0; else throw _
                                    }
                                    M > 0 ? E = D.slice(0, M).toString("utf-8") : E = null
                                } else typeof window != "undefined" && typeof window.prompt == "function" ? (E = window.prompt("Input: "), E !== null && (E += `
`)) : typeof readline == "function" && (E = readline(), E !== null && (E += `
`));
                                if (!E) return null;
                                d.input = FA(E, !0)
                            }
                            return d.input.shift()
                        }, put_char: function (d, E) {
                            E === null || E === 10 ? (S(Oe(d.output, 0)), d.output = []) : E != 0 && d.output.push(E)
                        }, flush: function (d) {
                            d.output && d.output.length > 0 && (S(Oe(d.output, 0)), d.output = [])
                        }
                    }, default_tty1_ops: {
                        put_char: function (d, E) {
                            E === null || E === 10 ? (k(Oe(d.output, 0)), d.output = []) : E != 0 && d.output.push(E)
                        }, flush: function (d) {
                            d.output && d.output.length > 0 && (k(Oe(d.output, 0)), d.output = [])
                        }
                    }
                };

                function ps(d) {
                    for (var E = Y(d, 65536), I = Et(E); d < E;) de[I + d++] = 0;
                    return I
                }

                var pt = {
                    ops_table: null, mount: function (d) {
                        return pt.createNode(null, "/", 16384 | 511, 0)
                    }, createNode: function (d, E, I, D) {
                        if (v.isBlkdev(I) || v.isFIFO(I)) throw new v.ErrnoError(63);
                        pt.ops_table || (pt.ops_table = {
                            dir: {
                                node: {
                                    getattr: pt.node_ops.getattr,
                                    setattr: pt.node_ops.setattr,
                                    lookup: pt.node_ops.lookup,
                                    mknod: pt.node_ops.mknod,
                                    rename: pt.node_ops.rename,
                                    unlink: pt.node_ops.unlink,
                                    rmdir: pt.node_ops.rmdir,
                                    readdir: pt.node_ops.readdir,
                                    symlink: pt.node_ops.symlink
                                }, stream: {llseek: pt.stream_ops.llseek}
                            },
                            file: {
                                node: {getattr: pt.node_ops.getattr, setattr: pt.node_ops.setattr},
                                stream: {
                                    llseek: pt.stream_ops.llseek,
                                    read: pt.stream_ops.read,
                                    write: pt.stream_ops.write,
                                    allocate: pt.stream_ops.allocate,
                                    mmap: pt.stream_ops.mmap,
                                    msync: pt.stream_ops.msync
                                }
                            },
                            link: {
                                node: {
                                    getattr: pt.node_ops.getattr,
                                    setattr: pt.node_ops.setattr,
                                    readlink: pt.node_ops.readlink
                                }, stream: {}
                            },
                            chrdev: {
                                node: {getattr: pt.node_ops.getattr, setattr: pt.node_ops.setattr},
                                stream: v.chrdev_stream_ops
                            }
                        });
                        var M = v.createNode(d, E, I, D);
                        return v.isDir(M.mode) ? (M.node_ops = pt.ops_table.dir.node, M.stream_ops = pt.ops_table.dir.stream, M.contents = {}) : v.isFile(M.mode) ? (M.node_ops = pt.ops_table.file.node, M.stream_ops = pt.ops_table.file.stream, M.usedBytes = 0, M.contents = null) : v.isLink(M.mode) ? (M.node_ops = pt.ops_table.link.node, M.stream_ops = pt.ops_table.link.stream) : v.isChrdev(M.mode) && (M.node_ops = pt.ops_table.chrdev.node, M.stream_ops = pt.ops_table.chrdev.stream), M.timestamp = Date.now(), d && (d.contents[E] = M, d.timestamp = M.timestamp), M
                    }, getFileDataAsTypedArray: function (d) {
                        return d.contents ? d.contents.subarray ? d.contents.subarray(0, d.usedBytes) : new Uint8Array(d.contents) : new Uint8Array(0)
                    }, expandFileStorage: function (d, E) {
                        var I = d.contents ? d.contents.length : 0;
                        if (!(I >= E)) {
                            var D = 1024 * 1024;
                            E = Math.max(E, I * (I < D ? 2 : 1.125) >>> 0), I != 0 && (E = Math.max(E, 256));
                            var M = d.contents;
                            d.contents = new Uint8Array(E), d.usedBytes > 0 && d.contents.set(M.subarray(0, d.usedBytes), 0)
                        }
                    }, resizeFileStorage: function (d, E) {
                        if (d.usedBytes != E) if (E == 0) d.contents = null, d.usedBytes = 0; else {
                            var I = d.contents;
                            d.contents = new Uint8Array(E), I && d.contents.set(I.subarray(0, Math.min(E, d.usedBytes))), d.usedBytes = E
                        }
                    }, node_ops: {
                        getattr: function (d) {
                            var E = {};
                            return E.dev = v.isChrdev(d.mode) ? d.id : 1, E.ino = d.id, E.mode = d.mode, E.nlink = 1, E.uid = 0, E.gid = 0, E.rdev = d.rdev, v.isDir(d.mode) ? E.size = 4096 : v.isFile(d.mode) ? E.size = d.usedBytes : v.isLink(d.mode) ? E.size = d.link.length : E.size = 0, E.atime = new Date(d.timestamp), E.mtime = new Date(d.timestamp), E.ctime = new Date(d.timestamp), E.blksize = 4096, E.blocks = Math.ceil(E.size / E.blksize), E
                        }, setattr: function (d, E) {
                            E.mode !== void 0 && (d.mode = E.mode), E.timestamp !== void 0 && (d.timestamp = E.timestamp), E.size !== void 0 && pt.resizeFileStorage(d, E.size)
                        }, lookup: function (d, E) {
                            throw v.genericErrors[44]
                        }, mknod: function (d, E, I, D) {
                            return pt.createNode(d, E, I, D)
                        }, rename: function (d, E, I) {
                            if (v.isDir(d.mode)) {
                                var D;
                                try {
                                    D = v.lookupNode(E, I)
                                } catch (_) {
                                }
                                if (D) for (var M in D.contents) throw new v.ErrnoError(55)
                            }
                            delete d.parent.contents[d.name], d.parent.timestamp = Date.now(), d.name = I, E.contents[I] = d, E.timestamp = d.parent.timestamp, d.parent = E
                        }, unlink: function (d, E) {
                            delete d.contents[E], d.timestamp = Date.now()
                        }, rmdir: function (d, E) {
                            var I = v.lookupNode(d, E);
                            for (var D in I.contents) throw new v.ErrnoError(55);
                            delete d.contents[E], d.timestamp = Date.now()
                        }, readdir: function (d) {
                            var E = [".", ".."];
                            for (var I in d.contents) !d.contents.hasOwnProperty(I) || E.push(I);
                            return E
                        }, symlink: function (d, E, I) {
                            var D = pt.createNode(d, E, 511 | 40960, 0);
                            return D.link = I, D
                        }, readlink: function (d) {
                            if (!v.isLink(d.mode)) throw new v.ErrnoError(28);
                            return d.link
                        }
                    }, stream_ops: {
                        read: function (d, E, I, D, M) {
                            var _ = d.node.contents;
                            if (M >= d.node.usedBytes) return 0;
                            var ne = Math.min(d.node.usedBytes - M, D);
                            if (ne > 8 && _.subarray) E.set(_.subarray(M, M + ne), I); else for (var Be = 0; Be < ne; Be++) E[I + Be] = _[M + Be];
                            return ne
                        }, write: function (d, E, I, D, M, _) {
                            if (E.buffer === de.buffer && (_ = !1), !D) return 0;
                            var ne = d.node;
                            if (ne.timestamp = Date.now(), E.subarray && (!ne.contents || ne.contents.subarray)) {
                                if (_) return ne.contents = E.subarray(I, I + D), ne.usedBytes = D, D;
                                if (ne.usedBytes === 0 && M === 0) return ne.contents = E.slice(I, I + D), ne.usedBytes = D, D;
                                if (M + D <= ne.usedBytes) return ne.contents.set(E.subarray(I, I + D), M), D
                            }
                            if (pt.expandFileStorage(ne, M + D), ne.contents.subarray && E.subarray) ne.contents.set(E.subarray(I, I + D), M); else for (var Be = 0; Be < D; Be++) ne.contents[M + Be] = E[I + Be];
                            return ne.usedBytes = Math.max(ne.usedBytes, M + D), D
                        }, llseek: function (d, E, I) {
                            var D = E;
                            if (I === 1 ? D += d.position : I === 2 && v.isFile(d.node.mode) && (D += d.node.usedBytes), D < 0) throw new v.ErrnoError(28);
                            return D
                        }, allocate: function (d, E, I) {
                            pt.expandFileStorage(d.node, E + I), d.node.usedBytes = Math.max(d.node.usedBytes, E + I)
                        }, mmap: function (d, E, I, D, M, _) {
                            if (E !== 0) throw new v.ErrnoError(28);
                            if (!v.isFile(d.node.mode)) throw new v.ErrnoError(43);
                            var ne, Be, Ee = d.node.contents;
                            if (!(_ & 2) && Ee.buffer === Se) Be = !1, ne = Ee.byteOffset; else {
                                if ((D > 0 || D + I < Ee.length) && (Ee.subarray ? Ee = Ee.subarray(D, D + I) : Ee = Array.prototype.slice.call(Ee, D, D + I)), Be = !0, ne = ps(I), !ne) throw new v.ErrnoError(48);
                                de.set(Ee, ne)
                            }
                            return {ptr: ne, allocated: Be}
                        }, msync: function (d, E, I, D, M) {
                            if (!v.isFile(d.node.mode)) throw new v.ErrnoError(43);
                            if (M & 2) return 0;
                            var _ = pt.stream_ops.write(d, E, 0, D, I, !1);
                            return 0
                        }
                    }
                }, xo = {
                    EPERM: 63,
                    ENOENT: 44,
                    ESRCH: 71,
                    EINTR: 27,
                    EIO: 29,
                    ENXIO: 60,
                    E2BIG: 1,
                    ENOEXEC: 45,
                    EBADF: 8,
                    ECHILD: 12,
                    EAGAIN: 6,
                    EWOULDBLOCK: 6,
                    ENOMEM: 48,
                    EACCES: 2,
                    EFAULT: 21,
                    ENOTBLK: 105,
                    EBUSY: 10,
                    EEXIST: 20,
                    EXDEV: 75,
                    ENODEV: 43,
                    ENOTDIR: 54,
                    EISDIR: 31,
                    EINVAL: 28,
                    ENFILE: 41,
                    EMFILE: 33,
                    ENOTTY: 59,
                    ETXTBSY: 74,
                    EFBIG: 22,
                    ENOSPC: 51,
                    ESPIPE: 70,
                    EROFS: 69,
                    EMLINK: 34,
                    EPIPE: 64,
                    EDOM: 18,
                    ERANGE: 68,
                    ENOMSG: 49,
                    EIDRM: 24,
                    ECHRNG: 106,
                    EL2NSYNC: 156,
                    EL3HLT: 107,
                    EL3RST: 108,
                    ELNRNG: 109,
                    EUNATCH: 110,
                    ENOCSI: 111,
                    EL2HLT: 112,
                    EDEADLK: 16,
                    ENOLCK: 46,
                    EBADE: 113,
                    EBADR: 114,
                    EXFULL: 115,
                    ENOANO: 104,
                    EBADRQC: 103,
                    EBADSLT: 102,
                    EDEADLOCK: 16,
                    EBFONT: 101,
                    ENOSTR: 100,
                    ENODATA: 116,
                    ETIME: 117,
                    ENOSR: 118,
                    ENONET: 119,
                    ENOPKG: 120,
                    EREMOTE: 121,
                    ENOLINK: 47,
                    EADV: 122,
                    ESRMNT: 123,
                    ECOMM: 124,
                    EPROTO: 65,
                    EMULTIHOP: 36,
                    EDOTDOT: 125,
                    EBADMSG: 9,
                    ENOTUNIQ: 126,
                    EBADFD: 127,
                    EREMCHG: 128,
                    ELIBACC: 129,
                    ELIBBAD: 130,
                    ELIBSCN: 131,
                    ELIBMAX: 132,
                    ELIBEXEC: 133,
                    ENOSYS: 52,
                    ENOTEMPTY: 55,
                    ENAMETOOLONG: 37,
                    ELOOP: 32,
                    EOPNOTSUPP: 138,
                    EPFNOSUPPORT: 139,
                    ECONNRESET: 15,
                    ENOBUFS: 42,
                    EAFNOSUPPORT: 5,
                    EPROTOTYPE: 67,
                    ENOTSOCK: 57,
                    ENOPROTOOPT: 50,
                    ESHUTDOWN: 140,
                    ECONNREFUSED: 14,
                    EADDRINUSE: 3,
                    ECONNABORTED: 13,
                    ENETUNREACH: 40,
                    ENETDOWN: 38,
                    ETIMEDOUT: 73,
                    EHOSTDOWN: 142,
                    EHOSTUNREACH: 23,
                    EINPROGRESS: 26,
                    EALREADY: 7,
                    EDESTADDRREQ: 17,
                    EMSGSIZE: 35,
                    EPROTONOSUPPORT: 66,
                    ESOCKTNOSUPPORT: 137,
                    EADDRNOTAVAIL: 4,
                    ENETRESET: 39,
                    EISCONN: 30,
                    ENOTCONN: 53,
                    ETOOMANYREFS: 141,
                    EUSERS: 136,
                    EDQUOT: 19,
                    ESTALE: 72,
                    ENOTSUP: 138,
                    ENOMEDIUM: 148,
                    EILSEQ: 25,
                    EOVERFLOW: 61,
                    ECANCELED: 11,
                    ENOTRECOVERABLE: 56,
                    EOWNERDEAD: 62,
                    ESTRPIPE: 135
                }, lt = {
                    isWindows: !1, staticInit: function () {
                        lt.isWindows = !!process.platform.match(/^win/);
                        var d = {fs: Me.constants};
                        d.fs && (d = d.fs), lt.flagsForNodeMap = {
                            1024: d.O_APPEND,
                            64: d.O_CREAT,
                            128: d.O_EXCL,
                            256: d.O_NOCTTY,
                            0: d.O_RDONLY,
                            2: d.O_RDWR,
                            4096: d.O_SYNC,
                            512: d.O_TRUNC,
                            1: d.O_WRONLY
                        }
                    }, bufferFrom: function (d) {
                        return Buffer.alloc ? Buffer.from(d) : new Buffer(d)
                    }, convertNodeCode: function (d) {
                        var E = d.code;
                        return xo[E]
                    }, mount: function (d) {
                        return lt.createNode(null, "/", lt.getMode(d.opts.root), 0)
                    }, createNode: function (d, E, I, D) {
                        if (!v.isDir(I) && !v.isFile(I) && !v.isLink(I)) throw new v.ErrnoError(28);
                        var M = v.createNode(d, E, I);
                        return M.node_ops = lt.node_ops, M.stream_ops = lt.stream_ops, M
                    }, getMode: function (d) {
                        var E;
                        try {
                            E = Me.lstatSync(d), lt.isWindows && (E.mode = E.mode | (E.mode & 292) >> 2)
                        } catch (I) {
                            throw I.code ? new v.ErrnoError(lt.convertNodeCode(I)) : I
                        }
                        return E.mode
                    }, realPath: function (d) {
                        for (var E = []; d.parent !== d;) E.push(d.name), d = d.parent;
                        return E.push(d.mount.opts.root), E.reverse(), vt.join.apply(null, E)
                    }, flagsForNode: function (d) {
                        d &= ~2097152, d &= ~2048, d &= ~32768, d &= ~524288;
                        var E = 0;
                        for (var I in lt.flagsForNodeMap) d & I && (E |= lt.flagsForNodeMap[I], d ^= I);
                        if (d) throw new v.ErrnoError(28);
                        return E
                    }, node_ops: {
                        getattr: function (d) {
                            var E = lt.realPath(d), I;
                            try {
                                I = Me.lstatSync(E)
                            } catch (D) {
                                throw D.code ? new v.ErrnoError(lt.convertNodeCode(D)) : D
                            }
                            return lt.isWindows && !I.blksize && (I.blksize = 4096), lt.isWindows && !I.blocks && (I.blocks = (I.size + I.blksize - 1) / I.blksize | 0), {
                                dev: I.dev,
                                ino: I.ino,
                                mode: I.mode,
                                nlink: I.nlink,
                                uid: I.uid,
                                gid: I.gid,
                                rdev: I.rdev,
                                size: I.size,
                                atime: I.atime,
                                mtime: I.mtime,
                                ctime: I.ctime,
                                blksize: I.blksize,
                                blocks: I.blocks
                            }
                        }, setattr: function (d, E) {
                            var I = lt.realPath(d);
                            try {
                                if (E.mode !== void 0 && (Me.chmodSync(I, E.mode), d.mode = E.mode), E.timestamp !== void 0) {
                                    var D = new Date(E.timestamp);
                                    Me.utimesSync(I, D, D)
                                }
                                E.size !== void 0 && Me.truncateSync(I, E.size)
                            } catch (M) {
                                throw M.code ? new v.ErrnoError(lt.convertNodeCode(M)) : M
                            }
                        }, lookup: function (d, E) {
                            var I = vt.join2(lt.realPath(d), E), D = lt.getMode(I);
                            return lt.createNode(d, E, D)
                        }, mknod: function (d, E, I, D) {
                            var M = lt.createNode(d, E, I, D), _ = lt.realPath(M);
                            try {
                                v.isDir(M.mode) ? Me.mkdirSync(_, M.mode) : Me.writeFileSync(_, "", {mode: M.mode})
                            } catch (ne) {
                                throw ne.code ? new v.ErrnoError(lt.convertNodeCode(ne)) : ne
                            }
                            return M
                        }, rename: function (d, E, I) {
                            var D = lt.realPath(d), M = vt.join2(lt.realPath(E), I);
                            try {
                                Me.renameSync(D, M)
                            } catch (_) {
                                throw _.code ? new v.ErrnoError(lt.convertNodeCode(_)) : _
                            }
                            d.name = I
                        }, unlink: function (d, E) {
                            var I = vt.join2(lt.realPath(d), E);
                            try {
                                Me.unlinkSync(I)
                            } catch (D) {
                                throw D.code ? new v.ErrnoError(lt.convertNodeCode(D)) : D
                            }
                        }, rmdir: function (d, E) {
                            var I = vt.join2(lt.realPath(d), E);
                            try {
                                Me.rmdirSync(I)
                            } catch (D) {
                                throw D.code ? new v.ErrnoError(lt.convertNodeCode(D)) : D
                            }
                        }, readdir: function (d) {
                            var E = lt.realPath(d);
                            try {
                                return Me.readdirSync(E)
                            } catch (I) {
                                throw I.code ? new v.ErrnoError(lt.convertNodeCode(I)) : I
                            }
                        }, symlink: function (d, E, I) {
                            var D = vt.join2(lt.realPath(d), E);
                            try {
                                Me.symlinkSync(I, D)
                            } catch (M) {
                                throw M.code ? new v.ErrnoError(lt.convertNodeCode(M)) : M
                            }
                        }, readlink: function (d) {
                            var E = lt.realPath(d);
                            try {
                                return E = Me.readlinkSync(E), E = Ku.relative(Ku.resolve(d.mount.opts.root), E), E
                            } catch (I) {
                                throw I.code ? new v.ErrnoError(lt.convertNodeCode(I)) : I
                            }
                        }
                    }, stream_ops: {
                        open: function (d) {
                            var E = lt.realPath(d.node);
                            try {
                                v.isFile(d.node.mode) && (d.nfd = Me.openSync(E, lt.flagsForNode(d.flags)))
                            } catch (I) {
                                throw I.code ? new v.ErrnoError(lt.convertNodeCode(I)) : I
                            }
                        }, close: function (d) {
                            try {
                                v.isFile(d.node.mode) && d.nfd && Me.closeSync(d.nfd)
                            } catch (E) {
                                throw E.code ? new v.ErrnoError(lt.convertNodeCode(E)) : E
                            }
                        }, read: function (d, E, I, D, M) {
                            if (D === 0) return 0;
                            try {
                                return Me.readSync(d.nfd, lt.bufferFrom(E.buffer), I, D, M)
                            } catch (_) {
                                throw new v.ErrnoError(lt.convertNodeCode(_))
                            }
                        }, write: function (d, E, I, D, M) {
                            try {
                                return Me.writeSync(d.nfd, lt.bufferFrom(E.buffer), I, D, M)
                            } catch (_) {
                                throw new v.ErrnoError(lt.convertNodeCode(_))
                            }
                        }, llseek: function (d, E, I) {
                            var D = E;
                            if (I === 1) D += d.position; else if (I === 2 && v.isFile(d.node.mode)) try {
                                var M = Me.fstatSync(d.nfd);
                                D += M.size
                            } catch (_) {
                                throw new v.ErrnoError(lt.convertNodeCode(_))
                            }
                            if (D < 0) throw new v.ErrnoError(28);
                            return D
                        }, mmap: function (d, E, I, D, M, _) {
                            if (E !== 0) throw new v.ErrnoError(28);
                            if (!v.isFile(d.node.mode)) throw new v.ErrnoError(43);
                            var ne = ps(I);
                            return lt.stream_ops.read(d, de, ne, I, D), {ptr: ne, allocated: !0}
                        }, msync: function (d, E, I, D, M) {
                            if (!v.isFile(d.node.mode)) throw new v.ErrnoError(43);
                            if (M & 2) return 0;
                            var _ = lt.stream_ops.write(d, E, 0, D, I, !1);
                            return 0
                        }
                    }
                }, mn = {
                    lookupPath: function (d) {
                        return {path: d, node: {mode: lt.getMode(d)}}
                    }, createStandardStreams: function () {
                        v.streams[0] = {fd: 0, nfd: 0, position: 0, path: "", flags: 0, tty: !0, seekable: !1};
                        for (var d = 1; d < 3; d++) v.streams[d] = {
                            fd: d,
                            nfd: d,
                            position: 0,
                            path: "",
                            flags: 577,
                            tty: !0,
                            seekable: !1
                        }
                    }, cwd: function () {
                        return process.cwd()
                    }, chdir: function () {
                        process.chdir.apply(void 0, arguments)
                    }, mknod: function (d, E) {
                        v.isDir(d) ? Me.mkdirSync(d, E) : Me.writeFileSync(d, "", {mode: E})
                    }, mkdir: function () {
                        Me.mkdirSync.apply(void 0, arguments)
                    }, symlink: function () {
                        Me.symlinkSync.apply(void 0, arguments)
                    }, rename: function () {
                        Me.renameSync.apply(void 0, arguments)
                    }, rmdir: function () {
                        Me.rmdirSync.apply(void 0, arguments)
                    }, readdir: function () {
                        Me.readdirSync.apply(void 0, arguments)
                    }, unlink: function () {
                        Me.unlinkSync.apply(void 0, arguments)
                    }, readlink: function () {
                        return Me.readlinkSync.apply(void 0, arguments)
                    }, stat: function () {
                        return Me.statSync.apply(void 0, arguments)
                    }, lstat: function () {
                        return Me.lstatSync.apply(void 0, arguments)
                    }, chmod: function () {
                        Me.chmodSync.apply(void 0, arguments)
                    }, fchmod: function () {
                        Me.fchmodSync.apply(void 0, arguments)
                    }, chown: function () {
                        Me.chownSync.apply(void 0, arguments)
                    }, fchown: function () {
                        Me.fchownSync.apply(void 0, arguments)
                    }, truncate: function () {
                        Me.truncateSync.apply(void 0, arguments)
                    }, ftruncate: function (d, E) {
                        if (E < 0) throw new v.ErrnoError(28);
                        Me.ftruncateSync.apply(void 0, arguments)
                    }, utime: function () {
                        Me.utimesSync.apply(void 0, arguments)
                    }, open: function (d, E, I, D) {
                        typeof E == "string" && (E = Zs.modeStringToFlags(E));
                        var M = Me.openSync(d, lt.flagsForNode(E), I), _ = D != null ? D : v.nextfd(M),
                            ne = {fd: _, nfd: M, position: 0, path: d, flags: E, seekable: !0};
                        return v.streams[_] = ne, ne
                    }, close: function (d) {
                        d.stream_ops || Me.closeSync(d.nfd), v.closeStream(d.fd)
                    }, llseek: function (d, E, I) {
                        if (d.stream_ops) return Zs.llseek(d, E, I);
                        var D = E;
                        if (I === 1) D += d.position; else if (I === 2) D += Me.fstatSync(d.nfd).size; else if (I !== 0) throw new v.ErrnoError(xo.EINVAL);
                        if (D < 0) throw new v.ErrnoError(xo.EINVAL);
                        return d.position = D, D
                    }, read: function (d, E, I, D, M) {
                        if (d.stream_ops) return Zs.read(d, E, I, D, M);
                        var _ = typeof M != "undefined";
                        !_ && d.seekable && (M = d.position);
                        var ne = Me.readSync(d.nfd, lt.bufferFrom(E.buffer), I, D, M);
                        return _ || (d.position += ne), ne
                    }, write: function (d, E, I, D, M) {
                        if (d.stream_ops) return Zs.write(d, E, I, D, M);
                        d.flags & +"1024" && v.llseek(d, 0, +"2");
                        var _ = typeof M != "undefined";
                        !_ && d.seekable && (M = d.position);
                        var ne = Me.writeSync(d.nfd, lt.bufferFrom(E.buffer), I, D, M);
                        return _ || (d.position += ne), ne
                    }, allocate: function () {
                        throw new v.ErrnoError(xo.EOPNOTSUPP)
                    }, mmap: function (d, E, I, D, M, _) {
                        if (d.stream_ops) return Zs.mmap(d, E, I, D, M, _);
                        if (E !== 0) throw new v.ErrnoError(28);
                        var ne = ps(I);
                        return v.read(d, de, ne, I, D), {ptr: ne, allocated: !0}
                    }, msync: function (d, E, I, D, M) {
                        return d.stream_ops ? Zs.msync(d, E, I, D, M) : (M & 2 || v.write(d, E, 0, D, I), 0)
                    }, munmap: function () {
                        return 0
                    }, ioctl: function () {
                        throw new v.ErrnoError(xo.ENOTTY)
                    }
                }, v = {
                    root: null,
                    mounts: [],
                    devices: {},
                    streams: [],
                    nextInode: 1,
                    nameTable: null,
                    currentPath: "/",
                    initialized: !1,
                    ignorePermissions: !0,
                    trackingDelegate: {},
                    tracking: {openFlags: {READ: 1, WRITE: 2}},
                    ErrnoError: null,
                    genericErrors: {},
                    filesystems: null,
                    syncFSRequests: 0,
                    lookupPath: function (d, E) {
                        if (d = Yn.resolve(v.cwd(), d), E = E || {}, !d) return {path: "", node: null};
                        var I = {follow_mount: !0, recurse_count: 0};
                        for (var D in I) E[D] === void 0 && (E[D] = I[D]);
                        if (E.recurse_count > 8) throw new v.ErrnoError(32);
                        for (var M = vt.normalizeArray(d.split("/").filter(function (ut) {
                            return !!ut
                        }), !1), _ = v.root, ne = "/", Be = 0; Be < M.length; Be++) {
                            var Ee = Be === M.length - 1;
                            if (Ee && E.parent) break;
                            if (_ = v.lookupNode(_, M[Be]), ne = vt.join2(ne, M[Be]), v.isMountpoint(_) && (!Ee || Ee && E.follow_mount) && (_ = _.mounted.root), !Ee || E.follow) for (var _e = 0; v.isLink(_.mode);) {
                                var ot = v.readlink(ne);
                                ne = Yn.resolve(vt.dirname(ne), ot);
                                var wt = v.lookupPath(ne, {recurse_count: E.recurse_count});
                                if (_ = wt.node, _e++ > 40) throw new v.ErrnoError(32)
                            }
                        }
                        return {path: ne, node: _}
                    },
                    getPath: function (d) {
                        for (var E; ;) {
                            if (v.isRoot(d)) {
                                var I = d.mount.mountpoint;
                                return E ? I[I.length - 1] !== "/" ? I + "/" + E : I + E : I
                            }
                            E = E ? d.name + "/" + E : d.name, d = d.parent
                        }
                    },
                    hashName: function (d, E) {
                        for (var I = 0, D = 0; D < E.length; D++) I = (I << 5) - I + E.charCodeAt(D) | 0;
                        return (d + I >>> 0) % v.nameTable.length
                    },
                    hashAddNode: function (d) {
                        var E = v.hashName(d.parent.id, d.name);
                        d.name_next = v.nameTable[E], v.nameTable[E] = d
                    },
                    hashRemoveNode: function (d) {
                        var E = v.hashName(d.parent.id, d.name);
                        if (v.nameTable[E] === d) v.nameTable[E] = d.name_next; else for (var I = v.nameTable[E]; I;) {
                            if (I.name_next === d) {
                                I.name_next = d.name_next;
                                break
                            }
                            I = I.name_next
                        }
                    },
                    lookupNode: function (d, E) {
                        var I = v.mayLookup(d);
                        if (I) throw new v.ErrnoError(I, d);
                        for (var D = v.hashName(d.id, E), M = v.nameTable[D]; M; M = M.name_next) {
                            var _ = M.name;
                            if (M.parent.id === d.id && _ === E) return M
                        }
                        return v.lookup(d, E)
                    },
                    createNode: function (d, E, I, D) {
                        var M = new v.FSNode(d, E, I, D);
                        return v.hashAddNode(M), M
                    },
                    destroyNode: function (d) {
                        v.hashRemoveNode(d)
                    },
                    isRoot: function (d) {
                        return d === d.parent
                    },
                    isMountpoint: function (d) {
                        return !!d.mounted
                    },
                    isFile: function (d) {
                        return (d & 61440) == 32768
                    },
                    isDir: function (d) {
                        return (d & 61440) == 16384
                    },
                    isLink: function (d) {
                        return (d & 61440) == 40960
                    },
                    isChrdev: function (d) {
                        return (d & 61440) == 8192
                    },
                    isBlkdev: function (d) {
                        return (d & 61440) == 24576
                    },
                    isFIFO: function (d) {
                        return (d & 61440) == 4096
                    },
                    isSocket: function (d) {
                        return (d & 49152) == 49152
                    },
                    flagModes: {r: 0, "r+": 2, w: 577, "w+": 578, a: 1089, "a+": 1090},
                    modeStringToFlags: function (d) {
                        var E = v.flagModes[d];
                        if (typeof E == "undefined") throw new Error("Unknown file open mode: " + d);
                        return E
                    },
                    flagsToPermissionString: function (d) {
                        var E = ["r", "w", "rw"][d & 3];
                        return d & 512 && (E += "w"), E
                    },
                    nodePermissions: function (d, E) {
                        return v.ignorePermissions ? 0 : E.includes("r") && !(d.mode & 292) || E.includes("w") && !(d.mode & 146) || E.includes("x") && !(d.mode & 73) ? 2 : 0
                    },
                    mayLookup: function (d) {
                        var E = v.nodePermissions(d, "x");
                        return E || (d.node_ops.lookup ? 0 : 2)
                    },
                    mayCreate: function (d, E) {
                        try {
                            var I = v.lookupNode(d, E);
                            return 20
                        } catch (D) {
                        }
                        return v.nodePermissions(d, "wx")
                    },
                    mayDelete: function (d, E, I) {
                        var D;
                        try {
                            D = v.lookupNode(d, E)
                        } catch (_) {
                            return _.errno
                        }
                        var M = v.nodePermissions(d, "wx");
                        if (M) return M;
                        if (I) {
                            if (!v.isDir(D.mode)) return 54;
                            if (v.isRoot(D) || v.getPath(D) === v.cwd()) return 10
                        } else if (v.isDir(D.mode)) return 31;
                        return 0
                    },
                    mayOpen: function (d, E) {
                        return d ? v.isLink(d.mode) ? 32 : v.isDir(d.mode) && (v.flagsToPermissionString(E) !== "r" || E & 512) ? 31 : v.nodePermissions(d, v.flagsToPermissionString(E)) : 44
                    },
                    MAX_OPEN_FDS: 4096,
                    nextfd: function (d, E) {
                        d = d || 0, E = E || v.MAX_OPEN_FDS;
                        for (var I = d; I <= E; I++) if (!v.streams[I]) return I;
                        throw new v.ErrnoError(33)
                    },
                    getStream: function (d) {
                        return v.streams[d]
                    },
                    createStream: function (d, E, I) {
                        v.FSStream || (v.FSStream = function () {
                        }, v.FSStream.prototype = {
                            object: {
                                get: function () {
                                    return this.node
                                }, set: function (ne) {
                                    this.node = ne
                                }
                            }, isRead: {
                                get: function () {
                                    return (this.flags & 2097155) != 1
                                }
                            }, isWrite: {
                                get: function () {
                                    return (this.flags & 2097155) != 0
                                }
                            }, isAppend: {
                                get: function () {
                                    return this.flags & 1024
                                }
                            }
                        });
                        var D = new v.FSStream;
                        for (var M in d) D[M] = d[M];
                        d = D;
                        var _ = v.nextfd(E, I);
                        return d.fd = _, v.streams[_] = d, d
                    },
                    closeStream: function (d) {
                        v.streams[d] = null
                    },
                    chrdev_stream_ops: {
                        open: function (d) {
                            var E = v.getDevice(d.node.rdev);
                            d.stream_ops = E.stream_ops, d.stream_ops.open && d.stream_ops.open(d)
                        }, llseek: function () {
                            throw new v.ErrnoError(70)
                        }
                    },
                    major: function (d) {
                        return d >> 8
                    },
                    minor: function (d) {
                        return d & 255
                    },
                    makedev: function (d, E) {
                        return d << 8 | E
                    },
                    registerDevice: function (d, E) {
                        v.devices[d] = {stream_ops: E}
                    },
                    getDevice: function (d) {
                        return v.devices[d]
                    },
                    getMounts: function (d) {
                        for (var E = [], I = [d]; I.length;) {
                            var D = I.pop();
                            E.push(D), I.push.apply(I, D.mounts)
                        }
                        return E
                    },
                    syncfs: function (d, E) {
                        typeof d == "function" && (E = d, d = !1), v.syncFSRequests++, v.syncFSRequests > 1 && k("warning: " + v.syncFSRequests + " FS.syncfs operations in flight at once, probably just doing extra work");
                        var I = v.getMounts(v.root.mount), D = 0;

                        function M(ne) {
                            return v.syncFSRequests--, E(ne)
                        }

                        function _(ne) {
                            if (ne) return _.errored ? void 0 : (_.errored = !0, M(ne));
                            ++D >= I.length && M(null)
                        }

                        I.forEach(function (ne) {
                            if (!ne.type.syncfs) return _(null);
                            ne.type.syncfs(ne, d, _)
                        })
                    },
                    mount: function (d, E, I) {
                        var D = I === "/", M = !I, _;
                        if (D && v.root) throw new v.ErrnoError(10);
                        if (!D && !M) {
                            var ne = v.lookupPath(I, {follow_mount: !1});
                            if (I = ne.path, _ = ne.node, v.isMountpoint(_)) throw new v.ErrnoError(10);
                            if (!v.isDir(_.mode)) throw new v.ErrnoError(54)
                        }
                        var Be = {type: d, opts: E, mountpoint: I, mounts: []}, Ee = d.mount(Be);
                        return Ee.mount = Be, Be.root = Ee, D ? v.root = Ee : _ && (_.mounted = Be, _.mount && _.mount.mounts.push(Be)), Ee
                    },
                    unmount: function (d) {
                        var E = v.lookupPath(d, {follow_mount: !1});
                        if (!v.isMountpoint(E.node)) throw new v.ErrnoError(28);
                        var I = E.node, D = I.mounted, M = v.getMounts(D);
                        Object.keys(v.nameTable).forEach(function (ne) {
                            for (var Be = v.nameTable[ne]; Be;) {
                                var Ee = Be.name_next;
                                M.includes(Be.mount) && v.destroyNode(Be), Be = Ee
                            }
                        }), I.mounted = null;
                        var _ = I.mount.mounts.indexOf(D);
                        I.mount.mounts.splice(_, 1)
                    },
                    lookup: function (d, E) {
                        return d.node_ops.lookup(d, E)
                    },
                    mknod: function (d, E, I) {
                        var D = v.lookupPath(d, {parent: !0}), M = D.node, _ = vt.basename(d);
                        if (!_ || _ === "." || _ === "..") throw new v.ErrnoError(28);
                        var ne = v.mayCreate(M, _);
                        if (ne) throw new v.ErrnoError(ne);
                        if (!M.node_ops.mknod) throw new v.ErrnoError(63);
                        return M.node_ops.mknod(M, _, E, I)
                    },
                    create: function (d, E) {
                        return E = E !== void 0 ? E : 438, E &= 4095, E |= 32768, v.mknod(d, E, 0)
                    },
                    mkdir: function (d, E) {
                        return E = E !== void 0 ? E : 511, E &= 511 | 512, E |= 16384, v.mknod(d, E, 0)
                    },
                    mkdirTree: function (d, E) {
                        for (var I = d.split("/"), D = "", M = 0; M < I.length; ++M) if (!!I[M]) {
                            D += "/" + I[M];
                            try {
                                v.mkdir(D, E)
                            } catch (_) {
                                if (_.errno != 20) throw _
                            }
                        }
                    },
                    mkdev: function (d, E, I) {
                        return typeof I == "undefined" && (I = E, E = 438), E |= 8192, v.mknod(d, E, I)
                    },
                    symlink: function (d, E) {
                        if (!Yn.resolve(d)) throw new v.ErrnoError(44);
                        var I = v.lookupPath(E, {parent: !0}), D = I.node;
                        if (!D) throw new v.ErrnoError(44);
                        var M = vt.basename(E), _ = v.mayCreate(D, M);
                        if (_) throw new v.ErrnoError(_);
                        if (!D.node_ops.symlink) throw new v.ErrnoError(63);
                        return D.node_ops.symlink(D, M, d)
                    },
                    rename: function (d, E) {
                        var I = vt.dirname(d), D = vt.dirname(E), M = vt.basename(d), _ = vt.basename(E), ne, Be, Ee;
                        if (ne = v.lookupPath(d, {parent: !0}), Be = ne.node, ne = v.lookupPath(E, {parent: !0}), Ee = ne.node, !Be || !Ee) throw new v.ErrnoError(44);
                        if (Be.mount !== Ee.mount) throw new v.ErrnoError(75);
                        var _e = v.lookupNode(Be, M), ot = Yn.relative(d, D);
                        if (ot.charAt(0) !== ".") throw new v.ErrnoError(28);
                        if (ot = Yn.relative(E, I), ot.charAt(0) !== ".") throw new v.ErrnoError(55);
                        var wt;
                        try {
                            wt = v.lookupNode(Ee, _)
                        } catch (It) {
                        }
                        if (_e !== wt) {
                            var ut = v.isDir(_e.mode), nt = v.mayDelete(Be, M, ut);
                            if (nt) throw new v.ErrnoError(nt);
                            if (nt = wt ? v.mayDelete(Ee, _, ut) : v.mayCreate(Ee, _), nt) throw new v.ErrnoError(nt);
                            if (!Be.node_ops.rename) throw new v.ErrnoError(63);
                            if (v.isMountpoint(_e) || wt && v.isMountpoint(wt)) throw new v.ErrnoError(10);
                            if (Ee !== Be && (nt = v.nodePermissions(Be, "w"), nt)) throw new v.ErrnoError(nt);
                            try {
                                v.trackingDelegate.willMovePath && v.trackingDelegate.willMovePath(d, E)
                            } catch (It) {
                                k("FS.trackingDelegate['willMovePath']('" + d + "', '" + E + "') threw an exception: " + It.message)
                            }
                            v.hashRemoveNode(_e);
                            try {
                                Be.node_ops.rename(_e, Ee, _)
                            } catch (It) {
                                throw It
                            } finally {
                                v.hashAddNode(_e)
                            }
                            try {
                                v.trackingDelegate.onMovePath && v.trackingDelegate.onMovePath(d, E)
                            } catch (It) {
                                k("FS.trackingDelegate['onMovePath']('" + d + "', '" + E + "') threw an exception: " + It.message)
                            }
                        }
                    },
                    rmdir: function (d) {
                        var E = v.lookupPath(d, {parent: !0}), I = E.node, D = vt.basename(d), M = v.lookupNode(I, D),
                            _ = v.mayDelete(I, D, !0);
                        if (_) throw new v.ErrnoError(_);
                        if (!I.node_ops.rmdir) throw new v.ErrnoError(63);
                        if (v.isMountpoint(M)) throw new v.ErrnoError(10);
                        try {
                            v.trackingDelegate.willDeletePath && v.trackingDelegate.willDeletePath(d)
                        } catch (ne) {
                            k("FS.trackingDelegate['willDeletePath']('" + d + "') threw an exception: " + ne.message)
                        }
                        I.node_ops.rmdir(I, D), v.destroyNode(M);
                        try {
                            v.trackingDelegate.onDeletePath && v.trackingDelegate.onDeletePath(d)
                        } catch (ne) {
                            k("FS.trackingDelegate['onDeletePath']('" + d + "') threw an exception: " + ne.message)
                        }
                    },
                    readdir: function (d) {
                        var E = v.lookupPath(d, {follow: !0}), I = E.node;
                        if (!I.node_ops.readdir) throw new v.ErrnoError(54);
                        return I.node_ops.readdir(I)
                    },
                    unlink: function (d) {
                        var E = v.lookupPath(d, {parent: !0}), I = E.node, D = vt.basename(d), M = v.lookupNode(I, D),
                            _ = v.mayDelete(I, D, !1);
                        if (_) throw new v.ErrnoError(_);
                        if (!I.node_ops.unlink) throw new v.ErrnoError(63);
                        if (v.isMountpoint(M)) throw new v.ErrnoError(10);
                        try {
                            v.trackingDelegate.willDeletePath && v.trackingDelegate.willDeletePath(d)
                        } catch (ne) {
                            k("FS.trackingDelegate['willDeletePath']('" + d + "') threw an exception: " + ne.message)
                        }
                        I.node_ops.unlink(I, D), v.destroyNode(M);
                        try {
                            v.trackingDelegate.onDeletePath && v.trackingDelegate.onDeletePath(d)
                        } catch (ne) {
                            k("FS.trackingDelegate['onDeletePath']('" + d + "') threw an exception: " + ne.message)
                        }
                    },
                    readlink: function (d) {
                        var E = v.lookupPath(d), I = E.node;
                        if (!I) throw new v.ErrnoError(44);
                        if (!I.node_ops.readlink) throw new v.ErrnoError(28);
                        return Yn.resolve(v.getPath(I.parent), I.node_ops.readlink(I))
                    },
                    stat: function (d, E) {
                        var I = v.lookupPath(d, {follow: !E}), D = I.node;
                        if (!D) throw new v.ErrnoError(44);
                        if (!D.node_ops.getattr) throw new v.ErrnoError(63);
                        return D.node_ops.getattr(D)
                    },
                    lstat: function (d) {
                        return v.stat(d, !0)
                    },
                    chmod: function (d, E, I) {
                        var D;
                        if (typeof d == "string") {
                            var M = v.lookupPath(d, {follow: !I});
                            D = M.node
                        } else D = d;
                        if (!D.node_ops.setattr) throw new v.ErrnoError(63);
                        D.node_ops.setattr(D, {mode: E & 4095 | D.mode & ~4095, timestamp: Date.now()})
                    },
                    lchmod: function (d, E) {
                        v.chmod(d, E, !0)
                    },
                    fchmod: function (d, E) {
                        var I = v.getStream(d);
                        if (!I) throw new v.ErrnoError(8);
                        v.chmod(I.node, E)
                    },
                    chown: function (d, E, I, D) {
                        var M;
                        if (typeof d == "string") {
                            var _ = v.lookupPath(d, {follow: !D});
                            M = _.node
                        } else M = d;
                        if (!M.node_ops.setattr) throw new v.ErrnoError(63);
                        M.node_ops.setattr(M, {timestamp: Date.now()})
                    },
                    lchown: function (d, E, I) {
                        v.chown(d, E, I, !0)
                    },
                    fchown: function (d, E, I) {
                        var D = v.getStream(d);
                        if (!D) throw new v.ErrnoError(8);
                        v.chown(D.node, E, I)
                    },
                    truncate: function (d, E) {
                        if (E < 0) throw new v.ErrnoError(28);
                        var I;
                        if (typeof d == "string") {
                            var D = v.lookupPath(d, {follow: !0});
                            I = D.node
                        } else I = d;
                        if (!I.node_ops.setattr) throw new v.ErrnoError(63);
                        if (v.isDir(I.mode)) throw new v.ErrnoError(31);
                        if (!v.isFile(I.mode)) throw new v.ErrnoError(28);
                        var M = v.nodePermissions(I, "w");
                        if (M) throw new v.ErrnoError(M);
                        I.node_ops.setattr(I, {size: E, timestamp: Date.now()})
                    },
                    ftruncate: function (d, E) {
                        var I = v.getStream(d);
                        if (!I) throw new v.ErrnoError(8);
                        if ((I.flags & 2097155) == 0) throw new v.ErrnoError(28);
                        v.truncate(I.node, E)
                    },
                    utime: function (d, E, I) {
                        var D = v.lookupPath(d, {follow: !0}), M = D.node;
                        M.node_ops.setattr(M, {timestamp: Math.max(E, I)})
                    },
                    open: function (d, E, I, D, M) {
                        if (d === "") throw new v.ErrnoError(44);
                        E = typeof E == "string" ? v.modeStringToFlags(E) : E, I = typeof I == "undefined" ? 438 : I, E & 64 ? I = I & 4095 | 32768 : I = 0;
                        var _;
                        if (typeof d == "object") _ = d; else {
                            d = vt.normalize(d);
                            try {
                                var ne = v.lookupPath(d, {follow: !(E & 131072)});
                                _ = ne.node
                            } catch (wt) {
                            }
                        }
                        var Be = !1;
                        if (E & 64) if (_) {
                            if (E & 128) throw new v.ErrnoError(20)
                        } else _ = v.mknod(d, I, 0), Be = !0;
                        if (!_) throw new v.ErrnoError(44);
                        if (v.isChrdev(_.mode) && (E &= ~512), E & 65536 && !v.isDir(_.mode)) throw new v.ErrnoError(54);
                        if (!Be) {
                            var Ee = v.mayOpen(_, E);
                            if (Ee) throw new v.ErrnoError(Ee)
                        }
                        E & 512 && v.truncate(_, 0), E &= ~(128 | 512 | 131072);
                        var _e = v.createStream({
                            node: _,
                            path: v.getPath(_),
                            flags: E,
                            seekable: !0,
                            position: 0,
                            stream_ops: _.stream_ops,
                            ungotten: [],
                            error: !1
                        }, D, M);
                        _e.stream_ops.open && _e.stream_ops.open(_e), r.logReadFiles && !(E & 1) && (v.readFiles || (v.readFiles = {}), d in v.readFiles || (v.readFiles[d] = 1, k("FS.trackingDelegate error on read file: " + d)));
                        try {
                            if (v.trackingDelegate.onOpenFile) {
                                var ot = 0;
                                (E & 2097155) != 1 && (ot |= v.tracking.openFlags.READ), (E & 2097155) != 0 && (ot |= v.tracking.openFlags.WRITE), v.trackingDelegate.onOpenFile(d, ot)
                            }
                        } catch (wt) {
                            k("FS.trackingDelegate['onOpenFile']('" + d + "', flags) threw an exception: " + wt.message)
                        }
                        return _e
                    },
                    close: function (d) {
                        if (v.isClosed(d)) throw new v.ErrnoError(8);
                        d.getdents && (d.getdents = null);
                        try {
                            d.stream_ops.close && d.stream_ops.close(d)
                        } catch (E) {
                            throw E
                        } finally {
                            v.closeStream(d.fd)
                        }
                        d.fd = null
                    },
                    isClosed: function (d) {
                        return d.fd === null
                    },
                    llseek: function (d, E, I) {
                        if (v.isClosed(d)) throw new v.ErrnoError(8);
                        if (!d.seekable || !d.stream_ops.llseek) throw new v.ErrnoError(70);
                        if (I != 0 && I != 1 && I != 2) throw new v.ErrnoError(28);
                        return d.position = d.stream_ops.llseek(d, E, I), d.ungotten = [], d.position
                    },
                    read: function (d, E, I, D, M) {
                        if (D < 0 || M < 0) throw new v.ErrnoError(28);
                        if (v.isClosed(d)) throw new v.ErrnoError(8);
                        if ((d.flags & 2097155) == 1) throw new v.ErrnoError(8);
                        if (v.isDir(d.node.mode)) throw new v.ErrnoError(31);
                        if (!d.stream_ops.read) throw new v.ErrnoError(28);
                        var _ = typeof M != "undefined";
                        if (!_) M = d.position; else if (!d.seekable) throw new v.ErrnoError(70);
                        var ne = d.stream_ops.read(d, E, I, D, M);
                        return _ || (d.position += ne), ne
                    },
                    write: function (d, E, I, D, M, _) {
                        if (D < 0 || M < 0) throw new v.ErrnoError(28);
                        if (v.isClosed(d)) throw new v.ErrnoError(8);
                        if ((d.flags & 2097155) == 0) throw new v.ErrnoError(8);
                        if (v.isDir(d.node.mode)) throw new v.ErrnoError(31);
                        if (!d.stream_ops.write) throw new v.ErrnoError(28);
                        d.seekable && d.flags & 1024 && v.llseek(d, 0, 2);
                        var ne = typeof M != "undefined";
                        if (!ne) M = d.position; else if (!d.seekable) throw new v.ErrnoError(70);
                        var Be = d.stream_ops.write(d, E, I, D, M, _);
                        ne || (d.position += Be);
                        try {
                            d.path && v.trackingDelegate.onWriteToFile && v.trackingDelegate.onWriteToFile(d.path)
                        } catch (Ee) {
                            k("FS.trackingDelegate['onWriteToFile']('" + d.path + "') threw an exception: " + Ee.message)
                        }
                        return Be
                    },
                    allocate: function (d, E, I) {
                        if (v.isClosed(d)) throw new v.ErrnoError(8);
                        if (E < 0 || I <= 0) throw new v.ErrnoError(28);
                        if ((d.flags & 2097155) == 0) throw new v.ErrnoError(8);
                        if (!v.isFile(d.node.mode) && !v.isDir(d.node.mode)) throw new v.ErrnoError(43);
                        if (!d.stream_ops.allocate) throw new v.ErrnoError(138);
                        d.stream_ops.allocate(d, E, I)
                    },
                    mmap: function (d, E, I, D, M, _) {
                        if ((M & 2) != 0 && (_ & 2) == 0 && (d.flags & 2097155) != 2) throw new v.ErrnoError(2);
                        if ((d.flags & 2097155) == 1) throw new v.ErrnoError(2);
                        if (!d.stream_ops.mmap) throw new v.ErrnoError(43);
                        return d.stream_ops.mmap(d, E, I, D, M, _)
                    },
                    msync: function (d, E, I, D, M) {
                        return !d || !d.stream_ops.msync ? 0 : d.stream_ops.msync(d, E, I, D, M)
                    },
                    munmap: function (d) {
                        return 0
                    },
                    ioctl: function (d, E, I) {
                        if (!d.stream_ops.ioctl) throw new v.ErrnoError(59);
                        return d.stream_ops.ioctl(d, E, I)
                    },
                    readFile: function (d, E) {
                        if (E = E || {}, E.flags = E.flags || 0, E.encoding = E.encoding || "binary", E.encoding !== "utf8" && E.encoding !== "binary") throw new Error('Invalid encoding type "' + E.encoding + '"');
                        var I, D = v.open(d, E.flags), M = v.stat(d), _ = M.size, ne = new Uint8Array(_);
                        return v.read(D, ne, 0, _, 0), E.encoding === "utf8" ? I = Oe(ne, 0) : E.encoding === "binary" && (I = ne), v.close(D), I
                    },
                    writeFile: function (d, E, I) {
                        I = I || {}, I.flags = I.flags || 577;
                        var D = v.open(d, I.flags, I.mode);
                        if (typeof E == "string") {
                            var M = new Uint8Array(he(E) + 1), _ = se(E, M, 0, M.length);
                            v.write(D, M, 0, _, void 0, I.canOwn)
                        } else if (ArrayBuffer.isView(E)) v.write(D, E, 0, E.byteLength, void 0, I.canOwn); else throw new Error("Unsupported data type");
                        v.close(D)
                    },
                    cwd: function () {
                        return v.currentPath
                    },
                    chdir: function (d) {
                        var E = v.lookupPath(d, {follow: !0});
                        if (E.node === null) throw new v.ErrnoError(44);
                        if (!v.isDir(E.node.mode)) throw new v.ErrnoError(54);
                        var I = v.nodePermissions(E.node, "x");
                        if (I) throw new v.ErrnoError(I);
                        v.currentPath = E.path
                    },
                    createDefaultDirectories: function () {
                        v.mkdir("/tmp"), v.mkdir("/home"), v.mkdir("/home/web_user")
                    },
                    createDefaultDevices: function () {
                        v.mkdir("/dev"), v.registerDevice(v.makedev(1, 3), {
                            read: function () {
                                return 0
                            }, write: function (E, I, D, M, _) {
                                return M
                            }
                        }), v.mkdev("/dev/null", v.makedev(1, 3)), hs.register(v.makedev(5, 0), hs.default_tty_ops), hs.register(v.makedev(6, 0), hs.default_tty1_ops), v.mkdev("/dev/tty", v.makedev(5, 0)), v.mkdev("/dev/tty1", v.makedev(6, 0));
                        var d = Yl();
                        v.createDevice("/dev", "random", d), v.createDevice("/dev", "urandom", d), v.mkdir("/dev/shm"), v.mkdir("/dev/shm/tmp")
                    },
                    createSpecialDirectories: function () {
                        v.mkdir("/proc");
                        var d = v.mkdir("/proc/self");
                        v.mkdir("/proc/self/fd"), v.mount({
                            mount: function () {
                                var E = v.createNode(d, "fd", 16384 | 511, 73);
                                return E.node_ops = {
                                    lookup: function (I, D) {
                                        var M = +D, _ = v.getStream(M);
                                        if (!_) throw new v.ErrnoError(8);
                                        var ne = {
                                            parent: null,
                                            mount: {mountpoint: "fake"},
                                            node_ops: {
                                                readlink: function () {
                                                    return _.path
                                                }
                                            }
                                        };
                                        return ne.parent = ne, ne
                                    }
                                }, E
                            }
                        }, {}, "/proc/self/fd")
                    },
                    createStandardStreams: function () {
                        r.stdin ? v.createDevice("/dev", "stdin", r.stdin) : v.symlink("/dev/tty", "/dev/stdin"), r.stdout ? v.createDevice("/dev", "stdout", null, r.stdout) : v.symlink("/dev/tty", "/dev/stdout"), r.stderr ? v.createDevice("/dev", "stderr", null, r.stderr) : v.symlink("/dev/tty1", "/dev/stderr");
                        var d = v.open("/dev/stdin", 0), E = v.open("/dev/stdout", 1), I = v.open("/dev/stderr", 1)
                    },
                    ensureErrnoError: function () {
                        v.ErrnoError || (v.ErrnoError = function (E, I) {
                            this.node = I, this.setErrno = function (D) {
                                this.errno = D
                            }, this.setErrno(E), this.message = "FS error"
                        }, v.ErrnoError.prototype = new Error, v.ErrnoError.prototype.constructor = v.ErrnoError, [44].forEach(function (d) {
                            v.genericErrors[d] = new v.ErrnoError(d), v.genericErrors[d].stack = "<generic error, no stack>"
                        }))
                    },
                    staticInit: function () {
                        v.ensureErrnoError(), v.nameTable = new Array(4096), v.mount(pt, {}, "/"), v.createDefaultDirectories(), v.createDefaultDevices(), v.createSpecialDirectories(), v.filesystems = {
                            MEMFS: pt,
                            NODEFS: lt
                        }
                    },
                    init: function (d, E, I) {
                        v.init.initialized = !0, v.ensureErrnoError(), r.stdin = d || r.stdin, r.stdout = E || r.stdout, r.stderr = I || r.stderr, v.createStandardStreams()
                    },
                    quit: function () {
                        v.init.initialized = !1;
                        var d = r._fflush;
                        d && d(0);
                        for (var E = 0; E < v.streams.length; E++) {
                            var I = v.streams[E];
                            !I || v.close(I)
                        }
                    },
                    getMode: function (d, E) {
                        var I = 0;
                        return d && (I |= 292 | 73), E && (I |= 146), I
                    },
                    findObject: function (d, E) {
                        var I = v.analyzePath(d, E);
                        return I.exists ? I.object : null
                    },
                    analyzePath: function (d, E) {
                        try {
                            var I = v.lookupPath(d, {follow: !E});
                            d = I.path
                        } catch (M) {
                        }
                        var D = {
                            isRoot: !1,
                            exists: !1,
                            error: 0,
                            name: null,
                            path: null,
                            object: null,
                            parentExists: !1,
                            parentPath: null,
                            parentObject: null
                        };
                        try {
                            var I = v.lookupPath(d, {parent: !0});
                            D.parentExists = !0, D.parentPath = I.path, D.parentObject = I.node, D.name = vt.basename(d), I = v.lookupPath(d, {follow: !E}), D.exists = !0, D.path = I.path, D.object = I.node, D.name = I.node.name, D.isRoot = I.path === "/"
                        } catch (M) {
                            D.error = M.errno
                        }
                        return D
                    },
                    createPath: function (d, E, I, D) {
                        d = typeof d == "string" ? d : v.getPath(d);
                        for (var M = E.split("/").reverse(); M.length;) {
                            var _ = M.pop();
                            if (!!_) {
                                var ne = vt.join2(d, _);
                                try {
                                    v.mkdir(ne)
                                } catch (Be) {
                                }
                                d = ne
                            }
                        }
                        return ne
                    },
                    createFile: function (d, E, I, D, M) {
                        var _ = vt.join2(typeof d == "string" ? d : v.getPath(d), E), ne = v.getMode(D, M);
                        return v.create(_, ne)
                    },
                    createDataFile: function (d, E, I, D, M, _) {
                        var ne = E ? vt.join2(typeof d == "string" ? d : v.getPath(d), E) : d, Be = v.getMode(D, M),
                            Ee = v.create(ne, Be);
                        if (I) {
                            if (typeof I == "string") {
                                for (var _e = new Array(I.length), ot = 0, wt = I.length; ot < wt; ++ot) _e[ot] = I.charCodeAt(ot);
                                I = _e
                            }
                            v.chmod(Ee, Be | 146);
                            var ut = v.open(Ee, 577);
                            v.write(ut, I, 0, I.length, 0, _), v.close(ut), v.chmod(Ee, Be)
                        }
                        return Ee
                    },
                    createDevice: function (d, E, I, D) {
                        var M = vt.join2(typeof d == "string" ? d : v.getPath(d), E), _ = v.getMode(!!I, !!D);
                        v.createDevice.major || (v.createDevice.major = 64);
                        var ne = v.makedev(v.createDevice.major++, 0);
                        return v.registerDevice(ne, {
                            open: function (Be) {
                                Be.seekable = !1
                            }, close: function (Be) {
                                D && D.buffer && D.buffer.length && D(10)
                            }, read: function (Be, Ee, _e, ot, wt) {
                                for (var ut = 0, nt = 0; nt < ot; nt++) {
                                    var It;
                                    try {
                                        It = I()
                                    } catch (ke) {
                                        throw new v.ErrnoError(29)
                                    }
                                    if (It === void 0 && ut === 0) throw new v.ErrnoError(6);
                                    if (It == null) break;
                                    ut++, Ee[_e + nt] = It
                                }
                                return ut && (Be.node.timestamp = Date.now()), ut
                            }, write: function (Be, Ee, _e, ot, wt) {
                                for (var ut = 0; ut < ot; ut++) try {
                                    D(Ee[_e + ut])
                                } catch (nt) {
                                    throw new v.ErrnoError(29)
                                }
                                return ot && (Be.node.timestamp = Date.now()), ut
                            }
                        }), v.mkdev(M, _, ne)
                    },
                    forceLoadFile: function (d) {
                        if (d.isDevice || d.isFolder || d.link || d.contents) return !0;
                        if (typeof XMLHttpRequest != "undefined") throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
                        if (p) try {
                            d.contents = FA(p(d.url), !0), d.usedBytes = d.contents.length
                        } catch (E) {
                            throw new v.ErrnoError(29)
                        } else throw new Error("Cannot load without read() or XMLHttpRequest.")
                    },
                    createLazyFile: function (d, E, I, D, M) {
                        function _() {
                            this.lengthKnown = !1, this.chunks = []
                        }

                        if (_.prototype.get = function (ut) {
                            if (!(ut > this.length - 1 || ut < 0)) {
                                var nt = ut % this.chunkSize, It = ut / this.chunkSize | 0;
                                return this.getter(It)[nt]
                            }
                        }, _.prototype.setDataGetter = function (ut) {
                            this.getter = ut
                        }, _.prototype.cacheLength = function () {
                            var ut = new XMLHttpRequest;
                            if (ut.open("HEAD", I, !1), ut.send(null), !(ut.status >= 200 && ut.status < 300 || ut.status === 304)) throw new Error("Couldn't load " + I + ". Status: " + ut.status);
                            var nt = Number(ut.getResponseHeader("Content-length")), It,
                                ke = (It = ut.getResponseHeader("Accept-Ranges")) && It === "bytes",
                                Wn = (It = ut.getResponseHeader("Content-Encoding")) && It === "gzip", Mi = 1024 * 1024;
                            ke || (Mi = nt);
                            var MA = function (ds, Sa) {
                                if (ds > Sa) throw new Error("invalid range (" + ds + ", " + Sa + ") or no bytes requested!");
                                if (Sa > nt - 1) throw new Error("only " + nt + " bytes available! programmer error!");
                                var qr = new XMLHttpRequest;
                                if (qr.open("GET", I, !1), nt !== Mi && qr.setRequestHeader("Range", "bytes=" + ds + "-" + Sa), typeof Uint8Array != "undefined" && (qr.responseType = "arraybuffer"), qr.overrideMimeType && qr.overrideMimeType("text/plain; charset=x-user-defined"), qr.send(null), !(qr.status >= 200 && qr.status < 300 || qr.status === 304)) throw new Error("Couldn't load " + I + ". Status: " + qr.status);
                                return qr.response !== void 0 ? new Uint8Array(qr.response || []) : FA(qr.responseText || "", !0)
                            }, Yr = this;
                            Yr.setDataGetter(function (ds) {
                                var Sa = ds * Mi, qr = (ds + 1) * Mi - 1;
                                if (qr = Math.min(qr, nt - 1), typeof Yr.chunks[ds] == "undefined" && (Yr.chunks[ds] = MA(Sa, qr)), typeof Yr.chunks[ds] == "undefined") throw new Error("doXHR failed!");
                                return Yr.chunks[ds]
                            }), (Wn || !nt) && (Mi = nt = 1, nt = this.getter(0).length, Mi = nt, S("LazyFiles on gzip forces download of the whole file when length is accessed")), this._length = nt, this._chunkSize = Mi, this.lengthKnown = !0
                        }, typeof XMLHttpRequest != "undefined") {
                            if (!u) throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";
                            var ne = new _;
                            Object.defineProperties(ne, {
                                length: {
                                    get: function () {
                                        return this.lengthKnown || this.cacheLength(), this._length
                                    }
                                }, chunkSize: {
                                    get: function () {
                                        return this.lengthKnown || this.cacheLength(), this._chunkSize
                                    }
                                }
                            });
                            var Be = {isDevice: !1, contents: ne}
                        } else var Be = {isDevice: !1, url: I};
                        var Ee = v.createFile(d, E, Be, D, M);
                        Be.contents ? Ee.contents = Be.contents : Be.url && (Ee.contents = null, Ee.url = Be.url), Object.defineProperties(Ee, {
                            usedBytes: {
                                get: function () {
                                    return this.contents.length
                                }
                            }
                        });
                        var _e = {}, ot = Object.keys(Ee.stream_ops);
                        return ot.forEach(function (wt) {
                            var ut = Ee.stream_ops[wt];
                            _e[wt] = function () {
                                return v.forceLoadFile(Ee), ut.apply(null, arguments)
                            }
                        }), _e.read = function (ut, nt, It, ke, Wn) {
                            v.forceLoadFile(Ee);
                            var Mi = ut.node.contents;
                            if (Wn >= Mi.length) return 0;
                            var MA = Math.min(Mi.length - Wn, ke);
                            if (Mi.slice) for (var Yr = 0; Yr < MA; Yr++) nt[It + Yr] = Mi[Wn + Yr]; else for (var Yr = 0; Yr < MA; Yr++) nt[It + Yr] = Mi.get(Wn + Yr);
                            return MA
                        }, Ee.stream_ops = _e, Ee
                    },
                    createPreloadedFile: function (d, E, I, D, M, _, ne, Be, Ee, _e) {
                        Browser.init();
                        var ot = E ? Yn.resolve(vt.join2(d, E)) : d, wt = Fu("cp " + ot);

                        function ut(nt) {
                            function It(Wn) {
                                _e && _e(), Be || v.createDataFile(d, E, Wn, D, M, Ee), _ && _(), DA(wt)
                            }

                            var ke = !1;
                            r.preloadPlugins.forEach(function (Wn) {
                                ke || Wn.canHandle(ot) && (Wn.handle(nt, ot, It, function () {
                                    ne && ne(), DA(wt)
                                }), ke = !0)
                            }), ke || It(nt)
                        }

                        PA(wt), typeof I == "string" ? Browser.asyncLoad(I, function (nt) {
                            ut(nt)
                        }, ne) : ut(I)
                    },
                    indexedDB: function () {
                        return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB
                    },
                    DB_NAME: function () {
                        return "EM_FS_" + window.location.pathname
                    },
                    DB_VERSION: 20,
                    DB_STORE_NAME: "FILE_DATA",
                    saveFilesToDB: function (d, E, I) {
                        E = E || function () {
                        }, I = I || function () {
                        };
                        var D = v.indexedDB();
                        try {
                            var M = D.open(v.DB_NAME(), v.DB_VERSION)
                        } catch (_) {
                            return I(_)
                        }
                        M.onupgradeneeded = function () {
                            S("creating db");
                            var ne = M.result;
                            ne.createObjectStore(v.DB_STORE_NAME)
                        }, M.onsuccess = function () {
                            var ne = M.result, Be = ne.transaction([v.DB_STORE_NAME], "readwrite"),
                                Ee = Be.objectStore(v.DB_STORE_NAME), _e = 0, ot = 0, wt = d.length;

                            function ut() {
                                ot == 0 ? E() : I()
                            }

                            d.forEach(function (nt) {
                                var It = Ee.put(v.analyzePath(nt).object.contents, nt);
                                It.onsuccess = function () {
                                    _e++, _e + ot == wt && ut()
                                }, It.onerror = function () {
                                    ot++, _e + ot == wt && ut()
                                }
                            }), Be.onerror = I
                        }, M.onerror = I
                    },
                    loadFilesFromDB: function (d, E, I) {
                        E = E || function () {
                        }, I = I || function () {
                        };
                        var D = v.indexedDB();
                        try {
                            var M = D.open(v.DB_NAME(), v.DB_VERSION)
                        } catch (_) {
                            return I(_)
                        }
                        M.onupgradeneeded = I, M.onsuccess = function () {
                            var ne = M.result;
                            try {
                                var Be = ne.transaction([v.DB_STORE_NAME], "readonly")
                            } catch (nt) {
                                I(nt);
                                return
                            }
                            var Ee = Be.objectStore(v.DB_STORE_NAME), _e = 0, ot = 0, wt = d.length;

                            function ut() {
                                ot == 0 ? E() : I()
                            }

                            d.forEach(function (nt) {
                                var It = Ee.get(nt);
                                It.onsuccess = function () {
                                    v.analyzePath(nt).exists && v.unlink(nt), v.createDataFile(vt.dirname(nt), vt.basename(nt), It.result, !0, !0, !0), _e++, _e + ot == wt && ut()
                                }, It.onerror = function () {
                                    ot++, _e + ot == wt && ut()
                                }
                            }), Be.onerror = I
                        }, M.onerror = I
                    }
                }, Tt = {
                    mappings: {}, DEFAULT_POLLMASK: 5, umask: 511, calculateAt: function (d, E, I) {
                        if (E[0] === "/") return E;
                        var D;
                        if (d === -100) D = v.cwd(); else {
                            var M = v.getStream(d);
                            if (!M) throw new v.ErrnoError(8);
                            D = M.path
                        }
                        if (E.length == 0) {
                            if (!I) throw new v.ErrnoError(44);
                            return D
                        }
                        return vt.join2(D, E)
                    }, doStat: function (d, E, I) {
                        try {
                            var D = d(E)
                        } catch (M) {
                            if (M && M.node && vt.normalize(E) !== vt.normalize(v.getPath(M.node))) return -54;
                            throw M
                        }
                        return fe[I >> 2] = D.dev, fe[I + 4 >> 2] = 0, fe[I + 8 >> 2] = D.ino, fe[I + 12 >> 2] = D.mode, fe[I + 16 >> 2] = D.nlink, fe[I + 20 >> 2] = D.uid, fe[I + 24 >> 2] = D.gid, fe[I + 28 >> 2] = D.rdev, fe[I + 32 >> 2] = 0, Oi = [D.size >>> 0, (ae = D.size, +Math.abs(ae) >= 1 ? ae > 0 ? (Math.min(+Math.floor(ae / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((ae - +(~~ae >>> 0)) / 4294967296) >>> 0 : 0)], fe[I + 40 >> 2] = Oi[0], fe[I + 44 >> 2] = Oi[1], fe[I + 48 >> 2] = 4096, fe[I + 52 >> 2] = D.blocks, fe[I + 56 >> 2] = D.atime.getTime() / 1e3 | 0, fe[I + 60 >> 2] = 0, fe[I + 64 >> 2] = D.mtime.getTime() / 1e3 | 0, fe[I + 68 >> 2] = 0, fe[I + 72 >> 2] = D.ctime.getTime() / 1e3 | 0, fe[I + 76 >> 2] = 0, Oi = [D.ino >>> 0, (ae = D.ino, +Math.abs(ae) >= 1 ? ae > 0 ? (Math.min(+Math.floor(ae / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((ae - +(~~ae >>> 0)) / 4294967296) >>> 0 : 0)], fe[I + 80 >> 2] = Oi[0], fe[I + 84 >> 2] = Oi[1], 0
                    }, doMsync: function (d, E, I, D, M) {
                        var _ = V.slice(d, d + I);
                        v.msync(E, _, M, I, D)
                    }, doMkdir: function (d, E) {
                        return d = vt.normalize(d), d[d.length - 1] === "/" && (d = d.substr(0, d.length - 1)), v.mkdir(d, E, 0), 0
                    }, doMknod: function (d, E, I) {
                        switch (E & 61440) {
                            case 32768:
                            case 8192:
                            case 24576:
                            case 4096:
                            case 49152:
                                break;
                            default:
                                return -28
                        }
                        return v.mknod(d, E, I), 0
                    }, doReadlink: function (d, E, I) {
                        if (I <= 0) return -28;
                        var D = v.readlink(d), M = Math.min(I, he(D)), _ = de[E + M];
                        return be(D, E, I + 1), de[E + M] = _, M
                    }, doAccess: function (d, E) {
                        if (E & ~7) return -28;
                        var I, D = v.lookupPath(d, {follow: !0});
                        if (I = D.node, !I) return -44;
                        var M = "";
                        return E & 4 && (M += "r"), E & 2 && (M += "w"), E & 1 && (M += "x"), M && v.nodePermissions(I, M) ? -2 : 0
                    }, doDup: function (d, E, I) {
                        var D = v.getStream(I);
                        return D && v.close(D), v.open(d, E, 0, I, I).fd
                    }, doReadv: function (d, E, I, D) {
                        for (var M = 0, _ = 0; _ < I; _++) {
                            var ne = fe[E + _ * 8 >> 2], Be = fe[E + (_ * 8 + 4) >> 2], Ee = v.read(d, de, ne, Be, D);
                            if (Ee < 0) return -1;
                            if (M += Ee, Ee < Be) break
                        }
                        return M
                    }, doWritev: function (d, E, I, D) {
                        for (var M = 0, _ = 0; _ < I; _++) {
                            var ne = fe[E + _ * 8 >> 2], Be = fe[E + (_ * 8 + 4) >> 2], Ee = v.write(d, de, ne, Be, D);
                            if (Ee < 0) return -1;
                            M += Ee
                        }
                        return M
                    }, varargs: void 0, get: function () {
                        Tt.varargs += 4;
                        var d = fe[Tt.varargs - 4 >> 2];
                        return d
                    }, getStr: function (d) {
                        var E = te(d);
                        return E
                    }, getStreamFromFD: function (d) {
                        var E = v.getStream(d);
                        if (!E) throw new v.ErrnoError(8);
                        return E
                    }, get64: function (d, E) {
                        return d
                    }
                };

                function Ou(d, E) {
                    try {
                        return d = Tt.getStr(d), v.chmod(d, E), 0
                    } catch (I) {
                        return (typeof v == "undefined" || !(I instanceof v.ErrnoError)) && Sr(I), -I.errno
                    }
                }

                function ql(d) {
                    return fe[Rt() >> 2] = d, d
                }

                function xh(d, E, I) {
                    Tt.varargs = I;
                    try {
                        var D = Tt.getStreamFromFD(d);
                        switch (E) {
                            case 0: {
                                var M = Tt.get();
                                if (M < 0) return -28;
                                var _;
                                return _ = v.open(D.path, D.flags, 0, M), _.fd
                            }
                            case 1:
                            case 2:
                                return 0;
                            case 3:
                                return D.flags;
                            case 4: {
                                var M = Tt.get();
                                return D.flags |= M, 0
                            }
                            case 12: {
                                var M = Tt.get(), ne = 0;
                                return Qe[M + ne >> 1] = 2, 0
                            }
                            case 13:
                            case 14:
                                return 0;
                            case 16:
                            case 8:
                                return -28;
                            case 9:
                                return ql(28), -1;
                            default:
                                return -28
                        }
                    } catch (Be) {
                        return (typeof v == "undefined" || !(Be instanceof v.ErrnoError)) && Sr(Be), -Be.errno
                    }
                }

                function Ph(d, E) {
                    try {
                        var I = Tt.getStreamFromFD(d);
                        return Tt.doStat(v.stat, I.path, E)
                    } catch (D) {
                        return (typeof v == "undefined" || !(D instanceof v.ErrnoError)) && Sr(D), -D.errno
                    }
                }

                function Dh(d, E, I) {
                    Tt.varargs = I;
                    try {
                        var D = Tt.getStreamFromFD(d);
                        switch (E) {
                            case 21509:
                            case 21505:
                                return D.tty ? 0 : -59;
                            case 21510:
                            case 21511:
                            case 21512:
                            case 21506:
                            case 21507:
                            case 21508:
                                return D.tty ? 0 : -59;
                            case 21519: {
                                if (!D.tty) return -59;
                                var M = Tt.get();
                                return fe[M >> 2] = 0, 0
                            }
                            case 21520:
                                return D.tty ? -28 : -59;
                            case 21531: {
                                var M = Tt.get();
                                return v.ioctl(D, E, M)
                            }
                            case 21523:
                                return D.tty ? 0 : -59;
                            case 21524:
                                return D.tty ? 0 : -59;
                            default:
                                Sr("bad ioctl syscall " + E)
                        }
                    } catch (_) {
                        return (typeof v == "undefined" || !(_ instanceof v.ErrnoError)) && Sr(_), -_.errno
                    }
                }

                function Rh(d, E, I) {
                    Tt.varargs = I;
                    try {
                        var D = Tt.getStr(d), M = I ? Tt.get() : 0, _ = v.open(D, E, M);
                        return _.fd
                    } catch (ne) {
                        return (typeof v == "undefined" || !(ne instanceof v.ErrnoError)) && Sr(ne), -ne.errno
                    }
                }

                function Fh(d, E) {
                    try {
                        return d = Tt.getStr(d), E = Tt.getStr(E), v.rename(d, E), 0
                    } catch (I) {
                        return (typeof v == "undefined" || !(I instanceof v.ErrnoError)) && Sr(I), -I.errno
                    }
                }

                function G(d) {
                    try {
                        return d = Tt.getStr(d), v.rmdir(d), 0
                    } catch (E) {
                        return (typeof v == "undefined" || !(E instanceof v.ErrnoError)) && Sr(E), -E.errno
                    }
                }

                function yt(d, E) {
                    try {
                        return d = Tt.getStr(d), Tt.doStat(v.stat, d, E)
                    } catch (I) {
                        return (typeof v == "undefined" || !(I instanceof v.ErrnoError)) && Sr(I), -I.errno
                    }
                }

                function RA(d) {
                    try {
                        return d = Tt.getStr(d), v.unlink(d), 0
                    } catch (E) {
                        return (typeof v == "undefined" || !(E instanceof v.ErrnoError)) && Sr(E), -E.errno
                    }
                }

                function $i(d, E, I) {
                    V.copyWithin(d, E, E + I)
                }

                function Jl(d) {
                    try {
                        return A.grow(d - Se.byteLength + 65535 >>> 16), mi(A.buffer), 1
                    } catch (E) {
                    }
                }

                function $e(d) {
                    var E = V.length;
                    d = d >>> 0;
                    var I = 2147483648;
                    if (d > I) return !1;
                    for (var D = 1; D <= 4; D *= 2) {
                        var M = E * (1 + .2 / D);
                        M = Math.min(M, d + 100663296);
                        var _ = Math.min(I, xe(Math.max(d, M), 65536)), ne = Jl(_);
                        if (ne) return !0
                    }
                    return !1
                }

                function Ba(d) {
                    try {
                        var E = Tt.getStreamFromFD(d);
                        return v.close(E), 0
                    } catch (I) {
                        return (typeof v == "undefined" || !(I instanceof v.ErrnoError)) && Sr(I), I.errno
                    }
                }

                function Mu(d, E) {
                    try {
                        var I = Tt.getStreamFromFD(d), D = I.tty ? 2 : v.isDir(I.mode) ? 3 : v.isLink(I.mode) ? 7 : 4;
                        return de[E >> 0] = D, 0
                    } catch (M) {
                        return (typeof v == "undefined" || !(M instanceof v.ErrnoError)) && Sr(M), M.errno
                    }
                }

                function kE(d, E, I, D) {
                    try {
                        var M = Tt.getStreamFromFD(d), _ = Tt.doReadv(M, E, I);
                        return fe[D >> 2] = _, 0
                    } catch (ne) {
                        return (typeof v == "undefined" || !(ne instanceof v.ErrnoError)) && Sr(ne), ne.errno
                    }
                }

                function Nh(d, E, I, D, M) {
                    try {
                        var _ = Tt.getStreamFromFD(d), ne = 4294967296, Be = I * ne + (E >>> 0), Ee = 9007199254740992;
                        return Be <= -Ee || Be >= Ee ? -61 : (v.llseek(_, Be, D), Oi = [_.position >>> 0, (ae = _.position, +Math.abs(ae) >= 1 ? ae > 0 ? (Math.min(+Math.floor(ae / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((ae - +(~~ae >>> 0)) / 4294967296) >>> 0 : 0)], fe[M >> 2] = Oi[0], fe[M + 4 >> 2] = Oi[1], _.getdents && Be === 0 && D === 0 && (_.getdents = null), 0)
                    } catch (_e) {
                        return (typeof v == "undefined" || !(_e instanceof v.ErrnoError)) && Sr(_e), _e.errno
                    }
                }

                function xE(d, E, I, D) {
                    try {
                        var M = Tt.getStreamFromFD(d), _ = Tt.doWritev(M, E, I);
                        return fe[D >> 2] = _, 0
                    } catch (ne) {
                        return (typeof v == "undefined" || !(ne instanceof v.ErrnoError)) && Sr(ne), ne.errno
                    }
                }

                function gr(d) {
                    Z(d)
                }

                function qn(d) {
                    var E = Date.now() / 1e3 | 0;
                    return d && (fe[d >> 2] = E), E
                }

                function Wl() {
                    if (Wl.called) return;
                    Wl.called = !0;
                    var d = new Date().getFullYear(), E = new Date(d, 0, 1), I = new Date(d, 6, 1),
                        D = E.getTimezoneOffset(), M = I.getTimezoneOffset(), _ = Math.max(D, M);
                    fe[oQ() >> 2] = _ * 60, fe[sQ() >> 2] = Number(D != M);

                    function ne(wt) {
                        var ut = wt.toTimeString().match(/\(([A-Za-z ]+)\)$/);
                        return ut ? ut[1] : "GMT"
                    }

                    var Be = ne(E), Ee = ne(I), _e = Fe(Be), ot = Fe(Ee);
                    M < D ? (fe[qu() >> 2] = _e, fe[qu() + 4 >> 2] = ot) : (fe[qu() >> 2] = ot, fe[qu() + 4 >> 2] = _e)
                }

                function Lh(d) {
                    Wl();
                    var E = Date.UTC(fe[d + 20 >> 2] + 1900, fe[d + 16 >> 2], fe[d + 12 >> 2], fe[d + 8 >> 2], fe[d + 4 >> 2], fe[d >> 2], 0),
                        I = new Date(E);
                    fe[d + 24 >> 2] = I.getUTCDay();
                    var D = Date.UTC(I.getUTCFullYear(), 0, 1, 0, 0, 0, 0),
                        M = (I.getTime() - D) / (1e3 * 60 * 60 * 24) | 0;
                    return fe[d + 28 >> 2] = M, I.getTime() / 1e3 | 0
                }

                var Xs = function (d, E, I, D) {
                    d || (d = this), this.parent = d, this.mount = d.mount, this.mounted = null, this.id = v.nextInode++, this.name = E, this.mode = I, this.node_ops = {}, this.stream_ops = {}, this.rdev = D
                }, ba = 292 | 73, En = 146;
                if (Object.defineProperties(Xs.prototype, {
                    read: {
                        get: function () {
                            return (this.mode & ba) === ba
                        }, set: function (d) {
                            d ? this.mode |= ba : this.mode &= ~ba
                        }
                    }, write: {
                        get: function () {
                            return (this.mode & En) === En
                        }, set: function (d) {
                            d ? this.mode |= En : this.mode &= ~En
                        }
                    }, isFolder: {
                        get: function () {
                            return v.isDir(this.mode)
                        }
                    }, isDevice: {
                        get: function () {
                            return v.isChrdev(this.mode)
                        }
                    }
                }), v.FSNode = Xs, v.staticInit(), g) {
                    var Me = z5, Ku = require("path");
                    lt.staticInit()
                }
                if (g) {
                    var zl = function (d) {
                        return function () {
                            try {
                                return d.apply(this, arguments)
                            } catch (E) {
                                throw E.code ? new v.ErrnoError(xo[E.code]) : E
                            }
                        }
                    }, Zs = Object.assign({}, v);
                    for (var _l in mn) v[_l] = zl(mn[_l])
                } else throw new Error("NODERAWFS is currently only supported on Node.js environment.");

                function FA(d, E, I) {
                    var D = I > 0 ? I : he(d) + 1, M = new Array(D), _ = se(d, M, 0, M.length);
                    return E && (M.length = _), M
                }

                var Uu = typeof atob == "function" ? atob : function (d) {
                    var E = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", I = "", D, M, _, ne,
                        Be, Ee, _e, ot = 0;
                    d = d.replace(/[^A-Za-z0-9\+\/\=]/g, "");
                    do ne = E.indexOf(d.charAt(ot++)), Be = E.indexOf(d.charAt(ot++)), Ee = E.indexOf(d.charAt(ot++)), _e = E.indexOf(d.charAt(ot++)), D = ne << 2 | Be >> 4, M = (Be & 15) << 4 | Ee >> 2, _ = (Ee & 3) << 6 | _e, I = I + String.fromCharCode(D), Ee !== 64 && (I = I + String.fromCharCode(M)), _e !== 64 && (I = I + String.fromCharCode(_)); while (ot < d.length);
                    return I
                };

                function Hu(d) {
                    if (typeof g == "boolean" && g) {
                        var E;
                        try {
                            E = Buffer.from(d, "base64")
                        } catch (_) {
                            E = new Buffer(d, "base64")
                        }
                        return new Uint8Array(E.buffer, E.byteOffset, E.byteLength)
                    }
                    try {
                        for (var I = Uu(d), D = new Uint8Array(I.length), M = 0; M < I.length; ++M) D[M] = I.charCodeAt(M);
                        return D
                    } catch (_) {
                        throw new Error("Converting base64 string to bytes failed.")
                    }
                }

                function Qa(d) {
                    if (!!Nu(d)) return Hu(d.slice(jl.length))
                }

                var va = {
                        s: Tu,
                        p: Ou,
                        e: xh,
                        k: Ph,
                        o: Dh,
                        q: Rh,
                        i: Fh,
                        r: G,
                        c: yt,
                        h: RA,
                        l: $i,
                        m: $e,
                        f: Ba,
                        j: Mu,
                        g: kE,
                        n: Nh,
                        d: xE,
                        a: gr,
                        b: qn,
                        t: Lh
                    }, it = kh(), Po = r.___wasm_call_ctors = it.v, NA = r._zip_ext_count_symlinks = it.w,
                    Vl = r._zip_file_get_external_attributes = it.x, $s = r._zipstruct_stat = it.y,
                    Xl = r._zipstruct_statS = it.z, PE = r._zipstruct_stat_name = it.A,
                    Th = r._zipstruct_stat_index = it.B, Gu = r._zipstruct_stat_size = it.C,
                    Oh = r._zipstruct_stat_mtime = it.D, DE = r._zipstruct_stat_crc = it.E,
                    Zl = r._zipstruct_error = it.F, RE = r._zipstruct_errorS = it.G,
                    ju = r._zipstruct_error_code_zip = it.H, LA = r._zipstruct_stat_comp_size = it.I,
                    Lr = r._zipstruct_stat_comp_method = it.J, FE = r._zip_close = it.K, eo = r._zip_delete = it.L,
                    to = r._zip_dir_add = it.M, Yu = r._zip_discard = it.N, TA = r._zip_error_init_with_code = it.O,
                    R = r._zip_get_error = it.P, q = r._zip_file_get_error = it.Q, me = r._zip_error_strerror = it.R,
                    Ge = r._zip_fclose = it.S, Te = r._zip_file_add = it.T, Xe = r._free = it.U, Et = r._malloc = it.V,
                    Rt = r.___errno_location = it.W, Jn = r._zip_source_error = it.X, _b = r._zip_source_seek = it.Y,
                    PO = r._zip_file_set_external_attributes = it.Z, DO = r._zip_file_set_mtime = it._,
                    Vb = r._zip_fopen = it.$, RO = r._zip_fopen_index = it.aa, FO = r._zip_fread = it.ba,
                    Xb = r._zip_get_name = it.ca, NO = r._zip_get_num_entries = it.da, LO = r._zip_source_read = it.ea,
                    Zb = r._zip_name_locate = it.fa, TO = r._zip_open = it.ga, OO = r._zip_open_from_source = it.ha,
                    $b = r._zip_set_file_compression = it.ia, MO = r._zip_source_buffer = it.ja,
                    KO = r._zip_source_buffer_create = it.ka, UO = r._zip_source_close = it.la,
                    HO = r._zip_source_free = it.ma, eQ = r._zip_source_keep = it.na, tQ = r._zip_source_open = it.oa,
                    rQ = r._zip_source_set_mtime = it.qa, iQ = r._zip_source_tell = it.ra, nQ = r._zip_stat = it.sa,
                    GO = r._zip_stat_index = it.ta, qu = r.__get_tzname = it.ua, sQ = r.__get_daylight = it.va,
                    oQ = r.__get_timezone = it.wa, NE = r.stackSave = it.xa, LE = r.stackRestore = it.ya,
                    B = r.stackAlloc = it.za;
                r.cwrap = pe, r.getValue = ee;
                var He;
                wa = function d() {
                    He || OA(), He || (wa = d)
                };

                function OA(d) {
                    if (d = d || a, fs > 0 || (vr(), fs > 0)) return;

                    function E() {
                        He || (He = !0, r.calledRun = !0, !oe && (Gn(), i(r), r.onRuntimeInitialized && r.onRuntimeInitialized(), gs()))
                    }

                    r.setStatus ? (r.setStatus("Running..."), setTimeout(function () {
                        setTimeout(function () {
                            r.setStatus("")
                        }, 1), E()
                    }, 1)) : E()
                }

                if (r.run = OA, r.preInit) for (typeof r.preInit == "function" && (r.preInit = [r.preInit]); r.preInit.length > 0;) r.preInit.pop()();
                return OA(), e
            }
        }();
        typeof Ww == "object" && typeof eD == "object" ? eD.exports = tD : typeof define == "function" && define.amd ? define([], function () {
            return tD
        }) : typeof Ww == "object" && (Ww.createModule = tD)
    });
    var I_ = w((xat, E_) => {
        function GDe(t, e) {
            for (var r = -1, i = t == null ? 0 : t.length, n = Array(i); ++r < i;) n[r] = e(t[r], r, t);
            return n
        }

        E_.exports = GDe
    });
    var Ms = w((Pat, y_) => {
        var jDe = Array.isArray;
        y_.exports = jDe
    });
    var S_ = w((Dat, w_) => {
        var B_ = Hc(), YDe = I_(), qDe = Ms(), JDe = yd(), WDe = 1 / 0, b_ = B_ ? B_.prototype : void 0,
            Q_ = b_ ? b_.toString : void 0;

        function v_(t) {
            if (typeof t == "string") return t;
            if (qDe(t)) return YDe(t, v_) + "";
            if (JDe(t)) return Q_ ? Q_.call(t) : "";
            var e = t + "";
            return e == "0" && 1 / t == -WDe ? "-0" : e
        }

        w_.exports = v_
    });
    var of = w((Rat, k_) => {
        var zDe = S_();

        function _De(t) {
            return t == null ? "" : zDe(t)
        }

        k_.exports = _De
    });
    var AD = w((Fat, x_) => {
        function VDe(t, e, r) {
            var i = -1, n = t.length;
            e < 0 && (e = -e > n ? 0 : n + e), r = r > n ? n : r, r < 0 && (r += n), n = e > r ? 0 : r - e >>> 0, e >>>= 0;
            for (var s = Array(n); ++i < n;) s[i] = t[i + e];
            return s
        }

        x_.exports = VDe
    });
    var D_ = w((Nat, P_) => {
        var XDe = AD();

        function ZDe(t, e, r) {
            var i = t.length;
            return r = r === void 0 ? i : r, !e && r >= i ? t : XDe(t, e, r)
        }

        P_.exports = ZDe
    });
    var lD = w((Lat, R_) => {
        var $De = "\\ud800-\\udfff", eRe = "\\u0300-\\u036f", tRe = "\\ufe20-\\ufe2f", rRe = "\\u20d0-\\u20ff",
            iRe = eRe + tRe + rRe, nRe = "\\ufe0e\\ufe0f", sRe = "\\u200d",
            oRe = RegExp("[" + sRe + $De + iRe + nRe + "]");

        function aRe(t) {
            return oRe.test(t)
        }

        R_.exports = aRe
    });
    var N_ = w((Tat, F_) => {
        function ARe(t) {
            return t.split("")
        }

        F_.exports = ARe
    });
    var G_ = w((Oat, L_) => {
        var T_ = "\\ud800-\\udfff", lRe = "\\u0300-\\u036f", cRe = "\\ufe20-\\ufe2f", uRe = "\\u20d0-\\u20ff",
            gRe = lRe + cRe + uRe, fRe = "\\ufe0e\\ufe0f", hRe = "[" + T_ + "]", cD = "[" + gRe + "]",
            uD = "\\ud83c[\\udffb-\\udfff]", pRe = "(?:" + cD + "|" + uD + ")", O_ = "[^" + T_ + "]",
            M_ = "(?:\\ud83c[\\udde6-\\uddff]){2}", K_ = "[\\ud800-\\udbff][\\udc00-\\udfff]", dRe = "\\u200d",
            U_ = pRe + "?", H_ = "[" + fRe + "]?",
            CRe = "(?:" + dRe + "(?:" + [O_, M_, K_].join("|") + ")" + H_ + U_ + ")*", mRe = H_ + U_ + CRe,
            ERe = "(?:" + [O_ + cD + "?", cD, M_, K_, hRe].join("|") + ")",
            IRe = RegExp(uD + "(?=" + uD + ")|" + ERe + mRe, "g");

        function yRe(t) {
            return t.match(IRe) || []
        }

        L_.exports = yRe
    });
    var Y_ = w((Mat, j_) => {
        var wRe = N_(), BRe = lD(), bRe = G_();

        function QRe(t) {
            return BRe(t) ? bRe(t) : wRe(t)
        }

        j_.exports = QRe
    });
    var J_ = w((Kat, q_) => {
        var vRe = D_(), SRe = lD(), kRe = Y_(), xRe = of();

        function PRe(t) {
            return function (e) {
                e = xRe(e);
                var r = SRe(e) ? kRe(e) : void 0, i = r ? r[0] : e.charAt(0), n = r ? vRe(r, 1).join("") : e.slice(1);
                return i[t]() + n
            }
        }

        q_.exports = PRe
    });
    var z_ = w((Uat, W_) => {
        var DRe = J_(), RRe = DRe("toUpperCase");
        W_.exports = RRe
    });
    var rB = w((Hat, __) => {
        var FRe = of(), NRe = z_();

        function LRe(t) {
            return NRe(FRe(t).toLowerCase())
        }

        __.exports = LRe
    });
    var V_ = w((Gat, iB) => {
        function TRe() {
            var t = 0, e = 1, r = 2, i = 3, n = 4, s = 5, o = 6, a = 7, l = 8, c = 9, u = 10, g = 11, f = 12, h = 13,
                p = 14, m = 15, y = 16, b = 17, S = 0, k = 1, T = 2, Y = 3, j = 4;

            function Z(A, oe) {
                return 55296 <= A.charCodeAt(oe) && A.charCodeAt(oe) <= 56319 && 56320 <= A.charCodeAt(oe + 1) && A.charCodeAt(oe + 1) <= 57343
            }

            function J(A, oe) {
                oe === void 0 && (oe = 0);
                var le = A.charCodeAt(oe);
                if (55296 <= le && le <= 56319 && oe < A.length - 1) {
                    var X = le, O = A.charCodeAt(oe + 1);
                    return 56320 <= O && O <= 57343 ? (X - 55296) * 1024 + (O - 56320) + 65536 : X
                }
                if (56320 <= le && le <= 57343 && oe >= 1) {
                    var X = A.charCodeAt(oe - 1), O = le;
                    return 55296 <= X && X <= 56319 ? (X - 55296) * 1024 + (O - 56320) + 65536 : O
                }
                return le
            }

            function re(A, oe, le) {
                var X = [A].concat(oe).concat([le]), O = X[X.length - 2], L = le, pe = X.lastIndexOf(p);
                if (pe > 1 && X.slice(1, pe).every(function (te) {
                    return te == i
                }) && [i, h, b].indexOf(A) == -1) return T;
                var Ce = X.lastIndexOf(n);
                if (Ce > 0 && X.slice(1, Ce).every(function (te) {
                    return te == n
                }) && [f, n].indexOf(O) == -1) return X.filter(function (te) {
                    return te == n
                }).length % 2 == 1 ? Y : j;
                if (O == t && L == e) return S;
                if (O == r || O == t || O == e) return L == p && oe.every(function (te) {
                    return te == i
                }) ? T : k;
                if (L == r || L == t || L == e) return k;
                if (O == o && (L == o || L == a || L == c || L == u)) return S;
                if ((O == c || O == a) && (L == a || L == l)) return S;
                if ((O == u || O == l) && L == l) return S;
                if (L == i || L == m) return S;
                if (L == s) return S;
                if (O == f) return S;
                var Oe = X.indexOf(i) != -1 ? X.lastIndexOf(i) - 1 : X.length - 2;
                return [h, b].indexOf(X[Oe]) != -1 && X.slice(Oe + 1, -1).every(function (te) {
                    return te == i
                }) && L == p || O == m && [y, b].indexOf(L) != -1 ? S : oe.indexOf(n) != -1 ? T : O == n && L == n ? S : k
            }

            this.nextBreak = function (A, oe) {
                if (oe === void 0 && (oe = 0), oe < 0) return 0;
                if (oe >= A.length - 1) return A.length;
                for (var le = ee(J(A, oe)), X = [], O = oe + 1; O < A.length; O++) if (!Z(A, O - 1)) {
                    var L = ee(J(A, O));
                    if (re(le, X, L)) return O;
                    X.push(L)
                }
                return A.length
            }, this.splitGraphemes = function (A) {
                for (var oe = [], le = 0, X; (X = this.nextBreak(A, le)) < A.length;) oe.push(A.slice(le, X)), le = X;
                return le < A.length && oe.push(A.slice(le)), oe
            }, this.iterateGraphemes = function (A) {
                var oe = 0, le = {
                    next: function () {
                        var X, O;
                        return (O = this.nextBreak(A, oe)) < A.length ? (X = A.slice(oe, O), oe = O, {
                            value: X,
                            done: !1
                        }) : oe < A.length ? (X = A.slice(oe), oe = A.length, {value: X, done: !1}) : {
                            value: void 0,
                            done: !0
                        }
                    }.bind(this)
                };
                return typeof Symbol != "undefined" && Symbol.iterator && (le[Symbol.iterator] = function () {
                    return le
                }), le
            }, this.countGraphemes = function (A) {
                for (var oe = 0, le = 0, X; (X = this.nextBreak(A, le)) < A.length;) le = X, oe++;
                return le < A.length && oe++, oe
            };

            function ee(A) {
                return 1536 <= A && A <= 1541 || A == 1757 || A == 1807 || A == 2274 || A == 3406 || A == 69821 || 70082 <= A && A <= 70083 || A == 72250 || 72326 <= A && A <= 72329 || A == 73030 ? f : A == 13 ? t : A == 10 ? e : 0 <= A && A <= 9 || 11 <= A && A <= 12 || 14 <= A && A <= 31 || 127 <= A && A <= 159 || A == 173 || A == 1564 || A == 6158 || A == 8203 || 8206 <= A && A <= 8207 || A == 8232 || A == 8233 || 8234 <= A && A <= 8238 || 8288 <= A && A <= 8292 || A == 8293 || 8294 <= A && A <= 8303 || 55296 <= A && A <= 57343 || A == 65279 || 65520 <= A && A <= 65528 || 65529 <= A && A <= 65531 || 113824 <= A && A <= 113827 || 119155 <= A && A <= 119162 || A == 917504 || A == 917505 || 917506 <= A && A <= 917535 || 917632 <= A && A <= 917759 || 918e3 <= A && A <= 921599 ? r : 768 <= A && A <= 879 || 1155 <= A && A <= 1159 || 1160 <= A && A <= 1161 || 1425 <= A && A <= 1469 || A == 1471 || 1473 <= A && A <= 1474 || 1476 <= A && A <= 1477 || A == 1479 || 1552 <= A && A <= 1562 || 1611 <= A && A <= 1631 || A == 1648 || 1750 <= A && A <= 1756 || 1759 <= A && A <= 1764 || 1767 <= A && A <= 1768 || 1770 <= A && A <= 1773 || A == 1809 || 1840 <= A && A <= 1866 || 1958 <= A && A <= 1968 || 2027 <= A && A <= 2035 || 2070 <= A && A <= 2073 || 2075 <= A && A <= 2083 || 2085 <= A && A <= 2087 || 2089 <= A && A <= 2093 || 2137 <= A && A <= 2139 || 2260 <= A && A <= 2273 || 2275 <= A && A <= 2306 || A == 2362 || A == 2364 || 2369 <= A && A <= 2376 || A == 2381 || 2385 <= A && A <= 2391 || 2402 <= A && A <= 2403 || A == 2433 || A == 2492 || A == 2494 || 2497 <= A && A <= 2500 || A == 2509 || A == 2519 || 2530 <= A && A <= 2531 || 2561 <= A && A <= 2562 || A == 2620 || 2625 <= A && A <= 2626 || 2631 <= A && A <= 2632 || 2635 <= A && A <= 2637 || A == 2641 || 2672 <= A && A <= 2673 || A == 2677 || 2689 <= A && A <= 2690 || A == 2748 || 2753 <= A && A <= 2757 || 2759 <= A && A <= 2760 || A == 2765 || 2786 <= A && A <= 2787 || 2810 <= A && A <= 2815 || A == 2817 || A == 2876 || A == 2878 || A == 2879 || 2881 <= A && A <= 2884 || A == 2893 || A == 2902 || A == 2903 || 2914 <= A && A <= 2915 || A == 2946 || A == 3006 || A == 3008 || A == 3021 || A == 3031 || A == 3072 || 3134 <= A && A <= 3136 || 3142 <= A && A <= 3144 || 3146 <= A && A <= 3149 || 3157 <= A && A <= 3158 || 3170 <= A && A <= 3171 || A == 3201 || A == 3260 || A == 3263 || A == 3266 || A == 3270 || 3276 <= A && A <= 3277 || 3285 <= A && A <= 3286 || 3298 <= A && A <= 3299 || 3328 <= A && A <= 3329 || 3387 <= A && A <= 3388 || A == 3390 || 3393 <= A && A <= 3396 || A == 3405 || A == 3415 || 3426 <= A && A <= 3427 || A == 3530 || A == 3535 || 3538 <= A && A <= 3540 || A == 3542 || A == 3551 || A == 3633 || 3636 <= A && A <= 3642 || 3655 <= A && A <= 3662 || A == 3761 || 3764 <= A && A <= 3769 || 3771 <= A && A <= 3772 || 3784 <= A && A <= 3789 || 3864 <= A && A <= 3865 || A == 3893 || A == 3895 || A == 3897 || 3953 <= A && A <= 3966 || 3968 <= A && A <= 3972 || 3974 <= A && A <= 3975 || 3981 <= A && A <= 3991 || 3993 <= A && A <= 4028 || A == 4038 || 4141 <= A && A <= 4144 || 4146 <= A && A <= 4151 || 4153 <= A && A <= 4154 || 4157 <= A && A <= 4158 || 4184 <= A && A <= 4185 || 4190 <= A && A <= 4192 || 4209 <= A && A <= 4212 || A == 4226 || 4229 <= A && A <= 4230 || A == 4237 || A == 4253 || 4957 <= A && A <= 4959 || 5906 <= A && A <= 5908 || 5938 <= A && A <= 5940 || 5970 <= A && A <= 5971 || 6002 <= A && A <= 6003 || 6068 <= A && A <= 6069 || 6071 <= A && A <= 6077 || A == 6086 || 6089 <= A && A <= 6099 || A == 6109 || 6155 <= A && A <= 6157 || 6277 <= A && A <= 6278 || A == 6313 || 6432 <= A && A <= 6434 || 6439 <= A && A <= 6440 || A == 6450 || 6457 <= A && A <= 6459 || 6679 <= A && A <= 6680 || A == 6683 || A == 6742 || 6744 <= A && A <= 6750 || A == 6752 || A == 6754 || 6757 <= A && A <= 6764 || 6771 <= A && A <= 6780 || A == 6783 || 6832 <= A && A <= 6845 || A == 6846 || 6912 <= A && A <= 6915 || A == 6964 || 6966 <= A && A <= 6970 || A == 6972 || A == 6978 || 7019 <= A && A <= 7027 || 7040 <= A && A <= 7041 || 7074 <= A && A <= 7077 || 7080 <= A && A <= 7081 || 7083 <= A && A <= 7085 || A == 7142 || 7144 <= A && A <= 7145 || A == 7149 || 7151 <= A && A <= 7153 || 7212 <= A && A <= 7219 || 7222 <= A && A <= 7223 || 7376 <= A && A <= 7378 || 7380 <= A && A <= 7392 || 7394 <= A && A <= 7400 || A == 7405 || A == 7412 || 7416 <= A && A <= 7417 || 7616 <= A && A <= 7673 || 7675 <= A && A <= 7679 || A == 8204 || 8400 <= A && A <= 8412 || 8413 <= A && A <= 8416 || A == 8417 || 8418 <= A && A <= 8420 || 8421 <= A && A <= 8432 || 11503 <= A && A <= 11505 || A == 11647 || 11744 <= A && A <= 11775 || 12330 <= A && A <= 12333 || 12334 <= A && A <= 12335 || 12441 <= A && A <= 12442 || A == 42607 || 42608 <= A && A <= 42610 || 42612 <= A && A <= 42621 || 42654 <= A && A <= 42655 || 42736 <= A && A <= 42737 || A == 43010 || A == 43014 || A == 43019 || 43045 <= A && A <= 43046 || 43204 <= A && A <= 43205 || 43232 <= A && A <= 43249 || 43302 <= A && A <= 43309 || 43335 <= A && A <= 43345 || 43392 <= A && A <= 43394 || A == 43443 || 43446 <= A && A <= 43449 || A == 43452 || A == 43493 || 43561 <= A && A <= 43566 || 43569 <= A && A <= 43570 || 43573 <= A && A <= 43574 || A == 43587 || A == 43596 || A == 43644 || A == 43696 || 43698 <= A && A <= 43700 || 43703 <= A && A <= 43704 || 43710 <= A && A <= 43711 || A == 43713 || 43756 <= A && A <= 43757 || A == 43766 || A == 44005 || A == 44008 || A == 44013 || A == 64286 || 65024 <= A && A <= 65039 || 65056 <= A && A <= 65071 || 65438 <= A && A <= 65439 || A == 66045 || A == 66272 || 66422 <= A && A <= 66426 || 68097 <= A && A <= 68099 || 68101 <= A && A <= 68102 || 68108 <= A && A <= 68111 || 68152 <= A && A <= 68154 || A == 68159 || 68325 <= A && A <= 68326 || A == 69633 || 69688 <= A && A <= 69702 || 69759 <= A && A <= 69761 || 69811 <= A && A <= 69814 || 69817 <= A && A <= 69818 || 69888 <= A && A <= 69890 || 69927 <= A && A <= 69931 || 69933 <= A && A <= 69940 || A == 70003 || 70016 <= A && A <= 70017 || 70070 <= A && A <= 70078 || 70090 <= A && A <= 70092 || 70191 <= A && A <= 70193 || A == 70196 || 70198 <= A && A <= 70199 || A == 70206 || A == 70367 || 70371 <= A && A <= 70378 || 70400 <= A && A <= 70401 || A == 70460 || A == 70462 || A == 70464 || A == 70487 || 70502 <= A && A <= 70508 || 70512 <= A && A <= 70516 || 70712 <= A && A <= 70719 || 70722 <= A && A <= 70724 || A == 70726 || A == 70832 || 70835 <= A && A <= 70840 || A == 70842 || A == 70845 || 70847 <= A && A <= 70848 || 70850 <= A && A <= 70851 || A == 71087 || 71090 <= A && A <= 71093 || 71100 <= A && A <= 71101 || 71103 <= A && A <= 71104 || 71132 <= A && A <= 71133 || 71219 <= A && A <= 71226 || A == 71229 || 71231 <= A && A <= 71232 || A == 71339 || A == 71341 || 71344 <= A && A <= 71349 || A == 71351 || 71453 <= A && A <= 71455 || 71458 <= A && A <= 71461 || 71463 <= A && A <= 71467 || 72193 <= A && A <= 72198 || 72201 <= A && A <= 72202 || 72243 <= A && A <= 72248 || 72251 <= A && A <= 72254 || A == 72263 || 72273 <= A && A <= 72278 || 72281 <= A && A <= 72283 || 72330 <= A && A <= 72342 || 72344 <= A && A <= 72345 || 72752 <= A && A <= 72758 || 72760 <= A && A <= 72765 || A == 72767 || 72850 <= A && A <= 72871 || 72874 <= A && A <= 72880 || 72882 <= A && A <= 72883 || 72885 <= A && A <= 72886 || 73009 <= A && A <= 73014 || A == 73018 || 73020 <= A && A <= 73021 || 73023 <= A && A <= 73029 || A == 73031 || 92912 <= A && A <= 92916 || 92976 <= A && A <= 92982 || 94095 <= A && A <= 94098 || 113821 <= A && A <= 113822 || A == 119141 || 119143 <= A && A <= 119145 || 119150 <= A && A <= 119154 || 119163 <= A && A <= 119170 || 119173 <= A && A <= 119179 || 119210 <= A && A <= 119213 || 119362 <= A && A <= 119364 || 121344 <= A && A <= 121398 || 121403 <= A && A <= 121452 || A == 121461 || A == 121476 || 121499 <= A && A <= 121503 || 121505 <= A && A <= 121519 || 122880 <= A && A <= 122886 || 122888 <= A && A <= 122904 || 122907 <= A && A <= 122913 || 122915 <= A && A <= 122916 || 122918 <= A && A <= 122922 || 125136 <= A && A <= 125142 || 125252 <= A && A <= 125258 || 917536 <= A && A <= 917631 || 917760 <= A && A <= 917999 ? i : 127462 <= A && A <= 127487 ? n : A == 2307 || A == 2363 || 2366 <= A && A <= 2368 || 2377 <= A && A <= 2380 || 2382 <= A && A <= 2383 || 2434 <= A && A <= 2435 || 2495 <= A && A <= 2496 || 2503 <= A && A <= 2504 || 2507 <= A && A <= 2508 || A == 2563 || 2622 <= A && A <= 2624 || A == 2691 || 2750 <= A && A <= 2752 || A == 2761 || 2763 <= A && A <= 2764 || 2818 <= A && A <= 2819 || A == 2880 || 2887 <= A && A <= 2888 || 2891 <= A && A <= 2892 || A == 3007 || 3009 <= A && A <= 3010 || 3014 <= A && A <= 3016 || 3018 <= A && A <= 3020 || 3073 <= A && A <= 3075 || 3137 <= A && A <= 3140 || 3202 <= A && A <= 3203 || A == 3262 || 3264 <= A && A <= 3265 || 3267 <= A && A <= 3268 || 3271 <= A && A <= 3272 || 3274 <= A && A <= 3275 || 3330 <= A && A <= 3331 || 3391 <= A && A <= 3392 || 3398 <= A && A <= 3400 || 3402 <= A && A <= 3404 || 3458 <= A && A <= 3459 || 3536 <= A && A <= 3537 || 3544 <= A && A <= 3550 || 3570 <= A && A <= 3571 || A == 3635 || A == 3763 || 3902 <= A && A <= 3903 || A == 3967 || A == 4145 || 4155 <= A && A <= 4156 || 4182 <= A && A <= 4183 || A == 4228 || A == 6070 || 6078 <= A && A <= 6085 || 6087 <= A && A <= 6088 || 6435 <= A && A <= 6438 || 6441 <= A && A <= 6443 || 6448 <= A && A <= 6449 || 6451 <= A && A <= 6456 || 6681 <= A && A <= 6682 || A == 6741 || A == 6743 || 6765 <= A && A <= 6770 || A == 6916 || A == 6965 || A == 6971 || 6973 <= A && A <= 6977 || 6979 <= A && A <= 6980 || A == 7042 || A == 7073 || 7078 <= A && A <= 7079 || A == 7082 || A == 7143 || 7146 <= A && A <= 7148 || A == 7150 || 7154 <= A && A <= 7155 || 7204 <= A && A <= 7211 || 7220 <= A && A <= 7221 || A == 7393 || 7410 <= A && A <= 7411 || A == 7415 || 43043 <= A && A <= 43044 || A == 43047 || 43136 <= A && A <= 43137 || 43188 <= A && A <= 43203 || 43346 <= A && A <= 43347 || A == 43395 || 43444 <= A && A <= 43445 || 43450 <= A && A <= 43451 || 43453 <= A && A <= 43456 || 43567 <= A && A <= 43568 || 43571 <= A && A <= 43572 || A == 43597 || A == 43755 || 43758 <= A && A <= 43759 || A == 43765 || 44003 <= A && A <= 44004 || 44006 <= A && A <= 44007 || 44009 <= A && A <= 44010 || A == 44012 || A == 69632 || A == 69634 || A == 69762 || 69808 <= A && A <= 69810 || 69815 <= A && A <= 69816 || A == 69932 || A == 70018 || 70067 <= A && A <= 70069 || 70079 <= A && A <= 70080 || 70188 <= A && A <= 70190 || 70194 <= A && A <= 70195 || A == 70197 || 70368 <= A && A <= 70370 || 70402 <= A && A <= 70403 || A == 70463 || 70465 <= A && A <= 70468 || 70471 <= A && A <= 70472 || 70475 <= A && A <= 70477 || 70498 <= A && A <= 70499 || 70709 <= A && A <= 70711 || 70720 <= A && A <= 70721 || A == 70725 || 70833 <= A && A <= 70834 || A == 70841 || 70843 <= A && A <= 70844 || A == 70846 || A == 70849 || 71088 <= A && A <= 71089 || 71096 <= A && A <= 71099 || A == 71102 || 71216 <= A && A <= 71218 || 71227 <= A && A <= 71228 || A == 71230 || A == 71340 || 71342 <= A && A <= 71343 || A == 71350 || 71456 <= A && A <= 71457 || A == 71462 || 72199 <= A && A <= 72200 || A == 72249 || 72279 <= A && A <= 72280 || A == 72343 || A == 72751 || A == 72766 || A == 72873 || A == 72881 || A == 72884 || 94033 <= A && A <= 94078 || A == 119142 || A == 119149 ? s : 4352 <= A && A <= 4447 || 43360 <= A && A <= 43388 ? o : 4448 <= A && A <= 4519 || 55216 <= A && A <= 55238 ? a : 4520 <= A && A <= 4607 || 55243 <= A && A <= 55291 ? l : A == 44032 || A == 44060 || A == 44088 || A == 44116 || A == 44144 || A == 44172 || A == 44200 || A == 44228 || A == 44256 || A == 44284 || A == 44312 || A == 44340 || A == 44368 || A == 44396 || A == 44424 || A == 44452 || A == 44480 || A == 44508 || A == 44536 || A == 44564 || A == 44592 || A == 44620 || A == 44648 || A == 44676 || A == 44704 || A == 44732 || A == 44760 || A == 44788 || A == 44816 || A == 44844 || A == 44872 || A == 44900 || A == 44928 || A == 44956 || A == 44984 || A == 45012 || A == 45040 || A == 45068 || A == 45096 || A == 45124 || A == 45152 || A == 45180 || A == 45208 || A == 45236 || A == 45264 || A == 45292 || A == 45320 || A == 45348 || A == 45376 || A == 45404 || A == 45432 || A == 45460 || A == 45488 || A == 45516 || A == 45544 || A == 45572 || A == 45600 || A == 45628 || A == 45656 || A == 45684 || A == 45712 || A == 45740 || A == 45768 || A == 45796 || A == 45824 || A == 45852 || A == 45880 || A == 45908 || A == 45936 || A == 45964 || A == 45992 || A == 46020 || A == 46048 || A == 46076 || A == 46104 || A == 46132 || A == 46160 || A == 46188 || A == 46216 || A == 46244 || A == 46272 || A == 46300 || A == 46328 || A == 46356 || A == 46384 || A == 46412 || A == 46440 || A == 46468 || A == 46496 || A == 46524 || A == 46552 || A == 46580 || A == 46608 || A == 46636 || A == 46664 || A == 46692 || A == 46720 || A == 46748 || A == 46776 || A == 46804 || A == 46832 || A == 46860 || A == 46888 || A == 46916 || A == 46944 || A == 46972 || A == 47e3 || A == 47028 || A == 47056 || A == 47084 || A == 47112 || A == 47140 || A == 47168 || A == 47196 || A == 47224 || A == 47252 || A == 47280 || A == 47308 || A == 47336 || A == 47364 || A == 47392 || A == 47420 || A == 47448 || A == 47476 || A == 47504 || A == 47532 || A == 47560 || A == 47588 || A == 47616 || A == 47644 || A == 47672 || A == 47700 || A == 47728 || A == 47756 || A == 47784 || A == 47812 || A == 47840 || A == 47868 || A == 47896 || A == 47924 || A == 47952 || A == 47980 || A == 48008 || A == 48036 || A == 48064 || A == 48092 || A == 48120 || A == 48148 || A == 48176 || A == 48204 || A == 48232 || A == 48260 || A == 48288 || A == 48316 || A == 48344 || A == 48372 || A == 48400 || A == 48428 || A == 48456 || A == 48484 || A == 48512 || A == 48540 || A == 48568 || A == 48596 || A == 48624 || A == 48652 || A == 48680 || A == 48708 || A == 48736 || A == 48764 || A == 48792 || A == 48820 || A == 48848 || A == 48876 || A == 48904 || A == 48932 || A == 48960 || A == 48988 || A == 49016 || A == 49044 || A == 49072 || A == 49100 || A == 49128 || A == 49156 || A == 49184 || A == 49212 || A == 49240 || A == 49268 || A == 49296 || A == 49324 || A == 49352 || A == 49380 || A == 49408 || A == 49436 || A == 49464 || A == 49492 || A == 49520 || A == 49548 || A == 49576 || A == 49604 || A == 49632 || A == 49660 || A == 49688 || A == 49716 || A == 49744 || A == 49772 || A == 49800 || A == 49828 || A == 49856 || A == 49884 || A == 49912 || A == 49940 || A == 49968 || A == 49996 || A == 50024 || A == 50052 || A == 50080 || A == 50108 || A == 50136 || A == 50164 || A == 50192 || A == 50220 || A == 50248 || A == 50276 || A == 50304 || A == 50332 || A == 50360 || A == 50388 || A == 50416 || A == 50444 || A == 50472 || A == 50500 || A == 50528 || A == 50556 || A == 50584 || A == 50612 || A == 50640 || A == 50668 || A == 50696 || A == 50724 || A == 50752 || A == 50780 || A == 50808 || A == 50836 || A == 50864 || A == 50892 || A == 50920 || A == 50948 || A == 50976 || A == 51004 || A == 51032 || A == 51060 || A == 51088 || A == 51116 || A == 51144 || A == 51172 || A == 51200 || A == 51228 || A == 51256 || A == 51284 || A == 51312 || A == 51340 || A == 51368 || A == 51396 || A == 51424 || A == 51452 || A == 51480 || A == 51508 || A == 51536 || A == 51564 || A == 51592 || A == 51620 || A == 51648 || A == 51676 || A == 51704 || A == 51732 || A == 51760 || A == 51788 || A == 51816 || A == 51844 || A == 51872 || A == 51900 || A == 51928 || A == 51956 || A == 51984 || A == 52012 || A == 52040 || A == 52068 || A == 52096 || A == 52124 || A == 52152 || A == 52180 || A == 52208 || A == 52236 || A == 52264 || A == 52292 || A == 52320 || A == 52348 || A == 52376 || A == 52404 || A == 52432 || A == 52460 || A == 52488 || A == 52516 || A == 52544 || A == 52572 || A == 52600 || A == 52628 || A == 52656 || A == 52684 || A == 52712 || A == 52740 || A == 52768 || A == 52796 || A == 52824 || A == 52852 || A == 52880 || A == 52908 || A == 52936 || A == 52964 || A == 52992 || A == 53020 || A == 53048 || A == 53076 || A == 53104 || A == 53132 || A == 53160 || A == 53188 || A == 53216 || A == 53244 || A == 53272 || A == 53300 || A == 53328 || A == 53356 || A == 53384 || A == 53412 || A == 53440 || A == 53468 || A == 53496 || A == 53524 || A == 53552 || A == 53580 || A == 53608 || A == 53636 || A == 53664 || A == 53692 || A == 53720 || A == 53748 || A == 53776 || A == 53804 || A == 53832 || A == 53860 || A == 53888 || A == 53916 || A == 53944 || A == 53972 || A == 54e3 || A == 54028 || A == 54056 || A == 54084 || A == 54112 || A == 54140 || A == 54168 || A == 54196 || A == 54224 || A == 54252 || A == 54280 || A == 54308 || A == 54336 || A == 54364 || A == 54392 || A == 54420 || A == 54448 || A == 54476 || A == 54504 || A == 54532 || A == 54560 || A == 54588 || A == 54616 || A == 54644 || A == 54672 || A == 54700 || A == 54728 || A == 54756 || A == 54784 || A == 54812 || A == 54840 || A == 54868 || A == 54896 || A == 54924 || A == 54952 || A == 54980 || A == 55008 || A == 55036 || A == 55064 || A == 55092 || A == 55120 || A == 55148 || A == 55176 ? c : 44033 <= A && A <= 44059 || 44061 <= A && A <= 44087 || 44089 <= A && A <= 44115 || 44117 <= A && A <= 44143 || 44145 <= A && A <= 44171 || 44173 <= A && A <= 44199 || 44201 <= A && A <= 44227 || 44229 <= A && A <= 44255 || 44257 <= A && A <= 44283 || 44285 <= A && A <= 44311 || 44313 <= A && A <= 44339 || 44341 <= A && A <= 44367 || 44369 <= A && A <= 44395 || 44397 <= A && A <= 44423 || 44425 <= A && A <= 44451 || 44453 <= A && A <= 44479 || 44481 <= A && A <= 44507 || 44509 <= A && A <= 44535 || 44537 <= A && A <= 44563 || 44565 <= A && A <= 44591 || 44593 <= A && A <= 44619 || 44621 <= A && A <= 44647 || 44649 <= A && A <= 44675 || 44677 <= A && A <= 44703 || 44705 <= A && A <= 44731 || 44733 <= A && A <= 44759 || 44761 <= A && A <= 44787 || 44789 <= A && A <= 44815 || 44817 <= A && A <= 44843 || 44845 <= A && A <= 44871 || 44873 <= A && A <= 44899 || 44901 <= A && A <= 44927 || 44929 <= A && A <= 44955 || 44957 <= A && A <= 44983 || 44985 <= A && A <= 45011 || 45013 <= A && A <= 45039 || 45041 <= A && A <= 45067 || 45069 <= A && A <= 45095 || 45097 <= A && A <= 45123 || 45125 <= A && A <= 45151 || 45153 <= A && A <= 45179 || 45181 <= A && A <= 45207 || 45209 <= A && A <= 45235 || 45237 <= A && A <= 45263 || 45265 <= A && A <= 45291 || 45293 <= A && A <= 45319 || 45321 <= A && A <= 45347 || 45349 <= A && A <= 45375 || 45377 <= A && A <= 45403 || 45405 <= A && A <= 45431 || 45433 <= A && A <= 45459 || 45461 <= A && A <= 45487 || 45489 <= A && A <= 45515 || 45517 <= A && A <= 45543 || 45545 <= A && A <= 45571 || 45573 <= A && A <= 45599 || 45601 <= A && A <= 45627 || 45629 <= A && A <= 45655 || 45657 <= A && A <= 45683 || 45685 <= A && A <= 45711 || 45713 <= A && A <= 45739 || 45741 <= A && A <= 45767 || 45769 <= A && A <= 45795 || 45797 <= A && A <= 45823 || 45825 <= A && A <= 45851 || 45853 <= A && A <= 45879 || 45881 <= A && A <= 45907 || 45909 <= A && A <= 45935 || 45937 <= A && A <= 45963 || 45965 <= A && A <= 45991 || 45993 <= A && A <= 46019 || 46021 <= A && A <= 46047 || 46049 <= A && A <= 46075 || 46077 <= A && A <= 46103 || 46105 <= A && A <= 46131 || 46133 <= A && A <= 46159 || 46161 <= A && A <= 46187 || 46189 <= A && A <= 46215 || 46217 <= A && A <= 46243 || 46245 <= A && A <= 46271 || 46273 <= A && A <= 46299 || 46301 <= A && A <= 46327 || 46329 <= A && A <= 46355 || 46357 <= A && A <= 46383 || 46385 <= A && A <= 46411 || 46413 <= A && A <= 46439 || 46441 <= A && A <= 46467 || 46469 <= A && A <= 46495 || 46497 <= A && A <= 46523 || 46525 <= A && A <= 46551 || 46553 <= A && A <= 46579 || 46581 <= A && A <= 46607 || 46609 <= A && A <= 46635 || 46637 <= A && A <= 46663 || 46665 <= A && A <= 46691 || 46693 <= A && A <= 46719 || 46721 <= A && A <= 46747 || 46749 <= A && A <= 46775 || 46777 <= A && A <= 46803 || 46805 <= A && A <= 46831 || 46833 <= A && A <= 46859 || 46861 <= A && A <= 46887 || 46889 <= A && A <= 46915 || 46917 <= A && A <= 46943 || 46945 <= A && A <= 46971 || 46973 <= A && A <= 46999 || 47001 <= A && A <= 47027 || 47029 <= A && A <= 47055 || 47057 <= A && A <= 47083 || 47085 <= A && A <= 47111 || 47113 <= A && A <= 47139 || 47141 <= A && A <= 47167 || 47169 <= A && A <= 47195 || 47197 <= A && A <= 47223 || 47225 <= A && A <= 47251 || 47253 <= A && A <= 47279 || 47281 <= A && A <= 47307 || 47309 <= A && A <= 47335 || 47337 <= A && A <= 47363 || 47365 <= A && A <= 47391 || 47393 <= A && A <= 47419 || 47421 <= A && A <= 47447 || 47449 <= A && A <= 47475 || 47477 <= A && A <= 47503 || 47505 <= A && A <= 47531 || 47533 <= A && A <= 47559 || 47561 <= A && A <= 47587 || 47589 <= A && A <= 47615 || 47617 <= A && A <= 47643 || 47645 <= A && A <= 47671 || 47673 <= A && A <= 47699 || 47701 <= A && A <= 47727 || 47729 <= A && A <= 47755 || 47757 <= A && A <= 47783 || 47785 <= A && A <= 47811 || 47813 <= A && A <= 47839 || 47841 <= A && A <= 47867 || 47869 <= A && A <= 47895 || 47897 <= A && A <= 47923 || 47925 <= A && A <= 47951 || 47953 <= A && A <= 47979 || 47981 <= A && A <= 48007 || 48009 <= A && A <= 48035 || 48037 <= A && A <= 48063 || 48065 <= A && A <= 48091 || 48093 <= A && A <= 48119 || 48121 <= A && A <= 48147 || 48149 <= A && A <= 48175 || 48177 <= A && A <= 48203 || 48205 <= A && A <= 48231 || 48233 <= A && A <= 48259 || 48261 <= A && A <= 48287 || 48289 <= A && A <= 48315 || 48317 <= A && A <= 48343 || 48345 <= A && A <= 48371 || 48373 <= A && A <= 48399 || 48401 <= A && A <= 48427 || 48429 <= A && A <= 48455 || 48457 <= A && A <= 48483 || 48485 <= A && A <= 48511 || 48513 <= A && A <= 48539 || 48541 <= A && A <= 48567 || 48569 <= A && A <= 48595 || 48597 <= A && A <= 48623 || 48625 <= A && A <= 48651 || 48653 <= A && A <= 48679 || 48681 <= A && A <= 48707 || 48709 <= A && A <= 48735 || 48737 <= A && A <= 48763 || 48765 <= A && A <= 48791 || 48793 <= A && A <= 48819 || 48821 <= A && A <= 48847 || 48849 <= A && A <= 48875 || 48877 <= A && A <= 48903 || 48905 <= A && A <= 48931 || 48933 <= A && A <= 48959 || 48961 <= A && A <= 48987 || 48989 <= A && A <= 49015 || 49017 <= A && A <= 49043 || 49045 <= A && A <= 49071 || 49073 <= A && A <= 49099 || 49101 <= A && A <= 49127 || 49129 <= A && A <= 49155 || 49157 <= A && A <= 49183 || 49185 <= A && A <= 49211 || 49213 <= A && A <= 49239 || 49241 <= A && A <= 49267 || 49269 <= A && A <= 49295 || 49297 <= A && A <= 49323 || 49325 <= A && A <= 49351 || 49353 <= A && A <= 49379 || 49381 <= A && A <= 49407 || 49409 <= A && A <= 49435 || 49437 <= A && A <= 49463 || 49465 <= A && A <= 49491 || 49493 <= A && A <= 49519 || 49521 <= A && A <= 49547 || 49549 <= A && A <= 49575 || 49577 <= A && A <= 49603 || 49605 <= A && A <= 49631 || 49633 <= A && A <= 49659 || 49661 <= A && A <= 49687 || 49689 <= A && A <= 49715 || 49717 <= A && A <= 49743 || 49745 <= A && A <= 49771 || 49773 <= A && A <= 49799 || 49801 <= A && A <= 49827 || 49829 <= A && A <= 49855 || 49857 <= A && A <= 49883 || 49885 <= A && A <= 49911 || 49913 <= A && A <= 49939 || 49941 <= A && A <= 49967 || 49969 <= A && A <= 49995 || 49997 <= A && A <= 50023 || 50025 <= A && A <= 50051 || 50053 <= A && A <= 50079 || 50081 <= A && A <= 50107 || 50109 <= A && A <= 50135 || 50137 <= A && A <= 50163 || 50165 <= A && A <= 50191 || 50193 <= A && A <= 50219 || 50221 <= A && A <= 50247 || 50249 <= A && A <= 50275 || 50277 <= A && A <= 50303 || 50305 <= A && A <= 50331 || 50333 <= A && A <= 50359 || 50361 <= A && A <= 50387 || 50389 <= A && A <= 50415 || 50417 <= A && A <= 50443 || 50445 <= A && A <= 50471 || 50473 <= A && A <= 50499 || 50501 <= A && A <= 50527 || 50529 <= A && A <= 50555 || 50557 <= A && A <= 50583 || 50585 <= A && A <= 50611 || 50613 <= A && A <= 50639 || 50641 <= A && A <= 50667 || 50669 <= A && A <= 50695 || 50697 <= A && A <= 50723 || 50725 <= A && A <= 50751 || 50753 <= A && A <= 50779 || 50781 <= A && A <= 50807 || 50809 <= A && A <= 50835 || 50837 <= A && A <= 50863 || 50865 <= A && A <= 50891 || 50893 <= A && A <= 50919 || 50921 <= A && A <= 50947 || 50949 <= A && A <= 50975 || 50977 <= A && A <= 51003 || 51005 <= A && A <= 51031 || 51033 <= A && A <= 51059 || 51061 <= A && A <= 51087 || 51089 <= A && A <= 51115 || 51117 <= A && A <= 51143 || 51145 <= A && A <= 51171 || 51173 <= A && A <= 51199 || 51201 <= A && A <= 51227 || 51229 <= A && A <= 51255 || 51257 <= A && A <= 51283 || 51285 <= A && A <= 51311 || 51313 <= A && A <= 51339 || 51341 <= A && A <= 51367 || 51369 <= A && A <= 51395 || 51397 <= A && A <= 51423 || 51425 <= A && A <= 51451 || 51453 <= A && A <= 51479 || 51481 <= A && A <= 51507 || 51509 <= A && A <= 51535 || 51537 <= A && A <= 51563 || 51565 <= A && A <= 51591 || 51593 <= A && A <= 51619 || 51621 <= A && A <= 51647 || 51649 <= A && A <= 51675 || 51677 <= A && A <= 51703 || 51705 <= A && A <= 51731 || 51733 <= A && A <= 51759 || 51761 <= A && A <= 51787 || 51789 <= A && A <= 51815 || 51817 <= A && A <= 51843 || 51845 <= A && A <= 51871 || 51873 <= A && A <= 51899 || 51901 <= A && A <= 51927 || 51929 <= A && A <= 51955 || 51957 <= A && A <= 51983 || 51985 <= A && A <= 52011 || 52013 <= A && A <= 52039 || 52041 <= A && A <= 52067 || 52069 <= A && A <= 52095 || 52097 <= A && A <= 52123 || 52125 <= A && A <= 52151 || 52153 <= A && A <= 52179 || 52181 <= A && A <= 52207 || 52209 <= A && A <= 52235 || 52237 <= A && A <= 52263 || 52265 <= A && A <= 52291 || 52293 <= A && A <= 52319 || 52321 <= A && A <= 52347 || 52349 <= A && A <= 52375 || 52377 <= A && A <= 52403 || 52405 <= A && A <= 52431 || 52433 <= A && A <= 52459 || 52461 <= A && A <= 52487 || 52489 <= A && A <= 52515 || 52517 <= A && A <= 52543 || 52545 <= A && A <= 52571 || 52573 <= A && A <= 52599 || 52601 <= A && A <= 52627 || 52629 <= A && A <= 52655 || 52657 <= A && A <= 52683 || 52685 <= A && A <= 52711 || 52713 <= A && A <= 52739 || 52741 <= A && A <= 52767 || 52769 <= A && A <= 52795 || 52797 <= A && A <= 52823 || 52825 <= A && A <= 52851 || 52853 <= A && A <= 52879 || 52881 <= A && A <= 52907 || 52909 <= A && A <= 52935 || 52937 <= A && A <= 52963 || 52965 <= A && A <= 52991 || 52993 <= A && A <= 53019 || 53021 <= A && A <= 53047 || 53049 <= A && A <= 53075 || 53077 <= A && A <= 53103 || 53105 <= A && A <= 53131 || 53133 <= A && A <= 53159 || 53161 <= A && A <= 53187 || 53189 <= A && A <= 53215 || 53217 <= A && A <= 53243 || 53245 <= A && A <= 53271 || 53273 <= A && A <= 53299 || 53301 <= A && A <= 53327 || 53329 <= A && A <= 53355 || 53357 <= A && A <= 53383 || 53385 <= A && A <= 53411 || 53413 <= A && A <= 53439 || 53441 <= A && A <= 53467 || 53469 <= A && A <= 53495 || 53497 <= A && A <= 53523 || 53525 <= A && A <= 53551 || 53553 <= A && A <= 53579 || 53581 <= A && A <= 53607 || 53609 <= A && A <= 53635 || 53637 <= A && A <= 53663 || 53665 <= A && A <= 53691 || 53693 <= A && A <= 53719 || 53721 <= A && A <= 53747 || 53749 <= A && A <= 53775 || 53777 <= A && A <= 53803 || 53805 <= A && A <= 53831 || 53833 <= A && A <= 53859 || 53861 <= A && A <= 53887 || 53889 <= A && A <= 53915 || 53917 <= A && A <= 53943 || 53945 <= A && A <= 53971 || 53973 <= A && A <= 53999 || 54001 <= A && A <= 54027 || 54029 <= A && A <= 54055 || 54057 <= A && A <= 54083 || 54085 <= A && A <= 54111 || 54113 <= A && A <= 54139 || 54141 <= A && A <= 54167 || 54169 <= A && A <= 54195 || 54197 <= A && A <= 54223 || 54225 <= A && A <= 54251 || 54253 <= A && A <= 54279 || 54281 <= A && A <= 54307 || 54309 <= A && A <= 54335 || 54337 <= A && A <= 54363 || 54365 <= A && A <= 54391 || 54393 <= A && A <= 54419 || 54421 <= A && A <= 54447 || 54449 <= A && A <= 54475 || 54477 <= A && A <= 54503 || 54505 <= A && A <= 54531 || 54533 <= A && A <= 54559 || 54561 <= A && A <= 54587 || 54589 <= A && A <= 54615 || 54617 <= A && A <= 54643 || 54645 <= A && A <= 54671 || 54673 <= A && A <= 54699 || 54701 <= A && A <= 54727 || 54729 <= A && A <= 54755 || 54757 <= A && A <= 54783 || 54785 <= A && A <= 54811 || 54813 <= A && A <= 54839 || 54841 <= A && A <= 54867 || 54869 <= A && A <= 54895 || 54897 <= A && A <= 54923 || 54925 <= A && A <= 54951 || 54953 <= A && A <= 54979 || 54981 <= A && A <= 55007 || 55009 <= A && A <= 55035 || 55037 <= A && A <= 55063 || 55065 <= A && A <= 55091 || 55093 <= A && A <= 55119 || 55121 <= A && A <= 55147 || 55149 <= A && A <= 55175 || 55177 <= A && A <= 55203 ? u : A == 9757 || A == 9977 || 9994 <= A && A <= 9997 || A == 127877 || 127938 <= A && A <= 127940 || A == 127943 || 127946 <= A && A <= 127948 || 128066 <= A && A <= 128067 || 128070 <= A && A <= 128080 || A == 128110 || 128112 <= A && A <= 128120 || A == 128124 || 128129 <= A && A <= 128131 || 128133 <= A && A <= 128135 || A == 128170 || 128372 <= A && A <= 128373 || A == 128378 || A == 128400 || 128405 <= A && A <= 128406 || 128581 <= A && A <= 128583 || 128587 <= A && A <= 128591 || A == 128675 || 128692 <= A && A <= 128694 || A == 128704 || A == 128716 || 129304 <= A && A <= 129308 || 129310 <= A && A <= 129311 || A == 129318 || 129328 <= A && A <= 129337 || 129341 <= A && A <= 129342 || 129489 <= A && A <= 129501 ? h : 127995 <= A && A <= 127999 ? p : A == 8205 ? m : A == 9792 || A == 9794 || 9877 <= A && A <= 9878 || A == 9992 || A == 10084 || A == 127752 || A == 127806 || A == 127859 || A == 127891 || A == 127908 || A == 127912 || A == 127979 || A == 127981 || A == 128139 || 128187 <= A && A <= 128188 || A == 128295 || A == 128300 || A == 128488 || A == 128640 || A == 128658 ? y : 128102 <= A && A <= 128105 ? b : g
            }

            return this
        }

        typeof iB != "undefined" && iB.exports && (iB.exports = TRe)
    });
    var Z_ = w((jat, X_) => {
        var ORe = /^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/, nB;

        function MRe() {
            if (nB) return nB;
            if (typeof Intl.Segmenter != "undefined") {
                let t = new Intl.Segmenter("en", {granularity: "grapheme"});
                return nB = e => Array.from(t.segment(e), ({segment: r}) => r)
            } else {
                let t = V_(), e = new t;
                return nB = r => e.splitGraphemes(r)
            }
        }

        X_.exports = (t, e = 0, r = t.length) => {
            if (e < 0 || r < 0) throw new RangeError("Negative indices aren't supported by this implementation");
            let i = r - e, n = "", s = 0, o = 0;
            for (; t.length > 0;) {
                let a = t.match(ORe) || [t, t, void 0], l = MRe()(a[1]), c = Math.min(e - s, l.length);
                l = l.slice(c);
                let u = Math.min(i - o, l.length);
                n += l.slice(0, u).join(""), s += c, o += u, typeof a[2] != "undefined" && (n += a[2]), t = t.slice(a[0].length)
            }
            return n
        }
    });
    var af = w((mAt, g6) => {
        "use strict";
        var f6 = new Map([["C", "cwd"], ["f", "file"], ["z", "gzip"], ["P", "preservePaths"], ["U", "unlink"], ["strip-components", "strip"], ["stripComponents", "strip"], ["keep-newer", "newer"], ["keepNewer", "newer"], ["keep-newer-files", "newer"], ["keepNewerFiles", "newer"], ["k", "keep"], ["keep-existing", "keep"], ["keepExisting", "keep"], ["m", "noMtime"], ["no-mtime", "noMtime"], ["p", "preserveOwner"], ["L", "follow"], ["h", "follow"]]),
            CAt = g6.exports = t => t ? Object.keys(t).map(e => [f6.has(e) ? f6.get(e) : e, t[e]]).reduce((e, r) => (e[r[0]] = r[1], e), Object.create(null)) : {}
    });
    var Af = w((EAt, h6) => {
        "use strict";
        var XRe = require("events"), p6 = require("stream"), Jd = bp(), d6 = require("string_decoder").StringDecoder,
            oA = Symbol("EOF"), Wd = Symbol("maybeEmitEnd"), pl = Symbol("emittedEnd"), cB = Symbol("emittingEnd"),
            uB = Symbol("closed"), C6 = Symbol("read"), pD = Symbol("flush"), m6 = Symbol("flushChunk"),
            Nn = Symbol("encoding"), aA = Symbol("decoder"), gB = Symbol("flowing"), zd = Symbol("paused"),
            _d = Symbol("resume"), pn = Symbol("bufferLength"), E6 = Symbol("bufferPush"), dD = Symbol("bufferShift"),
            _i = Symbol("objectMode"), Vi = Symbol("destroyed"), I6 = global._MP_NO_ITERATOR_SYMBOLS_ !== "1",
            ZRe = I6 && Symbol.asyncIterator || Symbol("asyncIterator not implemented"),
            $Re = I6 && Symbol.iterator || Symbol("iterator not implemented"),
            y6 = t => t === "end" || t === "finish" || t === "prefinish",
            eFe = t => t instanceof ArrayBuffer || typeof t == "object" && t.constructor && t.constructor.name === "ArrayBuffer" && t.byteLength >= 0,
            tFe = t => !Buffer.isBuffer(t) && ArrayBuffer.isView(t);
        h6.exports = class w6 extends p6 {
            constructor(e) {
                super();
                this[gB] = !1, this[zd] = !1, this.pipes = new Jd, this.buffer = new Jd, this[_i] = e && e.objectMode || !1, this[_i] ? this[Nn] = null : this[Nn] = e && e.encoding || null, this[Nn] === "buffer" && (this[Nn] = null), this[aA] = this[Nn] ? new d6(this[Nn]) : null, this[oA] = !1, this[pl] = !1, this[cB] = !1, this[uB] = !1, this.writable = !0, this.readable = !0, this[pn] = 0, this[Vi] = !1
            }

            get bufferLength() {
                return this[pn]
            }

            get encoding() {
                return this[Nn]
            }

            set encoding(e) {
                if (this[_i]) throw new Error("cannot set encoding in objectMode");
                if (this[Nn] && e !== this[Nn] && (this[aA] && this[aA].lastNeed || this[pn])) throw new Error("cannot change encoding");
                this[Nn] !== e && (this[aA] = e ? new d6(e) : null, this.buffer.length && (this.buffer = this.buffer.map(r => this[aA].write(r)))), this[Nn] = e
            }

            setEncoding(e) {
                this.encoding = e
            }

            get objectMode() {
                return this[_i]
            }

            set objectMode(e) {
                this[_i] = this[_i] || !!e
            }

            write(e, r, i) {
                if (this[oA]) throw new Error("write after end");
                return this[Vi] ? (this.emit("error", Object.assign(new Error("Cannot call write after a stream was destroyed"), {code: "ERR_STREAM_DESTROYED"})), !0) : (typeof r == "function" && (i = r, r = "utf8"), r || (r = "utf8"), !this[_i] && !Buffer.isBuffer(e) && (tFe(e) ? e = Buffer.from(e.buffer, e.byteOffset, e.byteLength) : eFe(e) ? e = Buffer.from(e) : typeof e != "string" && (this.objectMode = !0)), !this.objectMode && !e.length ? (this[pn] !== 0 && this.emit("readable"), i && i(), this.flowing) : (typeof e == "string" && !this[_i] && !(r === this[Nn] && !this[aA].lastNeed) && (e = Buffer.from(e, r)), Buffer.isBuffer(e) && this[Nn] && (e = this[aA].write(e)), this.flowing ? (this[pn] !== 0 && this[pD](!0), this.emit("data", e)) : this[E6](e), this[pn] !== 0 && this.emit("readable"), i && i(), this.flowing))
            }

            read(e) {
                if (this[Vi]) return null;
                try {
                    return this[pn] === 0 || e === 0 || e > this[pn] ? null : (this[_i] && (e = null), this.buffer.length > 1 && !this[_i] && (this.encoding ? this.buffer = new Jd([Array.from(this.buffer).join("")]) : this.buffer = new Jd([Buffer.concat(Array.from(this.buffer), this[pn])])), this[C6](e || null, this.buffer.head.value))
                } finally {
                    this[Wd]()
                }
            }

            [C6](e, r) {
                return e === r.length || e === null ? this[dD]() : (this.buffer.head.value = r.slice(e), r = r.slice(0, e), this[pn] -= e), this.emit("data", r), !this.buffer.length && !this[oA] && this.emit("drain"), r
            }

            end(e, r, i) {
                return typeof e == "function" && (i = e, e = null), typeof r == "function" && (i = r, r = "utf8"), e && this.write(e, r), i && this.once("end", i), this[oA] = !0, this.writable = !1, (this.flowing || !this[zd]) && this[Wd](), this
            }

            [_d]() {
                this[Vi] || (this[zd] = !1, this[gB] = !0, this.emit("resume"), this.buffer.length ? this[pD]() : this[oA] ? this[Wd]() : this.emit("drain"))
            }

            resume() {
                return this[_d]()
            }

            pause() {
                this[gB] = !1, this[zd] = !0
            }

            get destroyed() {
                return this[Vi]
            }

            get flowing() {
                return this[gB]
            }

            get paused() {
                return this[zd]
            }

            [E6](e) {
                return this[_i] ? this[pn] += 1 : this[pn] += e.length, this.buffer.push(e)
            }

            [dD]() {
                return this.buffer.length && (this[_i] ? this[pn] -= 1 : this[pn] -= this.buffer.head.value.length), this.buffer.shift()
            }

            [pD](e) {
                do ; while (this[m6](this[dD]()));
                !e && !this.buffer.length && !this[oA] && this.emit("drain")
            }

            [m6](e) {
                return e ? (this.emit("data", e), this.flowing) : !1
            }

            pipe(e, r) {
                if (this[Vi]) return;
                let i = this[pl];
                r = r || {}, e === process.stdout || e === process.stderr ? r.end = !1 : r.end = r.end !== !1;
                let n = {dest: e, opts: r, ondrain: s => this[_d]()};
                return this.pipes.push(n), e.on("drain", n.ondrain), this[_d](), i && n.opts.end && n.dest.end(), e
            }

            addListener(e, r) {
                return this.on(e, r)
            }

            on(e, r) {
                try {
                    return super.on(e, r)
                } finally {
                    e === "data" && !this.pipes.length && !this.flowing ? this[_d]() : y6(e) && this[pl] && (super.emit(e), this.removeAllListeners(e))
                }
            }

            get emittedEnd() {
                return this[pl]
            }

            [Wd]() {
                !this[cB] && !this[pl] && !this[Vi] && this.buffer.length === 0 && this[oA] && (this[cB] = !0, this.emit("end"), this.emit("prefinish"), this.emit("finish"), this[uB] && this.emit("close"), this[cB] = !1)
            }

            emit(e, r) {
                if (e !== "error" && e !== "close" && e !== Vi && this[Vi]) return;
                if (e === "data") {
                    if (!r) return;
                    this.pipes.length && this.pipes.forEach(n => n.dest.write(r) === !1 && this.pause())
                } else if (e === "end") {
                    if (this[pl] === !0) return;
                    this[pl] = !0, this.readable = !1, this[aA] && (r = this[aA].end(), r && (this.pipes.forEach(n => n.dest.write(r)), super.emit("data", r))), this.pipes.forEach(n => {
                        n.dest.removeListener("drain", n.ondrain), n.opts.end && n.dest.end()
                    })
                } else if (e === "close" && (this[uB] = !0, !this[pl] && !this[Vi])) return;
                let i = new Array(arguments.length);
                if (i[0] = e, i[1] = r, arguments.length > 2) for (let n = 2; n < arguments.length; n++) i[n] = arguments[n];
                try {
                    return super.emit.apply(this, i)
                } finally {
                    y6(e) ? this.removeAllListeners(e) : this[Wd]()
                }
            }

            collect() {
                let e = [];
                this[_i] || (e.dataLength = 0);
                let r = this.promise();
                return this.on("data", i => {
                    e.push(i), this[_i] || (e.dataLength += i.length)
                }), r.then(() => e)
            }

            concat() {
                return this[_i] ? Promise.reject(new Error("cannot concat in objectMode")) : this.collect().then(e => this[_i] ? Promise.reject(new Error("cannot concat in objectMode")) : this[Nn] ? e.join("") : Buffer.concat(e, e.dataLength))
            }

            promise() {
                return new Promise((e, r) => {
                    this.on(Vi, () => r(new Error("stream destroyed"))), this.on("end", () => e()), this.on("error", i => r(i))
                })
            }

            [ZRe]() {
                return {
                    next: () => {
                        let r = this.read();
                        if (r !== null) return Promise.resolve({done: !1, value: r});
                        if (this[oA]) return Promise.resolve({done: !0});
                        let i = null, n = null, s = c => {
                            this.removeListener("data", o), this.removeListener("end", a), n(c)
                        }, o = c => {
                            this.removeListener("error", s), this.removeListener("end", a), this.pause(), i({
                                value: c,
                                done: !!this[oA]
                            })
                        }, a = () => {
                            this.removeListener("error", s), this.removeListener("data", o), i({done: !0})
                        }, l = () => s(new Error("stream destroyed"));
                        return new Promise((c, u) => {
                            n = u, i = c, this.once(Vi, l), this.once("error", s), this.once("end", a), this.once("data", o)
                        })
                    }
                }
            }

            [$Re]() {
                return {
                    next: () => {
                        let r = this.read();
                        return {value: r, done: r === null}
                    }
                }
            }

            destroy(e) {
                return this[Vi] ? (e ? this.emit("error", e) : this.emit(Vi), this) : (this[Vi] = !0, this.buffer = new Jd, this[pn] = 0, typeof this.close == "function" && !this[uB] && this.close(), e ? this.emit("error", e) : this.emit(Vi), this)
            }

            static isStream(e) {
                return !!e && (e instanceof w6 || e instanceof p6 || e instanceof XRe && (typeof e.pipe == "function" || typeof e.write == "function" && typeof e.end == "function"))
            }
        }
    });
    var b6 = w((IAt, B6) => {
        var rFe = require("zlib").constants || {ZLIB_VERNUM: 4736};
        B6.exports = Object.freeze(Object.assign(Object.create(null), {
            Z_NO_FLUSH: 0,
            Z_PARTIAL_FLUSH: 1,
            Z_SYNC_FLUSH: 2,
            Z_FULL_FLUSH: 3,
            Z_FINISH: 4,
            Z_BLOCK: 5,
            Z_OK: 0,
            Z_STREAM_END: 1,
            Z_NEED_DICT: 2,
            Z_ERRNO: -1,
            Z_STREAM_ERROR: -2,
            Z_DATA_ERROR: -3,
            Z_MEM_ERROR: -4,
            Z_BUF_ERROR: -5,
            Z_VERSION_ERROR: -6,
            Z_NO_COMPRESSION: 0,
            Z_BEST_SPEED: 1,
            Z_BEST_COMPRESSION: 9,
            Z_DEFAULT_COMPRESSION: -1,
            Z_FILTERED: 1,
            Z_HUFFMAN_ONLY: 2,
            Z_RLE: 3,
            Z_FIXED: 4,
            Z_DEFAULT_STRATEGY: 0,
            DEFLATE: 1,
            INFLATE: 2,
            GZIP: 3,
            GUNZIP: 4,
            DEFLATERAW: 5,
            INFLATERAW: 6,
            UNZIP: 7,
            BROTLI_DECODE: 8,
            BROTLI_ENCODE: 9,
            Z_MIN_WINDOWBITS: 8,
            Z_MAX_WINDOWBITS: 15,
            Z_DEFAULT_WINDOWBITS: 15,
            Z_MIN_CHUNK: 64,
            Z_MAX_CHUNK: Infinity,
            Z_DEFAULT_CHUNK: 16384,
            Z_MIN_MEMLEVEL: 1,
            Z_MAX_MEMLEVEL: 9,
            Z_DEFAULT_MEMLEVEL: 8,
            Z_MIN_LEVEL: -1,
            Z_MAX_LEVEL: 9,
            Z_DEFAULT_LEVEL: -1,
            BROTLI_OPERATION_PROCESS: 0,
            BROTLI_OPERATION_FLUSH: 1,
            BROTLI_OPERATION_FINISH: 2,
            BROTLI_OPERATION_EMIT_METADATA: 3,
            BROTLI_MODE_GENERIC: 0,
            BROTLI_MODE_TEXT: 1,
            BROTLI_MODE_FONT: 2,
            BROTLI_DEFAULT_MODE: 0,
            BROTLI_MIN_QUALITY: 0,
            BROTLI_MAX_QUALITY: 11,
            BROTLI_DEFAULT_QUALITY: 11,
            BROTLI_MIN_WINDOW_BITS: 10,
            BROTLI_MAX_WINDOW_BITS: 24,
            BROTLI_LARGE_MAX_WINDOW_BITS: 30,
            BROTLI_DEFAULT_WINDOW: 22,
            BROTLI_MIN_INPUT_BLOCK_BITS: 16,
            BROTLI_MAX_INPUT_BLOCK_BITS: 24,
            BROTLI_PARAM_MODE: 0,
            BROTLI_PARAM_QUALITY: 1,
            BROTLI_PARAM_LGWIN: 2,
            BROTLI_PARAM_LGBLOCK: 3,
            BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4,
            BROTLI_PARAM_SIZE_HINT: 5,
            BROTLI_PARAM_LARGE_WINDOW: 6,
            BROTLI_PARAM_NPOSTFIX: 7,
            BROTLI_PARAM_NDIRECT: 8,
            BROTLI_DECODER_RESULT_ERROR: 0,
            BROTLI_DECODER_RESULT_SUCCESS: 1,
            BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2,
            BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3,
            BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0,
            BROTLI_DECODER_PARAM_LARGE_WINDOW: 1,
            BROTLI_DECODER_NO_ERROR: 0,
            BROTLI_DECODER_SUCCESS: 1,
            BROTLI_DECODER_NEEDS_MORE_INPUT: 2,
            BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3,
            BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1,
            BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2,
            BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3,
            BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4,
            BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5,
            BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6,
            BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7,
            BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8,
            BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9,
            BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10,
            BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11,
            BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12,
            BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13,
            BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14,
            BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15,
            BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16,
            BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19,
            BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20,
            BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21,
            BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22,
            BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25,
            BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26,
            BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27,
            BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30,
            BROTLI_DECODER_ERROR_UNREACHABLE: -31
        }, rFe))
    });
    var QD = w(os => {
        "use strict";
        var CD = require("assert"), dl = require("buffer").Buffer, Q6 = require("zlib"), zc = os.constants = b6(),
            iFe = Af(), v6 = dl.concat, _c = Symbol("_superWrite"), Vd = class extends Error {
                constructor(e) {
                    super("zlib: " + e.message);
                    this.code = e.code, this.errno = e.errno, this.code || (this.code = "ZLIB_ERROR"), this.message = "zlib: " + e.message, Error.captureStackTrace(this, this.constructor)
                }

                get name() {
                    return "ZlibError"
                }
            }, nFe = Symbol("opts"), Xd = Symbol("flushFlag"), S6 = Symbol("finishFlushFlag"), mD = Symbol("fullFlushFlag"),
            pr = Symbol("handle"), fB = Symbol("onError"), lf = Symbol("sawError"), ED = Symbol("level"),
            ID = Symbol("strategy"), yD = Symbol("ended"), yAt = Symbol("_defaultFullFlush"), wD = class extends iFe {
                constructor(e, r) {
                    if (!e || typeof e != "object") throw new TypeError("invalid options for ZlibBase constructor");
                    super(e);
                    this[lf] = !1, this[yD] = !1, this[nFe] = e, this[Xd] = e.flush, this[S6] = e.finishFlush;
                    try {
                        this[pr] = new Q6[r](e)
                    } catch (i) {
                        throw new Vd(i)
                    }
                    this[fB] = i => {
                        this[lf] || (this[lf] = !0, this.close(), this.emit("error", i))
                    }, this[pr].on("error", i => this[fB](new Vd(i))), this.once("end", () => this.close)
                }

                close() {
                    this[pr] && (this[pr].close(), this[pr] = null, this.emit("close"))
                }

                reset() {
                    if (!this[lf]) return CD(this[pr], "zlib binding closed"), this[pr].reset()
                }

                flush(e) {
                    this.ended || (typeof e != "number" && (e = this[mD]), this.write(Object.assign(dl.alloc(0), {[Xd]: e})))
                }

                end(e, r, i) {
                    return e && this.write(e, r), this.flush(this[S6]), this[yD] = !0, super.end(null, null, i)
                }

                get ended() {
                    return this[yD]
                }

                write(e, r, i) {
                    if (typeof r == "function" && (i = r, r = "utf8"), typeof e == "string" && (e = dl.from(e, r)), this[lf]) return;
                    CD(this[pr], "zlib binding closed");
                    let n = this[pr]._handle, s = n.close;
                    n.close = () => {
                    };
                    let o = this[pr].close;
                    this[pr].close = () => {
                    }, dl.concat = c => c;
                    let a;
                    try {
                        let c = typeof e[Xd] == "number" ? e[Xd] : this[Xd];
                        a = this[pr]._processChunk(e, c), dl.concat = v6
                    } catch (c) {
                        dl.concat = v6, this[fB](new Vd(c))
                    } finally {
                        this[pr] && (this[pr]._handle = n, n.close = s, this[pr].close = o, this[pr].removeAllListeners("error"))
                    }
                    this[pr] && this[pr].on("error", c => this[fB](new Vd(c)));
                    let l;
                    if (a) if (Array.isArray(a) && a.length > 0) {
                        l = this[_c](dl.from(a[0]));
                        for (let c = 1; c < a.length; c++) l = this[_c](a[c])
                    } else l = this[_c](dl.from(a));
                    return i && i(), l
                }

                [_c](e) {
                    return super.write(e)
                }
            }, Cl = class extends wD {
                constructor(e, r) {
                    e = e || {}, e.flush = e.flush || zc.Z_NO_FLUSH, e.finishFlush = e.finishFlush || zc.Z_FINISH, super(e, r), this[mD] = zc.Z_FULL_FLUSH, this[ED] = e.level, this[ID] = e.strategy
                }

                params(e, r) {
                    if (!this[lf]) {
                        if (!this[pr]) throw new Error("cannot switch params when binding is closed");
                        if (!this[pr].params) throw new Error("not supported in this implementation");
                        if (this[ED] !== e || this[ID] !== r) {
                            this.flush(zc.Z_SYNC_FLUSH), CD(this[pr], "zlib binding closed");
                            let i = this[pr].flush;
                            this[pr].flush = (n, s) => {
                                this.flush(n), s()
                            };
                            try {
                                this[pr].params(e, r)
                            } finally {
                                this[pr].flush = i
                            }
                            this[pr] && (this[ED] = e, this[ID] = r)
                        }
                    }
                }
            }, k6 = class extends Cl {
                constructor(e) {
                    super(e, "Deflate")
                }
            }, x6 = class extends Cl {
                constructor(e) {
                    super(e, "Inflate")
                }
            }, BD = Symbol("_portable"), P6 = class extends Cl {
                constructor(e) {
                    super(e, "Gzip");
                    this[BD] = e && !!e.portable
                }

                [_c](e) {
                    return this[BD] ? (this[BD] = !1, e[9] = 255, super[_c](e)) : super[_c](e)
                }
            }, D6 = class extends Cl {
                constructor(e) {
                    super(e, "Gunzip")
                }
            }, R6 = class extends Cl {
                constructor(e) {
                    super(e, "DeflateRaw")
                }
            }, F6 = class extends Cl {
                constructor(e) {
                    super(e, "InflateRaw")
                }
            }, N6 = class extends Cl {
                constructor(e) {
                    super(e, "Unzip")
                }
            }, bD = class extends wD {
                constructor(e, r) {
                    e = e || {}, e.flush = e.flush || zc.BROTLI_OPERATION_PROCESS, e.finishFlush = e.finishFlush || zc.BROTLI_OPERATION_FINISH, super(e, r), this[mD] = zc.BROTLI_OPERATION_FLUSH
                }
            }, L6 = class extends bD {
                constructor(e) {
                    super(e, "BrotliCompress")
                }
            }, T6 = class extends bD {
                constructor(e) {
                    super(e, "BrotliDecompress")
                }
            };
        os.Deflate = k6;
        os.Inflate = x6;
        os.Gzip = P6;
        os.Gunzip = D6;
        os.DeflateRaw = R6;
        os.InflateRaw = F6;
        os.Unzip = N6;
        typeof Q6.BrotliCompress == "function" ? (os.BrotliCompress = L6, os.BrotliDecompress = T6) : os.BrotliCompress = os.BrotliDecompress = class {
            constructor() {
                throw new Error("Brotli is not supported in this version of Node.js")
            }
        }
    });
    var Zd = w(hB => {
        "use strict";
        hB.name = new Map([["0", "File"], ["", "OldFile"], ["1", "Link"], ["2", "SymbolicLink"], ["3", "CharacterDevice"], ["4", "BlockDevice"], ["5", "Directory"], ["6", "FIFO"], ["7", "ContiguousFile"], ["g", "GlobalExtendedHeader"], ["x", "ExtendedHeader"], ["A", "SolarisACL"], ["D", "GNUDumpDir"], ["I", "Inode"], ["K", "NextFileHasLongLinkpath"], ["L", "NextFileHasLongPath"], ["M", "ContinuationFile"], ["N", "OldGnuLongPath"], ["S", "SparseFile"], ["V", "TapeVolumeHeader"], ["X", "OldExtendedHeader"]]);
        hB.code = new Map(Array.from(hB.name).map(t => [t[1], t[0]]))
    });
    var $d = w((vAt, O6) => {
        "use strict";
        var bAt = Zd(), sFe = Af(), vD = Symbol("slurp");
        O6.exports = class extends sFe {
            constructor(e, r, i) {
                super();
                switch (this.pause(), this.extended = r, this.globalExtended = i, this.header = e, this.startBlockSize = 512 * Math.ceil(e.size / 512), this.blockRemain = this.startBlockSize, this.remain = e.size, this.type = e.type, this.meta = !1, this.ignore = !1, this.type) {
                    case"File":
                    case"OldFile":
                    case"Link":
                    case"SymbolicLink":
                    case"CharacterDevice":
                    case"BlockDevice":
                    case"Directory":
                    case"FIFO":
                    case"ContiguousFile":
                    case"GNUDumpDir":
                        break;
                    case"NextFileHasLongLinkpath":
                    case"NextFileHasLongPath":
                    case"OldGnuLongPath":
                    case"GlobalExtendedHeader":
                    case"ExtendedHeader":
                    case"OldExtendedHeader":
                        this.meta = !0;
                        break;
                    default:
                        this.ignore = !0
                }
                this.path = e.path, this.mode = e.mode, this.mode && (this.mode = this.mode & 4095), this.uid = e.uid, this.gid = e.gid, this.uname = e.uname, this.gname = e.gname, this.size = e.size, this.mtime = e.mtime, this.atime = e.atime, this.ctime = e.ctime, this.linkpath = e.linkpath, this.uname = e.uname, this.gname = e.gname, r && this[vD](r), i && this[vD](i, !0)
            }

            write(e) {
                let r = e.length;
                if (r > this.blockRemain) throw new Error("writing more to entry than is appropriate");
                let i = this.remain, n = this.blockRemain;
                return this.remain = Math.max(0, i - r), this.blockRemain = Math.max(0, n - r), this.ignore ? !0 : i >= r ? super.write(e) : super.write(e.slice(0, i))
            }

            [vD](e, r) {
                for (let i in e) e[i] !== null && e[i] !== void 0 && !(r && i === "path") && (this[i] = e[i])
            }
        }
    });
    var U6 = w(SD => {
        "use strict";
        var SAt = SD.encode = (t, e) => {
            if (Number.isSafeInteger(t)) t < 0 ? aFe(t, e) : oFe(t, e); else throw Error("cannot encode number outside of javascript safe integer range");
            return e
        }, oFe = (t, e) => {
            e[0] = 128;
            for (var r = e.length; r > 1; r--) e[r - 1] = t & 255, t = Math.floor(t / 256)
        }, aFe = (t, e) => {
            e[0] = 255;
            var r = !1;
            t = t * -1;
            for (var i = e.length; i > 1; i--) {
                var n = t & 255;
                t = Math.floor(t / 256), r ? e[i - 1] = M6(n) : n === 0 ? e[i - 1] = 0 : (r = !0, e[i - 1] = K6(n))
            }
        }, kAt = SD.parse = t => {
            var e = t[t.length - 1], r = t[0], i;
            if (r === 128) i = lFe(t.slice(1, t.length)); else if (r === 255) i = AFe(t); else throw Error("invalid base256 encoding");
            if (!Number.isSafeInteger(i)) throw Error("parsed number outside of javascript safe integer range");
            return i
        }, AFe = t => {
            for (var e = t.length, r = 0, i = !1, n = e - 1; n > -1; n--) {
                var s = t[n], o;
                i ? o = M6(s) : s === 0 ? o = s : (i = !0, o = K6(s)), o !== 0 && (r -= o * Math.pow(256, e - n - 1))
            }
            return r
        }, lFe = t => {
            for (var e = t.length, r = 0, i = e - 1; i > -1; i--) {
                var n = t[i];
                n !== 0 && (r += n * Math.pow(256, e - i - 1))
            }
            return r
        }, M6 = t => (255 ^ t) & 255, K6 = t => (255 ^ t) + 1 & 255
    });
    var uf = w((PAt, H6) => {
        "use strict";
        var kD = Zd(), cf = require("path").posix, G6 = U6(), xD = Symbol("slurp"), as = Symbol("type"), j6 = class {
                constructor(e, r, i, n) {
                    this.cksumValid = !1, this.needPax = !1, this.nullBlock = !1, this.block = null, this.path = null, this.mode = null, this.uid = null, this.gid = null, this.size = null, this.mtime = null, this.cksum = null, this[as] = "0", this.linkpath = null, this.uname = null, this.gname = null, this.devmaj = 0, this.devmin = 0, this.atime = null, this.ctime = null, Buffer.isBuffer(e) ? this.decode(e, r || 0, i, n) : e && this.set(e)
                }

                decode(e, r, i, n) {
                    if (r || (r = 0), !e || !(e.length >= r + 512)) throw new Error("need 512 bytes for header");
                    if (this.path = Vc(e, r, 100), this.mode = ml(e, r + 100, 8), this.uid = ml(e, r + 108, 8), this.gid = ml(e, r + 116, 8), this.size = ml(e, r + 124, 12), this.mtime = PD(e, r + 136, 12), this.cksum = ml(e, r + 148, 12), this[xD](i), this[xD](n, !0), this[as] = Vc(e, r + 156, 1), this[as] === "" && (this[as] = "0"), this[as] === "0" && this.path.substr(-1) === "/" && (this[as] = "5"), this[as] === "5" && (this.size = 0), this.linkpath = Vc(e, r + 157, 100), e.slice(r + 257, r + 265).toString() === "ustar\x0000") if (this.uname = Vc(e, r + 265, 32), this.gname = Vc(e, r + 297, 32), this.devmaj = ml(e, r + 329, 8), this.devmin = ml(e, r + 337, 8), e[r + 475] !== 0) {
                        let o = Vc(e, r + 345, 155);
                        this.path = o + "/" + this.path
                    } else {
                        let o = Vc(e, r + 345, 130);
                        o && (this.path = o + "/" + this.path), this.atime = PD(e, r + 476, 12), this.ctime = PD(e, r + 488, 12)
                    }
                    let s = 8 * 32;
                    for (let o = r; o < r + 148; o++) s += e[o];
                    for (let o = r + 156; o < r + 512; o++) s += e[o];
                    this.cksumValid = s === this.cksum, this.cksum === null && s === 8 * 32 && (this.nullBlock = !0)
                }

                [xD](e, r) {
                    for (let i in e) e[i] !== null && e[i] !== void 0 && !(r && i === "path") && (this[i] = e[i])
                }

                encode(e, r) {
                    if (e || (e = this.block = Buffer.alloc(512), r = 0), r || (r = 0), !(e.length >= r + 512)) throw new Error("need 512 bytes for header");
                    let i = this.ctime || this.atime ? 130 : 155, n = cFe(this.path || "", i), s = n[0], o = n[1];
                    this.needPax = n[2], this.needPax = Xc(e, r, 100, s) || this.needPax, this.needPax = El(e, r + 100, 8, this.mode) || this.needPax, this.needPax = El(e, r + 108, 8, this.uid) || this.needPax, this.needPax = El(e, r + 116, 8, this.gid) || this.needPax, this.needPax = El(e, r + 124, 12, this.size) || this.needPax, this.needPax = DD(e, r + 136, 12, this.mtime) || this.needPax, e[r + 156] = this[as].charCodeAt(0), this.needPax = Xc(e, r + 157, 100, this.linkpath) || this.needPax, e.write("ustar\x0000", r + 257, 8), this.needPax = Xc(e, r + 265, 32, this.uname) || this.needPax, this.needPax = Xc(e, r + 297, 32, this.gname) || this.needPax, this.needPax = El(e, r + 329, 8, this.devmaj) || this.needPax, this.needPax = El(e, r + 337, 8, this.devmin) || this.needPax, this.needPax = Xc(e, r + 345, i, o) || this.needPax, e[r + 475] !== 0 ? this.needPax = Xc(e, r + 345, 155, o) || this.needPax : (this.needPax = Xc(e, r + 345, 130, o) || this.needPax, this.needPax = DD(e, r + 476, 12, this.atime) || this.needPax, this.needPax = DD(e, r + 488, 12, this.ctime) || this.needPax);
                    let a = 8 * 32;
                    for (let l = r; l < r + 148; l++) a += e[l];
                    for (let l = r + 156; l < r + 512; l++) a += e[l];
                    return this.cksum = a, El(e, r + 148, 8, this.cksum), this.cksumValid = !0, this.needPax
                }

                set(e) {
                    for (let r in e) e[r] !== null && e[r] !== void 0 && (this[r] = e[r])
                }

                get type() {
                    return kD.name.get(this[as]) || this[as]
                }

                get typeKey() {
                    return this[as]
                }

                set type(e) {
                    kD.code.has(e) ? this[as] = kD.code.get(e) : this[as] = e
                }
            }, cFe = (t, e) => {
                let r = 100, i = t, n = "", s, o = cf.parse(t).root || ".";
                if (Buffer.byteLength(i) < r) s = [i, n, !1]; else {
                    n = cf.dirname(i), i = cf.basename(i);
                    do Buffer.byteLength(i) <= r && Buffer.byteLength(n) <= e ? s = [i, n, !1] : Buffer.byteLength(i) > r && Buffer.byteLength(n) <= e ? s = [i.substr(0, r - 1), n, !0] : (i = cf.join(cf.basename(n), i), n = cf.dirname(n)); while (n !== o && !s);
                    s || (s = [t.substr(0, r - 1), "", !0])
                }
                return s
            }, Vc = (t, e, r) => t.slice(e, e + r).toString("utf8").replace(/\0.*/, ""), PD = (t, e, r) => uFe(ml(t, e, r)),
            uFe = t => t === null ? null : new Date(t * 1e3),
            ml = (t, e, r) => t[e] & 128 ? G6.parse(t.slice(e, e + r)) : gFe(t, e, r), fFe = t => isNaN(t) ? null : t,
            gFe = (t, e, r) => fFe(parseInt(t.slice(e, e + r).toString("utf8").replace(/\0.*$/, "").trim(), 8)),
            hFe = {12: 8589934591, 8: 2097151},
            El = (t, e, r, i) => i === null ? !1 : i > hFe[r] || i < 0 ? (G6.encode(i, t.slice(e, e + r)), !0) : (pFe(t, e, r, i), !1),
            pFe = (t, e, r, i) => t.write(dFe(i, r), e, r, "ascii"), dFe = (t, e) => CFe(Math.floor(t).toString(8), e),
            CFe = (t, e) => (t.length === e - 1 ? t : new Array(e - t.length - 1).join("0") + t + " ") + "\0",
            DD = (t, e, r, i) => i === null ? !1 : El(t, e, r, i.getTime() / 1e3), mFe = new Array(156).join("\0"),
            Xc = (t, e, r, i) => i === null ? !1 : (t.write(i + mFe, e, r, "utf8"), i.length !== Buffer.byteLength(i) || i.length > r);
        H6.exports = j6
    });
    var dB = w((DAt, Y6) => {
        "use strict";
        var EFe = uf(), IFe = require("path"), pB = class {
            constructor(e, r) {
                this.atime = e.atime || null, this.charset = e.charset || null, this.comment = e.comment || null, this.ctime = e.ctime || null, this.gid = e.gid || null, this.gname = e.gname || null, this.linkpath = e.linkpath || null, this.mtime = e.mtime || null, this.path = e.path || null, this.size = e.size || null, this.uid = e.uid || null, this.uname = e.uname || null, this.dev = e.dev || null, this.ino = e.ino || null, this.nlink = e.nlink || null, this.global = r || !1
            }

            encode() {
                let e = this.encodeBody();
                if (e === "") return null;
                let r = Buffer.byteLength(e), i = 512 * Math.ceil(1 + r / 512), n = Buffer.allocUnsafe(i);
                for (let s = 0; s < 512; s++) n[s] = 0;
                new EFe({
                    path: ("PaxHeader/" + IFe.basename(this.path)).slice(0, 99),
                    mode: this.mode || 420,
                    uid: this.uid || null,
                    gid: this.gid || null,
                    size: r,
                    mtime: this.mtime || null,
                    type: this.global ? "GlobalExtendedHeader" : "ExtendedHeader",
                    linkpath: "",
                    uname: this.uname || "",
                    gname: this.gname || "",
                    devmaj: 0,
                    devmin: 0,
                    atime: this.atime || null,
                    ctime: this.ctime || null
                }).encode(n), n.write(e, 512, r, "utf8");
                for (let s = r + 512; s < n.length; s++) n[s] = 0;
                return n
            }

            encodeBody() {
                return this.encodeField("path") + this.encodeField("ctime") + this.encodeField("atime") + this.encodeField("dev") + this.encodeField("ino") + this.encodeField("nlink") + this.encodeField("charset") + this.encodeField("comment") + this.encodeField("gid") + this.encodeField("gname") + this.encodeField("linkpath") + this.encodeField("mtime") + this.encodeField("size") + this.encodeField("uid") + this.encodeField("uname")
            }

            encodeField(e) {
                if (this[e] === null || this[e] === void 0) return "";
                let r = this[e] instanceof Date ? this[e].getTime() / 1e3 : this[e],
                    i = " " + (e === "dev" || e === "ino" || e === "nlink" ? "SCHILY." : "") + e + "=" + r + `
`, n = Buffer.byteLength(i), s = Math.floor(Math.log(n) / Math.log(10)) + 1;
                return n + s >= Math.pow(10, s) && (s += 1), s + n + i
            }
        };
        pB.parse = (t, e, r) => new pB(yFe(wFe(t), e), r);
        var yFe = (t, e) => e ? Object.keys(t).reduce((r, i) => (r[i] = t[i], r), e) : t,
            wFe = t => t.replace(/\n$/, "").split(`
`).reduce(BFe, Object.create(null)), BFe = (t, e) => {
                let r = parseInt(e, 10);
                if (r !== Buffer.byteLength(e) + 1) return t;
                e = e.substr((r + " ").length);
                let i = e.split("="), n = i.shift().replace(/^SCHILY\.(dev|ino|nlink)/, "$1");
                if (!n) return t;
                let s = i.join("=");
                return t[n] = /^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n) ? new Date(s * 1e3) : /^[0-9]+$/.test(s) ? +s : s, t
            };
        Y6.exports = pB
    });
    var CB = w((RAt, q6) => {
        "use strict";
        q6.exports = t => class extends t {
            warn(e, r, i = {}) {
                this.file && (i.file = this.file), this.cwd && (i.cwd = this.cwd), i.code = r instanceof Error && r.code || e, i.tarCode = e, !this.strict && i.recoverable !== !1 ? (r instanceof Error && (i = Object.assign(r, i), r = r.message), this.emit("warn", i.tarCode, r, i)) : r instanceof Error ? this.emit("error", Object.assign(r, i)) : this.emit("error", Object.assign(new Error(`${e}: ${r}`), i))
            }
        }
    });
    var FD = w((FAt, J6) => {
        "use strict";
        var mB = ["|", "<", ">", "?", ":"], RD = mB.map(t => String.fromCharCode(61440 + t.charCodeAt(0))),
            bFe = new Map(mB.map((t, e) => [t, RD[e]])), QFe = new Map(RD.map((t, e) => [t, mB[e]]));
        J6.exports = {
            encode: t => mB.reduce((e, r) => e.split(r).join(bFe.get(r)), t),
            decode: t => RD.reduce((e, r) => e.split(r).join(QFe.get(r)), t)
        }
    });
    var z6 = w((NAt, W6) => {
        "use strict";
        W6.exports = (t, e, r) => (t &= 4095, r && (t = (t | 384) & ~18), e && (t & 256 && (t |= 64), t & 32 && (t |= 8), t & 4 && (t |= 1)), t)
    });
    var UD = w((KAt, _6) => {
        "use strict";
        var V6 = Af(), X6 = dB(), Z6 = uf(), LAt = $d(), ra = require("fs"), gf = require("path"), TAt = Zd(),
            vFe = 16 * 1024 * 1024, $6 = Symbol("process"), eV = Symbol("file"), tV = Symbol("directory"),
            ND = Symbol("symlink"), rV = Symbol("hardlink"), eC = Symbol("header"), EB = Symbol("read"),
            LD = Symbol("lstat"), IB = Symbol("onlstat"), TD = Symbol("onread"), OD = Symbol("onreadlink"),
            MD = Symbol("openfile"), KD = Symbol("onopenfile"), Zc = Symbol("close"), yB = Symbol("mode"), iV = CB(),
            SFe = FD(), nV = z6(), wB = iV(class extends V6 {
                constructor(e, r) {
                    if (r = r || {}, super(r), typeof e != "string") throw new TypeError("path is required");
                    this.path = e, this.portable = !!r.portable, this.myuid = process.getuid && process.getuid(), this.myuser = process.env.USER || "", this.maxReadSize = r.maxReadSize || vFe, this.linkCache = r.linkCache || new Map, this.statCache = r.statCache || new Map, this.preservePaths = !!r.preservePaths, this.cwd = r.cwd || process.cwd(), this.strict = !!r.strict, this.noPax = !!r.noPax, this.noMtime = !!r.noMtime, this.mtime = r.mtime || null, typeof r.onwarn == "function" && this.on("warn", r.onwarn);
                    let i = !1;
                    if (!this.preservePaths && gf.win32.isAbsolute(e)) {
                        let n = gf.win32.parse(e);
                        this.path = e.substr(n.root.length), i = n.root
                    }
                    this.win32 = !!r.win32 || process.platform === "win32", this.win32 && (this.path = SFe.decode(this.path.replace(/\\/g, "/")), e = e.replace(/\\/g, "/")), this.absolute = r.absolute || gf.resolve(this.cwd, e), this.path === "" && (this.path = "./"), i && this.warn("TAR_ENTRY_INFO", `stripping ${i} from absolute path`, {
                        entry: this,
                        path: i + this.path
                    }), this.statCache.has(this.absolute) ? this[IB](this.statCache.get(this.absolute)) : this[LD]()
                }

                [LD]() {
                    ra.lstat(this.absolute, (e, r) => {
                        if (e) return this.emit("error", e);
                        this[IB](r)
                    })
                }

                [IB](e) {
                    this.statCache.set(this.absolute, e), this.stat = e, e.isFile() || (e.size = 0), this.type = kFe(e), this.emit("stat", e), this[$6]()
                }

                [$6]() {
                    switch (this.type) {
                        case"File":
                            return this[eV]();
                        case"Directory":
                            return this[tV]();
                        case"SymbolicLink":
                            return this[ND]();
                        default:
                            return this.end()
                    }
                }

                [yB](e) {
                    return nV(e, this.type === "Directory", this.portable)
                }

                [eC]() {
                    this.type === "Directory" && this.portable && (this.noMtime = !0), this.header = new Z6({
                        path: this.path,
                        linkpath: this.linkpath,
                        mode: this[yB](this.stat.mode),
                        uid: this.portable ? null : this.stat.uid,
                        gid: this.portable ? null : this.stat.gid,
                        size: this.stat.size,
                        mtime: this.noMtime ? null : this.mtime || this.stat.mtime,
                        type: this.type,
                        uname: this.portable ? null : this.stat.uid === this.myuid ? this.myuser : "",
                        atime: this.portable ? null : this.stat.atime,
                        ctime: this.portable ? null : this.stat.ctime
                    }), this.header.encode() && !this.noPax && this.write(new X6({
                        atime: this.portable ? null : this.header.atime,
                        ctime: this.portable ? null : this.header.ctime,
                        gid: this.portable ? null : this.header.gid,
                        mtime: this.noMtime ? null : this.mtime || this.header.mtime,
                        path: this.path,
                        linkpath: this.linkpath,
                        size: this.header.size,
                        uid: this.portable ? null : this.header.uid,
                        uname: this.portable ? null : this.header.uname,
                        dev: this.portable ? null : this.stat.dev,
                        ino: this.portable ? null : this.stat.ino,
                        nlink: this.portable ? null : this.stat.nlink
                    }).encode()), this.write(this.header.block)
                }

                [tV]() {
                    this.path.substr(-1) !== "/" && (this.path += "/"), this.stat.size = 0, this[eC](), this.end()
                }

                [ND]() {
                    ra.readlink(this.absolute, (e, r) => {
                        if (e) return this.emit("error", e);
                        this[OD](r)
                    })
                }

                [OD](e) {
                    this.linkpath = e.replace(/\\/g, "/"), this[eC](), this.end()
                }

                [rV](e) {
                    this.type = "Link", this.linkpath = gf.relative(this.cwd, e).replace(/\\/g, "/"), this.stat.size = 0, this[eC](), this.end()
                }

                [eV]() {
                    if (this.stat.nlink > 1) {
                        let e = this.stat.dev + ":" + this.stat.ino;
                        if (this.linkCache.has(e)) {
                            let r = this.linkCache.get(e);
                            if (r.indexOf(this.cwd) === 0) return this[rV](r)
                        }
                        this.linkCache.set(e, this.absolute)
                    }
                    if (this[eC](), this.stat.size === 0) return this.end();
                    this[MD]()
                }

                [MD]() {
                    ra.open(this.absolute, "r", (e, r) => {
                        if (e) return this.emit("error", e);
                        this[KD](r)
                    })
                }

                [KD](e) {
                    let r = 512 * Math.ceil(this.stat.size / 512), i = Math.min(r, this.maxReadSize),
                        n = Buffer.allocUnsafe(i);
                    this[EB](e, n, 0, n.length, 0, this.stat.size, r)
                }

                [EB](e, r, i, n, s, o, a) {
                    ra.read(e, r, i, n, s, (l, c) => {
                        if (l) return this[Zc](e, () => this.emit("error", l));
                        this[TD](e, r, i, n, s, o, a, c)
                    })
                }

                [Zc](e, r) {
                    ra.close(e, r)
                }

                [TD](e, r, i, n, s, o, a, l) {
                    if (l <= 0 && o > 0) {
                        let u = new Error("encountered unexpected EOF");
                        return u.path = this.absolute, u.syscall = "read", u.code = "EOF", this[Zc](e, () => this.emit("error", u))
                    }
                    if (l > o) {
                        let u = new Error("did not encounter expected EOF");
                        return u.path = this.absolute, u.syscall = "read", u.code = "EOF", this[Zc](e, () => this.emit("error", u))
                    }
                    if (l === o) for (let u = l; u < n && l < a; u++) r[u + i] = 0, l++, o++;
                    let c = i === 0 && l === r.length ? r : r.slice(i, i + l);
                    if (o -= l, a -= l, s += l, i += l, this.write(c), !o) return a && this.write(Buffer.alloc(a)), this[Zc](e, u => u ? this.emit("error", u) : this.end());
                    i >= n && (r = Buffer.allocUnsafe(n), i = 0), n = r.length - i, this[EB](e, r, i, n, s, o, a)
                }
            }), sV = class extends wB {
                constructor(e, r) {
                    super(e, r)
                }

                [LD]() {
                    this[IB](ra.lstatSync(this.absolute))
                }

                [ND]() {
                    this[OD](ra.readlinkSync(this.absolute))
                }

                [MD]() {
                    this[KD](ra.openSync(this.absolute, "r"))
                }

                [EB](e, r, i, n, s, o, a) {
                    let l = !0;
                    try {
                        let c = ra.readSync(e, r, i, n, s);
                        this[TD](e, r, i, n, s, o, a, c), l = !1
                    } finally {
                        if (l) try {
                            this[Zc](e, () => {
                            })
                        } catch (c) {
                        }
                    }
                }

                [Zc](e, r) {
                    ra.closeSync(e), r()
                }
            }, xFe = iV(class extends V6 {
                constructor(e, r) {
                    r = r || {}, super(r), this.preservePaths = !!r.preservePaths, this.portable = !!r.portable, this.strict = !!r.strict, this.noPax = !!r.noPax, this.noMtime = !!r.noMtime, this.readEntry = e, this.type = e.type, this.type === "Directory" && this.portable && (this.noMtime = !0), this.path = e.path, this.mode = this[yB](e.mode), this.uid = this.portable ? null : e.uid, this.gid = this.portable ? null : e.gid, this.uname = this.portable ? null : e.uname, this.gname = this.portable ? null : e.gname, this.size = e.size, this.mtime = this.noMtime ? null : r.mtime || e.mtime, this.atime = this.portable ? null : e.atime, this.ctime = this.portable ? null : e.ctime, this.linkpath = e.linkpath, typeof r.onwarn == "function" && this.on("warn", r.onwarn);
                    let i = !1;
                    if (gf.isAbsolute(this.path) && !this.preservePaths) {
                        let n = gf.parse(this.path);
                        i = n.root, this.path = this.path.substr(n.root.length)
                    }
                    this.remain = e.size, this.blockRemain = e.startBlockSize, this.header = new Z6({
                        path: this.path,
                        linkpath: this.linkpath,
                        mode: this.mode,
                        uid: this.portable ? null : this.uid,
                        gid: this.portable ? null : this.gid,
                        size: this.size,
                        mtime: this.noMtime ? null : this.mtime,
                        type: this.type,
                        uname: this.portable ? null : this.uname,
                        atime: this.portable ? null : this.atime,
                        ctime: this.portable ? null : this.ctime
                    }), i && this.warn("TAR_ENTRY_INFO", `stripping ${i} from absolute path`, {
                        entry: this,
                        path: i + this.path
                    }), this.header.encode() && !this.noPax && super.write(new X6({
                        atime: this.portable ? null : this.atime,
                        ctime: this.portable ? null : this.ctime,
                        gid: this.portable ? null : this.gid,
                        mtime: this.noMtime ? null : this.mtime,
                        path: this.path,
                        linkpath: this.linkpath,
                        size: this.size,
                        uid: this.portable ? null : this.uid,
                        uname: this.portable ? null : this.uname,
                        dev: this.portable ? null : this.readEntry.dev,
                        ino: this.portable ? null : this.readEntry.ino,
                        nlink: this.portable ? null : this.readEntry.nlink
                    }).encode()), super.write(this.header.block), e.pipe(this)
                }

                [yB](e) {
                    return nV(e, this.type === "Directory", this.portable)
                }

                write(e) {
                    let r = e.length;
                    if (r > this.blockRemain) throw new Error("writing more to entry than is appropriate");
                    return this.blockRemain -= r, super.write(e)
                }

                end() {
                    return this.blockRemain && this.write(Buffer.alloc(this.blockRemain)), super.end()
                }
            });
        wB.Sync = sV;
        wB.Tar = xFe;
        var kFe = t => t.isFile() ? "File" : t.isDirectory() ? "Directory" : t.isSymbolicLink() ? "SymbolicLink" : "Unsupported";
        _6.exports = wB
    });
    var PB = w((HAt, oV) => {
        "use strict";
        var HD = class {
                constructor(e, r) {
                    this.path = e || "./", this.absolute = r, this.entry = null, this.stat = null, this.readdir = null, this.pending = !1, this.ignore = !1, this.piped = !1
                }
            }, PFe = Af(), DFe = QD(), RFe = $d(), GD = UD(), FFe = GD.Sync, NFe = GD.Tar, LFe = bp(),
            aV = Buffer.alloc(1024), BB = Symbol("onStat"), bB = Symbol("ended"), ia = Symbol("queue"),
            ff = Symbol("current"), $c = Symbol("process"), QB = Symbol("processing"), AV = Symbol("processJob"),
            na = Symbol("jobs"), jD = Symbol("jobDone"), vB = Symbol("addFSEntry"), lV = Symbol("addTarEntry"),
            YD = Symbol("stat"), qD = Symbol("readdir"), SB = Symbol("onreaddir"), kB = Symbol("pipe"),
            cV = Symbol("entry"), JD = Symbol("entryOpt"), WD = Symbol("writeEntryClass"), uV = Symbol("write"),
            zD = Symbol("ondrain"), xB = require("fs"), gV = require("path"), TFe = CB(), _D = TFe(class extends PFe {
                constructor(e) {
                    super(e);
                    e = e || Object.create(null), this.opt = e, this.file = e.file || "", this.cwd = e.cwd || process.cwd(), this.maxReadSize = e.maxReadSize, this.preservePaths = !!e.preservePaths, this.strict = !!e.strict, this.noPax = !!e.noPax, this.prefix = (e.prefix || "").replace(/(\\|\/)+$/, ""), this.linkCache = e.linkCache || new Map, this.statCache = e.statCache || new Map, this.readdirCache = e.readdirCache || new Map, this[WD] = GD, typeof e.onwarn == "function" && this.on("warn", e.onwarn), this.portable = !!e.portable, this.zip = null, e.gzip ? (typeof e.gzip != "object" && (e.gzip = {}), this.portable && (e.gzip.portable = !0), this.zip = new DFe.Gzip(e.gzip), this.zip.on("data", r => super.write(r)), this.zip.on("end", r => super.end()), this.zip.on("drain", r => this[zD]()), this.on("resume", r => this.zip.resume())) : this.on("drain", this[zD]), this.noDirRecurse = !!e.noDirRecurse, this.follow = !!e.follow, this.noMtime = !!e.noMtime, this.mtime = e.mtime || null, this.filter = typeof e.filter == "function" ? e.filter : r => !0, this[ia] = new LFe, this[na] = 0, this.jobs = +e.jobs || 4, this[QB] = !1, this[bB] = !1
                }

                [uV](e) {
                    return super.write(e)
                }

                add(e) {
                    return this.write(e), this
                }

                end(e) {
                    return e && this.write(e), this[bB] = !0, this[$c](), this
                }

                write(e) {
                    if (this[bB]) throw new Error("write after end");
                    return e instanceof RFe ? this[lV](e) : this[vB](e), this.flowing
                }

                [lV](e) {
                    let r = gV.resolve(this.cwd, e.path);
                    if (this.prefix && (e.path = this.prefix + "/" + e.path.replace(/^\.(\/+|$)/, "")), !this.filter(e.path, e)) e.resume(); else {
                        let i = new HD(e.path, r, !1);
                        i.entry = new NFe(e, this[JD](i)), i.entry.on("end", n => this[jD](i)), this[na] += 1, this[ia].push(i)
                    }
                    this[$c]()
                }

                [vB](e) {
                    let r = gV.resolve(this.cwd, e);
                    this.prefix && (e = this.prefix + "/" + e.replace(/^\.(\/+|$)/, "")), this[ia].push(new HD(e, r)), this[$c]()
                }

                [YD](e) {
                    e.pending = !0, this[na] += 1;
                    let r = this.follow ? "stat" : "lstat";
                    xB[r](e.absolute, (i, n) => {
                        e.pending = !1, this[na] -= 1, i ? this.emit("error", i) : this[BB](e, n)
                    })
                }

                [BB](e, r) {
                    this.statCache.set(e.absolute, r), e.stat = r, this.filter(e.path, r) || (e.ignore = !0), this[$c]()
                }

                [qD](e) {
                    e.pending = !0, this[na] += 1, xB.readdir(e.absolute, (r, i) => {
                        if (e.pending = !1, this[na] -= 1, r) return this.emit("error", r);
                        this[SB](e, i)
                    })
                }

                [SB](e, r) {
                    this.readdirCache.set(e.absolute, r), e.readdir = r, this[$c]()
                }

                [$c]() {
                    if (!this[QB]) {
                        this[QB] = !0;
                        for (let e = this[ia].head; e !== null && this[na] < this.jobs; e = e.next) if (this[AV](e.value), e.value.ignore) {
                            let r = e.next;
                            this[ia].removeNode(e), e.next = r
                        }
                        this[QB] = !1, this[bB] && !this[ia].length && this[na] === 0 && (this.zip ? this.zip.end(aV) : (super.write(aV), super.end()))
                    }
                }

                get [ff]() {
                    return this[ia] && this[ia].head && this[ia].head.value
                }

                [jD](e) {
                    this[ia].shift(), this[na] -= 1, this[$c]()
                }

                [AV](e) {
                    if (!e.pending) {
                        if (e.entry) {
                            e === this[ff] && !e.piped && this[kB](e);
                            return
                        }
                        if (e.stat || (this.statCache.has(e.absolute) ? this[BB](e, this.statCache.get(e.absolute)) : this[YD](e)), !!e.stat && !e.ignore && !(!this.noDirRecurse && e.stat.isDirectory() && !e.readdir && (this.readdirCache.has(e.absolute) ? this[SB](e, this.readdirCache.get(e.absolute)) : this[qD](e), !e.readdir))) {
                            if (e.entry = this[cV](e), !e.entry) {
                                e.ignore = !0;
                                return
                            }
                            e === this[ff] && !e.piped && this[kB](e)
                        }
                    }
                }

                [JD](e) {
                    return {
                        onwarn: (r, i, n) => this.warn(r, i, n),
                        noPax: this.noPax,
                        cwd: this.cwd,
                        absolute: e.absolute,
                        preservePaths: this.preservePaths,
                        maxReadSize: this.maxReadSize,
                        strict: this.strict,
                        portable: this.portable,
                        linkCache: this.linkCache,
                        statCache: this.statCache,
                        noMtime: this.noMtime,
                        mtime: this.mtime
                    }
                }

                [cV](e) {
                    this[na] += 1;
                    try {
                        return new this[WD](e.path, this[JD](e)).on("end", () => this[jD](e)).on("error", r => this.emit("error", r))
                    } catch (r) {
                        this.emit("error", r)
                    }
                }

                [zD]() {
                    this[ff] && this[ff].entry && this[ff].entry.resume()
                }

                [kB](e) {
                    e.piped = !0, e.readdir && e.readdir.forEach(n => {
                        let s = this.prefix ? e.path.slice(this.prefix.length + 1) || "./" : e.path,
                            o = s === "./" ? "" : s.replace(/\/*$/, "/");
                        this[vB](o + n)
                    });
                    let r = e.entry, i = this.zip;
                    i ? r.on("data", n => {
                        i.write(n) || r.pause()
                    }) : r.on("data", n => {
                        super.write(n) || r.pause()
                    })
                }

                pause() {
                    return this.zip && this.zip.pause(), super.pause()
                }
            }), fV = class extends _D {
                constructor(e) {
                    super(e);
                    this[WD] = FFe
                }

                pause() {
                }

                resume() {
                }

                [YD](e) {
                    let r = this.follow ? "statSync" : "lstatSync";
                    this[BB](e, xB[r](e.absolute))
                }

                [qD](e, r) {
                    this[SB](e, xB.readdirSync(e.absolute))
                }

                [kB](e) {
                    let r = e.entry, i = this.zip;
                    e.readdir && e.readdir.forEach(n => {
                        let s = this.prefix ? e.path.slice(this.prefix.length + 1) || "./" : e.path,
                            o = s === "./" ? "" : s.replace(/\/*$/, "/");
                        this[vB](o + n)
                    }), i ? r.on("data", n => {
                        i.write(n)
                    }) : r.on("data", n => {
                        super[uV](n)
                    })
                }
            };
        _D.Sync = fV;
        oV.exports = _D
    });
    var Ef = w(tC => {
        "use strict";
        var OFe = Af(), MFe = require("events").EventEmitter, Ks = require("fs"), DB = process.binding("fs"),
            GAt = DB.writeBuffers, KFe = DB.FSReqWrap || DB.FSReqCallback, hf = Symbol("_autoClose"),
            sa = Symbol("_close"), rC = Symbol("_ended"), or = Symbol("_fd"), hV = Symbol("_finished"),
            eu = Symbol("_flags"), VD = Symbol("_flush"), XD = Symbol("_handleChunk"), ZD = Symbol("_makeBuf"),
            $D = Symbol("_mode"), RB = Symbol("_needDrain"), pf = Symbol("_onerror"), df = Symbol("_onopen"),
            eR = Symbol("_onread"), tu = Symbol("_onwrite"), Il = Symbol("_open"), yl = Symbol("_path"),
            ru = Symbol("_pos"), oa = Symbol("_queue"), Cf = Symbol("_read"), pV = Symbol("_readSize"),
            wl = Symbol("_reading"), FB = Symbol("_remain"), dV = Symbol("_size"), NB = Symbol("_write"),
            mf = Symbol("_writing"), LB = Symbol("_defaultFlag"), tR = class extends OFe {
                constructor(e, r) {
                    if (r = r || {}, super(r), this.writable = !1, typeof e != "string") throw new TypeError("path must be a string");
                    this[or] = typeof r.fd == "number" ? r.fd : null, this[yl] = e, this[pV] = r.readSize || 16 * 1024 * 1024, this[wl] = !1, this[dV] = typeof r.size == "number" ? r.size : Infinity, this[FB] = this[dV], this[hf] = typeof r.autoClose == "boolean" ? r.autoClose : !0, typeof this[or] == "number" ? this[Cf]() : this[Il]()
                }

                get fd() {
                    return this[or]
                }

                get path() {
                    return this[yl]
                }

                write() {
                    throw new TypeError("this is a readable stream")
                }

                end() {
                    throw new TypeError("this is a readable stream")
                }

                [Il]() {
                    Ks.open(this[yl], "r", (e, r) => this[df](e, r))
                }

                [df](e, r) {
                    e ? this[pf](e) : (this[or] = r, this.emit("open", r), this[Cf]())
                }

                [ZD]() {
                    return Buffer.allocUnsafe(Math.min(this[pV], this[FB]))
                }

                [Cf]() {
                    if (!this[wl]) {
                        this[wl] = !0;
                        let e = this[ZD]();
                        if (e.length === 0) return process.nextTick(() => this[eR](null, 0, e));
                        Ks.read(this[or], e, 0, e.length, null, (r, i, n) => this[eR](r, i, n))
                    }
                }

                [eR](e, r, i) {
                    this[wl] = !1, e ? this[pf](e) : this[XD](r, i) && this[Cf]()
                }

                [sa]() {
                    this[hf] && typeof this[or] == "number" && (Ks.close(this[or], e => this.emit("close")), this[or] = null)
                }

                [pf](e) {
                    this[wl] = !0, this[sa](), this.emit("error", e)
                }

                [XD](e, r) {
                    let i = !1;
                    return this[FB] -= e, e > 0 && (i = super.write(e < r.length ? r.slice(0, e) : r)), (e === 0 || this[FB] <= 0) && (i = !1, this[sa](), super.end()), i
                }

                emit(e, r) {
                    switch (e) {
                        case"prefinish":
                        case"finish":
                            break;
                        case"drain":
                            typeof this[or] == "number" && this[Cf]();
                            break;
                        default:
                            return super.emit(e, r)
                    }
                }
            }, CV = class extends tR {
                [Il]() {
                    let e = !0;
                    try {
                        this[df](null, Ks.openSync(this[yl], "r")), e = !1
                    } finally {
                        e && this[sa]()
                    }
                }

                [Cf]() {
                    let e = !0;
                    try {
                        if (!this[wl]) {
                            this[wl] = !0;
                            do {
                                let r = this[ZD](), i = r.length === 0 ? 0 : Ks.readSync(this[or], r, 0, r.length, null);
                                if (!this[XD](i, r)) break
                            } while (!0);
                            this[wl] = !1
                        }
                        e = !1
                    } finally {
                        e && this[sa]()
                    }
                }

                [sa]() {
                    if (this[hf] && typeof this[or] == "number") {
                        try {
                            Ks.closeSync(this[or])
                        } catch (e) {
                        }
                        this[or] = null, this.emit("close")
                    }
                }
            }, rR = class extends MFe {
                constructor(e, r) {
                    r = r || {}, super(r), this.readable = !1, this[mf] = !1, this[rC] = !1, this[RB] = !1, this[oa] = [], this[yl] = e, this[or] = typeof r.fd == "number" ? r.fd : null, this[$D] = r.mode === void 0 ? 438 : r.mode, this[ru] = typeof r.start == "number" ? r.start : null, this[hf] = typeof r.autoClose == "boolean" ? r.autoClose : !0;
                    let i = this[ru] !== null ? "r+" : "w";
                    this[LB] = r.flags === void 0, this[eu] = this[LB] ? i : r.flags, this[or] === null && this[Il]()
                }

                get fd() {
                    return this[or]
                }

                get path() {
                    return this[yl]
                }

                [pf](e) {
                    this[sa](), this[mf] = !0, this.emit("error", e)
                }

                [Il]() {
                    Ks.open(this[yl], this[eu], this[$D], (e, r) => this[df](e, r))
                }

                [df](e, r) {
                    this[LB] && this[eu] === "r+" && e && e.code === "ENOENT" ? (this[eu] = "w", this[Il]()) : e ? this[pf](e) : (this[or] = r, this.emit("open", r), this[VD]())
                }

                end(e, r) {
                    e && this.write(e, r), this[rC] = !0, !this[mf] && !this[oa].length && typeof this[or] == "number" && this[tu](null, 0)
                }

                write(e, r) {
                    return typeof e == "string" && (e = new Buffer(e, r)), this[rC] ? (this.emit("error", new Error("write() after end()")), !1) : this[or] === null || this[mf] || this[oa].length ? (this[oa].push(e), this[RB] = !0, !1) : (this[mf] = !0, this[NB](e), !0)
                }

                [NB](e) {
                    Ks.write(this[or], e, 0, e.length, this[ru], (r, i) => this[tu](r, i))
                }

                [tu](e, r) {
                    e ? this[pf](e) : (this[ru] !== null && (this[ru] += r), this[oa].length ? this[VD]() : (this[mf] = !1, this[rC] && !this[hV] ? (this[hV] = !0, this[sa](), this.emit("finish")) : this[RB] && (this[RB] = !1, this.emit("drain"))))
                }

                [VD]() {
                    if (this[oa].length === 0) this[rC] && this[tu](null, 0); else if (this[oa].length === 1) this[NB](this[oa].pop()); else {
                        let e = this[oa];
                        this[oa] = [], UFe(this[or], e, this[ru], (r, i) => this[tu](r, i))
                    }
                }

                [sa]() {
                    this[hf] && typeof this[or] == "number" && (Ks.close(this[or], e => this.emit("close")), this[or] = null)
                }
            }, mV = class extends rR {
                [Il]() {
                    let e;
                    try {
                        e = Ks.openSync(this[yl], this[eu], this[$D])
                    } catch (r) {
                        if (this[LB] && this[eu] === "r+" && r && r.code === "ENOENT") return this[eu] = "w", this[Il]();
                        throw r
                    }
                    this[df](null, e)
                }

                [sa]() {
                    if (this[hf] && typeof this[or] == "number") {
                        try {
                            Ks.closeSync(this[or])
                        } catch (e) {
                        }
                        this[or] = null, this.emit("close")
                    }
                }

                [NB](e) {
                    try {
                        this[tu](null, Ks.writeSync(this[or], e, 0, e.length, this[ru]))
                    } catch (r) {
                        this[tu](r, 0)
                    }
                }
            }, UFe = (t, e, r, i) => {
                let n = (o, a) => i(o, a, e), s = new KFe;
                s.oncomplete = n, DB.writeBuffers(t, e, r, s)
            };
        tC.ReadStream = tR;
        tC.ReadStreamSync = CV;
        tC.WriteStream = rR;
        tC.WriteStreamSync = mV
    });
    var sC = w((JAt, EV) => {
        "use strict";
        var HFe = CB(), YAt = require("path"), GFe = uf(), jFe = require("events"), YFe = bp(), qFe = 1024 * 1024,
            JFe = $d(), IV = dB(), WFe = QD(), iR = Buffer.from([31, 139]), Us = Symbol("state"),
            iu = Symbol("writeEntry"), AA = Symbol("readEntry"), nR = Symbol("nextEntry"), yV = Symbol("processEntry"),
            Hs = Symbol("extendedHeader"), iC = Symbol("globalExtendedHeader"), Bl = Symbol("meta"),
            wV = Symbol("emitMeta"), yr = Symbol("buffer"), lA = Symbol("queue"), nu = Symbol("ended"),
            BV = Symbol("emittedEnd"), su = Symbol("emit"), Ln = Symbol("unzip"), TB = Symbol("consumeChunk"),
            OB = Symbol("consumeChunkSub"), sR = Symbol("consumeBody"), bV = Symbol("consumeMeta"),
            QV = Symbol("consumeHeader"), MB = Symbol("consuming"), oR = Symbol("bufferConcat"),
            aR = Symbol("maybeEnd"), nC = Symbol("writing"), bl = Symbol("aborted"), KB = Symbol("onDone"),
            ou = Symbol("sawValidEntry"), UB = Symbol("sawNullBlock"), HB = Symbol("sawEOF"), zFe = t => !0;
        EV.exports = HFe(class extends jFe {
            constructor(e) {
                e = e || {}, super(e), this.file = e.file || "", this[ou] = null, this.on(KB, r => {
                    (this[Us] === "begin" || this[ou] === !1) && this.warn("TAR_BAD_ARCHIVE", "Unrecognized archive format")
                }), e.ondone ? this.on(KB, e.ondone) : this.on(KB, r => {
                    this.emit("prefinish"), this.emit("finish"), this.emit("end"), this.emit("close")
                }), this.strict = !!e.strict, this.maxMetaEntrySize = e.maxMetaEntrySize || qFe, this.filter = typeof e.filter == "function" ? e.filter : zFe, this.writable = !0, this.readable = !1, this[lA] = new YFe, this[yr] = null, this[AA] = null, this[iu] = null, this[Us] = "begin", this[Bl] = "", this[Hs] = null, this[iC] = null, this[nu] = !1, this[Ln] = null, this[bl] = !1, this[UB] = !1, this[HB] = !1, typeof e.onwarn == "function" && this.on("warn", e.onwarn), typeof e.onentry == "function" && this.on("entry", e.onentry)
            }

            [QV](e, r) {
                this[ou] === null && (this[ou] = !1);
                let i;
                try {
                    i = new GFe(e, r, this[Hs], this[iC])
                } catch (n) {
                    return this.warn("TAR_ENTRY_INVALID", n)
                }
                if (i.nullBlock) this[UB] ? (this[HB] = !0, this[Us] === "begin" && (this[Us] = "header"), this[su]("eof")) : (this[UB] = !0, this[su]("nullBlock")); else if (this[UB] = !1, !i.cksumValid) this.warn("TAR_ENTRY_INVALID", "checksum failure", {header: i}); else if (!i.path) this.warn("TAR_ENTRY_INVALID", "path is required", {header: i}); else {
                    let n = i.type;
                    if (/^(Symbolic)?Link$/.test(n) && !i.linkpath) this.warn("TAR_ENTRY_INVALID", "linkpath required", {header: i}); else if (!/^(Symbolic)?Link$/.test(n) && i.linkpath) this.warn("TAR_ENTRY_INVALID", "linkpath forbidden", {header: i}); else {
                        let s = this[iu] = new JFe(i, this[Hs], this[iC]);
                        if (!this[ou]) if (s.remain) {
                            let o = () => {
                                s.invalid || (this[ou] = !0)
                            };
                            s.on("end", o)
                        } else this[ou] = !0;
                        s.meta ? s.size > this.maxMetaEntrySize ? (s.ignore = !0, this[su]("ignoredEntry", s), this[Us] = "ignore", s.resume()) : s.size > 0 && (this[Bl] = "", s.on("data", o => this[Bl] += o), this[Us] = "meta") : (this[Hs] = null, s.ignore = s.ignore || !this.filter(s.path, s), s.ignore ? (this[su]("ignoredEntry", s), this[Us] = s.remain ? "ignore" : "header", s.resume()) : (s.remain ? this[Us] = "body" : (this[Us] = "header", s.end()), this[AA] ? this[lA].push(s) : (this[lA].push(s), this[nR]())))
                    }
                }
            }

            [yV](e) {
                let r = !0;
                return e ? Array.isArray(e) ? this.emit.apply(this, e) : (this[AA] = e, this.emit("entry", e), e.emittedEnd || (e.on("end", i => this[nR]()), r = !1)) : (this[AA] = null, r = !1), r
            }

            [nR]() {
                do ; while (this[yV](this[lA].shift()));
                if (!this[lA].length) {
                    let e = this[AA];
                    !e || e.flowing || e.size === e.remain ? this[nC] || this.emit("drain") : e.once("drain", i => this.emit("drain"))
                }
            }

            [sR](e, r) {
                let i = this[iu], n = i.blockRemain, s = n >= e.length && r === 0 ? e : e.slice(r, r + n);
                return i.write(s), i.blockRemain || (this[Us] = "header", this[iu] = null, i.end()), s.length
            }

            [bV](e, r) {
                let i = this[iu], n = this[sR](e, r);
                return this[iu] || this[wV](i), n
            }

            [su](e, r, i) {
                !this[lA].length && !this[AA] ? this.emit(e, r, i) : this[lA].push([e, r, i])
            }

            [wV](e) {
                switch (this[su]("meta", this[Bl]), e.type) {
                    case"ExtendedHeader":
                    case"OldExtendedHeader":
                        this[Hs] = IV.parse(this[Bl], this[Hs], !1);
                        break;
                    case"GlobalExtendedHeader":
                        this[iC] = IV.parse(this[Bl], this[iC], !0);
                        break;
                    case"NextFileHasLongPath":
                    case"OldGnuLongPath":
                        this[Hs] = this[Hs] || Object.create(null), this[Hs].path = this[Bl].replace(/\0.*/, "");
                        break;
                    case"NextFileHasLongLinkpath":
                        this[Hs] = this[Hs] || Object.create(null), this[Hs].linkpath = this[Bl].replace(/\0.*/, "");
                        break;
                    default:
                        throw new Error("unknown meta: " + e.type)
                }
            }

            abort(e) {
                this[bl] = !0, this.emit("abort", e), this.warn("TAR_ABORT", e, {recoverable: !1})
            }

            write(e) {
                if (this[bl]) return;
                if (this[Ln] === null && e) {
                    if (this[yr] && (e = Buffer.concat([this[yr], e]), this[yr] = null), e.length < iR.length) return this[yr] = e, !0;
                    for (let i = 0; this[Ln] === null && i < iR.length; i++) e[i] !== iR[i] && (this[Ln] = !1);
                    if (this[Ln] === null) {
                        let i = this[nu];
                        this[nu] = !1, this[Ln] = new WFe.Unzip, this[Ln].on("data", s => this[TB](s)), this[Ln].on("error", s => this.abort(s)), this[Ln].on("end", s => {
                            this[nu] = !0, this[TB]()
                        }), this[nC] = !0;
                        let n = this[Ln][i ? "end" : "write"](e);
                        return this[nC] = !1, n
                    }
                }
                this[nC] = !0, this[Ln] ? this[Ln].write(e) : this[TB](e), this[nC] = !1;
                let r = this[lA].length ? !1 : this[AA] ? this[AA].flowing : !0;
                return !r && !this[lA].length && this[AA].once("drain", i => this.emit("drain")), r
            }

            [oR](e) {
                e && !this[bl] && (this[yr] = this[yr] ? Buffer.concat([this[yr], e]) : e)
            }

            [aR]() {
                if (this[nu] && !this[BV] && !this[bl] && !this[MB]) {
                    this[BV] = !0;
                    let e = this[iu];
                    if (e && e.blockRemain) {
                        let r = this[yr] ? this[yr].length : 0;
                        this.warn("TAR_BAD_ARCHIVE", `Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`, {entry: e}), this[yr] && e.write(this[yr]), e.end()
                    }
                    this[su](KB)
                }
            }

            [TB](e) {
                if (this[MB]) this[oR](e); else if (!e && !this[yr]) this[aR](); else {
                    if (this[MB] = !0, this[yr]) {
                        this[oR](e);
                        let r = this[yr];
                        this[yr] = null, this[OB](r)
                    } else this[OB](e);
                    for (; this[yr] && this[yr].length >= 512 && !this[bl] && !this[HB];) {
                        let r = this[yr];
                        this[yr] = null, this[OB](r)
                    }
                    this[MB] = !1
                }
                (!this[yr] || this[nu]) && this[aR]()
            }

            [OB](e) {
                let r = 0, i = e.length;
                for (; r + 512 <= i && !this[bl] && !this[HB];) switch (this[Us]) {
                    case"begin":
                    case"header":
                        this[QV](e, r), r += 512;
                        break;
                    case"ignore":
                    case"body":
                        r += this[sR](e, r);
                        break;
                    case"meta":
                        r += this[bV](e, r);
                        break;
                    default:
                        throw new Error("invalid state: " + this[Us])
                }
                r < i && (this[yr] ? this[yr] = Buffer.concat([e.slice(r), this[yr]]) : this[yr] = e.slice(r))
            }

            end(e) {
                this[bl] || (this[Ln] ? this[Ln].end(e) : (this[nu] = !0, this.write(e)))
            }
        })
    });
    var GB = w((zAt, vV) => {
        "use strict";
        var _Fe = af(), SV = sC(), If = require("fs"), VFe = Ef(), kV = require("path"),
            WAt = vV.exports = (t, e, r) => {
                typeof t == "function" ? (r = t, e = null, t = {}) : Array.isArray(t) && (e = t, t = {}), typeof e == "function" && (r = e, e = null), e ? e = Array.from(e) : e = [];
                let i = _Fe(t);
                if (i.sync && typeof r == "function") throw new TypeError("callback not supported for sync tar functions");
                if (!i.file && typeof r == "function") throw new TypeError("callback only supported with file option");
                return e.length && ZFe(i, e), i.noResume || XFe(i), i.file && i.sync ? $Fe(i) : i.file ? eNe(i, r) : xV(i)
            }, XFe = t => {
                let e = t.onentry;
                t.onentry = e ? r => {
                    e(r), r.resume()
                } : r => r.resume()
            }, ZFe = (t, e) => {
                let r = new Map(e.map(s => [s.replace(/\/+$/, ""), !0])), i = t.filter, n = (s, o) => {
                    let a = o || kV.parse(s).root || ".", l = s === a ? !1 : r.has(s) ? r.get(s) : n(kV.dirname(s), a);
                    return r.set(s, l), l
                };
                t.filter = i ? (s, o) => i(s, o) && n(s.replace(/\/+$/, "")) : s => n(s.replace(/\/+$/, ""))
            }, $Fe = t => {
                let e = xV(t), r = t.file, i = !0, n;
                try {
                    let s = If.statSync(r), o = t.maxReadSize || 16 * 1024 * 1024;
                    if (s.size < o) e.end(If.readFileSync(r)); else {
                        let a = 0, l = Buffer.allocUnsafe(o);
                        for (n = If.openSync(r, "r"); a < s.size;) {
                            let c = If.readSync(n, l, 0, o, a);
                            a += c, e.write(l.slice(0, c))
                        }
                        e.end()
                    }
                    i = !1
                } finally {
                    if (i && n) try {
                        If.closeSync(n)
                    } catch (s) {
                    }
                }
            }, eNe = (t, e) => {
                let r = new SV(t), i = t.maxReadSize || 16 * 1024 * 1024, n = t.file, s = new Promise((o, a) => {
                    r.on("error", a), r.on("end", o), If.stat(n, (l, c) => {
                        if (l) a(l); else {
                            let u = new VFe.ReadStream(n, {readSize: i, size: c.size});
                            u.on("error", a), u.pipe(r)
                        }
                    })
                });
                return e ? s.then(e, e) : s
            }, xV = t => new SV(t)
    });
    var LV = w((XAt, PV) => {
        "use strict";
        var tNe = af(), jB = PB(), _At = require("fs"), DV = Ef(), RV = GB(), FV = require("path"),
            VAt = PV.exports = (t, e, r) => {
                if (typeof e == "function" && (r = e), Array.isArray(t) && (e = t, t = {}), !e || !Array.isArray(e) || !e.length) throw new TypeError("no files or directories specified");
                e = Array.from(e);
                let i = tNe(t);
                if (i.sync && typeof r == "function") throw new TypeError("callback not supported for sync tar functions");
                if (!i.file && typeof r == "function") throw new TypeError("callback only supported with file option");
                return i.file && i.sync ? rNe(i, e) : i.file ? iNe(i, e, r) : i.sync ? nNe(i, e) : sNe(i, e)
            }, rNe = (t, e) => {
                let r = new jB.Sync(t), i = new DV.WriteStreamSync(t.file, {mode: t.mode || 438});
                r.pipe(i), NV(r, e)
            }, iNe = (t, e, r) => {
                let i = new jB(t), n = new DV.WriteStream(t.file, {mode: t.mode || 438});
                i.pipe(n);
                let s = new Promise((o, a) => {
                    n.on("error", a), n.on("close", o), i.on("error", a)
                });
                return AR(i, e), r ? s.then(r, r) : s
            }, NV = (t, e) => {
                e.forEach(r => {
                    r.charAt(0) === "@" ? RV({
                        file: FV.resolve(t.cwd, r.substr(1)),
                        sync: !0,
                        noResume: !0,
                        onentry: i => t.add(i)
                    }) : t.add(r)
                }), t.end()
            }, AR = (t, e) => {
                for (; e.length;) {
                    let r = e.shift();
                    if (r.charAt(0) === "@") return RV({
                        file: FV.resolve(t.cwd, r.substr(1)),
                        noResume: !0,
                        onentry: i => t.add(i)
                    }).then(i => AR(t, e));
                    t.add(r)
                }
                t.end()
            }, nNe = (t, e) => {
                let r = new jB.Sync(t);
                return NV(r, e), r
            }, sNe = (t, e) => {
                let r = new jB(t);
                return AR(r, e), r
            }
    });
    var lR = w((elt, TV) => {
        "use strict";
        var oNe = af(), OV = PB(), ZAt = sC(), Gs = require("fs"), MV = Ef(), KV = GB(), UV = require("path"),
            HV = uf(), $At = TV.exports = (t, e, r) => {
                let i = oNe(t);
                if (!i.file) throw new TypeError("file is required");
                if (i.gzip) throw new TypeError("cannot append to compressed archives");
                if (!e || !Array.isArray(e) || !e.length) throw new TypeError("no files or directories specified");
                return e = Array.from(e), i.sync ? aNe(i, e) : ANe(i, e, r)
            }, aNe = (t, e) => {
                let r = new OV.Sync(t), i = !0, n, s;
                try {
                    try {
                        n = Gs.openSync(t.file, "r+")
                    } catch (l) {
                        if (l.code === "ENOENT") n = Gs.openSync(t.file, "w+"); else throw l
                    }
                    let o = Gs.fstatSync(n), a = Buffer.alloc(512);
                    e:for (s = 0; s < o.size; s += 512) {
                        for (let u = 0, g = 0; u < 512; u += g) {
                            if (g = Gs.readSync(n, a, u, a.length - u, s + u), s === 0 && a[0] === 31 && a[1] === 139) throw new Error("cannot append to compressed archives");
                            if (!g) break e
                        }
                        let l = new HV(a);
                        if (!l.cksumValid) break;
                        let c = 512 * Math.ceil(l.size / 512);
                        if (s + c + 512 > o.size) break;
                        s += c, t.mtimeCache && t.mtimeCache.set(l.path, l.mtime)
                    }
                    i = !1, lNe(t, r, s, n, e)
                } finally {
                    if (i) try {
                        Gs.closeSync(n)
                    } catch (o) {
                    }
                }
            }, lNe = (t, e, r, i, n) => {
                let s = new MV.WriteStreamSync(t.file, {fd: i, start: r});
                e.pipe(s), cNe(e, n)
            }, ANe = (t, e, r) => {
                e = Array.from(e);
                let i = new OV(t), n = (o, a, l) => {
                    let c = (p, m) => {
                        p ? Gs.close(o, y => l(p)) : l(null, m)
                    }, u = 0;
                    if (a === 0) return c(null, 0);
                    let g = 0, f = Buffer.alloc(512), h = (p, m) => {
                        if (p) return c(p);
                        if (g += m, g < 512 && m) return Gs.read(o, f, g, f.length - g, u + g, h);
                        if (u === 0 && f[0] === 31 && f[1] === 139) return c(new Error("cannot append to compressed archives"));
                        if (g < 512) return c(null, u);
                        let y = new HV(f);
                        if (!y.cksumValid) return c(null, u);
                        let b = 512 * Math.ceil(y.size / 512);
                        if (u + b + 512 > a || (u += b + 512, u >= a)) return c(null, u);
                        t.mtimeCache && t.mtimeCache.set(y.path, y.mtime), g = 0, Gs.read(o, f, 0, 512, u, h)
                    };
                    Gs.read(o, f, 0, 512, u, h)
                }, s = new Promise((o, a) => {
                    i.on("error", a);
                    let l = "r+", c = (u, g) => {
                        if (u && u.code === "ENOENT" && l === "r+") return l = "w+", Gs.open(t.file, l, c);
                        if (u) return a(u);
                        Gs.fstat(g, (f, h) => {
                            if (f) return a(f);
                            n(g, h.size, (p, m) => {
                                if (p) return a(p);
                                let y = new MV.WriteStream(t.file, {fd: g, start: m});
                                i.pipe(y), y.on("error", a), y.on("close", o), GV(i, e)
                            })
                        })
                    };
                    Gs.open(t.file, l, c)
                });
                return r ? s.then(r, r) : s
            }, cNe = (t, e) => {
                e.forEach(r => {
                    r.charAt(0) === "@" ? KV({
                        file: UV.resolve(t.cwd, r.substr(1)),
                        sync: !0,
                        noResume: !0,
                        onentry: i => t.add(i)
                    }) : t.add(r)
                }), t.end()
            }, GV = (t, e) => {
                for (; e.length;) {
                    let r = e.shift();
                    if (r.charAt(0) === "@") return KV({
                        file: UV.resolve(t.cwd, r.substr(1)),
                        noResume: !0,
                        onentry: i => t.add(i)
                    }).then(i => GV(t, e));
                    t.add(r)
                }
                t.end()
            }
    });
    var YV = w((rlt, jV) => {
        "use strict";
        var uNe = af(), gNe = lR(), tlt = jV.exports = (t, e, r) => {
            let i = uNe(t);
            if (!i.file) throw new TypeError("file is required");
            if (i.gzip) throw new TypeError("cannot append to compressed archives");
            if (!e || !Array.isArray(e) || !e.length) throw new TypeError("no files or directories specified");
            return e = Array.from(e), fNe(i), gNe(i, e, r)
        }, fNe = t => {
            let e = t.filter;
            t.mtimeCache || (t.mtimeCache = new Map), t.filter = e ? (r, i) => e(r, i) && !(t.mtimeCache.get(r) > i.mtime) : (r, i) => !(t.mtimeCache.get(r) > i.mtime)
        }
    });
    var WV = w((ilt, qV) => {
        var {promisify: JV} = require("util"), Ql = require("fs"), hNe = t => {
            if (!t) t = {mode: 511, fs: Ql}; else if (typeof t == "object") t = N({
                mode: 511,
                fs: Ql
            }, t); else if (typeof t == "number") t = {
                mode: t,
                fs: Ql
            }; else if (typeof t == "string") t = {
                mode: parseInt(t, 8),
                fs: Ql
            }; else throw new TypeError("invalid options argument");
            return t.mkdir = t.mkdir || t.fs.mkdir || Ql.mkdir, t.mkdirAsync = JV(t.mkdir), t.stat = t.stat || t.fs.stat || Ql.stat, t.statAsync = JV(t.stat), t.statSync = t.statSync || t.fs.statSync || Ql.statSync, t.mkdirSync = t.mkdirSync || t.fs.mkdirSync || Ql.mkdirSync, t
        };
        qV.exports = hNe
    });
    var _V = w((nlt, zV) => {
        var pNe = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform, {
            resolve: dNe,
            parse: CNe
        } = require("path"), mNe = t => {
            if (/\0/.test(t)) throw Object.assign(new TypeError("path must be a string without null bytes"), {
                path: t,
                code: "ERR_INVALID_ARG_VALUE"
            });
            if (t = dNe(t), pNe === "win32") {
                let e = /[*|"<>?:]/, {root: r} = CNe(t);
                if (e.test(t.substr(r.length))) throw Object.assign(new Error("Illegal characters in path."), {
                    path: t,
                    code: "EINVAL"
                })
            }
            return t
        };
        zV.exports = mNe
    });
    var e9 = w((slt, VV) => {
        var {dirname: XV} = require("path"),
            ZV = (t, e, r = void 0) => r === e ? Promise.resolve() : t.statAsync(e).then(i => i.isDirectory() ? r : void 0, i => i.code === "ENOENT" ? ZV(t, XV(e), e) : void 0),
            $V = (t, e, r = void 0) => {
                if (r !== e) try {
                    return t.statSync(e).isDirectory() ? r : void 0
                } catch (i) {
                    return i.code === "ENOENT" ? $V(t, XV(e), e) : void 0
                }
            };
        VV.exports = {findMade: ZV, findMadeSync: $V}
    });
    var gR = w((olt, t9) => {
        var {dirname: r9} = require("path"), cR = (t, e, r) => {
            e.recursive = !1;
            let i = r9(t);
            return i === t ? e.mkdirAsync(t, e).catch(n => {
                if (n.code !== "EISDIR") throw n
            }) : e.mkdirAsync(t, e).then(() => r || t, n => {
                if (n.code === "ENOENT") return cR(i, e).then(s => cR(t, e, s));
                if (n.code !== "EEXIST" && n.code !== "EROFS") throw n;
                return e.statAsync(t).then(s => {
                    if (s.isDirectory()) return r;
                    throw n
                }, () => {
                    throw n
                })
            })
        }, uR = (t, e, r) => {
            let i = r9(t);
            if (e.recursive = !1, i === t) try {
                return e.mkdirSync(t, e)
            } catch (n) {
                if (n.code !== "EISDIR") throw n;
                return
            }
            try {
                return e.mkdirSync(t, e), r || t
            } catch (n) {
                if (n.code === "ENOENT") return uR(t, e, uR(i, e, r));
                if (n.code !== "EEXIST" && n.code !== "EROFS") throw n;
                try {
                    if (!e.statSync(t).isDirectory()) throw n
                } catch (s) {
                    throw n
                }
            }
        };
        t9.exports = {mkdirpManual: cR, mkdirpManualSync: uR}
    });
    var s9 = w((alt, i9) => {
        var {dirname: n9} = require("path"), {findMade: ENe, findMadeSync: INe} = e9(), {
                mkdirpManual: yNe,
                mkdirpManualSync: wNe
            } = gR(),
            BNe = (t, e) => (e.recursive = !0, n9(t) === t ? e.mkdirAsync(t, e) : ENe(e, t).then(i => e.mkdirAsync(t, e).then(() => i).catch(n => {
                if (n.code === "ENOENT") return yNe(t, e);
                throw n
            }))), bNe = (t, e) => {
                if (e.recursive = !0, n9(t) === t) return e.mkdirSync(t, e);
                let i = INe(e, t);
                try {
                    return e.mkdirSync(t, e), i
                } catch (n) {
                    if (n.code === "ENOENT") return wNe(t, e);
                    throw n
                }
            };
        i9.exports = {mkdirpNative: BNe, mkdirpNativeSync: bNe}
    });
    var l9 = w((Alt, o9) => {
        var a9 = require("fs"), QNe = process.env.__TESTING_MKDIRP_NODE_VERSION__ || process.version,
            fR = QNe.replace(/^v/, "").split("."), A9 = +fR[0] > 10 || +fR[0] == 10 && +fR[1] >= 12,
            vNe = A9 ? t => t.mkdir === a9.mkdir : () => !1, SNe = A9 ? t => t.mkdirSync === a9.mkdirSync : () => !1;
        o9.exports = {useNative: vNe, useNativeSync: SNe}
    });
    var p9 = w((llt, c9) => {
        var yf = WV(), wf = _V(), {mkdirpNative: u9, mkdirpNativeSync: g9} = s9(), {
                mkdirpManual: f9,
                mkdirpManualSync: h9
            } = gR(), {useNative: kNe, useNativeSync: xNe} = l9(),
            Bf = (t, e) => (t = wf(t), e = yf(e), kNe(e) ? u9(t, e) : f9(t, e)),
            PNe = (t, e) => (t = wf(t), e = yf(e), xNe(e) ? g9(t, e) : h9(t, e));
        Bf.sync = PNe;
        Bf.native = (t, e) => u9(wf(t), yf(e));
        Bf.manual = (t, e) => f9(wf(t), yf(e));
        Bf.nativeSync = (t, e) => g9(wf(t), yf(e));
        Bf.manualSync = (t, e) => h9(wf(t), yf(e));
        c9.exports = Bf
    });
    var w9 = w((clt, d9) => {
        "use strict";
        var js = require("fs"), au = require("path"), DNe = js.lchown ? "lchown" : "chown",
            RNe = js.lchownSync ? "lchownSync" : "chownSync",
            C9 = js.lchown && !process.version.match(/v1[1-9]+\./) && !process.version.match(/v10\.[6-9]/),
            m9 = (t, e, r) => {
                try {
                    return js[RNe](t, e, r)
                } catch (i) {
                    if (i.code !== "ENOENT") throw i
                }
            }, FNe = (t, e, r) => {
                try {
                    return js.chownSync(t, e, r)
                } catch (i) {
                    if (i.code !== "ENOENT") throw i
                }
            }, NNe = C9 ? (t, e, r, i) => n => {
                !n || n.code !== "EISDIR" ? i(n) : js.chown(t, e, r, i)
            } : (t, e, r, i) => i, hR = C9 ? (t, e, r) => {
                try {
                    return m9(t, e, r)
                } catch (i) {
                    if (i.code !== "EISDIR") throw i;
                    FNe(t, e, r)
                }
            } : (t, e, r) => m9(t, e, r), LNe = process.version, E9 = (t, e, r) => js.readdir(t, e, r),
            TNe = (t, e) => js.readdirSync(t, e);
        /^v4\./.test(LNe) && (E9 = (t, e, r) => js.readdir(t, r));
        var YB = (t, e, r, i) => {
            js[DNe](t, e, r, NNe(t, e, r, n => {
                i(n && n.code !== "ENOENT" ? n : null)
            }))
        }, I9 = (t, e, r, i, n) => {
            if (typeof e == "string") return js.lstat(au.resolve(t, e), (s, o) => {
                if (s) return n(s.code !== "ENOENT" ? s : null);
                o.name = e, I9(t, o, r, i, n)
            });
            if (e.isDirectory()) pR(au.resolve(t, e.name), r, i, s => {
                if (s) return n(s);
                let o = au.resolve(t, e.name);
                YB(o, r, i, n)
            }); else {
                let s = au.resolve(t, e.name);
                YB(s, r, i, n)
            }
        }, pR = (t, e, r, i) => {
            E9(t, {withFileTypes: !0}, (n, s) => {
                if (n) {
                    if (n.code === "ENOENT") return i();
                    if (n.code !== "ENOTDIR" && n.code !== "ENOTSUP") return i(n)
                }
                if (n || !s.length) return YB(t, e, r, i);
                let o = s.length, a = null, l = c => {
                    if (!a) {
                        if (c) return i(a = c);
                        if (--o == 0) return YB(t, e, r, i)
                    }
                };
                s.forEach(c => I9(t, c, e, r, l))
            })
        }, ONe = (t, e, r, i) => {
            if (typeof e == "string") try {
                let n = js.lstatSync(au.resolve(t, e));
                n.name = e, e = n
            } catch (n) {
                if (n.code === "ENOENT") return;
                throw n
            }
            e.isDirectory() && y9(au.resolve(t, e.name), r, i), hR(au.resolve(t, e.name), r, i)
        }, y9 = (t, e, r) => {
            let i;
            try {
                i = TNe(t, {withFileTypes: !0})
            } catch (n) {
                if (n.code === "ENOENT") return;
                if (n.code === "ENOTDIR" || n.code === "ENOTSUP") return hR(t, e, r);
                throw n
            }
            return i && i.length && i.forEach(n => ONe(t, n, e, r)), hR(t, e, r)
        };
        d9.exports = pR;
        pR.sync = y9
    });
    var v9 = w((flt, dR) => {
        "use strict";
        var B9 = p9(), Ys = require("fs"), qB = require("path"), b9 = w9(), CR = class extends Error {
            constructor(e, r) {
                super("Cannot extract through symbolic link");
                this.path = r, this.symlink = e
            }

            get name() {
                return "SylinkError"
            }
        }, oC = class extends Error {
            constructor(e, r) {
                super(r + ": Cannot cd into '" + e + "'");
                this.path = e, this.code = r
            }

            get name() {
                return "CwdError"
            }
        }, ult = dR.exports = (t, e, r) => {
            let i = e.umask, n = e.mode | 448, s = (n & i) != 0, o = e.uid, a = e.gid,
                l = typeof o == "number" && typeof a == "number" && (o !== e.processUid || a !== e.processGid),
                c = e.preserve, u = e.unlink, g = e.cache, f = e.cwd, h = (y, b) => {
                    y ? r(y) : (g.set(t, !0), b && l ? b9(b, o, a, S => h(S)) : s ? Ys.chmod(t, n, r) : r())
                };
            if (g && g.get(t) === !0) return h();
            if (t === f) return Ys.stat(t, (y, b) => {
                (y || !b.isDirectory()) && (y = new oC(t, y && y.code || "ENOTDIR")), h(y)
            });
            if (c) return B9(t, {mode: n}).then(y => h(null, y), h);
            let m = qB.relative(f, t).split(/\/|\\/);
            JB(f, m, n, g, u, f, null, h)
        }, JB = (t, e, r, i, n, s, o, a) => {
            if (!e.length) return a(null, o);
            let l = e.shift(), c = t + "/" + l;
            if (i.get(c)) return JB(c, e, r, i, n, s, o, a);
            Ys.mkdir(c, r, Q9(c, e, r, i, n, s, o, a))
        }, Q9 = (t, e, r, i, n, s, o, a) => l => {
            if (l) {
                if (l.path && qB.dirname(l.path) === s && (l.code === "ENOTDIR" || l.code === "ENOENT")) return a(new oC(s, l.code));
                Ys.lstat(t, (c, u) => {
                    if (c) a(c); else if (u.isDirectory()) JB(t, e, r, i, n, s, o, a); else if (n) Ys.unlink(t, g => {
                        if (g) return a(g);
                        Ys.mkdir(t, r, Q9(t, e, r, i, n, s, o, a))
                    }); else {
                        if (u.isSymbolicLink()) return a(new CR(t, t + "/" + e.join("/")));
                        a(l)
                    }
                })
            } else o = o || t, JB(t, e, r, i, n, s, o, a)
        }, glt = dR.exports.sync = (t, e) => {
            let r = e.umask, i = e.mode | 448, n = (i & r) != 0, s = e.uid, o = e.gid,
                a = typeof s == "number" && typeof o == "number" && (s !== e.processUid || o !== e.processGid),
                l = e.preserve, c = e.unlink, u = e.cache, g = e.cwd, f = y => {
                    u.set(t, !0), y && a && b9.sync(y, s, o), n && Ys.chmodSync(t, i)
                };
            if (u && u.get(t) === !0) return f();
            if (t === g) {
                let y = !1, b = "ENOTDIR";
                try {
                    y = Ys.statSync(t).isDirectory()
                } catch (S) {
                    b = S.code
                } finally {
                    if (!y) throw new oC(t, b)
                }
                f();
                return
            }
            if (l) return f(B9.sync(t, i));
            let p = qB.relative(g, t).split(/\/|\\/), m = null;
            for (let y = p.shift(), b = g; y && (b += "/" + y); y = p.shift()) if (!u.get(b)) try {
                Ys.mkdirSync(b, i), m = m || b, u.set(b, !0)
            } catch (S) {
                if (S.path && qB.dirname(S.path) === g && (S.code === "ENOTDIR" || S.code === "ENOENT")) return new oC(g, S.code);
                let k = Ys.lstatSync(b);
                if (k.isDirectory()) {
                    u.set(b, !0);
                    continue
                } else if (c) {
                    Ys.unlinkSync(b), Ys.mkdirSync(b, i), m = m || b, u.set(b, !0);
                    continue
                } else if (k.isSymbolicLink()) return new CR(b, b + "/" + p.join("/"))
            }
            return f(m)
        }
    });
    var x9 = w((hlt, S9) => {
        var k9 = require("assert");
        S9.exports = () => {
            let t = new Map, e = new Map, {join: r} = require("path"),
                i = u => r(u).split(/[\\\/]/).slice(0, -1).reduce((g, f) => g.length ? g.concat(r(g[g.length - 1], f)) : [f], []),
                n = new Set, s = u => {
                    let g = e.get(u);
                    if (!g) throw new Error("function does not have any path reservations");
                    return {paths: g.paths.map(f => t.get(f)), dirs: [...g.dirs].map(f => t.get(f))}
                }, o = u => {
                    let {paths: g, dirs: f} = s(u);
                    return g.every(h => h[0] === u) && f.every(h => h[0] instanceof Set && h[0].has(u))
                }, a = u => n.has(u) || !o(u) ? !1 : (n.add(u), u(() => l(u)), !0), l = u => {
                    if (!n.has(u)) return !1;
                    let {paths: g, dirs: f} = e.get(u), h = new Set;
                    return g.forEach(p => {
                        let m = t.get(p);
                        k9.equal(m[0], u), m.length === 1 ? t.delete(p) : (m.shift(), typeof m[0] == "function" ? h.add(m[0]) : m[0].forEach(y => h.add(y)))
                    }), f.forEach(p => {
                        let m = t.get(p);
                        k9(m[0] instanceof Set), m[0].size === 1 && m.length === 1 ? t.delete(p) : m[0].size === 1 ? (m.shift(), h.add(m[0])) : m[0].delete(u)
                    }), n.delete(u), h.forEach(p => a(p)), !0
                };
            return {
                check: o, reserve: (u, g) => {
                    let f = new Set(u.map(h => i(h)).reduce((h, p) => h.concat(p)));
                    return e.set(g, {dirs: f, paths: u}), u.forEach(h => {
                        let p = t.get(h);
                        p ? p.push(g) : t.set(h, [g])
                    }), f.forEach(h => {
                        let p = t.get(h);
                        p ? p[p.length - 1] instanceof Set ? p[p.length - 1].add(g) : p.push(new Set([g])) : t.set(h, [new Set([g])])
                    }), a(g)
                }
            }
        }
    });
    var R9 = w((plt, P9) => {
        var MNe = process.env.__FAKE_PLATFORM__ || process.platform, KNe = MNe === "win32",
            UNe = global.__FAKE_TESTING_FS__ || require("fs"), {
                O_CREAT: HNe,
                O_TRUNC: GNe,
                O_WRONLY: jNe,
                UV_FS_O_FILEMAP: D9 = 0
            } = UNe.constants, YNe = KNe && !!D9, qNe = 512 * 1024, JNe = D9 | GNe | HNe | jNe;
        P9.exports = YNe ? t => t < qNe ? JNe : "w" : () => "w"
    });
    var vR = w((Elt, F9) => {
        "use strict";
        var WNe = require("assert"), dlt = require("events").EventEmitter, zNe = sC(), $t = require("fs"), _Ne = Ef(),
            cA = require("path"), mR = v9(), Clt = mR.sync, N9 = FD(), VNe = x9(), L9 = Symbol("onEntry"),
            ER = Symbol("checkFs"), T9 = Symbol("checkFs2"), IR = Symbol("isReusable"), uA = Symbol("makeFs"),
            yR = Symbol("file"), wR = Symbol("directory"), WB = Symbol("link"), O9 = Symbol("symlink"),
            M9 = Symbol("hardlink"), K9 = Symbol("unsupported"), mlt = Symbol("unknown"), U9 = Symbol("checkPath"),
            bf = Symbol("mkdir"), dn = Symbol("onError"), zB = Symbol("pending"), H9 = Symbol("pend"),
            Qf = Symbol("unpend"), BR = Symbol("ended"), bR = Symbol("maybeClose"), QR = Symbol("skip"),
            aC = Symbol("doChown"), AC = Symbol("uid"), lC = Symbol("gid"), G9 = require("crypto"), j9 = R9(),
            _B = () => {
                throw new Error("sync function called cb somehow?!?")
            }, XNe = (t, e) => {
                if (process.platform !== "win32") return $t.unlink(t, e);
                let r = t + ".DELETE." + G9.randomBytes(16).toString("hex");
                $t.rename(t, r, i => {
                    if (i) return e(i);
                    $t.unlink(r, e)
                })
            }, ZNe = t => {
                if (process.platform !== "win32") return $t.unlinkSync(t);
                let e = t + ".DELETE." + G9.randomBytes(16).toString("hex");
                $t.renameSync(t, e), $t.unlinkSync(e)
            }, Y9 = (t, e, r) => t === t >>> 0 ? t : e === e >>> 0 ? e : r, VB = class extends zNe {
                constructor(e) {
                    if (e || (e = {}), e.ondone = r => {
                        this[BR] = !0, this[bR]()
                    }, super(e), this.reservations = VNe(), this.transform = typeof e.transform == "function" ? e.transform : null, this.writable = !0, this.readable = !1, this[zB] = 0, this[BR] = !1, this.dirCache = e.dirCache || new Map, typeof e.uid == "number" || typeof e.gid == "number") {
                        if (typeof e.uid != "number" || typeof e.gid != "number") throw new TypeError("cannot set owner without number uid and gid");
                        if (e.preserveOwner) throw new TypeError("cannot preserve owner in archive and also set owner explicitly");
                        this.uid = e.uid, this.gid = e.gid, this.setOwner = !0
                    } else this.uid = null, this.gid = null, this.setOwner = !1;
                    e.preserveOwner === void 0 && typeof e.uid != "number" ? this.preserveOwner = process.getuid && process.getuid() === 0 : this.preserveOwner = !!e.preserveOwner, this.processUid = (this.preserveOwner || this.setOwner) && process.getuid ? process.getuid() : null, this.processGid = (this.preserveOwner || this.setOwner) && process.getgid ? process.getgid() : null, this.forceChown = e.forceChown === !0, this.win32 = !!e.win32 || process.platform === "win32", this.newer = !!e.newer, this.keep = !!e.keep, this.noMtime = !!e.noMtime, this.preservePaths = !!e.preservePaths, this.unlink = !!e.unlink, this.cwd = cA.resolve(e.cwd || process.cwd()), this.strip = +e.strip || 0, this.processUmask = process.umask(), this.umask = typeof e.umask == "number" ? e.umask : this.processUmask, this.dmode = e.dmode || 511 & ~this.umask, this.fmode = e.fmode || 438 & ~this.umask, this.on("entry", r => this[L9](r))
                }

                warn(e, r, i = {}) {
                    return (e === "TAR_BAD_ARCHIVE" || e === "TAR_ABORT") && (i.recoverable = !1), super.warn(e, r, i)
                }

                [bR]() {
                    this[BR] && this[zB] === 0 && (this.emit("prefinish"), this.emit("finish"), this.emit("end"), this.emit("close"))
                }

                [U9](e) {
                    if (this.strip) {
                        let r = e.path.split(/\/|\\/);
                        if (r.length < this.strip) return !1;
                        if (e.path = r.slice(this.strip).join("/"), e.type === "Link") {
                            let i = e.linkpath.split(/\/|\\/);
                            i.length >= this.strip && (e.linkpath = i.slice(this.strip).join("/"))
                        }
                    }
                    if (!this.preservePaths) {
                        let r = e.path;
                        if (r.match(/(^|\/|\\)\.\.(\\|\/|$)/)) return this.warn("TAR_ENTRY_ERROR", "path contains '..'", {
                            entry: e,
                            path: r
                        }), !1;
                        if (cA.win32.isAbsolute(r)) {
                            let i = cA.win32.parse(r);
                            e.path = r.substr(i.root.length);
                            let n = i.root;
                            this.warn("TAR_ENTRY_INFO", `stripping ${n} from absolute path`, {entry: e, path: r})
                        }
                    }
                    if (this.win32) {
                        let r = cA.win32.parse(e.path);
                        e.path = r.root === "" ? N9.encode(e.path) : r.root + N9.encode(e.path.substr(r.root.length))
                    }
                    return cA.isAbsolute(e.path) ? e.absolute = e.path : e.absolute = cA.resolve(this.cwd, e.path), !0
                }

                [L9](e) {
                    if (!this[U9](e)) return e.resume();
                    switch (WNe.equal(typeof e.absolute, "string"), e.type) {
                        case"Directory":
                        case"GNUDumpDir":
                            e.mode && (e.mode = e.mode | 448);
                        case"File":
                        case"OldFile":
                        case"ContiguousFile":
                        case"Link":
                        case"SymbolicLink":
                            return this[ER](e);
                        case"CharacterDevice":
                        case"BlockDevice":
                        case"FIFO":
                            return this[K9](e)
                    }
                }

                [dn](e, r) {
                    e.name === "CwdError" ? this.emit("error", e) : (this.warn("TAR_ENTRY_ERROR", e, {entry: r}), this[Qf](), r.resume())
                }

                [bf](e, r, i) {
                    mR(e, {
                        uid: this.uid,
                        gid: this.gid,
                        processUid: this.processUid,
                        processGid: this.processGid,
                        umask: this.processUmask,
                        preserve: this.preservePaths,
                        unlink: this.unlink,
                        cache: this.dirCache,
                        cwd: this.cwd,
                        mode: r
                    }, i)
                }

                [aC](e) {
                    return this.forceChown || this.preserveOwner && (typeof e.uid == "number" && e.uid !== this.processUid || typeof e.gid == "number" && e.gid !== this.processGid) || typeof this.uid == "number" && this.uid !== this.processUid || typeof this.gid == "number" && this.gid !== this.processGid
                }

                [AC](e) {
                    return Y9(this.uid, e.uid, this.processUid)
                }

                [lC](e) {
                    return Y9(this.gid, e.gid, this.processGid)
                }

                [yR](e, r) {
                    let i = e.mode & 4095 || this.fmode,
                        n = new _Ne.WriteStream(e.absolute, {flags: j9(e.size), mode: i, autoClose: !1});
                    n.on("error", l => this[dn](l, e));
                    let s = 1, o = l => {
                        if (l) return this[dn](l, e);
                        --s == 0 && $t.close(n.fd, c => {
                            r(), c ? this[dn](c, e) : this[Qf]()
                        })
                    };
                    n.on("finish", l => {
                        let c = e.absolute, u = n.fd;
                        if (e.mtime && !this.noMtime) {
                            s++;
                            let g = e.atime || new Date, f = e.mtime;
                            $t.futimes(u, g, f, h => h ? $t.utimes(c, g, f, p => o(p && h)) : o())
                        }
                        if (this[aC](e)) {
                            s++;
                            let g = this[AC](e), f = this[lC](e);
                            $t.fchown(u, g, f, h => h ? $t.chown(c, g, f, p => o(p && h)) : o())
                        }
                        o()
                    });
                    let a = this.transform && this.transform(e) || e;
                    a !== e && (a.on("error", l => this[dn](l, e)), e.pipe(a)), a.pipe(n)
                }

                [wR](e, r) {
                    let i = e.mode & 4095 || this.dmode;
                    this[bf](e.absolute, i, n => {
                        if (n) return r(), this[dn](n, e);
                        let s = 1, o = a => {
                            --s == 0 && (r(), this[Qf](), e.resume())
                        };
                        e.mtime && !this.noMtime && (s++, $t.utimes(e.absolute, e.atime || new Date, e.mtime, o)), this[aC](e) && (s++, $t.chown(e.absolute, this[AC](e), this[lC](e), o)), o()
                    })
                }

                [K9](e) {
                    e.unsupported = !0, this.warn("TAR_ENTRY_UNSUPPORTED", `unsupported entry type: ${e.type}`, {entry: e}), e.resume()
                }

                [O9](e, r) {
                    this[WB](e, e.linkpath, "symlink", r)
                }

                [M9](e, r) {
                    this[WB](e, cA.resolve(this.cwd, e.linkpath), "link", r)
                }

                [H9]() {
                    this[zB]++
                }

                [Qf]() {
                    this[zB]--, this[bR]()
                }

                [QR](e) {
                    this[Qf](), e.resume()
                }

                [IR](e, r) {
                    return e.type === "File" && !this.unlink && r.isFile() && r.nlink <= 1 && process.platform !== "win32"
                }

                [ER](e) {
                    this[H9]();
                    let r = [e.path];
                    e.linkpath && r.push(e.linkpath), this.reservations.reserve(r, i => this[T9](e, i))
                }

                [T9](e, r) {
                    this[bf](cA.dirname(e.absolute), this.dmode, i => {
                        if (i) return r(), this[dn](i, e);
                        $t.lstat(e.absolute, (n, s) => {
                            s && (this.keep || this.newer && s.mtime > e.mtime) ? (this[QR](e), r()) : n || this[IR](e, s) ? this[uA](null, e, r) : s.isDirectory() ? e.type === "Directory" ? !e.mode || (s.mode & 4095) === e.mode ? this[uA](null, e, r) : $t.chmod(e.absolute, e.mode, o => this[uA](o, e, r)) : $t.rmdir(e.absolute, o => this[uA](o, e, r)) : XNe(e.absolute, o => this[uA](o, e, r))
                        })
                    })
                }

                [uA](e, r, i) {
                    if (e) return this[dn](e, r);
                    switch (r.type) {
                        case"File":
                        case"OldFile":
                        case"ContiguousFile":
                            return this[yR](r, i);
                        case"Link":
                            return this[M9](r, i);
                        case"SymbolicLink":
                            return this[O9](r, i);
                        case"Directory":
                        case"GNUDumpDir":
                            return this[wR](r, i)
                    }
                }

                [WB](e, r, i, n) {
                    $t[i](r, e.absolute, s => {
                        if (s) return this[dn](s, e);
                        n(), this[Qf](), e.resume()
                    })
                }
            }, q9 = class extends VB {
                constructor(e) {
                    super(e)
                }

                [ER](e) {
                    let r = this[bf](cA.dirname(e.absolute), this.dmode, _B);
                    if (r) return this[dn](r, e);
                    try {
                        let i = $t.lstatSync(e.absolute);
                        if (this.keep || this.newer && i.mtime > e.mtime) return this[QR](e);
                        if (this[IR](e, i)) return this[uA](null, e, _B);
                        try {
                            return i.isDirectory() ? e.type === "Directory" ? e.mode && (i.mode & 4095) !== e.mode && $t.chmodSync(e.absolute, e.mode) : $t.rmdirSync(e.absolute) : ZNe(e.absolute), this[uA](null, e, _B)
                        } catch (n) {
                            return this[dn](n, e)
                        }
                    } catch (i) {
                        return this[uA](null, e, _B)
                    }
                }

                [yR](e, r) {
                    let i = e.mode & 4095 || this.fmode, n = l => {
                        let c;
                        try {
                            $t.closeSync(o)
                        } catch (u) {
                            c = u
                        }
                        (l || c) && this[dn](l || c, e)
                    }, s, o;
                    try {
                        o = $t.openSync(e.absolute, j9(e.size), i)
                    } catch (l) {
                        return n(l)
                    }
                    let a = this.transform && this.transform(e) || e;
                    a !== e && (a.on("error", l => this[dn](l, e)), e.pipe(a)), a.on("data", l => {
                        try {
                            $t.writeSync(o, l, 0, l.length)
                        } catch (c) {
                            n(c)
                        }
                    }), a.on("end", l => {
                        let c = null;
                        if (e.mtime && !this.noMtime) {
                            let u = e.atime || new Date, g = e.mtime;
                            try {
                                $t.futimesSync(o, u, g)
                            } catch (f) {
                                try {
                                    $t.utimesSync(e.absolute, u, g)
                                } catch (h) {
                                    c = f
                                }
                            }
                        }
                        if (this[aC](e)) {
                            let u = this[AC](e), g = this[lC](e);
                            try {
                                $t.fchownSync(o, u, g)
                            } catch (f) {
                                try {
                                    $t.chownSync(e.absolute, u, g)
                                } catch (h) {
                                    c = c || f
                                }
                            }
                        }
                        n(c)
                    })
                }

                [wR](e, r) {
                    let i = e.mode & 4095 || this.dmode, n = this[bf](e.absolute, i);
                    if (n) return this[dn](n, e);
                    if (e.mtime && !this.noMtime) try {
                        $t.utimesSync(e.absolute, e.atime || new Date, e.mtime)
                    } catch (s) {
                    }
                    if (this[aC](e)) try {
                        $t.chownSync(e.absolute, this[AC](e), this[lC](e))
                    } catch (s) {
                    }
                    e.resume()
                }

                [bf](e, r) {
                    try {
                        return mR.sync(e, {
                            uid: this.uid,
                            gid: this.gid,
                            processUid: this.processUid,
                            processGid: this.processGid,
                            umask: this.processUmask,
                            preserve: this.preservePaths,
                            unlink: this.unlink,
                            cache: this.dirCache,
                            cwd: this.cwd,
                            mode: r
                        })
                    } catch (i) {
                        return i
                    }
                }

                [WB](e, r, i, n) {
                    try {
                        $t[i + "Sync"](r, e.absolute), e.resume()
                    } catch (s) {
                        return this[dn](s, e)
                    }
                }
            };
        VB.Sync = q9;
        F9.exports = VB
    });
    var V9 = w((ylt, J9) => {
        "use strict";
        var $Ne = af(), XB = vR(), W9 = require("fs"), z9 = Ef(), _9 = require("path"),
            Ilt = J9.exports = (t, e, r) => {
                typeof t == "function" ? (r = t, e = null, t = {}) : Array.isArray(t) && (e = t, t = {}), typeof e == "function" && (r = e, e = null), e ? e = Array.from(e) : e = [];
                let i = $Ne(t);
                if (i.sync && typeof r == "function") throw new TypeError("callback not supported for sync tar functions");
                if (!i.file && typeof r == "function") throw new TypeError("callback only supported with file option");
                return e.length && eLe(i, e), i.file && i.sync ? tLe(i) : i.file ? rLe(i, r) : i.sync ? iLe(i) : nLe(i)
            }, eLe = (t, e) => {
                let r = new Map(e.map(s => [s.replace(/\/+$/, ""), !0])), i = t.filter, n = (s, o) => {
                    let a = o || _9.parse(s).root || ".", l = s === a ? !1 : r.has(s) ? r.get(s) : n(_9.dirname(s), a);
                    return r.set(s, l), l
                };
                t.filter = i ? (s, o) => i(s, o) && n(s.replace(/\/+$/, "")) : s => n(s.replace(/\/+$/, ""))
            }, tLe = t => {
                let e = new XB.Sync(t), r = t.file, i = !0, n, s = W9.statSync(r), o = t.maxReadSize || 16 * 1024 * 1024;
                new z9.ReadStreamSync(r, {readSize: o, size: s.size}).pipe(e)
            }, rLe = (t, e) => {
                let r = new XB(t), i = t.maxReadSize || 16 * 1024 * 1024, n = t.file, s = new Promise((o, a) => {
                    r.on("error", a), r.on("close", o), W9.stat(n, (l, c) => {
                        if (l) a(l); else {
                            let u = new z9.ReadStream(n, {readSize: i, size: c.size});
                            u.on("error", a), u.pipe(r)
                        }
                    })
                });
                return e ? s.then(e, e) : s
            }, iLe = t => new XB.Sync(t), nLe = t => new XB(t)
    });
    var X9 = w(hi => {
        "use strict";
        hi.c = hi.create = LV();
        hi.r = hi.replace = lR();
        hi.t = hi.list = GB();
        hi.u = hi.update = YV();
        hi.x = hi.extract = V9();
        hi.Pack = PB();
        hi.Unpack = vR();
        hi.Parse = sC();
        hi.ReadEntry = $d();
        hi.WriteEntry = UD();
        hi.Header = uf();
        hi.Pax = dB();
        hi.types = Zd()
    });
    var r7 = w((blt, t7) => {
        var kR;
        t7.exports.getContent = () => (typeof kR == "undefined" && (kR = require("zlib").brotliDecompressSync(Buffer.from(" ", "base64")).toString()), kR)
    });
    var A7 = w((xR, a7) => {
        (function (t, e) {
            typeof xR == "object" ? a7.exports = e() : typeof define == "function" && define.amd ? define(e) : t.treeify = e()
        })(xR, function () {
            function t(n, s) {
                var o = s ? "\u2514" : "\u251C";
                return n ? o += "\u2500 " : o += "\u2500\u2500\u2510", o
            }

            function e(n, s) {
                var o = [];
                for (var a in n) !n.hasOwnProperty(a) || s && typeof n[a] == "function" || o.push(a);
                return o
            }

            function r(n, s, o, a, l, c, u) {
                var g = "", f = 0, h, p, m = a.slice(0);
                if (m.push([s, o]) && a.length > 0 && (a.forEach(function (b, S) {
                    S > 0 && (g += (b[1] ? " " : "\u2502") + "  "), !p && b[0] === s && (p = !0)
                }), g += t(n, o) + n, l && (typeof s != "object" || s instanceof Date) && (g += ": " + s), p && (g += " (circular ref.)"), u(g)), !p && typeof s == "object") {
                    var y = e(s, c);
                    y.forEach(function (b) {
                        h = ++f === y.length, r(b, s[b], h, m, l, c, u)
                    })
                }
            }

            var i = {};
            return i.asLines = function (n, s, o, a) {
                var l = typeof o != "function" ? o : !1;
                r(".", n, !1, [], s, l, a || o)
            }, i.asTree = function (n, s, o) {
                var a = "";
                return r(".", n, !1, [], s, o, function (l) {
                    a += l + `
`
                }), a
            }, i
        })
    });
    var fA = w(RR => {
        "use strict";
        Object.defineProperty(RR, "__esModule", {value: !0});
        RR.default = h7;

        function h7() {
        }

        h7.prototype = {
            diff: function (e, r) {
                var i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, n = i.callback;
                typeof i == "function" && (n = i, i = {}), this.options = i;
                var s = this;

                function o(m) {
                    return n ? (setTimeout(function () {
                        n(void 0, m)
                    }, 0), !0) : m
                }

                e = this.castInput(e), r = this.castInput(r), e = this.removeEmpty(this.tokenize(e)), r = this.removeEmpty(this.tokenize(r));
                var a = r.length, l = e.length, c = 1, u = a + l, g = [{newPos: -1, components: []}],
                    f = this.extractCommon(g[0], r, e, 0);
                if (g[0].newPos + 1 >= a && f + 1 >= l) return o([{value: this.join(r), count: r.length}]);

                function h() {
                    for (var m = -1 * c; m <= c; m += 2) {
                        var y = void 0, b = g[m - 1], S = g[m + 1], k = (S ? S.newPos : 0) - m;
                        b && (g[m - 1] = void 0);
                        var T = b && b.newPos + 1 < a, Y = S && 0 <= k && k < l;
                        if (!T && !Y) {
                            g[m] = void 0;
                            continue
                        }
                        if (!T || Y && b.newPos < S.newPos ? (y = fLe(S), s.pushComponent(y.components, void 0, !0)) : (y = b, y.newPos++, s.pushComponent(y.components, !0, void 0)), k = s.extractCommon(y, r, e, m), y.newPos + 1 >= a && k + 1 >= l) return o(gLe(s, y.components, r, e, s.useLongestToken));
                        g[m] = y
                    }
                    c++
                }

                if (n) (function m() {
                    setTimeout(function () {
                        if (c > u) return n();
                        h() || m()
                    }, 0)
                })(); else for (; c <= u;) {
                    var p = h();
                    if (p) return p
                }
            }, pushComponent: function (e, r, i) {
                var n = e[e.length - 1];
                n && n.added === r && n.removed === i ? e[e.length - 1] = {
                    count: n.count + 1,
                    added: r,
                    removed: i
                } : e.push({count: 1, added: r, removed: i})
            }, extractCommon: function (e, r, i, n) {
                for (var s = r.length, o = i.length, a = e.newPos, l = a - n, c = 0; a + 1 < s && l + 1 < o && this.equals(r[a + 1], i[l + 1]);) a++, l++, c++;
                return c && e.components.push({count: c}), e.newPos = a, l
            }, equals: function (e, r) {
                return this.options.comparator ? this.options.comparator(e, r) : e === r || this.options.ignoreCase && e.toLowerCase() === r.toLowerCase()
            }, removeEmpty: function (e) {
                for (var r = [], i = 0; i < e.length; i++) e[i] && r.push(e[i]);
                return r
            }, castInput: function (e) {
                return e
            }, tokenize: function (e) {
                return e.split("")
            }, join: function (e) {
                return e.join("")
            }
        };

        function gLe(t, e, r, i, n) {
            for (var s = 0, o = e.length, a = 0, l = 0; s < o; s++) {
                var c = e[s];
                if (c.removed) {
                    if (c.value = t.join(i.slice(l, l + c.count)), l += c.count, s && e[s - 1].added) {
                        var g = e[s - 1];
                        e[s - 1] = e[s], e[s] = g
                    }
                } else {
                    if (!c.added && n) {
                        var u = r.slice(a, a + c.count);
                        u = u.map(function (h, p) {
                            var m = i[l + p];
                            return m.length > h.length ? m : h
                        }), c.value = t.join(u)
                    } else c.value = t.join(r.slice(a, a + c.count));
                    a += c.count, c.added || (l += c.count)
                }
            }
            var f = e[o - 1];
            return o > 1 && typeof f.value == "string" && (f.added || f.removed) && t.equals("", f.value) && (e[o - 2].value += f.value, e.pop()), e
        }

        function fLe(t) {
            return {newPos: t.newPos, components: t.components.slice(0)}
        }
    });
    var d7 = w(cC => {
        "use strict";
        Object.defineProperty(cC, "__esModule", {value: !0});
        cC.diffChars = hLe;
        cC.characterDiff = void 0;
        var dLe = pLe(fA());

        function pLe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var p7 = new dLe.default;
        cC.characterDiff = p7;

        function hLe(t, e, r) {
            return p7.diff(t, e, r)
        }
    });
    var NR = w(FR => {
        "use strict";
        Object.defineProperty(FR, "__esModule", {value: !0});
        FR.generateOptions = CLe;

        function CLe(t, e) {
            if (typeof t == "function") e.callback = t; else if (t) for (var r in t) t.hasOwnProperty(r) && (e[r] = t[r]);
            return e
        }
    });
    var E7 = w(vf => {
        "use strict";
        Object.defineProperty(vf, "__esModule", {value: !0});
        vf.diffWords = mLe;
        vf.diffWordsWithSpace = ELe;
        vf.wordDiff = void 0;
        var yLe = ILe(fA()), wLe = NR();

        function ILe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var C7 = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/, m7 = /\S/, uC = new yLe.default;
        vf.wordDiff = uC;
        uC.equals = function (t, e) {
            return this.options.ignoreCase && (t = t.toLowerCase(), e = e.toLowerCase()), t === e || this.options.ignoreWhitespace && !m7.test(t) && !m7.test(e)
        };
        uC.tokenize = function (t) {
            for (var e = t.split(/(\s+|[()[\]{}'"]|\b)/), r = 0; r < e.length - 1; r++) !e[r + 1] && e[r + 2] && C7.test(e[r]) && C7.test(e[r + 2]) && (e[r] += e[r + 2], e.splice(r + 1, 2), r--);
            return e
        };

        function mLe(t, e, r) {
            return r = (0, wLe.generateOptions)(r, {ignoreWhitespace: !0}), uC.diff(t, e, r)
        }

        function ELe(t, e, r) {
            return uC.diff(t, e, r)
        }
    });
    var $B = w(Sf => {
        "use strict";
        Object.defineProperty(Sf, "__esModule", {value: !0});
        Sf.diffLines = BLe;
        Sf.diffTrimmedLines = bLe;
        Sf.lineDiff = void 0;
        var vLe = QLe(fA()), SLe = NR();

        function QLe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var ZB = new vLe.default;
        Sf.lineDiff = ZB;
        ZB.tokenize = function (t) {
            var e = [], r = t.split(/(\n|\r\n)/);
            r[r.length - 1] || r.pop();
            for (var i = 0; i < r.length; i++) {
                var n = r[i];
                i % 2 && !this.options.newlineIsToken ? e[e.length - 1] += n : (this.options.ignoreWhitespace && (n = n.trim()), e.push(n))
            }
            return e
        };

        function BLe(t, e, r) {
            return ZB.diff(t, e, r)
        }

        function bLe(t, e, r) {
            var i = (0, SLe.generateOptions)(r, {ignoreWhitespace: !0});
            return ZB.diff(t, e, i)
        }
    });
    var I7 = w(gC => {
        "use strict";
        Object.defineProperty(gC, "__esModule", {value: !0});
        gC.diffSentences = kLe;
        gC.sentenceDiff = void 0;
        var PLe = xLe(fA());

        function xLe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var LR = new PLe.default;
        gC.sentenceDiff = LR;
        LR.tokenize = function (t) {
            return t.split(/(\S.+?[.!?])(?=\s+|$)/)
        };

        function kLe(t, e, r) {
            return LR.diff(t, e, r)
        }
    });
    var y7 = w(fC => {
        "use strict";
        Object.defineProperty(fC, "__esModule", {value: !0});
        fC.diffCss = DLe;
        fC.cssDiff = void 0;
        var FLe = RLe(fA());

        function RLe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var TR = new FLe.default;
        fC.cssDiff = TR;
        TR.tokenize = function (t) {
            return t.split(/([{}:;,]|\s+)/)
        };

        function DLe(t, e, r) {
            return TR.diff(t, e, r)
        }
    });
    var B7 = w(kf => {
        "use strict";
        Object.defineProperty(kf, "__esModule", {value: !0});
        kf.diffJson = NLe;
        kf.canonicalize = e0;
        kf.jsonDiff = void 0;
        var w7 = LLe(fA()), TLe = $B();

        function LLe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function t0(t) {
            return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? t0 = function (r) {
                return typeof r
            } : t0 = function (r) {
                return r && typeof Symbol == "function" && r.constructor === Symbol && r !== Symbol.prototype ? "symbol" : typeof r
            }, t0(t)
        }

        var OLe = Object.prototype.toString, Au = new w7.default;
        kf.jsonDiff = Au;
        Au.useLongestToken = !0;
        Au.tokenize = TLe.lineDiff.tokenize;
        Au.castInput = function (t) {
            var e = this.options, r = e.undefinedReplacement, i = e.stringifyReplacer,
                n = i === void 0 ? function (s, o) {
                    return typeof o == "undefined" ? r : o
                } : i;
            return typeof t == "string" ? t : JSON.stringify(e0(t, null, null, n), n, "  ")
        };
        Au.equals = function (t, e) {
            return w7.default.prototype.equals.call(Au, t.replace(/,([\r\n])/g, "$1"), e.replace(/,([\r\n])/g, "$1"))
        };

        function NLe(t, e, r) {
            return Au.diff(t, e, r)
        }

        function e0(t, e, r, i, n) {
            e = e || [], r = r || [], i && (t = i(n, t));
            var s;
            for (s = 0; s < e.length; s += 1) if (e[s] === t) return r[s];
            var o;
            if (OLe.call(t) === "[object Array]") {
                for (e.push(t), o = new Array(t.length), r.push(o), s = 0; s < t.length; s += 1) o[s] = e0(t[s], e, r, i, n);
                return e.pop(), r.pop(), o
            }
            if (t && t.toJSON && (t = t.toJSON()), t0(t) === "object" && t !== null) {
                e.push(t), o = {}, r.push(o);
                var a = [], l;
                for (l in t) t.hasOwnProperty(l) && a.push(l);
                for (a.sort(), s = 0; s < a.length; s += 1) l = a[s], o[l] = e0(t[l], e, r, i, l);
                e.pop(), r.pop()
            } else o = t;
            return o
        }
    });
    var b7 = w(hC => {
        "use strict";
        Object.defineProperty(hC, "__esModule", {value: !0});
        hC.diffArrays = MLe;
        hC.arrayDiff = void 0;
        var ULe = KLe(fA());

        function KLe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var pC = new ULe.default;
        hC.arrayDiff = pC;
        pC.tokenize = function (t) {
            return t.slice()
        };
        pC.join = pC.removeEmpty = function (t) {
            return t
        };

        function MLe(t, e, r) {
            return pC.diff(t, e, r)
        }
    });
    var r0 = w(OR => {
        "use strict";
        Object.defineProperty(OR, "__esModule", {value: !0});
        OR.parsePatch = HLe;

        function HLe(t) {
            var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {},
                r = t.split(/\r\n|[\n\v\f\r\x85]/), i = t.match(/\r\n|[\n\v\f\r\x85]/g) || [], n = [], s = 0;

            function o() {
                var c = {};
                for (n.push(c); s < r.length;) {
                    var u = r[s];
                    if (/^(\-\-\-|\+\+\+|@@)\s/.test(u)) break;
                    var g = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(u);
                    g && (c.index = g[1]), s++
                }
                for (a(c), a(c), c.hunks = []; s < r.length;) {
                    var f = r[s];
                    if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(f)) break;
                    if (/^@@/.test(f)) c.hunks.push(l()); else {
                        if (f && e.strict) throw new Error("Unknown line " + (s + 1) + " " + JSON.stringify(f));
                        s++
                    }
                }
            }

            function a(c) {
                var u = /^(---|\+\+\+)\s+(.*)$/.exec(r[s]);
                if (u) {
                    var g = u[1] === "---" ? "old" : "new", f = u[2].split("	", 2), h = f[0].replace(/\\\\/g, "\\");
                    /^".*"$/.test(h) && (h = h.substr(1, h.length - 2)), c[g + "FileName"] = h, c[g + "Header"] = (f[1] || "").trim(), s++
                }
            }

            function l() {
                for (var c = s, u = r[s++], g = u.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/), f = {
                    oldStart: +g[1],
                    oldLines: +g[2] || 1,
                    newStart: +g[3],
                    newLines: +g[4] || 1,
                    lines: [],
                    linedelimiters: []
                }, h = 0, p = 0; s < r.length && !(r[s].indexOf("--- ") === 0 && s + 2 < r.length && r[s + 1].indexOf("+++ ") === 0 && r[s + 2].indexOf("@@") === 0); s++) {
                    var m = r[s].length == 0 && s != r.length - 1 ? " " : r[s][0];
                    if (m === "+" || m === "-" || m === " " || m === "\\") f.lines.push(r[s]), f.linedelimiters.push(i[s] || `
`), m === "+" ? h++ : m === "-" ? p++ : m === " " && (h++, p++); else break
                }
                if (!h && f.newLines === 1 && (f.newLines = 0), !p && f.oldLines === 1 && (f.oldLines = 0), e.strict) {
                    if (h !== f.newLines) throw new Error("Added line count did not match for hunk at line " + (c + 1));
                    if (p !== f.oldLines) throw new Error("Removed line count did not match for hunk at line " + (c + 1))
                }
                return f
            }

            for (; s < r.length;) o();
            return n
        }
    });
    var Q7 = w(MR => {
        "use strict";
        Object.defineProperty(MR, "__esModule", {value: !0});
        MR.default = GLe;

        function GLe(t, e, r) {
            var i = !0, n = !1, s = !1, o = 1;
            return function a() {
                if (i && !s) {
                    if (n ? o++ : i = !1, t + o <= r) return o;
                    s = !0
                }
                if (!n) return s || (i = !0), e <= t - o ? -o++ : (n = !0, a())
            }
        }
    });
    var k7 = w(i0 => {
        "use strict";
        Object.defineProperty(i0, "__esModule", {value: !0});
        i0.applyPatch = v7;
        i0.applyPatches = jLe;
        var S7 = r0(), qLe = YLe(Q7());

        function YLe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function v7(t, e) {
            var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
            if (typeof e == "string" && (e = (0, S7.parsePatch)(e)), Array.isArray(e)) {
                if (e.length > 1) throw new Error("applyPatch only works with a single input.");
                e = e[0]
            }
            var i = t.split(/\r\n|[\n\v\f\r\x85]/), n = t.match(/\r\n|[\n\v\f\r\x85]/g) || [], s = e.hunks,
                o = r.compareLine || function (O, L, pe, Ce) {
                    return L === Ce
                }, a = 0, l = r.fuzzFactor || 0, c = 0, u = 0, g, f;

            function h(O, L) {
                for (var pe = 0; pe < O.lines.length; pe++) {
                    var Ce = O.lines[pe], Oe = Ce.length > 0 ? Ce[0] : " ", te = Ce.length > 0 ? Ce.substr(1) : Ce;
                    if (Oe === " " || Oe === "-") {
                        if (!o(L + 1, i[L], Oe, te) && (a++, a > l)) return !1;
                        L++
                    }
                }
                return !0
            }

            for (var p = 0; p < s.length; p++) {
                for (var m = s[p], y = i.length - m.oldLines, b = 0, S = u + m.oldStart - 1, k = (0, qLe.default)(S, c, y); b !== void 0; b = k()) if (h(m, S + b)) {
                    m.offset = u += b;
                    break
                }
                if (b === void 0) return !1;
                c = m.offset + m.oldStart + m.oldLines
            }
            for (var T = 0, Y = 0; Y < s.length; Y++) {
                var j = s[Y], Z = j.oldStart + j.offset + T - 1;
                T += j.newLines - j.oldLines, Z < 0 && (Z = 0);
                for (var J = 0; J < j.lines.length; J++) {
                    var re = j.lines[J], ee = re.length > 0 ? re[0] : " ", A = re.length > 0 ? re.substr(1) : re,
                        oe = j.linedelimiters[J];
                    if (ee === " ") Z++; else if (ee === "-") i.splice(Z, 1), n.splice(Z, 1); else if (ee === "+") i.splice(Z, 0, A), n.splice(Z, 0, oe), Z++; else if (ee === "\\") {
                        var le = j.lines[J - 1] ? j.lines[J - 1][0] : null;
                        le === "+" ? g = !0 : le === "-" && (f = !0)
                    }
                }
            }
            if (g) for (; !i[i.length - 1];) i.pop(), n.pop(); else f && (i.push(""), n.push(`
`));
            for (var X = 0; X < i.length - 1; X++) i[X] = i[X] + n[X];
            return i.join("")
        }

        function jLe(t, e) {
            typeof t == "string" && (t = (0, S7.parsePatch)(t));
            var r = 0;

            function i() {
                var n = t[r++];
                if (!n) return e.complete();
                e.loadFile(n, function (s, o) {
                    if (s) return e.complete(s);
                    var a = v7(o, n, e);
                    e.patched(n, a, function (l) {
                        if (l) return e.complete(l);
                        i()
                    })
                })
            }

            i()
        }
    });
    var UR = w(dC => {
        "use strict";
        Object.defineProperty(dC, "__esModule", {value: !0});
        dC.structuredPatch = x7;
        dC.createTwoFilesPatch = P7;
        dC.createPatch = JLe;
        var WLe = $B();

        function KR(t) {
            return VLe(t) || _Le(t) || zLe()
        }

        function zLe() {
            throw new TypeError("Invalid attempt to spread non-iterable instance")
        }

        function _Le(t) {
            if (Symbol.iterator in Object(t) || Object.prototype.toString.call(t) === "[object Arguments]") return Array.from(t)
        }

        function VLe(t) {
            if (Array.isArray(t)) {
                for (var e = 0, r = new Array(t.length); e < t.length; e++) r[e] = t[e];
                return r
            }
        }

        function x7(t, e, r, i, n, s, o) {
            o || (o = {}), typeof o.context == "undefined" && (o.context = 4);
            var a = (0, WLe.diffLines)(r, i, o);
            a.push({value: "", lines: []});

            function l(b) {
                return b.map(function (S) {
                    return " " + S
                })
            }

            for (var c = [], u = 0, g = 0, f = [], h = 1, p = 1, m = function (S) {
                var k = a[S], T = k.lines || k.value.replace(/\n$/, "").split(`
`);
                if (k.lines = T, k.added || k.removed) {
                    var Y;
                    if (!u) {
                        var j = a[S - 1];
                        u = h, g = p, j && (f = o.context > 0 ? l(j.lines.slice(-o.context)) : [], u -= f.length, g -= f.length)
                    }
                    (Y = f).push.apply(Y, KR(T.map(function (X) {
                        return (k.added ? "+" : "-") + X
                    }))), k.added ? p += T.length : h += T.length
                } else {
                    if (u) if (T.length <= o.context * 2 && S < a.length - 2) {
                        var Z;
                        (Z = f).push.apply(Z, KR(l(T)))
                    } else {
                        var J, re = Math.min(T.length, o.context);
                        (J = f).push.apply(J, KR(l(T.slice(0, re))));
                        var ee = {oldStart: u, oldLines: h - u + re, newStart: g, newLines: p - g + re, lines: f};
                        if (S >= a.length - 2 && T.length <= o.context) {
                            var A = /\n$/.test(r), oe = /\n$/.test(i), le = T.length == 0 && f.length > ee.oldLines;
                            !A && le && f.splice(ee.oldLines, 0, "\\ No newline at end of file"), (!A && !le || !oe) && f.push("\\ No newline at end of file")
                        }
                        c.push(ee), u = 0, g = 0, f = []
                    }
                    h += T.length, p += T.length
                }
            }, y = 0; y < a.length; y++) m(y);
            return {oldFileName: t, newFileName: e, oldHeader: n, newHeader: s, hunks: c}
        }

        function P7(t, e, r, i, n, s, o) {
            var a = x7(t, e, r, i, n, s, o), l = [];
            t == e && l.push("Index: " + t), l.push("==================================================================="), l.push("--- " + a.oldFileName + (typeof a.oldHeader == "undefined" ? "" : "	" + a.oldHeader)), l.push("+++ " + a.newFileName + (typeof a.newHeader == "undefined" ? "" : "	" + a.newHeader));
            for (var c = 0; c < a.hunks.length; c++) {
                var u = a.hunks[c];
                l.push("@@ -" + u.oldStart + "," + u.oldLines + " +" + u.newStart + "," + u.newLines + " @@"), l.push.apply(l, u.lines)
            }
            return l.join(`
`) + `
`
        }

        function JLe(t, e, r, i, n, s) {
            return P7(t, t, e, r, i, n, s)
        }
    });
    var R7 = w(n0 => {
        "use strict";
        Object.defineProperty(n0, "__esModule", {value: !0});
        n0.arrayEqual = XLe;
        n0.arrayStartsWith = D7;

        function XLe(t, e) {
            return t.length !== e.length ? !1 : D7(t, e)
        }

        function D7(t, e) {
            if (e.length > t.length) return !1;
            for (var r = 0; r < e.length; r++) if (e[r] !== t[r]) return !1;
            return !0
        }
    });
    var j7 = w(s0 => {
        "use strict";
        Object.defineProperty(s0, "__esModule", {value: !0});
        s0.calcLineCount = F7;
        s0.merge = ZLe;
        var $Le = UR(), eTe = r0(), HR = R7();

        function xf(t) {
            return iTe(t) || rTe(t) || tTe()
        }

        function tTe() {
            throw new TypeError("Invalid attempt to spread non-iterable instance")
        }

        function rTe(t) {
            if (Symbol.iterator in Object(t) || Object.prototype.toString.call(t) === "[object Arguments]") return Array.from(t)
        }

        function iTe(t) {
            if (Array.isArray(t)) {
                for (var e = 0, r = new Array(t.length); e < t.length; e++) r[e] = t[e];
                return r
            }
        }

        function F7(t) {
            var e = GR(t.lines), r = e.oldLines, i = e.newLines;
            r !== void 0 ? t.oldLines = r : delete t.oldLines, i !== void 0 ? t.newLines = i : delete t.newLines
        }

        function ZLe(t, e, r) {
            t = N7(t, r), e = N7(e, r);
            var i = {};
            (t.index || e.index) && (i.index = t.index || e.index), (t.newFileName || e.newFileName) && (L7(t) ? L7(e) ? (i.oldFileName = o0(i, t.oldFileName, e.oldFileName), i.newFileName = o0(i, t.newFileName, e.newFileName), i.oldHeader = o0(i, t.oldHeader, e.oldHeader), i.newHeader = o0(i, t.newHeader, e.newHeader)) : (i.oldFileName = t.oldFileName, i.newFileName = t.newFileName, i.oldHeader = t.oldHeader, i.newHeader = t.newHeader) : (i.oldFileName = e.oldFileName || t.oldFileName, i.newFileName = e.newFileName || t.newFileName, i.oldHeader = e.oldHeader || t.oldHeader, i.newHeader = e.newHeader || t.newHeader)), i.hunks = [];
            for (var n = 0, s = 0, o = 0, a = 0; n < t.hunks.length || s < e.hunks.length;) {
                var l = t.hunks[n] || {oldStart: Infinity}, c = e.hunks[s] || {oldStart: Infinity};
                if (T7(l, c)) i.hunks.push(O7(l, o)), n++, a += l.newLines - l.oldLines; else if (T7(c, l)) i.hunks.push(O7(c, a)), s++, o += c.newLines - c.oldLines; else {
                    var u = {
                        oldStart: Math.min(l.oldStart, c.oldStart),
                        oldLines: 0,
                        newStart: Math.min(l.newStart + o, c.oldStart + a),
                        newLines: 0,
                        lines: []
                    };
                    nTe(u, l.oldStart, l.lines, c.oldStart, c.lines), s++, n++, i.hunks.push(u)
                }
            }
            return i
        }

        function N7(t, e) {
            if (typeof t == "string") {
                if (/^@@/m.test(t) || /^Index:/m.test(t)) return (0, eTe.parsePatch)(t)[0];
                if (!e) throw new Error("Must provide a base reference or pass in a patch");
                return (0, $Le.structuredPatch)(void 0, void 0, e, t)
            }
            return t
        }

        function L7(t) {
            return t.newFileName && t.newFileName !== t.oldFileName
        }

        function o0(t, e, r) {
            return e === r ? e : (t.conflict = !0, {mine: e, theirs: r})
        }

        function T7(t, e) {
            return t.oldStart < e.oldStart && t.oldStart + t.oldLines < e.oldStart
        }

        function O7(t, e) {
            return {
                oldStart: t.oldStart,
                oldLines: t.oldLines,
                newStart: t.newStart + e,
                newLines: t.newLines,
                lines: t.lines
            }
        }

        function nTe(t, e, r, i, n) {
            var s = {offset: e, lines: r, index: 0}, o = {offset: i, lines: n, index: 0};
            for (K7(t, s, o), K7(t, o, s); s.index < s.lines.length && o.index < o.lines.length;) {
                var a = s.lines[s.index], l = o.lines[o.index];
                if ((a[0] === "-" || a[0] === "+") && (l[0] === "-" || l[0] === "+")) sTe(t, s, o); else if (a[0] === "+" && l[0] === " ") {
                    var c;
                    (c = t.lines).push.apply(c, xf(lu(s)))
                } else if (l[0] === "+" && a[0] === " ") {
                    var u;
                    (u = t.lines).push.apply(u, xf(lu(o)))
                } else a[0] === "-" && l[0] === " " ? M7(t, s, o) : l[0] === "-" && a[0] === " " ? M7(t, o, s, !0) : a === l ? (t.lines.push(a), s.index++, o.index++) : jR(t, lu(s), lu(o))
            }
            U7(t, s), U7(t, o), F7(t)
        }

        function sTe(t, e, r) {
            var i = lu(e), n = lu(r);
            if (H7(i) && H7(n)) {
                if ((0, HR.arrayStartsWith)(i, n) && G7(r, i, i.length - n.length)) {
                    var s;
                    (s = t.lines).push.apply(s, xf(i));
                    return
                } else if ((0, HR.arrayStartsWith)(n, i) && G7(e, n, n.length - i.length)) {
                    var o;
                    (o = t.lines).push.apply(o, xf(n));
                    return
                }
            } else if ((0, HR.arrayEqual)(i, n)) {
                var a;
                (a = t.lines).push.apply(a, xf(i));
                return
            }
            jR(t, i, n)
        }

        function M7(t, e, r, i) {
            var n = lu(e), s = oTe(r, n);
            if (s.merged) {
                var o;
                (o = t.lines).push.apply(o, xf(s.merged))
            } else jR(t, i ? s : n, i ? n : s)
        }

        function jR(t, e, r) {
            t.conflict = !0, t.lines.push({conflict: !0, mine: e, theirs: r})
        }

        function K7(t, e, r) {
            for (; e.offset < r.offset && e.index < e.lines.length;) {
                var i = e.lines[e.index++];
                t.lines.push(i), e.offset++
            }
        }

        function U7(t, e) {
            for (; e.index < e.lines.length;) {
                var r = e.lines[e.index++];
                t.lines.push(r)
            }
        }

        function lu(t) {
            for (var e = [], r = t.lines[t.index][0]; t.index < t.lines.length;) {
                var i = t.lines[t.index];
                if (r === "-" && i[0] === "+" && (r = "+"), r === i[0]) e.push(i), t.index++; else break
            }
            return e
        }

        function oTe(t, e) {
            for (var r = [], i = [], n = 0, s = !1, o = !1; n < e.length && t.index < t.lines.length;) {
                var a = t.lines[t.index], l = e[n];
                if (l[0] === "+") break;
                if (s = s || a[0] !== " ", i.push(l), n++, a[0] === "+") for (o = !0; a[0] === "+";) r.push(a), a = t.lines[++t.index];
                l.substr(1) === a.substr(1) ? (r.push(a), t.index++) : o = !0
            }
            if ((e[n] || "")[0] === "+" && s && (o = !0), o) return r;
            for (; n < e.length;) i.push(e[n++]);
            return {merged: i, changes: r}
        }

        function H7(t) {
            return t.reduce(function (e, r) {
                return e && r[0] === "-"
            }, !0)
        }

        function G7(t, e, r) {
            for (var i = 0; i < r; i++) {
                var n = e[e.length - r + i].substr(1);
                if (t.lines[t.index + i] !== " " + n) return !1
            }
            return t.index += r, !0
        }

        function GR(t) {
            var e = 0, r = 0;
            return t.forEach(function (i) {
                if (typeof i != "string") {
                    var n = GR(i.mine), s = GR(i.theirs);
                    e !== void 0 && (n.oldLines === s.oldLines ? e += n.oldLines : e = void 0), r !== void 0 && (n.newLines === s.newLines ? r += n.newLines : r = void 0)
                } else r !== void 0 && (i[0] === "+" || i[0] === " ") && r++, e !== void 0 && (i[0] === "-" || i[0] === " ") && e++
            }), {oldLines: e, newLines: r}
        }
    });
    var Y7 = w(YR => {
        "use strict";
        Object.defineProperty(YR, "__esModule", {value: !0});
        YR.convertChangesToDMP = aTe;

        function aTe(t) {
            for (var e = [], r, i, n = 0; n < t.length; n++) r = t[n], r.added ? i = 1 : r.removed ? i = -1 : i = 0, e.push([i, r.value]);
            return e
        }
    });
    var q7 = w(qR => {
        "use strict";
        Object.defineProperty(qR, "__esModule", {value: !0});
        qR.convertChangesToXML = ATe;

        function ATe(t) {
            for (var e = [], r = 0; r < t.length; r++) {
                var i = t[r];
                i.added ? e.push("<ins>") : i.removed && e.push("<del>"), e.push(lTe(i.value)), i.added ? e.push("</ins>") : i.removed && e.push("</del>")
            }
            return e.join("")
        }

        function lTe(t) {
            var e = t;
            return e = e.replace(/&/g, "&amp;"), e = e.replace(/</g, "&lt;"), e = e.replace(/>/g, "&gt;"), e = e.replace(/"/g, "&quot;"), e
        }
    });
    var V7 = w(Ur => {
        "use strict";
        Object.defineProperty(Ur, "__esModule", {value: !0});
        Object.defineProperty(Ur, "Diff", {
            enumerable: !0, get: function () {
                return cTe.default
            }
        });
        Object.defineProperty(Ur, "diffChars", {
            enumerable: !0, get: function () {
                return uTe.diffChars
            }
        });
        Object.defineProperty(Ur, "diffWords", {
            enumerable: !0, get: function () {
                return J7.diffWords
            }
        });
        Object.defineProperty(Ur, "diffWordsWithSpace", {
            enumerable: !0, get: function () {
                return J7.diffWordsWithSpace
            }
        });
        Object.defineProperty(Ur, "diffLines", {
            enumerable: !0, get: function () {
                return W7.diffLines
            }
        });
        Object.defineProperty(Ur, "diffTrimmedLines", {
            enumerable: !0, get: function () {
                return W7.diffTrimmedLines
            }
        });
        Object.defineProperty(Ur, "diffSentences", {
            enumerable: !0, get: function () {
                return gTe.diffSentences
            }
        });
        Object.defineProperty(Ur, "diffCss", {
            enumerable: !0, get: function () {
                return fTe.diffCss
            }
        });
        Object.defineProperty(Ur, "diffJson", {
            enumerable: !0, get: function () {
                return z7.diffJson
            }
        });
        Object.defineProperty(Ur, "canonicalize", {
            enumerable: !0, get: function () {
                return z7.canonicalize
            }
        });
        Object.defineProperty(Ur, "diffArrays", {
            enumerable: !0, get: function () {
                return hTe.diffArrays
            }
        });
        Object.defineProperty(Ur, "applyPatch", {
            enumerable: !0, get: function () {
                return _7.applyPatch
            }
        });
        Object.defineProperty(Ur, "applyPatches", {
            enumerable: !0, get: function () {
                return _7.applyPatches
            }
        });
        Object.defineProperty(Ur, "parsePatch", {
            enumerable: !0, get: function () {
                return pTe.parsePatch
            }
        });
        Object.defineProperty(Ur, "merge", {
            enumerable: !0, get: function () {
                return dTe.merge
            }
        });
        Object.defineProperty(Ur, "structuredPatch", {
            enumerable: !0, get: function () {
                return JR.structuredPatch
            }
        });
        Object.defineProperty(Ur, "createTwoFilesPatch", {
            enumerable: !0, get: function () {
                return JR.createTwoFilesPatch
            }
        });
        Object.defineProperty(Ur, "createPatch", {
            enumerable: !0, get: function () {
                return JR.createPatch
            }
        });
        Object.defineProperty(Ur, "convertChangesToDMP", {
            enumerable: !0, get: function () {
                return CTe.convertChangesToDMP
            }
        });
        Object.defineProperty(Ur, "convertChangesToXML", {
            enumerable: !0, get: function () {
                return mTe.convertChangesToXML
            }
        });
        var cTe = ETe(fA()), uTe = d7(), J7 = E7(), W7 = $B(), gTe = I7(), fTe = y7(), z7 = B7(), hTe = b7(), _7 = k7(),
            pTe = r0(), dTe = j7(), JR = UR(), CTe = Y7(), mTe = q7();

        function ETe(t) {
            return t && t.__esModule ? t : {default: t}
        }
    });
    var a0 = w((dct, X7) => {
        var ITe = Ms(), yTe = yd(), wTe = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, BTe = /^\w*$/;

        function bTe(t, e) {
            if (ITe(t)) return !1;
            var r = typeof t;
            return r == "number" || r == "symbol" || r == "boolean" || t == null || yTe(t) ? !0 : BTe.test(t) || !wTe.test(t) || e != null && t in Object(e)
        }

        X7.exports = bTe
    });
    var A0 = w((Cct, Z7) => {
        var QTe = Gc(), vTe = Rn(), STe = "[object AsyncFunction]", kTe = "[object Function]",
            xTe = "[object GeneratorFunction]", PTe = "[object Proxy]";

        function DTe(t) {
            if (!vTe(t)) return !1;
            var e = QTe(t);
            return e == kTe || e == xTe || e == STe || e == PTe
        }

        Z7.exports = DTe
    });
    var eX = w((mct, $7) => {
        var RTe = Fs(), FTe = RTe["__core-js_shared__"];
        $7.exports = FTe
    });
    var iX = w((Ect, tX) => {
        var WR = eX(), rX = function () {
            var t = /[^.]+$/.exec(WR && WR.keys && WR.keys.IE_PROTO || "");
            return t ? "Symbol(src)_1." + t : ""
        }();

        function NTe(t) {
            return !!rX && rX in t
        }

        tX.exports = NTe
    });
    var zR = w((Ict, nX) => {
        var LTe = Function.prototype, TTe = LTe.toString;

        function OTe(t) {
            if (t != null) {
                try {
                    return TTe.call(t)
                } catch (e) {
                }
                try {
                    return t + ""
                } catch (e) {
                }
            }
            return ""
        }

        nX.exports = OTe
    });
    var oX = w((yct, sX) => {
        var MTe = A0(), KTe = iX(), UTe = Rn(), HTe = zR(), GTe = /[\\^$.*+?()[\]{}|]/g,
            jTe = /^\[object .+?Constructor\]$/, YTe = Function.prototype, qTe = Object.prototype, JTe = YTe.toString,
            WTe = qTe.hasOwnProperty,
            zTe = RegExp("^" + JTe.call(WTe).replace(GTe, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$");

        function _Te(t) {
            if (!UTe(t) || KTe(t)) return !1;
            var e = MTe(t) ? zTe : jTe;
            return e.test(HTe(t))
        }

        sX.exports = _Te
    });
    var AX = w((wct, aX) => {
        function VTe(t, e) {
            return t == null ? void 0 : t[e]
        }

        aX.exports = VTe
    });
    var Sl = w((Bct, lX) => {
        var XTe = oX(), ZTe = AX();

        function $Te(t, e) {
            var r = ZTe(t, e);
            return XTe(r) ? r : void 0
        }

        lX.exports = $Te
    });
    var CC = w((bct, cX) => {
        var eOe = Sl(), tOe = eOe(Object, "create");
        cX.exports = tOe
    });
    var fX = w((Qct, uX) => {
        var gX = CC();

        function rOe() {
            this.__data__ = gX ? gX(null) : {}, this.size = 0
        }

        uX.exports = rOe
    });
    var pX = w((vct, hX) => {
        function iOe(t) {
            var e = this.has(t) && delete this.__data__[t];
            return this.size -= e ? 1 : 0, e
        }

        hX.exports = iOe
    });
    var CX = w((Sct, dX) => {
        var nOe = CC(), sOe = "__lodash_hash_undefined__", oOe = Object.prototype, aOe = oOe.hasOwnProperty;

        function AOe(t) {
            var e = this.__data__;
            if (nOe) {
                var r = e[t];
                return r === sOe ? void 0 : r
            }
            return aOe.call(e, t) ? e[t] : void 0
        }

        dX.exports = AOe
    });
    var EX = w((kct, mX) => {
        var lOe = CC(), cOe = Object.prototype, uOe = cOe.hasOwnProperty;

        function gOe(t) {
            var e = this.__data__;
            return lOe ? e[t] !== void 0 : uOe.call(e, t)
        }

        mX.exports = gOe
    });
    var yX = w((xct, IX) => {
        var fOe = CC(), hOe = "__lodash_hash_undefined__";

        function pOe(t, e) {
            var r = this.__data__;
            return this.size += this.has(t) ? 0 : 1, r[t] = fOe && e === void 0 ? hOe : e, this
        }

        IX.exports = pOe
    });
    var BX = w((Pct, wX) => {
        var dOe = fX(), COe = pX(), mOe = CX(), EOe = EX(), IOe = yX();

        function Pf(t) {
            var e = -1, r = t == null ? 0 : t.length;
            for (this.clear(); ++e < r;) {
                var i = t[e];
                this.set(i[0], i[1])
            }
        }

        Pf.prototype.clear = dOe;
        Pf.prototype.delete = COe;
        Pf.prototype.get = mOe;
        Pf.prototype.has = EOe;
        Pf.prototype.set = IOe;
        wX.exports = Pf
    });
    var QX = w((Dct, bX) => {
        function yOe() {
            this.__data__ = [], this.size = 0
        }

        bX.exports = yOe
    });
    var Df = w((Rct, vX) => {
        function wOe(t, e) {
            return t === e || t !== t && e !== e
        }

        vX.exports = wOe
    });
    var mC = w((Fct, SX) => {
        var BOe = Df();

        function bOe(t, e) {
            for (var r = t.length; r--;) if (BOe(t[r][0], e)) return r;
            return -1
        }

        SX.exports = bOe
    });
    var xX = w((Nct, kX) => {
        var QOe = mC(), vOe = Array.prototype, SOe = vOe.splice;

        function kOe(t) {
            var e = this.__data__, r = QOe(e, t);
            if (r < 0) return !1;
            var i = e.length - 1;
            return r == i ? e.pop() : SOe.call(e, r, 1), --this.size, !0
        }

        kX.exports = kOe
    });
    var DX = w((Lct, PX) => {
        var xOe = mC();

        function POe(t) {
            var e = this.__data__, r = xOe(e, t);
            return r < 0 ? void 0 : e[r][1]
        }

        PX.exports = POe
    });
    var FX = w((Tct, RX) => {
        var DOe = mC();

        function ROe(t) {
            return DOe(this.__data__, t) > -1
        }

        RX.exports = ROe
    });
    var LX = w((Oct, NX) => {
        var FOe = mC();

        function NOe(t, e) {
            var r = this.__data__, i = FOe(r, t);
            return i < 0 ? (++this.size, r.push([t, e])) : r[i][1] = e, this
        }

        NX.exports = NOe
    });
    var EC = w((Mct, TX) => {
        var LOe = QX(), TOe = xX(), OOe = DX(), MOe = FX(), KOe = LX();

        function Rf(t) {
            var e = -1, r = t == null ? 0 : t.length;
            for (this.clear(); ++e < r;) {
                var i = t[e];
                this.set(i[0], i[1])
            }
        }

        Rf.prototype.clear = LOe;
        Rf.prototype.delete = TOe;
        Rf.prototype.get = OOe;
        Rf.prototype.has = MOe;
        Rf.prototype.set = KOe;
        TX.exports = Rf
    });
    var l0 = w((Kct, OX) => {
        var UOe = Sl(), HOe = Fs(), GOe = UOe(HOe, "Map");
        OX.exports = GOe
    });
    var UX = w((Uct, MX) => {
        var KX = BX(), jOe = EC(), YOe = l0();

        function qOe() {
            this.size = 0, this.__data__ = {hash: new KX, map: new (YOe || jOe), string: new KX}
        }

        MX.exports = qOe
    });
    var GX = w((Hct, HX) => {
        function JOe(t) {
            var e = typeof t;
            return e == "string" || e == "number" || e == "symbol" || e == "boolean" ? t !== "__proto__" : t === null
        }

        HX.exports = JOe
    });
    var IC = w((Gct, jX) => {
        var WOe = GX();

        function zOe(t, e) {
            var r = t.__data__;
            return WOe(e) ? r[typeof e == "string" ? "string" : "hash"] : r.map
        }

        jX.exports = zOe
    });
    var qX = w((jct, YX) => {
        var _Oe = IC();

        function VOe(t) {
            var e = _Oe(this, t).delete(t);
            return this.size -= e ? 1 : 0, e
        }

        YX.exports = VOe
    });
    var WX = w((Yct, JX) => {
        var XOe = IC();

        function ZOe(t) {
            return XOe(this, t).get(t)
        }

        JX.exports = ZOe
    });
    var _X = w((qct, zX) => {
        var $Oe = IC();

        function eMe(t) {
            return $Oe(this, t).has(t)
        }

        zX.exports = eMe
    });
    var XX = w((Jct, VX) => {
        var tMe = IC();

        function rMe(t, e) {
            var r = tMe(this, t), i = r.size;
            return r.set(t, e), this.size += r.size == i ? 0 : 1, this
        }

        VX.exports = rMe
    });
    var c0 = w((Wct, ZX) => {
        var iMe = UX(), nMe = qX(), sMe = WX(), oMe = _X(), aMe = XX();

        function Ff(t) {
            var e = -1, r = t == null ? 0 : t.length;
            for (this.clear(); ++e < r;) {
                var i = t[e];
                this.set(i[0], i[1])
            }
        }

        Ff.prototype.clear = iMe;
        Ff.prototype.delete = nMe;
        Ff.prototype.get = sMe;
        Ff.prototype.has = oMe;
        Ff.prototype.set = aMe;
        ZX.exports = Ff
    });
    var tZ = w((zct, $X) => {
        var eZ = c0(), AMe = "Expected a function";

        function _R(t, e) {
            if (typeof t != "function" || e != null && typeof e != "function") throw new TypeError(AMe);
            var r = function () {
                var i = arguments, n = e ? e.apply(this, i) : i[0], s = r.cache;
                if (s.has(n)) return s.get(n);
                var o = t.apply(this, i);
                return r.cache = s.set(n, o) || s, o
            };
            return r.cache = new (_R.Cache || eZ), r
        }

        _R.Cache = eZ;
        $X.exports = _R
    });
    var iZ = w((_ct, rZ) => {
        var lMe = tZ(), cMe = 500;

        function uMe(t) {
            var e = lMe(t, function (i) {
                return r.size === cMe && r.clear(), i
            }), r = e.cache;
            return e
        }

        rZ.exports = uMe
    });
    var sZ = w((Vct, nZ) => {
        var gMe = iZ(),
            fMe = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,
            hMe = /\\(\\)?/g, pMe = gMe(function (t) {
                var e = [];
                return t.charCodeAt(0) === 46 && e.push(""), t.replace(fMe, function (r, i, n, s) {
                    e.push(n ? s.replace(hMe, "$1") : i || r)
                }), e
            });
        nZ.exports = pMe
    });
    var Nf = w((Xct, oZ) => {
        var dMe = Ms(), CMe = a0(), mMe = sZ(), EMe = of();

        function IMe(t, e) {
            return dMe(t) ? t : CMe(t, e) ? [t] : mMe(EMe(t))
        }

        oZ.exports = IMe
    });
    var cu = w((Zct, aZ) => {
        var yMe = yd(), wMe = 1 / 0;

        function BMe(t) {
            if (typeof t == "string" || yMe(t)) return t;
            var e = t + "";
            return e == "0" && 1 / t == -wMe ? "-0" : e
        }

        aZ.exports = BMe
    });
    var yC = w(($ct, AZ) => {
        var bMe = Nf(), QMe = cu();

        function vMe(t, e) {
            e = bMe(e, t);
            for (var r = 0, i = e.length; t != null && r < i;) t = t[QMe(e[r++])];
            return r && r == i ? t : void 0
        }

        AZ.exports = vMe
    });
    var VR = w((eut, lZ) => {
        var SMe = Sl(), kMe = function () {
            try {
                var t = SMe(Object, "defineProperty");
                return t({}, "", {}), t
            } catch (e) {
            }
        }();
        lZ.exports = kMe
    });
    var Lf = w((tut, cZ) => {
        var uZ = VR();

        function xMe(t, e, r) {
            e == "__proto__" && uZ ? uZ(t, e, {configurable: !0, enumerable: !0, value: r, writable: !0}) : t[e] = r
        }

        cZ.exports = xMe
    });
    var u0 = w((rut, gZ) => {
        var PMe = Lf(), DMe = Df(), RMe = Object.prototype, FMe = RMe.hasOwnProperty;

        function NMe(t, e, r) {
            var i = t[e];
            (!(FMe.call(t, e) && DMe(i, r)) || r === void 0 && !(e in t)) && PMe(t, e, r)
        }

        gZ.exports = NMe
    });
    var wC = w((iut, fZ) => {
        var LMe = 9007199254740991, TMe = /^(?:0|[1-9]\d*)$/;

        function OMe(t, e) {
            var r = typeof t;
            return e = e == null ? LMe : e, !!e && (r == "number" || r != "symbol" && TMe.test(t)) && t > -1 && t % 1 == 0 && t < e
        }

        fZ.exports = OMe
    });
    var XR = w((nut, hZ) => {
        var MMe = u0(), KMe = Nf(), UMe = wC(), pZ = Rn(), HMe = cu();

        function GMe(t, e, r, i) {
            if (!pZ(t)) return t;
            e = KMe(e, t);
            for (var n = -1, s = e.length, o = s - 1, a = t; a != null && ++n < s;) {
                var l = HMe(e[n]), c = r;
                if (l === "__proto__" || l === "constructor" || l === "prototype") return t;
                if (n != o) {
                    var u = a[l];
                    c = i ? i(u, l, a) : void 0, c === void 0 && (c = pZ(u) ? u : UMe(e[n + 1]) ? [] : {})
                }
                MMe(a, l, c), a = a[l]
            }
            return t
        }

        hZ.exports = GMe
    });
    var CZ = w((sut, dZ) => {
        var jMe = yC(), YMe = XR(), qMe = Nf();

        function JMe(t, e, r) {
            for (var i = -1, n = e.length, s = {}; ++i < n;) {
                var o = e[i], a = jMe(t, o);
                r(a, o) && YMe(s, qMe(o, t), a)
            }
            return s
        }

        dZ.exports = JMe
    });
    var EZ = w((out, mZ) => {
        function WMe(t, e) {
            return t != null && e in Object(t)
        }

        mZ.exports = WMe
    });
    var yZ = w((aut, IZ) => {
        var zMe = Gc(), _Me = Zo(), VMe = "[object Arguments]";

        function XMe(t) {
            return _Me(t) && zMe(t) == VMe
        }

        IZ.exports = XMe
    });
    var BC = w((Aut, wZ) => {
        var BZ = yZ(), ZMe = Zo(), bZ = Object.prototype, $Me = bZ.hasOwnProperty, eKe = bZ.propertyIsEnumerable,
            tKe = BZ(function () {
                return arguments
            }()) ? BZ : function (t) {
                return ZMe(t) && $Me.call(t, "callee") && !eKe.call(t, "callee")
            };
        wZ.exports = tKe
    });
    var g0 = w((lut, QZ) => {
        var rKe = 9007199254740991;

        function iKe(t) {
            return typeof t == "number" && t > -1 && t % 1 == 0 && t <= rKe
        }

        QZ.exports = iKe
    });
    var ZR = w((cut, vZ) => {
        var nKe = Nf(), sKe = BC(), oKe = Ms(), aKe = wC(), AKe = g0(), lKe = cu();

        function cKe(t, e, r) {
            e = nKe(e, t);
            for (var i = -1, n = e.length, s = !1; ++i < n;) {
                var o = lKe(e[i]);
                if (!(s = t != null && r(t, o))) break;
                t = t[o]
            }
            return s || ++i != n ? s : (n = t == null ? 0 : t.length, !!n && AKe(n) && aKe(o, n) && (oKe(t) || sKe(t)))
        }

        vZ.exports = cKe
    });
    var $R = w((uut, SZ) => {
        var uKe = EZ(), gKe = ZR();

        function fKe(t, e) {
            return t != null && gKe(t, e, uKe)
        }

        SZ.exports = fKe
    });
    var xZ = w((gut, kZ) => {
        var hKe = CZ(), pKe = $R();

        function dKe(t, e) {
            return hKe(t, e, function (r, i) {
                return pKe(t, i)
            })
        }

        kZ.exports = dKe
    });
    var f0 = w((fut, PZ) => {
        function CKe(t, e) {
            for (var r = -1, i = e.length, n = t.length; ++r < i;) t[n + r] = e[r];
            return t
        }

        PZ.exports = CKe
    });
    var NZ = w((hut, DZ) => {
        var RZ = Hc(), mKe = BC(), EKe = Ms(), FZ = RZ ? RZ.isConcatSpreadable : void 0;

        function IKe(t) {
            return EKe(t) || mKe(t) || !!(FZ && t && t[FZ])
        }

        DZ.exports = IKe
    });
    var OZ = w((put, LZ) => {
        var yKe = f0(), wKe = NZ();

        function TZ(t, e, r, i, n) {
            var s = -1, o = t.length;
            for (r || (r = wKe), n || (n = []); ++s < o;) {
                var a = t[s];
                e > 0 && r(a) ? e > 1 ? TZ(a, e - 1, r, i, n) : yKe(n, a) : i || (n[n.length] = a)
            }
            return n
        }

        LZ.exports = TZ
    });
    var KZ = w((dut, MZ) => {
        var BKe = OZ();

        function bKe(t) {
            var e = t == null ? 0 : t.length;
            return e ? BKe(t, 1) : []
        }

        MZ.exports = bKe
    });
    var HZ = w((Cut, UZ) => {
        function QKe(t, e, r) {
            switch (r.length) {
                case 0:
                    return t.call(e);
                case 1:
                    return t.call(e, r[0]);
                case 2:
                    return t.call(e, r[0], r[1]);
                case 3:
                    return t.call(e, r[0], r[1], r[2])
            }
            return t.apply(e, r)
        }

        UZ.exports = QKe
    });
    var eF = w((mut, GZ) => {
        var vKe = HZ(), jZ = Math.max;

        function SKe(t, e, r) {
            return e = jZ(e === void 0 ? t.length - 1 : e, 0), function () {
                for (var i = arguments, n = -1, s = jZ(i.length - e, 0), o = Array(s); ++n < s;) o[n] = i[e + n];
                n = -1;
                for (var a = Array(e + 1); ++n < e;) a[n] = i[n];
                return a[e] = r(o), vKe(t, this, a)
            }
        }

        GZ.exports = SKe
    });
    var qZ = w((Eut, YZ) => {
        function kKe(t) {
            return function () {
                return t
            }
        }

        YZ.exports = kKe
    });
    var h0 = w((Iut, JZ) => {
        function xKe(t) {
            return t
        }

        JZ.exports = xKe
    });
    var _Z = w((yut, WZ) => {
        var PKe = qZ(), zZ = VR(), DKe = h0(), RKe = zZ ? function (t, e) {
            return zZ(t, "toString", {configurable: !0, enumerable: !1, value: PKe(e), writable: !0})
        } : DKe;
        WZ.exports = RKe
    });
    var XZ = w((wut, VZ) => {
        var FKe = 800, NKe = 16, LKe = Date.now;

        function TKe(t) {
            var e = 0, r = 0;
            return function () {
                var i = LKe(), n = NKe - (i - r);
                if (r = i, n > 0) {
                    if (++e >= FKe) return arguments[0]
                } else e = 0;
                return t.apply(void 0, arguments)
            }
        }

        VZ.exports = TKe
    });
    var tF = w((But, ZZ) => {
        var OKe = _Z(), MKe = XZ(), KKe = MKe(OKe);
        ZZ.exports = KKe
    });
    var e$ = w((but, $Z) => {
        var UKe = KZ(), HKe = eF(), GKe = tF();

        function jKe(t) {
            return GKe(HKe(t, void 0, UKe), t + "")
        }

        $Z.exports = jKe
    });
    var r$ = w((Qut, t$) => {
        var YKe = xZ(), qKe = e$(), JKe = qKe(function (t, e) {
            return t == null ? {} : YKe(t, e)
        });
        t$.exports = JKe
    });
    var p$ = w((yft, g$) => {
        "use strict";
        var uF;
        try {
            uF = Map
        } catch (t) {
        }
        var gF;
        try {
            gF = Set
        } catch (t) {
        }

        function f$(t, e, r) {
            if (!t || typeof t != "object" || typeof t == "function") return t;
            if (t.nodeType && "cloneNode" in t) return t.cloneNode(!0);
            if (t instanceof Date) return new Date(t.getTime());
            if (t instanceof RegExp) return new RegExp(t);
            if (Array.isArray(t)) return t.map(h$);
            if (uF && t instanceof uF) return new Map(Array.from(t.entries()));
            if (gF && t instanceof gF) return new Set(Array.from(t.values()));
            if (t instanceof Object) {
                e.push(t);
                var i = Object.create(t);
                r.push(i);
                for (var n in t) {
                    var s = e.findIndex(function (o) {
                        return o === t[n]
                    });
                    i[n] = s > -1 ? r[s] : f$(t[n], e, r)
                }
                return i
            }
            return t
        }

        function h$(t) {
            return f$(t, [], [])
        }

        g$.exports = h$
    });
    var SC = w(fF => {
        "use strict";
        Object.defineProperty(fF, "__esModule", {value: !0});
        fF.default = t1e;
        var r1e = Object.prototype.toString, i1e = Error.prototype.toString, n1e = RegExp.prototype.toString,
            s1e = typeof Symbol != "undefined" ? Symbol.prototype.toString : () => "", o1e = /^Symbol\((.*)\)(.*)$/;

        function a1e(t) {
            return t != +t ? "NaN" : t === 0 && 1 / t < 0 ? "-0" : "" + t
        }

        function d$(t, e = !1) {
            if (t == null || t === !0 || t === !1) return "" + t;
            let r = typeof t;
            if (r === "number") return a1e(t);
            if (r === "string") return e ? `"${t}"` : t;
            if (r === "function") return "[Function " + (t.name || "anonymous") + "]";
            if (r === "symbol") return s1e.call(t).replace(o1e, "Symbol($1)");
            let i = r1e.call(t).slice(8, -1);
            return i === "Date" ? isNaN(t.getTime()) ? "" + t : t.toISOString(t) : i === "Error" || t instanceof Error ? "[" + i1e.call(t) + "]" : i === "RegExp" ? n1e.call(t) : null
        }

        function t1e(t, e) {
            let r = d$(t, e);
            return r !== null ? r : JSON.stringify(t, function (i, n) {
                let s = d$(this[i], e);
                return s !== null ? s : n
            }, 2)
        }
    });
    var hA = w(Bi => {
        "use strict";
        Object.defineProperty(Bi, "__esModule", {value: !0});
        Bi.default = Bi.array = Bi.object = Bi.boolean = Bi.date = Bi.number = Bi.string = Bi.mixed = void 0;
        var C$ = A1e(SC());

        function A1e(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var m$ = {
            default: "${path} is invalid",
            required: "${path} is a required field",
            oneOf: "${path} must be one of the following values: ${values}",
            notOneOf: "${path} must not be one of the following values: ${values}",
            notType: ({path: t, type: e, value: r, originalValue: i}) => {
                let n = i != null && i !== r,
                    s = `${t} must be a \`${e}\` type, but the final value was: \`${(0, C$.default)(r, !0)}\`` + (n ? ` (cast from the value \`${(0, C$.default)(i, !0)}\`).` : ".");
                return r === null && (s += '\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'), s
            },
            defined: "${path} must be defined"
        };
        Bi.mixed = m$;
        var E$ = {
            length: "${path} must be exactly ${length} characters",
            min: "${path} must be at least ${min} characters",
            max: "${path} must be at most ${max} characters",
            matches: '${path} must match the following: "${regex}"',
            email: "${path} must be a valid email",
            url: "${path} must be a valid URL",
            uuid: "${path} must be a valid UUID",
            trim: "${path} must be a trimmed string",
            lowercase: "${path} must be a lowercase string",
            uppercase: "${path} must be a upper case string"
        };
        Bi.string = E$;
        var I$ = {
            min: "${path} must be greater than or equal to ${min}",
            max: "${path} must be less than or equal to ${max}",
            lessThan: "${path} must be less than ${less}",
            moreThan: "${path} must be greater than ${more}",
            positive: "${path} must be a positive number",
            negative: "${path} must be a negative number",
            integer: "${path} must be an integer"
        };
        Bi.number = I$;
        var y$ = {min: "${path} field must be later than ${min}", max: "${path} field must be at earlier than ${max}"};
        Bi.date = y$;
        var w$ = {isValue: "${path} field must be ${value}"};
        Bi.boolean = w$;
        var B$ = {noUnknown: "${path} field has unspecified keys: ${unknown}"};
        Bi.object = B$;
        var b$ = {
            min: "${path} field must have at least ${min} items",
            max: "${path} field must have less than or equal to ${max} items",
            length: "${path} must be have ${length} items"
        };
        Bi.array = b$;
        var l1e = Object.assign(Object.create(null), {
            mixed: m$,
            string: E$,
            number: I$,
            date: y$,
            object: B$,
            array: b$,
            boolean: w$
        });
        Bi.default = l1e
    });
    var v$ = w((bft, Q$) => {
        var c1e = Object.prototype, u1e = c1e.hasOwnProperty;

        function g1e(t, e) {
            return t != null && u1e.call(t, e)
        }

        Q$.exports = g1e
    });
    var kC = w((Qft, S$) => {
        var f1e = v$(), h1e = ZR();

        function p1e(t, e) {
            return t != null && h1e(t, e, f1e)
        }

        S$.exports = p1e
    });
    var Of = w(m0 => {
        "use strict";
        Object.defineProperty(m0, "__esModule", {value: !0});
        m0.default = void 0;
        var d1e = t => t && t.__isYupSchema__;
        m0.default = d1e
    });
    var P$ = w(E0 => {
        "use strict";
        Object.defineProperty(E0, "__esModule", {value: !0});
        E0.default = void 0;
        var C1e = k$(kC()), m1e = k$(Of());

        function k$(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var x$ = class {
            constructor(e, r) {
                if (this.refs = e, this.refs = e, typeof r == "function") {
                    this.fn = r;
                    return
                }
                if (!(0, C1e.default)(r, "is")) throw new TypeError("`is:` is required for `when()` conditions");
                if (!r.then && !r.otherwise) throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");
                let {is: i, then: n, otherwise: s} = r,
                    o = typeof i == "function" ? i : (...a) => a.every(l => l === i);
                this.fn = function (...a) {
                    let l = a.pop(), c = a.pop(), u = o(...a) ? n : s;
                    if (!!u) return typeof u == "function" ? u(c) : c.concat(u.resolve(l))
                }
            }

            resolve(e, r) {
                let i = this.refs.map(s => s.getValue(r == null ? void 0 : r.value, r == null ? void 0 : r.parent, r == null ? void 0 : r.context)),
                    n = this.fn.apply(e, i.concat(e, r));
                if (n === void 0 || n === e) return e;
                if (!(0, m1e.default)(n)) throw new TypeError("conditions must return a schema object");
                return n.resolve(r)
            }
        }, E1e = x$;
        E0.default = E1e
    });
    var pF = w(hF => {
        "use strict";
        Object.defineProperty(hF, "__esModule", {value: !0});
        hF.default = I1e;

        function I1e(t) {
            return t == null ? [] : [].concat(t)
        }
    });
    var uu = w(I0 => {
        "use strict";
        Object.defineProperty(I0, "__esModule", {value: !0});
        I0.default = void 0;
        var y1e = D$(SC()), w1e = D$(pF());

        function D$(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function dF() {
            return dF = Object.assign || function (t) {
                for (var e = 1; e < arguments.length; e++) {
                    var r = arguments[e];
                    for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i])
                }
                return t
            }, dF.apply(this, arguments)
        }

        var B1e = /\$\{\s*(\w+)\s*\}/g, xC = class extends Error {
            static formatError(e, r) {
                let i = r.label || r.path || "this";
                return i !== r.path && (r = dF({}, r, {path: i})), typeof e == "string" ? e.replace(B1e, (n, s) => (0, y1e.default)(r[s])) : typeof e == "function" ? e(r) : e
            }

            static isError(e) {
                return e && e.name === "ValidationError"
            }

            constructor(e, r, i, n) {
                super();
                this.name = "ValidationError", this.value = r, this.path = i, this.type = n, this.errors = [], this.inner = [], (0, w1e.default)(e).forEach(s => {
                    xC.isError(s) ? (this.errors.push(...s.errors), this.inner = this.inner.concat(s.inner.length ? s.inner : s)) : this.errors.push(s)
                }), this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0], Error.captureStackTrace && Error.captureStackTrace(this, xC)
            }
        };
        I0.default = xC
    });
    var y0 = w(CF => {
        "use strict";
        Object.defineProperty(CF, "__esModule", {value: !0});
        CF.default = b1e;
        var mF = Q1e(uu());

        function Q1e(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var v1e = t => {
            let e = !1;
            return (...r) => {
                e || (e = !0, t(...r))
            }
        };

        function b1e(t, e) {
            let {endEarly: r, tests: i, args: n, value: s, errors: o, sort: a, path: l} = t, c = v1e(e), u = i.length,
                g = [];
            if (o = o || [], !u) return o.length ? c(new mF.default(o, s, l)) : c(null, s);
            for (let f = 0; f < i.length; f++) i[f](n, function (m) {
                if (m) {
                    if (!mF.default.isError(m)) return c(m, s);
                    if (r) return m.value = s, c(m, s);
                    g.push(m)
                }
                if (--u <= 0) {
                    if (g.length && (a && g.sort(a), o.length && g.push(...o), o = g), o.length) {
                        c(new mF.default(o, s, l), s);
                        return
                    }
                    c(null, s)
                }
            })
        }
    });
    var F$ = w((Dft, R$) => {
        function S1e(t) {
            return function (e, r, i) {
                for (var n = -1, s = Object(e), o = i(e), a = o.length; a--;) {
                    var l = o[t ? a : ++n];
                    if (r(s[l], l, s) === !1) break
                }
                return e
            }
        }

        R$.exports = S1e
    });
    var EF = w((Rft, N$) => {
        var k1e = F$(), x1e = k1e();
        N$.exports = x1e
    });
    var T$ = w((Fft, L$) => {
        function P1e(t, e) {
            for (var r = -1, i = Array(t); ++r < t;) i[r] = e(r);
            return i
        }

        L$.exports = P1e
    });
    var M$ = w((Nft, O$) => {
        function D1e() {
            return !1
        }

        O$.exports = D1e
    });
    var DC = w((PC, Mf) => {
        var R1e = Fs(), F1e = M$(), K$ = typeof PC == "object" && PC && !PC.nodeType && PC,
            U$ = K$ && typeof Mf == "object" && Mf && !Mf.nodeType && Mf, N1e = U$ && U$.exports === K$,
            H$ = N1e ? R1e.Buffer : void 0, L1e = H$ ? H$.isBuffer : void 0, T1e = L1e || F1e;
        Mf.exports = T1e
    });
    var j$ = w((Lft, G$) => {
        var O1e = Gc(), M1e = g0(), K1e = Zo(), U1e = "[object Arguments]", H1e = "[object Array]",
            G1e = "[object Boolean]", j1e = "[object Date]", Y1e = "[object Error]", q1e = "[object Function]",
            J1e = "[object Map]", W1e = "[object Number]", z1e = "[object Object]", _1e = "[object RegExp]",
            V1e = "[object Set]", X1e = "[object String]", Z1e = "[object WeakMap]", $1e = "[object ArrayBuffer]",
            eUe = "[object DataView]", tUe = "[object Float32Array]", rUe = "[object Float64Array]",
            iUe = "[object Int8Array]", nUe = "[object Int16Array]", sUe = "[object Int32Array]",
            oUe = "[object Uint8Array]", aUe = "[object Uint8ClampedArray]", AUe = "[object Uint16Array]",
            lUe = "[object Uint32Array]", wr = {};
        wr[tUe] = wr[rUe] = wr[iUe] = wr[nUe] = wr[sUe] = wr[oUe] = wr[aUe] = wr[AUe] = wr[lUe] = !0;
        wr[U1e] = wr[H1e] = wr[$1e] = wr[G1e] = wr[eUe] = wr[j1e] = wr[Y1e] = wr[q1e] = wr[J1e] = wr[W1e] = wr[z1e] = wr[_1e] = wr[V1e] = wr[X1e] = wr[Z1e] = !1;

        function cUe(t) {
            return K1e(t) && M1e(t.length) && !!wr[O1e(t)]
        }

        G$.exports = cUe
    });
    var w0 = w((Tft, Y$) => {
        function uUe(t) {
            return function (e) {
                return t(e)
            }
        }

        Y$.exports = uUe
    });
    var B0 = w((RC, Kf) => {
        var gUe = hx(), q$ = typeof RC == "object" && RC && !RC.nodeType && RC,
            FC = q$ && typeof Kf == "object" && Kf && !Kf.nodeType && Kf, fUe = FC && FC.exports === q$,
            IF = fUe && gUe.process, hUe = function () {
                try {
                    var t = FC && FC.require && FC.require("util").types;
                    return t || IF && IF.binding && IF.binding("util")
                } catch (e) {
                }
            }();
        Kf.exports = hUe
    });
    var b0 = w((Oft, J$) => {
        var pUe = j$(), dUe = w0(), W$ = B0(), z$ = W$ && W$.isTypedArray, CUe = z$ ? dUe(z$) : pUe;
        J$.exports = CUe
    });
    var yF = w((Mft, _$) => {
        var mUe = T$(), EUe = BC(), IUe = Ms(), yUe = DC(), wUe = wC(), BUe = b0(), bUe = Object.prototype,
            QUe = bUe.hasOwnProperty;

        function vUe(t, e) {
            var r = IUe(t), i = !r && EUe(t), n = !r && !i && yUe(t), s = !r && !i && !n && BUe(t),
                o = r || i || n || s, a = o ? mUe(t.length, String) : [], l = a.length;
            for (var c in t) (e || QUe.call(t, c)) && !(o && (c == "length" || n && (c == "offset" || c == "parent") || s && (c == "buffer" || c == "byteLength" || c == "byteOffset") || wUe(c, l))) && a.push(c);
            return a
        }

        _$.exports = vUe
    });
    var Q0 = w((Kft, V$) => {
        var SUe = Object.prototype;

        function kUe(t) {
            var e = t && t.constructor, r = typeof e == "function" && e.prototype || SUe;
            return t === r
        }

        V$.exports = kUe
    });
    var wF = w((Uft, X$) => {
        function xUe(t, e) {
            return function (r) {
                return t(e(r))
            }
        }

        X$.exports = xUe
    });
    var $$ = w((Hft, Z$) => {
        var PUe = wF(), DUe = PUe(Object.keys, Object);
        Z$.exports = DUe
    });
    var tee = w((Gft, eee) => {
        var RUe = Q0(), FUe = $$(), NUe = Object.prototype, LUe = NUe.hasOwnProperty;

        function TUe(t) {
            if (!RUe(t)) return FUe(t);
            var e = [];
            for (var r in Object(t)) LUe.call(t, r) && r != "constructor" && e.push(r);
            return e
        }

        eee.exports = TUe
    });
    var NC = w((jft, ree) => {
        var OUe = A0(), MUe = g0();

        function KUe(t) {
            return t != null && MUe(t.length) && !OUe(t)
        }

        ree.exports = KUe
    });
    var Uf = w((Yft, iee) => {
        var UUe = yF(), HUe = tee(), GUe = NC();

        function jUe(t) {
            return GUe(t) ? UUe(t) : HUe(t)
        }

        iee.exports = jUe
    });
    var BF = w((qft, nee) => {
        var YUe = EF(), qUe = Uf();

        function JUe(t, e) {
            return t && YUe(t, e, qUe)
        }

        nee.exports = JUe
    });
    var oee = w((Jft, see) => {
        var WUe = EC();

        function zUe() {
            this.__data__ = new WUe, this.size = 0
        }

        see.exports = zUe
    });
    var Aee = w((Wft, aee) => {
        function _Ue(t) {
            var e = this.__data__, r = e.delete(t);
            return this.size = e.size, r
        }

        aee.exports = _Ue
    });
    var cee = w((zft, lee) => {
        function VUe(t) {
            return this.__data__.get(t)
        }

        lee.exports = VUe
    });
    var gee = w((_ft, uee) => {
        function XUe(t) {
            return this.__data__.has(t)
        }

        uee.exports = XUe
    });
    var hee = w((Vft, fee) => {
        var ZUe = EC(), $Ue = l0(), e2e = c0(), t2e = 200;

        function r2e(t, e) {
            var r = this.__data__;
            if (r instanceof ZUe) {
                var i = r.__data__;
                if (!$Ue || i.length < t2e - 1) return i.push([t, e]), this.size = ++r.size, this;
                r = this.__data__ = new e2e(i)
            }
            return r.set(t, e), this.size = r.size, this
        }

        fee.exports = r2e
    });
    var LC = w((Xft, pee) => {
        var i2e = EC(), n2e = oee(), s2e = Aee(), o2e = cee(), a2e = gee(), A2e = hee();

        function Hf(t) {
            var e = this.__data__ = new i2e(t);
            this.size = e.size
        }

        Hf.prototype.clear = n2e;
        Hf.prototype.delete = s2e;
        Hf.prototype.get = o2e;
        Hf.prototype.has = a2e;
        Hf.prototype.set = A2e;
        pee.exports = Hf
    });
    var Cee = w((Zft, dee) => {
        var l2e = "__lodash_hash_undefined__";

        function c2e(t) {
            return this.__data__.set(t, l2e), this
        }

        dee.exports = c2e
    });
    var Eee = w(($ft, mee) => {
        function u2e(t) {
            return this.__data__.has(t)
        }

        mee.exports = u2e
    });
    var yee = w((eht, Iee) => {
        var g2e = c0(), f2e = Cee(), h2e = Eee();

        function v0(t) {
            var e = -1, r = t == null ? 0 : t.length;
            for (this.__data__ = new g2e; ++e < r;) this.add(t[e])
        }

        v0.prototype.add = v0.prototype.push = f2e;
        v0.prototype.has = h2e;
        Iee.exports = v0
    });
    var Bee = w((tht, wee) => {
        function p2e(t, e) {
            for (var r = -1, i = t == null ? 0 : t.length; ++r < i;) if (e(t[r], r, t)) return !0;
            return !1
        }

        wee.exports = p2e
    });
    var Qee = w((rht, bee) => {
        function d2e(t, e) {
            return t.has(e)
        }

        bee.exports = d2e
    });
    var bF = w((iht, vee) => {
        var C2e = yee(), m2e = Bee(), E2e = Qee(), I2e = 1, y2e = 2;

        function w2e(t, e, r, i, n, s) {
            var o = r & I2e, a = t.length, l = e.length;
            if (a != l && !(o && l > a)) return !1;
            var c = s.get(t), u = s.get(e);
            if (c && u) return c == e && u == t;
            var g = -1, f = !0, h = r & y2e ? new C2e : void 0;
            for (s.set(t, e), s.set(e, t); ++g < a;) {
                var p = t[g], m = e[g];
                if (i) var y = o ? i(m, p, g, e, t, s) : i(p, m, g, t, e, s);
                if (y !== void 0) {
                    if (y) continue;
                    f = !1;
                    break
                }
                if (h) {
                    if (!m2e(e, function (b, S) {
                        if (!E2e(h, S) && (p === b || n(p, b, r, i, s))) return h.push(S)
                    })) {
                        f = !1;
                        break
                    }
                } else if (!(p === m || n(p, m, r, i, s))) {
                    f = !1;
                    break
                }
            }
            return s.delete(t), s.delete(e), f
        }

        vee.exports = w2e
    });
    var QF = w((nht, See) => {
        var B2e = Fs(), b2e = B2e.Uint8Array;
        See.exports = b2e
    });
    var xee = w((sht, kee) => {
        function Q2e(t) {
            var e = -1, r = Array(t.size);
            return t.forEach(function (i, n) {
                r[++e] = [n, i]
            }), r
        }

        kee.exports = Q2e
    });
    var Dee = w((oht, Pee) => {
        function v2e(t) {
            var e = -1, r = Array(t.size);
            return t.forEach(function (i) {
                r[++e] = i
            }), r
        }

        Pee.exports = v2e
    });
    var Tee = w((aht, Ree) => {
        var Fee = Hc(), Nee = QF(), S2e = Df(), k2e = bF(), x2e = xee(), P2e = Dee(), D2e = 1, R2e = 2,
            F2e = "[object Boolean]", N2e = "[object Date]", L2e = "[object Error]", T2e = "[object Map]",
            O2e = "[object Number]", M2e = "[object RegExp]", K2e = "[object Set]", U2e = "[object String]",
            H2e = "[object Symbol]", G2e = "[object ArrayBuffer]", j2e = "[object DataView]",
            Lee = Fee ? Fee.prototype : void 0, vF = Lee ? Lee.valueOf : void 0;

        function Y2e(t, e, r, i, n, s, o) {
            switch (r) {
                case j2e:
                    if (t.byteLength != e.byteLength || t.byteOffset != e.byteOffset) return !1;
                    t = t.buffer, e = e.buffer;
                case G2e:
                    return !(t.byteLength != e.byteLength || !s(new Nee(t), new Nee(e)));
                case F2e:
                case N2e:
                case O2e:
                    return S2e(+t, +e);
                case L2e:
                    return t.name == e.name && t.message == e.message;
                case M2e:
                case U2e:
                    return t == e + "";
                case T2e:
                    var a = x2e;
                case K2e:
                    var l = i & D2e;
                    if (a || (a = P2e), t.size != e.size && !l) return !1;
                    var c = o.get(t);
                    if (c) return c == e;
                    i |= R2e, o.set(t, e);
                    var u = k2e(a(t), a(e), i, n, s, o);
                    return o.delete(t), u;
                case H2e:
                    if (vF) return vF.call(t) == vF.call(e)
            }
            return !1
        }

        Ree.exports = Y2e
    });
    var SF = w((Aht, Oee) => {
        var q2e = f0(), J2e = Ms();

        function W2e(t, e, r) {
            var i = e(t);
            return J2e(t) ? i : q2e(i, r(t))
        }

        Oee.exports = W2e
    });
    var Kee = w((lht, Mee) => {
        function z2e(t, e) {
            for (var r = -1, i = t == null ? 0 : t.length, n = 0, s = []; ++r < i;) {
                var o = t[r];
                e(o, r, t) && (s[n++] = o)
            }
            return s
        }

        Mee.exports = z2e
    });
    var kF = w((cht, Uee) => {
        function _2e() {
            return []
        }

        Uee.exports = _2e
    });
    var S0 = w((uht, Hee) => {
        var V2e = Kee(), X2e = kF(), Z2e = Object.prototype, $2e = Z2e.propertyIsEnumerable,
            Gee = Object.getOwnPropertySymbols, eHe = Gee ? function (t) {
                return t == null ? [] : (t = Object(t), V2e(Gee(t), function (e) {
                    return $2e.call(t, e)
                }))
            } : X2e;
        Hee.exports = eHe
    });
    var xF = w((ght, jee) => {
        var tHe = SF(), rHe = S0(), iHe = Uf();

        function nHe(t) {
            return tHe(t, iHe, rHe)
        }

        jee.exports = nHe
    });
    var Jee = w((fht, Yee) => {
        var qee = xF(), sHe = 1, oHe = Object.prototype, aHe = oHe.hasOwnProperty;

        function AHe(t, e, r, i, n, s) {
            var o = r & sHe, a = qee(t), l = a.length, c = qee(e), u = c.length;
            if (l != u && !o) return !1;
            for (var g = l; g--;) {
                var f = a[g];
                if (!(o ? f in e : aHe.call(e, f))) return !1
            }
            var h = s.get(t), p = s.get(e);
            if (h && p) return h == e && p == t;
            var m = !0;
            s.set(t, e), s.set(e, t);
            for (var y = o; ++g < l;) {
                f = a[g];
                var b = t[f], S = e[f];
                if (i) var k = o ? i(S, b, f, e, t, s) : i(b, S, f, t, e, s);
                if (!(k === void 0 ? b === S || n(b, S, r, i, s) : k)) {
                    m = !1;
                    break
                }
                y || (y = f == "constructor")
            }
            if (m && !y) {
                var T = t.constructor, Y = e.constructor;
                T != Y && "constructor" in t && "constructor" in e && !(typeof T == "function" && T instanceof T && typeof Y == "function" && Y instanceof Y) && (m = !1)
            }
            return s.delete(t), s.delete(e), m
        }

        Yee.exports = AHe
    });
    var zee = w((hht, Wee) => {
        var lHe = Sl(), cHe = Fs(), uHe = lHe(cHe, "DataView");
        Wee.exports = uHe
    });
    var Vee = w((pht, _ee) => {
        var gHe = Sl(), fHe = Fs(), hHe = gHe(fHe, "Promise");
        _ee.exports = hHe
    });
    var Zee = w((dht, Xee) => {
        var pHe = Sl(), dHe = Fs(), CHe = pHe(dHe, "Set");
        Xee.exports = CHe
    });
    var ete = w((Cht, $ee) => {
        var mHe = Sl(), EHe = Fs(), IHe = mHe(EHe, "WeakMap");
        $ee.exports = IHe
    });
    var TC = w((mht, tte) => {
        var PF = zee(), DF = l0(), RF = Vee(), FF = Zee(), NF = ete(), rte = Gc(), Gf = zR(), ite = "[object Map]",
            yHe = "[object Object]", nte = "[object Promise]", ste = "[object Set]", ote = "[object WeakMap]",
            ate = "[object DataView]", wHe = Gf(PF), BHe = Gf(DF), bHe = Gf(RF), QHe = Gf(FF), vHe = Gf(NF), gu = rte;
        (PF && gu(new PF(new ArrayBuffer(1))) != ate || DF && gu(new DF) != ite || RF && gu(RF.resolve()) != nte || FF && gu(new FF) != ste || NF && gu(new NF) != ote) && (gu = function (t) {
            var e = rte(t), r = e == yHe ? t.constructor : void 0, i = r ? Gf(r) : "";
            if (i) switch (i) {
                case wHe:
                    return ate;
                case BHe:
                    return ite;
                case bHe:
                    return nte;
                case QHe:
                    return ste;
                case vHe:
                    return ote
            }
            return e
        });
        tte.exports = gu
    });
    var pte = w((Eht, Ate) => {
        var LF = LC(), SHe = bF(), kHe = Tee(), xHe = Jee(), lte = TC(), cte = Ms(), ute = DC(), PHe = b0(), DHe = 1,
            gte = "[object Arguments]", fte = "[object Array]", k0 = "[object Object]", RHe = Object.prototype,
            hte = RHe.hasOwnProperty;

        function FHe(t, e, r, i, n, s) {
            var o = cte(t), a = cte(e), l = o ? fte : lte(t), c = a ? fte : lte(e);
            l = l == gte ? k0 : l, c = c == gte ? k0 : c;
            var u = l == k0, g = c == k0, f = l == c;
            if (f && ute(t)) {
                if (!ute(e)) return !1;
                o = !0, u = !1
            }
            if (f && !u) return s || (s = new LF), o || PHe(t) ? SHe(t, e, r, i, n, s) : kHe(t, e, l, r, i, n, s);
            if (!(r & DHe)) {
                var h = u && hte.call(t, "__wrapped__"), p = g && hte.call(e, "__wrapped__");
                if (h || p) {
                    var m = h ? t.value() : t, y = p ? e.value() : e;
                    return s || (s = new LF), n(m, y, r, i, s)
                }
            }
            return f ? (s || (s = new LF), xHe(t, e, r, i, n, s)) : !1
        }

        Ate.exports = FHe
    });
    var TF = w((Iht, dte) => {
        var NHe = pte(), Cte = Zo();

        function mte(t, e, r, i, n) {
            return t === e ? !0 : t == null || e == null || !Cte(t) && !Cte(e) ? t !== t && e !== e : NHe(t, e, r, i, mte, n)
        }

        dte.exports = mte
    });
    var Ite = w((yht, Ete) => {
        var LHe = LC(), THe = TF(), OHe = 1, MHe = 2;

        function KHe(t, e, r, i) {
            var n = r.length, s = n, o = !i;
            if (t == null) return !s;
            for (t = Object(t); n--;) {
                var a = r[n];
                if (o && a[2] ? a[1] !== t[a[0]] : !(a[0] in t)) return !1
            }
            for (; ++n < s;) {
                a = r[n];
                var l = a[0], c = t[l], u = a[1];
                if (o && a[2]) {
                    if (c === void 0 && !(l in t)) return !1
                } else {
                    var g = new LHe;
                    if (i) var f = i(c, u, l, t, e, g);
                    if (!(f === void 0 ? THe(u, c, OHe | MHe, i, g) : f)) return !1
                }
            }
            return !0
        }

        Ete.exports = KHe
    });
    var OF = w((wht, yte) => {
        var UHe = Rn();

        function HHe(t) {
            return t === t && !UHe(t)
        }

        yte.exports = HHe
    });
    var Bte = w((Bht, wte) => {
        var GHe = OF(), jHe = Uf();

        function YHe(t) {
            for (var e = jHe(t), r = e.length; r--;) {
                var i = e[r], n = t[i];
                e[r] = [i, n, GHe(n)]
            }
            return e
        }

        wte.exports = YHe
    });
    var MF = w((bht, bte) => {
        function qHe(t, e) {
            return function (r) {
                return r == null ? !1 : r[t] === e && (e !== void 0 || t in Object(r))
            }
        }

        bte.exports = qHe
    });
    var vte = w((Qht, Qte) => {
        var JHe = Ite(), WHe = Bte(), zHe = MF();

        function _He(t) {
            var e = WHe(t);
            return e.length == 1 && e[0][2] ? zHe(e[0][0], e[0][1]) : function (r) {
                return r === t || JHe(r, t, e)
            }
        }

        Qte.exports = _He
    });
    var x0 = w((vht, Ste) => {
        var VHe = yC();

        function XHe(t, e, r) {
            var i = t == null ? void 0 : VHe(t, e);
            return i === void 0 ? r : i
        }

        Ste.exports = XHe
    });
    var xte = w((Sht, kte) => {
        var ZHe = TF(), $He = x0(), eGe = $R(), tGe = a0(), rGe = OF(), iGe = MF(), nGe = cu(), sGe = 1, oGe = 2;

        function aGe(t, e) {
            return tGe(t) && rGe(e) ? iGe(nGe(t), e) : function (r) {
                var i = $He(r, t);
                return i === void 0 && i === e ? eGe(r, t) : ZHe(e, i, sGe | oGe)
            }
        }

        kte.exports = aGe
    });
    var Dte = w((kht, Pte) => {
        function AGe(t) {
            return function (e) {
                return e == null ? void 0 : e[t]
            }
        }

        Pte.exports = AGe
    });
    var Fte = w((xht, Rte) => {
        var lGe = yC();

        function cGe(t) {
            return function (e) {
                return lGe(e, t)
            }
        }

        Rte.exports = cGe
    });
    var Lte = w((Pht, Nte) => {
        var uGe = Dte(), gGe = Fte(), fGe = a0(), hGe = cu();

        function pGe(t) {
            return fGe(t) ? uGe(hGe(t)) : gGe(t)
        }

        Nte.exports = pGe
    });
    var KF = w((Dht, Tte) => {
        var dGe = vte(), CGe = xte(), mGe = h0(), EGe = Ms(), IGe = Lte();

        function yGe(t) {
            return typeof t == "function" ? t : t == null ? mGe : typeof t == "object" ? EGe(t) ? CGe(t[0], t[1]) : dGe(t) : IGe(t)
        }

        Tte.exports = yGe
    });
    var UF = w((Rht, Ote) => {
        var wGe = Lf(), BGe = BF(), bGe = KF();

        function QGe(t, e) {
            var r = {};
            return e = bGe(e, 3), BGe(t, function (i, n, s) {
                wGe(r, n, e(i, n, s))
            }), r
        }

        Ote.exports = QGe
    });
    var OC = w((Fht, Mte) => {
        "use strict";

        function fu(t) {
            this._maxSize = t, this.clear()
        }

        fu.prototype.clear = function () {
            this._size = 0, this._values = Object.create(null)
        };
        fu.prototype.get = function (t) {
            return this._values[t]
        };
        fu.prototype.set = function (t, e) {
            return this._size >= this._maxSize && this.clear(), t in this._values || this._size++, this._values[t] = e
        };
        var vGe = /[^.^\]^[]+|(?=\[\]|\.\.)/g, Kte = /^\d+$/, SGe = /^\d/,
            kGe = /[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g, xGe = /^\s*(['"]?)(.*?)(\1)\s*$/, HF = 512,
            Ute = new fu(HF), Hte = new fu(HF), Gte = new fu(HF);
        Mte.exports = {
            Cache: fu, split: jF, normalizePath: GF, setter: function (t) {
                var e = GF(t);
                return Hte.get(t) || Hte.set(t, function (i, n) {
                    for (var s = 0, o = e.length, a = i; s < o - 1;) {
                        var l = e[s];
                        if (l === "__proto__" || l === "constructor" || l === "prototype") return i;
                        a = a[e[s++]]
                    }
                    a[e[s]] = n
                })
            }, getter: function (t, e) {
                var r = GF(t);
                return Gte.get(t) || Gte.set(t, function (n) {
                    for (var s = 0, o = r.length; s < o;) if (n != null || !e) n = n[r[s++]]; else return;
                    return n
                })
            }, join: function (t) {
                return t.reduce(function (e, r) {
                    return e + (YF(r) || Kte.test(r) ? "[" + r + "]" : (e ? "." : "") + r)
                }, "")
            }, forEach: function (t, e, r) {
                PGe(Array.isArray(t) ? t : jF(t), e, r)
            }
        };

        function GF(t) {
            return Ute.get(t) || Ute.set(t, jF(t).map(function (e) {
                return e.replace(xGe, "$2")
            }))
        }

        function jF(t) {
            return t.match(vGe)
        }

        function PGe(t, e, r) {
            var i = t.length, n, s, o, a;
            for (s = 0; s < i; s++) n = t[s], n && (DGe(n) && (n = '"' + n + '"'), a = YF(n), o = !a && /^\d+$/.test(n), e.call(r, n, a, o, s, t))
        }

        function YF(t) {
            return typeof t == "string" && t && ["'", '"'].indexOf(t.charAt(0)) !== -1
        }

        function RGe(t) {
            return t.match(SGe) && !t.match(Kte)
        }

        function FGe(t) {
            return kGe.test(t)
        }

        function DGe(t) {
            return !YF(t) && (RGe(t) || FGe(t))
        }
    });
    var hu = w(MC => {
        "use strict";
        Object.defineProperty(MC, "__esModule", {value: !0});
        MC.create = NGe;
        MC.default = void 0;
        var LGe = OC(), P0 = {context: "$", value: "."};

        function NGe(t, e) {
            return new D0(t, e)
        }

        var D0 = class {
            constructor(e, r = {}) {
                if (typeof e != "string") throw new TypeError("ref must be a string, got: " + e);
                if (this.key = e.trim(), e === "") throw new TypeError("ref must be a non-empty string");
                this.isContext = this.key[0] === P0.context, this.isValue = this.key[0] === P0.value, this.isSibling = !this.isContext && !this.isValue;
                let i = this.isContext ? P0.context : this.isValue ? P0.value : "";
                this.path = this.key.slice(i.length), this.getter = this.path && (0, LGe.getter)(this.path, !0), this.map = r.map
            }

            getValue(e, r, i) {
                let n = this.isContext ? i : this.isValue ? e : r;
                return this.getter && (n = this.getter(n || {})), this.map && (n = this.map(n)), n
            }

            cast(e, r) {
                return this.getValue(e, r == null ? void 0 : r.parent, r == null ? void 0 : r.context)
            }

            resolve() {
                return this
            }

            describe() {
                return {type: "ref", key: this.key}
            }

            toString() {
                return `Ref(${this.key})`
            }

            static isRef(e) {
                return e && e.__isYupRef
            }
        };
        MC.default = D0;
        D0.prototype.__isYupRef = !0
    });
    var jte = w(qF => {
        "use strict";
        Object.defineProperty(qF, "__esModule", {value: !0});
        qF.default = TGe;
        var OGe = JF(UF()), R0 = JF(uu()), MGe = JF(hu());

        function JF(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function F0() {
            return F0 = Object.assign || function (t) {
                for (var e = 1; e < arguments.length; e++) {
                    var r = arguments[e];
                    for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i])
                }
                return t
            }, F0.apply(this, arguments)
        }

        function KGe(t, e) {
            if (t == null) return {};
            var r = {}, i = Object.keys(t), n, s;
            for (s = 0; s < i.length; s++) n = i[s], !(e.indexOf(n) >= 0) && (r[n] = t[n]);
            return r
        }

        function TGe(t) {
            function e(r, i) {
                let {value: n, path: s = "", label: o, options: a, originalValue: l, sync: c} = r,
                    u = KGe(r, ["value", "path", "label", "options", "originalValue", "sync"]), {
                        name: g,
                        test: f,
                        params: h,
                        message: p
                    } = t, {parent: m, context: y} = a;

                function b(j) {
                    return MGe.default.isRef(j) ? j.getValue(n, m, y) : j
                }

                function S(j = {}) {
                    let Z = (0, OGe.default)(F0({
                            value: n,
                            originalValue: l,
                            label: o,
                            path: j.path || s
                        }, h, j.params), b),
                        J = new R0.default(R0.default.formatError(j.message || p, Z), n, Z.path, j.type || g);
                    return J.params = Z, J
                }

                let k = F0({path: s, parent: m, type: g, createError: S, resolve: b, options: a, originalValue: l}, u);
                if (!c) {
                    try {
                        Promise.resolve(f.call(k, n, k)).then(j => {
                            R0.default.isError(j) ? i(j) : j ? i(null, j) : i(S())
                        })
                    } catch (j) {
                        i(j)
                    }
                    return
                }
                let T;
                try {
                    var Y;
                    if (T = f.call(k, n, k), typeof ((Y = T) == null ? void 0 : Y.then) == "function") throw new Error(`Validation test of type: "${k.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)
                } catch (j) {
                    i(j);
                    return
                }
                R0.default.isError(T) ? i(T) : T ? i(null, T) : i(S())
            }

            return e.OPTIONS = t, e
        }
    });
    var WF = w(KC => {
        "use strict";
        Object.defineProperty(KC, "__esModule", {value: !0});
        KC.getIn = Yte;
        KC.default = void 0;
        var UGe = OC(), HGe = t => t.substr(0, t.length - 1).substr(1);

        function Yte(t, e, r, i = r) {
            let n, s, o;
            return e ? ((0, UGe.forEach)(e, (a, l, c) => {
                let u = l ? HGe(a) : a;
                if (t = t.resolve({context: i, parent: n, value: r}), t.innerType) {
                    let g = c ? parseInt(u, 10) : 0;
                    if (r && g >= r.length) throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);
                    n = r, r = r && r[g], t = t.innerType
                }
                if (!c) {
                    if (!t.fields || !t.fields[u]) throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);
                    n = r, r = r && r[u], t = t.fields[u]
                }
                s = u, o = l ? "[" + a + "]" : "." + a
            }), {schema: t, parent: n, parentPath: s}) : {parent: n, parentPath: e, schema: t}
        }

        var GGe = (t, e, r, i) => Yte(t, e, r, i).schema, jGe = GGe;
        KC.default = jGe
    });
    var Jte = w(N0 => {
        "use strict";
        Object.defineProperty(N0, "__esModule", {value: !0});
        N0.default = void 0;
        var qte = YGe(hu());

        function YGe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var L0 = class {
            constructor() {
                this.list = new Set, this.refs = new Map
            }

            get size() {
                return this.list.size + this.refs.size
            }

            describe() {
                let e = [];
                for (let r of this.list) e.push(r);
                for (let [, r] of this.refs) e.push(r.describe());
                return e
            }

            toArray() {
                return Array.from(this.list).concat(Array.from(this.refs.values()))
            }

            add(e) {
                qte.default.isRef(e) ? this.refs.set(e.key, e) : this.list.add(e)
            }

            delete(e) {
                qte.default.isRef(e) ? this.refs.delete(e.key) : this.list.delete(e)
            }

            has(e, r) {
                if (this.list.has(e)) return !0;
                let i, n = this.refs.values();
                for (; i = n.next(), !i.done;) if (r(i.value) === e) return !0;
                return !1
            }

            clone() {
                let e = new L0;
                return e.list = new Set(this.list), e.refs = new Map(this.refs), e
            }

            merge(e, r) {
                let i = this.clone();
                return e.list.forEach(n => i.add(n)), e.refs.forEach(n => i.add(n)), r.list.forEach(n => i.delete(n)), r.refs.forEach(n => i.delete(n)), i
            }
        };
        N0.default = L0
    });
    var dA = w(T0 => {
        "use strict";
        Object.defineProperty(T0, "__esModule", {value: !0});
        T0.default = void 0;
        var Wte = pA(p$()), jf = hA(), qGe = pA(P$()), zte = pA(y0()), O0 = pA(jte()), _te = pA(SC()), JGe = pA(hu()),
            WGe = WF(), zGe = pA(pF()), Vte = pA(uu()), Xte = pA(Jte());

        function pA(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function qs() {
            return qs = Object.assign || function (t) {
                for (var e = 1; e < arguments.length; e++) {
                    var r = arguments[e];
                    for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i])
                }
                return t
            }, qs.apply(this, arguments)
        }

        var Aa = class {
            constructor(e) {
                this.deps = [], this.conditions = [], this._whitelist = new Xte.default, this._blacklist = new Xte.default, this.exclusiveTests = Object.create(null), this.tests = [], this.transforms = [], this.withMutation(() => {
                    this.typeError(jf.mixed.notType)
                }), this.type = (e == null ? void 0 : e.type) || "mixed", this.spec = qs({
                    strip: !1,
                    strict: !1,
                    abortEarly: !0,
                    recursive: !0,
                    nullable: !1,
                    presence: "optional"
                }, e == null ? void 0 : e.spec)
            }

            get _type() {
                return this.type
            }

            _typeCheck(e) {
                return !0
            }

            clone(e) {
                if (this._mutate) return e && Object.assign(this.spec, e), this;
                let r = Object.create(Object.getPrototypeOf(this));
                return r.type = this.type, r._typeError = this._typeError, r._whitelistError = this._whitelistError, r._blacklistError = this._blacklistError, r._whitelist = this._whitelist.clone(), r._blacklist = this._blacklist.clone(), r.exclusiveTests = qs({}, this.exclusiveTests), r.deps = [...this.deps], r.conditions = [...this.conditions], r.tests = [...this.tests], r.transforms = [...this.transforms], r.spec = (0, Wte.default)(qs({}, this.spec, e)), r
            }

            label(e) {
                var r = this.clone();
                return r.spec.label = e, r
            }

            meta(...e) {
                if (e.length === 0) return this.spec.meta;
                let r = this.clone();
                return r.spec.meta = Object.assign(r.spec.meta || {}, e[0]), r
            }

            withMutation(e) {
                let r = this._mutate;
                this._mutate = !0;
                let i = e(this);
                return this._mutate = r, i
            }

            concat(e) {
                if (!e || e === this) return this;
                if (e.type !== this.type && this.type !== "mixed") throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);
                let r = this, i = e.clone(), n = qs({}, r.spec, i.spec);
                return i.spec = n, i._typeError || (i._typeError = r._typeError), i._whitelistError || (i._whitelistError = r._whitelistError), i._blacklistError || (i._blacklistError = r._blacklistError), i._whitelist = r._whitelist.merge(e._whitelist, e._blacklist), i._blacklist = r._blacklist.merge(e._blacklist, e._whitelist), i.tests = r.tests, i.exclusiveTests = r.exclusiveTests, i.withMutation(s => {
                    e.tests.forEach(o => {
                        s.test(o.OPTIONS)
                    })
                }), i
            }

            isType(e) {
                return this.spec.nullable && e === null ? !0 : this._typeCheck(e)
            }

            resolve(e) {
                let r = this;
                if (r.conditions.length) {
                    let i = r.conditions;
                    r = r.clone(), r.conditions = [], r = i.reduce((n, s) => s.resolve(n, e), r), r = r.resolve(e)
                }
                return r
            }

            cast(e, r = {}) {
                let i = this.resolve(qs({value: e}, r)), n = i._cast(e, r);
                if (e !== void 0 && r.assert !== !1 && i.isType(n) !== !0) {
                    let s = (0, _te.default)(e), o = (0, _te.default)(n);
                    throw new TypeError(`The value of ${r.path || "field"} could not be cast to a value that satisfies the schema type: "${i._type}". 

attempted value: ${s} 
` + (o !== s ? `result of cast: ${o}` : ""))
                }
                return n
            }

            _cast(e, r) {
                let i = e === void 0 ? e : this.transforms.reduce((n, s) => s.call(this, n, e, this), e);
                return i === void 0 && (i = this.getDefault()), i
            }

            _validate(e, r = {}, i) {
                let {
                    sync: n,
                    path: s,
                    from: o = [],
                    originalValue: a = e,
                    strict: l = this.spec.strict,
                    abortEarly: c = this.spec.abortEarly
                } = r, u = e;
                l || (u = this._cast(u, qs({assert: !1}, r)));
                let g = {
                    value: u,
                    path: s,
                    options: r,
                    originalValue: a,
                    schema: this,
                    label: this.spec.label,
                    sync: n,
                    from: o
                }, f = [];
                this._typeError && f.push(this._typeError), this._whitelistError && f.push(this._whitelistError), this._blacklistError && f.push(this._blacklistError), (0, zte.default)({
                    args: g,
                    value: u,
                    path: s,
                    sync: n,
                    tests: f,
                    endEarly: c
                }, h => {
                    if (h) return void i(h, u);
                    (0, zte.default)({tests: this.tests, args: g, path: s, sync: n, value: u, endEarly: c}, i)
                })
            }

            validate(e, r, i) {
                let n = this.resolve(qs({}, r, {value: e}));
                return typeof i == "function" ? n._validate(e, r, i) : new Promise((s, o) => n._validate(e, r, (a, l) => {
                    a ? o(a) : s(l)
                }))
            }

            validateSync(e, r) {
                let i = this.resolve(qs({}, r, {value: e})), n;
                return i._validate(e, qs({}, r, {sync: !0}), (s, o) => {
                    if (s) throw s;
                    n = o
                }), n
            }

            isValid(e, r) {
                return this.validate(e, r).then(() => !0, i => {
                    if (Vte.default.isError(i)) return !1;
                    throw i
                })
            }

            isValidSync(e, r) {
                try {
                    return this.validateSync(e, r), !0
                } catch (i) {
                    if (Vte.default.isError(i)) return !1;
                    throw i
                }
            }

            _getDefault() {
                let e = this.spec.default;
                return e == null ? e : typeof e == "function" ? e.call(this) : (0, Wte.default)(e)
            }

            getDefault(e) {
                return this.resolve(e || {})._getDefault()
            }

            default(e) {
                return arguments.length === 0 ? this._getDefault() : this.clone({default: e})
            }

            strict(e = !0) {
                var r = this.clone();
                return r.spec.strict = e, r
            }

            _isPresent(e) {
                return e != null
            }

            defined(e = jf.mixed.defined) {
                return this.test({
                    message: e, name: "defined", exclusive: !0, test(r) {
                        return r !== void 0
                    }
                })
            }

            required(e = jf.mixed.required) {
                return this.clone({presence: "required"}).withMutation(r => r.test({
                    message: e,
                    name: "required",
                    exclusive: !0,
                    test(i) {
                        return this.schema._isPresent(i)
                    }
                }))
            }

            notRequired() {
                var e = this.clone({presence: "optional"});
                return e.tests = e.tests.filter(r => r.OPTIONS.name !== "required"), e
            }

            nullable(e = !0) {
                var r = this.clone({nullable: e !== !1});
                return r
            }

            transform(e) {
                var r = this.clone();
                return r.transforms.push(e), r
            }

            test(...e) {
                let r;
                if (e.length === 1 ? typeof e[0] == "function" ? r = {test: e[0]} : r = e[0] : e.length === 2 ? r = {
                    name: e[0],
                    test: e[1]
                } : r = {
                    name: e[0],
                    message: e[1],
                    test: e[2]
                }, r.message === void 0 && (r.message = jf.mixed.default), typeof r.test != "function") throw new TypeError("`test` is a required parameters");
                let i = this.clone(), n = (0, O0.default)(r),
                    s = r.exclusive || r.name && i.exclusiveTests[r.name] === !0;
                if (r.exclusive && !r.name) throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");
                return r.name && (i.exclusiveTests[r.name] = !!r.exclusive), i.tests = i.tests.filter(o => !(o.OPTIONS.name === r.name && (s || o.OPTIONS.test === n.OPTIONS.test))), i.tests.push(n), i
            }

            when(e, r) {
                !Array.isArray(e) && typeof e != "string" && (r = e, e = ".");
                let i = this.clone(), n = (0, zGe.default)(e).map(s => new JGe.default(s));
                return n.forEach(s => {
                    s.isSibling && i.deps.push(s.key)
                }), i.conditions.push(new qGe.default(n, r)), i
            }

            typeError(e) {
                var r = this.clone();
                return r._typeError = (0, O0.default)({
                    message: e, name: "typeError", test(i) {
                        return i !== void 0 && !this.schema.isType(i) ? this.createError({params: {type: this.schema._type}}) : !0
                    }
                }), r
            }

            oneOf(e, r = jf.mixed.oneOf) {
                var i = this.clone();
                return e.forEach(n => {
                    i._whitelist.add(n), i._blacklist.delete(n)
                }), i._whitelistError = (0, O0.default)({
                    message: r, name: "oneOf", test(n) {
                        if (n === void 0) return !0;
                        let s = this.schema._whitelist;
                        return s.has(n, this.resolve) ? !0 : this.createError({params: {values: s.toArray().join(", ")}})
                    }
                }), i
            }

            notOneOf(e, r = jf.mixed.notOneOf) {
                var i = this.clone();
                return e.forEach(n => {
                    i._blacklist.add(n), i._whitelist.delete(n)
                }), i._blacklistError = (0, O0.default)({
                    message: r, name: "notOneOf", test(n) {
                        let s = this.schema._blacklist;
                        return s.has(n, this.resolve) ? this.createError({params: {values: s.toArray().join(", ")}}) : !0
                    }
                }), i
            }

            strip(e = !0) {
                let r = this.clone();
                return r.spec.strip = e, r
            }

            describe() {
                let e = this.clone(), {label: r, meta: i} = e.spec;
                return {
                    meta: i,
                    label: r,
                    type: e.type,
                    oneOf: e._whitelist.describe(),
                    notOneOf: e._blacklist.describe(),
                    tests: e.tests.map(s => ({
                        name: s.OPTIONS.name,
                        params: s.OPTIONS.params
                    })).filter((s, o, a) => a.findIndex(l => l.name === s.name) === o)
                }
            }
        };
        T0.default = Aa;
        Aa.prototype.__isYupSchema__ = !0;
        for (let t of ["validate", "validateSync"]) Aa.prototype[`${t}At`] = function (e, r, i = {}) {
            let {parent: n, parentPath: s, schema: o} = (0, WGe.getIn)(this, e, r, i.context);
            return o[t](n && n[s], qs({}, i, {parent: n, path: e}))
        };
        for (let t of ["equals", "is"]) Aa.prototype[t] = Aa.prototype.oneOf;
        for (let t of ["not", "nope"]) Aa.prototype[t] = Aa.prototype.notOneOf;
        Aa.prototype.optional = Aa.prototype.notRequired
    });
    var $te = w(UC => {
        "use strict";
        Object.defineProperty(UC, "__esModule", {value: !0});
        UC.create = Zte;
        UC.default = void 0;
        var VGe = _Ge(dA());

        function _Ge(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var zF = VGe.default, XGe = zF;
        UC.default = XGe;

        function Zte() {
            return new zF
        }

        Zte.prototype = zF.prototype
    });
    var Yf = w(M0 => {
        "use strict";
        Object.defineProperty(M0, "__esModule", {value: !0});
        M0.default = void 0;
        var ZGe = t => t == null;
        M0.default = ZGe
    });
    var nre = w(HC => {
        "use strict";
        Object.defineProperty(HC, "__esModule", {value: !0});
        HC.create = ere;
        HC.default = void 0;
        var $Ge = tre(dA()), rre = hA(), ire = tre(Yf());

        function tre(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function ere() {
            return new K0
        }

        var K0 = class extends $Ge.default {
            constructor() {
                super({type: "boolean"});
                this.withMutation(() => {
                    this.transform(function (e) {
                        if (!this.isType(e)) {
                            if (/^(true|1)$/i.test(String(e))) return !0;
                            if (/^(false|0)$/i.test(String(e))) return !1
                        }
                        return e
                    })
                })
            }

            _typeCheck(e) {
                return e instanceof Boolean && (e = e.valueOf()), typeof e == "boolean"
            }

            isTrue(e = rre.boolean.isValue) {
                return this.test({
                    message: e, name: "is-value", exclusive: !0, params: {value: "true"}, test(r) {
                        return (0, ire.default)(r) || r === !0
                    }
                })
            }

            isFalse(e = rre.boolean.isValue) {
                return this.test({
                    message: e, name: "is-value", exclusive: !0, params: {value: "false"}, test(r) {
                        return (0, ire.default)(r) || r === !1
                    }
                })
            }
        };
        HC.default = K0;
        ere.prototype = K0.prototype
    });
    var are = w(GC => {
        "use strict";
        Object.defineProperty(GC, "__esModule", {value: !0});
        GC.create = sre;
        GC.default = void 0;
        var la = hA(), CA = ore(Yf()), eje = ore(dA());

        function ore(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var tje = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,
            rje = /^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
            ije = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,
            nje = t => (0, CA.default)(t) || t === t.trim(), sje = {}.toString();

        function sre() {
            return new U0
        }

        var U0 = class extends eje.default {
            constructor() {
                super({type: "string"});
                this.withMutation(() => {
                    this.transform(function (e) {
                        if (this.isType(e) || Array.isArray(e)) return e;
                        let r = e != null && e.toString ? e.toString() : e;
                        return r === sje ? e : r
                    })
                })
            }

            _typeCheck(e) {
                return e instanceof String && (e = e.valueOf()), typeof e == "string"
            }

            _isPresent(e) {
                return super._isPresent(e) && !!e.length
            }

            length(e, r = la.string.length) {
                return this.test({
                    message: r, name: "length", exclusive: !0, params: {length: e}, test(i) {
                        return (0, CA.default)(i) || i.length === this.resolve(e)
                    }
                })
            }

            min(e, r = la.string.min) {
                return this.test({
                    message: r, name: "min", exclusive: !0, params: {min: e}, test(i) {
                        return (0, CA.default)(i) || i.length >= this.resolve(e)
                    }
                })
            }

            max(e, r = la.string.max) {
                return this.test({
                    name: "max", exclusive: !0, message: r, params: {max: e}, test(i) {
                        return (0, CA.default)(i) || i.length <= this.resolve(e)
                    }
                })
            }

            matches(e, r) {
                let i = !1, n, s;
                return r && (typeof r == "object" ? {
                    excludeEmptyString: i = !1,
                    message: n,
                    name: s
                } = r : n = r), this.test({
                    name: s || "matches",
                    message: n || la.string.matches,
                    params: {regex: e},
                    test: o => (0, CA.default)(o) || o === "" && i || o.search(e) !== -1
                })
            }

            email(e = la.string.email) {
                return this.matches(tje, {name: "email", message: e, excludeEmptyString: !0})
            }

            url(e = la.string.url) {
                return this.matches(rje, {name: "url", message: e, excludeEmptyString: !0})
            }

            uuid(e = la.string.uuid) {
                return this.matches(ije, {name: "uuid", message: e, excludeEmptyString: !1})
            }

            ensure() {
                return this.default("").transform(e => e === null ? "" : e)
            }

            trim(e = la.string.trim) {
                return this.transform(r => r != null ? r.trim() : r).test({message: e, name: "trim", test: nje})
            }

            lowercase(e = la.string.lowercase) {
                return this.transform(r => (0, CA.default)(r) ? r : r.toLowerCase()).test({
                    message: e,
                    name: "string_case",
                    exclusive: !0,
                    test: r => (0, CA.default)(r) || r === r.toLowerCase()
                })
            }

            uppercase(e = la.string.uppercase) {
                return this.transform(r => (0, CA.default)(r) ? r : r.toUpperCase()).test({
                    message: e,
                    name: "string_case",
                    exclusive: !0,
                    test: r => (0, CA.default)(r) || r === r.toUpperCase()
                })
            }
        };
        GC.default = U0;
        sre.prototype = U0.prototype
    });
    var cre = w(jC => {
        "use strict";
        Object.defineProperty(jC, "__esModule", {value: !0});
        jC.create = Are;
        jC.default = void 0;
        var pu = hA(), du = lre(Yf()), oje = lre(dA());

        function lre(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var aje = t => t != +t;

        function Are() {
            return new H0
        }

        var H0 = class extends oje.default {
            constructor() {
                super({type: "number"});
                this.withMutation(() => {
                    this.transform(function (e) {
                        let r = e;
                        if (typeof r == "string") {
                            if (r = r.replace(/\s/g, ""), r === "") return NaN;
                            r = +r
                        }
                        return this.isType(r) ? r : parseFloat(r)
                    })
                })
            }

            _typeCheck(e) {
                return e instanceof Number && (e = e.valueOf()), typeof e == "number" && !aje(e)
            }

            min(e, r = pu.number.min) {
                return this.test({
                    message: r, name: "min", exclusive: !0, params: {min: e}, test(i) {
                        return (0, du.default)(i) || i >= this.resolve(e)
                    }
                })
            }

            max(e, r = pu.number.max) {
                return this.test({
                    message: r, name: "max", exclusive: !0, params: {max: e}, test(i) {
                        return (0, du.default)(i) || i <= this.resolve(e)
                    }
                })
            }

            lessThan(e, r = pu.number.lessThan) {
                return this.test({
                    message: r, name: "max", exclusive: !0, params: {less: e}, test(i) {
                        return (0, du.default)(i) || i < this.resolve(e)
                    }
                })
            }

            moreThan(e, r = pu.number.moreThan) {
                return this.test({
                    message: r, name: "min", exclusive: !0, params: {more: e}, test(i) {
                        return (0, du.default)(i) || i > this.resolve(e)
                    }
                })
            }

            positive(e = pu.number.positive) {
                return this.moreThan(0, e)
            }

            negative(e = pu.number.negative) {
                return this.lessThan(0, e)
            }

            integer(e = pu.number.integer) {
                return this.test({name: "integer", message: e, test: r => (0, du.default)(r) || Number.isInteger(r)})
            }

            truncate() {
                return this.transform(e => (0, du.default)(e) ? e : e | 0)
            }

            round(e) {
                var r, i = ["ceil", "floor", "round", "trunc"];
                if (e = ((r = e) == null ? void 0 : r.toLowerCase()) || "round", e === "trunc") return this.truncate();
                if (i.indexOf(e.toLowerCase()) === -1) throw new TypeError("Only valid options for round() are: " + i.join(", "));
                return this.transform(n => (0, du.default)(n) ? n : Math[e](n))
            }
        };
        jC.default = H0;
        Are.prototype = H0.prototype
    });
    var ure = w(_F => {
        "use strict";
        Object.defineProperty(_F, "__esModule", {value: !0});
        _F.default = Aje;
        var lje = /^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;

        function Aje(t) {
            var e = [1, 4, 5, 6, 7, 10, 11], r = 0, i, n;
            if (n = lje.exec(t)) {
                for (var s = 0, o; o = e[s]; ++s) n[o] = +n[o] || 0;
                n[2] = (+n[2] || 1) - 1, n[3] = +n[3] || 1, n[7] = n[7] ? String(n[7]).substr(0, 3) : 0, (n[8] === void 0 || n[8] === "") && (n[9] === void 0 || n[9] === "") ? i = +new Date(n[1], n[2], n[3], n[4], n[5], n[6], n[7]) : (n[8] !== "Z" && n[9] !== void 0 && (r = n[10] * 60 + n[11], n[9] === "+" && (r = 0 - r)), i = Date.UTC(n[1], n[2], n[3], n[4], n[5] + r, n[6], n[7]))
            } else i = Date.parse ? Date.parse(t) : NaN;
            return i
        }
    });
    var hre = w(YC => {
        "use strict";
        Object.defineProperty(YC, "__esModule", {value: !0});
        YC.create = VF;
        YC.default = void 0;
        var cje = G0(ure()), gre = hA(), fre = G0(Yf()), uje = G0(hu()), gje = G0(dA());

        function G0(t) {
            return t && t.__esModule ? t : {default: t}
        }

        var XF = new Date(""), fje = t => Object.prototype.toString.call(t) === "[object Date]";

        function VF() {
            return new qC
        }

        var qC = class extends gje.default {
            constructor() {
                super({type: "date"});
                this.withMutation(() => {
                    this.transform(function (e) {
                        return this.isType(e) ? e : (e = (0, cje.default)(e), isNaN(e) ? XF : new Date(e))
                    })
                })
            }

            _typeCheck(e) {
                return fje(e) && !isNaN(e.getTime())
            }

            prepareParam(e, r) {
                let i;
                if (uje.default.isRef(e)) i = e; else {
                    let n = this.cast(e);
                    if (!this._typeCheck(n)) throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);
                    i = n
                }
                return i
            }

            min(e, r = gre.date.min) {
                let i = this.prepareParam(e, "min");
                return this.test({
                    message: r, name: "min", exclusive: !0, params: {min: e}, test(n) {
                        return (0, fre.default)(n) || n >= this.resolve(i)
                    }
                })
            }

            max(e, r = gre.date.max) {
                var i = this.prepareParam(e, "max");
                return this.test({
                    message: r, name: "max", exclusive: !0, params: {max: e}, test(n) {
                        return (0, fre.default)(n) || n <= this.resolve(i)
                    }
                })
            }
        };
        YC.default = qC;
        qC.INVALID_DATE = XF;
        VF.prototype = qC.prototype;
        VF.INVALID_DATE = XF
    });
    var dre = w((Jht, pre) => {
        function hje(t, e, r, i) {
            var n = -1, s = t == null ? 0 : t.length;
            for (i && s && (r = t[++n]); ++n < s;) r = e(r, t[n], n, t);
            return r
        }

        pre.exports = hje
    });
    var mre = w((Wht, Cre) => {
        function pje(t) {
            return function (e) {
                return t == null ? void 0 : t[e]
            }
        }

        Cre.exports = pje
    });
    var Ire = w((zht, Ere) => {
        var dje = mre(), Cje = {
            \u00C0: "A",
            \u00C1: "A",
            \u00C2: "A",
            \u00C3: "A",
            \u00C4: "A",
            \u00C5: "A",
            \u00E0: "a",
            \u00E1: "a",
            \u00E2: "a",
            \u00E3: "a",
            \u00E4: "a",
            \u00E5: "a",
            \u00C7: "C",
            \u00E7: "c",
            \u00D0: "D",
            \u00F0: "d",
            \u00C8: "E",
            \u00C9: "E",
            \u00CA: "E",
            \u00CB: "E",
            \u00E8: "e",
            \u00E9: "e",
            \u00EA: "e",
            \u00EB: "e",
            \u00CC: "I",
            \u00CD: "I",
            \u00CE: "I",
            \u00CF: "I",
            \u00EC: "i",
            \u00ED: "i",
            \u00EE: "i",
            \u00EF: "i",
            \u00D1: "N",
            \u00F1: "n",
            \u00D2: "O",
            \u00D3: "O",
            \u00D4: "O",
            \u00D5: "O",
            \u00D6: "O",
            \u00D8: "O",
            \u00F2: "o",
            \u00F3: "o",
            \u00F4: "o",
            \u00F5: "o",
            \u00F6: "o",
            \u00F8: "o",
            \u00D9: "U",
            \u00DA: "U",
            \u00DB: "U",
            \u00DC: "U",
            \u00F9: "u",
            \u00FA: "u",
            \u00FB: "u",
            \u00FC: "u",
            \u00DD: "Y",
            \u00FD: "y",
            \u00FF: "y",
            \u00C6: "Ae",
            \u00E6: "ae",
            \u00DE: "Th",
            \u00FE: "th",
            \u00DF: "ss",
            \u0100: "A",
            \u0102: "A",
            \u0104: "A",
            \u0101: "a",
            \u0103: "a",
            \u0105: "a",
            \u0106: "C",
            \u0108: "C",
            \u010A: "C",
            \u010C: "C",
            \u0107: "c",
            \u0109: "c",
            \u010B: "c",
            \u010D: "c",
            \u010E: "D",
            \u0110: "D",
            \u010F: "d",
            \u0111: "d",
            \u0112: "E",
            \u0114: "E",
            \u0116: "E",
            \u0118: "E",
            \u011A: "E",
            \u0113: "e",
            \u0115: "e",
            \u0117: "e",
            \u0119: "e",
            \u011B: "e",
            \u011C: "G",
            \u011E: "G",
            \u0120: "G",
            \u0122: "G",
            \u011D: "g",
            \u011F: "g",
            \u0121: "g",
            \u0123: "g",
            \u0124: "H",
            \u0126: "H",
            \u0125: "h",
            \u0127: "h",
            \u0128: "I",
            \u012A: "I",
            \u012C: "I",
            \u012E: "I",
            \u0130: "I",
            \u0129: "i",
            \u012B: "i",
            \u012D: "i",
            \u012F: "i",
            \u0131: "i",
            \u0134: "J",
            \u0135: "j",
            \u0136: "K",
            \u0137: "k",
            \u0138: "k",
            \u0139: "L",
            \u013B: "L",
            \u013D: "L",
            \u013F: "L",
            \u0141: "L",
            \u013A: "l",
            \u013C: "l",
            \u013E: "l",
            \u0140: "l",
            \u0142: "l",
            \u0143: "N",
            \u0145: "N",
            \u0147: "N",
            \u014A: "N",
            \u0144: "n",
            \u0146: "n",
            \u0148: "n",
            \u014B: "n",
            \u014C: "O",
            \u014E: "O",
            \u0150: "O",
            \u014D: "o",
            \u014F: "o",
            \u0151: "o",
            \u0154: "R",
            \u0156: "R",
            \u0158: "R",
            \u0155: "r",
            \u0157: "r",
            \u0159: "r",
            \u015A: "S",
            \u015C: "S",
            \u015E: "S",
            \u0160: "S",
            \u015B: "s",
            \u015D: "s",
            \u015F: "s",
            \u0161: "s",
            \u0162: "T",
            \u0164: "T",
            \u0166: "T",
            \u0163: "t",
            \u0165: "t",
            \u0167: "t",
            \u0168: "U",
            \u016A: "U",
            \u016C: "U",
            \u016E: "U",
            \u0170: "U",
            \u0172: "U",
            \u0169: "u",
            \u016B: "u",
            \u016D: "u",
            \u016F: "u",
            \u0171: "u",
            \u0173: "u",
            \u0174: "W",
            \u0175: "w",
            \u0176: "Y",
            \u0177: "y",
            \u0178: "Y",
            \u0179: "Z",
            \u017B: "Z",
            \u017D: "Z",
            \u017A: "z",
            \u017C: "z",
            \u017E: "z",
            \u0132: "IJ",
            \u0133: "ij",
            \u0152: "Oe",
            \u0153: "oe",
            \u0149: "'n",
            \u017F: "s"
        }, mje = dje(Cje);
        Ere.exports = mje
    });
    var wre = w((_ht, yre) => {
        var Eje = Ire(), Ije = of(), yje = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, wje = "\\u0300-\\u036f",
            Bje = "\\ufe20-\\ufe2f", bje = "\\u20d0-\\u20ff", Qje = wje + Bje + bje, vje = "[" + Qje + "]",
            Sje = RegExp(vje, "g");

        function kje(t) {
            return t = Ije(t), t && t.replace(yje, Eje).replace(Sje, "")
        }

        yre.exports = kje
    });
    var bre = w((Vht, Bre) => {
        var xje = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;

        function Pje(t) {
            return t.match(xje) || []
        }

        Bre.exports = Pje
    });
    var vre = w((Xht, Qre) => {
        var Dje = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;

        function Rje(t) {
            return Dje.test(t)
        }

        Qre.exports = Rje
    });
    var qre = w((Zht, Sre) => {
        var kre = "\\ud800-\\udfff", Fje = "\\u0300-\\u036f", Nje = "\\ufe20-\\ufe2f", Lje = "\\u20d0-\\u20ff",
            Tje = Fje + Nje + Lje, xre = "\\u2700-\\u27bf", Pre = "a-z\\xdf-\\xf6\\xf8-\\xff",
            Oje = "\\xac\\xb1\\xd7\\xf7", Mje = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", Kje = "\\u2000-\\u206f",
            Uje = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",
            Dre = "A-Z\\xc0-\\xd6\\xd8-\\xde", Hje = "\\ufe0e\\ufe0f", Rre = Oje + Mje + Kje + Uje, Fre = "['\u2019]",
            Nre = "[" + Rre + "]", Gje = "[" + Tje + "]", Lre = "\\d+", jje = "[" + xre + "]", Tre = "[" + Pre + "]",
            Ore = "[^" + kre + Rre + Lre + xre + Pre + Dre + "]", Yje = "\\ud83c[\\udffb-\\udfff]",
            qje = "(?:" + Gje + "|" + Yje + ")", Jje = "[^" + kre + "]", Mre = "(?:\\ud83c[\\udde6-\\uddff]){2}",
            Kre = "[\\ud800-\\udbff][\\udc00-\\udfff]", qf = "[" + Dre + "]", Wje = "\\u200d",
            Ure = "(?:" + Tre + "|" + Ore + ")", zje = "(?:" + qf + "|" + Ore + ")",
            Hre = "(?:" + Fre + "(?:d|ll|m|re|s|t|ve))?", Gre = "(?:" + Fre + "(?:D|LL|M|RE|S|T|VE))?", jre = qje + "?",
            Yre = "[" + Hje + "]?", _je = "(?:" + Wje + "(?:" + [Jje, Mre, Kre].join("|") + ")" + Yre + jre + ")*",
            Vje = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",
            Xje = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", Zje = Yre + jre + _je,
            $je = "(?:" + [jje, Mre, Kre].join("|") + ")" + Zje,
            eYe = RegExp([qf + "?" + Tre + "+" + Hre + "(?=" + [Nre, qf, "$"].join("|") + ")", zje + "+" + Gre + "(?=" + [Nre, qf + Ure, "$"].join("|") + ")", qf + "?" + Ure + "+" + Hre, qf + "+" + Gre, Xje, Vje, Lre, $je].join("|"), "g");

        function tYe(t) {
            return t.match(eYe) || []
        }

        Sre.exports = tYe
    });
    var Wre = w(($ht, Jre) => {
        var rYe = bre(), iYe = vre(), nYe = of(), sYe = qre();

        function oYe(t, e, r) {
            return t = nYe(t), e = r ? void 0 : e, e === void 0 ? iYe(t) ? sYe(t) : rYe(t) : t.match(e) || []
        }

        Jre.exports = oYe
    });
    var ZF = w((ept, zre) => {
        var aYe = dre(), AYe = wre(), lYe = Wre(), cYe = "['\u2019]", uYe = RegExp(cYe, "g");

        function gYe(t) {
            return function (e) {
                return aYe(lYe(AYe(e).replace(uYe, "")), t, "")
            }
        }

        zre.exports = gYe
    });
    var Vre = w((tpt, _re) => {
        var fYe = ZF(), hYe = fYe(function (t, e, r) {
            return t + (r ? "_" : "") + e.toLowerCase()
        });
        _re.exports = hYe
    });
    var Zre = w((rpt, Xre) => {
        var pYe = rB(), dYe = ZF(), CYe = dYe(function (t, e, r) {
            return e = e.toLowerCase(), t + (r ? pYe(e) : e)
        });
        Xre.exports = CYe
    });
    var eie = w((ipt, $re) => {
        var mYe = Lf(), EYe = BF(), IYe = KF();

        function yYe(t, e) {
            var r = {};
            return e = IYe(e, 3), EYe(t, function (i, n, s) {
                mYe(r, e(i, n, s), i)
            }), r
        }

        $re.exports = yYe
    });
    var rie = w((npt, $F) => {
        $F.exports = function (t) {
            return tie(wYe(t), t)
        };
        $F.exports.array = tie;

        function tie(t, e) {
            var r = t.length, i = new Array(r), n = {}, s = r, o = BYe(e), a = bYe(t);
            for (e.forEach(function (c) {
                if (!a.has(c[0]) || !a.has(c[1])) throw new Error("Unknown node. There is an unknown node in the supplied edges.")
            }); s--;) n[s] || l(t[s], s, new Set);
            return i;

            function l(c, u, g) {
                if (g.has(c)) {
                    var f;
                    try {
                        f = ", node was:" + JSON.stringify(c)
                    } catch (m) {
                        f = ""
                    }
                    throw new Error("Cyclic dependency" + f)
                }
                if (!a.has(c)) throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: " + JSON.stringify(c));
                if (!n[u]) {
                    n[u] = !0;
                    var h = o.get(c) || new Set;
                    if (h = Array.from(h), u = h.length) {
                        g.add(c);
                        do {
                            var p = h[--u];
                            l(p, a.get(p), g)
                        } while (u);
                        g.delete(c)
                    }
                    i[--r] = c
                }
            }
        }

        function wYe(t) {
            for (var e = new Set, r = 0, i = t.length; r < i; r++) {
                var n = t[r];
                e.add(n[0]), e.add(n[1])
            }
            return Array.from(e)
        }

        function BYe(t) {
            for (var e = new Map, r = 0, i = t.length; r < i; r++) {
                var n = t[r];
                e.has(n[0]) || e.set(n[0], new Set), e.has(n[1]) || e.set(n[1], new Set), e.get(n[0]).add(n[1])
            }
            return e
        }

        function bYe(t) {
            for (var e = new Map, r = 0, i = t.length; r < i; r++) e.set(t[r], r);
            return e
        }
    });
    var iie = w(eN => {
        "use strict";
        Object.defineProperty(eN, "__esModule", {value: !0});
        eN.default = QYe;
        var vYe = j0(kC()), SYe = j0(rie()), kYe = OC(), xYe = j0(hu()), PYe = j0(Of());

        function j0(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function QYe(t, e = []) {
            let r = [], i = [];

            function n(s, o) {
                var a = (0, kYe.split)(s)[0];
                ~i.indexOf(a) || i.push(a), ~e.indexOf(`${o}-${a}`) || r.push([o, a])
            }

            for (let s in t) if ((0, vYe.default)(t, s)) {
                let o = t[s];
                ~i.indexOf(s) || i.push(s), xYe.default.isRef(o) && o.isSibling ? n(o.path, s) : (0, PYe.default)(o) && "deps" in o && o.deps.forEach(a => n(a, s))
            }
            return SYe.default.array(i, r).reverse()
        }
    });
    var sie = w(tN => {
        "use strict";
        Object.defineProperty(tN, "__esModule", {value: !0});
        tN.default = DYe;

        function nie(t, e) {
            let r = Infinity;
            return t.some((i, n) => {
                var s;
                if (((s = e.path) == null ? void 0 : s.indexOf(i)) !== -1) return r = n, !0
            }), r
        }

        function DYe(t) {
            return (e, r) => nie(t, e) - nie(t, r)
        }
    });
    var gie = w(JC => {
        "use strict";
        Object.defineProperty(JC, "__esModule", {value: !0});
        JC.create = oie;
        JC.default = void 0;
        var aie = ca(kC()), Aie = ca(Vre()), RYe = ca(Zre()), FYe = ca(eie()), NYe = ca(UF()), LYe = OC(), lie = hA(),
            TYe = ca(iie()), cie = ca(sie()), OYe = ca(y0()), MYe = ca(uu()), rN = ca(dA());

        function ca(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function Jf() {
            return Jf = Object.assign || function (t) {
                for (var e = 1; e < arguments.length; e++) {
                    var r = arguments[e];
                    for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i])
                }
                return t
            }, Jf.apply(this, arguments)
        }

        var uie = t => Object.prototype.toString.call(t) === "[object Object]";

        function KYe(t, e) {
            let r = Object.keys(t.fields);
            return Object.keys(e).filter(i => r.indexOf(i) === -1)
        }

        var UYe = (0, cie.default)([]), Y0 = class extends rN.default {
            constructor(e) {
                super({type: "object"});
                this.fields = Object.create(null), this._sortErrors = UYe, this._nodes = [], this._excludedEdges = [], this.withMutation(() => {
                    this.transform(function (i) {
                        if (typeof i == "string") try {
                            i = JSON.parse(i)
                        } catch (n) {
                            i = null
                        }
                        return this.isType(i) ? i : null
                    }), e && this.shape(e)
                })
            }

            _typeCheck(e) {
                return uie(e) || typeof e == "function"
            }

            _cast(e, r = {}) {
                var i;
                let n = super._cast(e, r);
                if (n === void 0) return this.getDefault();
                if (!this._typeCheck(n)) return n;
                let s = this.fields, o = (i = r.stripUnknown) != null ? i : this.spec.noUnknown,
                    a = this._nodes.concat(Object.keys(n).filter(g => this._nodes.indexOf(g) === -1)), l = {},
                    c = Jf({}, r, {parent: l, __validating: r.__validating || !1}), u = !1;
                for (let g of a) {
                    let f = s[g], h = (0, aie.default)(n, g);
                    if (f) {
                        let p, m = n[g];
                        c.path = (r.path ? `${r.path}.` : "") + g, f = f.resolve({
                            value: m,
                            context: r.context,
                            parent: l
                        });
                        let y = "spec" in f ? f.spec : void 0, b = y == null ? void 0 : y.strict;
                        if (y == null ? void 0 : y.strip) {
                            u = u || g in n;
                            continue
                        }
                        p = !r.__validating || !b ? f.cast(n[g], c) : n[g], p !== void 0 && (l[g] = p)
                    } else h && !o && (l[g] = n[g]);
                    l[g] !== n[g] && (u = !0)
                }
                return u ? l : n
            }

            _validate(e, r = {}, i) {
                let n = [], {
                    sync: s,
                    from: o = [],
                    originalValue: a = e,
                    abortEarly: l = this.spec.abortEarly,
                    recursive: c = this.spec.recursive
                } = r;
                o = [{
                    schema: this,
                    value: a
                }, ...o], r.__validating = !0, r.originalValue = a, r.from = o, super._validate(e, r, (u, g) => {
                    if (u) {
                        if (!MYe.default.isError(u) || l) return void i(u, g);
                        n.push(u)
                    }
                    if (!c || !uie(g)) {
                        i(n[0] || null, g);
                        return
                    }
                    a = a || g;
                    let f = this._nodes.map(h => (p, m) => {
                        let y = h.indexOf(".") === -1 ? (r.path ? `${r.path}.` : "") + h : `${r.path || ""}["${h}"]`,
                            b = this.fields[h];
                        if (b && "validate" in b) {
                            b.validate(g[h], Jf({}, r, {
                                path: y,
                                from: o,
                                strict: !0,
                                parent: g,
                                originalValue: a[h]
                            }), m);
                            return
                        }
                        m(null)
                    });
                    (0, OYe.default)({
                        sync: s,
                        tests: f,
                        value: g,
                        errors: n,
                        endEarly: l,
                        sort: this._sortErrors,
                        path: r.path
                    }, i)
                })
            }

            clone(e) {
                let r = super.clone(e);
                return r.fields = Jf({}, this.fields), r._nodes = this._nodes, r._excludedEdges = this._excludedEdges, r._sortErrors = this._sortErrors, r
            }

            concat(e) {
                let r = super.concat(e), i = r.fields;
                for (let [n, s] of Object.entries(this.fields)) {
                    let o = i[n];
                    o === void 0 ? i[n] = s : o instanceof rN.default && s instanceof rN.default && (i[n] = s.concat(o))
                }
                return r.withMutation(() => r.shape(i))
            }

            getDefaultFromShape() {
                let e = {};
                return this._nodes.forEach(r => {
                    let i = this.fields[r];
                    e[r] = "default" in i ? i.getDefault() : void 0
                }), e
            }

            _getDefault() {
                if ("default" in this.spec) return super._getDefault();
                if (!!this._nodes.length) return this.getDefaultFromShape()
            }

            shape(e, r = []) {
                let i = this.clone(), n = Object.assign(i.fields, e);
                if (i.fields = n, i._sortErrors = (0, cie.default)(Object.keys(n)), r.length) {
                    Array.isArray(r[0]) || (r = [r]);
                    let s = r.map(([o, a]) => `${o}-${a}`);
                    i._excludedEdges = i._excludedEdges.concat(s)
                }
                return i._nodes = (0, TYe.default)(n, i._excludedEdges), i
            }

            pick(e) {
                let r = {};
                for (let i of e) this.fields[i] && (r[i] = this.fields[i]);
                return this.clone().withMutation(i => (i.fields = {}, i.shape(r)))
            }

            omit(e) {
                let r = this.clone(), i = r.fields;
                r.fields = {};
                for (let n of e) delete i[n];
                return r.withMutation(() => r.shape(i))
            }

            from(e, r, i) {
                let n = (0, LYe.getter)(e, !0);
                return this.transform(s => {
                    if (s == null) return s;
                    let o = s;
                    return (0, aie.default)(s, e) && (o = Jf({}, s), i || delete o[e], o[r] = n(s)), o
                })
            }

            noUnknown(e = !0, r = lie.object.noUnknown) {
                typeof e == "string" && (r = e, e = !0);
                let i = this.test({
                    name: "noUnknown", exclusive: !0, message: r, test(n) {
                        if (n == null) return !0;
                        let s = KYe(this.schema, n);
                        return !e || s.length === 0 || this.createError({params: {unknown: s.join(", ")}})
                    }
                });
                return i.spec.noUnknown = e, i
            }

            unknown(e = !0, r = lie.object.noUnknown) {
                return this.noUnknown(!e, r)
            }

            transformKeys(e) {
                return this.transform(r => r && (0, FYe.default)(r, (i, n) => e(n)))
            }

            camelCase() {
                return this.transformKeys(RYe.default)
            }

            snakeCase() {
                return this.transformKeys(Aie.default)
            }

            constantCase() {
                return this.transformKeys(e => (0, Aie.default)(e).toUpperCase())
            }

            describe() {
                let e = super.describe();
                return e.fields = (0, NYe.default)(this.fields, r => r.describe()), e
            }
        };
        JC.default = Y0;

        function oie(t) {
            return new Y0(t)
        }

        oie.prototype = Y0.prototype
    });
    var hie = w(WC => {
        "use strict";
        Object.defineProperty(WC, "__esModule", {value: !0});
        WC.create = fie;
        WC.default = void 0;
        var iN = Wf(Yf()), HYe = Wf(Of()), GYe = Wf(SC()), nN = hA(), jYe = Wf(y0()), YYe = Wf(uu()), qYe = Wf(dA());

        function Wf(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function q0() {
            return q0 = Object.assign || function (t) {
                for (var e = 1; e < arguments.length; e++) {
                    var r = arguments[e];
                    for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i])
                }
                return t
            }, q0.apply(this, arguments)
        }

        function fie(t) {
            return new J0(t)
        }

        var J0 = class extends qYe.default {
            constructor(e) {
                super({type: "array"});
                this.innerType = e, this.withMutation(() => {
                    this.transform(function (r) {
                        if (typeof r == "string") try {
                            r = JSON.parse(r)
                        } catch (i) {
                            r = null
                        }
                        return this.isType(r) ? r : null
                    })
                })
            }

            _typeCheck(e) {
                return Array.isArray(e)
            }

            get _subType() {
                return this.innerType
            }

            _cast(e, r) {
                let i = super._cast(e, r);
                if (!this._typeCheck(i) || !this.innerType) return i;
                let n = !1, s = i.map((o, a) => {
                    let l = this.innerType.cast(o, q0({}, r, {path: `${r.path || ""}[${a}]`}));
                    return l !== o && (n = !0), l
                });
                return n ? s : i
            }

            _validate(e, r = {}, i) {
                var n, s;
                let o = [], a = r.sync, l = r.path, c = this.innerType,
                    u = (n = r.abortEarly) != null ? n : this.spec.abortEarly,
                    g = (s = r.recursive) != null ? s : this.spec.recursive,
                    f = r.originalValue != null ? r.originalValue : e;
                super._validate(e, r, (h, p) => {
                    if (h) {
                        if (!YYe.default.isError(h) || u) return void i(h, p);
                        o.push(h)
                    }
                    if (!g || !c || !this._typeCheck(p)) {
                        i(o[0] || null, p);
                        return
                    }
                    f = f || p;
                    let m = new Array(p.length);
                    for (let y = 0; y < p.length; y++) {
                        let b = p[y], S = `${r.path || ""}[${y}]`,
                            k = q0({}, r, {path: S, strict: !0, parent: p, index: y, originalValue: f[y]});
                        m[y] = (T, Y) => c.validate(b, k, Y)
                    }
                    (0, jYe.default)({sync: a, path: l, value: p, errors: o, endEarly: u, tests: m}, i)
                })
            }

            clone(e) {
                let r = super.clone(e);
                return r.innerType = this.innerType, r
            }

            concat(e) {
                let r = super.concat(e);
                return r.innerType = this.innerType, e.innerType && (r.innerType = r.innerType ? r.innerType.concat(e.innerType) : e.innerType), r
            }

            of(e) {
                let r = this.clone();
                if (!(0, HYe.default)(e)) throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: " + (0, GYe.default)(e));
                return r.innerType = e, r
            }

            length(e, r = nN.array.length) {
                return this.test({
                    message: r, name: "length", exclusive: !0, params: {length: e}, test(i) {
                        return (0, iN.default)(i) || i.length === this.resolve(e)
                    }
                })
            }

            min(e, r) {
                return r = r || nN.array.min, this.test({
                    message: r,
                    name: "min",
                    exclusive: !0,
                    params: {min: e},
                    test(i) {
                        return (0, iN.default)(i) || i.length >= this.resolve(e)
                    }
                })
            }

            max(e, r) {
                return r = r || nN.array.max, this.test({
                    message: r,
                    name: "max",
                    exclusive: !0,
                    params: {max: e},
                    test(i) {
                        return (0, iN.default)(i) || i.length <= this.resolve(e)
                    }
                })
            }

            ensure() {
                return this.default(() => []).transform((e, r) => this._typeCheck(e) ? e : r == null ? [] : [].concat(r))
            }

            compact(e) {
                let r = e ? (i, n, s) => !e(i, n, s) : i => !!i;
                return this.transform(i => i != null ? i.filter(r) : i)
            }

            describe() {
                let e = super.describe();
                return this.innerType && (e.innerType = this.innerType.describe()), e
            }

            nullable(e = !0) {
                return super.nullable(e)
            }

            defined() {
                return super.defined()
            }

            required(e) {
                return super.required(e)
            }
        };
        WC.default = J0;
        fie.prototype = J0.prototype
    });
    var pie = w(zC => {
        "use strict";
        Object.defineProperty(zC, "__esModule", {value: !0});
        zC.create = JYe;
        zC.default = void 0;
        var zYe = WYe(Of());

        function WYe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function JYe(t) {
            return new sN(t)
        }

        var sN = class {
            constructor(e) {
                this.type = "lazy", this.__isYupSchema__ = !0, this._resolve = (r, i = {}) => {
                    let n = this.builder(r, i);
                    if (!(0, zYe.default)(n)) throw new TypeError("lazy() functions must return a valid schema");
                    return n.resolve(i)
                }, this.builder = e
            }

            resolve(e) {
                return this._resolve(e.value, e)
            }

            cast(e, r) {
                return this._resolve(e, r).cast(e, r)
            }

            validate(e, r, i) {
                return this._resolve(e, r).validate(e, r, i)
            }

            validateSync(e, r) {
                return this._resolve(e, r).validateSync(e, r)
            }

            validateAt(e, r, i) {
                return this._resolve(r, i).validateAt(e, r, i)
            }

            validateSyncAt(e, r, i) {
                return this._resolve(r, i).validateSyncAt(e, r, i)
            }

            describe() {
                return null
            }

            isValid(e, r) {
                return this._resolve(e, r).isValid(e, r)
            }

            isValidSync(e, r) {
                return this._resolve(e, r).isValidSync(e, r)
            }
        }, _Ye = sN;
        zC.default = _Ye
    });
    var die = w(oN => {
        "use strict";
        Object.defineProperty(oN, "__esModule", {value: !0});
        oN.default = VYe;
        var ZYe = XYe(hA());

        function XYe(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function VYe(t) {
            Object.keys(t).forEach(e => {
                Object.keys(t[e]).forEach(r => {
                    ZYe.default[e][r] = t[e][r]
                })
            })
        }
    });
    var AN = w(Br => {
        "use strict";
        Object.defineProperty(Br, "__esModule", {value: !0});
        Br.addMethod = $Ye;
        Object.defineProperty(Br, "MixedSchema", {
            enumerable: !0, get: function () {
                return Cie.default
            }
        });
        Object.defineProperty(Br, "mixed", {
            enumerable: !0, get: function () {
                return Cie.create
            }
        });
        Object.defineProperty(Br, "BooleanSchema", {
            enumerable: !0, get: function () {
                return aN.default
            }
        });
        Object.defineProperty(Br, "bool", {
            enumerable: !0, get: function () {
                return aN.create
            }
        });
        Object.defineProperty(Br, "boolean", {
            enumerable: !0, get: function () {
                return aN.create
            }
        });
        Object.defineProperty(Br, "StringSchema", {
            enumerable: !0, get: function () {
                return mie.default
            }
        });
        Object.defineProperty(Br, "string", {
            enumerable: !0, get: function () {
                return mie.create
            }
        });
        Object.defineProperty(Br, "NumberSchema", {
            enumerable: !0, get: function () {
                return Eie.default
            }
        });
        Object.defineProperty(Br, "number", {
            enumerable: !0, get: function () {
                return Eie.create
            }
        });
        Object.defineProperty(Br, "DateSchema", {
            enumerable: !0, get: function () {
                return Iie.default
            }
        });
        Object.defineProperty(Br, "date", {
            enumerable: !0, get: function () {
                return Iie.create
            }
        });
        Object.defineProperty(Br, "ObjectSchema", {
            enumerable: !0, get: function () {
                return yie.default
            }
        });
        Object.defineProperty(Br, "object", {
            enumerable: !0, get: function () {
                return yie.create
            }
        });
        Object.defineProperty(Br, "ArraySchema", {
            enumerable: !0, get: function () {
                return wie.default
            }
        });
        Object.defineProperty(Br, "array", {
            enumerable: !0, get: function () {
                return wie.create
            }
        });
        Object.defineProperty(Br, "ref", {
            enumerable: !0, get: function () {
                return eqe.create
            }
        });
        Object.defineProperty(Br, "lazy", {
            enumerable: !0, get: function () {
                return tqe.create
            }
        });
        Object.defineProperty(Br, "ValidationError", {
            enumerable: !0, get: function () {
                return rqe.default
            }
        });
        Object.defineProperty(Br, "reach", {
            enumerable: !0, get: function () {
                return iqe.default
            }
        });
        Object.defineProperty(Br, "isSchema", {
            enumerable: !0, get: function () {
                return Bie.default
            }
        });
        Object.defineProperty(Br, "setLocale", {
            enumerable: !0, get: function () {
                return nqe.default
            }
        });
        Object.defineProperty(Br, "BaseSchema", {
            enumerable: !0, get: function () {
                return sqe.default
            }
        });
        var Cie = Cu($te()), aN = Cu(nre()), mie = Cu(are()), Eie = Cu(cre()), Iie = Cu(hre()), yie = Cu(gie()),
            wie = Cu(hie()), eqe = hu(), tqe = pie(), rqe = _C(uu()), iqe = _C(WF()), Bie = _C(Of()), nqe = _C(die()),
            sqe = _C(dA());

        function _C(t) {
            return t && t.__esModule ? t : {default: t}
        }

        function bie() {
            if (typeof WeakMap != "function") return null;
            var t = new WeakMap;
            return bie = function () {
                return t
            }, t
        }

        function Cu(t) {
            if (t && t.__esModule) return t;
            if (t === null || typeof t != "object" && typeof t != "function") return {default: t};
            var e = bie();
            if (e && e.has(t)) return e.get(t);
            var r = {}, i = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var n in t) if (Object.prototype.hasOwnProperty.call(t, n)) {
                var s = i ? Object.getOwnPropertyDescriptor(t, n) : null;
                s && (s.get || s.set) ? Object.defineProperty(r, n, s) : r[n] = t[n]
            }
            return r.default = t, e && e.set(t, r), r
        }

        function $Ye(t, e, r) {
            if (!t || !(0, Bie.default)(t.prototype)) throw new TypeError("You must provide a yup schema constructor function");
            if (typeof e != "string") throw new TypeError("A Method name must be provided");
            if (typeof r != "function") throw new TypeError("Method function must be provided");
            t.prototype[e] = r
        }
    });
    var xie = w((bpt, XC) => {
        "use strict";
        var Aqe = process.env.TERM_PROGRAM === "Hyper", lqe = process.platform === "win32",
            vie = process.platform === "linux", lN = {
                ballotDisabled: "\u2612",
                ballotOff: "\u2610",
                ballotOn: "\u2611",
                bullet: "\u2022",
                bulletWhite: "\u25E6",
                fullBlock: "\u2588",
                heart: "\u2764",
                identicalTo: "\u2261",
                line: "\u2500",
                mark: "\u203B",
                middot: "\xB7",
                minus: "\uFF0D",
                multiplication: "\xD7",
                obelus: "\xF7",
                pencilDownRight: "\u270E",
                pencilRight: "\u270F",
                pencilUpRight: "\u2710",
                percent: "%",
                pilcrow2: "\u2761",
                pilcrow: "\xB6",
                plusMinus: "\xB1",
                section: "\xA7",
                starsOff: "\u2606",
                starsOn: "\u2605",
                upDownArrow: "\u2195"
            }, Sie = Object.assign({}, lN, {
                check: "\u221A",
                cross: "\xD7",
                ellipsisLarge: "...",
                ellipsis: "...",
                info: "i",
                question: "?",
                questionSmall: "?",
                pointer: ">",
                pointerSmall: "\xBB",
                radioOff: "( )",
                radioOn: "(*)",
                warning: "\u203C"
            }), kie = Object.assign({}, lN, {
                ballotCross: "\u2718",
                check: "\u2714",
                cross: "\u2716",
                ellipsisLarge: "\u22EF",
                ellipsis: "\u2026",
                info: "\u2139",
                question: "?",
                questionFull: "\uFF1F",
                questionSmall: "\uFE56",
                pointer: vie ? "\u25B8" : "\u276F",
                pointerSmall: vie ? "\u2023" : "\u203A",
                radioOff: "\u25EF",
                radioOn: "\u25C9",
                warning: "\u26A0"
            });
        XC.exports = lqe && !Aqe ? Sie : kie;
        Reflect.defineProperty(XC.exports, "common", {enumerable: !1, value: lN});
        Reflect.defineProperty(XC.exports, "windows", {enumerable: !1, value: Sie});
        Reflect.defineProperty(XC.exports, "other", {enumerable: !1, value: kie})
    });
    var mo = w((Qpt, cN) => {
        "use strict";
        var cqe = t => t !== null && typeof t == "object" && !Array.isArray(t),
            uqe = /[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,
            Pie = () => {
                let t = {enabled: !0, visible: !0, styles: {}, keys: {}};
                "FORCE_COLOR" in process.env && (t.enabled = process.env.FORCE_COLOR !== "0");
                let e = s => {
                    let o = s.open = `[${s.codes[0]}m`, a = s.close = `[${s.codes[1]}m`,
                        l = s.regex = new RegExp(`\\u001b\\[${s.codes[1]}m`, "g");
                    return s.wrap = (c, u) => {
                        c.includes(a) && (c = c.replace(l, a + o));
                        let g = o + c + a;
                        return u ? g.replace(/\r*\n/g, `${a}$&${o}`) : g
                    }, s
                }, r = (s, o, a) => typeof s == "function" ? s(o) : s.wrap(o, a), i = (s, o) => {
                    if (s === "" || s == null) return "";
                    if (t.enabled === !1) return s;
                    if (t.visible === !1) return "";
                    let a = "" + s, l = a.includes(`
`), c = o.length;
                    for (c > 0 && o.includes("unstyle") && (o = [...new Set(["unstyle", ...o])].reverse()); c-- > 0;) a = r(t.styles[o[c]], a, l);
                    return a
                }, n = (s, o, a) => {
                    t.styles[s] = e({
                        name: s,
                        codes: o
                    }), (t.keys[a] || (t.keys[a] = [])).push(s), Reflect.defineProperty(t, s, {
                        configurable: !0,
                        enumerable: !0,
                        set(c) {
                            t.alias(s, c)
                        },
                        get() {
                            let c = u => i(u, c.stack);
                            return Reflect.setPrototypeOf(c, t), c.stack = this.stack ? this.stack.concat(s) : [s], c
                        }
                    })
                };
                return n("reset", [0, 0], "modifier"), n("bold", [1, 22], "modifier"), n("dim", [2, 22], "modifier"), n("italic", [3, 23], "modifier"), n("underline", [4, 24], "modifier"), n("inverse", [7, 27], "modifier"), n("hidden", [8, 28], "modifier"), n("strikethrough", [9, 29], "modifier"), n("black", [30, 39], "color"), n("red", [31, 39], "color"), n("green", [32, 39], "color"), n("yellow", [33, 39], "color"), n("blue", [34, 39], "color"), n("magenta", [35, 39], "color"), n("cyan", [36, 39], "color"), n("white", [37, 39], "color"), n("gray", [90, 39], "color"), n("grey", [90, 39], "color"), n("bgBlack", [40, 49], "bg"), n("bgRed", [41, 49], "bg"), n("bgGreen", [42, 49], "bg"), n("bgYellow", [43, 49], "bg"), n("bgBlue", [44, 49], "bg"), n("bgMagenta", [45, 49], "bg"), n("bgCyan", [46, 49], "bg"), n("bgWhite", [47, 49], "bg"), n("blackBright", [90, 39], "bright"), n("redBright", [91, 39], "bright"), n("greenBright", [92, 39], "bright"), n("yellowBright", [93, 39], "bright"), n("blueBright", [94, 39], "bright"), n("magentaBright", [95, 39], "bright"), n("cyanBright", [96, 39], "bright"), n("whiteBright", [97, 39], "bright"), n("bgBlackBright", [100, 49], "bgBright"), n("bgRedBright", [101, 49], "bgBright"), n("bgGreenBright", [102, 49], "bgBright"), n("bgYellowBright", [103, 49], "bgBright"), n("bgBlueBright", [104, 49], "bgBright"), n("bgMagentaBright", [105, 49], "bgBright"), n("bgCyanBright", [106, 49], "bgBright"), n("bgWhiteBright", [107, 49], "bgBright"), t.ansiRegex = uqe, t.hasColor = t.hasAnsi = s => (t.ansiRegex.lastIndex = 0, typeof s == "string" && s !== "" && t.ansiRegex.test(s)), t.alias = (s, o) => {
                    let a = typeof o == "string" ? t[o] : o;
                    if (typeof a != "function") throw new TypeError("Expected alias to be the name of an existing color (string) or a function");
                    a.stack || (Reflect.defineProperty(a, "name", {value: s}), t.styles[s] = a, a.stack = [s]), Reflect.defineProperty(t, s, {
                        configurable: !0,
                        enumerable: !0,
                        set(l) {
                            t.alias(s, l)
                        },
                        get() {
                            let l = c => i(c, l.stack);
                            return Reflect.setPrototypeOf(l, t), l.stack = this.stack ? this.stack.concat(a.stack) : a.stack, l
                        }
                    })
                }, t.theme = s => {
                    if (!cqe(s)) throw new TypeError("Expected theme to be an object");
                    for (let o of Object.keys(s)) t.alias(o, s[o]);
                    return t
                }, t.alias("unstyle", s => typeof s == "string" && s !== "" ? (t.ansiRegex.lastIndex = 0, s.replace(t.ansiRegex, "")) : ""), t.alias("noop", s => s), t.none = t.clear = t.noop, t.stripColor = t.unstyle, t.symbols = xie(), t.define = n, t
            };
        cN.exports = Pie();
        cN.exports.create = Pie
    });
    var Xi = w(Lt => {
        "use strict";
        var gqe = Object.prototype.toString, Js = mo(), Die = !1, uN = [], Rie = {
            yellow: "blue",
            cyan: "red",
            green: "magenta",
            black: "white",
            blue: "yellow",
            red: "cyan",
            magenta: "green",
            white: "black"
        };
        Lt.longest = (t, e) => t.reduce((r, i) => Math.max(r, e ? i[e].length : i.length), 0);
        Lt.hasColor = t => !!t && Js.hasColor(t);
        var z0 = Lt.isObject = t => t !== null && typeof t == "object" && !Array.isArray(t);
        Lt.nativeType = t => gqe.call(t).slice(8, -1).toLowerCase().replace(/\s/g, "");
        Lt.isAsyncFn = t => Lt.nativeType(t) === "asyncfunction";
        Lt.isPrimitive = t => t != null && typeof t != "object" && typeof t != "function";
        Lt.resolve = (t, e, ...r) => typeof e == "function" ? e.call(t, ...r) : e;
        Lt.scrollDown = (t = []) => [...t.slice(1), t[0]];
        Lt.scrollUp = (t = []) => [t.pop(), ...t];
        Lt.reorder = (t = []) => {
            let e = t.slice();
            return e.sort((r, i) => r.index > i.index ? 1 : r.index < i.index ? -1 : 0), e
        };
        Lt.swap = (t, e, r) => {
            let i = t.length, n = r === i ? 0 : r < 0 ? i - 1 : r, s = t[e];
            t[e] = t[n], t[n] = s
        };
        Lt.width = (t, e = 80) => {
            let r = t && t.columns ? t.columns : e;
            return t && typeof t.getWindowSize == "function" && (r = t.getWindowSize()[0]), process.platform === "win32" ? r - 1 : r
        };
        Lt.height = (t, e = 20) => {
            let r = t && t.rows ? t.rows : e;
            return t && typeof t.getWindowSize == "function" && (r = t.getWindowSize()[1]), r
        };
        Lt.wordWrap = (t, e = {}) => {
            if (!t) return t;
            typeof e == "number" && (e = {width: e});
            let {
                indent: r = "", newline: i = `
` + r, width: n = 80
            } = e;
            n -= ((i + r).match(/[^\S\n]/g) || []).length;
            let o = `.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`, a = t.trim(), l = new RegExp(o, "g"),
                c = a.match(l) || [];
            return c = c.map(u => u.replace(/\n$/, "")), e.padEnd && (c = c.map(u => u.padEnd(n, " "))), e.padStart && (c = c.map(u => u.padStart(n, " "))), r + c.join(i)
        };
        Lt.unmute = t => {
            let e = t.stack.find(i => Js.keys.color.includes(i));
            return e ? Js[e] : t.stack.find(i => i.slice(2) === "bg") ? Js[e.slice(2)] : i => i
        };
        Lt.pascal = t => t ? t[0].toUpperCase() + t.slice(1) : "";
        Lt.inverse = t => {
            if (!t || !t.stack) return t;
            let e = t.stack.find(i => Js.keys.color.includes(i));
            if (e) {
                let i = Js["bg" + Lt.pascal(e)];
                return i ? i.black : t
            }
            let r = t.stack.find(i => i.slice(0, 2) === "bg");
            return r ? Js[r.slice(2).toLowerCase()] || t : Js.none
        };
        Lt.complement = t => {
            if (!t || !t.stack) return t;
            let e = t.stack.find(i => Js.keys.color.includes(i)), r = t.stack.find(i => i.slice(0, 2) === "bg");
            if (e && !r) return Js[Rie[e] || e];
            if (r) {
                let i = r.slice(2).toLowerCase(), n = Rie[i];
                return n && Js["bg" + Lt.pascal(n)] || t
            }
            return Js.none
        };
        Lt.meridiem = t => {
            let e = t.getHours(), r = t.getMinutes(), i = e >= 12 ? "pm" : "am";
            e = e % 12;
            let n = e === 0 ? 12 : e, s = r < 10 ? "0" + r : r;
            return n + ":" + s + " " + i
        };
        Lt.set = (t = {}, e = "", r) => e.split(".").reduce((i, n, s, o) => {
            let a = o.length - 1 > s ? i[n] || {} : r;
            return !Lt.isObject(a) && s < o.length - 1 && (a = {}), i[n] = a
        }, t);
        Lt.get = (t = {}, e = "", r) => {
            let i = t[e] == null ? e.split(".").reduce((n, s) => n && n[s], t) : t[e];
            return i == null ? r : i
        };
        Lt.mixin = (t, e) => {
            if (!z0(t)) return e;
            if (!z0(e)) return t;
            for (let r of Object.keys(e)) {
                let i = Object.getOwnPropertyDescriptor(e, r);
                if (i.hasOwnProperty("value")) if (t.hasOwnProperty(r) && z0(i.value)) {
                    let n = Object.getOwnPropertyDescriptor(t, r);
                    z0(n.value) ? t[r] = Lt.merge({}, t[r], e[r]) : Reflect.defineProperty(t, r, i)
                } else Reflect.defineProperty(t, r, i); else Reflect.defineProperty(t, r, i)
            }
            return t
        };
        Lt.merge = (...t) => {
            let e = {};
            for (let r of t) Lt.mixin(e, r);
            return e
        };
        Lt.mixinEmitter = (t, e) => {
            let r = e.constructor.prototype;
            for (let i of Object.keys(r)) {
                let n = r[i];
                typeof n == "function" ? Lt.define(t, i, n.bind(e)) : Lt.define(t, i, n)
            }
        };
        Lt.onExit = t => {
            let e = (r, i) => {
                Die || (Die = !0, uN.forEach(n => n()), r === !0 && process.exit(128 + i))
            };
            uN.length === 0 && (process.once("SIGTERM", e.bind(null, !0, 15)), process.once("SIGINT", e.bind(null, !0, 2)), process.once("exit", e)), uN.push(t)
        };
        Lt.define = (t, e, r) => {
            Reflect.defineProperty(t, e, {value: r})
        };
        Lt.defineExport = (t, e, r) => {
            let i;
            Reflect.defineProperty(t, e, {
                enumerable: !0, configurable: !0, set(n) {
                    i = n
                }, get() {
                    return i ? i() : r()
                }
            })
        }
    });
    var Fie = w(_f => {
        "use strict";
        _f.ctrl = {
            a: "first",
            b: "backward",
            c: "cancel",
            d: "deleteForward",
            e: "last",
            f: "forward",
            g: "reset",
            i: "tab",
            k: "cutForward",
            l: "reset",
            n: "newItem",
            m: "cancel",
            j: "submit",
            p: "search",
            r: "remove",
            s: "save",
            u: "undo",
            w: "cutLeft",
            x: "toggleCursor",
            v: "paste"
        };
        _f.shift = {up: "shiftUp", down: "shiftDown", left: "shiftLeft", right: "shiftRight", tab: "prev"};
        _f.fn = {up: "pageUp", down: "pageDown", left: "pageLeft", right: "pageRight", delete: "deleteForward"};
        _f.option = {b: "backward", f: "forward", d: "cutRight", left: "cutLeft", up: "altUp", down: "altDown"};
        _f.keys = {
            pageup: "pageUp",
            pagedown: "pageDown",
            home: "home",
            end: "end",
            cancel: "cancel",
            delete: "deleteForward",
            backspace: "delete",
            down: "down",
            enter: "submit",
            escape: "cancel",
            left: "left",
            space: "space",
            number: "number",
            return: "submit",
            right: "right",
            tab: "next",
            up: "up"
        }
    });
    var Tie = w((kpt, Nie) => {
        "use strict";
        var Lie = require("readline"), fqe = Fie(), hqe = /^(?:\x1b)([a-zA-Z0-9])$/,
            pqe = /^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/, dqe = {
                OP: "f1",
                OQ: "f2",
                OR: "f3",
                OS: "f4",
                "[11~": "f1",
                "[12~": "f2",
                "[13~": "f3",
                "[14~": "f4",
                "[[A": "f1",
                "[[B": "f2",
                "[[C": "f3",
                "[[D": "f4",
                "[[E": "f5",
                "[15~": "f5",
                "[17~": "f6",
                "[18~": "f7",
                "[19~": "f8",
                "[20~": "f9",
                "[21~": "f10",
                "[23~": "f11",
                "[24~": "f12",
                "[A": "up",
                "[B": "down",
                "[C": "right",
                "[D": "left",
                "[E": "clear",
                "[F": "end",
                "[H": "home",
                OA: "up",
                OB: "down",
                OC: "right",
                OD: "left",
                OE: "clear",
                OF: "end",
                OH: "home",
                "[1~": "home",
                "[2~": "insert",
                "[3~": "delete",
                "[4~": "end",
                "[5~": "pageup",
                "[6~": "pagedown",
                "[[5~": "pageup",
                "[[6~": "pagedown",
                "[7~": "home",
                "[8~": "end",
                "[a": "up",
                "[b": "down",
                "[c": "right",
                "[d": "left",
                "[e": "clear",
                "[2$": "insert",
                "[3$": "delete",
                "[5$": "pageup",
                "[6$": "pagedown",
                "[7$": "home",
                "[8$": "end",
                Oa: "up",
                Ob: "down",
                Oc: "right",
                Od: "left",
                Oe: "clear",
                "[2^": "insert",
                "[3^": "delete",
                "[5^": "pageup",
                "[6^": "pagedown",
                "[7^": "home",
                "[8^": "end",
                "[Z": "tab"
            };

        function Cqe(t) {
            return ["[a", "[b", "[c", "[d", "[e", "[2$", "[3$", "[5$", "[6$", "[7$", "[8$", "[Z"].includes(t)
        }

        function mqe(t) {
            return ["Oa", "Ob", "Oc", "Od", "Oe", "[2^", "[3^", "[5^", "[6^", "[7^", "[8^"].includes(t)
        }

        var _0 = (t = "", e = {}) => {
            let r, i = N({name: e.name, ctrl: !1, meta: !1, shift: !1, option: !1, sequence: t, raw: t}, e);
            if (Buffer.isBuffer(t) ? t[0] > 127 && t[1] === void 0 ? (t[0] -= 128, t = "" + String(t)) : t = String(t) : t !== void 0 && typeof t != "string" ? t = String(t) : t || (t = i.sequence || ""), i.sequence = i.sequence || t || i.name, t === "\r") i.raw = void 0, i.name = "return"; else if (t === `
`) i.name = "enter"; else if (t === "	") i.name = "tab"; else if (t === "\b" || t === "\x7F" || t === "\x7F" || t === "\b") i.name = "backspace", i.meta = t.charAt(0) === ""; else if (t === "" || t === "") i.name = "escape", i.meta = t.length === 2; else if (t === " " || t === " ") i.name = "space", i.meta = t.length === 2; else if (t <= "") i.name = String.fromCharCode(t.charCodeAt(0) + "a".charCodeAt(0) - 1), i.ctrl = !0; else if (t.length === 1 && t >= "0" && t <= "9") i.name = "number"; else if (t.length === 1 && t >= "a" && t <= "z") i.name = t; else if (t.length === 1 && t >= "A" && t <= "Z") i.name = t.toLowerCase(), i.shift = !0; else if (r = hqe.exec(t)) i.meta = !0, i.shift = /^[A-Z]$/.test(r[1]); else if (r = pqe.exec(t)) {
                let n = [...t];
                n[0] === "" && n[1] === "" && (i.option = !0);
                let s = [r[1], r[2], r[4], r[6]].filter(Boolean).join(""), o = (r[3] || r[5] || 1) - 1;
                i.ctrl = !!(o & 4), i.meta = !!(o & 10), i.shift = !!(o & 1), i.code = s, i.name = dqe[s], i.shift = Cqe(s) || i.shift, i.ctrl = mqe(s) || i.ctrl
            }
            return i
        };
        _0.listen = (t = {}, e) => {
            let {stdin: r} = t;
            if (!r || r !== process.stdin && !r.isTTY) throw new Error("Invalid stream passed");
            let i = Lie.createInterface({terminal: !0, input: r});
            Lie.emitKeypressEvents(r, i);
            let n = (a, l) => e(a, _0(a, l), i), s = r.isRaw;
            return r.isTTY && r.setRawMode(!0), r.on("keypress", n), i.resume(), () => {
                r.isTTY && r.setRawMode(s), r.removeListener("keypress", n), i.pause(), i.close()
            }
        };
        _0.action = (t, e, r) => {
            let i = N(N({}, fqe), r);
            return e.ctrl ? (e.action = i.ctrl[e.name], e) : e.option && i.option ? (e.action = i.option[e.name], e) : e.shift ? (e.action = i.shift[e.name], e) : (e.action = i.keys[e.name], e)
        };
        Nie.exports = _0
    });
    var Mie = w((xpt, Oie) => {
        "use strict";
        Oie.exports = t => {
            t.timers = t.timers || {};
            let e = t.options.timers;
            if (!!e) for (let r of Object.keys(e)) {
                let i = e[r];
                typeof i == "number" && (i = {interval: i}), Eqe(t, r, i)
            }
        };

        function Eqe(t, e, r = {}) {
            let i = t.timers[e] = {name: e, start: Date.now(), ms: 0, tick: 0}, n = r.interval || 120;
            i.frames = r.frames || [], i.loading = !0;
            let s = setInterval(() => {
                i.ms = Date.now() - i.start, i.tick++, t.render()
            }, n);
            return i.stop = () => {
                i.loading = !1, clearInterval(s)
            }, Reflect.defineProperty(i, "interval", {value: s}), t.once("close", () => i.stop()), i.stop
        }
    });
    var Hie = w((Ppt, Kie) => {
        "use strict";
        var {define: Iqe, width: yqe} = Xi(), Uie = class {
            constructor(e) {
                let r = e.options;
                Iqe(this, "_prompt", e), this.type = e.type, this.name = e.name, this.message = "", this.header = "", this.footer = "", this.error = "", this.hint = "", this.input = "", this.cursor = 0, this.index = 0, this.lines = 0, this.tick = 0, this.prompt = "", this.buffer = "", this.width = yqe(r.stdout || process.stdout), Object.assign(this, r), this.name = this.name || this.message, this.message = this.message || this.name, this.symbols = e.symbols, this.styles = e.styles, this.required = new Set, this.cancelled = !1, this.submitted = !1
            }

            clone() {
                let e = N({}, this);
                return e.status = this.status, e.buffer = Buffer.from(e.buffer), delete e.clone, e
            }

            set color(e) {
                this._color = e
            }

            get color() {
                let e = this.prompt.styles;
                if (this.cancelled) return e.cancelled;
                if (this.submitted) return e.submitted;
                let r = this._color || e[this.status];
                return typeof r == "function" ? r : e.pending
            }

            set loading(e) {
                this._loading = e
            }

            get loading() {
                return typeof this._loading == "boolean" ? this._loading : this.loadingChoices ? "choices" : !1
            }

            get status() {
                return this.cancelled ? "cancelled" : this.submitted ? "submitted" : "pending"
            }
        };
        Kie.exports = Uie
    });
    var jie = w((Dpt, Gie) => {
        "use strict";
        var gN = Xi(), Fi = mo(), fN = {
            default: Fi.noop,
            noop: Fi.noop,
            set inverse(t) {
                this._inverse = t
            },
            get inverse() {
                return this._inverse || gN.inverse(this.primary)
            },
            set complement(t) {
                this._complement = t
            },
            get complement() {
                return this._complement || gN.complement(this.primary)
            },
            primary: Fi.cyan,
            success: Fi.green,
            danger: Fi.magenta,
            strong: Fi.bold,
            warning: Fi.yellow,
            muted: Fi.dim,
            disabled: Fi.gray,
            dark: Fi.dim.gray,
            underline: Fi.underline,
            set info(t) {
                this._info = t
            },
            get info() {
                return this._info || this.primary
            },
            set em(t) {
                this._em = t
            },
            get em() {
                return this._em || this.primary.underline
            },
            set heading(t) {
                this._heading = t
            },
            get heading() {
                return this._heading || this.muted.underline
            },
            set pending(t) {
                this._pending = t
            },
            get pending() {
                return this._pending || this.primary
            },
            set submitted(t) {
                this._submitted = t
            },
            get submitted() {
                return this._submitted || this.success
            },
            set cancelled(t) {
                this._cancelled = t
            },
            get cancelled() {
                return this._cancelled || this.danger
            },
            set typing(t) {
                this._typing = t
            },
            get typing() {
                return this._typing || this.dim
            },
            set placeholder(t) {
                this._placeholder = t
            },
            get placeholder() {
                return this._placeholder || this.primary.dim
            },
            set highlight(t) {
                this._highlight = t
            },
            get highlight() {
                return this._highlight || this.inverse
            }
        };
        fN.merge = (t = {}) => {
            t.styles && typeof t.styles.enabled == "boolean" && (Fi.enabled = t.styles.enabled), t.styles && typeof t.styles.visible == "boolean" && (Fi.visible = t.styles.visible);
            let e = gN.merge({}, fN, t.styles);
            delete e.merge;
            for (let r of Object.keys(Fi)) e.hasOwnProperty(r) || Reflect.defineProperty(e, r, {get: () => Fi[r]});
            for (let r of Object.keys(Fi.styles)) e.hasOwnProperty(r) || Reflect.defineProperty(e, r, {get: () => Fi[r]});
            return e
        };
        Gie.exports = fN
    });
    var qie = w((Rpt, Yie) => {
        "use strict";
        var hN = process.platform === "win32", mA = mo(), wqe = Xi(), pN = ie(N({}, mA.symbols), {
            upDownDoubleArrow: "\u21D5",
            upDownDoubleArrow2: "\u2B0D",
            upDownArrow: "\u2195",
            asterisk: "*",
            asterism: "\u2042",
            bulletWhite: "\u25E6",
            electricArrow: "\u2301",
            ellipsisLarge: "\u22EF",
            ellipsisSmall: "\u2026",
            fullBlock: "\u2588",
            identicalTo: "\u2261",
            indicator: mA.symbols.check,
            leftAngle: "\u2039",
            mark: "\u203B",
            minus: "\u2212",
            multiplication: "\xD7",
            obelus: "\xF7",
            percent: "%",
            pilcrow: "\xB6",
            pilcrow2: "\u2761",
            pencilUpRight: "\u2710",
            pencilDownRight: "\u270E",
            pencilRight: "\u270F",
            plus: "+",
            plusMinus: "\xB1",
            pointRight: "\u261E",
            rightAngle: "\u203A",
            section: "\xA7",
            hexagon: {off: "\u2B21", on: "\u2B22", disabled: "\u2B22"},
            ballot: {on: "\u2611", off: "\u2610", disabled: "\u2612"},
            stars: {on: "\u2605", off: "\u2606", disabled: "\u2606"},
            folder: {on: "\u25BC", off: "\u25B6", disabled: "\u25B6"},
            prefix: {pending: mA.symbols.question, submitted: mA.symbols.check, cancelled: mA.symbols.cross},
            separator: {pending: mA.symbols.pointerSmall, submitted: mA.symbols.middot, cancelled: mA.symbols.middot},
            radio: {off: hN ? "( )" : "\u25EF", on: hN ? "(*)" : "\u25C9", disabled: hN ? "(|)" : "\u24BE"},
            numbers: ["\u24EA", "\u2460", "\u2461", "\u2462", "\u2463", "\u2464", "\u2465", "\u2466", "\u2467", "\u2468", "\u2469", "\u246A", "\u246B", "\u246C", "\u246D", "\u246E", "\u246F", "\u2470", "\u2471", "\u2472", "\u2473", "\u3251", "\u3252", "\u3253", "\u3254", "\u3255", "\u3256", "\u3257", "\u3258", "\u3259", "\u325A", "\u325B", "\u325C", "\u325D", "\u325E", "\u325F", "\u32B1", "\u32B2", "\u32B3", "\u32B4", "\u32B5", "\u32B6", "\u32B7", "\u32B8", "\u32B9", "\u32BA", "\u32BB", "\u32BC", "\u32BD", "\u32BE", "\u32BF"]
        });
        pN.merge = t => {
            let e = wqe.merge({}, mA.symbols, pN, t.symbols);
            return delete e.merge, e
        };
        Yie.exports = pN
    });
    var Wie = w((Fpt, Jie) => {
        "use strict";
        var Bqe = jie(), bqe = qie(), Qqe = Xi();
        Jie.exports = t => {
            t.options = Qqe.merge({}, t.options.theme, t.options), t.symbols = bqe.merge(t.options), t.styles = Bqe.merge(t.options)
        }
    });
    var Zie = w((zie, _ie) => {
        "use strict";
        var Vie = process.env.TERM_PROGRAM === "Apple_Terminal", vqe = mo(), dN = Xi(), Eo = _ie.exports = zie,
            Nr = "[", Xie = "\x07", CN = !1, kl = Eo.code = {
                bell: Xie,
                beep: Xie,
                beginning: `${Nr}G`,
                down: `${Nr}J`,
                esc: Nr,
                getPosition: `${Nr}6n`,
                hide: `${Nr}?25l`,
                line: `${Nr}2K`,
                lineEnd: `${Nr}K`,
                lineStart: `${Nr}1K`,
                restorePosition: Nr + (Vie ? "8" : "u"),
                savePosition: Nr + (Vie ? "7" : "s"),
                screen: `${Nr}2J`,
                show: `${Nr}?25h`,
                up: `${Nr}1J`
            }, mu = Eo.cursor = {
                get hidden() {
                    return CN
                },
                hide() {
                    return CN = !0, kl.hide
                },
                show() {
                    return CN = !1, kl.show
                },
                forward: (t = 1) => `${Nr}${t}C`,
                backward: (t = 1) => `${Nr}${t}D`,
                nextLine: (t = 1) => `${Nr}E`.repeat(t),
                prevLine: (t = 1) => `${Nr}F`.repeat(t),
                up: (t = 1) => t ? `${Nr}${t}A` : "",
                down: (t = 1) => t ? `${Nr}${t}B` : "",
                right: (t = 1) => t ? `${Nr}${t}C` : "",
                left: (t = 1) => t ? `${Nr}${t}D` : "",
                to(t, e) {
                    return e ? `${Nr}${e + 1};${t + 1}H` : `${Nr}${t + 1}G`
                },
                move(t = 0, e = 0) {
                    let r = "";
                    return r += t < 0 ? mu.left(-t) : t > 0 ? mu.right(t) : "", r += e < 0 ? mu.up(-e) : e > 0 ? mu.down(e) : "", r
                },
                restore(t = {}) {
                    let {after: e, cursor: r, initial: i, input: n, prompt: s, size: o, value: a} = t;
                    if (i = dN.isPrimitive(i) ? String(i) : "", n = dN.isPrimitive(n) ? String(n) : "", a = dN.isPrimitive(a) ? String(a) : "", o) {
                        let l = Eo.cursor.up(o) + Eo.cursor.to(s.length), c = n.length - r;
                        return c > 0 && (l += Eo.cursor.left(c)), l
                    }
                    if (a || e) {
                        let l = !n && !!i ? -i.length : -n.length + r;
                        return e && (l -= e.length), n === "" && i && !s.includes(i) && (l += i.length), Eo.cursor.move(l)
                    }
                }
            }, mN = Eo.erase = {
                screen: kl.screen,
                up: kl.up,
                down: kl.down,
                line: kl.line,
                lineEnd: kl.lineEnd,
                lineStart: kl.lineStart,
                lines(t) {
                    let e = "";
                    for (let r = 0; r < t; r++) e += Eo.erase.line + (r < t - 1 ? Eo.cursor.up(1) : "");
                    return t && (e += Eo.code.beginning), e
                }
            };
        Eo.clear = (t = "", e = process.stdout.columns) => {
            if (!e) return mN.line + mu.to(0);
            let r = s => [...vqe.unstyle(s)].length, i = t.split(/\r?\n/), n = 0;
            for (let s of i) n += 1 + Math.floor(Math.max(r(s) - 1, 0) / e);
            return (mN.line + mu.prevLine()).repeat(n - 1) + mN.line + mu.to(0)
        }
    });
    var Vf = w((Npt, $ie) => {
        "use strict";
        var Sqe = require("events"), ene = mo(), EN = Tie(), kqe = Mie(), xqe = Hie(), Pqe = Wie(), Tn = Xi(),
            Eu = Zie(), V0 = class extends Sqe {
                constructor(e = {}) {
                    super();
                    this.name = e.name, this.type = e.type, this.options = e, Pqe(this), kqe(this), this.state = new xqe(this), this.initial = [e.initial, e.default].find(r => r != null), this.stdout = e.stdout || process.stdout, this.stdin = e.stdin || process.stdin, this.scale = e.scale || 1, this.term = this.options.term || process.env.TERM_PROGRAM, this.margin = Rqe(this.options.margin), this.setMaxListeners(0), Dqe(this)
                }

                async keypress(e, r = {}) {
                    this.keypressed = !0;
                    let i = EN.action(e, EN(e, r), this.options.actions);
                    this.state.keypress = i, this.emit("keypress", e, i), this.emit("state", this.state.clone());
                    let n = this.options[i.action] || this[i.action] || this.dispatch;
                    if (typeof n == "function") return await n.call(this, e, i);
                    this.alert()
                }

                alert() {
                    delete this.state.alert, this.options.show === !1 ? this.emit("alert") : this.stdout.write(Eu.code.beep)
                }

                cursorHide() {
                    this.stdout.write(Eu.cursor.hide()), Tn.onExit(() => this.cursorShow())
                }

                cursorShow() {
                    this.stdout.write(Eu.cursor.show())
                }

                write(e) {
                    !e || (this.stdout && this.state.show !== !1 && this.stdout.write(e), this.state.buffer += e)
                }

                clear(e = 0) {
                    let r = this.state.buffer;
                    this.state.buffer = "", !(!r && !e || this.options.show === !1) && this.stdout.write(Eu.cursor.down(e) + Eu.clear(r, this.width))
                }

                restore() {
                    if (this.state.closed || this.options.show === !1) return;
                    let {prompt: e, after: r, rest: i} = this.sections(), {
                            cursor: n,
                            initial: s = "",
                            input: o = "",
                            value: a = ""
                        } = this, l = this.state.size = i.length,
                        c = {after: r, cursor: n, initial: s, input: o, prompt: e, size: l, value: a},
                        u = Eu.cursor.restore(c);
                    u && this.stdout.write(u)
                }

                sections() {
                    let {buffer: e, input: r, prompt: i} = this.state;
                    i = ene.unstyle(i);
                    let n = ene.unstyle(e), s = n.indexOf(i), o = n.slice(0, s), l = n.slice(s).split(`
`), c = l[0], u = l[l.length - 1], f = (i + (r ? " " + r : "")).length, h = f < c.length ? c.slice(f + 1) : "";
                    return {header: o, prompt: c, after: h, rest: l.slice(1), last: u}
                }

                async submit() {
                    this.state.submitted = !0, this.state.validating = !0, this.options.onSubmit && await this.options.onSubmit.call(this, this.name, this.value, this);
                    let e = this.state.error || await this.validate(this.value, this.state);
                    if (e !== !0) {
                        let r = `
` + this.symbols.pointer + " ";
                        typeof e == "string" ? r += e.trim() : r += "Invalid input", this.state.error = `
` + this.styles.danger(r), this.state.submitted = !1, await this.render(), await this.alert(), this.state.validating = !1, this.state.error = void 0;
                        return
                    }
                    this.state.validating = !1, await this.render(), await this.close(), this.value = await this.result(this.value), this.emit("submit", this.value)
                }

                async cancel(e) {
                    this.state.cancelled = this.state.submitted = !0, await this.render(), await this.close(), typeof this.options.onCancel == "function" && await this.options.onCancel.call(this, this.name, this.value, this), this.emit("cancel", await this.error(e))
                }

                async close() {
                    this.state.closed = !0;
                    try {
                        let e = this.sections(), r = Math.ceil(e.prompt.length / this.width);
                        e.rest && this.write(Eu.cursor.down(e.rest.length)), this.write(`
`.repeat(r))
                    } catch (e) {
                    }
                    this.emit("close")
                }

                start() {
                    !this.stop && this.options.show !== !1 && (this.stop = EN.listen(this, this.keypress.bind(this)), this.once("close", this.stop))
                }

                async skip() {
                    return this.skipped = this.options.skip === !0, typeof this.options.skip == "function" && (this.skipped = await this.options.skip.call(this, this.name, this.value)), this.skipped
                }

                async initialize() {
                    let {format: e, options: r, result: i} = this;
                    if (this.format = () => e.call(this, this.value), this.result = () => i.call(this, this.value), typeof r.initial == "function" && (this.initial = await r.initial.call(this, this)), typeof r.onRun == "function" && await r.onRun.call(this, this), typeof r.onSubmit == "function") {
                        let n = r.onSubmit.bind(this), s = this.submit.bind(this);
                        delete this.options.onSubmit, this.submit = async () => (await n(this.name, this.value, this), s())
                    }
                    await this.start(), await this.render()
                }

                render() {
                    throw new Error("expected prompt to have a custom render method")
                }

                run() {
                    return new Promise(async (e, r) => {
                        if (this.once("submit", e), this.once("cancel", r), await this.skip()) return this.render = () => {
                        }, this.submit();
                        await this.initialize(), this.emit("run")
                    })
                }

                async element(e, r, i) {
                    let {options: n, state: s, symbols: o, timers: a} = this, l = a && a[e];
                    s.timer = l;
                    let c = n[e] || s[e] || o[e], u = r && r[e] != null ? r[e] : await c;
                    if (u === "") return u;
                    let g = await this.resolve(u, s, r, i);
                    return !g && r && r[e] ? this.resolve(c, s, r, i) : g
                }

                async prefix() {
                    let e = await this.element("prefix") || this.symbols, r = this.timers && this.timers.prefix,
                        i = this.state;
                    return i.timer = r, Tn.isObject(e) && (e = e[i.status] || e.pending), Tn.hasColor(e) ? e : (this.styles[i.status] || this.styles.pending)(e)
                }

                async message() {
                    let e = await this.element("message");
                    return Tn.hasColor(e) ? e : this.styles.strong(e)
                }

                async separator() {
                    let e = await this.element("separator") || this.symbols, r = this.timers && this.timers.separator,
                        i = this.state;
                    i.timer = r;
                    let n = e[i.status] || e.pending || i.separator, s = await this.resolve(n, i);
                    return Tn.isObject(s) && (s = s[i.status] || s.pending), Tn.hasColor(s) ? s : this.styles.muted(s)
                }

                async pointer(e, r) {
                    let i = await this.element("pointer", e, r);
                    if (typeof i == "string" && Tn.hasColor(i)) return i;
                    if (i) {
                        let n = this.styles, s = this.index === r, o = s ? n.primary : c => c,
                            a = await this.resolve(i[s ? "on" : "off"] || i, this.state), l = Tn.hasColor(a) ? a : o(a);
                        return s ? l : " ".repeat(a.length)
                    }
                }

                async indicator(e, r) {
                    let i = await this.element("indicator", e, r);
                    if (typeof i == "string" && Tn.hasColor(i)) return i;
                    if (i) {
                        let n = this.styles, s = e.enabled === !0, o = s ? n.success : n.dark, a = i[s ? "on" : "off"] || i;
                        return Tn.hasColor(a) ? a : o(a)
                    }
                    return ""
                }

                body() {
                    return null
                }

                footer() {
                    if (this.state.status === "pending") return this.element("footer")
                }

                header() {
                    if (this.state.status === "pending") return this.element("header")
                }

                async hint() {
                    if (this.state.status === "pending" && !this.isValue(this.state.input)) {
                        let e = await this.element("hint");
                        return Tn.hasColor(e) ? e : this.styles.muted(e)
                    }
                }

                error(e) {
                    return this.state.submitted ? "" : e || this.state.error
                }

                format(e) {
                    return e
                }

                result(e) {
                    return e
                }

                validate(e) {
                    return this.options.required === !0 ? this.isValue(e) : !0
                }

                isValue(e) {
                    return e != null && e !== ""
                }

                resolve(e, ...r) {
                    return Tn.resolve(this, e, ...r)
                }

                get base() {
                    return V0.prototype
                }

                get style() {
                    return this.styles[this.state.status]
                }

                get height() {
                    return this.options.rows || Tn.height(this.stdout, 25)
                }

                get width() {
                    return this.options.columns || Tn.width(this.stdout, 80)
                }

                get size() {
                    return {width: this.width, height: this.height}
                }

                set cursor(e) {
                    this.state.cursor = e
                }

                get cursor() {
                    return this.state.cursor
                }

                set input(e) {
                    this.state.input = e
                }

                get input() {
                    return this.state.input
                }

                set value(e) {
                    this.state.value = e
                }

                get value() {
                    let {input: e, value: r} = this.state, i = [r, e].find(this.isValue.bind(this));
                    return this.isValue(i) ? i : this.initial
                }

                static get prompt() {
                    return e => new this(e).run()
                }
            };

        function Dqe(t) {
            let e = n => t[n] === void 0 || typeof t[n] == "function",
                r = ["actions", "choices", "initial", "margin", "roles", "styles", "symbols", "theme", "timers", "value"],
                i = ["body", "footer", "error", "header", "hint", "indicator", "message", "prefix", "separator", "skip"];
            for (let n of Object.keys(t.options)) {
                if (r.includes(n) || /^on[A-Z]/.test(n)) continue;
                let s = t.options[n];
                typeof s == "function" && e(n) ? i.includes(n) || (t[n] = s.bind(t)) : typeof t[n] != "function" && (t[n] = s)
            }
        }

        function Rqe(t) {
            typeof t == "number" && (t = [t, t, t, t]);
            let e = [].concat(t || []), r = n => n % 2 == 0 ? `
` : " ", i = [];
            for (let n = 0; n < 4; n++) {
                let s = r(n);
                e[n] ? i.push(s.repeat(e[n])) : i.push("")
            }
            return i
        }

        $ie.exports = V0
    });
    var ine = w((Lpt, tne) => {
        "use strict";
        var Fqe = Xi(), rne = {
            default(t, e) {
                return e
            }, checkbox(t, e) {
                throw new Error("checkbox role is not implemented yet")
            }, editable(t, e) {
                throw new Error("editable role is not implemented yet")
            }, expandable(t, e) {
                throw new Error("expandable role is not implemented yet")
            }, heading(t, e) {
                return e.disabled = "", e.indicator = [e.indicator, " "].find(r => r != null), e.message = e.message || "", e
            }, input(t, e) {
                throw new Error("input role is not implemented yet")
            }, option(t, e) {
                return rne.default(t, e)
            }, radio(t, e) {
                throw new Error("radio role is not implemented yet")
            }, separator(t, e) {
                return e.disabled = "", e.indicator = [e.indicator, " "].find(r => r != null), e.message = e.message || t.symbols.line.repeat(5), e
            }, spacer(t, e) {
                return e
            }
        };
        tne.exports = (t, e = {}) => {
            let r = Fqe.merge({}, rne, e.roles);
            return r[t] || r.default
        }
    });
    var ZC = w((Tpt, nne) => {
        "use strict";
        var Nqe = mo(), Lqe = Vf(), Tqe = ine(), X0 = Xi(), {
            reorder: IN,
            scrollUp: Oqe,
            scrollDown: Mqe,
            isObject: sne,
            swap: Kqe
        } = X0, one = class extends Lqe {
            constructor(e) {
                super(e);
                this.cursorHide(), this.maxSelected = e.maxSelected || Infinity, this.multiple = e.multiple || !1, this.initial = e.initial || 0, this.delay = e.delay || 0, this.longest = 0, this.num = ""
            }

            async initialize() {
                typeof this.options.initial == "function" && (this.initial = await this.options.initial.call(this)), await this.reset(!0), await super.initialize()
            }

            async reset() {
                let {choices: e, initial: r, autofocus: i, suggest: n} = this.options;
                if (this.state._choices = [], this.state.choices = [], this.choices = await Promise.all(await this.toChoices(e)), this.choices.forEach(s => s.enabled = !1), typeof n != "function" && this.selectable.length === 0) throw new Error("At least one choice must be selectable");
                sne(r) && (r = Object.keys(r)), Array.isArray(r) ? (i != null && (this.index = this.findIndex(i)), r.forEach(s => this.enable(this.find(s))), await this.render()) : (i != null && (r = i), typeof r == "string" && (r = this.findIndex(r)), typeof r == "number" && r > -1 && (this.index = Math.max(0, Math.min(r, this.choices.length)), this.enable(this.find(this.index)))), this.isDisabled(this.focused) && await this.down()
            }

            async toChoices(e, r) {
                this.state.loadingChoices = !0;
                let i = [], n = 0, s = async (o, a) => {
                    typeof o == "function" && (o = await o.call(this)), o instanceof Promise && (o = await o);
                    for (let l = 0; l < o.length; l++) {
                        let c = o[l] = await this.toChoice(o[l], n++, a);
                        i.push(c), c.choices && await s(c.choices, c)
                    }
                    return i
                };
                return s(e, r).then(o => (this.state.loadingChoices = !1, o))
            }

            async toChoice(e, r, i) {
                if (typeof e == "function" && (e = await e.call(this, this)), e instanceof Promise && (e = await e), typeof e == "string" && (e = {name: e}), e.normalized) return e;
                e.normalized = !0;
                let n = e.value;
                if (e = Tqe(e.role, this.options)(this, e), typeof e.disabled == "string" && !e.hint && (e.hint = e.disabled, e.disabled = !0), e.disabled === !0 && e.hint == null && (e.hint = "(disabled)"), e.index != null) return e;
                e.name = e.name || e.key || e.title || e.value || e.message, e.message = e.message || e.name || "", e.value = [e.value, e.name].find(this.isValue.bind(this)), e.input = "", e.index = r, e.cursor = 0, X0.define(e, "parent", i), e.level = i ? i.level + 1 : 1, e.indent == null && (e.indent = i ? i.indent + "  " : e.indent || ""), e.path = i ? i.path + "." + e.name : e.name, e.enabled = !!(this.multiple && !this.isDisabled(e) && (e.enabled || this.isSelected(e))), this.isDisabled(e) || (this.longest = Math.max(this.longest, Nqe.unstyle(e.message).length));
                let o = N({}, e);
                return e.reset = (a = o.input, l = o.value) => {
                    for (let c of Object.keys(o)) e[c] = o[c];
                    e.input = a, e.value = l
                }, n == null && typeof e.initial == "function" && (e.input = await e.initial.call(this, this.state, e, r)), e
            }

            async onChoice(e, r) {
                this.emit("choice", e, r, this), typeof e.onChoice == "function" && await e.onChoice.call(this, this.state, e, r)
            }

            async addChoice(e, r, i) {
                let n = await this.toChoice(e, r, i);
                return this.choices.push(n), this.index = this.choices.length - 1, this.limit = this.choices.length, n
            }

            async newItem(e, r, i) {
                let n = N({name: "New choice name?", editable: !0, newChoice: !0}, e),
                    s = await this.addChoice(n, r, i);
                return s.updateChoice = () => {
                    delete s.newChoice, s.name = s.message = s.input, s.input = "", s.cursor = 0
                }, this.render()
            }

            indent(e) {
                return e.indent == null ? e.level > 1 ? "  ".repeat(e.level - 1) : "" : e.indent
            }

            dispatch(e, r) {
                if (this.multiple && this[r.name]) return this[r.name]();
                this.alert()
            }

            focus(e, r) {
                return typeof r != "boolean" && (r = e.enabled), r && !e.enabled && this.selected.length >= this.maxSelected ? this.alert() : (this.index = e.index, e.enabled = r && !this.isDisabled(e), e)
            }

            space() {
                return this.multiple ? (this.toggle(this.focused), this.render()) : this.alert()
            }

            a() {
                if (this.maxSelected < this.choices.length) return this.alert();
                let e = this.selectable.every(r => r.enabled);
                return this.choices.forEach(r => r.enabled = !e), this.render()
            }

            i() {
                return this.choices.length - this.selected.length > this.maxSelected ? this.alert() : (this.choices.forEach(e => e.enabled = !e.enabled), this.render())
            }

            g(e = this.focused) {
                return this.choices.some(r => !!r.parent) ? (this.toggle(e.parent && !e.choices ? e.parent : e), this.render()) : this.a()
            }

            toggle(e, r) {
                if (!e.enabled && this.selected.length >= this.maxSelected) return this.alert();
                typeof r != "boolean" && (r = !e.enabled), e.enabled = r, e.choices && e.choices.forEach(n => this.toggle(n, r));
                let i = e.parent;
                for (; i;) {
                    let n = i.choices.filter(s => this.isDisabled(s));
                    i.enabled = n.every(s => s.enabled === !0), i = i.parent
                }
                return ane(this, this.choices), this.emit("toggle", e, this), e
            }

            enable(e) {
                return this.selected.length >= this.maxSelected ? this.alert() : (e.enabled = !this.isDisabled(e), e.choices && e.choices.forEach(this.enable.bind(this)), e)
            }

            disable(e) {
                return e.enabled = !1, e.choices && e.choices.forEach(this.disable.bind(this)), e
            }

            number(e) {
                this.num += e;
                let r = i => {
                    let n = Number(i);
                    if (n > this.choices.length - 1) return this.alert();
                    let s = this.focused, o = this.choices.find(a => n === a.index);
                    if (!o.enabled && this.selected.length >= this.maxSelected) return this.alert();
                    if (this.visible.indexOf(o) === -1) {
                        let a = IN(this.choices), l = a.indexOf(o);
                        if (s.index > l) {
                            let c = a.slice(l, l + this.limit), u = a.filter(g => !c.includes(g));
                            this.choices = c.concat(u)
                        } else {
                            let c = l - this.limit + 1;
                            this.choices = a.slice(c).concat(a.slice(0, c))
                        }
                    }
                    return this.index = this.choices.indexOf(o), this.toggle(this.focused), this.render()
                };
                return clearTimeout(this.numberTimeout), new Promise(i => {
                    let n = this.choices.length, s = this.num, o = (a = !1, l) => {
                        clearTimeout(this.numberTimeout), a && (l = r(s)), this.num = "", i(l)
                    };
                    if (s === "0" || s.length === 1 && Number(s + "0") > n) return o(!0);
                    if (Number(s) > n) return o(!1, this.alert());
                    this.numberTimeout = setTimeout(() => o(!0), this.delay)
                })
            }

            home() {
                return this.choices = IN(this.choices), this.index = 0, this.render()
            }

            end() {
                let e = this.choices.length - this.limit, r = IN(this.choices);
                return this.choices = r.slice(e).concat(r.slice(0, e)), this.index = this.limit - 1, this.render()
            }

            first() {
                return this.index = 0, this.render()
            }

            last() {
                return this.index = this.visible.length - 1, this.render()
            }

            prev() {
                return this.visible.length <= 1 ? this.alert() : this.up()
            }

            next() {
                return this.visible.length <= 1 ? this.alert() : this.down()
            }

            right() {
                return this.cursor >= this.input.length ? this.alert() : (this.cursor++, this.render())
            }

            left() {
                return this.cursor <= 0 ? this.alert() : (this.cursor--, this.render())
            }

            up() {
                let e = this.choices.length, r = this.visible.length, i = this.index;
                return this.options.scroll === !1 && i === 0 ? this.alert() : e > r && i === 0 ? this.scrollUp() : (this.index = (i - 1 % e + e) % e, this.isDisabled() ? this.up() : this.render())
            }

            down() {
                let e = this.choices.length, r = this.visible.length, i = this.index;
                return this.options.scroll === !1 && i === r - 1 ? this.alert() : e > r && i === r - 1 ? this.scrollDown() : (this.index = (i + 1) % e, this.isDisabled() ? this.down() : this.render())
            }

            scrollUp(e = 0) {
                return this.choices = Oqe(this.choices), this.index = e, this.isDisabled() ? this.up() : this.render()
            }

            scrollDown(e = this.visible.length - 1) {
                return this.choices = Mqe(this.choices), this.index = e, this.isDisabled() ? this.down() : this.render()
            }

            async shiftUp() {
                if (this.options.sort === !0) {
                    this.sorting = !0, this.swap(this.index - 1), await this.up(), this.sorting = !1;
                    return
                }
                return this.scrollUp(this.index)
            }

            async shiftDown() {
                if (this.options.sort === !0) {
                    this.sorting = !0, this.swap(this.index + 1), await this.down(), this.sorting = !1;
                    return
                }
                return this.scrollDown(this.index)
            }

            pageUp() {
                return this.visible.length <= 1 ? this.alert() : (this.limit = Math.max(this.limit - 1, 0), this.index = Math.min(this.limit - 1, this.index), this._limit = this.limit, this.isDisabled() ? this.up() : this.render())
            }

            pageDown() {
                return this.visible.length >= this.choices.length ? this.alert() : (this.index = Math.max(0, this.index), this.limit = Math.min(this.limit + 1, this.choices.length), this._limit = this.limit, this.isDisabled() ? this.down() : this.render())
            }

            swap(e) {
                Kqe(this.choices, this.index, e)
            }

            isDisabled(e = this.focused) {
                return e && ["disabled", "collapsed", "hidden", "completing", "readonly"].some(i => e[i] === !0) ? !0 : e && e.role === "heading"
            }

            isEnabled(e = this.focused) {
                if (Array.isArray(e)) return e.every(r => this.isEnabled(r));
                if (e.choices) {
                    let r = e.choices.filter(i => !this.isDisabled(i));
                    return e.enabled && r.every(i => this.isEnabled(i))
                }
                return e.enabled && !this.isDisabled(e)
            }

            isChoice(e, r) {
                return e.name === r || e.index === Number(r)
            }

            isSelected(e) {
                return Array.isArray(this.initial) ? this.initial.some(r => this.isChoice(e, r)) : this.isChoice(e, this.initial)
            }

            map(e = [], r = "value") {
                return [].concat(e || []).reduce((i, n) => (i[n] = this.find(n, r), i), {})
            }

            filter(e, r) {
                let i = (a, l) => [a.name, l].includes(e), n = typeof e == "function" ? e : i,
                    o = (this.options.multiple ? this.state._choices : this.choices).filter(n);
                return r ? o.map(a => a[r]) : o
            }

            find(e, r) {
                if (sne(e)) return r ? e[r] : e;
                let i = (o, a) => [o.name, a].includes(e), n = typeof e == "function" ? e : i, s = this.choices.find(n);
                if (s) return r ? s[r] : s
            }

            findIndex(e) {
                return this.choices.indexOf(this.find(e))
            }

            async submit() {
                let e = this.focused;
                if (!e) return this.alert();
                if (e.newChoice) return e.input ? (e.updateChoice(), this.render()) : this.alert();
                if (this.choices.some(o => o.newChoice)) return this.alert();
                let {reorder: r, sort: i} = this.options, n = this.multiple === !0, s = this.selected;
                return s === void 0 ? this.alert() : (Array.isArray(s) && r !== !1 && i !== !0 && (s = X0.reorder(s)), this.value = n ? s.map(o => o.name) : s.name, super.submit())
            }

            set choices(e = []) {
                this.state._choices = this.state._choices || [], this.state.choices = e;
                for (let r of e) this.state._choices.some(i => i.name === r.name) || this.state._choices.push(r);
                if (!this._initial && this.options.initial) {
                    this._initial = !0;
                    let r = this.initial;
                    if (typeof r == "string" || typeof r == "number") {
                        let i = this.find(r);
                        i && (this.initial = i.index, this.focus(i, !0))
                    }
                }
            }

            get choices() {
                return ane(this, this.state.choices || [])
            }

            set visible(e) {
                this.state.visible = e
            }

            get visible() {
                return (this.state.visible || this.choices).slice(0, this.limit)
            }

            set limit(e) {
                this.state.limit = e
            }

            get limit() {
                let {state: e, options: r, choices: i} = this, n = e.limit || this._limit || r.limit || i.length;
                return Math.min(n, this.height)
            }

            set value(e) {
                super.value = e
            }

            get value() {
                return typeof super.value != "string" && super.value === this.initial ? this.input : super.value
            }

            set index(e) {
                this.state.index = e
            }

            get index() {
                return Math.max(0, this.state ? this.state.index : 0)
            }

            get enabled() {
                return this.filter(this.isEnabled.bind(this))
            }

            get focused() {
                let e = this.choices[this.index];
                return e && this.state.submitted && this.multiple !== !0 && (e.enabled = !0), e
            }

            get selectable() {
                return this.choices.filter(e => !this.isDisabled(e))
            }

            get selected() {
                return this.multiple ? this.enabled : this.focused
            }
        };

        function ane(t, e) {
            if (e instanceof Promise) return e;
            if (typeof e == "function") {
                if (X0.isAsyncFn(e)) return e;
                e = e.call(t, t)
            }
            for (let r of e) {
                if (Array.isArray(r.choices)) {
                    let i = r.choices.filter(n => !t.isDisabled(n));
                    r.enabled = i.every(n => n.enabled === !0)
                }
                t.isDisabled(r) === !0 && delete r.enabled
            }
            return e
        }

        nne.exports = one
    });
    var xl = w((Opt, Ane) => {
        "use strict";
        var Uqe = ZC(), yN = Xi(), lne = class extends Uqe {
            constructor(e) {
                super(e);
                this.emptyError = this.options.emptyError || "No items were selected"
            }

            async dispatch(e, r) {
                if (this.multiple) return this[r.name] ? await this[r.name](e, r) : await super.dispatch(e, r);
                this.alert()
            }

            separator() {
                if (this.options.separator) return super.separator();
                let e = this.styles.muted(this.symbols.ellipsis);
                return this.state.submitted ? super.separator() : e
            }

            pointer(e, r) {
                return !this.multiple || this.options.pointer ? super.pointer(e, r) : ""
            }

            indicator(e, r) {
                return this.multiple ? super.indicator(e, r) : ""
            }

            choiceMessage(e, r) {
                let i = this.resolve(e.message, this.state, e, r);
                return e.role === "heading" && !yN.hasColor(i) && (i = this.styles.strong(i)), this.resolve(i, this.state, e, r)
            }

            choiceSeparator() {
                return ":"
            }

            async renderChoice(e, r) {
                await this.onChoice(e, r);
                let i = this.index === r, n = await this.pointer(e, r), s = await this.indicator(e, r) + (e.pad || ""),
                    o = await this.resolve(e.hint, this.state, e, r);
                o && !yN.hasColor(o) && (o = this.styles.muted(o));
                let a = this.indent(e), l = await this.choiceMessage(e, r),
                    c = () => [this.margin[3], a + n + s, l, this.margin[1], o].filter(Boolean).join(" ");
                return e.role === "heading" ? c() : e.disabled ? (yN.hasColor(l) || (l = this.styles.disabled(l)), c()) : (i && (l = this.styles.em(l)), c())
            }

            async renderChoices() {
                if (this.state.loading === "choices") return this.styles.warning("Loading choices");
                if (this.state.submitted) return "";
                let e = this.visible.map(async (s, o) => await this.renderChoice(s, o)), r = await Promise.all(e);
                r.length || r.push(this.styles.danger("No matching choices"));
                let i = this.margin[0] + r.join(`
`), n;
                return this.options.choicesHeader && (n = await this.resolve(this.options.choicesHeader, this.state)), [n, i].filter(Boolean).join(`
`)
            }

            format() {
                return !this.state.submitted || this.state.cancelled ? "" : Array.isArray(this.selected) ? this.selected.map(e => this.styles.primary(e.name)).join(", ") : this.styles.primary(this.selected.name)
            }

            async render() {
                let {submitted: e, size: r} = this.state, i = "", n = await this.header(), s = await this.prefix(),
                    o = await this.separator(), a = await this.message();
                this.options.promptLine !== !1 && (i = [s, a, o, ""].join(" "), this.state.prompt = i);
                let l = await this.format(), c = await this.error() || await this.hint(),
                    u = await this.renderChoices(), g = await this.footer();
                l && (i += l), c && !i.includes(c) && (i += " " + c), e && !l && !u.trim() && this.multiple && this.emptyError != null && (i += this.styles.danger(this.emptyError)), this.clear(r), this.write([n, i, u, g].filter(Boolean).join(`
`)), this.write(this.margin[2]), this.restore()
            }
        };
        Ane.exports = lne
    });
    var gne = w((Mpt, cne) => {
        "use strict";
        var Hqe = xl(), Gqe = (t, e) => {
            let r = t.toLowerCase();
            return i => {
                let s = i.toLowerCase().indexOf(r), o = e(i.slice(s, s + r.length));
                return s >= 0 ? i.slice(0, s) + o + i.slice(s + r.length) : i
            }
        }, une = class extends Hqe {
            constructor(e) {
                super(e);
                this.cursorShow()
            }

            moveCursor(e) {
                this.state.cursor += e
            }

            dispatch(e) {
                return this.append(e)
            }

            space(e) {
                return this.options.multiple ? super.space(e) : this.append(e)
            }

            append(e) {
                let {cursor: r, input: i} = this.state;
                return this.input = i.slice(0, r) + e + i.slice(r), this.moveCursor(1), this.complete()
            }

            delete() {
                let {cursor: e, input: r} = this.state;
                return r ? (this.input = r.slice(0, e - 1) + r.slice(e), this.moveCursor(-1), this.complete()) : this.alert()
            }

            deleteForward() {
                let {cursor: e, input: r} = this.state;
                return r[e] === void 0 ? this.alert() : (this.input = `${r}`.slice(0, e) + `${r}`.slice(e + 1), this.complete())
            }

            number(e) {
                return this.append(e)
            }

            async complete() {
                this.completing = !0, this.choices = await this.suggest(this.input, this.state._choices), this.state.limit = void 0, this.index = Math.min(Math.max(this.visible.length - 1, 0), this.index), await this.render(), this.completing = !1
            }

            suggest(e = this.input, r = this.state._choices) {
                if (typeof this.options.suggest == "function") return this.options.suggest.call(this, e, r);
                let i = e.toLowerCase();
                return r.filter(n => n.message.toLowerCase().includes(i))
            }

            pointer() {
                return ""
            }

            format() {
                if (!this.focused) return this.input;
                if (this.options.multiple && this.state.submitted) return this.selected.map(e => this.styles.primary(e.message)).join(", ");
                if (this.state.submitted) {
                    let e = this.value = this.input = this.focused.value;
                    return this.styles.primary(e)
                }
                return this.input
            }

            async render() {
                if (this.state.status !== "pending") return super.render();
                let e = this.options.highlight ? this.options.highlight.bind(this) : this.styles.placeholder,
                    r = Gqe(this.input, e), i = this.choices;
                this.choices = i.map(n => ie(N({}, n), {message: r(n.message)})), await super.render(), this.choices = i
            }

            submit() {
                return this.options.multiple && (this.value = this.selected.map(e => e.name)), super.submit()
            }
        };
        cne.exports = une
    });
    var BN = w((Kpt, fne) => {
        "use strict";
        var wN = Xi();
        fne.exports = (t, e = {}) => {
            t.cursorHide();
            let {input: r = "", initial: i = "", pos: n, showCursor: s = !0, color: o} = e,
                a = o || t.styles.placeholder, l = wN.inverse(t.styles.primary), c = m => l(t.styles.black(m)), u = r,
                g = " ", f = c(g);
            if (t.blink && t.blink.off === !0 && (c = m => m, f = ""), s && n === 0 && i === "" && r === "") return c(g);
            if (s && n === 0 && (r === i || r === "")) return c(i[0]) + a(i.slice(1));
            i = wN.isPrimitive(i) ? `${i}` : "", r = wN.isPrimitive(r) ? `${r}` : "";
            let h = i && i.startsWith(r) && i !== r, p = h ? c(i[r.length]) : f;
            if (n !== r.length && s === !0 && (u = r.slice(0, n) + c(r[n]) + r.slice(n + 1), p = ""), s === !1 && (p = ""), h) {
                let m = t.styles.unstyle(u + p);
                return u + p + a(i.slice(m.length))
            }
            return u + p
        }
    });
    var Z0 = w((Upt, hne) => {
        "use strict";
        var jqe = mo(), Yqe = xl(), qqe = BN(), pne = class extends Yqe {
            constructor(e) {
                super(ie(N({}, e), {multiple: !0}));
                this.type = "form", this.initial = this.options.initial, this.align = [this.options.align, "right"].find(r => r != null), this.emptyError = "", this.values = {}
            }

            async reset(e) {
                return await super.reset(), e === !0 && (this._index = this.index), this.index = this._index, this.values = {}, this.choices.forEach(r => r.reset && r.reset()), this.render()
            }

            dispatch(e) {
                return !!e && this.append(e)
            }

            append(e) {
                let r = this.focused;
                if (!r) return this.alert();
                let {cursor: i, input: n} = r;
                return r.value = r.input = n.slice(0, i) + e + n.slice(i), r.cursor++, this.render()
            }

            delete() {
                let e = this.focused;
                if (!e || e.cursor <= 0) return this.alert();
                let {cursor: r, input: i} = e;
                return e.value = e.input = i.slice(0, r - 1) + i.slice(r), e.cursor--, this.render()
            }

            deleteForward() {
                let e = this.focused;
                if (!e) return this.alert();
                let {cursor: r, input: i} = e;
                if (i[r] === void 0) return this.alert();
                let n = `${i}`.slice(0, r) + `${i}`.slice(r + 1);
                return e.value = e.input = n, this.render()
            }

            right() {
                let e = this.focused;
                return e ? e.cursor >= e.input.length ? this.alert() : (e.cursor++, this.render()) : this.alert()
            }

            left() {
                let e = this.focused;
                return e ? e.cursor <= 0 ? this.alert() : (e.cursor--, this.render()) : this.alert()
            }

            space(e, r) {
                return this.dispatch(e, r)
            }

            number(e, r) {
                return this.dispatch(e, r)
            }

            next() {
                let e = this.focused;
                if (!e) return this.alert();
                let {initial: r, input: i} = e;
                return r && r.startsWith(i) && i !== r ? (e.value = e.input = r, e.cursor = e.value.length, this.render()) : super.next()
            }

            prev() {
                let e = this.focused;
                return e ? e.cursor === 0 ? super.prev() : (e.value = e.input = "", e.cursor = 0, this.render()) : this.alert()
            }

            separator() {
                return ""
            }

            format(e) {
                return this.state.submitted ? "" : super.format(e)
            }

            pointer() {
                return ""
            }

            indicator(e) {
                return e.input ? "\u29BF" : "\u2299"
            }

            async choiceSeparator(e, r) {
                let i = await this.resolve(e.separator, this.state, e, r) || ":";
                return i ? " " + this.styles.disabled(i) : ""
            }

            async renderChoice(e, r) {
                await this.onChoice(e, r);
                let {state: i, styles: n} = this, {
                        cursor: s,
                        initial: o = "",
                        name: a,
                        hint: l,
                        input: c = ""
                    } = e, {muted: u, submitted: g, primary: f, danger: h} = n, p = l, m = this.index === r,
                    y = e.validate || (() => !0), b = await this.choiceSeparator(e, r), S = e.message;
                this.align === "right" && (S = S.padStart(this.longest + 1, " ")), this.align === "left" && (S = S.padEnd(this.longest + 1, " "));
                let k = this.values[a] = c || o, T = c ? "success" : "dark";
                await y.call(e, k, this.state) !== !0 && (T = "danger");
                let j = n[T](await this.indicator(e, r)) + (e.pad || ""), Z = this.indent(e),
                    J = () => [Z, j, S + b, c, p].filter(Boolean).join(" ");
                if (i.submitted) return S = jqe.unstyle(S), c = g(c), p = "", J();
                if (e.format) c = await e.format.call(this, c, e, r); else {
                    let re = this.styles.muted;
                    c = qqe(this, {input: c, initial: o, pos: s, showCursor: m, color: re})
                }
                return this.isValue(c) || (c = this.styles.muted(this.symbols.ellipsis)), e.result && (this.values[a] = await e.result.call(this, k, e, r)), m && (S = f(S)), e.error ? c += (c ? " " : "") + h(e.error.trim()) : e.hint && (c += (c ? " " : "") + u(e.hint.trim())), J()
            }

            async submit() {
                return this.value = this.values, super.base.submit.call(this)
            }
        };
        hne.exports = pne
    });
    var bN = w((Hpt, dne) => {
        "use strict";
        var Jqe = Z0(), Wqe = () => {
            throw new Error("expected prompt to have a custom authenticate method")
        }, Cne = (t = Wqe) => {
            class e extends Jqe {
                constructor(i) {
                    super(i)
                }

                async submit() {
                    this.value = await t.call(this, this.values, this.state), super.base.submit.call(this)
                }

                static create(i) {
                    return Cne(i)
                }
            }

            return e
        };
        dne.exports = Cne()
    });
    var Ine = w((Gpt, mne) => {
        "use strict";
        var zqe = bN();

        function _qe(t, e) {
            return t.username === this.options.username && t.password === this.options.password
        }

        var Ene = (t = _qe) => {
            let e = [{name: "username", message: "username"}, {
                name: "password", message: "password", format(i) {
                    return this.options.showPassword ? i : (this.state.submitted ? this.styles.primary : this.styles.muted)(this.symbols.asterisk.repeat(i.length))
                }
            }];

            class r extends zqe.create(t) {
                constructor(n) {
                    super(ie(N({}, n), {choices: e}))
                }

                static create(n) {
                    return Ene(n)
                }
            }

            return r
        };
        mne.exports = Ene()
    });
    var $0 = w((jpt, yne) => {
        "use strict";
        var Vqe = Vf(), {isPrimitive: Xqe, hasColor: Zqe} = Xi(), wne = class extends Vqe {
            constructor(e) {
                super(e);
                this.cursorHide()
            }

            async initialize() {
                let e = await this.resolve(this.initial, this.state);
                this.input = await this.cast(e), await super.initialize()
            }

            dispatch(e) {
                return this.isValue(e) ? (this.input = e, this.submit()) : this.alert()
            }

            format(e) {
                let {styles: r, state: i} = this;
                return i.submitted ? r.success(e) : r.primary(e)
            }

            cast(e) {
                return this.isTrue(e)
            }

            isTrue(e) {
                return /^[ty1]/i.test(e)
            }

            isFalse(e) {
                return /^[fn0]/i.test(e)
            }

            isValue(e) {
                return Xqe(e) && (this.isTrue(e) || this.isFalse(e))
            }

            async hint() {
                if (this.state.status === "pending") {
                    let e = await this.element("hint");
                    return Zqe(e) ? e : this.styles.muted(e)
                }
            }

            async render() {
                let {input: e, size: r} = this.state, i = await this.prefix(), n = await this.separator(),
                    s = await this.message(), o = this.styles.muted(this.default),
                    a = [i, s, o, n].filter(Boolean).join(" ");
                this.state.prompt = a;
                let l = await this.header(), c = this.value = this.cast(e), u = await this.format(c),
                    g = await this.error() || await this.hint(), f = await this.footer();
                g && !a.includes(g) && (u += " " + g), a += " " + u, this.clear(r), this.write([l, a, f].filter(Boolean).join(`
`)), this.restore()
            }

            set value(e) {
                super.value = e
            }

            get value() {
                return this.cast(super.value)
            }
        };
        yne.exports = wne
    });
    var Qne = w((Ypt, Bne) => {
        "use strict";
        var $qe = $0(), bne = class extends $qe {
            constructor(e) {
                super(e);
                this.default = this.options.default || (this.initial ? "(Y/n)" : "(y/N)")
            }
        };
        Bne.exports = bne
    });
    var kne = w((qpt, vne) => {
        "use strict";
        var eJe = xl(), tJe = Z0(), Xf = tJe.prototype, Sne = class extends eJe {
            constructor(e) {
                super(ie(N({}, e), {multiple: !0}));
                this.align = [this.options.align, "left"].find(r => r != null), this.emptyError = "", this.values = {}
            }

            dispatch(e, r) {
                let i = this.focused, n = i.parent || {};
                return !i.editable && !n.editable && (e === "a" || e === "i") ? super[e]() : Xf.dispatch.call(this, e, r)
            }

            append(e, r) {
                return Xf.append.call(this, e, r)
            }

            delete(e, r) {
                return Xf.delete.call(this, e, r)
            }

            space(e) {
                return this.focused.editable ? this.append(e) : super.space()
            }

            number(e) {
                return this.focused.editable ? this.append(e) : super.number(e)
            }

            next() {
                return this.focused.editable ? Xf.next.call(this) : super.next()
            }

            prev() {
                return this.focused.editable ? Xf.prev.call(this) : super.prev()
            }

            async indicator(e, r) {
                let i = e.indicator || "", n = e.editable ? i : super.indicator(e, r);
                return await this.resolve(n, this.state, e, r) || ""
            }

            indent(e) {
                return e.role === "heading" ? "" : e.editable ? " " : "  "
            }

            async renderChoice(e, r) {
                return e.indent = "", e.editable ? Xf.renderChoice.call(this, e, r) : super.renderChoice(e, r)
            }

            error() {
                return ""
            }

            footer() {
                return this.state.error
            }

            async validate() {
                let e = !0;
                for (let r of this.choices) {
                    if (typeof r.validate != "function" || r.role === "heading") continue;
                    let i = r.parent ? this.value[r.parent.name] : this.value;
                    if (r.editable ? i = r.value === r.name ? r.initial || "" : r.value : this.isDisabled(r) || (i = r.enabled === !0), e = await r.validate(i, this.state), e !== !0) break
                }
                return e !== !0 && (this.state.error = typeof e == "string" ? e : "Invalid Input"), e
            }

            submit() {
                if (this.focused.newChoice === !0) return super.submit();
                if (this.choices.some(e => e.newChoice)) return this.alert();
                this.value = {};
                for (let e of this.choices) {
                    let r = e.parent ? this.value[e.parent.name] : this.value;
                    if (e.role === "heading") {
                        this.value[e.name] = {};
                        continue
                    }
                    e.editable ? r[e.name] = e.value === e.name ? e.initial || "" : e.value : this.isDisabled(e) || (r[e.name] = e.enabled === !0)
                }
                return this.base.submit.call(this)
            }
        };
        vne.exports = Sne
    });
    var Iu = w((Jpt, xne) => {
        "use strict";
        var rJe = Vf(), iJe = BN(), {isPrimitive: nJe} = Xi(), Pne = class extends rJe {
            constructor(e) {
                super(e);
                this.initial = nJe(this.initial) ? String(this.initial) : "", this.initial && this.cursorHide(), this.state.prevCursor = 0, this.state.clipboard = []
            }

            async keypress(e, r = {}) {
                let i = this.state.prevKeypress;
                return this.state.prevKeypress = r, this.options.multiline === !0 && r.name === "return" && (!i || i.name !== "return") ? this.append(`
`, r) : super.keypress(e, r)
            }

            moveCursor(e) {
                this.cursor += e
            }

            reset() {
                return this.input = this.value = "", this.cursor = 0, this.render()
            }

            dispatch(e, r) {
                if (!e || r.ctrl || r.code) return this.alert();
                this.append(e)
            }

            append(e) {
                let {cursor: r, input: i} = this.state;
                this.input = `${i}`.slice(0, r) + e + `${i}`.slice(r), this.moveCursor(String(e).length), this.render()
            }

            insert(e) {
                this.append(e)
            }

            delete() {
                let {cursor: e, input: r} = this.state;
                if (e <= 0) return this.alert();
                this.input = `${r}`.slice(0, e - 1) + `${r}`.slice(e), this.moveCursor(-1), this.render()
            }

            deleteForward() {
                let {cursor: e, input: r} = this.state;
                if (r[e] === void 0) return this.alert();
                this.input = `${r}`.slice(0, e) + `${r}`.slice(e + 1), this.render()
            }

            cutForward() {
                let e = this.cursor;
                if (this.input.length <= e) return this.alert();
                this.state.clipboard.push(this.input.slice(e)), this.input = this.input.slice(0, e), this.render()
            }

            cutLeft() {
                let e = this.cursor;
                if (e === 0) return this.alert();
                let r = this.input.slice(0, e), i = this.input.slice(e), n = r.split(" ");
                this.state.clipboard.push(n.pop()), this.input = n.join(" "), this.cursor = this.input.length, this.input += i, this.render()
            }

            paste() {
                if (!this.state.clipboard.length) return this.alert();
                this.insert(this.state.clipboard.pop()), this.render()
            }

            toggleCursor() {
                this.state.prevCursor ? (this.cursor = this.state.prevCursor, this.state.prevCursor = 0) : (this.state.prevCursor = this.cursor, this.cursor = 0), this.render()
            }

            first() {
                this.cursor = 0, this.render()
            }

            last() {
                this.cursor = this.input.length - 1, this.render()
            }

            next() {
                let e = this.initial != null ? String(this.initial) : "";
                if (!e || !e.startsWith(this.input)) return this.alert();
                this.input = this.initial, this.cursor = this.initial.length, this.render()
            }

            prev() {
                if (!this.input) return this.alert();
                this.reset()
            }

            backward() {
                return this.left()
            }

            forward() {
                return this.right()
            }

            right() {
                return this.cursor >= this.input.length ? this.alert() : (this.moveCursor(1), this.render())
            }

            left() {
                return this.cursor <= 0 ? this.alert() : (this.moveCursor(-1), this.render())
            }

            isValue(e) {
                return !!e
            }

            async format(e = this.value) {
                let r = await this.resolve(this.initial, this.state);
                return this.state.submitted ? this.styles.submitted(e || r) : iJe(this, {
                    input: e,
                    initial: r,
                    pos: this.cursor
                })
            }

            async render() {
                let e = this.state.size, r = await this.prefix(), i = await this.separator(), n = await this.message(),
                    s = [r, n, i].filter(Boolean).join(" ");
                this.state.prompt = s;
                let o = await this.header(), a = await this.format(), l = await this.error() || await this.hint(),
                    c = await this.footer();
                l && !a.includes(l) && (a += " " + l), s += " " + a, this.clear(e), this.write([o, s, c].filter(Boolean).join(`
`)), this.restore()
            }
        };
        xne.exports = Pne
    });
    var Rne = w((Wpt, Dne) => {
        "use strict";
        var sJe = t => t.filter((e, r) => t.lastIndexOf(e) === r), eb = t => sJe(t).filter(Boolean);
        Dne.exports = (t, e = {}, r = "") => {
            let {past: i = [], present: n = ""} = e, s, o;
            switch (t) {
                case"prev":
                case"undo":
                    return s = i.slice(0, i.length - 1), o = i[i.length - 1] || "", {past: eb([r, ...s]), present: o};
                case"next":
                case"redo":
                    return s = i.slice(1), o = i[0] || "", {past: eb([...s, r]), present: o};
                case"save":
                    return {past: eb([...i, r]), present: ""};
                case"remove":
                    return o = eb(i.filter(a => a !== r)), n = "", o.length && (n = o.pop()), {past: o, present: n};
                default:
                    throw new Error(`Invalid action: "${t}"`)
            }
        }
    });
    var QN = w((zpt, Fne) => {
        "use strict";
        var oJe = Iu(), Nne = Rne(), Lne = class extends oJe {
            constructor(e) {
                super(e);
                let r = this.options.history;
                if (r && r.store) {
                    let i = r.values || this.initial;
                    this.autosave = !!r.autosave, this.store = r.store, this.data = this.store.get("values") || {
                        past: [],
                        present: i
                    }, this.initial = this.data.present || this.data.past[this.data.past.length - 1]
                }
            }

            completion(e) {
                return this.store ? (this.data = Nne(e, this.data, this.input), this.data.present ? (this.input = this.data.present, this.cursor = this.input.length, this.render()) : this.alert()) : this.alert()
            }

            altUp() {
                return this.completion("prev")
            }

            altDown() {
                return this.completion("next")
            }

            prev() {
                return this.save(), super.prev()
            }

            save() {
                !this.store || (this.data = Nne("save", this.data, this.input), this.store.set("values", this.data))
            }

            submit() {
                return this.store && this.autosave === !0 && this.save(), super.submit()
            }
        };
        Fne.exports = Lne
    });
    var Mne = w((_pt, Tne) => {
        "use strict";
        var aJe = Iu(), One = class extends aJe {
            format() {
                return ""
            }
        };
        Tne.exports = One
    });
    var Hne = w((Vpt, Kne) => {
        "use strict";
        var AJe = Iu(), Une = class extends AJe {
            constructor(e = {}) {
                super(e);
                this.sep = this.options.separator || /, */, this.initial = e.initial || ""
            }

            split(e = this.value) {
                return e ? String(e).split(this.sep) : []
            }

            format() {
                let e = this.state.submitted ? this.styles.primary : r => r;
                return this.list.map(e).join(", ")
            }

            async submit(e) {
                let r = this.state.error || await this.validate(this.list, this.state);
                return r !== !0 ? (this.state.error = r, super.submit()) : (this.value = this.list, super.submit())
            }

            get list() {
                return this.split()
            }
        };
        Kne.exports = Une
    });
    var Yne = w((Xpt, Gne) => {
        "use strict";
        var lJe = xl(), jne = class extends lJe {
            constructor(e) {
                super(ie(N({}, e), {multiple: !0}))
            }
        };
        Gne.exports = jne
    });
    var vN = w((Zpt, qne) => {
        "use strict";
        var cJe = Iu(), Jne = class extends cJe {
            constructor(e = {}) {
                super(N({style: "number"}, e));
                this.min = this.isValue(e.min) ? this.toNumber(e.min) : -Infinity, this.max = this.isValue(e.max) ? this.toNumber(e.max) : Infinity, this.delay = e.delay != null ? e.delay : 1e3, this.float = e.float !== !1, this.round = e.round === !0 || e.float === !1, this.major = e.major || 10, this.minor = e.minor || 1, this.initial = e.initial != null ? e.initial : "", this.input = String(this.initial), this.cursor = this.input.length, this.cursorShow()
            }

            append(e) {
                return !/[-+.]/.test(e) || e === "." && this.input.includes(".") ? this.alert("invalid number") : super.append(e)
            }

            number(e) {
                return super.append(e)
            }

            next() {
                return this.input && this.input !== this.initial ? this.alert() : this.isValue(this.initial) ? (this.input = this.initial, this.cursor = String(this.initial).length, this.render()) : this.alert()
            }

            up(e) {
                let r = e || this.minor, i = this.toNumber(this.input);
                return i > this.max + r ? this.alert() : (this.input = `${i + r}`, this.render())
            }

            down(e) {
                let r = e || this.minor, i = this.toNumber(this.input);
                return i < this.min - r ? this.alert() : (this.input = `${i - r}`, this.render())
            }

            shiftDown() {
                return this.down(this.major)
            }

            shiftUp() {
                return this.up(this.major)
            }

            format(e = this.input) {
                return typeof this.options.format == "function" ? this.options.format.call(this, e) : this.styles.info(e)
            }

            toNumber(e = "") {
                return this.float ? +e : Math.round(+e)
            }

            isValue(e) {
                return /^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)
            }

            submit() {
                let e = [this.input, this.initial].find(r => this.isValue(r));
                return this.value = this.toNumber(e || 0), super.submit()
            }
        };
        qne.exports = Jne
    });
    var zne = w(($pt, Wne) => {
        Wne.exports = vN()
    });
    var Xne = w((edt, _ne) => {
        "use strict";
        var uJe = Iu(), Vne = class extends uJe {
            constructor(e) {
                super(e);
                this.cursorShow()
            }

            format(e = this.input) {
                return this.keypressed ? (this.state.submitted ? this.styles.primary : this.styles.muted)(this.symbols.asterisk.repeat(e.length)) : ""
            }
        };
        _ne.exports = Vne
    });
    var tse = w((tdt, Zne) => {
        "use strict";
        var gJe = mo(), fJe = ZC(), $ne = Xi(), ese = class extends fJe {
            constructor(e = {}) {
                super(e);
                this.widths = [].concat(e.messageWidth || 50), this.align = [].concat(e.align || "left"), this.linebreak = e.linebreak || !1, this.edgeLength = e.edgeLength || 3, this.newline = e.newline || `
   `;
                let r = e.startNumber || 1;
                typeof this.scale == "number" && (this.scaleKey = !1, this.scale = Array(this.scale).fill(0).map((i, n) => ({name: n + r})))
            }

            async reset() {
                return this.tableized = !1, await super.reset(), this.render()
            }

            tableize() {
                if (this.tableized === !0) return;
                this.tableized = !0;
                let e = 0;
                for (let r of this.choices) {
                    e = Math.max(e, r.message.length), r.scaleIndex = r.initial || 2, r.scale = [];
                    for (let i = 0; i < this.scale.length; i++) r.scale.push({index: i})
                }
                this.widths[0] = Math.min(this.widths[0], e + 3)
            }

            async dispatch(e, r) {
                if (this.multiple) return this[r.name] ? await this[r.name](e, r) : await super.dispatch(e, r);
                this.alert()
            }

            heading(e, r, i) {
                return this.styles.strong(e)
            }

            separator() {
                return this.styles.muted(this.symbols.ellipsis)
            }

            right() {
                let e = this.focused;
                return e.scaleIndex >= this.scale.length - 1 ? this.alert() : (e.scaleIndex++, this.render())
            }

            left() {
                let e = this.focused;
                return e.scaleIndex <= 0 ? this.alert() : (e.scaleIndex--, this.render())
            }

            indent() {
                return ""
            }

            format() {
                return this.state.submitted ? this.choices.map(r => this.styles.info(r.index)).join(", ") : ""
            }

            pointer() {
                return ""
            }

            renderScaleKey() {
                if (this.scaleKey === !1 || this.state.submitted) return "";
                let e = this.scale.map(i => `   ${i.name} - ${i.message}`);
                return ["", ...e].map(i => this.styles.muted(i)).join(`
`)
            }

            renderScaleHeading(e) {
                let r = this.scale.map(l => l.name);
                typeof this.options.renderScaleHeading == "function" && (r = this.options.renderScaleHeading.call(this, e));
                let i = this.scaleLength - r.join("").length, n = Math.round(i / (r.length - 1)),
                    o = r.map(l => this.styles.strong(l)).join(" ".repeat(n)), a = " ".repeat(this.widths[0]);
                return this.margin[3] + a + this.margin[1] + o
            }

            scaleIndicator(e, r, i) {
                if (typeof this.options.scaleIndicator == "function") return this.options.scaleIndicator.call(this, e, r, i);
                let n = e.scaleIndex === r.index;
                return r.disabled ? this.styles.hint(this.symbols.radio.disabled) : n ? this.styles.success(this.symbols.radio.on) : this.symbols.radio.off
            }

            renderScale(e, r) {
                let i = e.scale.map(s => this.scaleIndicator(e, s, r)), n = this.term === "Hyper" ? "" : " ";
                return i.join(n + this.symbols.line.repeat(this.edgeLength))
            }

            async renderChoice(e, r) {
                await this.onChoice(e, r);
                let i = this.index === r, n = await this.pointer(e, r), s = await e.hint;
                s && !$ne.hasColor(s) && (s = this.styles.muted(s));
                let o = p => this.margin[3] + p.replace(/\s+$/, "").padEnd(this.widths[0], " "), a = this.newline,
                    l = this.indent(e), c = await this.resolve(e.message, this.state, e, r),
                    u = await this.renderScale(e, r), g = this.margin[1] + this.margin[3];
                this.scaleLength = gJe.unstyle(u).length, this.widths[0] = Math.min(this.widths[0], this.width - this.scaleLength - g.length);
                let h = $ne.wordWrap(c, {width: this.widths[0], newline: a}).split(`
`).map(p => o(p) + this.margin[1]);
                return i && (u = this.styles.info(u), h = h.map(p => this.styles.info(p))), h[0] += u, this.linebreak && h.push(""), [l + n, h.join(`
`)].filter(Boolean)
            }

            async renderChoices() {
                if (this.state.submitted) return "";
                this.tableize();
                let e = this.visible.map(async (n, s) => await this.renderChoice(n, s)), r = await Promise.all(e),
                    i = await this.renderScaleHeading();
                return this.margin[0] + [i, ...r.map(n => n.join(" "))].join(`
`)
            }

            async render() {
                let {submitted: e, size: r} = this.state, i = await this.prefix(), n = await this.separator(),
                    s = await this.message(), o = "";
                this.options.promptLine !== !1 && (o = [i, s, n, ""].join(" "), this.state.prompt = o);
                let a = await this.header(), l = await this.format(), c = await this.renderScaleKey(),
                    u = await this.error() || await this.hint(), g = await this.renderChoices(),
                    f = await this.footer(), h = this.emptyError;
                l && (o += l), u && !o.includes(u) && (o += " " + u), e && !l && !g.trim() && this.multiple && h != null && (o += this.styles.danger(h)), this.clear(r), this.write([a, o, c, g, f].filter(Boolean).join(`
`)), this.state.submitted || this.write(this.margin[2]), this.restore()
            }

            submit() {
                this.value = {};
                for (let e of this.choices) this.value[e.name] = e.scaleIndex;
                return this.base.submit.call(this)
            }
        };
        Zne.exports = ese
    });
    var sse = w((rdt, rse) => {
        "use strict";
        var ise = mo(), hJe = (t = "") => typeof t == "string" ? t.replace(/^['"]|['"]$/g, "") : "", nse = class {
            constructor(e) {
                this.name = e.key, this.field = e.field || {}, this.value = hJe(e.initial || this.field.initial || ""), this.message = e.message || this.name, this.cursor = 0, this.input = "", this.lines = []
            }
        }, pJe = async (t = {}, e = {}, r = i => i) => {
            let i = new Set, n = t.fields || [], s = t.template, o = [], a = [], l = [], c = 1;
            typeof s == "function" && (s = await s());
            let u = -1, g = () => s[++u], f = () => s[u + 1], h = p => {
                p.line = c, o.push(p)
            };
            for (h({type: "bos", value: ""}); u < s.length - 1;) {
                let p = g();
                if (/^[^\S\n ]$/.test(p)) {
                    h({type: "text", value: p});
                    continue
                }
                if (p === `
`) {
                    h({type: "newline", value: p}), c++;
                    continue
                }
                if (p === "\\") {
                    p += g(), h({type: "text", value: p});
                    continue
                }
                if ((p === "$" || p === "#" || p === "{") && f() === "{") {
                    p += g();
                    let b = {type: "template", open: p, inner: "", close: "", value: p}, S;
                    for (; S = g();) {
                        if (S === "}") {
                            f() === "}" && (S += g()), b.value += S, b.close = S;
                            break
                        }
                        S === ":" ? (b.initial = "", b.key = b.inner) : b.initial !== void 0 && (b.initial += S), b.value += S, b.inner += S
                    }
                    b.template = b.open + (b.initial || b.inner) + b.close, b.key = b.key || b.inner, e.hasOwnProperty(b.key) && (b.initial = e[b.key]), b = r(b), h(b), l.push(b.key), i.add(b.key);
                    let k = a.find(T => T.name === b.key);
                    b.field = n.find(T => T.name === b.key), k || (k = new nse(b), a.push(k)), k.lines.push(b.line - 1);
                    continue
                }
                let m = o[o.length - 1];
                m.type === "text" && m.line === c ? m.value += p : h({type: "text", value: p})
            }
            return h({type: "eos", value: ""}), {input: s, tabstops: o, unique: i, keys: l, items: a}
        };
        rse.exports = async t => {
            let e = t.options, r = new Set(e.required === !0 ? [] : e.required || []),
                i = N(N({}, e.values), e.initial), {tabstops: n, items: s, keys: o} = await pJe(e, i),
                a = SN("result", t, e), l = SN("format", t, e), c = SN("validate", t, e, !0), u = t.isValue.bind(t);
            return async (g = {}, f = !1) => {
                let h = 0;
                g.required = r, g.items = s, g.keys = o, g.output = "";
                let p = async (S, k, T, Y) => {
                    let j = await c(S, k, T, Y);
                    return j === !1 ? "Invalid field " + T.name : j
                };
                for (let S of n) {
                    let k = S.value, T = S.key;
                    if (S.type !== "template") {
                        k && (g.output += k);
                        continue
                    }
                    if (S.type === "template") {
                        let Y = s.find(ee => ee.name === T);
                        e.required === !0 && g.required.add(Y.name);
                        let j = [Y.input, g.values[Y.value], Y.value, k].find(u),
                            J = (Y.field || {}).message || S.inner;
                        if (f) {
                            let ee = await p(g.values[T], g, Y, h);
                            if (ee && typeof ee == "string" || ee === !1) {
                                g.invalid.set(T, ee);
                                continue
                            }
                            g.invalid.delete(T);
                            let A = await a(g.values[T], g, Y, h);
                            g.output += ise.unstyle(A);
                            continue
                        }
                        Y.placeholder = !1;
                        let re = k;
                        k = await l(k, g, Y, h), j !== k ? (g.values[T] = j, k = t.styles.typing(j), g.missing.delete(J)) : (g.values[T] = void 0, j = `<${J}>`, k = t.styles.primary(j), Y.placeholder = !0, g.required.has(T) && g.missing.add(J)), g.missing.has(J) && g.validating && (k = t.styles.warning(j)), g.invalid.has(T) && g.validating && (k = t.styles.danger(j)), h === g.index && (re !== k ? k = t.styles.underline(k) : k = t.styles.heading(ise.unstyle(k))), h++
                    }
                    k && (g.output += k)
                }
                let m = g.output.split(`
`).map(S => " " + S), y = s.length, b = 0;
                for (let S of s) g.invalid.has(S.name) && S.lines.forEach(k => {
                    m[k][0] === " " && (m[k] = g.styles.danger(g.symbols.bullet) + m[k].slice(1))
                }), t.isValue(g.values[S.name]) && b++;
                return g.completed = (b / y * 100).toFixed(0), g.output = m.join(`
`), g.output
            }
        };

        function SN(t, e, r, i) {
            return (n, s, o, a) => typeof o.field[t] == "function" ? o.field[t].call(e, n, s, o, a) : [i, n].find(l => e.isValue(l))
        }
    });
    var Ase = w((idt, ose) => {
        "use strict";
        var dJe = mo(), CJe = sse(), mJe = Vf(), ase = class extends mJe {
            constructor(e) {
                super(e);
                this.cursorHide(), this.reset(!0)
            }

            async initialize() {
                this.interpolate = await CJe(this), await super.initialize()
            }

            async reset(e) {
                this.state.keys = [], this.state.invalid = new Map, this.state.missing = new Set, this.state.completed = 0, this.state.values = {}, e !== !0 && (await this.initialize(), await this.render())
            }

            moveCursor(e) {
                let r = this.getItem();
                this.cursor += e, r.cursor += e
            }

            dispatch(e, r) {
                if (!r.code && !r.ctrl && e != null && this.getItem()) {
                    this.append(e, r);
                    return
                }
                this.alert()
            }

            append(e, r) {
                let i = this.getItem(), n = i.input.slice(0, this.cursor), s = i.input.slice(this.cursor);
                this.input = i.input = `${n}${e}${s}`, this.moveCursor(1), this.render()
            }

            delete() {
                let e = this.getItem();
                if (this.cursor <= 0 || !e.input) return this.alert();
                let r = e.input.slice(this.cursor), i = e.input.slice(0, this.cursor - 1);
                this.input = e.input = `${i}${r}`, this.moveCursor(-1), this.render()
            }

            increment(e) {
                return e >= this.state.keys.length - 1 ? 0 : e + 1
            }

            decrement(e) {
                return e <= 0 ? this.state.keys.length - 1 : e - 1
            }

            first() {
                this.state.index = 0, this.render()
            }

            last() {
                this.state.index = this.state.keys.length - 1, this.render()
            }

            right() {
                if (this.cursor >= this.input.length) return this.alert();
                this.moveCursor(1), this.render()
            }

            left() {
                if (this.cursor <= 0) return this.alert();
                this.moveCursor(-1), this.render()
            }

            prev() {
                this.state.index = this.decrement(this.state.index), this.getItem(), this.render()
            }

            next() {
                this.state.index = this.increment(this.state.index), this.getItem(), this.render()
            }

            up() {
                this.prev()
            }

            down() {
                this.next()
            }

            format(e) {
                let r = this.state.completed < 100 ? this.styles.warning : this.styles.success;
                return this.state.submitted === !0 && this.state.completed !== 100 && (r = this.styles.danger), r(`${this.state.completed}% completed`)
            }

            async render() {
                let {index: e, keys: r = [], submitted: i, size: n} = this.state, s = [this.options.newline, `
`].find(S => S != null), o = await this.prefix(), a = await this.separator(), l = await this.message(),
                    c = [o, l, a].filter(Boolean).join(" ");
                this.state.prompt = c;
                let u = await this.header(), g = await this.error() || "", f = await this.hint() || "",
                    h = i ? "" : await this.interpolate(this.state), p = this.state.key = r[e] || "",
                    m = await this.format(p), y = await this.footer();
                m && (c += " " + m), f && !m && this.state.completed === 0 && (c += " " + f), this.clear(n);
                let b = [u, c, h, y, g.trim()];
                this.write(b.filter(Boolean).join(s)), this.restore()
            }

            getItem(e) {
                let {items: r, keys: i, index: n} = this.state, s = r.find(o => o.name === i[n]);
                return s && s.input != null && (this.input = s.input, this.cursor = s.cursor), s
            }

            async submit() {
                typeof this.interpolate != "function" && await this.initialize(), await this.interpolate(this.state, !0);
                let {invalid: e, missing: r, output: i, values: n} = this.state;
                if (e.size) {
                    let a = "";
                    for (let [l, c] of e) a += `Invalid ${l}: ${c}
`;
                    return this.state.error = a, super.submit()
                }
                if (r.size) return this.state.error = "Required: " + [...r.keys()].join(", "), super.submit();
                let o = dJe.unstyle(i).split(`
`).map(a => a.slice(1)).join(`
`);
                return this.value = {values: n, result: o}, super.submit()
            }
        };
        ose.exports = ase
    });
    var use = w((ndt, lse) => {
        "use strict";
        var EJe = "(Use <shift>+<up/down> to sort)", IJe = xl(), cse = class extends IJe {
            constructor(e) {
                super(ie(N({}, e), {reorder: !1, sort: !0, multiple: !0}));
                this.state.hint = [this.options.hint, EJe].find(this.isValue.bind(this))
            }

            indicator() {
                return ""
            }

            async renderChoice(e, r) {
                let i = await super.renderChoice(e, r), n = this.symbols.identicalTo + " ",
                    s = this.index === r && this.sorting ? this.styles.muted(n) : "  ";
                return this.options.drag === !1 && (s = ""), this.options.numbered === !0 ? s + `${r + 1} - ` + i : s + i
            }

            get selected() {
                return this.choices
            }

            submit() {
                return this.value = this.choices.map(e => e.value), super.submit()
            }
        };
        lse.exports = cse
    });
    var hse = w((sdt, gse) => {
        "use strict";
        var yJe = ZC(), fse = class extends yJe {
            constructor(e = {}) {
                super(e);
                if (this.emptyError = e.emptyError || "No items were selected", this.term = process.env.TERM_PROGRAM, !this.options.header) {
                    let r = ["", "4 - Strongly Agree", "3 - Agree", "2 - Neutral", "1 - Disagree", "0 - Strongly Disagree", ""];
                    r = r.map(i => this.styles.muted(i)), this.state.header = r.join(`
   `)
                }
            }

            async toChoices(...e) {
                if (this.createdScales) return !1;
                this.createdScales = !0;
                let r = await super.toChoices(...e);
                for (let i of r) i.scale = wJe(5, this.options), i.scaleIdx = 2;
                return r
            }

            dispatch() {
                this.alert()
            }

            space() {
                let e = this.focused, r = e.scale[e.scaleIdx], i = r.selected;
                return e.scale.forEach(n => n.selected = !1), r.selected = !i, this.render()
            }

            indicator() {
                return ""
            }

            pointer() {
                return ""
            }

            separator() {
                return this.styles.muted(this.symbols.ellipsis)
            }

            right() {
                let e = this.focused;
                return e.scaleIdx >= e.scale.length - 1 ? this.alert() : (e.scaleIdx++, this.render())
            }

            left() {
                let e = this.focused;
                return e.scaleIdx <= 0 ? this.alert() : (e.scaleIdx--, this.render())
            }

            indent() {
                return "   "
            }

            async renderChoice(e, r) {
                await this.onChoice(e, r);
                let i = this.index === r, n = this.term === "Hyper", s = n ? 9 : 8, o = n ? "" : " ",
                    a = this.symbols.line.repeat(s), l = " ".repeat(s + (n ? 0 : 1)),
                    c = k => (k ? this.styles.success("\u25C9") : "\u25EF") + o, u = r + 1 + ".",
                    g = i ? this.styles.heading : this.styles.noop, f = await this.resolve(e.message, this.state, e, r),
                    h = this.indent(e), p = h + e.scale.map((k, T) => c(T === e.scaleIdx)).join(a),
                    m = k => k === e.scaleIdx ? g(k) : k, y = h + e.scale.map((k, T) => m(T)).join(l),
                    b = () => [u, f].filter(Boolean).join(" "), S = () => [b(), p, y, " "].filter(Boolean).join(`
`);
                return i && (p = this.styles.cyan(p), y = this.styles.cyan(y)), S()
            }

            async renderChoices() {
                if (this.state.submitted) return "";
                let e = this.visible.map(async (i, n) => await this.renderChoice(i, n)), r = await Promise.all(e);
                return r.length || r.push(this.styles.danger("No matching choices")), r.join(`
`)
            }

            format() {
                return this.state.submitted ? this.choices.map(r => this.styles.info(r.scaleIdx)).join(", ") : ""
            }

            async render() {
                let {submitted: e, size: r} = this.state, i = await this.prefix(), n = await this.separator(),
                    s = await this.message(), o = [i, s, n].filter(Boolean).join(" ");
                this.state.prompt = o;
                let a = await this.header(), l = await this.format(), c = await this.error() || await this.hint(),
                    u = await this.renderChoices(), g = await this.footer();
                (l || !c) && (o += " " + l), c && !o.includes(c) && (o += " " + c), e && !l && !u && this.multiple && this.type !== "form" && (o += this.styles.danger(this.emptyError)), this.clear(r), this.write([o, a, u, g].filter(Boolean).join(`
`)), this.restore()
            }

            submit() {
                this.value = {};
                for (let e of this.choices) this.value[e.name] = e.scaleIdx;
                return this.base.submit.call(this)
            }
        };

        function wJe(t, e = {}) {
            if (Array.isArray(e.scale)) return e.scale.map(i => N({}, i));
            let r = [];
            for (let i = 1; i < t + 1; i++) r.push({i, selected: !1});
            return r
        }

        gse.exports = fse
    });
    var dse = w((odt, pse) => {
        pse.exports = QN()
    });
    var Ese = w((adt, Cse) => {
        "use strict";
        var BJe = $0(), mse = class extends BJe {
            async initialize() {
                await super.initialize(), this.value = this.initial = !!this.options.initial, this.disabled = this.options.disabled || "no", this.enabled = this.options.enabled || "yes", await this.render()
            }

            reset() {
                this.value = this.initial, this.render()
            }

            delete() {
                this.alert()
            }

            toggle() {
                this.value = !this.value, this.render()
            }

            enable() {
                if (this.value === !0) return this.alert();
                this.value = !0, this.render()
            }

            disable() {
                if (this.value === !1) return this.alert();
                this.value = !1, this.render()
            }

            up() {
                this.toggle()
            }

            down() {
                this.toggle()
            }

            right() {
                this.toggle()
            }

            left() {
                this.toggle()
            }

            next() {
                this.toggle()
            }

            prev() {
                this.toggle()
            }

            dispatch(e = "", r) {
                switch (e.toLowerCase()) {
                    case" ":
                        return this.toggle();
                    case"1":
                    case"y":
                    case"t":
                        return this.enable();
                    case"0":
                    case"n":
                    case"f":
                        return this.disable();
                    default:
                        return this.alert()
                }
            }

            format() {
                let e = i => this.styles.primary.underline(i);
                return [this.value ? this.disabled : e(this.disabled), this.value ? e(this.enabled) : this.enabled].join(this.styles.muted(" / "))
            }

            async render() {
                let {size: e} = this.state, r = await this.header(), i = await this.prefix(),
                    n = await this.separator(), s = await this.message(), o = await this.format(),
                    a = await this.error() || await this.hint(), l = await this.footer(), c = [i, s, n, o].join(" ");
                this.state.prompt = c, a && !c.includes(a) && (c += " " + a), this.clear(e), this.write([r, c, l].filter(Boolean).join(`
`)), this.write(this.margin[2]), this.restore()
            }
        };
        Cse.exports = mse
    });
    var wse = w((Adt, Ise) => {
        "use strict";
        var bJe = xl(), yse = class extends bJe {
            constructor(e) {
                super(e);
                if (typeof this.options.correctChoice != "number" || this.options.correctChoice < 0) throw new Error("Please specify the index of the correct answer from the list of choices")
            }

            async toChoices(e, r) {
                let i = await super.toChoices(e, r);
                if (i.length < 2) throw new Error("Please give at least two choices to the user");
                if (this.options.correctChoice > i.length) throw new Error("Please specify the index of the correct answer from the list of choices");
                return i
            }

            check(e) {
                return e.index === this.options.correctChoice
            }

            async result(e) {
                return {
                    selectedAnswer: e,
                    correctAnswer: this.options.choices[this.options.correctChoice].value,
                    correct: await this.check(this.state)
                }
            }
        };
        Ise.exports = yse
    });
    var bse = w(kN => {
        "use strict";
        var Bse = Xi(), Ci = (t, e) => {
            Bse.defineExport(kN, t, e), Bse.defineExport(kN, t.toLowerCase(), e)
        };
        Ci("AutoComplete", () => gne());
        Ci("BasicAuth", () => Ine());
        Ci("Confirm", () => Qne());
        Ci("Editable", () => kne());
        Ci("Form", () => Z0());
        Ci("Input", () => QN());
        Ci("Invisible", () => Mne());
        Ci("List", () => Hne());
        Ci("MultiSelect", () => Yne());
        Ci("Numeral", () => zne());
        Ci("Password", () => Xne());
        Ci("Scale", () => tse());
        Ci("Select", () => xl());
        Ci("Snippet", () => Ase());
        Ci("Sort", () => use());
        Ci("Survey", () => hse());
        Ci("Text", () => dse());
        Ci("Toggle", () => Ese());
        Ci("Quiz", () => wse())
    });
    var vse = w((cdt, Qse) => {
        Qse.exports = {ArrayPrompt: ZC(), AuthPrompt: bN(), BooleanPrompt: $0(), NumberPrompt: vN(), StringPrompt: Iu()}
    });
    var em = w((udt, Sse) => {
        "use strict";
        var kse = require("assert"), xN = require("events"), Pl = Xi(), ua = class extends xN {
            constructor(e, r) {
                super();
                this.options = Pl.merge({}, e), this.answers = N({}, r)
            }

            register(e, r) {
                if (Pl.isObject(e)) {
                    for (let n of Object.keys(e)) this.register(n, e[n]);
                    return this
                }
                kse.equal(typeof r, "function", "expected a function");
                let i = e.toLowerCase();
                return r.prototype instanceof this.Prompt ? this.prompts[i] = r : this.prompts[i] = r(this.Prompt, this), this
            }

            async prompt(e = []) {
                for (let r of [].concat(e)) try {
                    typeof r == "function" && (r = await r.call(this)), await this.ask(Pl.merge({}, this.options, r))
                } catch (i) {
                    return Promise.reject(i)
                }
                return this.answers
            }

            async ask(e) {
                typeof e == "function" && (e = await e.call(this));
                let r = Pl.merge({}, this.options, e), {type: i, name: n} = e, {set: s, get: o} = Pl;
                if (typeof i == "function" && (i = await i.call(this, e, this.answers)), !i) return this.answers[n];
                kse(this.prompts[i], `Prompt "${i}" is not registered`);
                let a = new this.prompts[i](r), l = o(this.answers, n);
                a.state.answers = this.answers, a.enquirer = this, n && a.on("submit", u => {
                    this.emit("answer", n, u, a), s(this.answers, n, u)
                });
                let c = a.emit.bind(a);
                return a.emit = (...u) => (this.emit.call(this, ...u), c(...u)), this.emit("prompt", a, this), r.autofill && l != null ? (a.value = a.input = l, r.autofill === "show" && await a.submit()) : l = a.value = await a.run(), l
            }

            use(e) {
                return e.call(this, this), this
            }

            set Prompt(e) {
                this._Prompt = e
            }

            get Prompt() {
                return this._Prompt || this.constructor.Prompt
            }

            get prompts() {
                return this.constructor.prompts
            }

            static set Prompt(e) {
                this._Prompt = e
            }

            static get Prompt() {
                return this._Prompt || Vf()
            }

            static get prompts() {
                return bse()
            }

            static get types() {
                return vse()
            }

            static get prompt() {
                let e = (r, ...i) => {
                    let n = new this(...i), s = n.emit.bind(n);
                    return n.emit = (...o) => (e.emit(...o), s(...o)), n.prompt(r)
                };
                return Pl.mixinEmitter(e, new xN), e
            }
        };
        Pl.mixinEmitter(ua, new xN);
        var PN = ua.prompts;
        for (let t of Object.keys(PN)) {
            let e = t.toLowerCase(), r = i => new PN[t](i).run();
            ua.prompt[e] = r, ua[e] = r, ua[t] || Reflect.defineProperty(ua, t, {get: () => PN[t]})
        }
        var $C = t => {
            Pl.defineExport(ua, t, () => ua.types[t])
        };
        $C("ArrayPrompt");
        $C("AuthPrompt");
        $C("BooleanPrompt");
        $C("NumberPrompt");
        $C("StringPrompt");
        Sse.exports = ua
    });
    var Hse = w((eCt, Use) => {
        function xJe(t, e) {
            for (var r = -1, i = t == null ? 0 : t.length; ++r < i && e(t[r], r, t) !== !1;) ;
            return t
        }

        Use.exports = xJe
    });
    var $f = w((tCt, Gse) => {
        var PJe = u0(), DJe = Lf();

        function RJe(t, e, r, i) {
            var n = !r;
            r || (r = {});
            for (var s = -1, o = e.length; ++s < o;) {
                var a = e[s], l = i ? i(r[a], t[a], a, r, t) : void 0;
                l === void 0 && (l = t[a]), n ? DJe(r, a, l) : PJe(r, a, l)
            }
            return r
        }

        Gse.exports = RJe
    });
    var Yse = w((rCt, jse) => {
        var FJe = $f(), NJe = Uf();

        function LJe(t, e) {
            return t && FJe(e, NJe(e), t)
        }

        jse.exports = LJe
    });
    var Jse = w((iCt, qse) => {
        function TJe(t) {
            var e = [];
            if (t != null) for (var r in Object(t)) e.push(r);
            return e
        }

        qse.exports = TJe
    });
    var zse = w((nCt, Wse) => {
        var OJe = Rn(), MJe = Q0(), KJe = Jse(), UJe = Object.prototype, HJe = UJe.hasOwnProperty;

        function GJe(t) {
            if (!OJe(t)) return KJe(t);
            var e = MJe(t), r = [];
            for (var i in t) i == "constructor" && (e || !HJe.call(t, i)) || r.push(i);
            return r
        }

        Wse.exports = GJe
    });
    var eh = w((sCt, _se) => {
        var jJe = yF(), YJe = zse(), qJe = NC();

        function JJe(t) {
            return qJe(t) ? jJe(t, !0) : YJe(t)
        }

        _se.exports = JJe
    });
    var Xse = w((oCt, Vse) => {
        var WJe = $f(), zJe = eh();

        function _Je(t, e) {
            return t && WJe(e, zJe(e), t)
        }

        Vse.exports = _Je
    });
    var TN = w((am, th) => {
        var VJe = Fs(), Zse = typeof am == "object" && am && !am.nodeType && am,
            $se = Zse && typeof th == "object" && th && !th.nodeType && th, XJe = $se && $se.exports === Zse,
            eoe = XJe ? VJe.Buffer : void 0, toe = eoe ? eoe.allocUnsafe : void 0;

        function ZJe(t, e) {
            if (e) return t.slice();
            var r = t.length, i = toe ? toe(r) : new t.constructor(r);
            return t.copy(i), i
        }

        th.exports = ZJe
    });
    var ON = w((aCt, roe) => {
        function $Je(t, e) {
            var r = -1, i = t.length;
            for (e || (e = Array(i)); ++r < i;) e[r] = t[r];
            return e
        }

        roe.exports = $Je
    });
    var noe = w((ACt, ioe) => {
        var e3e = $f(), t3e = S0();

        function r3e(t, e) {
            return e3e(t, t3e(t), e)
        }

        ioe.exports = r3e
    });
    var tb = w((lCt, soe) => {
        var i3e = wF(), n3e = i3e(Object.getPrototypeOf, Object);
        soe.exports = n3e
    });
    var MN = w((cCt, ooe) => {
        var s3e = f0(), o3e = tb(), a3e = S0(), A3e = kF(), l3e = Object.getOwnPropertySymbols,
            c3e = l3e ? function (t) {
                for (var e = []; t;) s3e(e, a3e(t)), t = o3e(t);
                return e
            } : A3e;
        ooe.exports = c3e
    });
    var Aoe = w((uCt, aoe) => {
        var u3e = $f(), g3e = MN();

        function f3e(t, e) {
            return u3e(t, g3e(t), e)
        }

        aoe.exports = f3e
    });
    var coe = w((gCt, loe) => {
        var h3e = SF(), p3e = MN(), d3e = eh();

        function C3e(t) {
            return h3e(t, d3e, p3e)
        }

        loe.exports = C3e
    });
    var goe = w((fCt, uoe) => {
        var m3e = Object.prototype, E3e = m3e.hasOwnProperty;

        function I3e(t) {
            var e = t.length, r = new t.constructor(e);
            return e && typeof t[0] == "string" && E3e.call(t, "index") && (r.index = t.index, r.input = t.input), r
        }

        uoe.exports = I3e
    });
    var rb = w((hCt, foe) => {
        var hoe = QF();

        function y3e(t) {
            var e = new t.constructor(t.byteLength);
            return new hoe(e).set(new hoe(t)), e
        }

        foe.exports = y3e
    });
    var doe = w((pCt, poe) => {
        var w3e = rb();

        function B3e(t, e) {
            var r = e ? w3e(t.buffer) : t.buffer;
            return new t.constructor(r, t.byteOffset, t.byteLength)
        }

        poe.exports = B3e
    });
    var moe = w((dCt, Coe) => {
        var b3e = /\w*$/;

        function Q3e(t) {
            var e = new t.constructor(t.source, b3e.exec(t));
            return e.lastIndex = t.lastIndex, e
        }

        Coe.exports = Q3e
    });
    var Boe = w((CCt, Eoe) => {
        var Ioe = Hc(), yoe = Ioe ? Ioe.prototype : void 0, woe = yoe ? yoe.valueOf : void 0;

        function v3e(t) {
            return woe ? Object(woe.call(t)) : {}
        }

        Eoe.exports = v3e
    });
    var KN = w((mCt, boe) => {
        var S3e = rb();

        function k3e(t, e) {
            var r = e ? S3e(t.buffer) : t.buffer;
            return new t.constructor(r, t.byteOffset, t.length)
        }

        boe.exports = k3e
    });
    var voe = w((ECt, Qoe) => {
        var x3e = rb(), P3e = doe(), D3e = moe(), R3e = Boe(), F3e = KN(), N3e = "[object Boolean]",
            L3e = "[object Date]", T3e = "[object Map]", O3e = "[object Number]", M3e = "[object RegExp]",
            K3e = "[object Set]", U3e = "[object String]", H3e = "[object Symbol]", G3e = "[object ArrayBuffer]",
            j3e = "[object DataView]", Y3e = "[object Float32Array]", q3e = "[object Float64Array]",
            J3e = "[object Int8Array]", W3e = "[object Int16Array]", z3e = "[object Int32Array]",
            _3e = "[object Uint8Array]", V3e = "[object Uint8ClampedArray]", X3e = "[object Uint16Array]",
            Z3e = "[object Uint32Array]";

        function $3e(t, e, r) {
            var i = t.constructor;
            switch (e) {
                case G3e:
                    return x3e(t);
                case N3e:
                case L3e:
                    return new i(+t);
                case j3e:
                    return P3e(t, r);
                case Y3e:
                case q3e:
                case J3e:
                case W3e:
                case z3e:
                case _3e:
                case V3e:
                case X3e:
                case Z3e:
                    return F3e(t, r);
                case T3e:
                    return new i;
                case O3e:
                case U3e:
                    return new i(t);
                case M3e:
                    return D3e(t);
                case K3e:
                    return new i;
                case H3e:
                    return R3e(t)
            }
        }

        Qoe.exports = $3e
    });
    var xoe = w((ICt, Soe) => {
        var eWe = Rn(), koe = Object.create, tWe = function () {
            function t() {
            }

            return function (e) {
                if (!eWe(e)) return {};
                if (koe) return koe(e);
                t.prototype = e;
                var r = new t;
                return t.prototype = void 0, r
            }
        }();
        Soe.exports = tWe
    });
    var UN = w((yCt, Poe) => {
        var rWe = xoe(), iWe = tb(), nWe = Q0();

        function sWe(t) {
            return typeof t.constructor == "function" && !nWe(t) ? rWe(iWe(t)) : {}
        }

        Poe.exports = sWe
    });
    var Roe = w((wCt, Doe) => {
        var oWe = TC(), aWe = Zo(), AWe = "[object Map]";

        function lWe(t) {
            return aWe(t) && oWe(t) == AWe
        }

        Doe.exports = lWe
    });
    var Toe = w((BCt, Foe) => {
        var cWe = Roe(), uWe = w0(), Noe = B0(), Loe = Noe && Noe.isMap, gWe = Loe ? uWe(Loe) : cWe;
        Foe.exports = gWe
    });
    var Moe = w((bCt, Ooe) => {
        var fWe = TC(), hWe = Zo(), pWe = "[object Set]";

        function dWe(t) {
            return hWe(t) && fWe(t) == pWe
        }

        Ooe.exports = dWe
    });
    var Goe = w((QCt, Koe) => {
        var CWe = Moe(), mWe = w0(), Uoe = B0(), Hoe = Uoe && Uoe.isSet, EWe = Hoe ? mWe(Hoe) : CWe;
        Koe.exports = EWe
    });
    var Woe = w((vCt, joe) => {
        var IWe = LC(), yWe = Hse(), wWe = u0(), BWe = Yse(), bWe = Xse(), QWe = TN(), vWe = ON(), SWe = noe(),
            kWe = Aoe(), xWe = xF(), PWe = coe(), DWe = TC(), RWe = goe(), FWe = voe(), NWe = UN(), LWe = Ms(),
            TWe = DC(), OWe = Toe(), MWe = Rn(), KWe = Goe(), UWe = Uf(), HWe = eh(), GWe = 1, jWe = 2, YWe = 4,
            Yoe = "[object Arguments]", qWe = "[object Array]", JWe = "[object Boolean]", WWe = "[object Date]",
            zWe = "[object Error]", qoe = "[object Function]", _We = "[object GeneratorFunction]", VWe = "[object Map]",
            XWe = "[object Number]", Joe = "[object Object]", ZWe = "[object RegExp]", $We = "[object Set]",
            e8e = "[object String]", t8e = "[object Symbol]", r8e = "[object WeakMap]", i8e = "[object ArrayBuffer]",
            n8e = "[object DataView]", s8e = "[object Float32Array]", o8e = "[object Float64Array]",
            a8e = "[object Int8Array]", A8e = "[object Int16Array]", l8e = "[object Int32Array]",
            c8e = "[object Uint8Array]", u8e = "[object Uint8ClampedArray]", g8e = "[object Uint16Array]",
            f8e = "[object Uint32Array]", dr = {};
        dr[Yoe] = dr[qWe] = dr[i8e] = dr[n8e] = dr[JWe] = dr[WWe] = dr[s8e] = dr[o8e] = dr[a8e] = dr[A8e] = dr[l8e] = dr[VWe] = dr[XWe] = dr[Joe] = dr[ZWe] = dr[$We] = dr[e8e] = dr[t8e] = dr[c8e] = dr[u8e] = dr[g8e] = dr[f8e] = !0;
        dr[zWe] = dr[qoe] = dr[r8e] = !1;

        function ib(t, e, r, i, n, s) {
            var o, a = e & GWe, l = e & jWe, c = e & YWe;
            if (r && (o = n ? r(t, i, n, s) : r(t)), o !== void 0) return o;
            if (!MWe(t)) return t;
            var u = LWe(t);
            if (u) {
                if (o = RWe(t), !a) return vWe(t, o)
            } else {
                var g = DWe(t), f = g == qoe || g == _We;
                if (TWe(t)) return QWe(t, a);
                if (g == Joe || g == Yoe || f && !n) {
                    if (o = l || f ? {} : NWe(t), !a) return l ? kWe(t, bWe(o, t)) : SWe(t, BWe(o, t))
                } else {
                    if (!dr[g]) return n ? t : {};
                    o = FWe(t, g, a)
                }
            }
            s || (s = new IWe);
            var h = s.get(t);
            if (h) return h;
            s.set(t, o), KWe(t) ? t.forEach(function (y) {
                o.add(ib(y, e, r, y, t, s))
            }) : OWe(t) && t.forEach(function (y, b) {
                o.set(b, ib(y, e, r, b, t, s))
            });
            var p = c ? l ? PWe : xWe : l ? HWe : UWe, m = u ? void 0 : p(t);
            return yWe(m || t, function (y, b) {
                m && (b = y, y = t[b]), wWe(o, b, ib(y, e, r, b, t, s))
            }), o
        }

        joe.exports = ib
    });
    var HN = w((SCt, zoe) => {
        var h8e = Woe(), p8e = 1, d8e = 4;

        function C8e(t) {
            return h8e(t, p8e | d8e)
        }

        zoe.exports = C8e
    });
    var Voe = w((kCt, _oe) => {
        var m8e = XR();

        function E8e(t, e, r) {
            return t == null ? t : m8e(t, e, r)
        }

        _oe.exports = E8e
    });
    var rae = w((NCt, tae) => {
        function I8e(t) {
            var e = t == null ? 0 : t.length;
            return e ? t[e - 1] : void 0
        }

        tae.exports = I8e
    });
    var nae = w((LCt, iae) => {
        var y8e = yC(), w8e = AD();

        function B8e(t, e) {
            return e.length < 2 ? t : y8e(t, w8e(e, 0, -1))
        }

        iae.exports = B8e
    });
    var oae = w((TCt, sae) => {
        var b8e = Nf(), Q8e = rae(), v8e = nae(), S8e = cu();

        function k8e(t, e) {
            return e = b8e(e, t), t = v8e(t, e), t == null || delete t[S8e(Q8e(e))]
        }

        sae.exports = k8e
    });
    var Aae = w((OCt, aae) => {
        var x8e = oae();

        function P8e(t, e) {
            return t == null ? !0 : x8e(t, e)
        }

        aae.exports = P8e
    });
    var Cae = w((fmt, dae) => {
        dae.exports = {
            name: "@yarnpkg/cli",
            version: "3.2.1",
            license: "BSD-2-Clause",
            main: "./sources/index.ts",
            dependencies: {
                "@yarnpkg/core": "workspace:^",
                "@yarnpkg/fslib": "workspace:^",
                "@yarnpkg/libzip": "workspace:^",
                "@yarnpkg/parsers": "workspace:^",
                "@yarnpkg/plugin-compat": "workspace:^",
                "@yarnpkg/plugin-dlx": "workspace:^",
                "@yarnpkg/plugin-essentials": "workspace:^",
                "@yarnpkg/plugin-file": "workspace:^",
                "@yarnpkg/plugin-git": "workspace:^",
                "@yarnpkg/plugin-github": "workspace:^",
                "@yarnpkg/plugin-http": "workspace:^",
                "@yarnpkg/plugin-init": "workspace:^",
                "@yarnpkg/plugin-link": "workspace:^",
                "@yarnpkg/plugin-nm": "workspace:^",
                "@yarnpkg/plugin-npm": "workspace:^",
                "@yarnpkg/plugin-npm-cli": "workspace:^",
                "@yarnpkg/plugin-pack": "workspace:^",
                "@yarnpkg/plugin-patch": "workspace:^",
                "@yarnpkg/plugin-pnp": "workspace:^",
                "@yarnpkg/plugin-pnpm": "workspace:^",
                "@yarnpkg/shell": "workspace:^",
                chalk: "^3.0.0",
                "ci-info": "^3.2.0",
                clipanion: "^3.2.0-rc.4",
                semver: "^7.1.2",
                tslib: "^1.13.0",
                typanion: "^3.3.0",
                yup: "^0.32.9"
            },
            devDependencies: {
                "@types/semver": "^7.1.0",
                "@types/yup": "^0",
                "@yarnpkg/builder": "workspace:^",
                "@yarnpkg/monorepo": "workspace:^",
                "@yarnpkg/pnpify": "workspace:^",
                micromatch: "^4.0.2"
            },
            peerDependencies: {"@yarnpkg/core": "workspace:^"},
            scripts: {
                postpack: "rm -rf lib",
                prepack: 'run build:compile "$(pwd)"',
                "build:cli+hook": "run build:pnp:hook && builder build bundle",
                "build:cli": "builder build bundle",
                "run:cli": "builder run",
                "update-local": "run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"
            },
            publishConfig: {main: "./lib/index.js", types: "./lib/index.d.ts", bin: null},
            files: ["/lib/**/*", "!/lib/pluginConfiguration.*", "!/lib/cli.*"],
            "@yarnpkg/builder": {bundles: {standard: ["@yarnpkg/plugin-essentials", "@yarnpkg/plugin-compat", "@yarnpkg/plugin-dlx", "@yarnpkg/plugin-file", "@yarnpkg/plugin-git", "@yarnpkg/plugin-github", "@yarnpkg/plugin-http", "@yarnpkg/plugin-init", "@yarnpkg/plugin-link", "@yarnpkg/plugin-nm", "@yarnpkg/plugin-npm", "@yarnpkg/plugin-npm-cli", "@yarnpkg/plugin-pack", "@yarnpkg/plugin-patch", "@yarnpkg/plugin-pnp", "@yarnpkg/plugin-pnpm"]}},
            repository: {type: "git", url: "ssh://git@github.com/yarnpkg/berry.git", directory: "packages/yarnpkg-cli"},
            engines: {node: ">=12 <14 || 14.2 - 14.9 || >14.10.0"}
        }
    });
    var $N = w((qyt, iAe) => {
        "use strict";
        iAe.exports = function (e, r) {
            r === !0 && (r = 0);
            var i = e.indexOf("://"), n = e.substring(0, i).split("+").filter(Boolean);
            return typeof r == "number" ? n[r] : n
        }
    });
    var eL = w((Jyt, nAe) => {
        "use strict";
        var X8e = $N();

        function sAe(t) {
            if (Array.isArray(t)) return t.indexOf("ssh") !== -1 || t.indexOf("rsync") !== -1;
            if (typeof t != "string") return !1;
            var e = X8e(t);
            return t = t.substring(t.indexOf("://") + 3), sAe(e) ? !0 : t.indexOf("@") < t.indexOf(":")
        }

        nAe.exports = sAe
    });
    var aAe = w((Wyt, oAe) => {
        "use strict";
        var Z8e = $N(), $8e = eL(), e4e = require("querystring");

        function t4e(t) {
            t = (t || "").trim();
            var e = {
                protocols: Z8e(t),
                protocol: null,
                port: null,
                resource: "",
                user: "",
                pathname: "",
                hash: "",
                search: "",
                href: t,
                query: Object.create(null)
            }, r = t.indexOf("://"), i = -1, n = null, s = null;
            t.startsWith(".") && (t.startsWith("./") && (t = t.substring(2)), e.pathname = t, e.protocol = "file");
            var o = t.charAt(1);
            return e.protocol || (e.protocol = e.protocols[0], e.protocol || ($8e(t) ? e.protocol = "ssh" : ((o === "/" || o === "~") && (t = t.substring(2)), e.protocol = "file"))), r !== -1 && (t = t.substring(r + 3)), s = t.split("/"), e.protocol !== "file" ? e.resource = s.shift() : e.resource = "", n = e.resource.split("@"), n.length === 2 && (e.user = n[0], e.resource = n[1]), n = e.resource.split(":"), n.length === 2 && (e.resource = n[0], n[1] ? (e.port = Number(n[1]), isNaN(e.port) && (e.port = null, s.unshift(n[1]))) : e.port = null), s = s.filter(Boolean), e.protocol === "file" ? e.pathname = e.href : e.pathname = e.pathname || (e.protocol !== "file" || e.href[0] === "/" ? "/" : "") + s.join("/"), n = e.pathname.split("#"), n.length === 2 && (e.pathname = n[0], e.hash = n[1]), n = e.pathname.split("?"), n.length === 2 && (e.pathname = n[0], e.search = n[1]), e.query = e4e.parse(e.search), e.href = e.href.replace(/\/$/, ""), e.pathname = e.pathname.replace(/\/$/, ""), e
        }

        oAe.exports = t4e
    });
    var cAe = w((zyt, AAe) => {
        "use strict";
        var r4e = "text/plain", i4e = "us-ascii",
            lAe = (t, e) => e.some(r => r instanceof RegExp ? r.test(t) : r === t), n4e = (t, {stripHash: e}) => {
                let r = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(t);
                if (!r) throw new Error(`Invalid URL: ${t}`);
                let {type: i, data: n, hash: s} = r.groups, o = i.split(";");
                s = e ? "" : s;
                let a = !1;
                o[o.length - 1] === "base64" && (o.pop(), a = !0);
                let l = (o.shift() || "").toLowerCase(), u = [...o.map(g => {
                    let [f, h = ""] = g.split("=").map(p => p.trim());
                    return f === "charset" && (h = h.toLowerCase(), h === i4e) ? "" : `${f}${h ? `=${h}` : ""}`
                }).filter(Boolean)];
                return a && u.push("base64"), (u.length !== 0 || l && l !== r4e) && u.unshift(l), `data:${u.join(";")},${a ? n.trim() : n}${s ? `#${s}` : ""}`
            }, s4e = (t, e) => {
                if (e = N({
                    defaultProtocol: "http:",
                    normalizeProtocol: !0,
                    forceHttp: !1,
                    forceHttps: !1,
                    stripAuthentication: !0,
                    stripHash: !1,
                    stripTextFragment: !0,
                    stripWWW: !0,
                    removeQueryParameters: [/^utm_\w+/i],
                    removeTrailingSlash: !0,
                    removeSingleSlash: !0,
                    removeDirectoryIndex: !1,
                    sortQueryParameters: !0
                }, e), t = t.trim(), /^data:/i.test(t)) return n4e(t, e);
                if (/^view-source:/i.test(t)) throw new Error("`view-source:` is not supported as it is a non-standard protocol");
                let r = t.startsWith("//");
                !r && /^\.*\//.test(t) || (t = t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//, e.defaultProtocol));
                let n = new URL(t);
                if (e.forceHttp && e.forceHttps) throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");
                if (e.forceHttp && n.protocol === "https:" && (n.protocol = "http:"), e.forceHttps && n.protocol === "http:" && (n.protocol = "https:"), e.stripAuthentication && (n.username = "", n.password = ""), e.stripHash ? n.hash = "" : e.stripTextFragment && (n.hash = n.hash.replace(/#?:~:text.*?$/i, "")), n.pathname && (n.pathname = n.pathname.replace(/(?<!\b(?:[a-z][a-z\d+\-.]{1,50}:))\/{2,}/g, "/")), n.pathname) try {
                    n.pathname = decodeURI(n.pathname)
                } catch (o) {
                }
                if (e.removeDirectoryIndex === !0 && (e.removeDirectoryIndex = [/^index\.[a-z]+$/]), Array.isArray(e.removeDirectoryIndex) && e.removeDirectoryIndex.length > 0) {
                    let o = n.pathname.split("/"), a = o[o.length - 1];
                    lAe(a, e.removeDirectoryIndex) && (o = o.slice(0, o.length - 1), n.pathname = o.slice(1).join("/") + "/")
                }
                if (n.hostname && (n.hostname = n.hostname.replace(/\.$/, ""), e.stripWWW && /^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(n.hostname) && (n.hostname = n.hostname.replace(/^www\./, ""))), Array.isArray(e.removeQueryParameters)) for (let o of [...n.searchParams.keys()]) lAe(o, e.removeQueryParameters) && n.searchParams.delete(o);
                e.removeQueryParameters === !0 && (n.search = ""), e.sortQueryParameters && n.searchParams.sort(), e.removeTrailingSlash && (n.pathname = n.pathname.replace(/\/$/, ""));
                let s = t;
                return t = n.toString(), !e.removeSingleSlash && n.pathname === "/" && !s.endsWith("/") && n.hash === "" && (t = t.replace(/\/$/, "")), (e.removeTrailingSlash || n.pathname === "/") && n.hash === "" && e.removeSingleSlash && (t = t.replace(/\/$/, "")), r && !e.normalizeProtocol && (t = t.replace(/^http:\/\//, "//")), e.stripProtocol && (t = t.replace(/^(?:https?:)?\/\//, "")), t
            };
        AAe.exports = s4e
    });
    var gAe = w((_yt, uAe) => {
        "use strict";
        var o4e = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function (t) {
            return typeof t
        } : function (t) {
            return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
        }, a4e = aAe(), A4e = cAe();

        function l4e(t) {
            var e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
            if (typeof t != "string" || !t.trim()) throw new Error("Invalid url.");
            e && ((typeof e == "undefined" ? "undefined" : o4e(e)) !== "object" && (e = {stripHash: !1}), t = A4e(t, e));
            var r = a4e(t);
            return r
        }

        uAe.exports = l4e
    });
    var pAe = w((Vyt, fAe) => {
        "use strict";
        var c4e = gAe(), hAe = eL();

        function u4e(t) {
            var e = c4e(t);
            e.token = "";
            var r = e.user.split(":");
            return r.length === 2 && (r[1] === "x-oauth-basic" ? e.token = r[0] : r[0] === "x-token-auth" && (e.token = r[1])), hAe(e.protocols) || hAe(t) ? e.protocol = "ssh" : e.protocols.length ? e.protocol = e.protocols[0] : e.protocol = "file", e.href = e.href.replace(/\/$/, ""), e
        }

        fAe.exports = u4e
    });
    var CAe = w((Xyt, dAe) => {
        "use strict";
        var g4e = pAe();

        function tL(t) {
            if (typeof t != "string") throw new Error("The url must be a string.");
            var e = g4e(t), r = e.resource.split("."), i = null;
            switch (e.toString = function (l) {
                return tL.stringify(this, l)
            }, e.source = r.length > 2 ? r.slice(1 - r.length).join(".") : e.source = e.resource, e.git_suffix = /\.git$/.test(e.pathname), e.name = decodeURIComponent(e.pathname.replace(/^\//, "").replace(/\.git$/, "")), e.owner = decodeURIComponent(e.user), e.source) {
                case"git.cloudforge.com":
                    e.owner = e.user, e.organization = r[0], e.source = "cloudforge.com";
                    break;
                case"visualstudio.com":
                    if (e.resource === "vs-ssh.visualstudio.com") {
                        i = e.name.split("/"), i.length === 4 && (e.organization = i[1], e.owner = i[2], e.name = i[3], e.full_name = i[2] + "/" + i[3]);
                        break
                    } else {
                        i = e.name.split("/"), i.length === 2 ? (e.owner = i[1], e.name = i[1], e.full_name = "_git/" + e.name) : i.length === 3 ? (e.name = i[2], i[0] === "DefaultCollection" ? (e.owner = i[2], e.organization = i[0], e.full_name = e.organization + "/_git/" + e.name) : (e.owner = i[0], e.full_name = e.owner + "/_git/" + e.name)) : i.length === 4 && (e.organization = i[0], e.owner = i[1], e.name = i[3], e.full_name = e.organization + "/" + e.owner + "/_git/" + e.name);
                        break
                    }
                case"dev.azure.com":
                case"azure.com":
                    if (e.resource === "ssh.dev.azure.com") {
                        i = e.name.split("/"), i.length === 4 && (e.organization = i[1], e.owner = i[2], e.name = i[3]);
                        break
                    } else {
                        i = e.name.split("/"), i.length === 5 ? (e.organization = i[0], e.owner = i[1], e.name = i[4], e.full_name = "_git/" + e.name) : i.length === 3 ? (e.name = i[2], i[0] === "DefaultCollection" ? (e.owner = i[2], e.organization = i[0], e.full_name = e.organization + "/_git/" + e.name) : (e.owner = i[0], e.full_name = e.owner + "/_git/" + e.name)) : i.length === 4 && (e.organization = i[0], e.owner = i[1], e.name = i[3], e.full_name = e.organization + "/" + e.owner + "/_git/" + e.name);
                        break
                    }
                default:
                    i = e.name.split("/");
                    var n = i.length - 1;
                    if (i.length >= 2) {
                        var s = i.indexOf("blob", 2), o = i.indexOf("tree", 2), a = i.indexOf("commit", 2);
                        n = s > 0 ? s - 1 : o > 0 ? o - 1 : a > 0 ? a - 1 : n, e.owner = i.slice(0, n).join("/"), e.name = i[n], a && (e.commit = i[n + 2])
                    }
                    e.ref = "", e.filepathtype = "", e.filepath = "", i.length > n + 2 && ["blob", "tree"].indexOf(i[n + 1]) >= 0 && (e.filepathtype = i[n + 1], e.ref = i[n + 2], i.length > n + 3 && (e.filepath = i.slice(n + 3).join("/"))), e.organization = e.owner;
                    break
            }
            return e.full_name || (e.full_name = e.owner, e.name && (e.full_name && (e.full_name += "/"), e.full_name += e.name)), e
        }

        tL.stringify = function (t, e) {
            e = e || (t.protocols && t.protocols.length ? t.protocols.join("+") : t.protocol);
            var r = t.port ? ":" + t.port : "", i = t.user || "git", n = t.git_suffix ? ".git" : "";
            switch (e) {
                case"ssh":
                    return r ? "ssh://" + i + "@" + t.resource + r + "/" + t.full_name + n : i + "@" + t.resource + ":" + t.full_name + n;
                case"git+ssh":
                case"ssh+git":
                case"ftp":
                case"ftps":
                    return e + "://" + i + "@" + t.resource + r + "/" + t.full_name + n;
                case"http":
                case"https":
                    var s = t.token ? f4e(t) : t.user && (t.protocols.includes("http") || t.protocols.includes("https")) ? t.user + "@" : "";
                    return e + "://" + s + t.resource + r + "/" + t.full_name + n;
                default:
                    return t.href
            }
        };

        function f4e(t) {
            switch (t.source) {
                case"bitbucket.org":
                    return "x-token-auth:" + t.token + "@";
                default:
                    return t.token + "@"
            }
        }

        dAe.exports = tL
    });
    var DL = w((ibt, UAe) => {
        var R4e = Lf(), F4e = Df();

        function N4e(t, e, r) {
            (r !== void 0 && !F4e(t[e], r) || r === void 0 && !(e in t)) && R4e(t, e, r)
        }

        UAe.exports = N4e
    });
    var GAe = w((nbt, HAe) => {
        var L4e = NC(), T4e = Zo();

        function O4e(t) {
            return T4e(t) && L4e(t)
        }

        HAe.exports = O4e
    });
    var qAe = w((sbt, jAe) => {
        var M4e = Gc(), K4e = tb(), U4e = Zo(), H4e = "[object Object]", G4e = Function.prototype,
            j4e = Object.prototype, YAe = G4e.toString, Y4e = j4e.hasOwnProperty, q4e = YAe.call(Object);

        function J4e(t) {
            if (!U4e(t) || M4e(t) != H4e) return !1;
            var e = K4e(t);
            if (e === null) return !0;
            var r = Y4e.call(e, "constructor") && e.constructor;
            return typeof r == "function" && r instanceof r && YAe.call(r) == q4e
        }

        jAe.exports = J4e
    });
    var RL = w((obt, JAe) => {
        function W4e(t, e) {
            if (!(e === "constructor" && typeof t[e] == "function") && e != "__proto__") return t[e]
        }

        JAe.exports = W4e
    });
    var zAe = w((abt, WAe) => {
        var z4e = $f(), _4e = eh();

        function V4e(t) {
            return z4e(t, _4e(t))
        }

        WAe.exports = V4e
    });
    var ele = w((Abt, _Ae) => {
        var VAe = DL(), X4e = TN(), Z4e = KN(), $4e = ON(), eze = UN(), XAe = BC(), ZAe = Ms(), tze = GAe(), rze = DC(),
            ize = A0(), nze = Rn(), sze = qAe(), oze = b0(), $Ae = RL(), aze = zAe();

        function Aze(t, e, r, i, n, s, o) {
            var a = $Ae(t, r), l = $Ae(e, r), c = o.get(l);
            if (c) {
                VAe(t, r, c);
                return
            }
            var u = s ? s(a, l, r + "", t, e, o) : void 0, g = u === void 0;
            if (g) {
                var f = ZAe(l), h = !f && rze(l), p = !f && !h && oze(l);
                u = l, f || h || p ? ZAe(a) ? u = a : tze(a) ? u = $4e(a) : h ? (g = !1, u = X4e(l, !0)) : p ? (g = !1, u = Z4e(l, !0)) : u = [] : sze(l) || XAe(l) ? (u = a, XAe(a) ? u = aze(a) : (!nze(a) || ize(a)) && (u = eze(l))) : g = !1
            }
            g && (o.set(l, u), n(u, l, i, s, o), o.delete(l)), VAe(t, r, u)
        }

        _Ae.exports = Aze
    });
    var ile = w((lbt, tle) => {
        var lze = LC(), cze = DL(), uze = EF(), gze = ele(), fze = Rn(), hze = eh(), pze = RL();

        function rle(t, e, r, i, n) {
            t !== e && uze(e, function (s, o) {
                if (n || (n = new lze), fze(s)) gze(t, e, o, r, rle, i, n); else {
                    var a = i ? i(pze(t, o), s, o + "", t, e, n) : void 0;
                    a === void 0 && (a = s), cze(t, o, a)
                }
            }, hze)
        }

        tle.exports = rle
    });
    var sle = w((cbt, nle) => {
        var dze = h0(), Cze = eF(), mze = tF();

        function Eze(t, e) {
            return mze(Cze(t, e, dze), t + "")
        }

        nle.exports = Eze
    });
    var ale = w((ubt, ole) => {
        var Ize = Df(), yze = NC(), wze = wC(), Bze = Rn();

        function bze(t, e, r) {
            if (!Bze(r)) return !1;
            var i = typeof e;
            return (i == "number" ? yze(r) && wze(e, r.length) : i == "string" && e in r) ? Ize(r[e], t) : !1
        }

        ole.exports = bze
    });
    var lle = w((gbt, Ale) => {
        var Qze = sle(), vze = ale();

        function Sze(t) {
            return Qze(function (e, r) {
                var i = -1, n = r.length, s = n > 1 ? r[n - 1] : void 0, o = n > 2 ? r[2] : void 0;
                for (s = t.length > 3 && typeof s == "function" ? (n--, s) : void 0, o && vze(r[0], r[1], o) && (s = n < 3 ? void 0 : s, n = 1), e = Object(e); ++i < n;) {
                    var a = r[i];
                    a && t(e, a, i, s)
                }
                return e
            })
        }

        Ale.exports = Sze
    });
    var ule = w((fbt, cle) => {
        var kze = ile(), xze = lle(), Pze = xze(function (t, e, r) {
            kze(t, e, r)
        });
        cle.exports = Pze
    });
    var Sle = w((mQt, vle) => {
        var JL;
        vle.exports = () => (typeof JL == "undefined" && (JL = require("zlib").brotliDecompressSync(Buffer.from(" ", "base64")).toString()), JL)
    });
    var Mle = w((XQt, Ole) => {
        var VL;
        Ole.exports = () => (typeof VL == "undefined" && (VL = require("zlib").brotliDecompressSync(Buffer.from("G9ohAByFcfPSaHxA5k52N9Hn90vTO5fTt50C7421KV0ppZ5iddAuXoUhDHbH/6bqtOLOdwFJ6dI9M8W3pzSw/d17EnCC9Pj48WuVJy9hZVfIEFiReUVpWu45wgkAVv3fs4NHNBtiR0ImKoqdPxsX6VbICJtlTH1W9w7mEQIEvO3GTtRLPd5/fibEove2/puvbiiYHvzNb2es4+pavLpySsv1WiG3Y3ndM5YHwpV3/OreWRr5c5DW/ujESp5hep9kQBAEijyrVjai4a+/RfAKCBqzv5W7Qr9ktxEQ/cCPc9UIunobId0Ya3BXRN6FFo03JhooV1ZOXz6BEETAr4EvRJmaOEjGWk2bkLT8f5uBGQb28LYvqiKLPwWuQsgvTicWII3AIpURXmigB4/9I8cQ0k1qHLtIIQXEQ5VSGa4SGlA8Mp/O0OJhfxNRkcAPfS+rwhksilZONun5ddFRpvEJCWAGPQSqRfWzNdVBp6+KWrUEicu+ML7kT/aL0JlzbB5ZVoQcAcDUVSY67s+dnk30LyYz1ODIptYW01ov4iEuh1kxWLlzwWk94Ma9c0RPiosGkSnxj+fWBJQ+HMhc5XYeAJ3Ueg+KqiYCkNTrpmtUBaJDtTagBhNaCAhW8PNlHi945NGnyopMAtiazqw0rEsftdNhsR9sq5YgN0dz2Z1Sdd39m538HdAdaXv7/y/2f5pHVZWKGuULvX991aFdt9NOS6ecJiMnPWnu3FNXVl0xD5zCxO6aIednNeV0WhzRW5NfNaOrK3i9OYQvPtxO2CzL7fjNxWVsqdH12P3MU5i+z1HrS6MgZ4j/k42X2PU2EeCGIzLUsEnQz/L2n6q6rmzW2H05X9ETU4arMEC71U/DIsV8BX0saQpLllaa/u5q9aec1hPiXbGrZwn1HzjyiJgFlje5Ug+chuJxJQbxENODIuRezPbzLwPWRU8gfJ5beIrc8y/DcIL9V6sHTyu+DIacV1MeVl+8Itui8h75VZs+OCONOHMnX13WodMqmH4IlTK8Wks7aVa0mnsFzuqpvr9mJi/poNAS54wG+T2U3yVfBa+qbwMkZHi82gxCwRcBcAtlb5d02xWSDwklsJ2xNHCA3/7LxSENmdOipD0A7TYk5eL5iLhoU5MHRMxpLdcYcwpN30hM0R0DZMCSGup8EVEWPFiUwbsq8wgXPYeyaK/uXMlWektKLC2gcPGz0LEyARU6LkdQE7S9FISnlatNGlRi3Zr6EfUVmgFaY48iK/PqQrkqtTA36qZJnc5qJhwESkVrdjEHtZbkB+QT/Y+vnb6Ic4jAp0+L4ayeHJZabuKM536dhUnTu5AxDoQGoUFHtzhNjwKkhGNuNITny095fsBEGZR6bFzpeSid/cQkF4mbAJiVcFzKXs9OO5YboUMZKqpxgoDSnV3JppIma+vnQNxIgiUK45c9f/325uvvSy6ibwPyJvEJMMVtmlDi08Y2OGv8pyQnQsOtSxRQ/kTYIGs3F61U2ZQal9TCk9RlIBPl0weX37wP9Ngvr2l8zI6GtX/isiJ5R7OEvRLtCs2113d7hG6/trJDo9PsHRfVr2imOkRAcsd0ISfVPfqwfiir1aH0aQ6rOVeP9XnGcB56wK3bCx7KNLgM8u9i6Ufap1vMseH15SG0LYOo8sjVbudMv+hjtF3piQ0Me+vvgbwl9zZaidZu12OsDpSWjJKTewhq0nnVxZlPya4H8MCZA+FsiRqzbsiaERDzpHqXbgYWVwVI2Rz8HROUh4yt78yoKniMIbK+WV53uUxLD7//cPqTpcCzDMeZ7dCVWJfOraUbfEbUuvwOMpTu3z6lBSh2lIiV4ZWGM+nQtb4/Eim6njlSbXxQXKm9O6YFGF7IlXrgJVWzUKhY3xMex0wT2uKZq3EZgBVa1ZeRCptPEe5D3AXpuH8196qgQ9wblZ30qhIMLya9RXXy3wirax2aSyerUDFk1Yd+zSE09//6zINVmjIfTjhvuyu+MyOji+FNHBjOj2Lg0QkX05BpnhZKTxUqk4pSzPbm8waI1Duyx+Sml/x1TrdDs/o3BKd8RLeKNumBDkUi+dvSwNY9MuYlz21Ht2sdFvTyKD18sypVNXR79GeyFe7gp1s7fkL4Mw+0zkxKcnHvU3vt5er3fs7sXdJV/RNhIvkpLrH+AT/7YL+H+CL6AvRNW0I5uIUIoSmXkSN6wcnPrRPbml4KvxhAY9464xjydFI0L+AxoMMGRhZ/lQVw/TclZ6nRwiiDjxyyW2bYGXoYw9gt842VdLU4uN2bvRZscxXg5lRHC1JA3HDPB8PI5i40SPvXldSSbYhD9OwoOcOpNZPpxltCmo0b4JAiVfpqZsgMdopxqeS2R6/16Wxxm/bMmDDSQ+PKArNLWpjGx7kQ0rrVigieI6/2w/zPZ+n5KcLhaFT6tg0gnWuACyy7aA2Ttkmr+RZIGW3cDn7zn3DQ+P3e2U6DBKNzy6q529TNI3qTSt/46qTrRtQodWN7NXpgjqCg6UvGw/WNZoUfq4d8QgBbbmgdrSIdXr+on3XEaKpbfLTkURYBOwtV3TQkursWodZz5sJrUyO5q22affR1+LptJHP1JL/iPteKal/cyp1HKkUv5Ua53hmOcIhLgbyweVFPWZxpBZq4mLPWc7Mln+HJGpslsrIETKvBDm0GGelXKao4ZvbGn/mmuS+FjPB0U/GDx8QjzouSm+tyWdvx/NBZeWQsfS+lFiP7Z8kejKJWVZgC/rs/H753rdeAJL59uH28ub99zBR0WLT2fUqpXlqLf/dWO1vCSdxLhkszYe/+NwA1924wtihzIzeOlywa4iGgAqc3C0QQKFbE7ELHijKHfKVcapGV+p5WxvkydMC8vLXwkO/d3gqwjYWpQeW7KuuOKRjrACQvZVgDIHlZeOTtw0OsZyU2P3hctuLPnx8ZH5SzoLRaQCNT1UQ72ak0pTSeokHQbZeFnRBTopb1IsFGvdLukuk8E7yl6fEe4RLKmlI/w4pJrYao5Tqte/BGkBT8CUIcdZ3rtVb5AxyEF2+H7Ox75q0AK2jueja+FyGE7ENNMAuS5nY0+3FCyxZoOx9SZ1tj+8IAy1BCGXwkwWuX3lO9t3tqIXXDlvaTeWMHM6XK97PgxRkjMSpCWqZ4oiQA", "base64")).toString()), VL)
    });
    var Jle = w((iT, nT) => {
        (function (t) {
            iT && typeof iT == "object" && typeof nT != "undefined" ? nT.exports = t() : typeof define == "function" && define.amd ? define([], t) : typeof window != "undefined" ? window.isWindows = t() : typeof global != "undefined" ? global.isWindows = t() : typeof self != "undefined" ? self.isWindows = t() : this.isWindows = t()
        })(function () {
            "use strict";
            return function () {
                return process && (process.platform === "win32" || /^(msys|cygwin)$/.test(process.env.OSTYPE))
            }
        })
    });
    var Vle = w((iSt, Wle) => {
        "use strict";
        sT.ifExists = m5e;
        var Ah = require("util"), Ws = require("path"), zle = Jle(),
            E5e = /^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,
            I5e = {createPwshFile: !0, createCmdFile: zle(), fs: require("fs")},
            y5e = new Map([[".js", "node"], [".cjs", "node"], [".mjs", "node"], [".cmd", "cmd"], [".bat", "cmd"], [".ps1", "pwsh"], [".sh", "sh"]]);

        function _le(t) {
            let e = N(N({}, I5e), t), r = e.fs;
            return e.fs_ = {
                chmod: r.chmod ? Ah.promisify(r.chmod) : async () => {
                },
                mkdir: Ah.promisify(r.mkdir),
                readFile: Ah.promisify(r.readFile),
                stat: Ah.promisify(r.stat),
                unlink: Ah.promisify(r.unlink),
                writeFile: Ah.promisify(r.writeFile)
            }, e
        }

        async function sT(t, e, r) {
            let i = _le(r);
            await i.fs_.stat(t), await w5e(t, e, i)
        }

        function m5e(t, e, r) {
            return sT(t, e, r).catch(() => {
            })
        }

        function B5e(t, e) {
            return e.fs_.unlink(t).catch(() => {
            })
        }

        async function w5e(t, e, r) {
            let i = await v5e(t, r);
            return await b5e(e, r), Q5e(t, e, i, r)
        }

        function b5e(t, e) {
            return e.fs_.mkdir(Ws.dirname(t), {recursive: !0})
        }

        function Q5e(t, e, r, i) {
            let n = _le(i), s = [{generator: x5e, extension: ""}];
            return n.createCmdFile && s.push({
                generator: k5e,
                extension: ".cmd"
            }), n.createPwshFile && s.push({
                generator: P5e,
                extension: ".ps1"
            }), Promise.all(s.map(o => S5e(t, e + o.extension, r, o.generator, n)))
        }

        function D5e(t, e) {
            return B5e(t, e)
        }

        function F5e(t, e) {
            return R5e(t, e)
        }

        async function v5e(t, e) {
            let n = (await e.fs_.readFile(t, "utf8")).trim().split(/\r*\n/)[0].match(E5e);
            if (!n) {
                let s = Ws.extname(t).toLowerCase();
                return {program: y5e.get(s) || null, additionalArgs: ""}
            }
            return {program: n[1], additionalArgs: n[2]}
        }

        async function S5e(t, e, r, i, n) {
            let s = n.preserveSymlinks ? "--preserve-symlinks" : "", o = [r.additionalArgs, s].filter(a => a).join(" ");
            return n = Object.assign({}, n, {
                prog: r.program,
                args: o
            }), await D5e(e, n), await n.fs_.writeFile(e, i(t, e, n), "utf8"), F5e(e, n)
        }

        function k5e(t, e, r) {
            let n = Ws.relative(Ws.dirname(e), t).split("/").join("\\"),
                s = Ws.isAbsolute(n) ? `"${n}"` : `"%~dp0\\${n}"`, o, a = r.prog, l = r.args || "",
                c = oT(r.nodePath).win32;
            a ? (o = `"%~dp0\\${a}.exe"`, n = s) : (a = s, l = "", n = "");
            let u = r.progArgs ? `${r.progArgs.join(" ")} ` : "", g = c ? `@SET NODE_PATH=${c}\r
` : "";
            return o ? g += `@IF EXIST ${o} (\r
  ${o} ${l} ${n} ${u}%*\r
) ELSE (\r
  @SETLOCAL\r
  @SET PATHEXT=%PATHEXT:;.JS;=;%\r
  ${a} ${l} ${n} ${u}%*\r
)\r
` : g += `@${a} ${l} ${n} ${u}%*\r
`, g
        }

        function x5e(t, e, r) {
            let i = Ws.relative(Ws.dirname(e), t), n = r.prog && r.prog.split("\\").join("/"), s;
            i = i.split("\\").join("/");
            let o = Ws.isAbsolute(i) ? `"${i}"` : `"$basedir/${i}"`, a = r.args || "", l = oT(r.nodePath).posix;
            n ? (s = `"$basedir/${r.prog}"`, i = o) : (n = o, a = "", i = "");
            let c = r.progArgs ? `${r.progArgs.join(" ")} ` : "", u = `#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')")

case \`uname\` in
    *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;;
esac

`, g = r.nodePath ? `export NODE_PATH="${l}"
` : "";
            return s ? u += `${g}if [ -x ${s} ]; then
  exec ${s} ${a} ${i} ${c}"$@"
else
  exec ${n} ${a} ${i} ${c}"$@"
fi
` : u += `${g}${n} ${a} ${i} ${c}"$@"
exit $?
`, u
        }

        function P5e(t, e, r) {
            let i = Ws.relative(Ws.dirname(e), t), n = r.prog && r.prog.split("\\").join("/"), s = n && `"${n}$exe"`, o;
            i = i.split("\\").join("/");
            let a = Ws.isAbsolute(i) ? `"${i}"` : `"$basedir/${i}"`, l = r.args || "", c = oT(r.nodePath), u = c.win32,
                g = c.posix;
            s ? (o = `"$basedir/${r.prog}$exe"`, i = a) : (s = a, l = "", i = "");
            let f = r.progArgs ? `${r.progArgs.join(" ")} ` : "", h = `#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent

$exe=""
${r.nodePath ? `$env_node_path=$env:NODE_PATH
$env:NODE_PATH="${u}"
` : ""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
  # Fix case when both the Windows and Linux builds of Node
  # are installed in the same directory
  $exe=".exe"
}`;
            return r.nodePath && (h += ` else {
  $env:NODE_PATH="${g}"
}`), o ? h += `
$ret=0
if (Test-Path ${o}) {
  # Support pipeline input
  if ($MyInvocation.ExpectingInput) {
    $input | & ${o} ${l} ${i} ${f}$args
  } else {
    & ${o} ${l} ${i} ${f}$args
  }
  $ret=$LASTEXITCODE
} else {
  # Support pipeline input
  if ($MyInvocation.ExpectingInput) {
    $input | & ${s} ${l} ${i} ${f}$args
  } else {
    & ${s} ${l} ${i} ${f}$args
  }
  $ret=$LASTEXITCODE
}
${r.nodePath ? `$env:NODE_PATH=$env_node_path
` : ""}exit $ret
` : h += `
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
  $input | & ${s} ${l} ${i} ${f}$args
} else {
  & ${s} ${l} ${i} ${f}$args
}
${r.nodePath ? `$env:NODE_PATH=$env_node_path
` : ""}exit $LASTEXITCODE
`, h
        }

        function R5e(t, e) {
            return e.fs_.chmod(t, 493)
        }

        function oT(t) {
            if (!t) return {win32: "", posix: ""};
            let e = typeof t == "string" ? t.split(Ws.delimiter) : Array.from(t), r = {};
            for (let i = 0; i < e.length; i++) {
                let n = e[i].split("/").join("\\"),
                    s = zle() ? e[i].split("\\").join("/").replace(/^([^:\\/]*):/, (o, a) => `/mnt/${a.toLowerCase()}`) : e[i];
                r.win32 = r.win32 ? `${r.win32};${n}` : n, r.posix = r.posix ? `${r.posix}:${s}` : s, r[i] = {
                    win32: n,
                    posix: s
                }
            }
            return r
        }

        Wle.exports = sT
    });
    var yT = w((Kkt, dce) => {
        dce.exports = require("stream")
    });
    var Ice = w((Ukt, Cce) => {
        "use strict";

        function mce(t, e) {
            var r = Object.keys(t);
            if (Object.getOwnPropertySymbols) {
                var i = Object.getOwnPropertySymbols(t);
                e && (i = i.filter(function (n) {
                    return Object.getOwnPropertyDescriptor(t, n).enumerable
                })), r.push.apply(r, i)
            }
            return r
        }

        function $5e(t) {
            for (var e = 1; e < arguments.length; e++) {
                var r = arguments[e] != null ? arguments[e] : {};
                e % 2 ? mce(Object(r), !0).forEach(function (i) {
                    Z5e(t, i, r[i])
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) : mce(Object(r)).forEach(function (i) {
                    Object.defineProperty(t, i, Object.getOwnPropertyDescriptor(r, i))
                })
            }
            return t
        }

        function Z5e(t, e, r) {
            return e in t ? Object.defineProperty(t, e, {
                value: r,
                enumerable: !0,
                configurable: !0,
                writable: !0
            }) : t[e] = r, t
        }

        function e_e(t, e) {
            if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
        }

        function Ece(t, e) {
            for (var r = 0; r < e.length; r++) {
                var i = e[r];
                i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
            }
        }

        function t_e(t, e, r) {
            return e && Ece(t.prototype, e), r && Ece(t, r), t
        }

        var r_e = require("buffer"), yb = r_e.Buffer, i_e = require("util"), wT = i_e.inspect,
            n_e = wT && wT.custom || "inspect";

        function s_e(t, e, r) {
            yb.prototype.copy.call(t, e, r)
        }

        Cce.exports = function () {
            function t() {
                e_e(this, t), this.head = null, this.tail = null, this.length = 0
            }

            return t_e(t, [{
                key: "push", value: function (r) {
                    var i = {data: r, next: null};
                    this.length > 0 ? this.tail.next = i : this.head = i, this.tail = i, ++this.length
                }
            }, {
                key: "unshift", value: function (r) {
                    var i = {data: r, next: this.head};
                    this.length === 0 && (this.tail = i), this.head = i, ++this.length
                }
            }, {
                key: "shift", value: function () {
                    if (this.length !== 0) {
                        var r = this.head.data;
                        return this.length === 1 ? this.head = this.tail = null : this.head = this.head.next, --this.length, r
                    }
                }
            }, {
                key: "clear", value: function () {
                    this.head = this.tail = null, this.length = 0
                }
            }, {
                key: "join", value: function (r) {
                    if (this.length === 0) return "";
                    for (var i = this.head, n = "" + i.data; i = i.next;) n += r + i.data;
                    return n
                }
            }, {
                key: "concat", value: function (r) {
                    if (this.length === 0) return yb.alloc(0);
                    for (var i = yb.allocUnsafe(r >>> 0), n = this.head, s = 0; n;) s_e(n.data, i, s), s += n.data.length, n = n.next;
                    return i
                }
            }, {
                key: "consume", value: function (r, i) {
                    var n;
                    return r < this.head.data.length ? (n = this.head.data.slice(0, r), this.head.data = this.head.data.slice(r)) : r === this.head.data.length ? n = this.shift() : n = i ? this._getString(r) : this._getBuffer(r), n
                }
            }, {
                key: "first", value: function () {
                    return this.head.data
                }
            }, {
                key: "_getString", value: function (r) {
                    var i = this.head, n = 1, s = i.data;
                    for (r -= s.length; i = i.next;) {
                        var o = i.data, a = r > o.length ? o.length : r;
                        if (a === o.length ? s += o : s += o.slice(0, r), r -= a, r === 0) {
                            a === o.length ? (++n, i.next ? this.head = i.next : this.head = this.tail = null) : (this.head = i, i.data = o.slice(a));
                            break
                        }
                        ++n
                    }
                    return this.length -= n, s
                }
            }, {
                key: "_getBuffer", value: function (r) {
                    var i = yb.allocUnsafe(r), n = this.head, s = 1;
                    for (n.data.copy(i), r -= n.data.length; n = n.next;) {
                        var o = n.data, a = r > o.length ? o.length : r;
                        if (o.copy(i, i.length - r, 0, a), r -= a, r === 0) {
                            a === o.length ? (++s, n.next ? this.head = n.next : this.head = this.tail = null) : (this.head = n, n.data = o.slice(a));
                            break
                        }
                        ++s
                    }
                    return this.length -= s, i
                }
            }, {
                key: n_e, value: function (r, i) {
                    return wT(this, $5e({}, i, {depth: 0, customInspect: !1}))
                }
            }]), t
        }()
    });
    var bT = w((Hkt, yce) => {
        "use strict";

        function o_e(t, e) {
            var r = this, i = this._readableState && this._readableState.destroyed,
                n = this._writableState && this._writableState.destroyed;
            return i || n ? (e ? e(t) : t && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, process.nextTick(BT, this, t)) : process.nextTick(BT, this, t)), this) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(t || null, function (s) {
                !e && s ? r._writableState ? r._writableState.errorEmitted ? process.nextTick(wb, r) : (r._writableState.errorEmitted = !0, process.nextTick(wce, r, s)) : process.nextTick(wce, r, s) : e ? (process.nextTick(wb, r), e(s)) : process.nextTick(wb, r)
            }), this)
        }

        function wce(t, e) {
            BT(t, e), wb(t)
        }

        function wb(t) {
            t._writableState && !t._writableState.emitClose || t._readableState && !t._readableState.emitClose || t.emit("close")
        }

        function a_e() {
            this._readableState && (this._readableState.destroyed = !1, this._readableState.reading = !1, this._readableState.ended = !1, this._readableState.endEmitted = !1), this._writableState && (this._writableState.destroyed = !1, this._writableState.ended = !1, this._writableState.ending = !1, this._writableState.finalCalled = !1, this._writableState.prefinished = !1, this._writableState.finished = !1, this._writableState.errorEmitted = !1)
        }

        function BT(t, e) {
            t.emit("error", e)
        }

        function A_e(t, e) {
            var r = t._readableState, i = t._writableState;
            r && r.autoDestroy || i && i.autoDestroy ? t.destroy(e) : t.emit("error", e)
        }

        yce.exports = {destroy: o_e, undestroy: a_e, errorOrDestroy: A_e}
    });
    var Ll = w((Gkt, Bce) => {
        "use strict";
        var bce = {};

        function zs(t, e, r) {
            r || (r = Error);

            function i(s, o, a) {
                return typeof e == "string" ? e : e(s, o, a)
            }

            class n extends r {
                constructor(o, a, l) {
                    super(i(o, a, l))
                }
            }

            n.prototype.name = r.name, n.prototype.code = t, bce[t] = n
        }

        function Qce(t, e) {
            if (Array.isArray(t)) {
                let r = t.length;
                return t = t.map(i => String(i)), r > 2 ? `one of ${e} ${t.slice(0, r - 1).join(", ")}, or ` + t[r - 1] : r === 2 ? `one of ${e} ${t[0]} or ${t[1]}` : `of ${e} ${t[0]}`
            } else return `of ${e} ${String(t)}`
        }

        function l_e(t, e, r) {
            return t.substr(!r || r < 0 ? 0 : +r, e.length) === e
        }

        function c_e(t, e, r) {
            return (r === void 0 || r > t.length) && (r = t.length), t.substring(r - e.length, r) === e
        }

        function u_e(t, e, r) {
            return typeof r != "number" && (r = 0), r + e.length > t.length ? !1 : t.indexOf(e, r) !== -1
        }

        zs("ERR_INVALID_OPT_VALUE", function (t, e) {
            return 'The value "' + e + '" is invalid for option "' + t + '"'
        }, TypeError);
        zs("ERR_INVALID_ARG_TYPE", function (t, e, r) {
            let i;
            typeof e == "string" && l_e(e, "not ") ? (i = "must not be", e = e.replace(/^not /, "")) : i = "must be";
            let n;
            if (c_e(t, " argument")) n = `The ${t} ${i} ${Qce(e, "type")}`; else {
                let s = u_e(t, ".") ? "property" : "argument";
                n = `The "${t}" ${s} ${i} ${Qce(e, "type")}`
            }
            return n += `. Received type ${typeof r}`, n
        }, TypeError);
        zs("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF");
        zs("ERR_METHOD_NOT_IMPLEMENTED", function (t) {
            return "The " + t + " method is not implemented"
        });
        zs("ERR_STREAM_PREMATURE_CLOSE", "Premature close");
        zs("ERR_STREAM_DESTROYED", function (t) {
            return "Cannot call " + t + " after a stream was destroyed"
        });
        zs("ERR_MULTIPLE_CALLBACK", "Callback called multiple times");
        zs("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable");
        zs("ERR_STREAM_WRITE_AFTER_END", "write after end");
        zs("ERR_STREAM_NULL_VALUES", "May not write null values to stream", TypeError);
        zs("ERR_UNKNOWN_ENCODING", function (t) {
            return "Unknown encoding: " + t
        }, TypeError);
        zs("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event");
        Bce.exports.codes = bce
    });
    var QT = w((jkt, vce) => {
        "use strict";
        var g_e = Ll().codes.ERR_INVALID_OPT_VALUE;

        function f_e(t, e, r) {
            return t.highWaterMark != null ? t.highWaterMark : e ? t[r] : null
        }

        function h_e(t, e, r, i) {
            var n = f_e(e, i, r);
            if (n != null) {
                if (!(isFinite(n) && Math.floor(n) === n) || n < 0) {
                    var s = i ? r : "highWaterMark";
                    throw new g_e(s, n)
                }
                return Math.floor(n)
            }
            return t.objectMode ? 16 : 16 * 1024
        }

        vce.exports = {getHighWaterMark: h_e}
    });
    var Sce = w((Ykt, vT) => {
        typeof Object.create == "function" ? vT.exports = function (e, r) {
            r && (e.super_ = r, e.prototype = Object.create(r.prototype, {
                constructor: {
                    value: e,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }))
        } : vT.exports = function (e, r) {
            if (r) {
                e.super_ = r;
                var i = function () {
                };
                i.prototype = r.prototype, e.prototype = new i, e.prototype.constructor = e
            }
        }
    });
    var Tl = w((qkt, ST) => {
        try {
            if (kT = require("util"), typeof kT.inherits != "function") throw"";
            ST.exports = kT.inherits
        } catch (t) {
            ST.exports = Sce()
        }
        var kT
    });
    var xce = w((Jkt, kce) => {
        kce.exports = require("util").deprecate
    });
    var DT = w((Wkt, Pce) => {
        "use strict";
        Pce.exports = jr;

        function Dce(t) {
            var e = this;
            this.next = null, this.entry = null, this.finish = function () {
                p_e(e, t)
            }
        }

        var uh;
        jr.WritableState = Vm;
        var d_e = {deprecate: xce()}, Rce = yT(), Bb = require("buffer").Buffer,
            C_e = global.Uint8Array || function () {
            };

        function m_e(t) {
            return Bb.from(t)
        }

        function E_e(t) {
            return Bb.isBuffer(t) || t instanceof C_e
        }

        var xT = bT(), I_e = QT(), y_e = I_e.getHighWaterMark, Ol = Ll().codes, w_e = Ol.ERR_INVALID_ARG_TYPE,
            B_e = Ol.ERR_METHOD_NOT_IMPLEMENTED, b_e = Ol.ERR_MULTIPLE_CALLBACK, Q_e = Ol.ERR_STREAM_CANNOT_PIPE,
            v_e = Ol.ERR_STREAM_DESTROYED, S_e = Ol.ERR_STREAM_NULL_VALUES, k_e = Ol.ERR_STREAM_WRITE_AFTER_END,
            x_e = Ol.ERR_UNKNOWN_ENCODING, gh = xT.errorOrDestroy;
        Tl()(jr, Rce);

        function P_e() {
        }

        function Vm(t, e, r) {
            uh = uh || Su(), t = t || {}, typeof r != "boolean" && (r = e instanceof uh), this.objectMode = !!t.objectMode, r && (this.objectMode = this.objectMode || !!t.writableObjectMode), this.highWaterMark = y_e(this, t, "writableHighWaterMark", r), this.finalCalled = !1, this.needDrain = !1, this.ending = !1, this.ended = !1, this.finished = !1, this.destroyed = !1;
            var i = t.decodeStrings === !1;
            this.decodeStrings = !i, this.defaultEncoding = t.defaultEncoding || "utf8", this.length = 0, this.writing = !1, this.corked = 0, this.sync = !0, this.bufferProcessing = !1, this.onwrite = function (n) {
                D_e(e, n)
            }, this.writecb = null, this.writelen = 0, this.bufferedRequest = null, this.lastBufferedRequest = null, this.pendingcb = 0, this.prefinished = !1, this.errorEmitted = !1, this.emitClose = t.emitClose !== !1, this.autoDestroy = !!t.autoDestroy, this.bufferedRequestCount = 0, this.corkedRequestsFree = new Dce(this)
        }

        Vm.prototype.getBuffer = function () {
            for (var e = this.bufferedRequest, r = []; e;) r.push(e), e = e.next;
            return r
        };
        (function () {
            try {
                Object.defineProperty(Vm.prototype, "buffer", {
                    get: d_e.deprecate(function () {
                        return this.getBuffer()
                    }, "_writableState.buffer is deprecated. Use _writableState.getBuffer instead.", "DEP0003")
                })
            } catch (t) {
            }
        })();
        var bb;
        typeof Symbol == "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] == "function" ? (bb = Function.prototype[Symbol.hasInstance], Object.defineProperty(jr, Symbol.hasInstance, {
            value: function (e) {
                return bb.call(this, e) ? !0 : this !== jr ? !1 : e && e._writableState instanceof Vm
            }
        })) : bb = function (e) {
            return e instanceof this
        };

        function jr(t) {
            uh = uh || Su();
            var e = this instanceof uh;
            if (!e && !bb.call(jr, this)) return new jr(t);
            this._writableState = new Vm(t, this, e), this.writable = !0, t && (typeof t.write == "function" && (this._write = t.write), typeof t.writev == "function" && (this._writev = t.writev), typeof t.destroy == "function" && (this._destroy = t.destroy), typeof t.final == "function" && (this._final = t.final)), Rce.call(this)
        }

        jr.prototype.pipe = function () {
            gh(this, new Q_e)
        };

        function R_e(t, e) {
            var r = new k_e;
            gh(t, r), process.nextTick(e, r)
        }

        function F_e(t, e, r, i) {
            var n;
            return r === null ? n = new S_e : typeof r != "string" && !e.objectMode && (n = new w_e("chunk", ["string", "Buffer"], r)), n ? (gh(t, n), process.nextTick(i, n), !1) : !0
        }

        jr.prototype.write = function (t, e, r) {
            var i = this._writableState, n = !1, s = !i.objectMode && E_e(t);
            return s && !Bb.isBuffer(t) && (t = m_e(t)), typeof e == "function" && (r = e, e = null), s ? e = "buffer" : e || (e = i.defaultEncoding), typeof r != "function" && (r = P_e), i.ending ? R_e(this, r) : (s || F_e(this, i, t, r)) && (i.pendingcb++, n = N_e(this, i, s, t, e, r)), n
        };
        jr.prototype.cork = function () {
            this._writableState.corked++
        };
        jr.prototype.uncork = function () {
            var t = this._writableState;
            t.corked && (t.corked--, !t.writing && !t.corked && !t.bufferProcessing && t.bufferedRequest && Fce(this, t))
        };
        jr.prototype.setDefaultEncoding = function (e) {
            if (typeof e == "string" && (e = e.toLowerCase()), !(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((e + "").toLowerCase()) > -1)) throw new x_e(e);
            return this._writableState.defaultEncoding = e, this
        };
        Object.defineProperty(jr.prototype, "writableBuffer", {
            enumerable: !1, get: function () {
                return this._writableState && this._writableState.getBuffer()
            }
        });

        function L_e(t, e, r) {
            return !t.objectMode && t.decodeStrings !== !1 && typeof e == "string" && (e = Bb.from(e, r)), e
        }

        Object.defineProperty(jr.prototype, "writableHighWaterMark", {
            enumerable: !1, get: function () {
                return this._writableState.highWaterMark
            }
        });

        function N_e(t, e, r, i, n, s) {
            if (!r) {
                var o = L_e(e, i, n);
                i !== o && (r = !0, n = "buffer", i = o)
            }
            var a = e.objectMode ? 1 : i.length;
            e.length += a;
            var l = e.length < e.highWaterMark;
            if (l || (e.needDrain = !0), e.writing || e.corked) {
                var c = e.lastBufferedRequest;
                e.lastBufferedRequest = {
                    chunk: i,
                    encoding: n,
                    isBuf: r,
                    callback: s,
                    next: null
                }, c ? c.next = e.lastBufferedRequest : e.bufferedRequest = e.lastBufferedRequest, e.bufferedRequestCount += 1
            } else PT(t, e, !1, a, i, n, s);
            return l
        }

        function PT(t, e, r, i, n, s, o) {
            e.writelen = i, e.writecb = o, e.writing = !0, e.sync = !0, e.destroyed ? e.onwrite(new v_e("write")) : r ? t._writev(n, e.onwrite) : t._write(n, s, e.onwrite), e.sync = !1
        }

        function T_e(t, e, r, i, n) {
            --e.pendingcb, r ? (process.nextTick(n, i), process.nextTick(Xm, t, e), t._writableState.errorEmitted = !0, gh(t, i)) : (n(i), t._writableState.errorEmitted = !0, gh(t, i), Xm(t, e))
        }

        function O_e(t) {
            t.writing = !1, t.writecb = null, t.length -= t.writelen, t.writelen = 0
        }

        function D_e(t, e) {
            var r = t._writableState, i = r.sync, n = r.writecb;
            if (typeof n != "function") throw new b_e;
            if (O_e(r), e) T_e(t, r, i, e, n); else {
                var s = Lce(r) || t.destroyed;
                !s && !r.corked && !r.bufferProcessing && r.bufferedRequest && Fce(t, r), i ? process.nextTick(Nce, t, r, s, n) : Nce(t, r, s, n)
            }
        }

        function Nce(t, e, r, i) {
            r || M_e(t, e), e.pendingcb--, i(), Xm(t, e)
        }

        function M_e(t, e) {
            e.length === 0 && e.needDrain && (e.needDrain = !1, t.emit("drain"))
        }

        function Fce(t, e) {
            e.bufferProcessing = !0;
            var r = e.bufferedRequest;
            if (t._writev && r && r.next) {
                var i = e.bufferedRequestCount, n = new Array(i), s = e.corkedRequestsFree;
                s.entry = r;
                for (var o = 0, a = !0; r;) n[o] = r, r.isBuf || (a = !1), r = r.next, o += 1;
                n.allBuffers = a, PT(t, e, !0, e.length, n, "", s.finish), e.pendingcb++, e.lastBufferedRequest = null, s.next ? (e.corkedRequestsFree = s.next, s.next = null) : e.corkedRequestsFree = new Dce(e), e.bufferedRequestCount = 0
            } else {
                for (; r;) {
                    var l = r.chunk, c = r.encoding, u = r.callback, g = e.objectMode ? 1 : l.length;
                    if (PT(t, e, !1, g, l, c, u), r = r.next, e.bufferedRequestCount--, e.writing) break
                }
                r === null && (e.lastBufferedRequest = null)
            }
            e.bufferedRequest = r, e.bufferProcessing = !1
        }

        jr.prototype._write = function (t, e, r) {
            r(new B_e("_write()"))
        };
        jr.prototype._writev = null;
        jr.prototype.end = function (t, e, r) {
            var i = this._writableState;
            return typeof t == "function" ? (r = t, t = null, e = null) : typeof e == "function" && (r = e, e = null), t != null && this.write(t, e), i.corked && (i.corked = 1, this.uncork()), i.ending || K_e(this, i, r), this
        };
        Object.defineProperty(jr.prototype, "writableLength", {
            enumerable: !1, get: function () {
                return this._writableState.length
            }
        });

        function Lce(t) {
            return t.ending && t.length === 0 && t.bufferedRequest === null && !t.finished && !t.writing
        }

        function U_e(t, e) {
            t._final(function (r) {
                e.pendingcb--, r && gh(t, r), e.prefinished = !0, t.emit("prefinish"), Xm(t, e)
            })
        }

        function H_e(t, e) {
            !e.prefinished && !e.finalCalled && (typeof t._final == "function" && !e.destroyed ? (e.pendingcb++, e.finalCalled = !0, process.nextTick(U_e, t, e)) : (e.prefinished = !0, t.emit("prefinish")))
        }

        function Xm(t, e) {
            var r = Lce(e);
            if (r && (H_e(t, e), e.pendingcb === 0 && (e.finished = !0, t.emit("finish"), e.autoDestroy))) {
                var i = t._readableState;
                (!i || i.autoDestroy && i.endEmitted) && t.destroy()
            }
            return r
        }

        function K_e(t, e, r) {
            e.ending = !0, Xm(t, e), r && (e.finished ? process.nextTick(r) : t.once("finish", r)), e.ended = !0, t.writable = !1
        }

        function p_e(t, e, r) {
            var i = t.entry;
            for (t.entry = null; i;) {
                var n = i.callback;
                e.pendingcb--, n(r), i = i.next
            }
            e.corkedRequestsFree.next = t
        }

        Object.defineProperty(jr.prototype, "destroyed", {
            enumerable: !1, get: function () {
                return this._writableState === void 0 ? !1 : this._writableState.destroyed
            }, set: function (e) {
                !this._writableState || (this._writableState.destroyed = e)
            }
        });
        jr.prototype.destroy = xT.destroy;
        jr.prototype._undestroy = xT.undestroy;
        jr.prototype._destroy = function (t, e) {
            e(t)
        }
    });
    var Su = w((zkt, Tce) => {
        "use strict";
        var G_e = Object.keys || function (t) {
            var e = [];
            for (var r in t) e.push(r);
            return e
        };
        Tce.exports = da;
        var Oce = RT(), FT = DT();
        Tl()(da, Oce);
        for (NT = G_e(FT.prototype), Qb = 0; Qb < NT.length; Qb++) vb = NT[Qb], da.prototype[vb] || (da.prototype[vb] = FT.prototype[vb]);
        var NT, vb, Qb;

        function da(t) {
            if (!(this instanceof da)) return new da(t);
            Oce.call(this, t), FT.call(this, t), this.allowHalfOpen = !0, t && (t.readable === !1 && (this.readable = !1), t.writable === !1 && (this.writable = !1), t.allowHalfOpen === !1 && (this.allowHalfOpen = !1, this.once("end", j_e)))
        }

        Object.defineProperty(da.prototype, "writableHighWaterMark", {
            enumerable: !1, get: function () {
                return this._writableState.highWaterMark
            }
        });
        Object.defineProperty(da.prototype, "writableBuffer", {
            enumerable: !1, get: function () {
                return this._writableState && this._writableState.getBuffer()
            }
        });
        Object.defineProperty(da.prototype, "writableLength", {
            enumerable: !1, get: function () {
                return this._writableState.length
            }
        });

        function j_e() {
            this._writableState.ended || process.nextTick(Y_e, this)
        }

        function Y_e(t) {
            t.end()
        }

        Object.defineProperty(da.prototype, "destroyed", {
            enumerable: !1, get: function () {
                return this._readableState === void 0 || this._writableState === void 0 ? !1 : this._readableState.destroyed && this._writableState.destroyed
            }, set: function (e) {
                this._readableState === void 0 || this._writableState === void 0 || (this._readableState.destroyed = e, this._writableState.destroyed = e)
            }
        })
    });
    var Uce = w((LT, Mce) => {
        var Sb = require("buffer"), bA = Sb.Buffer;

        function Kce(t, e) {
            for (var r in t) e[r] = t[r]
        }

        bA.from && bA.alloc && bA.allocUnsafe && bA.allocUnsafeSlow ? Mce.exports = Sb : (Kce(Sb, LT), LT.Buffer = fh);

        function fh(t, e, r) {
            return bA(t, e, r)
        }

        Kce(bA, fh);
        fh.from = function (t, e, r) {
            if (typeof t == "number") throw new TypeError("Argument must not be a number");
            return bA(t, e, r)
        };
        fh.alloc = function (t, e, r) {
            if (typeof t != "number") throw new TypeError("Argument must be a number");
            var i = bA(t);
            return e !== void 0 ? typeof r == "string" ? i.fill(e, r) : i.fill(e) : i.fill(0), i
        };
        fh.allocUnsafe = function (t) {
            if (typeof t != "number") throw new TypeError("Argument must be a number");
            return bA(t)
        };
        fh.allocUnsafeSlow = function (t) {
            if (typeof t != "number") throw new TypeError("Argument must be a number");
            return Sb.SlowBuffer(t)
        }
    });
    var MT = w(Hce => {
        "use strict";
        var TT = Uce().Buffer, Gce = TT.isEncoding || function (t) {
            switch (t = "" + t, t && t.toLowerCase()) {
                case"hex":
                case"utf8":
                case"utf-8":
                case"ascii":
                case"binary":
                case"base64":
                case"ucs2":
                case"ucs-2":
                case"utf16le":
                case"utf-16le":
                case"raw":
                    return !0;
                default:
                    return !1
            }
        };

        function q_e(t) {
            if (!t) return "utf8";
            for (var e; ;) switch (t) {
                case"utf8":
                case"utf-8":
                    return "utf8";
                case"ucs2":
                case"ucs-2":
                case"utf16le":
                case"utf-16le":
                    return "utf16le";
                case"latin1":
                case"binary":
                    return "latin1";
                case"base64":
                case"ascii":
                case"hex":
                    return t;
                default:
                    if (e) return;
                    t = ("" + t).toLowerCase(), e = !0
            }
        }

        function J_e(t) {
            var e = q_e(t);
            if (typeof e != "string" && (TT.isEncoding === Gce || !Gce(t))) throw new Error("Unknown encoding: " + t);
            return e || t
        }

        Hce.StringDecoder = Zm;

        function Zm(t) {
            this.encoding = J_e(t);
            var e;
            switch (this.encoding) {
                case"utf16le":
                    this.text = z_e, this.end = __e, e = 4;
                    break;
                case"utf8":
                    this.fillLast = W_e, e = 4;
                    break;
                case"base64":
                    this.text = V_e, this.end = X_e, e = 3;
                    break;
                default:
                    this.write = Z_e, this.end = $_e;
                    return
            }
            this.lastNeed = 0, this.lastTotal = 0, this.lastChar = TT.allocUnsafe(e)
        }

        Zm.prototype.write = function (t) {
            if (t.length === 0) return "";
            var e, r;
            if (this.lastNeed) {
                if (e = this.fillLast(t), e === void 0) return "";
                r = this.lastNeed, this.lastNeed = 0
            } else r = 0;
            return r < t.length ? e ? e + this.text(t, r) : this.text(t, r) : e || ""
        };
        Zm.prototype.end = e6e;
        Zm.prototype.text = t6e;
        Zm.prototype.fillLast = function (t) {
            if (this.lastNeed <= t.length) return t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
            t.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, t.length), this.lastNeed -= t.length
        };

        function OT(t) {
            return t <= 127 ? 0 : t >> 5 == 6 ? 2 : t >> 4 == 14 ? 3 : t >> 3 == 30 ? 4 : t >> 6 == 2 ? -1 : -2
        }

        function r6e(t, e, r) {
            var i = e.length - 1;
            if (i < r) return 0;
            var n = OT(e[i]);
            return n >= 0 ? (n > 0 && (t.lastNeed = n - 1), n) : --i < r || n === -2 ? 0 : (n = OT(e[i]), n >= 0 ? (n > 0 && (t.lastNeed = n - 2), n) : --i < r || n === -2 ? 0 : (n = OT(e[i]), n >= 0 ? (n > 0 && (n === 2 ? n = 0 : t.lastNeed = n - 3), n) : 0))
        }

        function i6e(t, e, r) {
            if ((e[0] & 192) != 128) return t.lastNeed = 0, "\uFFFD";
            if (t.lastNeed > 1 && e.length > 1) {
                if ((e[1] & 192) != 128) return t.lastNeed = 1, "\uFFFD";
                if (t.lastNeed > 2 && e.length > 2 && (e[2] & 192) != 128) return t.lastNeed = 2, "\uFFFD"
            }
        }

        function W_e(t) {
            var e = this.lastTotal - this.lastNeed, r = i6e(this, t, e);
            if (r !== void 0) return r;
            if (this.lastNeed <= t.length) return t.copy(this.lastChar, e, 0, this.lastNeed), this.lastChar.toString(this.encoding, 0, this.lastTotal);
            t.copy(this.lastChar, e, 0, t.length), this.lastNeed -= t.length
        }

        function t6e(t, e) {
            var r = r6e(this, t, e);
            if (!this.lastNeed) return t.toString("utf8", e);
            this.lastTotal = r;
            var i = t.length - (r - this.lastNeed);
            return t.copy(this.lastChar, 0, i), t.toString("utf8", e, i)
        }

        function e6e(t) {
            var e = t && t.length ? this.write(t) : "";
            return this.lastNeed ? e + "\uFFFD" : e
        }

        function z_e(t, e) {
            if ((t.length - e) % 2 == 0) {
                var r = t.toString("utf16le", e);
                if (r) {
                    var i = r.charCodeAt(r.length - 1);
                    if (i >= 55296 && i <= 56319) return this.lastNeed = 2, this.lastTotal = 4, this.lastChar[0] = t[t.length - 2], this.lastChar[1] = t[t.length - 1], r.slice(0, -1)
                }
                return r
            }
            return this.lastNeed = 1, this.lastTotal = 2, this.lastChar[0] = t[t.length - 1], t.toString("utf16le", e, t.length - 1)
        }

        function __e(t) {
            var e = t && t.length ? this.write(t) : "";
            if (this.lastNeed) {
                var r = this.lastTotal - this.lastNeed;
                return e + this.lastChar.toString("utf16le", 0, r)
            }
            return e
        }

        function V_e(t, e) {
            var r = (t.length - e) % 3;
            return r === 0 ? t.toString("base64", e) : (this.lastNeed = 3 - r, this.lastTotal = 3, r === 1 ? this.lastChar[0] = t[t.length - 1] : (this.lastChar[0] = t[t.length - 2], this.lastChar[1] = t[t.length - 1]), t.toString("base64", e, t.length - r))
        }

        function X_e(t) {
            var e = t && t.length ? this.write(t) : "";
            return this.lastNeed ? e + this.lastChar.toString("base64", 0, 3 - this.lastNeed) : e
        }

        function Z_e(t) {
            return t.toString(this.encoding)
        }

        function $_e(t) {
            return t && t.length ? this.write(t) : ""
        }
    });
    var kb = w((Vkt, jce) => {
        "use strict";
        var Yce = Ll().codes.ERR_STREAM_PREMATURE_CLOSE;

        function n6e(t) {
            var e = !1;
            return function () {
                if (!e) {
                    e = !0;
                    for (var r = arguments.length, i = new Array(r), n = 0; n < r; n++) i[n] = arguments[n];
                    t.apply(this, i)
                }
            }
        }

        function s6e() {
        }

        function o6e(t) {
            return t.setHeader && typeof t.abort == "function"
        }

        function qce(t, e, r) {
            if (typeof e == "function") return qce(t, null, e);
            e || (e = {}), r = n6e(r || s6e);
            var i = e.readable || e.readable !== !1 && t.readable, n = e.writable || e.writable !== !1 && t.writable,
                s = function () {
                    t.writable || a()
                }, o = t._writableState && t._writableState.finished, a = function () {
                    n = !1, o = !0, i || r.call(t)
                }, l = t._readableState && t._readableState.endEmitted, c = function () {
                    i = !1, l = !0, n || r.call(t)
                }, u = function (p) {
                    r.call(t, p)
                }, g = function () {
                    var p;
                    if (i && !l) return (!t._readableState || !t._readableState.ended) && (p = new Yce), r.call(t, p);
                    if (n && !o) return (!t._writableState || !t._writableState.ended) && (p = new Yce), r.call(t, p)
                }, f = function () {
                    t.req.on("finish", a)
                };
            return o6e(t) ? (t.on("complete", a), t.on("abort", g), t.req ? f() : t.on("request", f)) : n && !t._writableState && (t.on("end", s), t.on("close", s)), t.on("end", c), t.on("finish", a), e.error !== !1 && t.on("error", u), t.on("close", g), function () {
                t.removeListener("complete", a), t.removeListener("abort", g), t.removeListener("request", f), t.req && t.req.removeListener("finish", a), t.removeListener("end", s), t.removeListener("close", s), t.removeListener("finish", a), t.removeListener("end", c), t.removeListener("error", u), t.removeListener("close", g)
            }
        }

        jce.exports = qce
    });
    var Wce = w((Xkt, Jce) => {
        "use strict";
        var xb;

        function Ml(t, e, r) {
            return e in t ? Object.defineProperty(t, e, {
                value: r,
                enumerable: !0,
                configurable: !0,
                writable: !0
            }) : t[e] = r, t
        }

        var a6e = kb(), Kl = Symbol("lastResolve"), ku = Symbol("lastReject"), $m = Symbol("error"),
            Pb = Symbol("ended"), xu = Symbol("lastPromise"), KT = Symbol("handlePromise"), Pu = Symbol("stream");

        function Ul(t, e) {
            return {value: t, done: e}
        }

        function A6e(t) {
            var e = t[Kl];
            if (e !== null) {
                var r = t[Pu].read();
                r !== null && (t[xu] = null, t[Kl] = null, t[ku] = null, e(Ul(r, !1)))
            }
        }

        function l6e(t) {
            process.nextTick(A6e, t)
        }

        function c6e(t, e) {
            return function (r, i) {
                t.then(function () {
                    if (e[Pb]) {
                        r(Ul(void 0, !0));
                        return
                    }
                    e[KT](r, i)
                }, i)
            }
        }

        var u6e = Object.getPrototypeOf(function () {
        }), g6e = Object.setPrototypeOf((xb = {
            get stream() {
                return this[Pu]
            }, next: function () {
                var e = this, r = this[$m];
                if (r !== null) return Promise.reject(r);
                if (this[Pb]) return Promise.resolve(Ul(void 0, !0));
                if (this[Pu].destroyed) return new Promise(function (o, a) {
                    process.nextTick(function () {
                        e[$m] ? a(e[$m]) : o(Ul(void 0, !0))
                    })
                });
                var i = this[xu], n;
                if (i) n = new Promise(c6e(i, this)); else {
                    var s = this[Pu].read();
                    if (s !== null) return Promise.resolve(Ul(s, !1));
                    n = new Promise(this[KT])
                }
                return this[xu] = n, n
            }
        }, Ml(xb, Symbol.asyncIterator, function () {
            return this
        }), Ml(xb, "return", function () {
            var e = this;
            return new Promise(function (r, i) {
                e[Pu].destroy(null, function (n) {
                    if (n) {
                        i(n);
                        return
                    }
                    r(Ul(void 0, !0))
                })
            })
        }), xb), u6e), f6e = function (e) {
            var r, i = Object.create(g6e, (r = {}, Ml(r, Pu, {value: e, writable: !0}), Ml(r, Kl, {
                value: null,
                writable: !0
            }), Ml(r, ku, {value: null, writable: !0}), Ml(r, $m, {
                value: null,
                writable: !0
            }), Ml(r, Pb, {value: e._readableState.endEmitted, writable: !0}), Ml(r, KT, {
                value: function (s, o) {
                    var a = i[Pu].read();
                    a ? (i[xu] = null, i[Kl] = null, i[ku] = null, s(Ul(a, !1))) : (i[Kl] = s, i[ku] = o)
                }, writable: !0
            }), r));
            return i[xu] = null, a6e(e, function (n) {
                if (n && n.code !== "ERR_STREAM_PREMATURE_CLOSE") {
                    var s = i[ku];
                    s !== null && (i[xu] = null, i[Kl] = null, i[ku] = null, s(n)), i[$m] = n;
                    return
                }
                var o = i[Kl];
                o !== null && (i[xu] = null, i[Kl] = null, i[ku] = null, o(Ul(void 0, !0))), i[Pb] = !0
            }), e.on("readable", l6e.bind(null, i)), i
        };
        Jce.exports = f6e
    });
    var Xce = w((Zkt, zce) => {
        "use strict";

        function _ce(t, e, r, i, n, s, o) {
            try {
                var a = t[s](o), l = a.value
            } catch (c) {
                r(c);
                return
            }
            a.done ? e(l) : Promise.resolve(l).then(i, n)
        }

        function h6e(t) {
            return function () {
                var e = this, r = arguments;
                return new Promise(function (i, n) {
                    var s = t.apply(e, r);

                    function o(l) {
                        _ce(s, i, n, o, a, "next", l)
                    }

                    function a(l) {
                        _ce(s, i, n, o, a, "throw", l)
                    }

                    o(void 0)
                })
            }
        }

        function Vce(t, e) {
            var r = Object.keys(t);
            if (Object.getOwnPropertySymbols) {
                var i = Object.getOwnPropertySymbols(t);
                e && (i = i.filter(function (n) {
                    return Object.getOwnPropertyDescriptor(t, n).enumerable
                })), r.push.apply(r, i)
            }
            return r
        }

        function d6e(t) {
            for (var e = 1; e < arguments.length; e++) {
                var r = arguments[e] != null ? arguments[e] : {};
                e % 2 ? Vce(Object(r), !0).forEach(function (i) {
                    p6e(t, i, r[i])
                }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) : Vce(Object(r)).forEach(function (i) {
                    Object.defineProperty(t, i, Object.getOwnPropertyDescriptor(r, i))
                })
            }
            return t
        }

        function p6e(t, e, r) {
            return e in t ? Object.defineProperty(t, e, {
                value: r,
                enumerable: !0,
                configurable: !0,
                writable: !0
            }) : t[e] = r, t
        }

        var C6e = Ll().codes.ERR_INVALID_ARG_TYPE;

        function m6e(t, e, r) {
            var i;
            if (e && typeof e.next == "function") i = e; else if (e && e[Symbol.asyncIterator]) i = e[Symbol.asyncIterator](); else if (e && e[Symbol.iterator]) i = e[Symbol.iterator](); else throw new C6e("iterable", ["Iterable"], e);
            var n = new t(d6e({objectMode: !0}, r)), s = !1;
            n._read = function () {
                s || (s = !0, o())
            };

            function o() {
                return a.apply(this, arguments)
            }

            function a() {
                return a = h6e(function* () {
                    try {
                        var l = yield i.next(), c = l.value, u = l.done;
                        u ? n.push(null) : n.push(yield c) ? o() : s = !1
                    } catch (g) {
                        n.destroy(g)
                    }
                }), a.apply(this, arguments)
            }

            return n
        }

        zce.exports = m6e
    });
    var RT = w((ext, Zce) => {
        "use strict";
        Zce.exports = Ut;
        var hh;
        Ut.ReadableState = $ce;
        var $kt = require("events").EventEmitter, eue = function (e, r) {
            return e.listeners(r).length
        }, eE = yT(), Db = require("buffer").Buffer, E6e = global.Uint8Array || function () {
        };

        function I6e(t) {
            return Db.from(t)
        }

        function y6e(t) {
            return Db.isBuffer(t) || t instanceof E6e
        }

        var UT = require("util"), xt;
        UT && UT.debuglog ? xt = UT.debuglog("stream") : xt = function () {
        };
        var w6e = Ice(), HT = bT(), B6e = QT(), b6e = B6e.getHighWaterMark, Rb = Ll().codes,
            Q6e = Rb.ERR_INVALID_ARG_TYPE, v6e = Rb.ERR_STREAM_PUSH_AFTER_EOF, S6e = Rb.ERR_METHOD_NOT_IMPLEMENTED,
            k6e = Rb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT, ph, GT, jT;
        Tl()(Ut, eE);
        var tE = HT.errorOrDestroy, YT = ["error", "close", "destroy", "pause", "resume"];

        function x6e(t, e, r) {
            if (typeof t.prependListener == "function") return t.prependListener(e, r);
            !t._events || !t._events[e] ? t.on(e, r) : Array.isArray(t._events[e]) ? t._events[e].unshift(r) : t._events[e] = [r, t._events[e]]
        }

        function $ce(t, e, r) {
            hh = hh || Su(), t = t || {}, typeof r != "boolean" && (r = e instanceof hh), this.objectMode = !!t.objectMode, r && (this.objectMode = this.objectMode || !!t.readableObjectMode), this.highWaterMark = b6e(this, t, "readableHighWaterMark", r), this.buffer = new w6e, this.length = 0, this.pipes = null, this.pipesCount = 0, this.flowing = null, this.ended = !1, this.endEmitted = !1, this.reading = !1, this.sync = !0, this.needReadable = !1, this.emittedReadable = !1, this.readableListening = !1, this.resumeScheduled = !1, this.paused = !0, this.emitClose = t.emitClose !== !1, this.autoDestroy = !!t.autoDestroy, this.destroyed = !1, this.defaultEncoding = t.defaultEncoding || "utf8", this.awaitDrain = 0, this.readingMore = !1, this.decoder = null, this.encoding = null, t.encoding && (ph || (ph = MT().StringDecoder), this.decoder = new ph(t.encoding), this.encoding = t.encoding)
        }

        function Ut(t) {
            if (hh = hh || Su(), !(this instanceof Ut)) return new Ut(t);
            var e = this instanceof hh;
            this._readableState = new $ce(t, this, e), this.readable = !0, t && (typeof t.read == "function" && (this._read = t.read), typeof t.destroy == "function" && (this._destroy = t.destroy)), eE.call(this)
        }

        Object.defineProperty(Ut.prototype, "destroyed", {
            enumerable: !1, get: function () {
                return this._readableState === void 0 ? !1 : this._readableState.destroyed
            }, set: function (e) {
                !this._readableState || (this._readableState.destroyed = e)
            }
        });
        Ut.prototype.destroy = HT.destroy;
        Ut.prototype._undestroy = HT.undestroy;
        Ut.prototype._destroy = function (t, e) {
            e(t)
        };
        Ut.prototype.push = function (t, e) {
            var r = this._readableState, i;
            return r.objectMode ? i = !0 : typeof t == "string" && (e = e || r.defaultEncoding, e !== r.encoding && (t = Db.from(t, e), e = ""), i = !0), tue(this, t, e, !1, i)
        };
        Ut.prototype.unshift = function (t) {
            return tue(this, t, null, !0, !1)
        };

        function tue(t, e, r, i, n) {
            xt("readableAddChunk", e);
            var s = t._readableState;
            if (e === null) s.reading = !1, D6e(t, s); else {
                var o;
                if (n || (o = P6e(s, e)), o) tE(t, o); else if (s.objectMode || e && e.length > 0) if (typeof e != "string" && !s.objectMode && Object.getPrototypeOf(e) !== Db.prototype && (e = I6e(e)), i) s.endEmitted ? tE(t, new k6e) : qT(t, s, e, !0); else if (s.ended) tE(t, new v6e); else {
                    if (s.destroyed) return !1;
                    s.reading = !1, s.decoder && !r ? (e = s.decoder.write(e), s.objectMode || e.length !== 0 ? qT(t, s, e, !1) : JT(t, s)) : qT(t, s, e, !1)
                } else i || (s.reading = !1, JT(t, s))
            }
            return !s.ended && (s.length < s.highWaterMark || s.length === 0)
        }

        function qT(t, e, r, i) {
            e.flowing && e.length === 0 && !e.sync ? (e.awaitDrain = 0, t.emit("data", r)) : (e.length += e.objectMode ? 1 : r.length, i ? e.buffer.unshift(r) : e.buffer.push(r), e.needReadable && Fb(t)), JT(t, e)
        }

        function P6e(t, e) {
            var r;
            return !y6e(e) && typeof e != "string" && e !== void 0 && !t.objectMode && (r = new Q6e("chunk", ["string", "Buffer", "Uint8Array"], e)), r
        }

        Ut.prototype.isPaused = function () {
            return this._readableState.flowing === !1
        };
        Ut.prototype.setEncoding = function (t) {
            ph || (ph = MT().StringDecoder);
            var e = new ph(t);
            this._readableState.decoder = e, this._readableState.encoding = this._readableState.decoder.encoding;
            for (var r = this._readableState.buffer.head, i = ""; r !== null;) i += e.write(r.data), r = r.next;
            return this._readableState.buffer.clear(), i !== "" && this._readableState.buffer.push(i), this._readableState.length = i.length, this
        };
        var rue = 1073741824;

        function R6e(t) {
            return t >= rue ? t = rue : (t--, t |= t >>> 1, t |= t >>> 2, t |= t >>> 4, t |= t >>> 8, t |= t >>> 16, t++), t
        }

        function iue(t, e) {
            return t <= 0 || e.length === 0 && e.ended ? 0 : e.objectMode ? 1 : t !== t ? e.flowing && e.length ? e.buffer.head.data.length : e.length : (t > e.highWaterMark && (e.highWaterMark = R6e(t)), t <= e.length ? t : e.ended ? e.length : (e.needReadable = !0, 0))
        }

        Ut.prototype.read = function (t) {
            xt("read", t), t = parseInt(t, 10);
            var e = this._readableState, r = t;
            if (t !== 0 && (e.emittedReadable = !1), t === 0 && e.needReadable && ((e.highWaterMark !== 0 ? e.length >= e.highWaterMark : e.length > 0) || e.ended)) return xt("read: emitReadable", e.length, e.ended), e.length === 0 && e.ended ? WT(this) : Fb(this), null;
            if (t = iue(t, e), t === 0 && e.ended) return e.length === 0 && WT(this), null;
            var i = e.needReadable;
            xt("need readable", i), (e.length === 0 || e.length - t < e.highWaterMark) && (i = !0, xt("length less than watermark", i)), e.ended || e.reading ? (i = !1, xt("reading or ended", i)) : i && (xt("do read"), e.reading = !0, e.sync = !0, e.length === 0 && (e.needReadable = !0), this._read(e.highWaterMark), e.sync = !1, e.reading || (t = iue(r, e)));
            var n;
            return t > 0 ? n = nue(t, e) : n = null, n === null ? (e.needReadable = e.length <= e.highWaterMark, t = 0) : (e.length -= t, e.awaitDrain = 0), e.length === 0 && (e.ended || (e.needReadable = !0), r !== t && e.ended && WT(this)), n !== null && this.emit("data", n), n
        };

        function D6e(t, e) {
            if (xt("onEofChunk"), !e.ended) {
                if (e.decoder) {
                    var r = e.decoder.end();
                    r && r.length && (e.buffer.push(r), e.length += e.objectMode ? 1 : r.length)
                }
                e.ended = !0, e.sync ? Fb(t) : (e.needReadable = !1, e.emittedReadable || (e.emittedReadable = !0, sue(t)))
            }
        }

        function Fb(t) {
            var e = t._readableState;
            xt("emitReadable", e.needReadable, e.emittedReadable), e.needReadable = !1, e.emittedReadable || (xt("emitReadable", e.flowing), e.emittedReadable = !0, process.nextTick(sue, t))
        }

        function sue(t) {
            var e = t._readableState;
            xt("emitReadable_", e.destroyed, e.length, e.ended), !e.destroyed && (e.length || e.ended) && (t.emit("readable"), e.emittedReadable = !1), e.needReadable = !e.flowing && !e.ended && e.length <= e.highWaterMark, zT(t)
        }

        function JT(t, e) {
            e.readingMore || (e.readingMore = !0, process.nextTick(F6e, t, e))
        }

        function F6e(t, e) {
            for (; !e.reading && !e.ended && (e.length < e.highWaterMark || e.flowing && e.length === 0);) {
                var r = e.length;
                if (xt("maybeReadMore read 0"), t.read(0), r === e.length) break
            }
            e.readingMore = !1
        }

        Ut.prototype._read = function (t) {
            tE(this, new S6e("_read()"))
        };
        Ut.prototype.pipe = function (t, e) {
            var r = this, i = this._readableState;
            switch (i.pipesCount) {
                case 0:
                    i.pipes = t;
                    break;
                case 1:
                    i.pipes = [i.pipes, t];
                    break;
                default:
                    i.pipes.push(t);
                    break
            }
            i.pipesCount += 1, xt("pipe count=%d opts=%j", i.pipesCount, e);
            var n = (!e || e.end !== !1) && t !== process.stdout && t !== process.stderr, s = n ? a : m;
            i.endEmitted ? process.nextTick(s) : r.once("end", s), t.on("unpipe", o);

            function o(y, b) {
                xt("onunpipe"), y === r && b && b.hasUnpiped === !1 && (b.hasUnpiped = !0, u())
            }

            function a() {
                xt("onend"), t.end()
            }

            var l = N6e(r);
            t.on("drain", l);
            var c = !1;

            function u() {
                xt("cleanup"), t.removeListener("close", h), t.removeListener("finish", p), t.removeListener("drain", l), t.removeListener("error", f), t.removeListener("unpipe", o), r.removeListener("end", a), r.removeListener("end", m), r.removeListener("data", g), c = !0, i.awaitDrain && (!t._writableState || t._writableState.needDrain) && l()
            }

            r.on("data", g);

            function g(y) {
                xt("ondata");
                var b = t.write(y);
                xt("dest.write", b), b === !1 && ((i.pipesCount === 1 && i.pipes === t || i.pipesCount > 1 && oue(i.pipes, t) !== -1) && !c && (xt("false write response, pause", i.awaitDrain), i.awaitDrain++), r.pause())
            }

            function f(y) {
                xt("onerror", y), m(), t.removeListener("error", f), eue(t, "error") === 0 && tE(t, y)
            }

            x6e(t, "error", f);

            function h() {
                t.removeListener("finish", p), m()
            }

            t.once("close", h);

            function p() {
                xt("onfinish"), t.removeListener("close", h), m()
            }

            t.once("finish", p);

            function m() {
                xt("unpipe"), r.unpipe(t)
            }

            return t.emit("pipe", r), i.flowing || (xt("pipe resume"), r.resume()), t
        };

        function N6e(t) {
            return function () {
                var r = t._readableState;
                xt("pipeOnDrain", r.awaitDrain), r.awaitDrain && r.awaitDrain--, r.awaitDrain === 0 && eue(t, "data") && (r.flowing = !0, zT(t))
            }
        }

        Ut.prototype.unpipe = function (t) {
            var e = this._readableState, r = {hasUnpiped: !1};
            if (e.pipesCount === 0) return this;
            if (e.pipesCount === 1) return t && t !== e.pipes ? this : (t || (t = e.pipes), e.pipes = null, e.pipesCount = 0, e.flowing = !1, t && t.emit("unpipe", this, r), this);
            if (!t) {
                var i = e.pipes, n = e.pipesCount;
                e.pipes = null, e.pipesCount = 0, e.flowing = !1;
                for (var s = 0; s < n; s++) i[s].emit("unpipe", this, {hasUnpiped: !1});
                return this
            }
            var o = oue(e.pipes, t);
            return o === -1 ? this : (e.pipes.splice(o, 1), e.pipesCount -= 1, e.pipesCount === 1 && (e.pipes = e.pipes[0]), t.emit("unpipe", this, r), this)
        };
        Ut.prototype.on = function (t, e) {
            var r = eE.prototype.on.call(this, t, e), i = this._readableState;
            return t === "data" ? (i.readableListening = this.listenerCount("readable") > 0, i.flowing !== !1 && this.resume()) : t === "readable" && !i.endEmitted && !i.readableListening && (i.readableListening = i.needReadable = !0, i.flowing = !1, i.emittedReadable = !1, xt("on readable", i.length, i.reading), i.length ? Fb(this) : i.reading || process.nextTick(L6e, this)), r
        };
        Ut.prototype.addListener = Ut.prototype.on;
        Ut.prototype.removeListener = function (t, e) {
            var r = eE.prototype.removeListener.call(this, t, e);
            return t === "readable" && process.nextTick(aue, this), r
        };
        Ut.prototype.removeAllListeners = function (t) {
            var e = eE.prototype.removeAllListeners.apply(this, arguments);
            return (t === "readable" || t === void 0) && process.nextTick(aue, this), e
        };

        function aue(t) {
            var e = t._readableState;
            e.readableListening = t.listenerCount("readable") > 0, e.resumeScheduled && !e.paused ? e.flowing = !0 : t.listenerCount("data") > 0 && t.resume()
        }

        function L6e(t) {
            xt("readable nexttick read 0"), t.read(0)
        }

        Ut.prototype.resume = function () {
            var t = this._readableState;
            return t.flowing || (xt("resume"), t.flowing = !t.readableListening, T6e(this, t)), t.paused = !1, this
        };

        function T6e(t, e) {
            e.resumeScheduled || (e.resumeScheduled = !0, process.nextTick(O6e, t, e))
        }

        function O6e(t, e) {
            xt("resume", e.reading), e.reading || t.read(0), e.resumeScheduled = !1, t.emit("resume"), zT(t), e.flowing && !e.reading && t.read(0)
        }

        Ut.prototype.pause = function () {
            return xt("call pause flowing=%j", this._readableState.flowing), this._readableState.flowing !== !1 && (xt("pause"), this._readableState.flowing = !1, this.emit("pause")), this._readableState.paused = !0, this
        };

        function zT(t) {
            var e = t._readableState;
            for (xt("flow", e.flowing); e.flowing && t.read() !== null;) ;
        }

        Ut.prototype.wrap = function (t) {
            var e = this, r = this._readableState, i = !1;
            t.on("end", function () {
                if (xt("wrapped end"), r.decoder && !r.ended) {
                    var o = r.decoder.end();
                    o && o.length && e.push(o)
                }
                e.push(null)
            }), t.on("data", function (o) {
                if (xt("wrapped data"), r.decoder && (o = r.decoder.write(o)), !(r.objectMode && o == null) && !(!r.objectMode && (!o || !o.length))) {
                    var a = e.push(o);
                    a || (i = !0, t.pause())
                }
            });
            for (var n in t) this[n] === void 0 && typeof t[n] == "function" && (this[n] = function (a) {
                return function () {
                    return t[a].apply(t, arguments)
                }
            }(n));
            for (var s = 0; s < YT.length; s++) t.on(YT[s], this.emit.bind(this, YT[s]));
            return this._read = function (o) {
                xt("wrapped _read", o), i && (i = !1, t.resume())
            }, this
        };
        typeof Symbol == "function" && (Ut.prototype[Symbol.asyncIterator] = function () {
            return GT === void 0 && (GT = Wce()), GT(this)
        });
        Object.defineProperty(Ut.prototype, "readableHighWaterMark", {
            enumerable: !1, get: function () {
                return this._readableState.highWaterMark
            }
        });
        Object.defineProperty(Ut.prototype, "readableBuffer", {
            enumerable: !1, get: function () {
                return this._readableState && this._readableState.buffer
            }
        });
        Object.defineProperty(Ut.prototype, "readableFlowing", {
            enumerable: !1, get: function () {
                return this._readableState.flowing
            }, set: function (e) {
                this._readableState && (this._readableState.flowing = e)
            }
        });
        Ut._fromList = nue;
        Object.defineProperty(Ut.prototype, "readableLength", {
            enumerable: !1, get: function () {
                return this._readableState.length
            }
        });

        function nue(t, e) {
            if (e.length === 0) return null;
            var r;
            return e.objectMode ? r = e.buffer.shift() : !t || t >= e.length ? (e.decoder ? r = e.buffer.join("") : e.buffer.length === 1 ? r = e.buffer.first() : r = e.buffer.concat(e.length), e.buffer.clear()) : r = e.buffer.consume(t, e.decoder), r
        }

        function WT(t) {
            var e = t._readableState;
            xt("endReadable", e.endEmitted), e.endEmitted || (e.ended = !0, process.nextTick(M6e, e, t))
        }

        function M6e(t, e) {
            if (xt("endReadableNT", t.endEmitted, t.length), !t.endEmitted && t.length === 0 && (t.endEmitted = !0, e.readable = !1, e.emit("end"), t.autoDestroy)) {
                var r = e._writableState;
                (!r || r.autoDestroy && r.finished) && e.destroy()
            }
        }

        typeof Symbol == "function" && (Ut.from = function (t, e) {
            return jT === void 0 && (jT = Xce()), jT(Ut, t, e)
        });

        function oue(t, e) {
            for (var r = 0, i = t.length; r < i; r++) if (t[r] === e) return r;
            return -1
        }
    });
    var _T = w((txt, Aue) => {
        "use strict";
        Aue.exports = QA;
        var Nb = Ll().codes, K6e = Nb.ERR_METHOD_NOT_IMPLEMENTED, U6e = Nb.ERR_MULTIPLE_CALLBACK,
            H6e = Nb.ERR_TRANSFORM_ALREADY_TRANSFORMING, G6e = Nb.ERR_TRANSFORM_WITH_LENGTH_0, Lb = Su();
        Tl()(QA, Lb);

        function j6e(t, e) {
            var r = this._transformState;
            r.transforming = !1;
            var i = r.writecb;
            if (i === null) return this.emit("error", new U6e);
            r.writechunk = null, r.writecb = null, e != null && this.push(e), i(t);
            var n = this._readableState;
            n.reading = !1, (n.needReadable || n.length < n.highWaterMark) && this._read(n.highWaterMark)
        }

        function QA(t) {
            if (!(this instanceof QA)) return new QA(t);
            Lb.call(this, t), this._transformState = {
                afterTransform: j6e.bind(this),
                needTransform: !1,
                transforming: !1,
                writecb: null,
                writechunk: null,
                writeencoding: null
            }, this._readableState.needReadable = !0, this._readableState.sync = !1, t && (typeof t.transform == "function" && (this._transform = t.transform), typeof t.flush == "function" && (this._flush = t.flush)), this.on("prefinish", Y6e)
        }

        function Y6e() {
            var t = this;
            typeof this._flush == "function" && !this._readableState.destroyed ? this._flush(function (e, r) {
                lue(t, e, r)
            }) : lue(this, null, null)
        }

        QA.prototype.push = function (t, e) {
            return this._transformState.needTransform = !1, Lb.prototype.push.call(this, t, e)
        };
        QA.prototype._transform = function (t, e, r) {
            r(new K6e("_transform()"))
        };
        QA.prototype._write = function (t, e, r) {
            var i = this._transformState;
            if (i.writecb = r, i.writechunk = t, i.writeencoding = e, !i.transforming) {
                var n = this._readableState;
                (i.needTransform || n.needReadable || n.length < n.highWaterMark) && this._read(n.highWaterMark)
            }
        };
        QA.prototype._read = function (t) {
            var e = this._transformState;
            e.writechunk !== null && !e.transforming ? (e.transforming = !0, this._transform(e.writechunk, e.writeencoding, e.afterTransform)) : e.needTransform = !0
        };
        QA.prototype._destroy = function (t, e) {
            Lb.prototype._destroy.call(this, t, function (r) {
                e(r)
            })
        };

        function lue(t, e, r) {
            if (e) return t.emit("error", e);
            if (r != null && t.push(r), t._writableState.length) throw new G6e;
            if (t._transformState.transforming) throw new H6e;
            return t.push(null)
        }
    });
    var gue = w((rxt, cue) => {
        "use strict";
        cue.exports = rE;
        var uue = _T();
        Tl()(rE, uue);

        function rE(t) {
            if (!(this instanceof rE)) return new rE(t);
            uue.call(this, t)
        }

        rE.prototype._transform = function (t, e, r) {
            r(null, t)
        }
    });
    var Cue = w((ixt, fue) => {
        "use strict";
        var VT;

        function q6e(t) {
            var e = !1;
            return function () {
                e || (e = !0, t.apply(void 0, arguments))
            }
        }

        var hue = Ll().codes, J6e = hue.ERR_MISSING_ARGS, W6e = hue.ERR_STREAM_DESTROYED;

        function pue(t) {
            if (t) throw t
        }

        function z6e(t) {
            return t.setHeader && typeof t.abort == "function"
        }

        function _6e(t, e, r, i) {
            i = q6e(i);
            var n = !1;
            t.on("close", function () {
                n = !0
            }), VT === void 0 && (VT = kb()), VT(t, {readable: e, writable: r}, function (o) {
                if (o) return i(o);
                n = !0, i()
            });
            var s = !1;
            return function (o) {
                if (!n && !s) {
                    if (s = !0, z6e(t)) return t.abort();
                    if (typeof t.destroy == "function") return t.destroy();
                    i(o || new W6e("pipe"))
                }
            }
        }

        function due(t) {
            t()
        }

        function V6e(t, e) {
            return t.pipe(e)
        }

        function X6e(t) {
            return !t.length || typeof t[t.length - 1] != "function" ? pue : t.pop()
        }

        function Z6e() {
            for (var t = arguments.length, e = new Array(t), r = 0; r < t; r++) e[r] = arguments[r];
            var i = X6e(e);
            if (Array.isArray(e[0]) && (e = e[0]), e.length < 2) throw new J6e("streams");
            var n, s = e.map(function (o, a) {
                var l = a < e.length - 1, c = a > 0;
                return _6e(o, l, c, function (u) {
                    n || (n = u), u && s.forEach(due), !l && (s.forEach(due), i(n))
                })
            });
            return e.reduce(V6e)
        }

        fue.exports = Z6e
    });
    var dh = w((_s, iE) => {
        var nE = require("stream");
        process.env.READABLE_STREAM === "disable" && nE ? (iE.exports = nE.Readable, Object.assign(iE.exports, nE), iE.exports.Stream = nE) : (_s = iE.exports = RT(), _s.Stream = nE || _s, _s.Readable = _s, _s.Writable = DT(), _s.Duplex = Su(), _s.Transform = _T(), _s.PassThrough = gue(), _s.finished = kb(), _s.pipeline = Cue())
    });
    var Iue = w((nxt, mue) => {
        "use strict";
        var {Buffer: Qo} = require("buffer"), Eue = Symbol.for("BufferList");

        function mr(t) {
            if (!(this instanceof mr)) return new mr(t);
            mr._init.call(this, t)
        }

        mr._init = function (e) {
            Object.defineProperty(this, Eue, {value: !0}), this._bufs = [], this.length = 0, e && this.append(e)
        };
        mr.prototype._new = function (e) {
            return new mr(e)
        };
        mr.prototype._offset = function (e) {
            if (e === 0) return [0, 0];
            let r = 0;
            for (let i = 0; i < this._bufs.length; i++) {
                let n = r + this._bufs[i].length;
                if (e < n || i === this._bufs.length - 1) return [i, e - r];
                r = n
            }
        };
        mr.prototype._reverseOffset = function (t) {
            let e = t[0], r = t[1];
            for (let i = 0; i < e; i++) r += this._bufs[i].length;
            return r
        };
        mr.prototype.get = function (e) {
            if (e > this.length || e < 0) return;
            let r = this._offset(e);
            return this._bufs[r[0]][r[1]]
        };
        mr.prototype.slice = function (e, r) {
            return typeof e == "number" && e < 0 && (e += this.length), typeof r == "number" && r < 0 && (r += this.length), this.copy(null, 0, e, r)
        };
        mr.prototype.copy = function (e, r, i, n) {
            if ((typeof i != "number" || i < 0) && (i = 0), (typeof n != "number" || n > this.length) && (n = this.length), i >= this.length || n <= 0) return e || Qo.alloc(0);
            let s = !!e, o = this._offset(i), a = n - i, l = a, c = s && r || 0, u = o[1];
            if (i === 0 && n === this.length) {
                if (!s) return this._bufs.length === 1 ? this._bufs[0] : Qo.concat(this._bufs, this.length);
                for (let g = 0; g < this._bufs.length; g++) this._bufs[g].copy(e, c), c += this._bufs[g].length;
                return e
            }
            if (l <= this._bufs[o[0]].length - u) return s ? this._bufs[o[0]].copy(e, r, u, u + l) : this._bufs[o[0]].slice(u, u + l);
            s || (e = Qo.allocUnsafe(a));
            for (let g = o[0]; g < this._bufs.length; g++) {
                let f = this._bufs[g].length - u;
                if (l > f) this._bufs[g].copy(e, c, u), c += f; else {
                    this._bufs[g].copy(e, c, u, u + l), c += f;
                    break
                }
                l -= f, u && (u = 0)
            }
            return e.length > c ? e.slice(0, c) : e
        };
        mr.prototype.shallowSlice = function (e, r) {
            if (e = e || 0, r = typeof r != "number" ? this.length : r, e < 0 && (e += this.length), r < 0 && (r += this.length), e === r) return this._new();
            let i = this._offset(e), n = this._offset(r), s = this._bufs.slice(i[0], n[0] + 1);
            return n[1] === 0 ? s.pop() : s[s.length - 1] = s[s.length - 1].slice(0, n[1]), i[1] !== 0 && (s[0] = s[0].slice(i[1])), this._new(s)
        };
        mr.prototype.toString = function (e, r, i) {
            return this.slice(r, i).toString(e)
        };
        mr.prototype.consume = function (e) {
            if (e = Math.trunc(e), Number.isNaN(e) || e <= 0) return this;
            for (; this._bufs.length;) if (e >= this._bufs[0].length) e -= this._bufs[0].length, this.length -= this._bufs[0].length, this._bufs.shift(); else {
                this._bufs[0] = this._bufs[0].slice(e), this.length -= e;
                break
            }
            return this
        };
        mr.prototype.duplicate = function () {
            let e = this._new();
            for (let r = 0; r < this._bufs.length; r++) e.append(this._bufs[r]);
            return e
        };
        mr.prototype.append = function (e) {
            if (e == null) return this;
            if (e.buffer) this._appendBuffer(Qo.from(e.buffer, e.byteOffset, e.byteLength)); else if (Array.isArray(e)) for (let r = 0; r < e.length; r++) this.append(e[r]); else if (this._isBufferList(e)) for (let r = 0; r < e._bufs.length; r++) this.append(e._bufs[r]); else typeof e == "number" && (e = e.toString()), this._appendBuffer(Qo.from(e));
            return this
        };
        mr.prototype._appendBuffer = function (e) {
            this._bufs.push(e), this.length += e.length
        };
        mr.prototype.indexOf = function (t, e, r) {
            if (r === void 0 && typeof e == "string" && (r = e, e = void 0), typeof t == "function" || Array.isArray(t)) throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');
            if (typeof t == "number" ? t = Qo.from([t]) : typeof t == "string" ? t = Qo.from(t, r) : this._isBufferList(t) ? t = t.slice() : Array.isArray(t.buffer) ? t = Qo.from(t.buffer, t.byteOffset, t.byteLength) : Qo.isBuffer(t) || (t = Qo.from(t)), e = Number(e || 0), isNaN(e) && (e = 0), e < 0 && (e = this.length + e), e < 0 && (e = 0), t.length === 0) return e > this.length ? this.length : e;
            let i = this._offset(e), n = i[0], s = i[1];
            for (; n < this._bufs.length; n++) {
                let o = this._bufs[n];
                for (; s < o.length;) if (o.length - s >= t.length) {
                    let l = o.indexOf(t, s);
                    if (l !== -1) return this._reverseOffset([n, l]);
                    s = o.length - t.length + 1
                } else {
                    let l = this._reverseOffset([n, s]);
                    if (this._match(l, t)) return l;
                    s++
                }
                s = 0
            }
            return -1
        };
        mr.prototype._match = function (t, e) {
            if (this.length - t < e.length) return !1;
            for (let r = 0; r < e.length; r++) if (this.get(t + r) !== e[r]) return !1;
            return !0
        };
        (function () {
            let t = {
                readDoubleBE: 8,
                readDoubleLE: 8,
                readFloatBE: 4,
                readFloatLE: 4,
                readInt32BE: 4,
                readInt32LE: 4,
                readUInt32BE: 4,
                readUInt32LE: 4,
                readInt16BE: 2,
                readInt16LE: 2,
                readUInt16BE: 2,
                readUInt16LE: 2,
                readInt8: 1,
                readUInt8: 1,
                readIntBE: null,
                readIntLE: null,
                readUIntBE: null,
                readUIntLE: null
            };
            for (let e in t) (function (r) {
                t[r] === null ? mr.prototype[r] = function (i, n) {
                    return this.slice(i, i + n)[r](0, n)
                } : mr.prototype[r] = function (i = 0) {
                    return this.slice(i, i + t[r])[r](0)
                }
            })(e)
        })();
        mr.prototype._isBufferList = function (e) {
            return e instanceof mr || mr.isBufferList(e)
        };
        mr.isBufferList = function (e) {
            return e != null && e[Eue]
        };
        mue.exports = mr
    });
    var yue = w((sxt, Tb) => {
        "use strict";
        var XT = dh().Duplex, $6e = Tl(), sE = Iue();

        function Zi(t) {
            if (!(this instanceof Zi)) return new Zi(t);
            if (typeof t == "function") {
                this._callback = t;
                let e = function (i) {
                    this._callback && (this._callback(i), this._callback = null)
                }.bind(this);
                this.on("pipe", function (i) {
                    i.on("error", e)
                }), this.on("unpipe", function (i) {
                    i.removeListener("error", e)
                }), t = null
            }
            sE._init.call(this, t), XT.call(this)
        }

        $6e(Zi, XT);
        Object.assign(Zi.prototype, sE.prototype);
        Zi.prototype._new = function (e) {
            return new Zi(e)
        };
        Zi.prototype._write = function (e, r, i) {
            this._appendBuffer(e), typeof i == "function" && i()
        };
        Zi.prototype._read = function (e) {
            if (!this.length) return this.push(null);
            e = Math.min(e, this.length), this.push(this.slice(0, e)), this.consume(e)
        };
        Zi.prototype.end = function (e) {
            XT.prototype.end.call(this, e), this._callback && (this._callback(null, this.slice()), this._callback = null)
        };
        Zi.prototype._destroy = function (e, r) {
            this._bufs.length = 0, this.length = 0, r(e)
        };
        Zi.prototype._isBufferList = function (e) {
            return e instanceof Zi || e instanceof sE || Zi.isBufferList(e)
        };
        Zi.isBufferList = sE.isBufferList;
        Tb.exports = Zi;
        Tb.exports.BufferListStream = Zi;
        Tb.exports.BufferList = sE
    });
    var eO = w(Ch => {
        var eVe = Buffer.alloc, tVe = "0000000000000000000", rVe = "7777777777777777777", wue = "0".charCodeAt(0),
            Bue = Buffer.from("ustar\0", "binary"), iVe = Buffer.from("00", "binary"),
            nVe = Buffer.from("ustar ", "binary"), sVe = Buffer.from(" \0", "binary"), oVe = parseInt("7777", 8),
            oE = 257, ZT = 263, aVe = function (t, e, r) {
                return typeof t != "number" ? r : (t = ~~t, t >= e ? e : t >= 0 || (t += e, t >= 0) ? t : 0)
            }, AVe = function (t) {
                switch (t) {
                    case 0:
                        return "file";
                    case 1:
                        return "link";
                    case 2:
                        return "symlink";
                    case 3:
                        return "character-device";
                    case 4:
                        return "block-device";
                    case 5:
                        return "directory";
                    case 6:
                        return "fifo";
                    case 7:
                        return "contiguous-file";
                    case 72:
                        return "pax-header";
                    case 55:
                        return "pax-global-header";
                    case 27:
                        return "gnu-long-link-path";
                    case 28:
                    case 30:
                        return "gnu-long-path"
                }
                return null
            }, lVe = function (t) {
                switch (t) {
                    case"file":
                        return 0;
                    case"link":
                        return 1;
                    case"symlink":
                        return 2;
                    case"character-device":
                        return 3;
                    case"block-device":
                        return 4;
                    case"directory":
                        return 5;
                    case"fifo":
                        return 6;
                    case"contiguous-file":
                        return 7;
                    case"pax-header":
                        return 72
                }
                return 0
            }, bue = function (t, e, r, i) {
                for (; r < i; r++) if (t[r] === e) return r;
                return i
            }, Que = function (t) {
                for (var e = 8 * 32, r = 0; r < 148; r++) e += t[r];
                for (var i = 156; i < 512; i++) e += t[i];
                return e
            }, Hl = function (t, e) {
                return t = t.toString(8), t.length > e ? rVe.slice(0, e) + " " : tVe.slice(0, e - t.length) + t + " "
            };

        function cVe(t) {
            var e;
            if (t[0] === 128) e = !0; else if (t[0] === 255) e = !1; else return null;
            for (var r = [], i = t.length - 1; i > 0; i--) {
                var n = t[i];
                e ? r.push(n) : r.push(255 - n)
            }
            var s = 0, o = r.length;
            for (i = 0; i < o; i++) s += r[i] * Math.pow(256, i);
            return e ? s : -1 * s
        }

        var Gl = function (t, e, r) {
            if (t = t.slice(e, e + r), e = 0, t[e] & 128) return cVe(t);
            for (; e < t.length && t[e] === 32;) e++;
            for (var i = aVe(bue(t, 32, e, t.length), t.length, t.length); e < i && t[e] === 0;) e++;
            return i === e ? 0 : parseInt(t.slice(e, i).toString(), 8)
        }, mh = function (t, e, r, i) {
            return t.slice(e, bue(t, 0, e, e + r)).toString(i)
        }, $T = function (t) {
            var e = Buffer.byteLength(t), r = Math.floor(Math.log(e) / Math.log(10)) + 1;
            return e + r >= Math.pow(10, r) && r++, e + r + t
        };
        Ch.decodeLongPath = function (t, e) {
            return mh(t, 0, t.length, e)
        };
        Ch.encodePax = function (t) {
            var e = "";
            t.name && (e += $T(" path=" + t.name + `
`)), t.linkname && (e += $T(" linkpath=" + t.linkname + `
`));
            var r = t.pax;
            if (r) for (var i in r) e += $T(" " + i + "=" + r[i] + `
`);
            return Buffer.from(e)
        };
        Ch.decodePax = function (t) {
            for (var e = {}; t.length;) {
                for (var r = 0; r < t.length && t[r] !== 32;) r++;
                var i = parseInt(t.slice(0, r).toString(), 10);
                if (!i) return e;
                var n = t.slice(r + 1, i - 1).toString(), s = n.indexOf("=");
                if (s === -1) return e;
                e[n.slice(0, s)] = n.slice(s + 1), t = t.slice(i)
            }
            return e
        };
        Ch.encode = function (t) {
            var e = eVe(512), r = t.name, i = "";
            if (t.typeflag === 5 && r[r.length - 1] !== "/" && (r += "/"), Buffer.byteLength(r) !== r.length) return null;
            for (; Buffer.byteLength(r) > 100;) {
                var n = r.indexOf("/");
                if (n === -1) return null;
                i += i ? "/" + r.slice(0, n) : r.slice(0, n), r = r.slice(n + 1)
            }
            return Buffer.byteLength(r) > 100 || Buffer.byteLength(i) > 155 || t.linkname && Buffer.byteLength(t.linkname) > 100 ? null : (e.write(r), e.write(Hl(t.mode & oVe, 6), 100), e.write(Hl(t.uid, 6), 108), e.write(Hl(t.gid, 6), 116), e.write(Hl(t.size, 11), 124), e.write(Hl(t.mtime.getTime() / 1e3 | 0, 11), 136), e[156] = wue + lVe(t.type), t.linkname && e.write(t.linkname, 157), Bue.copy(e, oE), iVe.copy(e, ZT), t.uname && e.write(t.uname, 265), t.gname && e.write(t.gname, 297), e.write(Hl(t.devmajor || 0, 6), 329), e.write(Hl(t.devminor || 0, 6), 337), i && e.write(i, 345), e.write(Hl(Que(e), 6), 148), e)
        };
        Ch.decode = function (t, e, r) {
            var i = t[156] === 0 ? 0 : t[156] - wue, n = mh(t, 0, 100, e), s = Gl(t, 100, 8), o = Gl(t, 108, 8),
                a = Gl(t, 116, 8), l = Gl(t, 124, 12), c = Gl(t, 136, 12), u = AVe(i),
                g = t[157] === 0 ? null : mh(t, 157, 100, e), f = mh(t, 265, 32), h = mh(t, 297, 32), p = Gl(t, 329, 8),
                m = Gl(t, 337, 8), y = Que(t);
            if (y === 8 * 32) return null;
            if (y !== Gl(t, 148, 8)) throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");
            if (Bue.compare(t, oE, oE + 6) === 0) t[345] && (n = mh(t, 345, 155, e) + "/" + n); else if (!(nVe.compare(t, oE, oE + 6) === 0 && sVe.compare(t, ZT, ZT + 2) === 0)) {
                if (!r) throw new Error("Invalid tar header: unknown format.")
            }
            return i === 0 && n && n[n.length - 1] === "/" && (i = 5), {
                name: n,
                mode: s,
                uid: o,
                gid: a,
                size: l,
                mtime: new Date(1e3 * c),
                type: u,
                linkname: g,
                uname: f,
                gname: h,
                devmajor: p,
                devminor: m
            }
        }
    });
    var Rue = w((axt, vue) => {
        var Sue = require("util"), uVe = yue(), aE = eO(), kue = dh().Writable, xue = dh().PassThrough,
            Pue = function () {
            }, Due = function (t) {
                return t &= 511, t && 512 - t
            }, gVe = function (t, e) {
                var r = new Ob(t, e);
                return r.end(), r
            }, fVe = function (t, e) {
                return e.path && (t.name = e.path), e.linkpath && (t.linkname = e.linkpath), e.size && (t.size = parseInt(e.size, 10)), t.pax = e, t
            }, Ob = function (t, e) {
                this._parent = t, this.offset = e, xue.call(this, {autoDestroy: !1})
            };
        Sue.inherits(Ob, xue);
        Ob.prototype.destroy = function (t) {
            this._parent.destroy(t)
        };
        var vA = function (t) {
            if (!(this instanceof vA)) return new vA(t);
            kue.call(this, t), t = t || {}, this._offset = 0, this._buffer = uVe(), this._missing = 0, this._partial = !1, this._onparse = Pue, this._header = null, this._stream = null, this._overflow = null, this._cb = null, this._locked = !1, this._destroyed = !1, this._pax = null, this._paxGlobal = null, this._gnuLongPath = null, this._gnuLongLinkPath = null;
            var e = this, r = e._buffer, i = function () {
                e._continue()
            }, n = function (f) {
                if (e._locked = !1, f) return e.destroy(f);
                e._stream || i()
            }, s = function () {
                e._stream = null;
                var f = Due(e._header.size);
                f ? e._parse(f, o) : e._parse(512, g), e._locked || i()
            }, o = function () {
                e._buffer.consume(Due(e._header.size)), e._parse(512, g), i()
            }, a = function () {
                var f = e._header.size;
                e._paxGlobal = aE.decodePax(r.slice(0, f)), r.consume(f), s()
            }, l = function () {
                var f = e._header.size;
                e._pax = aE.decodePax(r.slice(0, f)), e._paxGlobal && (e._pax = Object.assign({}, e._paxGlobal, e._pax)), r.consume(f), s()
            }, c = function () {
                var f = e._header.size;
                this._gnuLongPath = aE.decodeLongPath(r.slice(0, f), t.filenameEncoding), r.consume(f), s()
            }, u = function () {
                var f = e._header.size;
                this._gnuLongLinkPath = aE.decodeLongPath(r.slice(0, f), t.filenameEncoding), r.consume(f), s()
            }, g = function () {
                var f = e._offset, h;
                try {
                    h = e._header = aE.decode(r.slice(0, 512), t.filenameEncoding, t.allowUnknownFormat)
                } catch (p) {
                    e.emit("error", p)
                }
                if (r.consume(512), !h) {
                    e._parse(512, g), i();
                    return
                }
                if (h.type === "gnu-long-path") {
                    e._parse(h.size, c), i();
                    return
                }
                if (h.type === "gnu-long-link-path") {
                    e._parse(h.size, u), i();
                    return
                }
                if (h.type === "pax-global-header") {
                    e._parse(h.size, a), i();
                    return
                }
                if (h.type === "pax-header") {
                    e._parse(h.size, l), i();
                    return
                }
                if (e._gnuLongPath && (h.name = e._gnuLongPath, e._gnuLongPath = null), e._gnuLongLinkPath && (h.linkname = e._gnuLongLinkPath, e._gnuLongLinkPath = null), e._pax && (e._header = h = fVe(h, e._pax), e._pax = null), e._locked = !0, !h.size || h.type === "directory") {
                    e._parse(512, g), e.emit("entry", h, gVe(e, f), n);
                    return
                }
                e._stream = new Ob(e, f), e.emit("entry", h, e._stream, n), e._parse(h.size, s), i()
            };
            this._onheader = g, this._parse(512, g)
        };
        Sue.inherits(vA, kue);
        vA.prototype.destroy = function (t) {
            this._destroyed || (this._destroyed = !0, t && this.emit("error", t), this.emit("close"), this._stream && this._stream.emit("close"))
        };
        vA.prototype._parse = function (t, e) {
            this._destroyed || (this._offset += t, this._missing = t, e === this._onheader && (this._partial = !1), this._onparse = e)
        };
        vA.prototype._continue = function () {
            if (!this._destroyed) {
                var t = this._cb;
                this._cb = Pue, this._overflow ? this._write(this._overflow, void 0, t) : t()
            }
        };
        vA.prototype._write = function (t, e, r) {
            if (!this._destroyed) {
                var i = this._stream, n = this._buffer, s = this._missing;
                if (t.length && (this._partial = !0), t.length < s) return this._missing -= t.length, this._overflow = null, i ? i.write(t, r) : (n.append(t), r());
                this._cb = r, this._missing = 0;
                var o = null;
                t.length > s && (o = t.slice(s), t = t.slice(0, s)), i ? i.end(t) : n.append(t), this._overflow = o, this._onparse()
            }
        };
        vA.prototype._final = function (t) {
            if (this._partial) return this.destroy(new Error("Unexpected end of data"));
            t()
        };
        vue.exports = vA
    });
    var Nue = w((Axt, Fue) => {
        Fue.exports = require("fs").constants || require("constants")
    });
    var Kue = w((lxt, Lue) => {
        var Eh = Nue(), Tue = Vx(), Mb = Tl(), hVe = Buffer.alloc, Oue = dh().Readable, Ih = dh().Writable,
            pVe = require("string_decoder").StringDecoder, Kb = eO(), dVe = parseInt("755", 8),
            CVe = parseInt("644", 8), Mue = hVe(1024), tO = function () {
            }, rO = function (t, e) {
                e &= 511, e && t.push(Mue.slice(0, 512 - e))
            };

        function mVe(t) {
            switch (t & Eh.S_IFMT) {
                case Eh.S_IFBLK:
                    return "block-device";
                case Eh.S_IFCHR:
                    return "character-device";
                case Eh.S_IFDIR:
                    return "directory";
                case Eh.S_IFIFO:
                    return "fifo";
                case Eh.S_IFLNK:
                    return "symlink"
            }
            return "file"
        }

        var Ub = function (t) {
            Ih.call(this), this.written = 0, this._to = t, this._destroyed = !1
        };
        Mb(Ub, Ih);
        Ub.prototype._write = function (t, e, r) {
            if (this.written += t.length, this._to.push(t)) return r();
            this._to._drain = r
        };
        Ub.prototype.destroy = function () {
            this._destroyed || (this._destroyed = !0, this.emit("close"))
        };
        var Hb = function () {
            Ih.call(this), this.linkname = "", this._decoder = new pVe("utf-8"), this._destroyed = !1
        };
        Mb(Hb, Ih);
        Hb.prototype._write = function (t, e, r) {
            this.linkname += this._decoder.write(t), r()
        };
        Hb.prototype.destroy = function () {
            this._destroyed || (this._destroyed = !0, this.emit("close"))
        };
        var AE = function () {
            Ih.call(this), this._destroyed = !1
        };
        Mb(AE, Ih);
        AE.prototype._write = function (t, e, r) {
            r(new Error("No body allowed for this entry"))
        };
        AE.prototype.destroy = function () {
            this._destroyed || (this._destroyed = !0, this.emit("close"))
        };
        var Ca = function (t) {
            if (!(this instanceof Ca)) return new Ca(t);
            Oue.call(this, t), this._drain = tO, this._finalized = !1, this._finalizing = !1, this._destroyed = !1, this._stream = null
        };
        Mb(Ca, Oue);
        Ca.prototype.entry = function (t, e, r) {
            if (this._stream) throw new Error("already piping an entry");
            if (!(this._finalized || this._destroyed)) {
                typeof e == "function" && (r = e, e = null), r || (r = tO);
                var i = this;
                if ((!t.size || t.type === "symlink") && (t.size = 0), t.type || (t.type = mVe(t.mode)), t.mode || (t.mode = t.type === "directory" ? dVe : CVe), t.uid || (t.uid = 0), t.gid || (t.gid = 0), t.mtime || (t.mtime = new Date), typeof e == "string" && (e = Buffer.from(e)), Buffer.isBuffer(e)) {
                    t.size = e.length, this._encode(t);
                    var n = this.push(e);
                    return rO(i, t.size), n ? process.nextTick(r) : this._drain = r, new AE
                }
                if (t.type === "symlink" && !t.linkname) {
                    var s = new Hb;
                    return Tue(s, function (a) {
                        if (a) return i.destroy(), r(a);
                        t.linkname = s.linkname, i._encode(t), r()
                    }), s
                }
                if (this._encode(t), t.type !== "file" && t.type !== "contiguous-file") return process.nextTick(r), new AE;
                var o = new Ub(this);
                return this._stream = o, Tue(o, function (a) {
                    if (i._stream = null, a) return i.destroy(), r(a);
                    if (o.written !== t.size) return i.destroy(), r(new Error("size mismatch"));
                    rO(i, t.size), i._finalizing && i.finalize(), r()
                }), o
            }
        };
        Ca.prototype.finalize = function () {
            if (this._stream) {
                this._finalizing = !0;
                return
            }
            this._finalized || (this._finalized = !0, this.push(Mue), this.push(null))
        };
        Ca.prototype.destroy = function (t) {
            this._destroyed || (this._destroyed = !0, t && this.emit("error", t), this.emit("close"), this._stream && this._stream.destroy && this._stream.destroy())
        };
        Ca.prototype._encode = function (t) {
            if (!t.pax) {
                var e = Kb.encode(t);
                if (e) {
                    this.push(e);
                    return
                }
            }
            this._encodePax(t)
        };
        Ca.prototype._encodePax = function (t) {
            var e = Kb.encodePax({name: t.name, linkname: t.linkname, pax: t.pax}), r = {
                name: "PaxHeader",
                mode: t.mode,
                uid: t.uid,
                gid: t.gid,
                size: e.length,
                mtime: t.mtime,
                type: "pax-header",
                linkname: t.linkname && "PaxHeader",
                uname: t.uname,
                gname: t.gname,
                devmajor: t.devmajor,
                devminor: t.devminor
            };
            this.push(Kb.encode(r)), this.push(e), rO(this, e.length), r.size = t.size, r.type = t.type, this.push(Kb.encode(r))
        };
        Ca.prototype._read = function (t) {
            var e = this._drain;
            this._drain = tO, e()
        };
        Lue.exports = Ca
    });
    var Uue = w(iO => {
        iO.extract = Rue();
        iO.pack = Kue()
    });
    var $ue = w((Rxt, _ue) => {
        "use strict";
        var yh = class {
            constructor(e, r, i) {
                this.__specs = e || {}, Object.keys(this.__specs).forEach(n => {
                    if (typeof this.__specs[n] == "string") {
                        let s = this.__specs[n], o = this.__specs[s];
                        if (o) {
                            let a = o.aliases || [];
                            a.push(n, s), o.aliases = [...new Set(a)], this.__specs[n] = o
                        } else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)
                    }
                }), this.__opts = r || {}, this.__providers = Xue(i.filter(n => n != null && typeof n == "object")), this.__isFiggyPudding = !0
            }

            get(e) {
                return lO(this, e, !0)
            }

            get [Symbol.toStringTag]() {
                return "FiggyPudding"
            }

            forEach(e, r = this) {
                for (let [i, n] of this.entries()) e.call(r, n, i, this)
            }

            toJSON() {
                let e = {};
                return this.forEach((r, i) => {
                    e[i] = r
                }), e
            }

            * entries(e) {
                for (let i of Object.keys(this.__specs)) yield[i, this.get(i)];
                let r = e || this.__opts.other;
                if (r) {
                    let i = new Set;
                    for (let n of this.__providers) {
                        let s = n.entries ? n.entries(r) : DVe(n);
                        for (let [o, a] of s) r(o) && !i.has(o) && (i.add(o), yield[o, a])
                    }
                }
            }

            * [Symbol.iterator]() {
                for (let [e, r] of this.entries()) yield[e, r]
            }

            * keys() {
                for (let [e] of this.entries()) yield e
            }

            * values() {
                for (let [, e] of this.entries()) yield e
            }

            concat(...e) {
                return new Proxy(new yh(this.__specs, this.__opts, Xue(this.__providers).concat(e)), Vue)
            }
        };
        try {
            let t = require("util");
            yh.prototype[t.inspect.custom] = function (e, r) {
                return this[Symbol.toStringTag] + " " + t.inspect(this.toJSON(), r)
            }
        } catch (t) {
        }

        function RVe(t) {
            throw Object.assign(new Error(`invalid config key requested: ${t}`), {code: "EBADKEY"})
        }

        function lO(t, e, r) {
            let i = t.__specs[e];
            if (r && !i && (!t.__opts.other || !t.__opts.other(e))) RVe(e); else {
                i || (i = {});
                let n;
                for (let s of t.__providers) {
                    if (n = Zue(e, s), n === void 0 && i.aliases && i.aliases.length) {
                        for (let o of i.aliases) if (o !== e && (n = Zue(o, s), n !== void 0)) break
                    }
                    if (n !== void 0) break
                }
                return n === void 0 && i.default !== void 0 ? typeof i.default == "function" ? i.default(t) : i.default : n
            }
        }

        function Zue(t, e) {
            let r;
            return e.__isFiggyPudding ? r = lO(e, t, !1) : typeof e.get == "function" ? r = e.get(t) : r = e[t], r
        }

        var Vue = {
            has(t, e) {
                return e in t.__specs && lO(t, e, !1) !== void 0
            }, ownKeys(t) {
                return Object.keys(t.__specs)
            }, get(t, e) {
                return typeof e == "symbol" || e.slice(0, 2) === "__" || e in yh.prototype ? t[e] : t.get(e)
            }, set(t, e, r) {
                if (typeof e == "symbol" || e.slice(0, 2) === "__") return t[e] = r, !0;
                throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")
            }, deleteProperty() {
                throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")
            }
        };
        _ue.exports = FVe;

        function FVe(t, e) {
            function r(...i) {
                return new Proxy(new yh(t, e, i), Vue)
            }

            return r
        }

        function Xue(t) {
            let e = [];
            return t.forEach(r => e.unshift(r)), e
        }

        function DVe(t) {
            return Object.keys(t).map(e => [e, t[e]])
        }
    });
    var rge = w((Fxt, ma) => {
        "use strict";
        var cE = require("crypto"), NVe = $ue(), LVe = require("stream").Transform,
            ege = ["sha256", "sha384", "sha512"], TVe = /^[a-z0-9+/]+(?:=?=?)$/i, OVe = /^([^-]+)-([^?]+)([?\S*]*)$/,
            MVe = /^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/, KVe = /^[\x21-\x7E]+$/, Cn = NVe({
                algorithms: {default: ["sha512"]},
                error: {default: !1},
                integrity: {},
                options: {default: []},
                pickAlgorithm: {default: () => UVe},
                Promise: {default: () => Promise},
                sep: {default: " "},
                single: {default: !1},
                size: {},
                strict: {default: !1}
            }), Du = class {
                get isHash() {
                    return !0
                }

                constructor(e, r) {
                    r = Cn(r);
                    let i = !!r.strict;
                    this.source = e.trim();
                    let n = this.source.match(i ? MVe : OVe);
                    if (!n || i && !ege.some(o => o === n[1])) return;
                    this.algorithm = n[1], this.digest = n[2];
                    let s = n[3];
                    this.options = s ? s.slice(1).split("?") : []
                }

                hexDigest() {
                    return this.digest && Buffer.from(this.digest, "base64").toString("hex")
                }

                toJSON() {
                    return this.toString()
                }

                toString(e) {
                    if (e = Cn(e), e.strict && !(ege.some(i => i === this.algorithm) && this.digest.match(TVe) && (this.options || []).every(i => i.match(KVe)))) return "";
                    let r = this.options && this.options.length ? `?${this.options.join("?")}` : "";
                    return `${this.algorithm}-${this.digest}${r}`
                }
            }, wh = class {
                get isIntegrity() {
                    return !0
                }

                toJSON() {
                    return this.toString()
                }

                toString(e) {
                    e = Cn(e);
                    let r = e.sep || " ";
                    return e.strict && (r = r.replace(/\S+/g, " ")), Object.keys(this).map(i => this[i].map(n => Du.prototype.toString.call(n, e)).filter(n => n.length).join(r)).filter(i => i.length).join(r)
                }

                concat(e, r) {
                    r = Cn(r);
                    let i = typeof e == "string" ? e : uE(e, r);
                    return Ea(`${this.toString(r)} ${i}`, r)
                }

                hexDigest() {
                    return Ea(this, {single: !0}).hexDigest()
                }

                match(e, r) {
                    r = Cn(r);
                    let i = Ea(e, r), n = i.pickAlgorithm(r);
                    return this[n] && i[n] && this[n].find(s => i[n].find(o => s.digest === o.digest)) || !1
                }

                pickAlgorithm(e) {
                    e = Cn(e);
                    let r = e.pickAlgorithm, i = Object.keys(this);
                    if (!i.length) throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);
                    return i.reduce((n, s) => r(n, s) || n)
                }
            };
        ma.exports.parse = Ea;

        function Ea(t, e) {
            if (e = Cn(e), typeof t == "string") return cO(t, e);
            if (t.algorithm && t.digest) {
                let r = new wh;
                return r[t.algorithm] = [t], cO(uE(r, e), e)
            } else return cO(uE(t, e), e)
        }

        function cO(t, e) {
            return e.single ? new Du(t, e) : t.trim().split(/\s+/).reduce((r, i) => {
                let n = new Du(i, e);
                if (n.algorithm && n.digest) {
                    let s = n.algorithm;
                    r[s] || (r[s] = []), r[s].push(n)
                }
                return r
            }, new wh)
        }

        ma.exports.stringify = uE;

        function uE(t, e) {
            return e = Cn(e), t.algorithm && t.digest ? Du.prototype.toString.call(t, e) : typeof t == "string" ? uE(Ea(t, e), e) : wh.prototype.toString.call(t, e)
        }

        ma.exports.fromHex = HVe;

        function HVe(t, e, r) {
            r = Cn(r);
            let i = r.options && r.options.length ? `?${r.options.join("?")}` : "";
            return Ea(`${e}-${Buffer.from(t, "hex").toString("base64")}${i}`, r)
        }

        ma.exports.fromData = GVe;

        function GVe(t, e) {
            e = Cn(e);
            let r = e.algorithms, i = e.options && e.options.length ? `?${e.options.join("?")}` : "";
            return r.reduce((n, s) => {
                let o = cE.createHash(s).update(t).digest("base64"), a = new Du(`${s}-${o}${i}`, e);
                if (a.algorithm && a.digest) {
                    let l = a.algorithm;
                    n[l] || (n[l] = []), n[l].push(a)
                }
                return n
            }, new wh)
        }

        ma.exports.fromStream = jVe;

        function jVe(t, e) {
            e = Cn(e);
            let r = e.Promise || Promise, i = uO(e);
            return new r((n, s) => {
                t.pipe(i), t.on("error", s), i.on("error", s);
                let o;
                i.on("integrity", a => {
                    o = a
                }), i.on("end", () => n(o)), i.on("data", () => {
                })
            })
        }

        ma.exports.checkData = YVe;

        function YVe(t, e, r) {
            if (r = Cn(r), e = Ea(e, r), !Object.keys(e).length) {
                if (r.error) throw Object.assign(new Error("No valid integrity hashes to check against"), {code: "EINTEGRITY"});
                return !1
            }
            let i = e.pickAlgorithm(r), n = cE.createHash(i).update(t).digest("base64"),
                s = Ea({algorithm: i, digest: n}), o = s.match(e, r);
            if (o || !r.error) return o;
            if (typeof r.size == "number" && t.length !== r.size) {
                let a = new Error(`data size mismatch when checking ${e}.
  Wanted: ${r.size}
  Found: ${t.length}`);
                throw a.code = "EBADSIZE", a.found = t.length, a.expected = r.size, a.sri = e, a
            } else {
                let a = new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${t.length} bytes)`);
                throw a.code = "EINTEGRITY", a.found = s, a.expected = e, a.algorithm = i, a.sri = e, a
            }
        }

        ma.exports.checkStream = qVe;

        function qVe(t, e, r) {
            r = Cn(r);
            let i = r.Promise || Promise, n = uO(r.concat({integrity: e}));
            return new i((s, o) => {
                t.pipe(n), t.on("error", o), n.on("error", o);
                let a;
                n.on("verified", l => {
                    a = l
                }), n.on("end", () => s(a)), n.on("data", () => {
                })
            })
        }

        ma.exports.integrityStream = uO;

        function uO(t) {
            t = Cn(t);
            let e = t.integrity && Ea(t.integrity, t), r = e && Object.keys(e).length, i = r && e.pickAlgorithm(t),
                n = r && e[i], s = Array.from(new Set(t.algorithms.concat(i ? [i] : []))), o = s.map(cE.createHash),
                a = 0, l = new LVe({
                    transform(c, u, g) {
                        a += c.length, o.forEach(f => f.update(c, u)), g(null, c, u)
                    }
                }).on("end", () => {
                    let c = t.options && t.options.length ? `?${t.options.join("?")}` : "",
                        u = Ea(o.map((f, h) => `${s[h]}-${f.digest("base64")}${c}`).join(" "), t), g = r && u.match(e, t);
                    if (typeof t.size == "number" && a !== t.size) {
                        let f = new Error(`stream size mismatch when checking ${e}.
  Wanted: ${t.size}
  Found: ${a}`);
                        f.code = "EBADSIZE", f.found = a, f.expected = t.size, f.sri = e, l.emit("error", f)
                    } else if (t.integrity && !g) {
                        let f = new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);
                        f.code = "EINTEGRITY", f.found = u, f.expected = n, f.algorithm = i, f.sri = e, l.emit("error", f)
                    } else l.emit("size", a), l.emit("integrity", u), g && l.emit("verified", g)
                });
            return l
        }

        ma.exports.create = JVe;

        function JVe(t) {
            t = Cn(t);
            let e = t.algorithms, r = t.options.length ? `?${t.options.join("?")}` : "", i = e.map(cE.createHash);
            return {
                update: function (n, s) {
                    return i.forEach(o => o.update(n, s)), this
                }, digest: function (n) {
                    return e.reduce((o, a) => {
                        let l = i.shift().digest("base64"), c = new Du(`${a}-${l}${r}`, t);
                        if (c.algorithm && c.digest) {
                            let u = c.algorithm;
                            o[u] || (o[u] = []), o[u].push(c)
                        }
                        return o
                    }, new wh)
                }
            }
        }

        var WVe = new Set(cE.getHashes()),
            tge = ["md5", "whirlpool", "sha1", "sha224", "sha256", "sha384", "sha512", "sha3", "sha3-256", "sha3-384", "sha3-512", "sha3_256", "sha3_384", "sha3_512"].filter(t => WVe.has(t));

        function UVe(t, e) {
            return tge.indexOf(t.toLowerCase()) >= tge.indexOf(e.toLowerCase()) ? t : e
        }
    });
    var vC = {};
    ft(vC, {
        BuildType: () => ls,
        Cache: () => Nt,
        Configuration: () => we,
        DEFAULT_LOCK_FILENAME: () => Qx,
        DEFAULT_RC_FILENAME: () => bx,
        FormatType: () => Di,
        InstallMode: () => di,
        LightReport: () => gA,
        LinkType: () => Qt,
        Manifest: () => At,
        MessageName: () => $,
        MultiFetcher: () => wd,
        PackageExtensionStatus: () => qi,
        PackageExtensionType: () => yi,
        Project: () => ze,
        ProjectLookup: () => al,
        Report: () => Ji,
        ReportError: () => ct,
        SettingsType: () => ye,
        StreamReport: () => Je,
        TAG_REGEXP: () => qg,
        TelemetryManager: () => QC,
        ThrowReport: () => pi,
        VirtualFetcher: () => bd,
        Workspace: () => bC,
        WorkspaceFetcher: () => Qd,
        WorkspaceResolver: () => oi,
        YarnVersion: () => Kr,
        execUtils: () => Fr,
        folderUtils: () => Cx,
        formatUtils: () => Ae,
        hashUtils: () => Dn,
        httpUtils: () => ir,
        miscUtils: () => ve,
        nodeUtils: () => Wg,
        parseMessageName: () => bI,
        scriptUtils: () => Zt,
        semverUtils: () => Wt,
        stringifyMessageName: () => qA,
        structUtils: () => P,
        tgzUtils: () => wi,
        treeUtils: () => As
    });
    var Fr = {};
    ft(Fr, {EndStrategy: () => ns, ExecError: () => Rx, PipeError: () => vw, execvp: () => mke, pipevp: () => $o});
    var $h = {};
    ft($h, {
        AliasFS: () => Da,
        CwdFS: () => _t,
        DEFAULT_COMPRESSION_LEVEL: () => nc,
        FakeFS: () => HA,
        Filename: () => Pt,
        JailFS: () => Ra,
        LazyFS: () => Vh,
        LinkStrategy: () => Yh,
        NoFS: () => _E,
        NodeFS: () => ar,
        PortablePath: () => Ke,
        PosixFS: () => Xh,
        ProxiedFS: () => bi,
        VirtualFS: () => Wr,
        ZipFS: () => Ai,
        ZipOpenFS: () => Es,
        constants: () => Dr,
        extendFs: () => XE,
        normalizeLineEndings: () => ec,
        npath: () => H,
        opendir: () => JE,
        patchFs: () => SQ,
        ppath: () => x,
        statUtils: () => hQ,
        toFilename: () => Jr,
        xfs: () => K
    });
    var Dr = {};
    ft(Dr, {SAFE_TIME: () => fQ, S_IFDIR: () => ka, S_IFLNK: () => Pa, S_IFMT: () => _n, S_IFREG: () => xa});
    var _n = 61440, ka = 16384, xa = 32768, Pa = 40960, fQ = 456789e3;
    var hQ = {};
    ft(hQ, {
        BigIntStatsEntry: () => Hh,
        DEFAULT_MODE: () => Uh,
        DirEntry: () => oM,
        StatEntry: () => KA,
        areStatsEqual: () => dQ,
        clearStats: () => KE,
        convertToBigIntStats: () => UE,
        makeDefaultStats: () => Gh,
        makeEmptyStats: () => pfe
    });
    var pQ = ge(require("util"));
    var Uh = xa | 420, oM = class {
        constructor() {
            this.name = "";
            this.mode = 0
        }

        isBlockDevice() {
            return !1
        }

        isCharacterDevice() {
            return !1
        }

        isDirectory() {
            return (this.mode & _n) === ka
        }

        isFIFO() {
            return !1
        }

        isFile() {
            return (this.mode & _n) === xa
        }

        isSocket() {
            return !1
        }

        isSymbolicLink() {
            return (this.mode & _n) === Pa
        }
    }, KA = class {
        constructor() {
            this.uid = 0;
            this.gid = 0;
            this.size = 0;
            this.blksize = 0;
            this.atimeMs = 0;
            this.mtimeMs = 0;
            this.ctimeMs = 0;
            this.birthtimeMs = 0;
            this.atime = new Date(0);
            this.mtime = new Date(0);
            this.ctime = new Date(0);
            this.birthtime = new Date(0);
            this.dev = 0;
            this.ino = 0;
            this.mode = Uh;
            this.nlink = 1;
            this.rdev = 0;
            this.blocks = 1
        }

        isBlockDevice() {
            return !1
        }

        isCharacterDevice() {
            return !1
        }

        isDirectory() {
            return (this.mode & _n) === ka
        }

        isFIFO() {
            return !1
        }

        isFile() {
            return (this.mode & _n) === xa
        }

        isSocket() {
            return !1
        }

        isSymbolicLink() {
            return (this.mode & _n) === Pa
        }
    }, Hh = class {
        constructor() {
            this.uid = BigInt(0);
            this.gid = BigInt(0);
            this.size = BigInt(0);
            this.blksize = BigInt(0);
            this.atimeMs = BigInt(0);
            this.mtimeMs = BigInt(0);
            this.ctimeMs = BigInt(0);
            this.birthtimeMs = BigInt(0);
            this.atimeNs = BigInt(0);
            this.mtimeNs = BigInt(0);
            this.ctimeNs = BigInt(0);
            this.birthtimeNs = BigInt(0);
            this.atime = new Date(0);
            this.mtime = new Date(0);
            this.ctime = new Date(0);
            this.birthtime = new Date(0);
            this.dev = BigInt(0);
            this.ino = BigInt(0);
            this.mode = BigInt(Uh);
            this.nlink = BigInt(1);
            this.rdev = BigInt(0);
            this.blocks = BigInt(1)
        }

        isBlockDevice() {
            return !1
        }

        isCharacterDevice() {
            return !1
        }

        isDirectory() {
            return (this.mode & BigInt(_n)) === BigInt(ka)
        }

        isFIFO() {
            return !1
        }

        isFile() {
            return (this.mode & BigInt(_n)) === BigInt(xa)
        }

        isSocket() {
            return !1
        }

        isSymbolicLink() {
            return (this.mode & BigInt(_n)) === BigInt(Pa)
        }
    };

    function Gh() {
        return new KA
    }

    function pfe() {
        return KE(Gh())
    }

    function KE(t) {
        for (let e in t) if (Object.prototype.hasOwnProperty.call(t, e)) {
            let r = t[e];
            typeof r == "number" ? t[e] = 0 : typeof r == "bigint" ? t[e] = BigInt(0) : pQ.types.isDate(r) && (t[e] = new Date(0))
        }
        return t
    }

    function UE(t) {
        let e = new Hh;
        for (let r in t) if (Object.prototype.hasOwnProperty.call(t, r)) {
            let i = t[r];
            typeof i == "number" ? e[r] = BigInt(i) : pQ.types.isDate(i) && (e[r] = new Date(i))
        }
        return e.atimeNs = e.atimeMs * BigInt(1e6), e.mtimeNs = e.mtimeMs * BigInt(1e6), e.ctimeNs = e.ctimeMs * BigInt(1e6), e.birthtimeNs = e.birthtimeMs * BigInt(1e6), e
    }

    function dQ(t, e) {
        if (t.atimeMs !== e.atimeMs || t.birthtimeMs !== e.birthtimeMs || t.blksize !== e.blksize || t.blocks !== e.blocks || t.ctimeMs !== e.ctimeMs || t.dev !== e.dev || t.gid !== e.gid || t.ino !== e.ino || t.isBlockDevice() !== e.isBlockDevice() || t.isCharacterDevice() !== e.isCharacterDevice() || t.isDirectory() !== e.isDirectory() || t.isFIFO() !== e.isFIFO() || t.isFile() !== e.isFile() || t.isSocket() !== e.isSocket() || t.isSymbolicLink() !== e.isSymbolicLink() || t.mode !== e.mode || t.mtimeMs !== e.mtimeMs || t.nlink !== e.nlink || t.rdev !== e.rdev || t.size !== e.size || t.uid !== e.uid) return !1;
        let r = t, i = e;
        return !(r.atimeNs !== i.atimeNs || r.mtimeNs !== i.mtimeNs || r.ctimeNs !== i.ctimeNs || r.birthtimeNs !== i.birthtimeNs)
    }

    var GE = ge(require("fs"));
    var jh = ge(require("path")), aM;
    (function (i) {
        i[i.File = 0] = "File", i[i.Portable = 1] = "Portable", i[i.Native = 2] = "Native"
    })(aM || (aM = {}));
    var Ke = {root: "/", dot: "."}, Pt = {
        nodeModules: "node_modules",
        manifest: "package.json",
        lockfile: "yarn.lock",
        virtual: "__virtual__",
        pnpJs: ".pnp.js",
        pnpCjs: ".pnp.cjs",
        rc: ".yarnrc.yml"
    }, H = Object.create(jh.default), x = Object.create(jh.default.posix);
    H.cwd = () => process.cwd();
    x.cwd = () => CQ(process.cwd());
    x.resolve = (...t) => t.length > 0 && x.isAbsolute(t[0]) ? jh.default.posix.resolve(...t) : jh.default.posix.resolve(x.cwd(), ...t);
    var AM = function (t, e, r) {
        return e = t.normalize(e), r = t.normalize(r), e === r ? "." : (e.endsWith(t.sep) || (e = e + t.sep), r.startsWith(e) ? r.slice(e.length) : null)
    };
    H.fromPortablePath = lM;
    H.toPortablePath = CQ;
    H.contains = (t, e) => AM(H, t, e);
    x.contains = (t, e) => AM(x, t, e);
    var dfe = /^([a-zA-Z]:.*)$/, Cfe = /^\/\/(\.\/)?(.*)$/, mfe = /^\/([a-zA-Z]:.*)$/, Efe = /^\/unc\/(\.dot\/)?(.*)$/;

    function lM(t) {
        if (process.platform !== "win32") return t;
        let e, r;
        if (e = t.match(mfe)) t = e[1]; else if (r = t.match(Efe)) t = `\\\\${r[1] ? ".\\" : ""}${r[2]}`; else return t;
        return t.replace(/\//g, "\\")
    }

    function CQ(t) {
        if (process.platform !== "win32") return t;
        t = t.replace(/\\/g, "/");
        let e, r;
        return (e = t.match(dfe)) ? t = `/${e[1]}` : (r = t.match(Cfe)) && (t = `/unc/${r[1] ? ".dot/" : ""}${r[2]}`), t
    }

    function HE(t, e) {
        return t === H ? lM(e) : CQ(e)
    }

    function Jr(t) {
        if (H.parse(t).dir !== "" || x.parse(t).dir !== "") throw new Error(`Invalid filename: "${t}"`);
        return t
    }

    var jE = new Date(fQ * 1e3), Yh;
    (function (r) {
        r.Allow = "allow", r.ReadOnly = "readOnly"
    })(Yh || (Yh = {}));

    async function cM(t, e, r, i, n) {
        let s = t.pathUtils.normalize(e), o = r.pathUtils.normalize(i), a = [], l = [], {
            atime: c,
            mtime: u
        } = n.stableTime ? {atime: jE, mtime: jE} : await r.lstatPromise(o);
        await t.mkdirpPromise(t.pathUtils.dirname(e), {utimes: [c, u]});
        let g = typeof t.lutimesPromise == "function" ? t.lutimesPromise.bind(t) : t.utimesPromise.bind(t);
        await mQ(a, l, g, t, s, r, o, ie(N({}, n), {didParentExist: !0}));
        for (let f of a) await f();
        await Promise.all(l.map(f => f()))
    }

    async function mQ(t, e, r, i, n, s, o, a) {
        var h, p;
        let l = a.didParentExist ? await Ife(i, n) : null, c = await s.lstatPromise(o), {
            atime: u,
            mtime: g
        } = a.stableTime ? {atime: jE, mtime: jE} : c, f;
        switch (!0) {
            case c.isDirectory():
                f = await yfe(t, e, r, i, n, l, s, o, c, a);
                break;
            case c.isFile():
                f = await wfe(t, e, r, i, n, l, s, o, c, a);
                break;
            case c.isSymbolicLink():
                f = await Bfe(t, e, r, i, n, l, s, o, c, a);
                break;
            default:
                throw new Error(`Unsupported file type (${c.mode})`)
        }
        return (f || ((h = l == null ? void 0 : l.mtime) == null ? void 0 : h.getTime()) !== g.getTime() || ((p = l == null ? void 0 : l.atime) == null ? void 0 : p.getTime()) !== u.getTime()) && (e.push(() => r(n, u, g)), f = !0), (l === null || (l.mode & 511) != (c.mode & 511)) && (e.push(() => i.chmodPromise(n, c.mode & 511)), f = !0), f
    }

    async function Ife(t, e) {
        try {
            return await t.lstatPromise(e)
        } catch (r) {
            return null
        }
    }

    async function yfe(t, e, r, i, n, s, o, a, l, c) {
        if (s !== null && !s.isDirectory()) if (c.overwrite) t.push(async () => i.removePromise(n)), s = null; else return !1;
        let u = !1;
        s === null && (t.push(async () => {
            try {
                await i.mkdirPromise(n, {mode: l.mode})
            } catch (h) {
                if (h.code !== "EEXIST") throw h
            }
        }), u = !0);
        let g = await o.readdirPromise(a), f = c.didParentExist && !s ? ie(N({}, c), {didParentExist: !1}) : c;
        if (c.stableSort) for (let h of g.sort()) await mQ(t, e, r, i, i.pathUtils.join(n, h), o, o.pathUtils.join(a, h), f) && (u = !0); else (await Promise.all(g.map(async p => {
            await mQ(t, e, r, i, i.pathUtils.join(n, p), o, o.pathUtils.join(a, p), f)
        }))).some(p => p) && (u = !0);
        return u
    }

    var EQ = new WeakMap;

    function IQ(t, e, r, i, n) {
        return async () => {
            await t.linkPromise(r, e), n === Yh.ReadOnly && (i.mode &= ~146, await t.chmodPromise(e, i.mode))
        }
    }

    function bfe(t, e, r, i, n) {
        let s = EQ.get(t);
        return typeof s == "undefined" ? async () => {
            try {
                await t.copyFilePromise(r, e, GE.default.constants.COPYFILE_FICLONE_FORCE), EQ.set(t, !0)
            } catch (o) {
                if (o.code === "ENOSYS" || o.code === "ENOTSUP") EQ.set(t, !1), await IQ(t, e, r, i, n)(); else throw o
            }
        } : s ? async () => t.copyFilePromise(r, e, GE.default.constants.COPYFILE_FICLONE_FORCE) : IQ(t, e, r, i, n)
    }

    async function wfe(t, e, r, i, n, s, o, a, l, c) {
        var f;
        if (s !== null) if (c.overwrite) t.push(async () => i.removePromise(n)), s = null; else return !1;
        let u = (f = c.linkStrategy) != null ? f : null,
            g = i === o ? u !== null ? bfe(i, n, a, l, u) : async () => i.copyFilePromise(a, n, GE.default.constants.COPYFILE_FICLONE) : u !== null ? IQ(i, n, a, l, u) : async () => i.writeFilePromise(n, await o.readFilePromise(a));
        return t.push(async () => g()), !0
    }

    async function Bfe(t, e, r, i, n, s, o, a, l, c) {
        if (s !== null) if (c.overwrite) t.push(async () => i.removePromise(n)), s = null; else return !1;
        return t.push(async () => {
            await i.symlinkPromise(HE(i.pathUtils, await o.readlinkPromise(a)), n)
        }), !0
    }

    function ms(t, e) {
        return Object.assign(new Error(`${t}: ${e}`), {code: t})
    }

    function YE(t) {
        return ms("EBUSY", t)
    }

    function qh(t, e) {
        return ms("ENOSYS", `${t}, ${e}`)
    }

    function UA(t) {
        return ms("EINVAL", `invalid argument, ${t}`)
    }

    function en(t) {
        return ms("EBADF", `bad file descriptor, ${t}`)
    }

    function ro(t) {
        return ms("ENOENT", `no such file or directory, ${t}`)
    }

    function Do(t) {
        return ms("ENOTDIR", `not a directory, ${t}`)
    }

    function Jh(t) {
        return ms("EISDIR", `illegal operation on a directory, ${t}`)
    }

    function qE(t) {
        return ms("EEXIST", `file already exists, ${t}`)
    }

    function In(t) {
        return ms("EROFS", `read-only filesystem, ${t}`)
    }

    function uM(t) {
        return ms("ENOTEMPTY", `directory not empty, ${t}`)
    }

    function gM(t) {
        return ms("EOPNOTSUPP", `operation not supported, ${t}`)
    }

    function fM() {
        return ms("ERR_DIR_CLOSED", "Directory handle was closed")
    }

    var yQ = class extends Error {
        constructor(e, r) {
            super(e);
            this.name = "Libzip Error", this.code = r
        }
    };
    var hM = class {
        constructor(e, r, i = {}) {
            this.path = e;
            this.nextDirent = r;
            this.opts = i;
            this.closed = !1
        }

        throwIfClosed() {
            if (this.closed) throw fM()
        }

        async* [Symbol.asyncIterator]() {
            try {
                let e;
                for (; (e = await this.read()) !== null;) yield e
            } finally {
                await this.close()
            }
        }

        read(e) {
            let r = this.readSync();
            return typeof e != "undefined" ? e(null, r) : Promise.resolve(r)
        }

        readSync() {
            return this.throwIfClosed(), this.nextDirent()
        }

        close(e) {
            return this.closeSync(), typeof e != "undefined" ? e(null) : Promise.resolve()
        }

        closeSync() {
            var e, r;
            this.throwIfClosed(), (r = (e = this.opts).onClose) == null || r.call(e), this.closed = !0
        }
    };

    function JE(t, e, r, i) {
        let n = () => {
            let s = r.shift();
            return typeof s == "undefined" ? null : Object.assign(t.statSync(t.pathUtils.join(e, s)), {name: s})
        };
        return new hM(e, n, i)
    }

    var pM = ge(require("os"));
    var HA = class {
        constructor(e) {
            this.pathUtils = e
        }

        async* genTraversePromise(e, {stableSort: r = !1} = {}) {
            let i = [e];
            for (; i.length > 0;) {
                let n = i.shift();
                if ((await this.lstatPromise(n)).isDirectory()) {
                    let o = await this.readdirPromise(n);
                    if (r) for (let a of o.sort()) i.push(this.pathUtils.join(n, a)); else throw new Error("Not supported")
                } else yield n
            }
        }

        async removePromise(e, {recursive: r = !0, maxRetries: i = 5} = {}) {
            let n;
            try {
                n = await this.lstatPromise(e)
            } catch (s) {
                if (s.code === "ENOENT") return;
                throw s
            }
            if (n.isDirectory()) {
                if (r) {
                    let s = await this.readdirPromise(e);
                    await Promise.all(s.map(o => this.removePromise(this.pathUtils.resolve(e, o))))
                }
                for (let s = 0; s <= i; s++) try {
                    await this.rmdirPromise(e);
                    break
                } catch (o) {
                    if (o.code !== "EBUSY" && o.code !== "ENOTEMPTY") throw o;
                    s < i && await new Promise(a => setTimeout(a, s * 100))
                }
            } else await this.unlinkPromise(e)
        }

        removeSync(e, {recursive: r = !0} = {}) {
            let i;
            try {
                i = this.lstatSync(e)
            } catch (n) {
                if (n.code === "ENOENT") return;
                throw n
            }
            if (i.isDirectory()) {
                if (r) for (let n of this.readdirSync(e)) this.removeSync(this.pathUtils.resolve(e, n));
                this.rmdirSync(e)
            } else this.unlinkSync(e)
        }

        async mkdirpPromise(e, {chmod: r, utimes: i} = {}) {
            if (e = this.resolve(e), e === this.pathUtils.dirname(e)) return;
            let n = e.split(this.pathUtils.sep);
            for (let s = 2; s <= n.length; ++s) {
                let o = n.slice(0, s).join(this.pathUtils.sep);
                if (!this.existsSync(o)) {
                    try {
                        await this.mkdirPromise(o)
                    } catch (a) {
                        if (a.code === "EEXIST") continue;
                        throw a
                    }
                    if (r != null && await this.chmodPromise(o, r), i != null) await this.utimesPromise(o, i[0], i[1]); else {
                        let a = await this.statPromise(this.pathUtils.dirname(o));
                        await this.utimesPromise(o, a.atime, a.mtime)
                    }
                }
            }
        }

        mkdirpSync(e, {chmod: r, utimes: i} = {}) {
            if (e = this.resolve(e), e === this.pathUtils.dirname(e)) return;
            let n = e.split(this.pathUtils.sep);
            for (let s = 2; s <= n.length; ++s) {
                let o = n.slice(0, s).join(this.pathUtils.sep);
                if (!this.existsSync(o)) {
                    try {
                        this.mkdirSync(o)
                    } catch (a) {
                        if (a.code === "EEXIST") continue;
                        throw a
                    }
                    if (r != null && this.chmodSync(o, r), i != null) this.utimesSync(o, i[0], i[1]); else {
                        let a = this.statSync(this.pathUtils.dirname(o));
                        this.utimesSync(o, a.atime, a.mtime)
                    }
                }
            }
        }

        async copyPromise(e, r, {
            baseFs: i = this,
            overwrite: n = !0,
            stableSort: s = !1,
            stableTime: o = !1,
            linkStrategy: a = null
        } = {}) {
            return await cM(this, e, i, r, {overwrite: n, stableSort: s, stableTime: o, linkStrategy: a})
        }

        copySync(e, r, {baseFs: i = this, overwrite: n = !0} = {}) {
            let s = i.lstatSync(r), o = this.existsSync(e);
            if (s.isDirectory()) {
                this.mkdirpSync(e);
                let l = i.readdirSync(r);
                for (let c of l) this.copySync(this.pathUtils.join(e, c), i.pathUtils.join(r, c), {
                    baseFs: i,
                    overwrite: n
                })
            } else if (s.isFile()) {
                if (!o || n) {
                    o && this.removeSync(e);
                    let l = i.readFileSync(r);
                    this.writeFileSync(e, l)
                }
            } else if (s.isSymbolicLink()) {
                if (!o || n) {
                    o && this.removeSync(e);
                    let l = i.readlinkSync(r);
                    this.symlinkSync(HE(this.pathUtils, l), e)
                }
            } else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${s.mode.toString(8).padStart(6, "0")})`);
            let a = s.mode & 511;
            this.chmodSync(e, a)
        }

        async changeFilePromise(e, r, i = {}) {
            return Buffer.isBuffer(r) ? this.changeFileBufferPromise(e, r, i) : this.changeFileTextPromise(e, r, i)
        }

        async changeFileBufferPromise(e, r, {mode: i} = {}) {
            let n = Buffer.alloc(0);
            try {
                n = await this.readFilePromise(e)
            } catch (s) {
            }
            Buffer.compare(n, r) !== 0 && await this.writeFilePromise(e, r, {mode: i})
        }

        async changeFileTextPromise(e, r, {automaticNewlines: i, mode: n} = {}) {
            let s = "";
            try {
                s = await this.readFilePromise(e, "utf8")
            } catch (a) {
            }
            let o = i ? ec(s, r) : r;
            s !== o && await this.writeFilePromise(e, o, {mode: n})
        }

        changeFileSync(e, r, i = {}) {
            return Buffer.isBuffer(r) ? this.changeFileBufferSync(e, r, i) : this.changeFileTextSync(e, r, i)
        }

        changeFileBufferSync(e, r, {mode: i} = {}) {
            let n = Buffer.alloc(0);
            try {
                n = this.readFileSync(e)
            } catch (s) {
            }
            Buffer.compare(n, r) !== 0 && this.writeFileSync(e, r, {mode: i})
        }

        changeFileTextSync(e, r, {automaticNewlines: i = !1, mode: n} = {}) {
            let s = "";
            try {
                s = this.readFileSync(e, "utf8")
            } catch (a) {
            }
            let o = i ? ec(s, r) : r;
            s !== o && this.writeFileSync(e, o, {mode: n})
        }

        async movePromise(e, r) {
            try {
                await this.renamePromise(e, r)
            } catch (i) {
                if (i.code === "EXDEV") await this.copyPromise(r, e), await this.removePromise(e); else throw i
            }
        }

        moveSync(e, r) {
            try {
                this.renameSync(e, r)
            } catch (i) {
                if (i.code === "EXDEV") this.copySync(r, e), this.removeSync(e); else throw i
            }
        }

        async lockPromise(e, r) {
            let i = `${e}.flock`, n = 1e3 / 60, s = Date.now(), o = null, a = async () => {
                let l;
                try {
                    [l] = await this.readJsonPromise(i)
                } catch (c) {
                    return Date.now() - s < 500
                }
                try {
                    return process.kill(l, 0), !0
                } catch (c) {
                    return !1
                }
            };
            for (; o === null;) try {
                o = await this.openPromise(i, "wx")
            } catch (l) {
                if (l.code === "EEXIST") {
                    if (!await a()) try {
                        await this.unlinkPromise(i);
                        continue
                    } catch (c) {
                    }
                    if (Date.now() - s < 60 * 1e3) await new Promise(c => setTimeout(c, n)); else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)
                } else throw l
            }
            await this.writePromise(o, JSON.stringify([process.pid]));
            try {
                return await r()
            } finally {
                try {
                    await this.closePromise(o), await this.unlinkPromise(i)
                } catch (l) {
                }
            }
        }

        async readJsonPromise(e) {
            let r = await this.readFilePromise(e, "utf8");
            try {
                return JSON.parse(r)
            } catch (i) {
                throw i.message += ` (in ${e})`, i
            }
        }

        readJsonSync(e) {
            let r = this.readFileSync(e, "utf8");
            try {
                return JSON.parse(r)
            } catch (i) {
                throw i.message += ` (in ${e})`, i
            }
        }

        async writeJsonPromise(e, r) {
            return await this.writeFilePromise(e, `${JSON.stringify(r, null, 2)}
`)
        }

        writeJsonSync(e, r) {
            return this.writeFileSync(e, `${JSON.stringify(r, null, 2)}
`)
        }

        async preserveTimePromise(e, r) {
            let i = await this.lstatPromise(e), n = await r();
            typeof n != "undefined" && (e = n), this.lutimesPromise ? await this.lutimesPromise(e, i.atime, i.mtime) : i.isSymbolicLink() || await this.utimesPromise(e, i.atime, i.mtime)
        }

        async preserveTimeSync(e, r) {
            let i = this.lstatSync(e), n = r();
            typeof n != "undefined" && (e = n), this.lutimesSync ? this.lutimesSync(e, i.atime, i.mtime) : i.isSymbolicLink() || this.utimesSync(e, i.atime, i.mtime)
        }
    }, tc = class extends HA {
        constructor() {
            super(x)
        }
    };

    function Qfe(t) {
        let e = t.match(/\r?\n/g);
        if (e === null) return pM.EOL;
        let r = e.filter(n => n === `\r
`).length, i = e.length - r;
        return r > i ? `\r
` : `
`
    }

    function ec(t, e) {
        return e.replace(/\r?\n/g, Qfe(t))
    }

    var Ju = ge(require("fs")), wQ = ge(require("stream")), EM = ge(require("util")), BQ = ge(require("zlib"));
    var dM = ge(require("fs"));
    var ar = class extends tc {
        constructor(e = dM.default) {
            super();
            this.realFs = e, typeof this.realFs.lutimes != "undefined" && (this.lutimesPromise = this.lutimesPromiseImpl, this.lutimesSync = this.lutimesSyncImpl)
        }

        getExtractHint() {
            return !1
        }

        getRealPath() {
            return Ke.root
        }

        resolve(e) {
            return x.resolve(e)
        }

        async openPromise(e, r, i) {
            return await new Promise((n, s) => {
                this.realFs.open(H.fromPortablePath(e), r, i, this.makeCallback(n, s))
            })
        }

        openSync(e, r, i) {
            return this.realFs.openSync(H.fromPortablePath(e), r, i)
        }

        async opendirPromise(e, r) {
            return await new Promise((i, n) => {
                typeof r != "undefined" ? this.realFs.opendir(H.fromPortablePath(e), r, this.makeCallback(i, n)) : this.realFs.opendir(H.fromPortablePath(e), this.makeCallback(i, n))
            }).then(i => Object.defineProperty(i, "path", {value: e, configurable: !0, writable: !0}))
        }

        opendirSync(e, r) {
            let i = typeof r != "undefined" ? this.realFs.opendirSync(H.fromPortablePath(e), r) : this.realFs.opendirSync(H.fromPortablePath(e));
            return Object.defineProperty(i, "path", {value: e, configurable: !0, writable: !0})
        }

        async readPromise(e, r, i = 0, n = 0, s = -1) {
            return await new Promise((o, a) => {
                this.realFs.read(e, r, i, n, s, (l, c) => {
                    l ? a(l) : o(c)
                })
            })
        }

        readSync(e, r, i, n, s) {
            return this.realFs.readSync(e, r, i, n, s)
        }

        async writePromise(e, r, i, n, s) {
            return await new Promise((o, a) => typeof r == "string" ? this.realFs.write(e, r, i, this.makeCallback(o, a)) : this.realFs.write(e, r, i, n, s, this.makeCallback(o, a)))
        }

        writeSync(e, r, i, n, s) {
            return typeof r == "string" ? this.realFs.writeSync(e, r, i) : this.realFs.writeSync(e, r, i, n, s)
        }

        async closePromise(e) {
            await new Promise((r, i) => {
                this.realFs.close(e, this.makeCallback(r, i))
            })
        }

        closeSync(e) {
            this.realFs.closeSync(e)
        }

        createReadStream(e, r) {
            let i = e !== null ? H.fromPortablePath(e) : e;
            return this.realFs.createReadStream(i, r)
        }

        createWriteStream(e, r) {
            let i = e !== null ? H.fromPortablePath(e) : e;
            return this.realFs.createWriteStream(i, r)
        }

        async realpathPromise(e) {
            return await new Promise((r, i) => {
                this.realFs.realpath(H.fromPortablePath(e), {}, this.makeCallback(r, i))
            }).then(r => H.toPortablePath(r))
        }

        realpathSync(e) {
            return H.toPortablePath(this.realFs.realpathSync(H.fromPortablePath(e), {}))
        }

        async existsPromise(e) {
            return await new Promise(r => {
                this.realFs.exists(H.fromPortablePath(e), r)
            })
        }

        accessSync(e, r) {
            return this.realFs.accessSync(H.fromPortablePath(e), r)
        }

        async accessPromise(e, r) {
            return await new Promise((i, n) => {
                this.realFs.access(H.fromPortablePath(e), r, this.makeCallback(i, n))
            })
        }

        existsSync(e) {
            return this.realFs.existsSync(H.fromPortablePath(e))
        }

        async statPromise(e, r) {
            return await new Promise((i, n) => {
                r ? this.realFs.stat(H.fromPortablePath(e), r, this.makeCallback(i, n)) : this.realFs.stat(H.fromPortablePath(e), this.makeCallback(i, n))
            })
        }

        statSync(e, r) {
            return r ? this.realFs.statSync(H.fromPortablePath(e), r) : this.realFs.statSync(H.fromPortablePath(e))
        }

        async fstatPromise(e, r) {
            return await new Promise((i, n) => {
                r ? this.realFs.fstat(e, r, this.makeCallback(i, n)) : this.realFs.fstat(e, this.makeCallback(i, n))
            })
        }

        fstatSync(e, r) {
            return r ? this.realFs.fstatSync(e, r) : this.realFs.fstatSync(e)
        }

        async lstatPromise(e, r) {
            return await new Promise((i, n) => {
                r ? this.realFs.lstat(H.fromPortablePath(e), r, this.makeCallback(i, n)) : this.realFs.lstat(H.fromPortablePath(e), this.makeCallback(i, n))
            })
        }

        lstatSync(e, r) {
            return r ? this.realFs.lstatSync(H.fromPortablePath(e), r) : this.realFs.lstatSync(H.fromPortablePath(e))
        }

        async chmodPromise(e, r) {
            return await new Promise((i, n) => {
                this.realFs.chmod(H.fromPortablePath(e), r, this.makeCallback(i, n))
            })
        }

        chmodSync(e, r) {
            return this.realFs.chmodSync(H.fromPortablePath(e), r)
        }

        async chownPromise(e, r, i) {
            return await new Promise((n, s) => {
                this.realFs.chown(H.fromPortablePath(e), r, i, this.makeCallback(n, s))
            })
        }

        chownSync(e, r, i) {
            return this.realFs.chownSync(H.fromPortablePath(e), r, i)
        }

        async renamePromise(e, r) {
            return await new Promise((i, n) => {
                this.realFs.rename(H.fromPortablePath(e), H.fromPortablePath(r), this.makeCallback(i, n))
            })
        }

        renameSync(e, r) {
            return this.realFs.renameSync(H.fromPortablePath(e), H.fromPortablePath(r))
        }

        async copyFilePromise(e, r, i = 0) {
            return await new Promise((n, s) => {
                this.realFs.copyFile(H.fromPortablePath(e), H.fromPortablePath(r), i, this.makeCallback(n, s))
            })
        }

        copyFileSync(e, r, i = 0) {
            return this.realFs.copyFileSync(H.fromPortablePath(e), H.fromPortablePath(r), i)
        }

        async appendFilePromise(e, r, i) {
            return await new Promise((n, s) => {
                let o = typeof e == "string" ? H.fromPortablePath(e) : e;
                i ? this.realFs.appendFile(o, r, i, this.makeCallback(n, s)) : this.realFs.appendFile(o, r, this.makeCallback(n, s))
            })
        }

        appendFileSync(e, r, i) {
            let n = typeof e == "string" ? H.fromPortablePath(e) : e;
            i ? this.realFs.appendFileSync(n, r, i) : this.realFs.appendFileSync(n, r)
        }

        async writeFilePromise(e, r, i) {
            return await new Promise((n, s) => {
                let o = typeof e == "string" ? H.fromPortablePath(e) : e;
                i ? this.realFs.writeFile(o, r, i, this.makeCallback(n, s)) : this.realFs.writeFile(o, r, this.makeCallback(n, s))
            })
        }

        writeFileSync(e, r, i) {
            let n = typeof e == "string" ? H.fromPortablePath(e) : e;
            i ? this.realFs.writeFileSync(n, r, i) : this.realFs.writeFileSync(n, r)
        }

        async unlinkPromise(e) {
            return await new Promise((r, i) => {
                this.realFs.unlink(H.fromPortablePath(e), this.makeCallback(r, i))
            })
        }

        unlinkSync(e) {
            return this.realFs.unlinkSync(H.fromPortablePath(e))
        }

        async utimesPromise(e, r, i) {
            return await new Promise((n, s) => {
                this.realFs.utimes(H.fromPortablePath(e), r, i, this.makeCallback(n, s))
            })
        }

        utimesSync(e, r, i) {
            this.realFs.utimesSync(H.fromPortablePath(e), r, i)
        }

        async lutimesPromiseImpl(e, r, i) {
            let n = this.realFs.lutimes;
            if (typeof n == "undefined") throw qh("unavailable Node binding", `lutimes '${e}'`);
            return await new Promise((s, o) => {
                n.call(this.realFs, H.fromPortablePath(e), r, i, this.makeCallback(s, o))
            })
        }

        lutimesSyncImpl(e, r, i) {
            let n = this.realFs.lutimesSync;
            if (typeof n == "undefined") throw qh("unavailable Node binding", `lutimes '${e}'`);
            n.call(this.realFs, H.fromPortablePath(e), r, i)
        }

        async mkdirPromise(e, r) {
            return await new Promise((i, n) => {
                this.realFs.mkdir(H.fromPortablePath(e), r, this.makeCallback(i, n))
            })
        }

        mkdirSync(e, r) {
            return this.realFs.mkdirSync(H.fromPortablePath(e), r)
        }

        async rmdirPromise(e, r) {
            return await new Promise((i, n) => {
                r ? this.realFs.rmdir(H.fromPortablePath(e), r, this.makeCallback(i, n)) : this.realFs.rmdir(H.fromPortablePath(e), this.makeCallback(i, n))
            })
        }

        rmdirSync(e, r) {
            return this.realFs.rmdirSync(H.fromPortablePath(e), r)
        }

        async linkPromise(e, r) {
            return await new Promise((i, n) => {
                this.realFs.link(H.fromPortablePath(e), H.fromPortablePath(r), this.makeCallback(i, n))
            })
        }

        linkSync(e, r) {
            return this.realFs.linkSync(H.fromPortablePath(e), H.fromPortablePath(r))
        }

        async symlinkPromise(e, r, i) {
            return await new Promise((n, s) => {
                this.realFs.symlink(H.fromPortablePath(e.replace(/\/+$/, "")), H.fromPortablePath(r), i, this.makeCallback(n, s))
            })
        }

        symlinkSync(e, r, i) {
            return this.realFs.symlinkSync(H.fromPortablePath(e.replace(/\/+$/, "")), H.fromPortablePath(r), i)
        }

        async readFilePromise(e, r) {
            return await new Promise((i, n) => {
                let s = typeof e == "string" ? H.fromPortablePath(e) : e;
                this.realFs.readFile(s, r, this.makeCallback(i, n))
            })
        }

        readFileSync(e, r) {
            let i = typeof e == "string" ? H.fromPortablePath(e) : e;
            return this.realFs.readFileSync(i, r)
        }

        async readdirPromise(e, r) {
            return await new Promise((i, n) => {
                (r == null ? void 0 : r.withFileTypes) ? this.realFs.readdir(H.fromPortablePath(e), {withFileTypes: !0}, this.makeCallback(i, n)) : this.realFs.readdir(H.fromPortablePath(e), this.makeCallback(s => i(s), n))
            })
        }

        readdirSync(e, r) {
            return (r == null ? void 0 : r.withFileTypes) ? this.realFs.readdirSync(H.fromPortablePath(e), {withFileTypes: !0}) : this.realFs.readdirSync(H.fromPortablePath(e))
        }

        async readlinkPromise(e) {
            return await new Promise((r, i) => {
                this.realFs.readlink(H.fromPortablePath(e), this.makeCallback(r, i))
            }).then(r => H.toPortablePath(r))
        }

        readlinkSync(e) {
            return H.toPortablePath(this.realFs.readlinkSync(H.fromPortablePath(e)))
        }

        async truncatePromise(e, r) {
            return await new Promise((i, n) => {
                this.realFs.truncate(H.fromPortablePath(e), r, this.makeCallback(i, n))
            })
        }

        truncateSync(e, r) {
            return this.realFs.truncateSync(H.fromPortablePath(e), r)
        }

        watch(e, r, i) {
            return this.realFs.watch(H.fromPortablePath(e), r, i)
        }

        watchFile(e, r, i) {
            return this.realFs.watchFile(H.fromPortablePath(e), r, i)
        }

        unwatchFile(e, r) {
            return this.realFs.unwatchFile(H.fromPortablePath(e), r)
        }

        makeCallback(e, r) {
            return (i, n) => {
                i ? r(i) : e(n)
            }
        }
    };
    var CM = ge(require("events"));
    var rc;
    (function (r) {
        r.Change = "change", r.Stop = "stop"
    })(rc || (rc = {}));
    var ic;
    (function (i) {
        i.Ready = "ready", i.Running = "running", i.Stopped = "stopped"
    })(ic || (ic = {}));

    function mM(t, e) {
        if (t !== e) throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)
    }

    var Wh = class extends CM.EventEmitter {
        constructor(e, r, {bigint: i = !1} = {}) {
            super();
            this.status = ic.Ready;
            this.changeListeners = new Map;
            this.startTimeout = null;
            this.fakeFs = e, this.path = r, this.bigint = i, this.lastStats = this.stat()
        }

        static create(e, r, i) {
            let n = new Wh(e, r, i);
            return n.start(), n
        }

        start() {
            mM(this.status, ic.Ready), this.status = ic.Running, this.startTimeout = setTimeout(() => {
                this.startTimeout = null, this.fakeFs.existsSync(this.path) || this.emit(rc.Change, this.lastStats, this.lastStats)
            }, 3)
        }

        stop() {
            mM(this.status, ic.Running), this.status = ic.Stopped, this.startTimeout !== null && (clearTimeout(this.startTimeout), this.startTimeout = null), this.emit(rc.Stop)
        }

        stat() {
            try {
                return this.fakeFs.statSync(this.path, {bigint: this.bigint})
            } catch (e) {
                let r = this.bigint ? new Hh : new KA;
                return KE(r)
            }
        }

        makeInterval(e) {
            let r = setInterval(() => {
                let i = this.stat(), n = this.lastStats;
                dQ(i, n) || (this.lastStats = i, this.emit(rc.Change, i, n))
            }, e.interval);
            return e.persistent ? r : r.unref()
        }

        registerChangeListener(e, r) {
            this.addListener(rc.Change, e), this.changeListeners.set(e, this.makeInterval(r))
        }

        unregisterChangeListener(e) {
            this.removeListener(rc.Change, e);
            let r = this.changeListeners.get(e);
            typeof r != "undefined" && clearInterval(r), this.changeListeners.delete(e)
        }

        unregisterAllChangeListeners() {
            for (let e of this.changeListeners.keys()) this.unregisterChangeListener(e)
        }

        hasChangeListeners() {
            return this.changeListeners.size > 0
        }

        ref() {
            for (let e of this.changeListeners.values()) e.ref();
            return this
        }

        unref() {
            for (let e of this.changeListeners.values()) e.unref();
            return this
        }
    };
    var WE = new WeakMap;

    function zE(t, e, r, i) {
        let n, s, o, a;
        switch (typeof r) {
            case"function":
                n = !1, s = !0, o = 5007, a = r;
                break;
            default:
                ({bigint: n = !1, persistent: s = !0, interval: o = 5007} = r), a = i;
                break
        }
        let l = WE.get(t);
        typeof l == "undefined" && WE.set(t, l = new Map);
        let c = l.get(e);
        return typeof c == "undefined" && (c = Wh.create(t, e, {bigint: n}), l.set(e, c)), c.registerChangeListener(a, {
            persistent: s,
            interval: o
        }), c
    }

    function zh(t, e, r) {
        let i = WE.get(t);
        if (typeof i == "undefined") return;
        let n = i.get(e);
        typeof n != "undefined" && (typeof r == "undefined" ? n.unregisterAllChangeListeners() : n.unregisterChangeListener(r), n.hasChangeListeners() || (n.stop(), i.delete(e)))
    }

    function _h(t) {
        let e = WE.get(t);
        if (typeof e != "undefined") for (let r of e.keys()) zh(t, r)
    }

    var nc = "mixed";

    function vfe(t) {
        if (typeof t == "string" && String(+t) === t) return +t;
        if (Number.isFinite(t)) return t < 0 ? Date.now() / 1e3 : t;
        if (EM.types.isDate(t)) return t.getTime() / 1e3;
        throw new Error("Invalid time")
    }

    function IM() {
        return Buffer.from([80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
    }

    var Ai = class extends tc {
        constructor(e, r) {
            super();
            this.lzSource = null;
            this.listings = new Map;
            this.entries = new Map;
            this.fileSources = new Map;
            this.fds = new Map;
            this.nextFd = 0;
            this.ready = !1;
            this.readOnly = !1;
            this.libzip = r.libzip;
            let i = r;
            if (this.level = typeof i.level != "undefined" ? i.level : nc, e != null || (e = IM()), typeof e == "string") {
                let {baseFs: o = new ar} = i;
                this.baseFs = o, this.path = e
            } else this.path = null, this.baseFs = null;
            if (r.stats) this.stats = r.stats; else if (typeof e == "string") try {
                this.stats = this.baseFs.statSync(e)
            } catch (o) {
                if (o.code === "ENOENT" && i.create) this.stats = Gh(); else throw o
            } else this.stats = Gh();
            let n = this.libzip.malloc(4);
            try {
                let o = 0;
                if (typeof e == "string" && i.create && (o |= this.libzip.ZIP_CREATE | this.libzip.ZIP_TRUNCATE), r.readOnly && (o |= this.libzip.ZIP_RDONLY, this.readOnly = !0), typeof e == "string") this.zip = this.libzip.open(H.fromPortablePath(e), o, n); else {
                    let a = this.allocateUnattachedSource(e);
                    try {
                        this.zip = this.libzip.openFromSource(a, o, n), this.lzSource = a
                    } catch (l) {
                        throw this.libzip.source.free(a), l
                    }
                }
                if (this.zip === 0) {
                    let a = this.libzip.struct.errorS();
                    throw this.libzip.error.initWithCode(a, this.libzip.getValue(n, "i32")), this.makeLibzipError(a)
                }
            } finally {
                this.libzip.free(n)
            }
            this.listings.set(Ke.root, new Set);
            let s = this.libzip.getNumEntries(this.zip, 0);
            for (let o = 0; o < s; ++o) {
                let a = this.libzip.getName(this.zip, o, 0);
                if (x.isAbsolute(a)) continue;
                let l = x.resolve(Ke.root, a);
                this.registerEntry(l, o), a.endsWith("/") && this.registerListing(l)
            }
            if (this.symlinkCount = this.libzip.ext.countSymlinks(this.zip), this.symlinkCount === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
            this.ready = !0
        }

        makeLibzipError(e) {
            let r = this.libzip.struct.errorCodeZip(e), i = this.libzip.error.strerror(e),
                n = new yQ(i, this.libzip.errors[r]);
            if (r === this.libzip.errors.ZIP_ER_CHANGED) throw new Error(`Assertion failed: Unexpected libzip error: ${n.message}`);
            return n
        }

        getExtractHint(e) {
            for (let r of this.entries.keys()) {
                let i = this.pathUtils.extname(r);
                if (e.relevantExtensions.has(i)) return !0
            }
            return !1
        }

        getAllFiles() {
            return Array.from(this.entries.keys())
        }

        getRealPath() {
            if (!this.path) throw new Error("ZipFS don't have real paths when loaded from a buffer");
            return this.path
        }

        getBufferAndClose() {
            if (this.prepareClose(), !this.lzSource) throw new Error("ZipFS was not created from a Buffer");
            try {
                if (this.libzip.source.keep(this.lzSource), this.libzip.close(this.zip) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
                if (this.libzip.source.open(this.lzSource) === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
                if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
                let e = this.libzip.source.tell(this.lzSource);
                if (e === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
                if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
                let r = this.libzip.malloc(e);
                if (!r) throw new Error("Couldn't allocate enough memory");
                try {
                    let i = this.libzip.source.read(this.lzSource, r, e);
                    if (i === -1) throw this.makeLibzipError(this.libzip.source.error(this.lzSource));
                    if (i < e) throw new Error("Incomplete read");
                    if (i > e) throw new Error("Overread");
                    let n = this.libzip.HEAPU8.subarray(r, r + e);
                    return Buffer.from(n)
                } finally {
                    this.libzip.free(r)
                }
            } finally {
                this.libzip.source.close(this.lzSource), this.libzip.source.free(this.lzSource), this.ready = !1
            }
        }

        prepareClose() {
            if (!this.ready) throw YE("archive closed, close");
            _h(this)
        }

        saveAndClose() {
            if (!this.path || !this.baseFs) throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");
            if (this.prepareClose(), this.readOnly) {
                this.discardAndClose();
                return
            }
            let e = this.baseFs.existsSync(this.path) || this.stats.mode === Uh ? void 0 : this.stats.mode;
            if (this.entries.size === 0) this.discardAndClose(), this.baseFs.writeFileSync(this.path, IM(), {mode: e}); else {
                if (this.libzip.close(this.zip) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
                typeof e != "undefined" && this.baseFs.chmodSync(this.path, e)
            }
            this.ready = !1
        }

        discardAndClose() {
            this.prepareClose(), this.libzip.discard(this.zip), this.ready = !1
        }

        resolve(e) {
            return x.resolve(Ke.root, e)
        }

        async openPromise(e, r, i) {
            return this.openSync(e, r, i)
        }

        openSync(e, r, i) {
            let n = this.nextFd++;
            return this.fds.set(n, {cursor: 0, p: e}), n
        }

        hasOpenFileHandles() {
            return !!this.fds.size
        }

        async opendirPromise(e, r) {
            return this.opendirSync(e, r)
        }

        opendirSync(e, r = {}) {
            let i = this.resolveFilename(`opendir '${e}'`, e);
            if (!this.entries.has(i) && !this.listings.has(i)) throw ro(`opendir '${e}'`);
            let n = this.listings.get(i);
            if (!n) throw Do(`opendir '${e}'`);
            let s = [...n], o = this.openSync(i, "r");
            return JE(this, i, s, {
                onClose: () => {
                    this.closeSync(o)
                }
            })
        }

        async readPromise(e, r, i, n, s) {
            return this.readSync(e, r, i, n, s)
        }

        readSync(e, r, i = 0, n = r.byteLength, s = -1) {
            let o = this.fds.get(e);
            if (typeof o == "undefined") throw en("read");
            let a = s === -1 || s === null ? o.cursor : s, l = this.readFileSync(o.p);
            l.copy(r, i, a, a + n);
            let c = Math.max(0, Math.min(l.length - a, n));
            return (s === -1 || s === null) && (o.cursor += c), c
        }

        async writePromise(e, r, i, n, s) {
            return typeof r == "string" ? this.writeSync(e, r, s) : this.writeSync(e, r, i, n, s)
        }

        writeSync(e, r, i, n, s) {
            throw typeof this.fds.get(e) == "undefined" ? en("read") : new Error("Unimplemented")
        }

        async closePromise(e) {
            return this.closeSync(e)
        }

        closeSync(e) {
            if (typeof this.fds.get(e) == "undefined") throw en("read");
            this.fds.delete(e)
        }

        createReadStream(e, {encoding: r} = {}) {
            if (e === null) throw new Error("Unimplemented");
            let i = this.openSync(e, "r"), n = Object.assign(new wQ.PassThrough({
                emitClose: !0, autoDestroy: !0, destroy: (o, a) => {
                    clearImmediate(s), this.closeSync(i), a(o)
                }
            }), {
                close() {
                    n.destroy()
                }, bytesRead: 0, path: e
            }), s = setImmediate(async () => {
                try {
                    let o = await this.readFilePromise(e, r);
                    n.bytesRead = o.length, n.end(o)
                } catch (o) {
                    n.destroy(o)
                }
            });
            return n
        }

        createWriteStream(e, {encoding: r} = {}) {
            if (this.readOnly) throw In(`open '${e}'`);
            if (e === null) throw new Error("Unimplemented");
            let i = [], n = this.openSync(e, "w"), s = Object.assign(new wQ.PassThrough({
                autoDestroy: !0, emitClose: !0, destroy: (o, a) => {
                    try {
                        o ? a(o) : (this.writeFileSync(e, Buffer.concat(i), r), a(null))
                    } catch (l) {
                        a(l)
                    } finally {
                        this.closeSync(n)
                    }
                }
            }), {
                bytesWritten: 0, path: e, close() {
                    s.destroy()
                }
            });
            return s.on("data", o => {
                let a = Buffer.from(o);
                s.bytesWritten += a.length, i.push(a)
            }), s
        }

        async realpathPromise(e) {
            return this.realpathSync(e)
        }

        realpathSync(e) {
            let r = this.resolveFilename(`lstat '${e}'`, e);
            if (!this.entries.has(r) && !this.listings.has(r)) throw ro(`lstat '${e}'`);
            return r
        }

        async existsPromise(e) {
            return this.existsSync(e)
        }

        existsSync(e) {
            if (!this.ready) throw YE(`archive closed, existsSync '${e}'`);
            if (this.symlinkCount === 0) {
                let i = x.resolve(Ke.root, e);
                return this.entries.has(i) || this.listings.has(i)
            }
            let r;
            try {
                r = this.resolveFilename(`stat '${e}'`, e)
            } catch (i) {
                return !1
            }
            return this.entries.has(r) || this.listings.has(r)
        }

        async accessPromise(e, r) {
            return this.accessSync(e, r)
        }

        accessSync(e, r = Ju.constants.F_OK) {
            let i = this.resolveFilename(`access '${e}'`, e);
            if (!this.entries.has(i) && !this.listings.has(i)) throw ro(`access '${e}'`);
            if (this.readOnly && r & Ju.constants.W_OK) throw In(`access '${e}'`)
        }

        async statPromise(e, r) {
            return this.statSync(e, r)
        }

        statSync(e, r) {
            let i = this.resolveFilename(`stat '${e}'`, e);
            if (!this.entries.has(i) && !this.listings.has(i)) throw ro(`stat '${e}'`);
            if (e[e.length - 1] === "/" && !this.listings.has(i)) throw Do(`stat '${e}'`);
            return this.statImpl(`stat '${e}'`, i, r)
        }

        async fstatPromise(e, r) {
            return this.fstatSync(e, r)
        }

        fstatSync(e, r) {
            let i = this.fds.get(e);
            if (typeof i == "undefined") throw en("fstatSync");
            let {p: n} = i, s = this.resolveFilename(`stat '${n}'`, n);
            if (!this.entries.has(s) && !this.listings.has(s)) throw ro(`stat '${n}'`);
            if (n[n.length - 1] === "/" && !this.listings.has(s)) throw Do(`stat '${n}'`);
            return this.statImpl(`fstat '${n}'`, s, r)
        }

        async lstatPromise(e, r) {
            return this.lstatSync(e, r)
        }

        lstatSync(e, r) {
            let i = this.resolveFilename(`lstat '${e}'`, e, !1);
            if (!this.entries.has(i) && !this.listings.has(i)) throw ro(`lstat '${e}'`);
            if (e[e.length - 1] === "/" && !this.listings.has(i)) throw Do(`lstat '${e}'`);
            return this.statImpl(`lstat '${e}'`, i, r)
        }

        statImpl(e, r, i = {}) {
            let n = this.entries.get(r);
            if (typeof n != "undefined") {
                let s = this.libzip.struct.statS();
                if (this.libzip.statIndex(this.zip, n, 0, 0, s) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
                let a = this.stats.uid, l = this.stats.gid, c = this.libzip.struct.statSize(s) >>> 0, u = 512,
                    g = Math.ceil(c / u), f = (this.libzip.struct.statMtime(s) >>> 0) * 1e3, h = f, p = f, m = f,
                    y = new Date(h), b = new Date(p), S = new Date(m), k = new Date(f),
                    T = this.listings.has(r) ? ka : this.isSymbolicLink(n) ? Pa : xa, Y = T === ka ? 493 : 420,
                    j = T | this.getUnixMode(n, Y) & 511, Z = this.libzip.struct.statCrc(s), J = Object.assign(new KA, {
                        uid: a,
                        gid: l,
                        size: c,
                        blksize: u,
                        blocks: g,
                        atime: y,
                        birthtime: b,
                        ctime: S,
                        mtime: k,
                        atimeMs: h,
                        birthtimeMs: p,
                        ctimeMs: m,
                        mtimeMs: f,
                        mode: j,
                        crc: Z
                    });
                return i.bigint === !0 ? UE(J) : J
            }
            if (this.listings.has(r)) {
                let s = this.stats.uid, o = this.stats.gid, a = 0, l = 512, c = 0, u = this.stats.mtimeMs,
                    g = this.stats.mtimeMs, f = this.stats.mtimeMs, h = this.stats.mtimeMs, p = new Date(u),
                    m = new Date(g), y = new Date(f), b = new Date(h), S = ka | 493, k = 0, T = Object.assign(new KA, {
                        uid: s,
                        gid: o,
                        size: a,
                        blksize: l,
                        blocks: c,
                        atime: p,
                        birthtime: m,
                        ctime: y,
                        mtime: b,
                        atimeMs: u,
                        birthtimeMs: g,
                        ctimeMs: f,
                        mtimeMs: h,
                        mode: S,
                        crc: k
                    });
                return i.bigint === !0 ? UE(T) : T
            }
            throw new Error("Unreachable")
        }

        getUnixMode(e, r) {
            if (this.libzip.file.getExternalAttributes(this.zip, e, 0, 0, this.libzip.uint08S, this.libzip.uint32S) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
            return this.libzip.getValue(this.libzip.uint08S, "i8") >>> 0 !== this.libzip.ZIP_OPSYS_UNIX ? r : this.libzip.getValue(this.libzip.uint32S, "i32") >>> 16
        }

        registerListing(e) {
            let r = this.listings.get(e);
            if (r) return r;
            this.registerListing(x.dirname(e)).add(x.basename(e));
            let n = new Set;
            return this.listings.set(e, n), n
        }

        registerEntry(e, r) {
            this.registerListing(x.dirname(e)).add(x.basename(e)), this.entries.set(e, r)
        }

        unregisterListing(e) {
            this.listings.delete(e);
            let r = this.listings.get(x.dirname(e));
            r == null || r.delete(x.basename(e))
        }

        unregisterEntry(e) {
            this.unregisterListing(e);
            let r = this.entries.get(e);
            this.entries.delete(e), typeof r != "undefined" && (this.fileSources.delete(r), this.isSymbolicLink(r) && this.symlinkCount--)
        }

        deleteEntry(e, r) {
            if (this.unregisterEntry(e), this.libzip.delete(this.zip, r) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip))
        }

        resolveFilename(e, r, i = !0) {
            if (!this.ready) throw YE(`archive closed, ${e}`);
            let n = x.resolve(Ke.root, r);
            if (n === "/") return Ke.root;
            let s = this.entries.get(n);
            if (i && s !== void 0) if (this.symlinkCount !== 0 && this.isSymbolicLink(s)) {
                let o = this.getFileSource(s).toString();
                return this.resolveFilename(e, x.resolve(x.dirname(n), o), !0)
            } else return n;
            for (; ;) {
                let o = this.resolveFilename(e, x.dirname(n), !0), a = this.listings.has(o), l = this.entries.has(o);
                if (!a && !l) throw ro(e);
                if (!a) throw Do(e);
                if (n = x.resolve(o, x.basename(n)), !i || this.symlinkCount === 0) break;
                let c = this.libzip.name.locate(this.zip, n.slice(1));
                if (c === -1) break;
                if (this.isSymbolicLink(c)) {
                    let u = this.getFileSource(c).toString();
                    n = x.resolve(x.dirname(n), u)
                } else break
            }
            return n
        }

        allocateBuffer(e) {
            Buffer.isBuffer(e) || (e = Buffer.from(e));
            let r = this.libzip.malloc(e.byteLength);
            if (!r) throw new Error("Couldn't allocate enough memory");
            return new Uint8Array(this.libzip.HEAPU8.buffer, r, e.byteLength).set(e), {
                buffer: r,
                byteLength: e.byteLength
            }
        }

        allocateUnattachedSource(e) {
            let r = this.libzip.struct.errorS(), {buffer: i, byteLength: n} = this.allocateBuffer(e),
                s = this.libzip.source.fromUnattachedBuffer(i, n, 0, !0, r);
            if (s === 0) throw this.libzip.free(r), this.makeLibzipError(r);
            return s
        }

        allocateSource(e) {
            let {buffer: r, byteLength: i} = this.allocateBuffer(e),
                n = this.libzip.source.fromBuffer(this.zip, r, i, 0, !0);
            if (n === 0) throw this.libzip.free(r), this.makeLibzipError(this.libzip.getError(this.zip));
            return n
        }

        setFileSource(e, r) {
            let i = Buffer.isBuffer(r) ? r : Buffer.from(r), n = x.relative(Ke.root, e), s = this.allocateSource(r);
            try {
                let o = this.libzip.file.add(this.zip, n, s, this.libzip.ZIP_FL_OVERWRITE);
                if (o === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
                if (this.level !== "mixed") {
                    let a = this.level === 0 ? this.libzip.ZIP_CM_STORE : this.libzip.ZIP_CM_DEFLATE;
                    if (this.libzip.file.setCompression(this.zip, o, 0, a, this.level) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip))
                }
                return this.fileSources.set(o, i), o
            } catch (o) {
                throw this.libzip.source.free(s), o
            }
        }

        isSymbolicLink(e) {
            if (this.symlinkCount === 0) return !1;
            if (this.libzip.file.getExternalAttributes(this.zip, e, 0, 0, this.libzip.uint08S, this.libzip.uint32S) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
            return this.libzip.getValue(this.libzip.uint08S, "i8") >>> 0 !== this.libzip.ZIP_OPSYS_UNIX ? !1 : (this.libzip.getValue(this.libzip.uint32S, "i32") >>> 16 & _n) === Pa
        }

        getFileSource(e, r = {asyncDecompress: !1}) {
            let i = this.fileSources.get(e);
            if (typeof i != "undefined") return i;
            let n = this.libzip.struct.statS();
            if (this.libzip.statIndex(this.zip, e, 0, 0, n) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
            let o = this.libzip.struct.statCompSize(n), a = this.libzip.struct.statCompMethod(n),
                l = this.libzip.malloc(o);
            try {
                let c = this.libzip.fopenIndex(this.zip, e, 0, this.libzip.ZIP_FL_COMPRESSED);
                if (c === 0) throw this.makeLibzipError(this.libzip.getError(this.zip));
                try {
                    let u = this.libzip.fread(c, l, o, 0);
                    if (u === -1) throw this.makeLibzipError(this.libzip.file.getError(c));
                    if (u < o) throw new Error("Incomplete read");
                    if (u > o) throw new Error("Overread");
                    let g = this.libzip.HEAPU8.subarray(l, l + o), f = Buffer.from(g);
                    if (a === 0) return this.fileSources.set(e, f), f;
                    if (r.asyncDecompress) return new Promise((h, p) => {
                        BQ.default.inflateRaw(f, (m, y) => {
                            m ? p(m) : (this.fileSources.set(e, y), h(y))
                        })
                    });
                    {
                        let h = BQ.default.inflateRawSync(f);
                        return this.fileSources.set(e, h), h
                    }
                } finally {
                    this.libzip.fclose(c)
                }
            } finally {
                this.libzip.free(l)
            }
        }

        async chmodPromise(e, r) {
            return this.chmodSync(e, r)
        }

        chmodSync(e, r) {
            if (this.readOnly) throw In(`chmod '${e}'`);
            r &= 493;
            let i = this.resolveFilename(`chmod '${e}'`, e, !1), n = this.entries.get(i);
            if (typeof n == "undefined") throw new Error(`Assertion failed: The entry should have been registered (${i})`);
            let o = this.getUnixMode(n, xa | 0) & ~511 | r;
            if (this.libzip.file.setExternalAttributes(this.zip, n, 0, 0, this.libzip.ZIP_OPSYS_UNIX, o << 16) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip))
        }

        async chownPromise(e, r, i) {
            return this.chownSync(e, r, i)
        }

        chownSync(e, r, i) {
            throw new Error("Unimplemented")
        }

        async renamePromise(e, r) {
            return this.renameSync(e, r)
        }

        renameSync(e, r) {
            throw new Error("Unimplemented")
        }

        async copyFilePromise(e, r, i) {
            let {indexSource: n, indexDest: s, resolvedDestP: o} = this.prepareCopyFile(e, r, i),
                a = await this.getFileSource(n, {asyncDecompress: !0}), l = this.setFileSource(o, a);
            l !== s && this.registerEntry(o, l)
        }

        copyFileSync(e, r, i = 0) {
            let {indexSource: n, indexDest: s, resolvedDestP: o} = this.prepareCopyFile(e, r, i),
                a = this.getFileSource(n), l = this.setFileSource(o, a);
            l !== s && this.registerEntry(o, l)
        }

        prepareCopyFile(e, r, i = 0) {
            if (this.readOnly) throw In(`copyfile '${e} -> '${r}'`);
            if ((i & Ju.constants.COPYFILE_FICLONE_FORCE) != 0) throw qh("unsupported clone operation", `copyfile '${e}' -> ${r}'`);
            let n = this.resolveFilename(`copyfile '${e} -> ${r}'`, e), s = this.entries.get(n);
            if (typeof s == "undefined") throw UA(`copyfile '${e}' -> '${r}'`);
            let o = this.resolveFilename(`copyfile '${e}' -> ${r}'`, r), a = this.entries.get(o);
            if ((i & (Ju.constants.COPYFILE_EXCL | Ju.constants.COPYFILE_FICLONE_FORCE)) != 0 && typeof a != "undefined") throw qE(`copyfile '${e}' -> '${r}'`);
            return {indexSource: s, resolvedDestP: o, indexDest: a}
        }

        async appendFilePromise(e, r, i) {
            if (this.readOnly) throw In(`open '${e}'`);
            return typeof i == "undefined" ? i = {flag: "a"} : typeof i == "string" ? i = {
                flag: "a",
                encoding: i
            } : typeof i.flag == "undefined" && (i = N({flag: "a"}, i)), this.writeFilePromise(e, r, i)
        }

        appendFileSync(e, r, i = {}) {
            if (this.readOnly) throw In(`open '${e}'`);
            return typeof i == "undefined" ? i = {flag: "a"} : typeof i == "string" ? i = {
                flag: "a",
                encoding: i
            } : typeof i.flag == "undefined" && (i = N({flag: "a"}, i)), this.writeFileSync(e, r, i)
        }

        fdToPath(e, r) {
            var n;
            let i = (n = this.fds.get(e)) == null ? void 0 : n.p;
            if (typeof i == "undefined") throw en(r);
            return i
        }

        async writeFilePromise(e, r, i) {
            let {encoding: n, mode: s, index: o, resolvedP: a} = this.prepareWriteFile(e, i);
            o !== void 0 && typeof i == "object" && i.flag && i.flag.includes("a") && (r = Buffer.concat([await this.getFileSource(o, {asyncDecompress: !0}), Buffer.from(r)])), n !== null && (r = r.toString(n));
            let l = this.setFileSource(a, r);
            l !== o && this.registerEntry(a, l), s !== null && await this.chmodPromise(a, s)
        }

        writeFileSync(e, r, i) {
            let {encoding: n, mode: s, index: o, resolvedP: a} = this.prepareWriteFile(e, i);
            o !== void 0 && typeof i == "object" && i.flag && i.flag.includes("a") && (r = Buffer.concat([this.getFileSource(o), Buffer.from(r)])), n !== null && (r = r.toString(n));
            let l = this.setFileSource(a, r);
            l !== o && this.registerEntry(a, l), s !== null && this.chmodSync(a, s)
        }

        prepareWriteFile(e, r) {
            if (typeof e == "number" && (e = this.fdToPath(e, "read")), this.readOnly) throw In(`open '${e}'`);
            let i = this.resolveFilename(`open '${e}'`, e);
            if (this.listings.has(i)) throw Jh(`open '${e}'`);
            let n = null, s = null;
            typeof r == "string" ? n = r : typeof r == "object" && ({encoding: n = null, mode: s = null} = r);
            let o = this.entries.get(i);
            return {encoding: n, mode: s, resolvedP: i, index: o}
        }

        async unlinkPromise(e) {
            return this.unlinkSync(e)
        }

        unlinkSync(e) {
            if (this.readOnly) throw In(`unlink '${e}'`);
            let r = this.resolveFilename(`unlink '${e}'`, e);
            if (this.listings.has(r)) throw Jh(`unlink '${e}'`);
            let i = this.entries.get(r);
            if (typeof i == "undefined") throw UA(`unlink '${e}'`);
            this.deleteEntry(r, i)
        }

        async utimesPromise(e, r, i) {
            return this.utimesSync(e, r, i)
        }

        utimesSync(e, r, i) {
            if (this.readOnly) throw In(`utimes '${e}'`);
            let n = this.resolveFilename(`utimes '${e}'`, e);
            this.utimesImpl(n, i)
        }

        async lutimesPromise(e, r, i) {
            return this.lutimesSync(e, r, i)
        }

        lutimesSync(e, r, i) {
            if (this.readOnly) throw In(`lutimes '${e}'`);
            let n = this.resolveFilename(`utimes '${e}'`, e, !1);
            this.utimesImpl(n, i)
        }

        utimesImpl(e, r) {
            this.listings.has(e) && (this.entries.has(e) || this.hydrateDirectory(e));
            let i = this.entries.get(e);
            if (i === void 0) throw new Error("Unreachable");
            if (this.libzip.file.setMtime(this.zip, i, 0, vfe(r), 0) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip))
        }

        async mkdirPromise(e, r) {
            return this.mkdirSync(e, r)
        }

        mkdirSync(e, {mode: r = 493, recursive: i = !1} = {}) {
            if (i) {
                this.mkdirpSync(e, {chmod: r});
                return
            }
            if (this.readOnly) throw In(`mkdir '${e}'`);
            let n = this.resolveFilename(`mkdir '${e}'`, e);
            if (this.entries.has(n) || this.listings.has(n)) throw qE(`mkdir '${e}'`);
            this.hydrateDirectory(n), this.chmodSync(n, r)
        }

        async rmdirPromise(e, r) {
            return this.rmdirSync(e, r)
        }

        rmdirSync(e, {recursive: r = !1} = {}) {
            if (this.readOnly) throw In(`rmdir '${e}'`);
            if (r) {
                this.removeSync(e);
                return
            }
            let i = this.resolveFilename(`rmdir '${e}'`, e), n = this.listings.get(i);
            if (!n) throw Do(`rmdir '${e}'`);
            if (n.size > 0) throw uM(`rmdir '${e}'`);
            let s = this.entries.get(i);
            if (typeof s == "undefined") throw UA(`rmdir '${e}'`);
            this.deleteEntry(e, s)
        }

        hydrateDirectory(e) {
            let r = this.libzip.dir.add(this.zip, x.relative(Ke.root, e));
            if (r === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
            return this.registerListing(e), this.registerEntry(e, r), r
        }

        async linkPromise(e, r) {
            return this.linkSync(e, r)
        }

        linkSync(e, r) {
            throw gM(`link '${e}' -> '${r}'`)
        }

        async symlinkPromise(e, r) {
            return this.symlinkSync(e, r)
        }

        symlinkSync(e, r) {
            if (this.readOnly) throw In(`symlink '${e}' -> '${r}'`);
            let i = this.resolveFilename(`symlink '${e}' -> '${r}'`, r);
            if (this.listings.has(i)) throw Jh(`symlink '${e}' -> '${r}'`);
            if (this.entries.has(i)) throw qE(`symlink '${e}' -> '${r}'`);
            let n = this.setFileSource(i, e);
            if (this.registerEntry(i, n), this.libzip.file.setExternalAttributes(this.zip, n, 0, 0, this.libzip.ZIP_OPSYS_UNIX, (Pa | 511) << 16) === -1) throw this.makeLibzipError(this.libzip.getError(this.zip));
            this.symlinkCount += 1
        }

        async readFilePromise(e, r) {
            typeof r == "object" && (r = r ? r.encoding : void 0);
            let i = await this.readFileBuffer(e, {asyncDecompress: !0});
            return r ? i.toString(r) : i
        }

        readFileSync(e, r) {
            typeof r == "object" && (r = r ? r.encoding : void 0);
            let i = this.readFileBuffer(e);
            return r ? i.toString(r) : i
        }

        readFileBuffer(e, r = {asyncDecompress: !1}) {
            typeof e == "number" && (e = this.fdToPath(e, "read"));
            let i = this.resolveFilename(`open '${e}'`, e);
            if (!this.entries.has(i) && !this.listings.has(i)) throw ro(`open '${e}'`);
            if (e[e.length - 1] === "/" && !this.listings.has(i)) throw Do(`open '${e}'`);
            if (this.listings.has(i)) throw Jh("read");
            let n = this.entries.get(i);
            if (n === void 0) throw new Error("Unreachable");
            return this.getFileSource(n, r)
        }

        async readdirPromise(e, r) {
            return this.readdirSync(e, r)
        }

        readdirSync(e, r) {
            let i = this.resolveFilename(`scandir '${e}'`, e);
            if (!this.entries.has(i) && !this.listings.has(i)) throw ro(`scandir '${e}'`);
            let n = this.listings.get(i);
            if (!n) throw Do(`scandir '${e}'`);
            let s = [...n];
            return (r == null ? void 0 : r.withFileTypes) ? s.map(o => Object.assign(this.statImpl("lstat", x.join(e, o)), {name: o})) : s
        }

        async readlinkPromise(e) {
            let r = this.prepareReadlink(e);
            return (await this.getFileSource(r, {asyncDecompress: !0})).toString()
        }

        readlinkSync(e) {
            let r = this.prepareReadlink(e);
            return this.getFileSource(r).toString()
        }

        prepareReadlink(e) {
            let r = this.resolveFilename(`readlink '${e}'`, e, !1);
            if (!this.entries.has(r) && !this.listings.has(r)) throw ro(`readlink '${e}'`);
            if (e[e.length - 1] === "/" && !this.listings.has(r)) throw Do(`open '${e}'`);
            if (this.listings.has(r)) throw UA(`readlink '${e}'`);
            let i = this.entries.get(r);
            if (i === void 0) throw new Error("Unreachable");
            if (!this.isSymbolicLink(i)) throw UA(`readlink '${e}'`);
            return i
        }

        async truncatePromise(e, r = 0) {
            let i = this.resolveFilename(`open '${e}'`, e), n = this.entries.get(i);
            if (typeof n == "undefined") throw UA(`open '${e}'`);
            let s = await this.getFileSource(n, {asyncDecompress: !0}), o = Buffer.alloc(r, 0);
            return s.copy(o), await this.writeFilePromise(e, o)
        }

        truncateSync(e, r = 0) {
            let i = this.resolveFilename(`open '${e}'`, e), n = this.entries.get(i);
            if (typeof n == "undefined") throw UA(`open '${e}'`);
            let s = this.getFileSource(n), o = Buffer.alloc(r, 0);
            return s.copy(o), this.writeFileSync(e, o)
        }

        watch(e, r, i) {
            let n;
            switch (typeof r) {
                case"function":
                case"string":
                case"undefined":
                    n = !0;
                    break;
                default:
                    ({persistent: n = !0} = r);
                    break
            }
            if (!n) return {
                on: () => {
                }, close: () => {
                }
            };
            let s = setInterval(() => {
            }, 24 * 60 * 60 * 1e3);
            return {
                on: () => {
                }, close: () => {
                    clearInterval(s)
                }
            }
        }

        watchFile(e, r, i) {
            let n = x.resolve(Ke.root, e);
            return zE(this, n, r, i)
        }

        unwatchFile(e, r) {
            let i = x.resolve(Ke.root, e);
            return zh(this, i, r)
        }
    };
    var bi = class extends HA {
        getExtractHint(e) {
            return this.baseFs.getExtractHint(e)
        }

        resolve(e) {
            return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))
        }

        getRealPath() {
            return this.mapFromBase(this.baseFs.getRealPath())
        }

        async openPromise(e, r, i) {
            return this.baseFs.openPromise(this.mapToBase(e), r, i)
        }

        openSync(e, r, i) {
            return this.baseFs.openSync(this.mapToBase(e), r, i)
        }

        async opendirPromise(e, r) {
            return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e), r), {path: e})
        }

        opendirSync(e, r) {
            return Object.assign(this.baseFs.opendirSync(this.mapToBase(e), r), {path: e})
        }

        async readPromise(e, r, i, n, s) {
            return await this.baseFs.readPromise(e, r, i, n, s)
        }

        readSync(e, r, i, n, s) {
            return this.baseFs.readSync(e, r, i, n, s)
        }

        async writePromise(e, r, i, n, s) {
            return typeof r == "string" ? await this.baseFs.writePromise(e, r, i) : await this.baseFs.writePromise(e, r, i, n, s)
        }

        writeSync(e, r, i, n, s) {
            return typeof r == "string" ? this.baseFs.writeSync(e, r, i) : this.baseFs.writeSync(e, r, i, n, s)
        }

        async closePromise(e) {
            return this.baseFs.closePromise(e)
        }

        closeSync(e) {
            this.baseFs.closeSync(e)
        }

        createReadStream(e, r) {
            return this.baseFs.createReadStream(e !== null ? this.mapToBase(e) : e, r)
        }

        createWriteStream(e, r) {
            return this.baseFs.createWriteStream(e !== null ? this.mapToBase(e) : e, r)
        }

        async realpathPromise(e) {
            return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))
        }

        realpathSync(e) {
            return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))
        }

        async existsPromise(e) {
            return this.baseFs.existsPromise(this.mapToBase(e))
        }

        existsSync(e) {
            return this.baseFs.existsSync(this.mapToBase(e))
        }

        accessSync(e, r) {
            return this.baseFs.accessSync(this.mapToBase(e), r)
        }

        async accessPromise(e, r) {
            return this.baseFs.accessPromise(this.mapToBase(e), r)
        }

        async statPromise(e, r) {
            return this.baseFs.statPromise(this.mapToBase(e), r)
        }

        statSync(e, r) {
            return this.baseFs.statSync(this.mapToBase(e), r)
        }

        async fstatPromise(e, r) {
            return this.baseFs.fstatPromise(e, r)
        }

        fstatSync(e, r) {
            return this.baseFs.fstatSync(e, r)
        }

        async lstatPromise(e, r) {
            return this.baseFs.lstatPromise(this.mapToBase(e), r)
        }

        lstatSync(e, r) {
            return this.baseFs.lstatSync(this.mapToBase(e), r)
        }

        async chmodPromise(e, r) {
            return this.baseFs.chmodPromise(this.mapToBase(e), r)
        }

        chmodSync(e, r) {
            return this.baseFs.chmodSync(this.mapToBase(e), r)
        }

        async chownPromise(e, r, i) {
            return this.baseFs.chownPromise(this.mapToBase(e), r, i)
        }

        chownSync(e, r, i) {
            return this.baseFs.chownSync(this.mapToBase(e), r, i)
        }

        async renamePromise(e, r) {
            return this.baseFs.renamePromise(this.mapToBase(e), this.mapToBase(r))
        }

        renameSync(e, r) {
            return this.baseFs.renameSync(this.mapToBase(e), this.mapToBase(r))
        }

        async copyFilePromise(e, r, i = 0) {
            return this.baseFs.copyFilePromise(this.mapToBase(e), this.mapToBase(r), i)
        }

        copyFileSync(e, r, i = 0) {
            return this.baseFs.copyFileSync(this.mapToBase(e), this.mapToBase(r), i)
        }

        async appendFilePromise(e, r, i) {
            return this.baseFs.appendFilePromise(this.fsMapToBase(e), r, i)
        }

        appendFileSync(e, r, i) {
            return this.baseFs.appendFileSync(this.fsMapToBase(e), r, i)
        }

        async writeFilePromise(e, r, i) {
            return this.baseFs.writeFilePromise(this.fsMapToBase(e), r, i)
        }

        writeFileSync(e, r, i) {
            return this.baseFs.writeFileSync(this.fsMapToBase(e), r, i)
        }

        async unlinkPromise(e) {
            return this.baseFs.unlinkPromise(this.mapToBase(e))
        }

        unlinkSync(e) {
            return this.baseFs.unlinkSync(this.mapToBase(e))
        }

        async utimesPromise(e, r, i) {
            return this.baseFs.utimesPromise(this.mapToBase(e), r, i)
        }

        utimesSync(e, r, i) {
            return this.baseFs.utimesSync(this.mapToBase(e), r, i)
        }

        async mkdirPromise(e, r) {
            return this.baseFs.mkdirPromise(this.mapToBase(e), r)
        }

        mkdirSync(e, r) {
            return this.baseFs.mkdirSync(this.mapToBase(e), r)
        }

        async rmdirPromise(e, r) {
            return this.baseFs.rmdirPromise(this.mapToBase(e), r)
        }

        rmdirSync(e, r) {
            return this.baseFs.rmdirSync(this.mapToBase(e), r)
        }

        async linkPromise(e, r) {
            return this.baseFs.linkPromise(this.mapToBase(e), this.mapToBase(r))
        }

        linkSync(e, r) {
            return this.baseFs.linkSync(this.mapToBase(e), this.mapToBase(r))
        }

        async symlinkPromise(e, r, i) {
            let n = this.mapToBase(r);
            if (this.pathUtils.isAbsolute(e)) return this.baseFs.symlinkPromise(this.mapToBase(e), n, i);
            let s = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r), e)),
                o = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n), s);
            return this.baseFs.symlinkPromise(o, n, i)
        }

        symlinkSync(e, r, i) {
            let n = this.mapToBase(r);
            if (this.pathUtils.isAbsolute(e)) return this.baseFs.symlinkSync(this.mapToBase(e), n, i);
            let s = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r), e)),
                o = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n), s);
            return this.baseFs.symlinkSync(o, n, i)
        }

        async readFilePromise(e, r) {
            return r === "utf8" ? this.baseFs.readFilePromise(this.fsMapToBase(e), r) : this.baseFs.readFilePromise(this.fsMapToBase(e), r)
        }

        readFileSync(e, r) {
            return r === "utf8" ? this.baseFs.readFileSync(this.fsMapToBase(e), r) : this.baseFs.readFileSync(this.fsMapToBase(e), r)
        }

        async readdirPromise(e, r) {
            return this.baseFs.readdirPromise(this.mapToBase(e), r)
        }

        readdirSync(e, r) {
            return this.baseFs.readdirSync(this.mapToBase(e), r)
        }

        async readlinkPromise(e) {
            return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))
        }

        readlinkSync(e) {
            return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))
        }

        async truncatePromise(e, r) {
            return this.baseFs.truncatePromise(this.mapToBase(e), r)
        }

        truncateSync(e, r) {
            return this.baseFs.truncateSync(this.mapToBase(e), r)
        }

        watch(e, r, i) {
            return this.baseFs.watch(this.mapToBase(e), r, i)
        }

        watchFile(e, r, i) {
            return this.baseFs.watchFile(this.mapToBase(e), r, i)
        }

        unwatchFile(e, r) {
            return this.baseFs.unwatchFile(this.mapToBase(e), r)
        }

        fsMapToBase(e) {
            return typeof e == "number" ? e : this.mapToBase(e)
        }
    };
    var Da = class extends bi {
        constructor(e, {baseFs: r, pathUtils: i}) {
            super(i);
            this.target = e, this.baseFs = r
        }

        getRealPath() {
            return this.target
        }

        getBaseFs() {
            return this.baseFs
        }

        mapFromBase(e) {
            return e
        }

        mapToBase(e) {
            return e
        }
    };
    var _t = class extends bi {
        constructor(e, {baseFs: r = new ar} = {}) {
            super(x);
            this.target = this.pathUtils.normalize(e), this.baseFs = r
        }

        getRealPath() {
            return this.pathUtils.resolve(this.baseFs.getRealPath(), this.target)
        }

        resolve(e) {
            return this.pathUtils.isAbsolute(e) ? x.normalize(e) : this.baseFs.resolve(x.join(this.target, e))
        }

        mapFromBase(e) {
            return e
        }

        mapToBase(e) {
            return this.pathUtils.isAbsolute(e) ? e : this.pathUtils.join(this.target, e)
        }
    };
    var yM = Ke.root, Ra = class extends bi {
        constructor(e, {baseFs: r = new ar} = {}) {
            super(x);
            this.target = this.pathUtils.resolve(Ke.root, e), this.baseFs = r
        }

        getRealPath() {
            return this.pathUtils.resolve(this.baseFs.getRealPath(), this.pathUtils.relative(Ke.root, this.target))
        }

        getTarget() {
            return this.target
        }

        getBaseFs() {
            return this.baseFs
        }

        mapToBase(e) {
            let r = this.pathUtils.normalize(e);
            if (this.pathUtils.isAbsolute(e)) return this.pathUtils.resolve(this.target, this.pathUtils.relative(yM, e));
            if (r.match(/^\.\.\/?/)) throw new Error(`Resolving this path (${e}) would escape the jail`);
            return this.pathUtils.resolve(this.target, e)
        }

        mapFromBase(e) {
            return this.pathUtils.resolve(yM, this.pathUtils.relative(this.target, e))
        }
    };
    var Vh = class extends bi {
        constructor(e, r) {
            super(r);
            this.instance = null;
            this.factory = e
        }

        get baseFs() {
            return this.instance || (this.instance = this.factory()), this.instance
        }

        set baseFs(e) {
            this.instance = e
        }

        mapFromBase(e) {
            return e
        }

        mapToBase(e) {
            return e
        }
    };
    var st = () => Object.assign(new Error("ENOSYS: unsupported filesystem access"), {code: "ENOSYS"}),
        bQ = class extends HA {
            constructor() {
                super(x)
            }

            getExtractHint() {
                throw st()
            }

            getRealPath() {
                throw st()
            }

            resolve() {
                throw st()
            }

            async openPromise() {
                throw st()
            }

            openSync() {
                throw st()
            }

            async opendirPromise() {
                throw st()
            }

            opendirSync() {
                throw st()
            }

            async readPromise() {
                throw st()
            }

            readSync() {
                throw st()
            }

            async writePromise() {
                throw st()
            }

            writeSync() {
                throw st()
            }

            async closePromise() {
                throw st()
            }

            closeSync() {
                throw st()
            }

            createWriteStream() {
                throw st()
            }

            createReadStream() {
                throw st()
            }

            async realpathPromise() {
                throw st()
            }

            realpathSync() {
                throw st()
            }

            async readdirPromise() {
                throw st()
            }

            readdirSync() {
                throw st()
            }

            async existsPromise(e) {
                throw st()
            }

            existsSync(e) {
                throw st()
            }

            async accessPromise() {
                throw st()
            }

            accessSync() {
                throw st()
            }

            async statPromise() {
                throw st()
            }

            statSync() {
                throw st()
            }

            async fstatPromise(e) {
                throw st()
            }

            fstatSync(e) {
                throw st()
            }

            async lstatPromise(e) {
                throw st()
            }

            lstatSync(e) {
                throw st()
            }

            async chmodPromise() {
                throw st()
            }

            chmodSync() {
                throw st()
            }

            async chownPromise() {
                throw st()
            }

            chownSync() {
                throw st()
            }

            async mkdirPromise() {
                throw st()
            }

            mkdirSync() {
                throw st()
            }

            async rmdirPromise() {
                throw st()
            }

            rmdirSync() {
                throw st()
            }

            async linkPromise() {
                throw st()
            }

            linkSync() {
                throw st()
            }

            async symlinkPromise() {
                throw st()
            }

            symlinkSync() {
                throw st()
            }

            async renamePromise() {
                throw st()
            }

            renameSync() {
                throw st()
            }

            async copyFilePromise() {
                throw st()
            }

            copyFileSync() {
                throw st()
            }

            async appendFilePromise() {
                throw st()
            }

            appendFileSync() {
                throw st()
            }

            async writeFilePromise() {
                throw st()
            }

            writeFileSync() {
                throw st()
            }

            async unlinkPromise() {
                throw st()
            }

            unlinkSync() {
                throw st()
            }

            async utimesPromise() {
                throw st()
            }

            utimesSync() {
                throw st()
            }

            async readFilePromise() {
                throw st()
            }

            readFileSync() {
                throw st()
            }

            async readlinkPromise() {
                throw st()
            }

            readlinkSync() {
                throw st()
            }

            async truncatePromise() {
                throw st()
            }

            truncateSync() {
                throw st()
            }

            watch() {
                throw st()
            }

            watchFile() {
                throw st()
            }

            unwatchFile() {
                throw st()
            }
        }, _E = bQ;
    _E.instance = new bQ;
    var Xh = class extends bi {
        constructor(e) {
            super(H);
            this.baseFs = e
        }

        mapFromBase(e) {
            return H.fromPortablePath(e)
        }

        mapToBase(e) {
            return H.toPortablePath(e)
        }
    };
    var Sfe = /^[0-9]+$/,
        QQ = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,
        kfe = /^([^/]+-)?[a-f0-9]+$/, Wr = class extends bi {
            static makeVirtualPath(e, r, i) {
                if (x.basename(e) !== "__virtual__") throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');
                if (!x.basename(r).match(kfe)) throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");
                let s = x.relative(x.dirname(e), i).split("/"), o = 0;
                for (; o < s.length && s[o] === "..";) o += 1;
                let a = s.slice(o);
                return x.join(e, r, String(o), ...a)
            }

            static resolveVirtual(e) {
                let r = e.match(QQ);
                if (!r || !r[3] && r[5]) return e;
                let i = x.dirname(r[1]);
                if (!r[3] || !r[4]) return i;
                if (!Sfe.test(r[4])) return e;
                let s = Number(r[4]), o = "../".repeat(s), a = r[5] || ".";
                return Wr.resolveVirtual(x.join(i, o, a))
            }

            constructor({baseFs: e = new ar} = {}) {
                super(x);
                this.baseFs = e
            }

            getExtractHint(e) {
                return this.baseFs.getExtractHint(e)
            }

            getRealPath() {
                return this.baseFs.getRealPath()
            }

            realpathSync(e) {
                let r = e.match(QQ);
                if (!r) return this.baseFs.realpathSync(e);
                if (!r[5]) return e;
                let i = this.baseFs.realpathSync(this.mapToBase(e));
                return Wr.makeVirtualPath(r[1], r[3], i)
            }

            async realpathPromise(e) {
                let r = e.match(QQ);
                if (!r) return await this.baseFs.realpathPromise(e);
                if (!r[5]) return e;
                let i = await this.baseFs.realpathPromise(this.mapToBase(e));
                return Wr.makeVirtualPath(r[1], r[3], i)
            }

            mapToBase(e) {
                if (e === "") return e;
                if (this.pathUtils.isAbsolute(e)) return Wr.resolveVirtual(e);
                let r = Wr.resolveVirtual(this.baseFs.resolve(Ke.dot)), i = Wr.resolveVirtual(this.baseFs.resolve(e));
                return x.relative(r, i) || Ke.dot
            }

            mapFromBase(e) {
                return e
            }
        };
    var Zh = ge(require("fs"));
    var Fa = 2147483648, wM = (t, e) => {
        let r = t.indexOf(e);
        if (r <= 0) return null;
        let i = r;
        for (; r >= 0 && (i = r + e.length, t[i] !== x.sep);) {
            if (t[r - 1] === x.sep) return null;
            r = t.indexOf(e, i)
        }
        return t.length > i && t[i] !== x.sep ? null : t.slice(0, i)
    }, Es = class extends tc {
        constructor({
                        libzip: e,
                        baseFs: r = new ar,
                        filter: i = null,
                        maxOpenFiles: n = Infinity,
                        readOnlyArchives: s = !1,
                        useCache: o = !0,
                        maxAge: a = 5e3,
                        fileExtensions: l = null
                    }) {
            super();
            this.fdMap = new Map;
            this.nextFd = 3;
            this.isZip = new Set;
            this.notZip = new Set;
            this.realPaths = new Map;
            this.limitOpenFilesTimeout = null;
            this.libzipFactory = typeof e != "function" ? () => e : e, this.baseFs = r, this.zipInstances = o ? new Map : null, this.filter = i, this.maxOpenFiles = n, this.readOnlyArchives = s, this.maxAge = a, this.fileExtensions = l
        }

        static async openPromise(e, r) {
            let i = new Es(r);
            try {
                return await e(i)
            } finally {
                i.saveAndClose()
            }
        }

        get libzip() {
            return typeof this.libzipInstance == "undefined" && (this.libzipInstance = this.libzipFactory()), this.libzipInstance
        }

        getExtractHint(e) {
            return this.baseFs.getExtractHint(e)
        }

        getRealPath() {
            return this.baseFs.getRealPath()
        }

        saveAndClose() {
            if (_h(this), this.zipInstances) for (let [e, {zipFs: r}] of this.zipInstances.entries()) r.saveAndClose(), this.zipInstances.delete(e)
        }

        discardAndClose() {
            if (_h(this), this.zipInstances) for (let [e, {zipFs: r}] of this.zipInstances.entries()) r.discardAndClose(), this.zipInstances.delete(e)
        }

        resolve(e) {
            return this.baseFs.resolve(e)
        }

        remapFd(e, r) {
            let i = this.nextFd++ | Fa;
            return this.fdMap.set(i, [e, r]), i
        }

        async openPromise(e, r, i) {
            return await this.makeCallPromise(e, async () => await this.baseFs.openPromise(e, r, i), async (n, {subPath: s}) => this.remapFd(n, await n.openPromise(s, r, i)))
        }

        openSync(e, r, i) {
            return this.makeCallSync(e, () => this.baseFs.openSync(e, r, i), (n, {subPath: s}) => this.remapFd(n, n.openSync(s, r, i)))
        }

        async opendirPromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.opendirPromise(e, r), async (i, {subPath: n}) => await i.opendirPromise(n, r), {requireSubpath: !1})
        }

        opendirSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.opendirSync(e, r), (i, {subPath: n}) => i.opendirSync(n, r), {requireSubpath: !1})
        }

        async readPromise(e, r, i, n, s) {
            if ((e & Fa) == 0) return await this.baseFs.readPromise(e, r, i, n, s);
            let o = this.fdMap.get(e);
            if (typeof o == "undefined") throw en("read");
            let [a, l] = o;
            return await a.readPromise(l, r, i, n, s)
        }

        readSync(e, r, i, n, s) {
            if ((e & Fa) == 0) return this.baseFs.readSync(e, r, i, n, s);
            let o = this.fdMap.get(e);
            if (typeof o == "undefined") throw en("readSync");
            let [a, l] = o;
            return a.readSync(l, r, i, n, s)
        }

        async writePromise(e, r, i, n, s) {
            if ((e & Fa) == 0) return typeof r == "string" ? await this.baseFs.writePromise(e, r, i) : await this.baseFs.writePromise(e, r, i, n, s);
            let o = this.fdMap.get(e);
            if (typeof o == "undefined") throw en("write");
            let [a, l] = o;
            return typeof r == "string" ? await a.writePromise(l, r, i) : await a.writePromise(l, r, i, n, s)
        }

        writeSync(e, r, i, n, s) {
            if ((e & Fa) == 0) return typeof r == "string" ? this.baseFs.writeSync(e, r, i) : this.baseFs.writeSync(e, r, i, n, s);
            let o = this.fdMap.get(e);
            if (typeof o == "undefined") throw en("writeSync");
            let [a, l] = o;
            return typeof r == "string" ? a.writeSync(l, r, i) : a.writeSync(l, r, i, n, s)
        }

        async closePromise(e) {
            if ((e & Fa) == 0) return await this.baseFs.closePromise(e);
            let r = this.fdMap.get(e);
            if (typeof r == "undefined") throw en("close");
            this.fdMap.delete(e);
            let [i, n] = r;
            return await i.closePromise(n)
        }

        closeSync(e) {
            if ((e & Fa) == 0) return this.baseFs.closeSync(e);
            let r = this.fdMap.get(e);
            if (typeof r == "undefined") throw en("closeSync");
            this.fdMap.delete(e);
            let [i, n] = r;
            return i.closeSync(n)
        }

        createReadStream(e, r) {
            return e === null ? this.baseFs.createReadStream(e, r) : this.makeCallSync(e, () => this.baseFs.createReadStream(e, r), (i, {
                archivePath: n,
                subPath: s
            }) => {
                let o = i.createReadStream(s, r);
                return o.path = H.fromPortablePath(this.pathUtils.join(n, s)), o
            })
        }

        createWriteStream(e, r) {
            return e === null ? this.baseFs.createWriteStream(e, r) : this.makeCallSync(e, () => this.baseFs.createWriteStream(e, r), (i, {subPath: n}) => i.createWriteStream(n, r))
        }

        async realpathPromise(e) {
            return await this.makeCallPromise(e, async () => await this.baseFs.realpathPromise(e), async (r, {
                archivePath: i,
                subPath: n
            }) => {
                let s = this.realPaths.get(i);
                return typeof s == "undefined" && (s = await this.baseFs.realpathPromise(i), this.realPaths.set(i, s)), this.pathUtils.join(s, this.pathUtils.relative(Ke.root, await r.realpathPromise(n)))
            })
        }

        realpathSync(e) {
            return this.makeCallSync(e, () => this.baseFs.realpathSync(e), (r, {archivePath: i, subPath: n}) => {
                let s = this.realPaths.get(i);
                return typeof s == "undefined" && (s = this.baseFs.realpathSync(i), this.realPaths.set(i, s)), this.pathUtils.join(s, this.pathUtils.relative(Ke.root, r.realpathSync(n)))
            })
        }

        async existsPromise(e) {
            return await this.makeCallPromise(e, async () => await this.baseFs.existsPromise(e), async (r, {subPath: i}) => await r.existsPromise(i))
        }

        existsSync(e) {
            return this.makeCallSync(e, () => this.baseFs.existsSync(e), (r, {subPath: i}) => r.existsSync(i))
        }

        async accessPromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.accessPromise(e, r), async (i, {subPath: n}) => await i.accessPromise(n, r))
        }

        accessSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.accessSync(e, r), (i, {subPath: n}) => i.accessSync(n, r))
        }

        async statPromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.statPromise(e, r), async (i, {subPath: n}) => await i.statPromise(n, r))
        }

        statSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.statSync(e, r), (i, {subPath: n}) => i.statSync(n, r))
        }

        async fstatPromise(e, r) {
            if ((e & Fa) == 0) return this.baseFs.fstatPromise(e, r);
            let i = this.fdMap.get(e);
            if (typeof i == "undefined") throw en("fstat");
            let [n, s] = i;
            return n.fstatPromise(s, r)
        }

        fstatSync(e, r) {
            if ((e & Fa) == 0) return this.baseFs.fstatSync(e, r);
            let i = this.fdMap.get(e);
            if (typeof i == "undefined") throw en("fstatSync");
            let [n, s] = i;
            return n.fstatSync(s, r)
        }

        async lstatPromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.lstatPromise(e, r), async (i, {subPath: n}) => await i.lstatPromise(n, r))
        }

        lstatSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.lstatSync(e, r), (i, {subPath: n}) => i.lstatSync(n, r))
        }

        async chmodPromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.chmodPromise(e, r), async (i, {subPath: n}) => await i.chmodPromise(n, r))
        }

        chmodSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.chmodSync(e, r), (i, {subPath: n}) => i.chmodSync(n, r))
        }

        async chownPromise(e, r, i) {
            return await this.makeCallPromise(e, async () => await this.baseFs.chownPromise(e, r, i), async (n, {subPath: s}) => await n.chownPromise(s, r, i))
        }

        chownSync(e, r, i) {
            return this.makeCallSync(e, () => this.baseFs.chownSync(e, r, i), (n, {subPath: s}) => n.chownSync(s, r, i))
        }

        async renamePromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.makeCallPromise(r, async () => await this.baseFs.renamePromise(e, r), async () => {
                throw Object.assign(new Error("EEXDEV: cross-device link not permitted"), {code: "EEXDEV"})
            }), async (i, {subPath: n}) => await this.makeCallPromise(r, async () => {
                throw Object.assign(new Error("EEXDEV: cross-device link not permitted"), {code: "EEXDEV"})
            }, async (s, {subPath: o}) => {
                if (i !== s) throw Object.assign(new Error("EEXDEV: cross-device link not permitted"), {code: "EEXDEV"});
                return await i.renamePromise(n, o)
            }))
        }

        renameSync(e, r) {
            return this.makeCallSync(e, () => this.makeCallSync(r, () => this.baseFs.renameSync(e, r), () => {
                throw Object.assign(new Error("EEXDEV: cross-device link not permitted"), {code: "EEXDEV"})
            }), (i, {subPath: n}) => this.makeCallSync(r, () => {
                throw Object.assign(new Error("EEXDEV: cross-device link not permitted"), {code: "EEXDEV"})
            }, (s, {subPath: o}) => {
                if (i !== s) throw Object.assign(new Error("EEXDEV: cross-device link not permitted"), {code: "EEXDEV"});
                return i.renameSync(n, o)
            }))
        }

        async copyFilePromise(e, r, i = 0) {
            let n = async (s, o, a, l) => {
                if ((i & Zh.constants.COPYFILE_FICLONE_FORCE) != 0) throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`), {code: "EXDEV"});
                if (i & Zh.constants.COPYFILE_EXCL && await this.existsPromise(o)) throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`), {code: "EEXIST"});
                let c;
                try {
                    c = await s.readFilePromise(o)
                } catch (u) {
                    throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`), {code: "EINVAL"})
                }
                await a.writeFilePromise(l, c)
            };
            return await this.makeCallPromise(e, async () => await this.makeCallPromise(r, async () => await this.baseFs.copyFilePromise(e, r, i), async (s, {subPath: o}) => await n(this.baseFs, e, s, o)), async (s, {subPath: o}) => await this.makeCallPromise(r, async () => await n(s, o, this.baseFs, r), async (a, {subPath: l}) => s !== a ? await n(s, o, a, l) : await s.copyFilePromise(o, l, i)))
        }

        copyFileSync(e, r, i = 0) {
            let n = (s, o, a, l) => {
                if ((i & Zh.constants.COPYFILE_FICLONE_FORCE) != 0) throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`), {code: "EXDEV"});
                if (i & Zh.constants.COPYFILE_EXCL && this.existsSync(o)) throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`), {code: "EEXIST"});
                let c;
                try {
                    c = s.readFileSync(o)
                } catch (u) {
                    throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`), {code: "EINVAL"})
                }
                a.writeFileSync(l, c)
            };
            return this.makeCallSync(e, () => this.makeCallSync(r, () => this.baseFs.copyFileSync(e, r, i), (s, {subPath: o}) => n(this.baseFs, e, s, o)), (s, {subPath: o}) => this.makeCallSync(r, () => n(s, o, this.baseFs, r), (a, {subPath: l}) => s !== a ? n(s, o, a, l) : s.copyFileSync(o, l, i)))
        }

        async appendFilePromise(e, r, i) {
            return await this.makeCallPromise(e, async () => await this.baseFs.appendFilePromise(e, r, i), async (n, {subPath: s}) => await n.appendFilePromise(s, r, i))
        }

        appendFileSync(e, r, i) {
            return this.makeCallSync(e, () => this.baseFs.appendFileSync(e, r, i), (n, {subPath: s}) => n.appendFileSync(s, r, i))
        }

        async writeFilePromise(e, r, i) {
            return await this.makeCallPromise(e, async () => await this.baseFs.writeFilePromise(e, r, i), async (n, {subPath: s}) => await n.writeFilePromise(s, r, i))
        }

        writeFileSync(e, r, i) {
            return this.makeCallSync(e, () => this.baseFs.writeFileSync(e, r, i), (n, {subPath: s}) => n.writeFileSync(s, r, i))
        }

        async unlinkPromise(e) {
            return await this.makeCallPromise(e, async () => await this.baseFs.unlinkPromise(e), async (r, {subPath: i}) => await r.unlinkPromise(i))
        }

        unlinkSync(e) {
            return this.makeCallSync(e, () => this.baseFs.unlinkSync(e), (r, {subPath: i}) => r.unlinkSync(i))
        }

        async utimesPromise(e, r, i) {
            return await this.makeCallPromise(e, async () => await this.baseFs.utimesPromise(e, r, i), async (n, {subPath: s}) => await n.utimesPromise(s, r, i))
        }

        utimesSync(e, r, i) {
            return this.makeCallSync(e, () => this.baseFs.utimesSync(e, r, i), (n, {subPath: s}) => n.utimesSync(s, r, i))
        }

        async mkdirPromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.mkdirPromise(e, r), async (i, {subPath: n}) => await i.mkdirPromise(n, r))
        }

        mkdirSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.mkdirSync(e, r), (i, {subPath: n}) => i.mkdirSync(n, r))
        }

        async rmdirPromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.rmdirPromise(e, r), async (i, {subPath: n}) => await i.rmdirPromise(n, r))
        }

        rmdirSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.rmdirSync(e, r), (i, {subPath: n}) => i.rmdirSync(n, r))
        }

        async linkPromise(e, r) {
            return await this.makeCallPromise(r, async () => await this.baseFs.linkPromise(e, r), async (i, {subPath: n}) => await i.linkPromise(e, n))
        }

        linkSync(e, r) {
            return this.makeCallSync(r, () => this.baseFs.linkSync(e, r), (i, {subPath: n}) => i.linkSync(e, n))
        }

        async symlinkPromise(e, r, i) {
            return await this.makeCallPromise(r, async () => await this.baseFs.symlinkPromise(e, r, i), async (n, {subPath: s}) => await n.symlinkPromise(e, s))
        }

        symlinkSync(e, r, i) {
            return this.makeCallSync(r, () => this.baseFs.symlinkSync(e, r, i), (n, {subPath: s}) => n.symlinkSync(e, s))
        }

        async readFilePromise(e, r) {
            return this.makeCallPromise(e, async () => {
                switch (r) {
                    case"utf8":
                        return await this.baseFs.readFilePromise(e, r);
                    default:
                        return await this.baseFs.readFilePromise(e, r)
                }
            }, async (i, {subPath: n}) => await i.readFilePromise(n, r))
        }

        readFileSync(e, r) {
            return this.makeCallSync(e, () => {
                switch (r) {
                    case"utf8":
                        return this.baseFs.readFileSync(e, r);
                    default:
                        return this.baseFs.readFileSync(e, r)
                }
            }, (i, {subPath: n}) => i.readFileSync(n, r))
        }

        async readdirPromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.readdirPromise(e, r), async (i, {subPath: n}) => await i.readdirPromise(n, r), {requireSubpath: !1})
        }

        readdirSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.readdirSync(e, r), (i, {subPath: n}) => i.readdirSync(n, r), {requireSubpath: !1})
        }

        async readlinkPromise(e) {
            return await this.makeCallPromise(e, async () => await this.baseFs.readlinkPromise(e), async (r, {subPath: i}) => await r.readlinkPromise(i))
        }

        readlinkSync(e) {
            return this.makeCallSync(e, () => this.baseFs.readlinkSync(e), (r, {subPath: i}) => r.readlinkSync(i))
        }

        async truncatePromise(e, r) {
            return await this.makeCallPromise(e, async () => await this.baseFs.truncatePromise(e, r), async (i, {subPath: n}) => await i.truncatePromise(n, r))
        }

        truncateSync(e, r) {
            return this.makeCallSync(e, () => this.baseFs.truncateSync(e, r), (i, {subPath: n}) => i.truncateSync(n, r))
        }

        watch(e, r, i) {
            return this.makeCallSync(e, () => this.baseFs.watch(e, r, i), (n, {subPath: s}) => n.watch(s, r, i))
        }

        watchFile(e, r, i) {
            return this.makeCallSync(e, () => this.baseFs.watchFile(e, r, i), () => zE(this, e, r, i))
        }

        unwatchFile(e, r) {
            return this.makeCallSync(e, () => this.baseFs.unwatchFile(e, r), () => zh(this, e, r))
        }

        async makeCallPromise(e, r, i, {requireSubpath: n = !0} = {}) {
            if (typeof e != "string") return await r();
            let s = this.resolve(e), o = this.findZip(s);
            return o ? n && o.subPath === "/" ? await r() : await this.getZipPromise(o.archivePath, async a => await i(a, o)) : await r()
        }

        makeCallSync(e, r, i, {requireSubpath: n = !0} = {}) {
            if (typeof e != "string") return r();
            let s = this.resolve(e), o = this.findZip(s);
            return !o || n && o.subPath === "/" ? r() : this.getZipSync(o.archivePath, a => i(a, o))
        }

        findZip(e) {
            if (this.filter && !this.filter.test(e)) return null;
            let r = "";
            for (; ;) {
                let i = e.substring(r.length), n;
                if (!this.fileExtensions) n = wM(i, ".zip"); else for (let s of this.fileExtensions) if (n = wM(i, s), n) break;
                if (!n) return null;
                if (r = this.pathUtils.join(r, n), this.isZip.has(r) === !1) {
                    if (this.notZip.has(r)) continue;
                    try {
                        if (!this.baseFs.lstatSync(r).isFile()) {
                            this.notZip.add(r);
                            continue
                        }
                    } catch {
                        return null
                    }
                    this.isZip.add(r)
                }
                return {archivePath: r, subPath: this.pathUtils.join(Ke.root, e.substring(r.length))}
            }
        }

        limitOpenFiles(e) {
            if (this.zipInstances === null) return;
            let r = Date.now(), i = r + this.maxAge, n = e === null ? 0 : this.zipInstances.size - e;
            for (let [s, {
                zipFs: o,
                expiresAt: a,
                refCount: l
            }] of this.zipInstances.entries()) if (!(l !== 0 || o.hasOpenFileHandles())) {
                if (r >= a) {
                    o.saveAndClose(), this.zipInstances.delete(s), n -= 1;
                    continue
                } else if (e === null || n <= 0) {
                    i = a;
                    break
                }
                o.saveAndClose(), this.zipInstances.delete(s), n -= 1
            }
            this.limitOpenFilesTimeout === null && (e === null && this.zipInstances.size > 0 || e !== null) && (this.limitOpenFilesTimeout = setTimeout(() => {
                this.limitOpenFilesTimeout = null, this.limitOpenFiles(null)
            }, i - r).unref())
        }

        async getZipPromise(e, r) {
            let i = async () => ({
                baseFs: this.baseFs,
                libzip: this.libzip,
                readOnly: this.readOnlyArchives,
                stats: await this.baseFs.statPromise(e)
            });
            if (this.zipInstances) {
                let n = this.zipInstances.get(e);
                if (!n) {
                    let s = await i();
                    n = this.zipInstances.get(e), n || (n = {zipFs: new Ai(e, s), expiresAt: 0, refCount: 0})
                }
                this.zipInstances.delete(e), this.limitOpenFiles(this.maxOpenFiles - 1), this.zipInstances.set(e, n), n.expiresAt = Date.now() + this.maxAge, n.refCount += 1;
                try {
                    return await r(n.zipFs)
                } finally {
                    n.refCount -= 1
                }
            } else {
                let n = new Ai(e, await i());
                try {
                    return await r(n)
                } finally {
                    n.saveAndClose()
                }
            }
        }

        getZipSync(e, r) {
            let i = () => ({
                baseFs: this.baseFs,
                libzip: this.libzip,
                readOnly: this.readOnlyArchives,
                stats: this.baseFs.statSync(e)
            });
            if (this.zipInstances) {
                let n = this.zipInstances.get(e);
                return n || (n = {
                    zipFs: new Ai(e, i()),
                    expiresAt: 0,
                    refCount: 0
                }), this.zipInstances.delete(e), this.limitOpenFiles(this.maxOpenFiles - 1), this.zipInstances.set(e, n), n.expiresAt = Date.now() + this.maxAge, r(n.zipFs)
            } else {
                let n = new Ai(e, i());
                try {
                    return r(n)
                } finally {
                    n.saveAndClose()
                }
            }
        }
    };
    var Wu = ge(require("util"));
    var VE = ge(require("url"));
    var vQ = class extends bi {
        constructor(e) {
            super(H);
            this.baseFs = e
        }

        mapFromBase(e) {
            return e
        }

        mapToBase(e) {
            return e instanceof VE.URL ? (0, VE.fileURLToPath)(e) : e
        }
    };
    var xfe = new Set(["accessSync", "appendFileSync", "createReadStream", "createWriteStream", "chmodSync", "chownSync", "closeSync", "copyFileSync", "linkSync", "lstatSync", "fstatSync", "lutimesSync", "mkdirSync", "openSync", "opendirSync", "readlinkSync", "readFileSync", "readdirSync", "readlinkSync", "realpathSync", "renameSync", "rmdirSync", "statSync", "symlinkSync", "truncateSync", "unlinkSync", "unwatchFile", "utimesSync", "watch", "watchFile", "writeFileSync", "writeSync"]),
        BM = new Set(["accessPromise", "appendFilePromise", "chmodPromise", "chownPromise", "closePromise", "copyFilePromise", "linkPromise", "fstatPromise", "lstatPromise", "lutimesPromise", "mkdirPromise", "openPromise", "opendirPromise", "readdirPromise", "realpathPromise", "readFilePromise", "readdirPromise", "readlinkPromise", "renamePromise", "rmdirPromise", "statPromise", "symlinkPromise", "truncatePromise", "unlinkPromise", "utimesPromise", "writeFilePromise", "writeSync"]),
        Pfe = new Set(["appendFilePromise", "chmodPromise", "chownPromise", "closePromise", "readPromise", "readFilePromise", "statPromise", "truncatePromise", "utimesPromise", "writePromise", "writeFilePromise"]);

    function SQ(t, e) {
        e = new vQ(e);
        let r = (i, n, s) => {
            let o = i[n];
            i[n] = s, typeof (o == null ? void 0 : o[Wu.promisify.custom]) != "undefined" && (s[Wu.promisify.custom] = o[Wu.promisify.custom])
        };
        {
            r(t, "exists", (i, ...n) => {
                let o = typeof n[n.length - 1] == "function" ? n.pop() : () => {
                };
                process.nextTick(() => {
                    e.existsPromise(i).then(a => {
                        o(a)
                    }, () => {
                        o(!1)
                    })
                })
            }), r(t, "read", (...i) => {
                let [n, s, o, a, l, c] = i;
                if (i.length <= 3) {
                    let u = {};
                    i.length < 3 ? c = i[1] : (u = i[1], c = i[2]), {
                        buffer: s = Buffer.alloc(16384),
                        offset: o = 0,
                        length: a = s.byteLength,
                        position: l
                    } = u
                }
                if (o == null && (o = 0), a |= 0, a === 0) {
                    process.nextTick(() => {
                        c(null, 0, s)
                    });
                    return
                }
                l == null && (l = -1), process.nextTick(() => {
                    e.readPromise(n, s, o, a, l).then(u => {
                        c(null, u, s)
                    }, u => {
                        c(u, 0, s)
                    })
                })
            });
            for (let i of BM) {
                let n = i.replace(/Promise$/, "");
                if (typeof t[n] == "undefined") continue;
                let s = e[i];
                if (typeof s == "undefined") continue;
                r(t, n, (...a) => {
                    let c = typeof a[a.length - 1] == "function" ? a.pop() : () => {
                    };
                    process.nextTick(() => {
                        s.apply(e, a).then(u => {
                            c(null, u)
                        }, u => {
                            c(u)
                        })
                    })
                })
            }
            t.realpath.native = t.realpath
        }
        {
            r(t, "existsSync", i => {
                try {
                    return e.existsSync(i)
                } catch (n) {
                    return !1
                }
            }), r(t, "readSync", (...i) => {
                let [n, s, o, a, l] = i;
                return i.length <= 3 && ({
                    offset: o = 0,
                    length: a = s.byteLength,
                    position: l
                } = i[2] || {}), o == null && (o = 0), a |= 0, a === 0 ? 0 : (l == null && (l = -1), e.readSync(n, s, o, a, l))
            });
            for (let i of xfe) {
                let n = i;
                if (typeof t[n] == "undefined") continue;
                let s = e[i];
                typeof s != "undefined" && r(t, n, s.bind(e))
            }
            t.realpathSync.native = t.realpathSync
        }
        {
            let i = process.emitWarning;
            process.emitWarning = () => {
            };
            let n;
            try {
                n = t.promises
            } finally {
                process.emitWarning = i
            }
            if (typeof n != "undefined") {
                for (let o of BM) {
                    let a = o.replace(/Promise$/, "");
                    if (typeof n[a] == "undefined") continue;
                    let l = e[o];
                    typeof l != "undefined" && o !== "open" && r(n, a, l.bind(e))
                }

                class s {
                    constructor(a) {
                        this.fd = a
                    }
                }

                for (let o of Pfe) {
                    let a = o.replace(/Promise$/, ""), l = e[o];
                    typeof l != "undefined" && r(s.prototype, a, function (...c) {
                        return l.call(e, this.fd, ...c)
                    })
                }
                r(n, "open", async (...o) => {
                    let a = await e.openPromise(...o);
                    return new s(a)
                })
            }
        }
        t.read[Wu.promisify.custom] = async (i, n, ...s) => ({
            bytesRead: await e.readPromise(i, n, ...s),
            buffer: n
        }), t.write[Wu.promisify.custom] = async (i, n, ...s) => ({
            bytesWritten: await e.writePromise(i, n, ...s),
            buffer: n
        })
    }

    function XE(t, e) {
        let r = Object.create(t);
        return SQ(r, e), r
    }

    var bM = ge(require("os"));

    function QM(t) {
        let e = Math.ceil(Math.random() * 4294967296).toString(16).padStart(8, "0");
        return `${t}${e}`
    }

    var io = new Set, kQ = null;

    function vM() {
        if (kQ) return kQ;
        let t = H.toPortablePath(bM.default.tmpdir()), e = K.realpathSync(t);
        return process.once("exit", () => {
            K.rmtempSync()
        }), kQ = {tmpdir: t, realTmpdir: e}
    }

    var K = Object.assign(new ar, {
        detachTemp(t) {
            io.delete(t)
        }, mktempSync(t) {
            let {tmpdir: e, realTmpdir: r} = vM();
            for (; ;) {
                let i = QM("xfs-");
                try {
                    this.mkdirSync(x.join(e, i))
                } catch (s) {
                    if (s.code === "EEXIST") continue;
                    throw s
                }
                let n = x.join(r, i);
                if (io.add(n), typeof t == "undefined") return n;
                try {
                    return t(n)
                } finally {
                    if (io.has(n)) {
                        io.delete(n);
                        try {
                            this.removeSync(n)
                        } catch {
                        }
                    }
                }
            }
        }, async mktempPromise(t) {
            let {tmpdir: e, realTmpdir: r} = vM();
            for (; ;) {
                let i = QM("xfs-");
                try {
                    await this.mkdirPromise(x.join(e, i))
                } catch (s) {
                    if (s.code === "EEXIST") continue;
                    throw s
                }
                let n = x.join(r, i);
                if (io.add(n), typeof t == "undefined") return n;
                try {
                    return await t(n)
                } finally {
                    if (io.has(n)) {
                        io.delete(n);
                        try {
                            await this.removePromise(n)
                        } catch {
                        }
                    }
                }
            }
        }, async rmtempPromise() {
            await Promise.all(Array.from(io.values()).map(async t => {
                try {
                    await K.removePromise(t, {maxRetries: 0}), io.delete(t)
                } catch {
                }
            }))
        }, rmtempSync() {
            for (let t of io) try {
                K.removeSync(t), io.delete(t)
            } catch {
            }
        }
    });
    var Px = ge(MQ());
    var ap = {};
    ft(ap, {
        parseResolution: () => iI,
        parseShell: () => $E,
        parseSyml: () => Qi,
        stringifyArgument: () => GQ,
        stringifyArgumentSegment: () => jQ,
        stringifyArithmeticExpression: () => rI,
        stringifyCommand: () => HQ,
        stringifyCommandChain: () => Xu,
        stringifyCommandChainThen: () => UQ,
        stringifyCommandLine: () => eI,
        stringifyCommandLineThen: () => KQ,
        stringifyEnvSegment: () => tI,
        stringifyRedirectArgument: () => ep,
        stringifyResolution: () => nI,
        stringifyShell: () => Vu,
        stringifyShellLine: () => Vu,
        stringifySyml: () => La,
        stringifyValueArgument: () => oc
    });
    var dK = ge(pK());

    function $E(t, e = {isGlobPattern: () => !1}) {
        try {
            return (0, dK.parse)(t, e)
        } catch (r) {
            throw r.location && (r.message = r.message.replace(/(\.)?$/, ` (line ${r.location.start.line}, column ${r.location.start.column})$1`)), r
        }
    }

    function Vu(t, {endSemicolon: e = !1} = {}) {
        return t.map(({
                          command: r,
                          type: i
                      }, n) => `${eI(r)}${i === ";" ? n !== t.length - 1 || e ? ";" : "" : " &"}`).join(" ")
    }

    function eI(t) {
        return `${Xu(t.chain)}${t.then ? ` ${KQ(t.then)}` : ""}`
    }

    function KQ(t) {
        return `${t.type} ${eI(t.line)}`
    }

    function Xu(t) {
        return `${HQ(t)}${t.then ? ` ${UQ(t.then)}` : ""}`
    }

    function UQ(t) {
        return `${t.type} ${Xu(t.chain)}`
    }

    function HQ(t) {
        switch (t.type) {
            case"command":
                return `${t.envs.length > 0 ? `${t.envs.map(e => tI(e)).join(" ")} ` : ""}${t.args.map(e => GQ(e)).join(" ")}`;
            case"subshell":
                return `(${Vu(t.subshell)})${t.args.length > 0 ? ` ${t.args.map(e => ep(e)).join(" ")}` : ""}`;
            case"group":
                return `{ ${Vu(t.group, {endSemicolon: !0})} }${t.args.length > 0 ? ` ${t.args.map(e => ep(e)).join(" ")}` : ""}`;
            case"envs":
                return t.envs.map(e => tI(e)).join(" ");
            default:
                throw new Error(`Unsupported command type:  "${t.type}"`)
        }
    }

    function tI(t) {
        return `${t.name}=${t.args[0] ? oc(t.args[0]) : ""}`
    }

    function GQ(t) {
        switch (t.type) {
            case"redirection":
                return ep(t);
            case"argument":
                return oc(t);
            default:
                throw new Error(`Unsupported argument type: "${t.type}"`)
        }
    }

    function ep(t) {
        return `${t.subtype} ${t.args.map(e => oc(e)).join(" ")}`
    }

    function oc(t) {
        return t.segments.map(e => jQ(e)).join("")
    }

    function jQ(t) {
        let e = (i, n) => n ? `"${i}"` : i,
            r = i => i === "" ? '""' : i.match(/[(){}<>$|&; \t"']/) ? `$'${i.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/\f/g, "\\f").replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t").replace(/\v/g, "\\v").replace(/\0/g, "\\0")}'` : i;
        switch (t.type) {
            case"text":
                return r(t.text);
            case"glob":
                return t.pattern;
            case"shell":
                return e(`\${${Vu(t.shell)}}`, t.quoted);
            case"variable":
                return e(typeof t.defaultValue == "undefined" ? typeof t.alternativeValue == "undefined" ? `\${${t.name}}` : t.alternativeValue.length === 0 ? `\${${t.name}:+}` : `\${${t.name}:+${t.alternativeValue.map(i => oc(i)).join(" ")}}` : t.defaultValue.length === 0 ? `\${${t.name}:-}` : `\${${t.name}:-${t.defaultValue.map(i => oc(i)).join(" ")}}`, t.quoted);
            case"arithmetic":
                return `$(( ${rI(t.arithmetic)} ))`;
            default:
                throw new Error(`Unsupported argument segment type: "${t.type}"`)
        }
    }

    function rI(t) {
        let e = n => {
            switch (n) {
                case"addition":
                    return "+";
                case"subtraction":
                    return "-";
                case"multiplication":
                    return "*";
                case"division":
                    return "/";
                default:
                    throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)
            }
        }, r = (n, s) => s ? `( ${n} )` : n, i = n => r(rI(n), !["number", "variable"].includes(n.type));
        switch (t.type) {
            case"number":
                return String(t.value);
            case"variable":
                return t.name;
            default:
                return `${i(t.left)} ${e(t.type)} ${i(t.right)}`
        }
    }

    var EK = ge(mK());

    function iI(t) {
        let e = t.match(/^\*{1,2}\/(.*)/);
        if (e) throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);
        try {
            return (0, EK.parse)(t)
        } catch (r) {
            throw r.location && (r.message = r.message.replace(/(\.)?$/, ` (line ${r.location.start.line}, column ${r.location.start.column})$1`)), r
        }
    }

    function nI(t) {
        let e = "";
        return t.from && (e += t.from.fullName, t.from.description && (e += `@${t.from.description}`), e += "/"), e += t.descriptor.fullName, t.descriptor.description && (e += `@${t.descriptor.description}`), e
    }

    var pI = ge(lU()), gU = ge(uU()), Kde = /^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,
        fU = ["__metadata", "version", "resolution", "dependencies", "peerDependencies", "dependenciesMeta", "peerDependenciesMeta", "binaries"],
        rv = class {
            constructor(e) {
                this.data = e
            }
        };

    function hU(t) {
        return t.match(Kde) ? t : JSON.stringify(t)
    }

    function pU(t) {
        return typeof t == "undefined" ? !0 : typeof t == "object" && t !== null ? Object.keys(t).every(e => pU(t[e])) : !1
    }

    function iv(t, e, r) {
        if (t === null) return `null
`;
        if (typeof t == "number" || typeof t == "boolean") return `${t.toString()}
`;
        if (typeof t == "string") return `${hU(t)}
`;
        if (Array.isArray(t)) {
            if (t.length === 0) return `[]
`;
            let i = "  ".repeat(e);
            return `
${t.map(s => `${i}- ${iv(s, e + 1, !1)}`).join("")}`
        }
        if (typeof t == "object" && t) {
            let i, n;
            t instanceof rv ? (i = t.data, n = !1) : (i = t, n = !0);
            let s = "  ".repeat(e), o = Object.keys(i);
            n && o.sort((l, c) => {
                let u = fU.indexOf(l), g = fU.indexOf(c);
                return u === -1 && g === -1 ? l < c ? -1 : l > c ? 1 : 0 : u !== -1 && g === -1 ? -1 : u === -1 && g !== -1 ? 1 : u - g
            });
            let a = o.filter(l => !pU(i[l])).map((l, c) => {
                let u = i[l], g = hU(l), f = iv(u, e + 1, !0), h = c > 0 || r ? s : "", p = g.length > 1024 ? `? ${g}
${h}:` : `${g}:`, m = f.startsWith(`
`) ? f : ` ${f}`;
                return `${h}${p}${m}`
            }).join(e === 0 ? `
` : "") || `
`;
            return r ? `
${a}` : `${a}`
        }
        throw new Error(`Unsupported value type (${t})`)
    }

    function La(t) {
        try {
            let e = iv(t, 0, !1);
            return e !== `
` ? e : ""
        } catch (e) {
            throw e.location && (e.message = e.message.replace(/(\.)?$/, ` (line ${e.location.start.line}, column ${e.location.start.column})$1`)), e
        }
    }

    La.PreserveOrdering = rv;

    function Ude(t) {
        return t.endsWith(`
`) || (t += `
`), (0, gU.parse)(t)
    }

    var Hde = /^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;

    function Gde(t) {
        if (Hde.test(t)) return Ude(t);
        let e = (0, pI.safeLoad)(t, {schema: pI.FAILSAFE_SCHEMA, json: !0});
        if (e == null) return {};
        if (typeof e != "object") throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);
        if (Array.isArray(e)) throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");
        return e
    }

    function Qi(t) {
        return Gde(t)
    }

    var i4 = ge(CU()), ww = ge(pc());
    var mp = {};
    ft(mp, {
        Builtins: () => mv,
        Cli: () => ys,
        Command: () => Re,
        Option: () => W,
        UsageError: () => Pe,
        formatMarkdownish: () => Ui
    });
    var dc = 0, Ap = 1, tn = 2, sv = "", vi = "\0", og = -1, ov = /^(-h|--help)(?:=([0-9]+))?$/,
        dI = /^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/, wU = /^-[a-zA-Z]{2,}$/, av = /^([^=]+)=([\s\S]*)$/,
        Av = process.env.DEBUG_CLI === "1";
    var Pe = class extends Error {
        constructor(e) {
            super(e);
            this.clipanion = {type: "usage"}, this.name = "UsageError"
        }
    }, lp = class extends Error {
        constructor(e, r) {
            super();
            if (this.input = e, this.candidates = r, this.clipanion = {type: "none"}, this.name = "UnknownSyntaxError", this.candidates.length === 0) this.message = "Command not found, but we're not sure what's the alternative."; else if (this.candidates.every(i => i.reason !== null && i.reason === r[0].reason)) {
                let [{reason: i}] = this.candidates;
                this.message = `${i}

${this.candidates.map(({usage: n}) => `$ ${n}`).join(`
`)}`
            } else if (this.candidates.length === 1) {
                let [{usage: i}] = this.candidates;
                this.message = `Command not found; did you mean:

$ ${i}
${lv(e)}`
            } else this.message = `Command not found; did you mean one of:

${this.candidates.map(({usage: i}, n) => `${`${n}.`.padStart(4)} ${i}`).join(`
`)}

${lv(e)}`
        }
    }, cv = class extends Error {
        constructor(e, r) {
            super();
            this.input = e, this.usages = r, this.clipanion = {type: "none"}, this.name = "AmbiguousSyntaxError", this.message = `Cannot find which to pick amongst the following alternatives:

${this.usages.map((i, n) => `${`${n}.`.padStart(4)} ${i}`).join(`
`)}

${lv(e)}`
        }
    }, lv = t => `While running ${t.filter(e => e !== vi).map(e => {
        let r = JSON.stringify(e);
        return e.match(/\s/) || e.length === 0 || r !== `"${e}"` ? r : e
    }).join(" ")}`;
    var cp = Symbol("clipanion/isOption");

    function rn(t) {
        return ie(N({}, t), {[cp]: !0})
    }

    function No(t, e) {
        return typeof t == "undefined" ? [t, e] : typeof t == "object" && t !== null && !Array.isArray(t) ? [void 0, t] : [t, e]
    }

    function CI(t, e = !1) {
        let r = t.replace(/^\.: /, "");
        return e && (r = r[0].toLowerCase() + r.slice(1)), r
    }

    function up(t, e) {
        return e.length === 1 ? new Pe(`${t}: ${CI(e[0], !0)}`) : new Pe(`${t}:
${e.map(r => `
- ${CI(r)}`).join("")}`)
    }

    function gp(t, e, r) {
        if (typeof r == "undefined") return e;
        let i = [], n = [], s = a => {
            let l = e;
            return e = a, s.bind(null, l)
        };
        if (!r(e, {errors: i, coercions: n, coercion: s})) throw up(`Invalid value for ${t}`, i);
        for (let [, a] of n) a();
        return e
    }

    var Re = class {
        constructor() {
            this.help = !1
        }

        static Usage(e) {
            return e
        }

        async catch(e) {
            throw e
        }

        async validateAndExecute() {
            let r = this.constructor.schema;
            if (Array.isArray(r)) {
                let {isDict: n, isUnknown: s, applyCascade: o} = await Promise.resolve().then(() => (Is(), ag)),
                    a = o(n(s()), r), l = [], c = [];
                if (!a(this, {errors: l, coercions: c})) throw up("Invalid option schema", l);
                for (let [, g] of c) g()
            } else if (r != null) throw new Error("Invalid command schema");
            let i = await this.execute();
            return typeof i != "undefined" ? i : 0
        }
    };
    Re.isOption = cp;
    Re.Default = [];
    var RU = 80, fv = Array(RU).fill("\u2501");
    for (let t = 0; t <= 24; ++t) fv[fv.length - t] = `[38;5;${232 + t}m\u2501`;
    var hv = {
        header: t => `[1m\u2501\u2501\u2501 ${t}${t.length < RU - 5 ? ` ${fv.slice(t.length + 5).join("")}` : ":"}[0m`,
        bold: t => `[1m${t}[22m`,
        error: t => `[31m[1m${t}[22m[39m`,
        code: t => `[36m${t}[39m`
    }, FU = {header: t => t, bold: t => t, error: t => t, code: t => t};

    function bCe(t) {
        let e = t.split(`
`), r = e.filter(n => n.match(/\S/)),
            i = r.length > 0 ? r.reduce((n, s) => Math.min(n, s.length - s.trimStart().length), Number.MAX_VALUE) : 0;
        return e.map(n => n.slice(i).trimRight()).join(`
`)
    }

    function Ui(t, {format: e, paragraphs: r}) {
        return t = t.replace(/\r\n?/g, `
`), t = bCe(t), t = t.replace(/^\n+|\n+$/g, ""), t = t.replace(/^(\s*)-([^\n]*?)\n+/gm, `$1-$2

`), t = t.replace(/\n(\n)?\n*/g, "$1"), r && (t = t.split(/\n/).map(i => {
            let n = i.match(/^\s*[*-][\t ]+(.*)/);
            if (!n) return i.match(/(.{1,80})(?: |$)/g).join(`
`);
            let s = i.length - i.trimStart().length;
            return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`, "g")).map((o, a) => " ".repeat(s) + (a === 0 ? "- " : "  ") + o).join(`
`)
        }).join(`

`)), t = t.replace(/(`+)((?:.|[\n])*?)\1/g, (i, n, s) => e.code(n + s + n)), t = t.replace(/(\*\*)((?:.|[\n])*?)\1/g, (i, n, s) => e.bold(n + s + n)), t ? `${t}
` : ""
    }

    var Cv = ge(require("tty"));

    function wn(t) {
        Av && console.log(t)
    }

    var NU = {
        candidateUsage: null,
        requiredOptions: [],
        errorMessage: null,
        ignoreOptions: !1,
        path: [],
        positionals: [],
        options: [],
        remainder: null,
        selectedIndex: og
    };

    function LU() {
        return {nodes: [sn(), sn(), sn()]}
    }

    function vCe(t) {
        let e = LU(), r = [], i = e.nodes.length;
        for (let n of t) {
            r.push(i);
            for (let s = 0; s < n.nodes.length; ++s) TU(s) || e.nodes.push(QCe(n.nodes[s], i));
            i += n.nodes.length - 2
        }
        for (let n of r) Ag(e, dc, n);
        return e
    }

    function no(t, e) {
        return t.nodes.push(e), t.nodes.length - 1
    }

    function SCe(t) {
        let e = new Set, r = i => {
            if (e.has(i)) return;
            e.add(i);
            let n = t.nodes[i];
            for (let o of Object.values(n.statics)) for (let {to: a} of o) r(a);
            for (let [, {to: o}] of n.dynamics) r(o);
            for (let {to: o} of n.shortcuts) r(o);
            let s = new Set(n.shortcuts.map(({to: o}) => o));
            for (; n.shortcuts.length > 0;) {
                let {to: o} = n.shortcuts.shift(), a = t.nodes[o];
                for (let [l, c] of Object.entries(a.statics)) {
                    let u = Object.prototype.hasOwnProperty.call(n.statics, l) ? n.statics[l] : n.statics[l] = [];
                    for (let g of c) u.some(({to: f}) => g.to === f) || u.push(g)
                }
                for (let [l, c] of a.dynamics) n.dynamics.some(([u, {to: g}]) => l === u && c.to === g) || n.dynamics.push([l, c]);
                for (let l of a.shortcuts) s.has(l.to) || (n.shortcuts.push(l), s.add(l.to))
            }
        };
        r(dc)
    }

    function kCe(t, {prefix: e = ""} = {}) {
        if (Av) {
            wn(`${e}Nodes are:`);
            for (let r = 0; r < t.nodes.length; ++r) wn(`${e}  ${r}: ${JSON.stringify(t.nodes[r])}`)
        }
    }

    function OU(t, e, r = !1) {
        wn(`Running a vm on ${JSON.stringify(e)}`);
        let i = [{
            node: dc,
            state: {
                candidateUsage: null,
                requiredOptions: [],
                errorMessage: null,
                ignoreOptions: !1,
                options: [],
                path: [],
                positionals: [],
                remainder: null,
                selectedIndex: null
            }
        }];
        kCe(t, {prefix: "  "});
        let n = [sv, ...e];
        for (let s = 0; s < n.length; ++s) {
            let o = n[s];
            wn(`  Processing ${JSON.stringify(o)}`);
            let a = [];
            for (let {node: l, state: c} of i) {
                wn(`    Current node is ${l}`);
                let u = t.nodes[l];
                if (l === tn) {
                    a.push({node: l, state: c});
                    continue
                }
                console.assert(u.shortcuts.length === 0, "Shortcuts should have been eliminated by now");
                let g = Object.prototype.hasOwnProperty.call(u.statics, o);
                if (!r || s < n.length - 1 || g) if (g) {
                    let f = u.statics[o];
                    for (let {to: h, reducer: p} of f) a.push({
                        node: h,
                        state: typeof p != "undefined" ? EI(pv, p, c, o) : c
                    }), wn(`      Static transition to ${h} found`)
                } else wn("      No static transition found"); else {
                    let f = !1;
                    for (let h of Object.keys(u.statics)) if (!!h.startsWith(o)) {
                        if (o === h) for (let {to: p, reducer: m} of u.statics[h]) a.push({
                            node: p,
                            state: typeof m != "undefined" ? EI(pv, m, c, o) : c
                        }), wn(`      Static transition to ${p} found`); else for (let {to: p} of u.statics[h]) a.push({
                            node: p,
                            state: ie(N({}, c), {remainder: h.slice(o.length)})
                        }), wn(`      Static transition to ${p} found (partial match)`);
                        f = !0
                    }
                    f || wn("      No partial static transition found")
                }
                if (o !== vi) for (let [f, {to: h, reducer: p}] of u.dynamics) EI(II, f, c, o) && (a.push({
                    node: h,
                    state: typeof p != "undefined" ? EI(pv, p, c, o) : c
                }), wn(`      Dynamic transition to ${h} found (via ${f})`))
            }
            if (a.length === 0 && o === vi && e.length === 1) return [{node: dc, state: NU}];
            if (a.length === 0) throw new lp(e, i.filter(({node: l}) => l !== tn).map(({state: l}) => ({
                usage: l.candidateUsage,
                reason: null
            })));
            if (a.every(({node: l}) => l === tn)) throw new lp(e, a.map(({state: l}) => ({
                usage: l.candidateUsage,
                reason: l.errorMessage
            })));
            i = xCe(a)
        }
        if (i.length > 0) {
            wn("  Results:");
            for (let s of i) wn(`    - ${s.node} -> ${JSON.stringify(s.state)}`)
        } else wn("  No results");
        return i
    }

    function PCe(t, e) {
        if (e.selectedIndex !== null) return !0;
        if (Object.prototype.hasOwnProperty.call(t.statics, vi)) {
            for (let {to: r} of t.statics[vi]) if (r === Ap) return !0
        }
        return !1
    }

    function RCe(t, e, r) {
        let i = r && e.length > 0 ? [""] : [], n = OU(t, e, r), s = [], o = new Set, a = (l, c, u = !0) => {
            let g = [c];
            for (; g.length > 0;) {
                let h = g;
                g = [];
                for (let p of h) {
                    let m = t.nodes[p], y = Object.keys(m.statics);
                    for (let b of Object.keys(m.statics)) {
                        let S = y[0];
                        for (let {to: k, reducer: T} of m.statics[S]) T === "pushPath" && (u || l.push(S), g.push(k))
                    }
                }
                u = !1
            }
            let f = JSON.stringify(l);
            o.has(f) || (s.push(l), o.add(f))
        };
        for (let {node: l, state: c} of n) {
            if (c.remainder !== null) {
                a([c.remainder], l);
                continue
            }
            let u = t.nodes[l], g = PCe(u, c);
            for (let [f, h] of Object.entries(u.statics)) (g && f !== vi || !f.startsWith("-") && h.some(({reducer: p}) => p === "pushPath")) && a([...i, f], l);
            if (!!g) for (let [f, {to: h}] of u.dynamics) {
                if (h === tn) continue;
                let p = DCe(f, c);
                if (p !== null) for (let m of p) a([...i, m], l)
            }
        }
        return [...s].sort()
    }

    function NCe(t, e) {
        let r = OU(t, [...e, vi]);
        return FCe(e, r.map(({state: i}) => i))
    }

    function xCe(t) {
        let e = 0;
        for (let {state: r} of t) r.path.length > e && (e = r.path.length);
        return t.filter(({state: r}) => r.path.length === e)
    }

    function FCe(t, e) {
        let r = e.filter(g => g.selectedIndex !== null);
        if (r.length === 0) throw new Error;
        let i = r.filter(g => g.requiredOptions.every(f => f.some(h => g.options.find(p => p.name === h))));
        if (i.length === 0) throw new lp(t, r.map(g => ({usage: g.candidateUsage, reason: null})));
        let n = 0;
        for (let g of i) g.path.length > n && (n = g.path.length);
        let s = i.filter(g => g.path.length === n),
            o = g => g.positionals.filter(({extra: f}) => !f).length + g.options.length,
            a = s.map(g => ({state: g, positionalCount: o(g)})), l = 0;
        for (let {positionalCount: g} of a) g > l && (l = g);
        let c = a.filter(({positionalCount: g}) => g === l).map(({state: g}) => g), u = LCe(c);
        if (u.length > 1) throw new cv(t, u.map(g => g.candidateUsage));
        return u[0]
    }

    function LCe(t) {
        let e = [], r = [];
        for (let i of t) i.selectedIndex === og ? r.push(i) : e.push(i);
        return r.length > 0 && e.push(ie(N({}, NU), {
            path: MU(...r.map(i => i.path)),
            options: r.reduce((i, n) => i.concat(n.options), [])
        })), e
    }

    function MU(t, e, ...r) {
        return e === void 0 ? Array.from(t) : MU(t.filter((i, n) => i === e[n]), ...r)
    }

    function sn() {
        return {dynamics: [], shortcuts: [], statics: {}}
    }

    function TU(t) {
        return t === Ap || t === tn
    }

    function dv(t, e = 0) {
        return {to: TU(t.to) ? t.to : t.to > 2 ? t.to + e - 2 : t.to + e, reducer: t.reducer}
    }

    function QCe(t, e = 0) {
        let r = sn();
        for (let [i, n] of t.dynamics) r.dynamics.push([i, dv(n, e)]);
        for (let i of t.shortcuts) r.shortcuts.push(dv(i, e));
        for (let [i, n] of Object.entries(t.statics)) r.statics[i] = n.map(s => dv(s, e));
        return r
    }

    function Si(t, e, r, i, n) {
        t.nodes[e].dynamics.push([r, {to: i, reducer: n}])
    }

    function Ag(t, e, r, i) {
        t.nodes[e].shortcuts.push({to: r, reducer: i})
    }

    function Ta(t, e, r, i, n) {
        (Object.prototype.hasOwnProperty.call(t.nodes[e].statics, r) ? t.nodes[e].statics[r] : t.nodes[e].statics[r] = []).push({
            to: i,
            reducer: n
        })
    }

    function EI(t, e, r, i) {
        if (Array.isArray(e)) {
            let [n, ...s] = e;
            return t[n](r, i, ...s)
        } else return t[e](r, i)
    }

    function DCe(t, e) {
        let r = Array.isArray(t) ? II[t[0]] : II[t];
        if (typeof r.suggest == "undefined") return null;
        let i = Array.isArray(t) ? t.slice(1) : [];
        return r.suggest(e, ...i)
    }

    var II = {
        always: () => !0,
        isOptionLike: (t, e) => !t.ignoreOptions && e !== "-" && e.startsWith("-"),
        isNotOptionLike: (t, e) => t.ignoreOptions || e === "-" || !e.startsWith("-"),
        isOption: (t, e, r, i) => !t.ignoreOptions && e === r,
        isBatchOption: (t, e, r) => !t.ignoreOptions && wU.test(e) && [...e.slice(1)].every(i => r.includes(`-${i}`)),
        isBoundOption: (t, e, r, i) => {
            let n = e.match(av);
            return !t.ignoreOptions && !!n && dI.test(n[1]) && r.includes(n[1]) && i.filter(s => s.names.includes(n[1])).every(s => s.allowBinding)
        },
        isNegatedOption: (t, e, r) => !t.ignoreOptions && e === `--no-${r.slice(2)}`,
        isHelp: (t, e) => !t.ignoreOptions && ov.test(e),
        isUnsupportedOption: (t, e, r) => !t.ignoreOptions && e.startsWith("-") && dI.test(e) && !r.includes(e),
        isInvalidOption: (t, e) => !t.ignoreOptions && e.startsWith("-") && !dI.test(e)
    };
    II.isOption.suggest = (t, e, r = !0) => r ? null : [e];
    var pv = {
        setCandidateState: (t, e, r) => N(N({}, t), r),
        setSelectedIndex: (t, e, r) => ie(N({}, t), {selectedIndex: r}),
        pushBatch: (t, e) => ie(N({}, t), {
            options: t.options.concat([...e.slice(1)].map(r => ({
                name: `-${r}`,
                value: !0
            })))
        }),
        pushBound: (t, e) => {
            let [, r, i] = e.match(av);
            return ie(N({}, t), {options: t.options.concat({name: r, value: i})})
        },
        pushPath: (t, e) => ie(N({}, t), {path: t.path.concat(e)}),
        pushPositional: (t, e) => ie(N({}, t), {positionals: t.positionals.concat({value: e, extra: !1})}),
        pushExtra: (t, e) => ie(N({}, t), {positionals: t.positionals.concat({value: e, extra: !0})}),
        pushExtraNoLimits: (t, e) => ie(N({}, t), {positionals: t.positionals.concat({value: e, extra: Xn})}),
        pushTrue: (t, e, r = e) => ie(N({}, t), {options: t.options.concat({name: e, value: !0})}),
        pushFalse: (t, e, r = e) => ie(N({}, t), {options: t.options.concat({name: r, value: !1})}),
        pushUndefined: (t, e) => ie(N({}, t), {options: t.options.concat({name: e, value: void 0})}),
        pushStringValue: (t, e) => {
            var r;
            let i = ie(N({}, t), {options: [...t.options]}), n = t.options[t.options.length - 1];
            return n.value = ((r = n.value) !== null && r !== void 0 ? r : []).concat([e]), i
        },
        setStringValue: (t, e) => {
            let r = ie(N({}, t), {options: [...t.options]}), i = t.options[t.options.length - 1];
            return i.value = e, r
        },
        inhibateOptions: t => ie(N({}, t), {ignoreOptions: !0}),
        useHelp: (t, e, r) => {
            let [, , i] = e.match(ov);
            return typeof i != "undefined" ? ie(N({}, t), {
                options: [{name: "-c", value: String(r)}, {
                    name: "-i",
                    value: i
                }]
            }) : ie(N({}, t), {options: [{name: "-c", value: String(r)}]})
        },
        setError: (t, e, r) => e === vi ? ie(N({}, t), {errorMessage: `${r}.`}) : ie(N({}, t), {errorMessage: `${r} ("${e}").`}),
        setOptionArityError: (t, e) => {
            let r = t.options[t.options.length - 1];
            return ie(N({}, t), {errorMessage: `Not enough arguments to option ${r.name}.`})
        }
    }, Xn = Symbol(), KU = class {
        constructor(e, r) {
            this.allOptionNames = [], this.arity = {
                leading: [],
                trailing: [],
                extra: [],
                proxy: !1
            }, this.options = [], this.paths = [], this.cliIndex = e, this.cliOpts = r
        }

        addPath(e) {
            this.paths.push(e)
        }

        setArity({
                     leading: e = this.arity.leading,
                     trailing: r = this.arity.trailing,
                     extra: i = this.arity.extra,
                     proxy: n = this.arity.proxy
                 }) {
            Object.assign(this.arity, {leading: e, trailing: r, extra: i, proxy: n})
        }

        addPositional({name: e = "arg", required: r = !0} = {}) {
            if (!r && this.arity.extra === Xn) throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");
            if (!r && this.arity.trailing.length > 0) throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");
            !r && this.arity.extra !== Xn ? this.arity.extra.push(e) : this.arity.extra !== Xn && this.arity.extra.length === 0 ? this.arity.leading.push(e) : this.arity.trailing.push(e)
        }

        addRest({name: e = "arg", required: r = 0} = {}) {
            if (this.arity.extra === Xn) throw new Error("Infinite lists cannot be declared multiple times in the same command");
            if (this.arity.trailing.length > 0) throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");
            for (let i = 0; i < r; ++i) this.addPositional({name: e});
            this.arity.extra = Xn
        }

        addProxy({required: e = 0} = {}) {
            this.addRest({required: e}), this.arity.proxy = !0
        }

        addOption({names: e, description: r, arity: i = 0, hidden: n = !1, required: s = !1, allowBinding: o = !0}) {
            if (!o && i > 1) throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");
            if (!Number.isInteger(i)) throw new Error(`The arity must be an integer, got ${i}`);
            if (i < 0) throw new Error(`The arity must be positive, got ${i}`);
            this.allOptionNames.push(...e), this.options.push({
                names: e,
                description: r,
                arity: i,
                hidden: n,
                required: s,
                allowBinding: o
            })
        }

        setContext(e) {
            this.context = e
        }

        usage({detailed: e = !0, inlineOptions: r = !0} = {}) {
            let i = [this.cliOpts.binaryName], n = [];
            if (this.paths.length > 0 && i.push(...this.paths[0]), e) {
                for (let {names: o, arity: a, hidden: l, description: c, required: u} of this.options) {
                    if (l) continue;
                    let g = [];
                    for (let h = 0; h < a; ++h) g.push(` #${h}`);
                    let f = `${o.join(",")}${g.join("")}`;
                    !r && c ? n.push({definition: f, description: c, required: u}) : i.push(u ? `<${f}>` : `[${f}]`)
                }
                i.push(...this.arity.leading.map(o => `<${o}>`)), this.arity.extra === Xn ? i.push("...") : i.push(...this.arity.extra.map(o => `[${o}]`)), i.push(...this.arity.trailing.map(o => `<${o}>`))
            }
            return {usage: i.join(" "), options: n}
        }

        compile() {
            if (typeof this.context == "undefined") throw new Error("Assertion failed: No context attached");
            let e = LU(), r = dc, i = this.usage().usage, n = this.options.filter(a => a.required).map(a => a.names);
            r = no(e, sn()), Ta(e, dc, sv, r, ["setCandidateState", {candidateUsage: i, requiredOptions: n}]);
            let s = this.arity.proxy ? "always" : "isNotOptionLike", o = this.paths.length > 0 ? this.paths : [[]];
            for (let a of o) {
                let l = r;
                if (a.length > 0) {
                    let f = no(e, sn());
                    Ag(e, l, f), this.registerOptions(e, f), l = f
                }
                for (let f = 0; f < a.length; ++f) {
                    let h = no(e, sn());
                    Ta(e, l, a[f], h, "pushPath"), l = h
                }
                if (this.arity.leading.length > 0 || !this.arity.proxy) {
                    let f = no(e, sn());
                    Si(e, l, "isHelp", f, ["useHelp", this.cliIndex]), Ta(e, f, vi, Ap, ["setSelectedIndex", og]), this.registerOptions(e, l)
                }
                this.arity.leading.length > 0 && Ta(e, l, vi, tn, ["setError", "Not enough positional arguments"]);
                let c = l;
                for (let f = 0; f < this.arity.leading.length; ++f) {
                    let h = no(e, sn());
                    this.arity.proxy || this.registerOptions(e, h), (this.arity.trailing.length > 0 || f + 1 !== this.arity.leading.length) && Ta(e, h, vi, tn, ["setError", "Not enough positional arguments"]), Si(e, c, "isNotOptionLike", h, "pushPositional"), c = h
                }
                let u = c;
                if (this.arity.extra === Xn || this.arity.extra.length > 0) {
                    let f = no(e, sn());
                    if (Ag(e, c, f), this.arity.extra === Xn) {
                        let h = no(e, sn());
                        this.arity.proxy || this.registerOptions(e, h), Si(e, c, s, h, "pushExtraNoLimits"), Si(e, h, s, h, "pushExtraNoLimits"), Ag(e, h, f)
                    } else for (let h = 0; h < this.arity.extra.length; ++h) {
                        let p = no(e, sn());
                        this.arity.proxy || this.registerOptions(e, p), Si(e, u, s, p, "pushExtra"), Ag(e, p, f), u = p
                    }
                    u = f
                }
                this.arity.trailing.length > 0 && Ta(e, u, vi, tn, ["setError", "Not enough positional arguments"]);
                let g = u;
                for (let f = 0; f < this.arity.trailing.length; ++f) {
                    let h = no(e, sn());
                    this.arity.proxy || this.registerOptions(e, h), f + 1 < this.arity.trailing.length && Ta(e, h, vi, tn, ["setError", "Not enough positional arguments"]), Si(e, g, "isNotOptionLike", h, "pushPositional"), g = h
                }
                Si(e, g, s, tn, ["setError", "Extraneous positional argument"]), Ta(e, g, vi, Ap, ["setSelectedIndex", this.cliIndex])
            }
            return {machine: e, context: this.context}
        }

        registerOptions(e, r) {
            Si(e, r, ["isOption", "--"], r, "inhibateOptions"), Si(e, r, ["isBatchOption", this.allOptionNames], r, "pushBatch"), Si(e, r, ["isBoundOption", this.allOptionNames, this.options], r, "pushBound"), Si(e, r, ["isUnsupportedOption", this.allOptionNames], tn, ["setError", "Unsupported option name"]), Si(e, r, ["isInvalidOption"], tn, ["setError", "Invalid option name"]);
            for (let i of this.options) {
                let n = i.names.reduce((s, o) => o.length > s.length ? o : s, "");
                if (i.arity === 0) for (let s of i.names) Si(e, r, ["isOption", s, i.hidden || s !== n], r, "pushTrue"), s.startsWith("--") && !s.startsWith("--no-") && Si(e, r, ["isNegatedOption", s], r, ["pushFalse", s]); else {
                    let s = no(e, sn());
                    for (let o of i.names) Si(e, r, ["isOption", o, i.hidden || o !== n], s, "pushUndefined");
                    for (let o = 0; o < i.arity; ++o) {
                        let a = no(e, sn());
                        Ta(e, s, vi, tn, "setOptionArityError"), Si(e, s, "isOptionLike", tn, "setOptionArityError");
                        let l = i.arity === 1 ? "setStringValue" : "pushStringValue";
                        Si(e, s, "isNotOptionLike", a, l), s = a
                    }
                    Ag(e, s, r)
                }
            }
        }
    }, dp = class {
        constructor({binaryName: e = "..."} = {}) {
            this.builders = [], this.opts = {binaryName: e}
        }

        static build(e, r = {}) {
            return new dp(r).commands(e).compile()
        }

        getBuilderByIndex(e) {
            if (!(e >= 0 && e < this.builders.length)) throw new Error(`Assertion failed: Out-of-bound command index (${e})`);
            return this.builders[e]
        }

        commands(e) {
            for (let r of e) r(this.command());
            return this
        }

        command() {
            let e = new KU(this.builders.length, this.opts);
            return this.builders.push(e), e
        }

        compile() {
            let e = [], r = [];
            for (let n of this.builders) {
                let {machine: s, context: o} = n.compile();
                e.push(s), r.push(o)
            }
            let i = vCe(e);
            return SCe(i), {machine: i, contexts: r, process: n => NCe(i, n), suggest: (n, s) => RCe(i, n, s)}
        }
    };
    var Cp = class extends Re {
        constructor(e) {
            super();
            this.contexts = e, this.commands = []
        }

        static from(e, r) {
            let i = new Cp(r);
            i.path = e.path;
            for (let n of e.options) switch (n.name) {
                case"-c":
                    i.commands.push(Number(n.value));
                    break;
                case"-i":
                    i.index = Number(n.value);
                    break
            }
            return i
        }

        async execute() {
            let e = this.commands;
            if (typeof this.index != "undefined" && this.index >= 0 && this.index < e.length && (e = [e[this.index]]), e.length === 0) this.context.stdout.write(this.cli.usage()); else if (e.length === 1) this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass, {detailed: !0})); else if (e.length > 1) {
                this.context.stdout.write(`Multiple commands match your selection:
`), this.context.stdout.write(`
`);
                let r = 0;
                for (let i of this.commands) this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass, {prefix: `${r++}. `.padStart(5)}));
                this.context.stdout.write(`
`), this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands.
`)
            }
        }
    };
    var UU = Symbol("clipanion/errorCommand");

    function TCe() {
        return process.env.FORCE_COLOR === "0" ? 1 : process.env.FORCE_COLOR === "1" || typeof process.stdout != "undefined" && process.stdout.isTTY ? 8 : 1
    }

    var ys = class {
        constructor({
                        binaryLabel: e,
                        binaryName: r = "...",
                        binaryVersion: i,
                        enableCapture: n = !1,
                        enableColors: s
                    } = {}) {
            this.registrations = new Map, this.builder = new dp({binaryName: r}), this.binaryLabel = e, this.binaryName = r, this.binaryVersion = i, this.enableCapture = n, this.enableColors = s
        }

        static from(e, r = {}) {
            let i = new ys(r);
            for (let n of e) i.register(n);
            return i
        }

        register(e) {
            var r;
            let i = new Map, n = new e;
            for (let l in n) {
                let c = n[l];
                typeof c == "object" && c !== null && c[Re.isOption] && i.set(l, c)
            }
            let s = this.builder.command(), o = s.cliIndex, a = (r = e.paths) !== null && r !== void 0 ? r : n.paths;
            if (typeof a != "undefined") for (let l of a) s.addPath(l);
            this.registrations.set(e, {specs: i, builder: s, index: o});
            for (let [l, {definition: c}] of i.entries()) c(s, l);
            s.setContext({commandClass: e})
        }

        process(e) {
            let {contexts: r, process: i} = this.builder.compile(), n = i(e);
            switch (n.selectedIndex) {
                case og:
                    return Cp.from(n, r);
                default: {
                    let {commandClass: s} = r[n.selectedIndex], o = this.registrations.get(s);
                    if (typeof o == "undefined") throw new Error("Assertion failed: Expected the command class to have been registered.");
                    let a = new s;
                    a.path = n.path;
                    try {
                        for (let [l, {transformer: c}] of o.specs.entries()) a[l] = c(o.builder, l, n);
                        return a
                    } catch (l) {
                        throw l[UU] = a, l
                    }
                }
                    break
            }
        }

        async run(e, r) {
            var i;
            let n, s = N(N({}, ys.defaultContext), r),
                o = (i = this.enableColors) !== null && i !== void 0 ? i : s.colorDepth > 1;
            if (!Array.isArray(e)) n = e; else try {
                n = this.process(e)
            } catch (c) {
                return s.stdout.write(this.error(c, {colored: o})), 1
            }
            if (n.help) return s.stdout.write(this.usage(n, {colored: o, detailed: !0})), 0;
            n.context = s, n.cli = {
                binaryLabel: this.binaryLabel,
                binaryName: this.binaryName,
                binaryVersion: this.binaryVersion,
                enableCapture: this.enableCapture,
                enableColors: this.enableColors,
                definitions: () => this.definitions(),
                error: (c, u) => this.error(c, u),
                format: c => this.format(c),
                process: c => this.process(c),
                run: (c, u) => this.run(c, N(N({}, s), u)),
                usage: (c, u) => this.usage(c, u)
            };
            let a = this.enableCapture ? OCe(s) : HU, l;
            try {
                l = await a(() => n.validateAndExecute().catch(c => n.catch(c).then(() => 0)))
            } catch (c) {
                return s.stdout.write(this.error(c, {colored: o, command: n})), 1
            }
            return l
        }

        async runExit(e, r) {
            process.exitCode = await this.run(e, r)
        }

        suggest(e, r) {
            let {suggest: i} = this.builder.compile();
            return i(e, r)
        }

        definitions({colored: e = !1} = {}) {
            let r = [];
            for (let [i, {index: n}] of this.registrations) {
                if (typeof i.usage == "undefined") continue;
                let {usage: s} = this.getUsageByIndex(n, {detailed: !1}), {
                        usage: o,
                        options: a
                    } = this.getUsageByIndex(n, {detailed: !0, inlineOptions: !1}),
                    l = typeof i.usage.category != "undefined" ? Ui(i.usage.category, {
                        format: this.format(e),
                        paragraphs: !1
                    }) : void 0, c = typeof i.usage.description != "undefined" ? Ui(i.usage.description, {
                        format: this.format(e),
                        paragraphs: !1
                    }) : void 0, u = typeof i.usage.details != "undefined" ? Ui(i.usage.details, {
                        format: this.format(e),
                        paragraphs: !0
                    }) : void 0, g = typeof i.usage.examples != "undefined" ? i.usage.examples.map(([f, h]) => [Ui(f, {
                        format: this.format(e),
                        paragraphs: !1
                    }), h.replace(/\$0/g, this.binaryName)]) : void 0;
                r.push({path: s, usage: o, category: l, description: c, details: u, examples: g, options: a})
            }
            return r
        }

        usage(e = null, {colored: r, detailed: i = !1, prefix: n = "$ "} = {}) {
            var s;
            if (e === null) {
                for (let l of this.registrations.keys()) {
                    let c = l.paths, u = typeof l.usage != "undefined";
                    if (!c || c.length === 0 || c.length === 1 && c[0].length === 0 || ((s = c == null ? void 0 : c.some(h => h.length === 0)) !== null && s !== void 0 ? s : !1)) if (e) {
                        e = null;
                        break
                    } else e = l; else if (u) {
                        e = null;
                        continue
                    }
                }
                e && (i = !0)
            }
            let o = e !== null && e instanceof Re ? e.constructor : e, a = "";
            if (o) if (i) {
                let {description: l = "", details: c = "", examples: u = []} = o.usage || {};
                l !== "" && (a += Ui(l, {
                    format: this.format(r),
                    paragraphs: !1
                }).replace(/^./, h => h.toUpperCase()), a += `
`), (c !== "" || u.length > 0) && (a += `${this.format(r).header("Usage")}
`, a += `
`);
                let {usage: g, options: f} = this.getUsageByRegistration(o, {inlineOptions: !1});
                if (a += `${this.format(r).bold(n)}${g}
`, f.length > 0) {
                    a += `
`, a += `${hv.header("Options")}
`;
                    let h = f.reduce((p, m) => Math.max(p, m.definition.length), 0);
                    a += `
`;
                    for (let {
                        definition: p,
                        description: m
                    } of f) a += `  ${this.format(r).bold(p.padEnd(h))}    ${Ui(m, {
                        format: this.format(r),
                        paragraphs: !1
                    })}`
                }
                if (c !== "" && (a += `
`, a += `${this.format(r).header("Details")}
`, a += `
`, a += Ui(c, {format: this.format(r), paragraphs: !0})), u.length > 0) {
                    a += `
`, a += `${this.format(r).header("Examples")}
`;
                    for (let [h, p] of u) a += `
`, a += Ui(h, {
                        format: this.format(r),
                        paragraphs: !1
                    }), a += `${p.replace(/^/m, `  ${this.format(r).bold(n)}`).replace(/\$0/g, this.binaryName)}
`
                }
            } else {
                let {usage: l} = this.getUsageByRegistration(o);
                a += `${this.format(r).bold(n)}${l}
`
            } else {
                let l = new Map;
                for (let [f, {index: h}] of this.registrations.entries()) {
                    if (typeof f.usage == "undefined") continue;
                    let p = typeof f.usage.category != "undefined" ? Ui(f.usage.category, {
                        format: this.format(r),
                        paragraphs: !1
                    }) : null, m = l.get(p);
                    typeof m == "undefined" && l.set(p, m = []);
                    let {usage: y} = this.getUsageByIndex(h);
                    m.push({commandClass: f, usage: y})
                }
                let c = Array.from(l.keys()).sort((f, h) => f === null ? -1 : h === null ? 1 : f.localeCompare(h, "en", {
                    usage: "sort",
                    caseFirst: "upper"
                })), u = typeof this.binaryLabel != "undefined", g = typeof this.binaryVersion != "undefined";
                u || g ? (u && g ? a += `${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)}

` : u ? a += `${this.format(r).header(`${this.binaryLabel}`)}
` : a += `${this.format(r).header(`${this.binaryVersion}`)}
`, a += `  ${this.format(r).bold(n)}${this.binaryName} <command>
`) : a += `${this.format(r).bold(n)}${this.binaryName} <command>
`;
                for (let f of c) {
                    let h = l.get(f).slice().sort((m, y) => m.usage.localeCompare(y.usage, "en", {
                        usage: "sort",
                        caseFirst: "upper"
                    })), p = f !== null ? f.trim() : "General commands";
                    a += `
`, a += `${this.format(r).header(`${p}`)}
`;
                    for (let {commandClass: m, usage: y} of h) {
                        let b = m.usage.description || "undocumented";
                        a += `
`, a += `  ${this.format(r).bold(y)}
`, a += `    ${Ui(b, {format: this.format(r), paragraphs: !1})}`
                    }
                }
                a += `
`, a += Ui("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.", {
                    format: this.format(r),
                    paragraphs: !0
                })
            }
            return a
        }

        error(e, r) {
            var i, {colored: n, command: s = (i = e[UU]) !== null && i !== void 0 ? i : null} = r === void 0 ? {} : r;
            e instanceof Error || (e = new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));
            let o = "", a = e.name.replace(/([a-z])([A-Z])/g, "$1 $2");
            a === "Error" && (a = "Internal Error"), o += `${this.format(n).error(a)}: ${e.message}
`;
            let l = e.clipanion;
            return typeof l != "undefined" ? l.type === "usage" && (o += `
`, o += this.usage(s)) : e.stack && (o += `${e.stack.replace(/^.*\n/, "")}
`), o
        }

        format(e) {
            var r;
            return ((r = e != null ? e : this.enableColors) !== null && r !== void 0 ? r : ys.defaultContext.colorDepth > 1) ? hv : FU
        }

        getUsageByRegistration(e, r) {
            let i = this.registrations.get(e);
            if (typeof i == "undefined") throw new Error("Assertion failed: Unregistered command");
            return this.getUsageByIndex(i.index, r)
        }

        getUsageByIndex(e, r) {
            return this.builder.getBuilderByIndex(e).usage(r)
        }
    };
    ys.defaultContext = {
        stdin: process.stdin,
        stdout: process.stdout,
        stderr: process.stderr,
        colorDepth: "getColorDepth" in Cv.default.WriteStream.prototype ? Cv.default.WriteStream.prototype.getColorDepth() : TCe()
    };
    var GU;

    function OCe(t) {
        let e = GU;
        if (typeof e == "undefined") {
            if (t.stdout === process.stdout && t.stderr === process.stderr) return HU;
            let {AsyncLocalStorage: r} = require("async_hooks");
            e = GU = new r;
            let i = process.stdout._write;
            process.stdout._write = function (s, o, a) {
                let l = e.getStore();
                return typeof l == "undefined" ? i.call(this, s, o, a) : l.stdout.write(s, o, a)
            };
            let n = process.stderr._write;
            process.stderr._write = function (s, o, a) {
                let l = e.getStore();
                return typeof l == "undefined" ? n.call(this, s, o, a) : l.stderr.write(s, o, a)
            }
        }
        return r => e.run(t, r)
    }

    function HU(t) {
        return t()
    }

    var mv = {};
    ft(mv, {DefinitionsCommand: () => yI, HelpCommand: () => wI, VersionCommand: () => BI});
    var yI = class extends Re {
        async execute() {
            this.context.stdout.write(`${JSON.stringify(this.cli.definitions(), null, 2)}
`)
        }
    };
    yI.paths = [["--clipanion=definitions"]];
    var wI = class extends Re {
        async execute() {
            this.context.stdout.write(this.cli.usage())
        }
    };
    wI.paths = [["-h"], ["--help"]];
    var BI = class extends Re {
        async execute() {
            var e;
            this.context.stdout.write(`${(e = this.cli.binaryVersion) !== null && e !== void 0 ? e : "<unknown>"}
`)
        }
    };
    BI.paths = [["-v"], ["--version"]];
    var W = {};
    ft(W, {
        Array: () => jU,
        Boolean: () => YU,
        Counter: () => qU,
        Proxy: () => JU,
        Rest: () => WU,
        String: () => zU,
        applyValidator: () => gp,
        cleanValidationError: () => CI,
        formatError: () => up,
        isOptionSymbol: () => cp,
        makeCommandOption: () => rn,
        rerouteArguments: () => No
    });

    function jU(t, e, r) {
        let [i, n] = No(e, r != null ? r : {}), {arity: s = 1} = n, o = t.split(","), a = new Set(o);
        return rn({
            definition(l) {
                l.addOption({
                    names: o,
                    arity: s,
                    hidden: n == null ? void 0 : n.hidden,
                    description: n == null ? void 0 : n.description,
                    required: n.required
                })
            }, transformer(l, c, u) {
                let g = typeof i != "undefined" ? [...i] : void 0;
                for (let {name: f, value: h} of u.options) !a.has(f) || (g = g != null ? g : [], g.push(h));
                return g
            }
        })
    }

    function YU(t, e, r) {
        let [i, n] = No(e, r != null ? r : {}), s = t.split(","), o = new Set(s);
        return rn({
            definition(a) {
                a.addOption({
                    names: s,
                    allowBinding: !1,
                    arity: 0,
                    hidden: n.hidden,
                    description: n.description,
                    required: n.required
                })
            }, transformer(a, l, c) {
                let u = i;
                for (let {name: g, value: f} of c.options) !o.has(g) || (u = f);
                return u
            }
        })
    }

    function qU(t, e, r) {
        let [i, n] = No(e, r != null ? r : {}), s = t.split(","), o = new Set(s);
        return rn({
            definition(a) {
                a.addOption({
                    names: s,
                    allowBinding: !1,
                    arity: 0,
                    hidden: n.hidden,
                    description: n.description,
                    required: n.required
                })
            }, transformer(a, l, c) {
                let u = i;
                for (let {name: g, value: f} of c.options) !o.has(g) || (u != null || (u = 0), f ? u += 1 : u = 0);
                return u
            }
        })
    }

    function JU(t = {}) {
        return rn({
            definition(e, r) {
                var i;
                e.addProxy({name: (i = t.name) !== null && i !== void 0 ? i : r, required: t.required})
            }, transformer(e, r, i) {
                return i.positionals.map(({value: n}) => n)
            }
        })
    }

    function WU(t = {}) {
        return rn({
            definition(e, r) {
                var i;
                e.addRest({name: (i = t.name) !== null && i !== void 0 ? i : r, required: t.required})
            }, transformer(e, r, i) {
                let n = o => {
                    let a = i.positionals[o];
                    return a.extra === Xn || a.extra === !1 && o < e.arity.leading.length
                }, s = 0;
                for (; s < i.positionals.length && n(s);) s += 1;
                return i.positionals.splice(0, s).map(({value: o}) => o)
            }
        })
    }

    function MCe(t, e, r) {
        let [i, n] = No(e, r != null ? r : {}), {arity: s = 1} = n, o = t.split(","), a = new Set(o);
        return rn({
            definition(l) {
                l.addOption({
                    names: o,
                    arity: n.tolerateBoolean ? 0 : s,
                    hidden: n.hidden,
                    description: n.description,
                    required: n.required
                })
            }, transformer(l, c, u) {
                let g, f = i;
                for (let {name: h, value: p} of u.options) !a.has(h) || (g = h, f = p);
                return typeof f == "string" ? gp(g != null ? g : c, f, n.validator) : f
            }
        })
    }

    function KCe(t = {}) {
        let {required: e = !0} = t;
        return rn({
            definition(r, i) {
                var n;
                r.addPositional({name: (n = t.name) !== null && n !== void 0 ? n : i, required: t.required})
            }, transformer(r, i, n) {
                var s;
                for (let o = 0; o < n.positionals.length; ++o) {
                    if (n.positionals[o].extra === Xn || e && n.positionals[o].extra === !0 || !e && n.positionals[o].extra === !1) continue;
                    let [a] = n.positionals.splice(o, 1);
                    return gp((s = t.name) !== null && s !== void 0 ? s : i, a.value, t.validator)
                }
            }
        })
    }

    function zU(t, ...e) {
        return typeof t == "string" ? MCe(t, ...e) : KCe(t)
    }

    var n4 = ge(lg()), Bx = ge(require("stream"));
    var $;
    (function (ae) {
        ae[ae.UNNAMED = 0] = "UNNAMED", ae[ae.EXCEPTION = 1] = "EXCEPTION", ae[ae.MISSING_PEER_DEPENDENCY = 2] = "MISSING_PEER_DEPENDENCY", ae[ae.CYCLIC_DEPENDENCIES = 3] = "CYCLIC_DEPENDENCIES", ae[ae.DISABLED_BUILD_SCRIPTS = 4] = "DISABLED_BUILD_SCRIPTS", ae[ae.BUILD_DISABLED = 5] = "BUILD_DISABLED", ae[ae.SOFT_LINK_BUILD = 6] = "SOFT_LINK_BUILD", ae[ae.MUST_BUILD = 7] = "MUST_BUILD", ae[ae.MUST_REBUILD = 8] = "MUST_REBUILD", ae[ae.BUILD_FAILED = 9] = "BUILD_FAILED", ae[ae.RESOLVER_NOT_FOUND = 10] = "RESOLVER_NOT_FOUND", ae[ae.FETCHER_NOT_FOUND = 11] = "FETCHER_NOT_FOUND", ae[ae.LINKER_NOT_FOUND = 12] = "LINKER_NOT_FOUND", ae[ae.FETCH_NOT_CACHED = 13] = "FETCH_NOT_CACHED", ae[ae.YARN_IMPORT_FAILED = 14] = "YARN_IMPORT_FAILED", ae[ae.REMOTE_INVALID = 15] = "REMOTE_INVALID", ae[ae.REMOTE_NOT_FOUND = 16] = "REMOTE_NOT_FOUND", ae[ae.RESOLUTION_PACK = 17] = "RESOLUTION_PACK", ae[ae.CACHE_CHECKSUM_MISMATCH = 18] = "CACHE_CHECKSUM_MISMATCH", ae[ae.UNUSED_CACHE_ENTRY = 19] = "UNUSED_CACHE_ENTRY", ae[ae.MISSING_LOCKFILE_ENTRY = 20] = "MISSING_LOCKFILE_ENTRY", ae[ae.WORKSPACE_NOT_FOUND = 21] = "WORKSPACE_NOT_FOUND", ae[ae.TOO_MANY_MATCHING_WORKSPACES = 22] = "TOO_MANY_MATCHING_WORKSPACES", ae[ae.CONSTRAINTS_MISSING_DEPENDENCY = 23] = "CONSTRAINTS_MISSING_DEPENDENCY", ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY = 24] = "CONSTRAINTS_INCOMPATIBLE_DEPENDENCY", ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY = 25] = "CONSTRAINTS_EXTRANEOUS_DEPENDENCY", ae[ae.CONSTRAINTS_INVALID_DEPENDENCY = 26] = "CONSTRAINTS_INVALID_DEPENDENCY", ae[ae.CANT_SUGGEST_RESOLUTIONS = 27] = "CANT_SUGGEST_RESOLUTIONS", ae[ae.FROZEN_LOCKFILE_EXCEPTION = 28] = "FROZEN_LOCKFILE_EXCEPTION", ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL = 29] = "CROSS_DRIVE_VIRTUAL_LOCAL", ae[ae.FETCH_FAILED = 30] = "FETCH_FAILED", ae[ae.DANGEROUS_NODE_MODULES = 31] = "DANGEROUS_NODE_MODULES", ae[ae.NODE_GYP_INJECTED = 32] = "NODE_GYP_INJECTED", ae[ae.AUTHENTICATION_NOT_FOUND = 33] = "AUTHENTICATION_NOT_FOUND", ae[ae.INVALID_CONFIGURATION_KEY = 34] = "INVALID_CONFIGURATION_KEY", ae[ae.NETWORK_ERROR = 35] = "NETWORK_ERROR", ae[ae.LIFECYCLE_SCRIPT = 36] = "LIFECYCLE_SCRIPT", ae[ae.CONSTRAINTS_MISSING_FIELD = 37] = "CONSTRAINTS_MISSING_FIELD", ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD = 38] = "CONSTRAINTS_INCOMPATIBLE_FIELD", ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD = 39] = "CONSTRAINTS_EXTRANEOUS_FIELD", ae[ae.CONSTRAINTS_INVALID_FIELD = 40] = "CONSTRAINTS_INVALID_FIELD", ae[ae.AUTHENTICATION_INVALID = 41] = "AUTHENTICATION_INVALID", ae[ae.PROLOG_UNKNOWN_ERROR = 42] = "PROLOG_UNKNOWN_ERROR", ae[ae.PROLOG_SYNTAX_ERROR = 43] = "PROLOG_SYNTAX_ERROR", ae[ae.PROLOG_EXISTENCE_ERROR = 44] = "PROLOG_EXISTENCE_ERROR", ae[ae.STACK_OVERFLOW_RESOLUTION = 45] = "STACK_OVERFLOW_RESOLUTION", ae[ae.AUTOMERGE_FAILED_TO_PARSE = 46] = "AUTOMERGE_FAILED_TO_PARSE", ae[ae.AUTOMERGE_IMMUTABLE = 47] = "AUTOMERGE_IMMUTABLE", ae[ae.AUTOMERGE_SUCCESS = 48] = "AUTOMERGE_SUCCESS", ae[ae.AUTOMERGE_REQUIRED = 49] = "AUTOMERGE_REQUIRED", ae[ae.DEPRECATED_CLI_SETTINGS = 50] = "DEPRECATED_CLI_SETTINGS", ae[ae.PLUGIN_NAME_NOT_FOUND = 51] = "PLUGIN_NAME_NOT_FOUND", ae[ae.INVALID_PLUGIN_REFERENCE = 52] = "INVALID_PLUGIN_REFERENCE", ae[ae.CONSTRAINTS_AMBIGUITY = 53] = "CONSTRAINTS_AMBIGUITY", ae[ae.CACHE_OUTSIDE_PROJECT = 54] = "CACHE_OUTSIDE_PROJECT", ae[ae.IMMUTABLE_INSTALL = 55] = "IMMUTABLE_INSTALL", ae[ae.IMMUTABLE_CACHE = 56] = "IMMUTABLE_CACHE", ae[ae.INVALID_MANIFEST = 57] = "INVALID_MANIFEST", ae[ae.PACKAGE_PREPARATION_FAILED = 58] = "PACKAGE_PREPARATION_FAILED", ae[ae.INVALID_RANGE_PEER_DEPENDENCY = 59] = "INVALID_RANGE_PEER_DEPENDENCY", ae[ae.INCOMPATIBLE_PEER_DEPENDENCY = 60] = "INCOMPATIBLE_PEER_DEPENDENCY", ae[ae.DEPRECATED_PACKAGE = 61] = "DEPRECATED_PACKAGE", ae[ae.INCOMPATIBLE_OS = 62] = "INCOMPATIBLE_OS", ae[ae.INCOMPATIBLE_CPU = 63] = "INCOMPATIBLE_CPU", ae[ae.FROZEN_ARTIFACT_EXCEPTION = 64] = "FROZEN_ARTIFACT_EXCEPTION", ae[ae.TELEMETRY_NOTICE = 65] = "TELEMETRY_NOTICE", ae[ae.PATCH_HUNK_FAILED = 66] = "PATCH_HUNK_FAILED", ae[ae.INVALID_CONFIGURATION_VALUE = 67] = "INVALID_CONFIGURATION_VALUE", ae[ae.UNUSED_PACKAGE_EXTENSION = 68] = "UNUSED_PACKAGE_EXTENSION", ae[ae.REDUNDANT_PACKAGE_EXTENSION = 69] = "REDUNDANT_PACKAGE_EXTENSION", ae[ae.AUTO_NM_SUCCESS = 70] = "AUTO_NM_SUCCESS", ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK = 71] = "NM_CANT_INSTALL_EXTERNAL_SOFT_LINK", ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED = 72] = "NM_PRESERVE_SYMLINKS_REQUIRED", ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK = 73] = "UPDATE_LOCKFILE_ONLY_SKIP_LINK", ae[ae.NM_HARDLINKS_MODE_DOWNGRADED = 74] = "NM_HARDLINKS_MODE_DOWNGRADED", ae[ae.PROLOG_INSTANTIATION_ERROR = 75] = "PROLOG_INSTANTIATION_ERROR", ae[ae.INCOMPATIBLE_ARCHITECTURE = 76] = "INCOMPATIBLE_ARCHITECTURE", ae[ae.GHOST_ARCHITECTURE = 77] = "GHOST_ARCHITECTURE"
    })($ || ($ = {}));

    function qA(t) {
        return `YN${t.toString(10).padStart(4, "0")}`
    }

    function bI(t) {
        let e = Number(t.slice(2));
        if (typeof $[e] == "undefined") throw new Error(`Unknown message name: "${t}"`);
        return e
    }

    var P = {};
    ft(P, {
        areDescriptorsEqual: () => u8,
        areIdentsEqual: () => hd,
        areLocatorsEqual: () => pd,
        areVirtualPackagesEquivalent: () => cSe,
        bindDescriptor: () => ASe,
        bindLocator: () => lSe,
        convertDescriptorToLocator: () => gw,
        convertLocatorToDescriptor: () => ax,
        convertPackageToLocator: () => aSe,
        convertToIdent: () => oSe,
        convertToManifestRange: () => fSe,
        copyPackage: () => ud,
        devirtualizeDescriptor: () => gd,
        devirtualizeLocator: () => fd,
        getIdentVendorPath: () => gx,
        isPackageCompatible: () => dw,
        isVirtualDescriptor: () => nl,
        isVirtualLocator: () => Xo,
        makeDescriptor: () => rr,
        makeIdent: () => Vo,
        makeLocator: () => cn,
        makeRange: () => hw,
        parseDescriptor: () => sl,
        parseFileStyleRange: () => uSe,
        parseIdent: () => An,
        parseLocator: () => Kc,
        parseRange: () => Gg,
        prettyDependent: () => WS,
        prettyDescriptor: () => sr,
        prettyIdent: () => gi,
        prettyLocator: () => Bt,
        prettyLocatorNoColors: () => ux,
        prettyRange: () => uw,
        prettyReference: () => Cd,
        prettyResolution: () => zS,
        prettyWorkspace: () => md,
        renamePackage: () => cd,
        slugifyIdent: () => cx,
        slugifyLocator: () => jg,
        sortDescriptors: () => Yg,
        stringifyDescriptor: () => Pn,
        stringifyIdent: () => Ot,
        stringifyLocator: () => Ds,
        tryParseDescriptor: () => dd,
        tryParseIdent: () => g8,
        tryParseLocator: () => fw,
        virtualizeDescriptor: () => Ax,
        virtualizePackage: () => lx
    });
    var Hg = ge(require("querystring")), A8 = ge(ri()), l8 = ge(QY());
    var Ae = {};
    ft(Ae, {
        LogLevel: () => fo,
        Style: () => Dc,
        Type: () => Ye,
        addLogFilterSupport: () => sd,
        applyColor: () => is,
        applyHyperlink: () => Lg,
        applyStyle: () => Ty,
        json: () => Rc,
        jsonOrPretty: () => G0e,
        mark: () => $S,
        pretty: () => et,
        prettyField: () => Jo,
        prettyList: () => ZS,
        supportsColor: () => Ny,
        supportsHyperlinks: () => VS,
        tuple: () => go
    });
    var id = ge(BS()), nd = ge(pc());
    var vJ = ge(rs()), SJ = ge(fJ());
    var ve = {};
    ft(ve, {
        AsyncActions: () => IJ,
        BufferStream: () => EJ,
        CachingStrategy: () => Pc,
        DefaultStream: () => yJ,
        allSettledSafe: () => uo,
        assertNever: () => GS,
        bufferStream: () => Fg,
        buildIgnorePattern: () => M0e,
        convertMapsToIndexableObjects: () => Fy,
        dynamicRequire: () => Ng,
        escapeRegExp: () => F0e,
        getArrayWithDefault: () => Pg,
        getFactoryWithDefault: () => Ja,
        getMapWithDefault: () => Dg,
        getSetWithDefault: () => xc,
        isIndexableObject: () => jS,
        isPathLike: () => K0e,
        isTaggedYarnVersion: () => R0e,
        mapAndFilter: () => qo,
        mapAndFind: () => ed,
        overrideType: () => HS,
        parseBoolean: () => rd,
        parseOptionalBoolean: () => QJ,
        prettifyAsyncErrors: () => Rg,
        prettifySyncErrors: () => YS,
        releaseAfterUseAsync: () => L0e,
        replaceEnvVariables: () => qS,
        sortMap: () => xn,
        tryParseOptionalBoolean: () => JS,
        validateEnum: () => N0e
    });
    var hJ = ge(rs()), pJ = ge(lg()), dJ = ge(ri()), US = ge(require("stream"));

    function R0e(t) {
        return !!(dJ.default.valid(t) && t.match(/^[^-]+(-rc\.[0-9]+)?$/))
    }

    function F0e(t) {
        return t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
    }

    function HS(t) {
    }

    function GS(t) {
        throw new Error(`Assertion failed: Unexpected object '${t}'`)
    }

    function N0e(t, e) {
        let r = Object.values(t);
        if (!r.includes(e)) throw new Pe(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(i => JSON.stringify(i)).join(", ")})`);
        return e
    }

    function qo(t, e) {
        let r = [];
        for (let i of t) {
            let n = e(i);
            n !== CJ && r.push(n)
        }
        return r
    }

    var CJ = Symbol();
    qo.skip = CJ;

    function ed(t, e) {
        for (let r of t) {
            let i = e(r);
            if (i !== mJ) return i
        }
    }

    var mJ = Symbol();
    ed.skip = mJ;

    function jS(t) {
        return typeof t == "object" && t !== null
    }

    async function uo(t) {
        let e = await Promise.allSettled(t), r = [];
        for (let i of e) {
            if (i.status === "rejected") throw i.reason;
            r.push(i.value)
        }
        return r
    }

    function Fy(t) {
        if (t instanceof Map && (t = Object.fromEntries(t)), jS(t)) for (let e of Object.keys(t)) {
            let r = t[e];
            jS(r) && (t[e] = Fy(r))
        }
        return t
    }

    function Ja(t, e, r) {
        let i = t.get(e);
        return typeof i == "undefined" && t.set(e, i = r()), i
    }

    function Pg(t, e) {
        let r = t.get(e);
        return typeof r == "undefined" && t.set(e, r = []), r
    }

    function xc(t, e) {
        let r = t.get(e);
        return typeof r == "undefined" && t.set(e, r = new Set), r
    }

    function Dg(t, e) {
        let r = t.get(e);
        return typeof r == "undefined" && t.set(e, r = new Map), r
    }

    async function L0e(t, e) {
        if (e == null) return await t();
        try {
            return await t()
        } finally {
            await e()
        }
    }

    async function Rg(t, e) {
        try {
            return await t()
        } catch (r) {
            throw r.message = e(r.message), r
        }
    }

    function YS(t, e) {
        try {
            return t()
        } catch (r) {
            throw r.message = e(r.message), r
        }
    }

    async function Fg(t) {
        return await new Promise((e, r) => {
            let i = [];
            t.on("error", n => {
                r(n)
            }), t.on("data", n => {
                i.push(n)
            }), t.on("end", () => {
                e(Buffer.concat(i))
            })
        })
    }

    var EJ = class extends US.Transform {
        constructor() {
            super(...arguments);
            this.chunks = []
        }

        _transform(e, r, i) {
            if (r !== "buffer" || !Buffer.isBuffer(e)) throw new Error("Assertion failed: BufferStream only accept buffers");
            this.chunks.push(e), i(null, null)
        }

        _flush(e) {
            e(null, Buffer.concat(this.chunks))
        }
    };

    function T0e() {
        let t, e;
        return {
            promise: new Promise((i, n) => {
                t = i, e = n
            }), resolve: t, reject: e
        }
    }

    var IJ = class {
        constructor(e) {
            this.deferred = new Map;
            this.promises = new Map;
            this.limit = (0, pJ.default)(e)
        }

        set(e, r) {
            let i = this.deferred.get(e);
            typeof i == "undefined" && this.deferred.set(e, i = T0e());
            let n = this.limit(() => r());
            return this.promises.set(e, n), n.then(() => {
                this.promises.get(e) === n && i.resolve()
            }, s => {
                this.promises.get(e) === n && i.reject(s)
            }), i.promise
        }

        reduce(e, r) {
            var n;
            let i = (n = this.promises.get(e)) != null ? n : Promise.resolve();
            this.set(e, () => r(i))
        }

        async wait() {
            await Promise.all(this.promises.values())
        }
    }, yJ = class extends US.Transform {
        constructor(e = Buffer.alloc(0)) {
            super();
            this.active = !0;
            this.ifEmpty = e
        }

        _transform(e, r, i) {
            if (r !== "buffer" || !Buffer.isBuffer(e)) throw new Error("Assertion failed: DefaultStream only accept buffers");
            this.active = !1, i(null, e)
        }

        _flush(e) {
            this.active && this.ifEmpty.length > 0 ? e(null, this.ifEmpty) : e(null)
        }
    }, td = eval("require");

    function wJ(t) {
        return td(H.fromPortablePath(t))
    }

    function BJ(path) {
        let physicalPath = H.fromPortablePath(path), currentCacheEntry = td.cache[physicalPath];
        delete td.cache[physicalPath];
        let result;
        try {
            result = wJ(physicalPath);
            let freshCacheEntry = td.cache[physicalPath], dynamicModule = eval("module"),
                freshCacheIndex = dynamicModule.children.indexOf(freshCacheEntry);
            freshCacheIndex !== -1 && dynamicModule.children.splice(freshCacheIndex, 1)
        } finally {
            td.cache[physicalPath] = currentCacheEntry
        }
        return result
    }

    var bJ = new Map;

    function O0e(t) {
        let e = bJ.get(t), r = K.statSync(t);
        if ((e == null ? void 0 : e.mtime) === r.mtimeMs) return e.instance;
        let i = BJ(t);
        return bJ.set(t, {mtime: r.mtimeMs, instance: i}), i
    }

    var Pc;
    (function (i) {
        i[i.NoCache = 0] = "NoCache", i[i.FsTime = 1] = "FsTime", i[i.Node = 2] = "Node"
    })(Pc || (Pc = {}));

    function Ng(t, {cachingStrategy: e = 2} = {}) {
        switch (e) {
            case 0:
                return BJ(t);
            case 1:
                return O0e(t);
            case 2:
                return wJ(t);
            default:
                throw new Error("Unsupported caching strategy")
        }
    }

    function xn(t, e) {
        let r = Array.from(t);
        Array.isArray(e) || (e = [e]);
        let i = [];
        for (let s of e) i.push(r.map(o => s(o)));
        let n = r.map((s, o) => o);
        return n.sort((s, o) => {
            for (let a of i) {
                let l = a[s] < a[o] ? -1 : a[s] > a[o] ? 1 : 0;
                if (l !== 0) return l
            }
            return 0
        }), n.map(s => r[s])
    }

    function M0e(t) {
        return t.length === 0 ? null : t.map(e => `(${hJ.default.makeRe(e, {windows: !1, dot: !0}).source})`).join("|")
    }

    function qS(t, {env: e}) {
        let r = /\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;
        return t.replace(r, (...i) => {
            let {variableName: n, colon: s, fallback: o} = i[i.length - 1],
                a = Object.prototype.hasOwnProperty.call(e, n), l = e[n];
            if (l || a && !s) return l;
            if (o != null) return o;
            throw new Pe(`Environment variable not found (${n})`)
        })
    }

    function rd(t) {
        switch (t) {
            case"true":
            case"1":
            case 1:
            case!0:
                return !0;
            case"false":
            case"0":
            case 0:
            case!1:
                return !1;
            default:
                throw new Error(`Couldn't parse "${t}" as a boolean`)
        }
    }

    function QJ(t) {
        return typeof t == "undefined" ? t : rd(t)
    }

    function JS(t) {
        try {
            return QJ(t)
        } catch {
            return null
        }
    }

    function K0e(t) {
        return !!(H.isAbsolute(t) || t.match(/^(\.{1,2}|~)\//))
    }

    var Qt;
    (function (r) {
        r.HARD = "HARD", r.SOFT = "SOFT"
    })(Qt || (Qt = {}));
    var yi;
    (function (i) {
        i.Dependency = "Dependency", i.PeerDependency = "PeerDependency", i.PeerDependencyMeta = "PeerDependencyMeta"
    })(yi || (yi = {}));
    var qi;
    (function (i) {
        i.Inactive = "inactive", i.Redundant = "redundant", i.Active = "active"
    })(qi || (qi = {}));
    var Ye = {
        NO_HINT: "NO_HINT",
        NULL: "NULL",
        SCOPE: "SCOPE",
        NAME: "NAME",
        RANGE: "RANGE",
        REFERENCE: "REFERENCE",
        NUMBER: "NUMBER",
        PATH: "PATH",
        URL: "URL",
        ADDED: "ADDED",
        REMOVED: "REMOVED",
        CODE: "CODE",
        DURATION: "DURATION",
        SIZE: "SIZE",
        IDENT: "IDENT",
        DESCRIPTOR: "DESCRIPTOR",
        LOCATOR: "LOCATOR",
        RESOLUTION: "RESOLUTION",
        DEPENDENT: "DEPENDENT",
        PACKAGE_EXTENSION: "PACKAGE_EXTENSION",
        SETTING: "SETTING",
        MARKDOWN: "MARKDOWN"
    }, Dc;
    (function (e) {
        e[e.BOLD = 2] = "BOLD"
    })(Dc || (Dc = {}));
    var _S = nd.default.GITHUB_ACTIONS ? {level: 2} : id.default.supportsColor ? {level: id.default.supportsColor.level} : {level: 0},
        Ny = _S.level !== 0, VS = Ny && !nd.default.GITHUB_ACTIONS && !nd.default.CIRCLE && !nd.default.GITLAB,
        XS = new id.default.Instance(_S),
        U0e = new Map([[Ye.NO_HINT, null], [Ye.NULL, ["#a853b5", 129]], [Ye.SCOPE, ["#d75f00", 166]], [Ye.NAME, ["#d7875f", 173]], [Ye.RANGE, ["#00afaf", 37]], [Ye.REFERENCE, ["#87afff", 111]], [Ye.NUMBER, ["#ffd700", 220]], [Ye.PATH, ["#d75fd7", 170]], [Ye.URL, ["#d75fd7", 170]], [Ye.ADDED, ["#5faf00", 70]], [Ye.REMOVED, ["#d70000", 160]], [Ye.CODE, ["#87afff", 111]], [Ye.SIZE, ["#ffd700", 220]]]),
        Rs = t => t, Ly = {
            [Ye.NUMBER]: Rs({pretty: (t, e) => `${e}`, json: t => t}),
            [Ye.IDENT]: Rs({pretty: (t, e) => gi(t, e), json: t => Ot(t)}),
            [Ye.LOCATOR]: Rs({pretty: (t, e) => Bt(t, e), json: t => Ds(t)}),
            [Ye.DESCRIPTOR]: Rs({pretty: (t, e) => sr(t, e), json: t => Pn(t)}),
            [Ye.RESOLUTION]: Rs({
                pretty: (t, {descriptor: e, locator: r}) => zS(t, e, r),
                json: ({descriptor: t, locator: e}) => ({descriptor: Pn(t), locator: e !== null ? Ds(e) : null})
            }),
            [Ye.DEPENDENT]: Rs({
                pretty: (t, {locator: e, descriptor: r}) => WS(t, e, r),
                json: ({locator: t, descriptor: e}) => ({locator: Ds(t), descriptor: Pn(e)})
            }),
            [Ye.PACKAGE_EXTENSION]: Rs({
                pretty: (t, e) => {
                    switch (e.type) {
                        case yi.Dependency:
                            return `${gi(t, e.parentDescriptor)} \u27A4 ${is(t, "dependencies", Ye.CODE)} \u27A4 ${gi(t, e.descriptor)}`;
                        case yi.PeerDependency:
                            return `${gi(t, e.parentDescriptor)} \u27A4 ${is(t, "peerDependencies", Ye.CODE)} \u27A4 ${gi(t, e.descriptor)}`;
                        case yi.PeerDependencyMeta:
                            return `${gi(t, e.parentDescriptor)} \u27A4 ${is(t, "peerDependenciesMeta", Ye.CODE)} \u27A4 ${gi(t, An(e.selector))} \u27A4 ${is(t, e.key, Ye.CODE)}`;
                        default:
                            throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)
                    }
                }, json: t => {
                    switch (t.type) {
                        case yi.Dependency:
                            return `${Ot(t.parentDescriptor)} > ${Ot(t.descriptor)}`;
                        case yi.PeerDependency:
                            return `${Ot(t.parentDescriptor)} >> ${Ot(t.descriptor)}`;
                        case yi.PeerDependencyMeta:
                            return `${Ot(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;
                        default:
                            throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)
                    }
                }
            }),
            [Ye.SETTING]: Rs({
                pretty: (t, e) => (t.get(e), Lg(t, is(t, e, Ye.CODE), `https://yarnpkg.com/configuration/yarnrc#${e}`)),
                json: t => t
            }),
            [Ye.DURATION]: Rs({
                pretty: (t, e) => {
                    if (e > 1e3 * 60) {
                        let r = Math.floor(e / 1e3 / 60), i = Math.ceil((e - r * 60 * 1e3) / 1e3);
                        return i === 0 ? `${r}m` : `${r}m ${i}s`
                    } else {
                        let r = Math.floor(e / 1e3), i = e - r * 1e3;
                        return i === 0 ? `${r}s` : `${r}s ${i}ms`
                    }
                }, json: t => t
            }),
            [Ye.SIZE]: Rs({
                pretty: (t, e) => {
                    let r = ["KB", "MB", "GB", "TB"], i = r.length;
                    for (; i > 1 && e < 1024 ** i;) i -= 1;
                    let n = 1024 ** i, s = Math.floor(e * 100 / n) / 100;
                    return is(t, `${s} ${r[i - 1]}`, Ye.NUMBER)
                }, json: t => t
            }),
            [Ye.PATH]: Rs({pretty: (t, e) => is(t, H.fromPortablePath(e), Ye.PATH), json: t => H.fromPortablePath(t)}),
            [Ye.MARKDOWN]: Rs({
                pretty: (t, {text: e, format: r, paragraphs: i}) => Ui(e, {format: r, paragraphs: i}),
                json: ({text: t}) => t
            })
        };

    function go(t, e) {
        return [e, t]
    }

    function Ty(t, e, r) {
        return t.get("enableColors") && r & 2 && (e = id.default.bold(e)), e
    }

    function is(t, e, r) {
        if (!t.get("enableColors")) return e;
        let i = U0e.get(r);
        if (i === null) return e;
        let n = typeof i == "undefined" ? r : _S.level >= 3 ? i[0] : i[1],
            s = typeof n == "number" ? XS.ansi256(n) : n.startsWith("#") ? XS.hex(n) : XS[n];
        if (typeof s != "function") throw new Error(`Invalid format type ${n}`);
        return s(e)
    }

    var H0e = !!process.env.KONSOLE_VERSION;

    function Lg(t, e, r) {
        return t.get("enableHyperlinks") ? H0e ? `]8;;${r}\\${e}]8;;\\` : `]8;;${r}\x07${e}]8;;\x07` : e
    }

    function et(t, e, r) {
        if (e === null) return is(t, "null", Ye.NULL);
        if (Object.prototype.hasOwnProperty.call(Ly, r)) return Ly[r].pretty(t, e);
        if (typeof e != "string") throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);
        return is(t, e, r)
    }

    function ZS(t, e, r, {separator: i = ", "} = {}) {
        return [...e].map(n => et(t, n, r)).join(i)
    }

    function Rc(t, e) {
        if (t === null) return null;
        if (Object.prototype.hasOwnProperty.call(Ly, e)) return HS(e), Ly[e].json(t);
        if (typeof t != "string") throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);
        return t
    }

    function G0e(t, e, [r, i]) {
        return t ? Rc(r, i) : et(e, r, i)
    }

    function $S(t) {
        return {Check: is(t, "\u2713", "green"), Cross: is(t, "\u2718", "red"), Question: is(t, "?", "cyan")}
    }

    function Jo(t, {label: e, value: [r, i]}) {
        return `${et(t, e, Ye.CODE)}: ${et(t, r, i)}`
    }

    var fo;
    (function (n) {
        n.Error = "error", n.Warning = "warning", n.Info = "info", n.Discard = "discard"
    })(fo || (fo = {}));

    function sd(t, {configuration: e}) {
        let r = e.get("logFilters"), i = new Map, n = new Map, s = [];
        for (let g of r) {
            let f = g.get("level");
            if (typeof f == "undefined") continue;
            let h = g.get("code");
            typeof h != "undefined" && i.set(h, f);
            let p = g.get("text");
            typeof p != "undefined" && n.set(p, f);
            let m = g.get("pattern");
            typeof m != "undefined" && s.push([vJ.default.matcher(m, {contains: !0}), f])
        }
        s.reverse();
        let o = (g, f, h) => {
            if (g === null || g === $.UNNAMED) return h;
            let p = n.size > 0 || s.length > 0 ? (0, SJ.default)(f) : f;
            if (n.size > 0) {
                let m = n.get(p);
                if (typeof m != "undefined") return m != null ? m : h
            }
            if (s.length > 0) {
                for (let [m, y] of s) if (m(p)) return y != null ? y : h
            }
            if (i.size > 0) {
                let m = i.get(qA(g));
                if (typeof m != "undefined") return m != null ? m : h
            }
            return h
        }, a = t.reportInfo, l = t.reportWarning, c = t.reportError, u = function (g, f, h, p) {
            switch (o(f, h, p)) {
                case fo.Info:
                    a.call(g, f, h);
                    break;
                case fo.Warning:
                    l.call(g, f != null ? f : $.UNNAMED, h);
                    break;
                case fo.Error:
                    c.call(g, f != null ? f : $.UNNAMED, h);
                    break
            }
        };
        t.reportInfo = function (...g) {
            return u(this, ...g, fo.Info)
        }, t.reportWarning = function (...g) {
            return u(this, ...g, fo.Warning)
        }, t.reportError = function (...g) {
            return u(this, ...g, fo.Error)
        }
    }

    var Dn = {};
    ft(Dn, {checksumFile: () => lw, checksumPattern: () => cw, makeHash: () => ln});
    var Aw = ge(require("crypto")), ox = ge(sx());

    function ln(...t) {
        let e = (0, Aw.createHash)("sha512"), r = "";
        for (let i of t) typeof i == "string" ? r += i : i && (r && (e.update(r), r = ""), e.update(i));
        return r && e.update(r), e.digest("hex")
    }

    async function lw(t, {baseFs: e, algorithm: r} = {baseFs: K, algorithm: "sha512"}) {
        let i = await e.openPromise(t, "r");
        try {
            let n = 65536, s = Buffer.allocUnsafeSlow(n), o = (0, Aw.createHash)(r), a = 0;
            for (; (a = await e.readPromise(i, s, 0, n)) !== 0;) o.update(a === n ? s : s.slice(0, a));
            return o.digest("hex")
        } finally {
            await e.closePromise(i)
        }
    }

    async function cw(t, {cwd: e}) {
        let i = (await (0, ox.default)(t, {
            cwd: H.fromPortablePath(e),
            expandDirectories: !1,
            onlyDirectories: !0,
            unique: !0
        })).map(a => `${a}/**/*`), n = await (0, ox.default)([t, ...i], {
            cwd: H.fromPortablePath(e),
            expandDirectories: !1,
            onlyFiles: !1,
            unique: !0
        });
        n.sort();
        let s = await Promise.all(n.map(async a => {
            let l = [Buffer.from(a)], c = H.toPortablePath(a), u = await K.lstatPromise(c);
            return u.isSymbolicLink() ? l.push(Buffer.from(await K.readlinkPromise(c))) : u.isFile() && l.push(await K.readFilePromise(c)), l.join("\0")
        })), o = (0, Aw.createHash)("sha512");
        for (let a of s) o.update(a);
        return o.digest("hex")
    }

    var ld = "virtual:", nSe = 5, c8 = /(os|cpu|libc)=([a-z0-9_-]+)/, sSe = (0, l8.makeParser)(c8);

    function Vo(t, e) {
        if (t == null ? void 0 : t.startsWith("@")) throw new Error("Invalid scope: don't prefix it with '@'");
        return {identHash: ln(t, e), scope: t, name: e}
    }

    function rr(t, e) {
        return {identHash: t.identHash, scope: t.scope, name: t.name, descriptorHash: ln(t.identHash, e), range: e}
    }

    function cn(t, e) {
        return {identHash: t.identHash, scope: t.scope, name: t.name, locatorHash: ln(t.identHash, e), reference: e}
    }

    function oSe(t) {
        return {identHash: t.identHash, scope: t.scope, name: t.name}
    }

    function gw(t) {
        return {identHash: t.identHash, scope: t.scope, name: t.name, locatorHash: t.descriptorHash, reference: t.range}
    }

    function ax(t) {
        return {identHash: t.identHash, scope: t.scope, name: t.name, descriptorHash: t.locatorHash, range: t.reference}
    }

    function aSe(t) {
        return {
            identHash: t.identHash,
            scope: t.scope,
            name: t.name,
            locatorHash: t.locatorHash,
            reference: t.reference
        }
    }

    function cd(t, e) {
        return {
            identHash: e.identHash,
            scope: e.scope,
            name: e.name,
            locatorHash: e.locatorHash,
            reference: e.reference,
            version: t.version,
            languageName: t.languageName,
            linkType: t.linkType,
            conditions: t.conditions,
            dependencies: new Map(t.dependencies),
            peerDependencies: new Map(t.peerDependencies),
            dependenciesMeta: new Map(t.dependenciesMeta),
            peerDependenciesMeta: new Map(t.peerDependenciesMeta),
            bin: new Map(t.bin)
        }
    }

    function ud(t) {
        return cd(t, t)
    }

    function Ax(t, e) {
        if (e.includes("#")) throw new Error("Invalid entropy");
        return rr(t, `virtual:${e}#${t.range}`)
    }

    function lx(t, e) {
        if (e.includes("#")) throw new Error("Invalid entropy");
        return cd(t, cn(t, `virtual:${e}#${t.reference}`))
    }

    function nl(t) {
        return t.range.startsWith(ld)
    }

    function Xo(t) {
        return t.reference.startsWith(ld)
    }

    function gd(t) {
        if (!nl(t)) throw new Error("Not a virtual descriptor");
        return rr(t, t.range.replace(/^[^#]*#/, ""))
    }

    function fd(t) {
        if (!Xo(t)) throw new Error("Not a virtual descriptor");
        return cn(t, t.reference.replace(/^[^#]*#/, ""))
    }

    function ASe(t, e) {
        return t.range.includes("::") ? t : rr(t, `${t.range}::${Hg.default.stringify(e)}`)
    }

    function lSe(t, e) {
        return t.reference.includes("::") ? t : cn(t, `${t.reference}::${Hg.default.stringify(e)}`)
    }

    function hd(t, e) {
        return t.identHash === e.identHash
    }

    function u8(t, e) {
        return t.descriptorHash === e.descriptorHash
    }

    function pd(t, e) {
        return t.locatorHash === e.locatorHash
    }

    function cSe(t, e) {
        if (!Xo(t)) throw new Error("Invalid package type");
        if (!Xo(e)) throw new Error("Invalid package type");
        if (!hd(t, e) || t.dependencies.size !== e.dependencies.size) return !1;
        for (let r of t.dependencies.values()) {
            let i = e.dependencies.get(r.identHash);
            if (!i || !u8(r, i)) return !1
        }
        return !0
    }

    function An(t) {
        let e = g8(t);
        if (!e) throw new Error(`Invalid ident (${t})`);
        return e
    }

    function g8(t) {
        let e = t.match(/^(?:@([^/]+?)\/)?([^/]+)$/);
        if (!e) return null;
        let [, r, i] = e, n = typeof r != "undefined" ? r : null;
        return Vo(n, i)
    }

    function sl(t, e = !1) {
        let r = dd(t, e);
        if (!r) throw new Error(`Invalid descriptor (${t})`);
        return r
    }

    function dd(t, e = !1) {
        let r = e ? t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/) : t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);
        if (!r) return null;
        let [, i, n, s] = r;
        if (s === "unknown") throw new Error(`Invalid range (${t})`);
        let o = typeof i != "undefined" ? i : null, a = typeof s != "undefined" ? s : "unknown";
        return rr(Vo(o, n), a)
    }

    function Kc(t, e = !1) {
        let r = fw(t, e);
        if (!r) throw new Error(`Invalid locator (${t})`);
        return r
    }

    function fw(t, e = !1) {
        let r = e ? t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/) : t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);
        if (!r) return null;
        let [, i, n, s] = r;
        if (s === "unknown") throw new Error(`Invalid reference (${t})`);
        let o = typeof i != "undefined" ? i : null, a = typeof s != "undefined" ? s : "unknown";
        return cn(Vo(o, n), a)
    }

    function Gg(t, e) {
        let r = t.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);
        if (r === null) throw new Error(`Invalid range (${t})`);
        let i = typeof r[1] != "undefined" ? r[1] : null;
        if (typeof (e == null ? void 0 : e.requireProtocol) == "string" && i !== e.requireProtocol) throw new Error(`Invalid protocol (${i})`);
        if ((e == null ? void 0 : e.requireProtocol) && i === null) throw new Error(`Missing protocol (${i})`);
        let n = typeof r[3] != "undefined" ? decodeURIComponent(r[2]) : null;
        if ((e == null ? void 0 : e.requireSource) && n === null) throw new Error(`Missing source (${t})`);
        let s = typeof r[3] != "undefined" ? decodeURIComponent(r[3]) : decodeURIComponent(r[2]),
            o = (e == null ? void 0 : e.parseSelector) ? Hg.default.parse(s) : s,
            a = typeof r[4] != "undefined" ? Hg.default.parse(r[4]) : null;
        return {protocol: i, source: n, selector: o, params: a}
    }

    function uSe(t, {protocol: e}) {
        let {selector: r, params: i} = Gg(t, {requireProtocol: e, requireBindings: !0});
        if (typeof i.locator != "string") throw new Error(`Assertion failed: Invalid bindings for ${t}`);
        return {parentLocator: Kc(i.locator, !0), path: r}
    }

    function f8(t) {
        return t = t.replace(/%/g, "%25"), t = t.replace(/:/g, "%3A"), t = t.replace(/#/g, "%23"), t
    }

    function gSe(t) {
        return t === null ? !1 : Object.entries(t).length > 0
    }

    function hw({protocol: t, source: e, selector: r, params: i}) {
        let n = "";
        return t !== null && (n += `${t}`), e !== null && (n += `${f8(e)}#`), n += f8(r), gSe(i) && (n += `::${Hg.default.stringify(i)}`), n
    }

    function fSe(t) {
        let {params: e, protocol: r, source: i, selector: n} = Gg(t);
        for (let s in e) s.startsWith("__") && delete e[s];
        return hw({protocol: r, source: i, params: e, selector: n})
    }

    function Ot(t) {
        return t.scope ? `@${t.scope}/${t.name}` : `${t.name}`
    }

    function Pn(t) {
        return t.scope ? `@${t.scope}/${t.name}@${t.range}` : `${t.name}@${t.range}`
    }

    function Ds(t) {
        return t.scope ? `@${t.scope}/${t.name}@${t.reference}` : `${t.name}@${t.reference}`
    }

    function cx(t) {
        return t.scope !== null ? `@${t.scope}-${t.name}` : t.name
    }

    function jg(t) {
        let {protocol: e, selector: r} = Gg(t.reference), i = e !== null ? e.replace(/:$/, "") : "exotic",
            n = A8.default.valid(r), s = n !== null ? `${i}-${n}` : `${i}`, o = 10,
            a = t.scope ? `${cx(t)}-${s}-${t.locatorHash.slice(0, o)}` : `${cx(t)}-${s}-${t.locatorHash.slice(0, o)}`;
        return Jr(a)
    }

    function gi(t, e) {
        return e.scope ? `${et(t, `@${e.scope}/`, Ye.SCOPE)}${et(t, e.name, Ye.NAME)}` : `${et(t, e.name, Ye.NAME)}`
    }

    function pw(t) {
        if (t.startsWith(ld)) {
            let e = pw(t.substring(t.indexOf("#") + 1)), r = t.substring(ld.length, ld.length + nSe);
            return `${e} [${r}]`
        } else return t.replace(/\?.*/, "?[...]")
    }

    function uw(t, e) {
        return `${et(t, pw(e), Ye.RANGE)}`
    }

    function sr(t, e) {
        return `${gi(t, e)}${et(t, "@", Ye.RANGE)}${uw(t, e.range)}`
    }

    function Cd(t, e) {
        return `${et(t, pw(e), Ye.REFERENCE)}`
    }

    function Bt(t, e) {
        return `${gi(t, e)}${et(t, "@", Ye.REFERENCE)}${Cd(t, e.reference)}`
    }

    function ux(t) {
        return `${Ot(t)}@${pw(t.reference)}`
    }

    function Yg(t) {
        return xn(t, [e => Ot(e), e => e.range])
    }

    function md(t, e) {
        return gi(t, e.locator)
    }

    function zS(t, e, r) {
        let i = nl(e) ? gd(e) : e;
        return r === null ? `${sr(t, i)} \u2192 ${$S(t).Cross}` : i.identHash === r.identHash ? `${sr(t, i)} \u2192 ${Cd(t, r.reference)}` : `${sr(t, i)} \u2192 ${Bt(t, r)}`
    }

    function WS(t, e, r) {
        return r === null ? `${Bt(t, e)}` : `${Bt(t, e)} (via ${uw(t, r.range)})`
    }

    function gx(t) {
        return `node_modules/${Ot(t)}`
    }

    function dw(t, e) {
        return t.conditions ? sSe(t.conditions, r => {
            let [, i, n] = r.match(c8), s = e[i];
            return s ? s.includes(n) : !0
        }) : !0
    }

    var h8 = {
        hooks: {
            reduceDependency: (t, e, r, i, {resolver: n, resolveOptions: s}) => {
                for (let {pattern: o, reference: a} of e.topLevelWorkspace.manifest.resolutions) {
                    if (o.from && o.from.fullName !== Ot(r) || o.from && o.from.description && o.from.description !== r.reference || o.descriptor.fullName !== Ot(t) || o.descriptor.description && o.descriptor.description !== t.range) continue;
                    return n.bindDescriptor(rr(t, a), e.topLevelWorkspace.anchoredLocator, s)
                }
                return t
            }, validateProject: async (t, e) => {
                for (let r of t.workspaces) {
                    let i = md(t.configuration, r);
                    await t.configuration.triggerHook(n => n.validateWorkspace, r, {
                        reportWarning: (n, s) => e.reportWarning(n, `${i}: ${s}`),
                        reportError: (n, s) => e.reportError(n, `${i}: ${s}`)
                    })
                }
            }, validateWorkspace: async (t, e) => {
                let {manifest: r} = t;
                r.resolutions.length && t.cwd !== t.project.cwd && r.errors.push(new Error("Resolutions field will be ignored"));
                for (let i of r.errors) e.reportWarning($.INVALID_MANIFEST, i.message)
            }
        }
    };
    var m8 = ge(ri());
    var Ed = class {
        supportsDescriptor(e, r) {
            return !!(e.range.startsWith(Ed.protocol) || r.project.tryWorkspaceByDescriptor(e) !== null)
        }

        supportsLocator(e, r) {
            return !!e.reference.startsWith(Ed.protocol)
        }

        shouldPersistResolution(e, r) {
            return !1
        }

        bindDescriptor(e, r, i) {
            return e
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            return [i.project.getWorkspaceByDescriptor(e).anchoredLocator]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            let i = r.project.getWorkspaceByCwd(e.reference.slice(Ed.protocol.length));
            return ie(N({}, e), {
                version: i.manifest.version || "0.0.0",
                languageName: "unknown",
                linkType: Qt.SOFT,
                conditions: null,
                dependencies: new Map([...i.manifest.dependencies, ...i.manifest.devDependencies]),
                peerDependencies: new Map([...i.manifest.peerDependencies]),
                dependenciesMeta: i.manifest.dependenciesMeta,
                peerDependenciesMeta: i.manifest.peerDependenciesMeta,
                bin: i.manifest.bin
            })
        }
    }, oi = Ed;
    oi.protocol = "workspace:";
    var Wt = {};
    ft(Wt, {SemVer: () => p8.SemVer, clean: () => pSe, satisfiesWithPrereleases: () => Uc, validRange: () => ho});
    var Cw = ge(ri()), p8 = ge(ri()), d8 = new Map;

    function Uc(t, e, r = !1) {
        if (!t) return !1;
        let i = `${e}${r}`, n = d8.get(i);
        if (typeof n == "undefined") try {
            n = new Cw.default.Range(e, {includePrerelease: !0, loose: r})
        } catch {
            return !1
        } finally {
            d8.set(i, n || null)
        } else if (n === null) return !1;
        let s;
        try {
            s = new Cw.default.SemVer(t, n)
        } catch (o) {
            return !1
        }
        return n.test(s) ? !0 : (s.prerelease && (s.prerelease = []), n.set.some(o => {
            for (let a of o) a.semver.prerelease && (a.semver.prerelease = []);
            return o.every(a => a.test(s))
        }))
    }

    var C8 = new Map;

    function ho(t) {
        if (t.indexOf(":") !== -1) return null;
        let e = C8.get(t);
        if (typeof e != "undefined") return e;
        try {
            e = new Cw.default.Range(t)
        } catch {
            e = null
        }
        return C8.set(t, e), e
    }

    var hSe = /^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;

    function pSe(t) {
        let e = hSe.exec(t);
        return e ? e[1] : null
    }

    var ol = class {
        constructor() {
            this.indent = "  ";
            this.name = null;
            this.version = null;
            this.os = null;
            this.cpu = null;
            this.libc = null;
            this.type = null;
            this.packageManager = null;
            this.private = !1;
            this.license = null;
            this.main = null;
            this.module = null;
            this.browser = null;
            this.languageName = null;
            this.bin = new Map;
            this.scripts = new Map;
            this.dependencies = new Map;
            this.devDependencies = new Map;
            this.peerDependencies = new Map;
            this.workspaceDefinitions = [];
            this.dependenciesMeta = new Map;
            this.peerDependenciesMeta = new Map;
            this.resolutions = [];
            this.files = null;
            this.publishConfig = null;
            this.installConfig = null;
            this.preferUnplugged = null;
            this.raw = {};
            this.errors = []
        }

        static async tryFind(e, {baseFs: r = new ar} = {}) {
            let i = x.join(e, "package.json");
            try {
                return await ol.fromFile(i, {baseFs: r})
            } catch (n) {
                if (n.code === "ENOENT") return null;
                throw n
            }
        }

        static async find(e, {baseFs: r} = {}) {
            let i = await ol.tryFind(e, {baseFs: r});
            if (i === null) throw new Error("Manifest not found");
            return i
        }

        static async fromFile(e, {baseFs: r = new ar} = {}) {
            let i = new ol;
            return await i.loadFile(e, {baseFs: r}), i
        }

        static fromText(e) {
            let r = new ol;
            return r.loadFromText(e), r
        }

        static isManifestFieldCompatible(e, r) {
            if (e === null) return !0;
            let i = !0, n = !1;
            for (let s of e) if (s[0] === "!") {
                if (n = !0, r === s.slice(1)) return !1
            } else if (i = !1, s === r) return !0;
            return n && i
        }

        loadFromText(e) {
            let r;
            try {
                r = JSON.parse(I8(e) || "{}")
            } catch (i) {
                throw i.message += ` (when parsing ${e})`, i
            }
            this.load(r), this.indent = E8(e)
        }

        async loadFile(e, {baseFs: r = new ar}) {
            let i = await r.readFilePromise(e, "utf8"), n;
            try {
                n = JSON.parse(I8(i) || "{}")
            } catch (s) {
                throw s.message += ` (when parsing ${e})`, s
            }
            this.load(n), this.indent = E8(i)
        }

        load(e, {yamlCompatibilityMode: r = !1} = {}) {
            if (typeof e != "object" || e === null) throw new Error(`Utterly invalid manifest data (${e})`);
            this.raw = e;
            let i = [];
            if (this.name = null, typeof e.name == "string") try {
                this.name = An(e.name)
            } catch (s) {
                i.push(new Error("Parsing failed for the 'name' field"))
            }
            if (typeof e.version == "string" ? this.version = e.version : this.version = null, Array.isArray(e.os)) {
                let s = [];
                this.os = s;
                for (let o of e.os) typeof o != "string" ? i.push(new Error("Parsing failed for the 'os' field")) : s.push(o)
            } else this.os = null;
            if (Array.isArray(e.cpu)) {
                let s = [];
                this.cpu = s;
                for (let o of e.cpu) typeof o != "string" ? i.push(new Error("Parsing failed for the 'cpu' field")) : s.push(o)
            } else this.cpu = null;
            if (Array.isArray(e.libc)) {
                let s = [];
                this.libc = s;
                for (let o of e.libc) typeof o != "string" ? i.push(new Error("Parsing failed for the 'libc' field")) : s.push(o)
            } else this.libc = null;
            if (typeof e.type == "string" ? this.type = e.type : this.type = null, typeof e.packageManager == "string" ? this.packageManager = e.packageManager : this.packageManager = null, typeof e.private == "boolean" ? this.private = e.private : this.private = !1, typeof e.license == "string" ? this.license = e.license : this.license = null, typeof e.languageName == "string" ? this.languageName = e.languageName : this.languageName = null, typeof e.main == "string" ? this.main = un(e.main) : this.main = null, typeof e.module == "string" ? this.module = un(e.module) : this.module = null, e.browser != null) if (typeof e.browser == "string") this.browser = un(e.browser); else {
                this.browser = new Map;
                for (let [s, o] of Object.entries(e.browser)) this.browser.set(un(s), typeof o == "string" ? un(o) : o)
            } else this.browser = null;
            if (this.bin = new Map, typeof e.bin == "string") this.name !== null ? this.bin.set(this.name.name, un(e.bin)) : i.push(new Error("String bin field, but no attached package name")); else if (typeof e.bin == "object" && e.bin !== null) for (let [s, o] of Object.entries(e.bin)) {
                if (typeof o != "string") {
                    i.push(new Error(`Invalid bin definition for '${s}'`));
                    continue
                }
                let a = An(s);
                this.bin.set(a.name, un(o))
            }
            if (this.scripts = new Map, typeof e.scripts == "object" && e.scripts !== null) for (let [s, o] of Object.entries(e.scripts)) {
                if (typeof o != "string") {
                    i.push(new Error(`Invalid script definition for '${s}'`));
                    continue
                }
                this.scripts.set(s, o)
            }
            if (this.dependencies = new Map, typeof e.dependencies == "object" && e.dependencies !== null) for (let [s, o] of Object.entries(e.dependencies)) {
                if (typeof o != "string") {
                    i.push(new Error(`Invalid dependency range for '${s}'`));
                    continue
                }
                let a;
                try {
                    a = An(s)
                } catch (c) {
                    i.push(new Error(`Parsing failed for the dependency name '${s}'`));
                    continue
                }
                let l = rr(a, o);
                this.dependencies.set(l.identHash, l)
            }
            if (this.devDependencies = new Map, typeof e.devDependencies == "object" && e.devDependencies !== null) for (let [s, o] of Object.entries(e.devDependencies)) {
                if (typeof o != "string") {
                    i.push(new Error(`Invalid dependency range for '${s}'`));
                    continue
                }
                let a;
                try {
                    a = An(s)
                } catch (c) {
                    i.push(new Error(`Parsing failed for the dependency name '${s}'`));
                    continue
                }
                let l = rr(a, o);
                this.devDependencies.set(l.identHash, l)
            }
            if (this.peerDependencies = new Map, typeof e.peerDependencies == "object" && e.peerDependencies !== null) for (let [s, o] of Object.entries(e.peerDependencies)) {
                let a;
                try {
                    a = An(s)
                } catch (c) {
                    i.push(new Error(`Parsing failed for the dependency name '${s}'`));
                    continue
                }
                (typeof o != "string" || !o.startsWith(oi.protocol) && !ho(o)) && (i.push(new Error(`Invalid dependency range for '${s}'`)), o = "*");
                let l = rr(a, o);
                this.peerDependencies.set(l.identHash, l)
            }
            typeof e.workspaces == "object" && e.workspaces !== null && e.workspaces.nohoist && i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));
            let n = Array.isArray(e.workspaces) ? e.workspaces : typeof e.workspaces == "object" && e.workspaces !== null && Array.isArray(e.workspaces.packages) ? e.workspaces.packages : [];
            this.workspaceDefinitions = [];
            for (let s of n) {
                if (typeof s != "string") {
                    i.push(new Error(`Invalid workspace definition for '${s}'`));
                    continue
                }
                this.workspaceDefinitions.push({pattern: s})
            }
            if (this.dependenciesMeta = new Map, typeof e.dependenciesMeta == "object" && e.dependenciesMeta !== null) for (let [s, o] of Object.entries(e.dependenciesMeta)) {
                if (typeof o != "object" || o === null) {
                    i.push(new Error(`Invalid meta field for '${s}`));
                    continue
                }
                let a = sl(s), l = this.ensureDependencyMeta(a), c = mw(o.built, {yamlCompatibilityMode: r});
                if (c === null) {
                    i.push(new Error(`Invalid built meta field for '${s}'`));
                    continue
                }
                let u = mw(o.optional, {yamlCompatibilityMode: r});
                if (u === null) {
                    i.push(new Error(`Invalid optional meta field for '${s}'`));
                    continue
                }
                let g = mw(o.unplugged, {yamlCompatibilityMode: r});
                if (g === null) {
                    i.push(new Error(`Invalid unplugged meta field for '${s}'`));
                    continue
                }
                Object.assign(l, {built: c, optional: u, unplugged: g})
            }
            if (this.peerDependenciesMeta = new Map, typeof e.peerDependenciesMeta == "object" && e.peerDependenciesMeta !== null) for (let [s, o] of Object.entries(e.peerDependenciesMeta)) {
                if (typeof o != "object" || o === null) {
                    i.push(new Error(`Invalid meta field for '${s}'`));
                    continue
                }
                let a = sl(s), l = this.ensurePeerDependencyMeta(a), c = mw(o.optional, {yamlCompatibilityMode: r});
                if (c === null) {
                    i.push(new Error(`Invalid optional meta field for '${s}'`));
                    continue
                }
                Object.assign(l, {optional: c})
            }
            if (this.resolutions = [], typeof e.resolutions == "object" && e.resolutions !== null) for (let [s, o] of Object.entries(e.resolutions)) {
                if (typeof o != "string") {
                    i.push(new Error(`Invalid resolution entry for '${s}'`));
                    continue
                }
                try {
                    this.resolutions.push({pattern: iI(s), reference: o})
                } catch (a) {
                    i.push(a);
                    continue
                }
            }
            if (Array.isArray(e.files)) {
                this.files = new Set;
                for (let s of e.files) {
                    if (typeof s != "string") {
                        i.push(new Error(`Invalid files entry for '${s}'`));
                        continue
                    }
                    this.files.add(s)
                }
            } else this.files = null;
            if (typeof e.publishConfig == "object" && e.publishConfig !== null) {
                if (this.publishConfig = {}, typeof e.publishConfig.access == "string" && (this.publishConfig.access = e.publishConfig.access), typeof e.publishConfig.main == "string" && (this.publishConfig.main = un(e.publishConfig.main)), typeof e.publishConfig.module == "string" && (this.publishConfig.module = un(e.publishConfig.module)), e.publishConfig.browser != null) if (typeof e.publishConfig.browser == "string") this.publishConfig.browser = un(e.publishConfig.browser); else {
                    this.publishConfig.browser = new Map;
                    for (let [s, o] of Object.entries(e.publishConfig.browser)) this.publishConfig.browser.set(un(s), typeof o == "string" ? un(o) : o)
                }
                if (typeof e.publishConfig.registry == "string" && (this.publishConfig.registry = e.publishConfig.registry), typeof e.publishConfig.bin == "string") this.name !== null ? this.publishConfig.bin = new Map([[this.name.name, un(e.publishConfig.bin)]]) : i.push(new Error("String bin field, but no attached package name")); else if (typeof e.publishConfig.bin == "object" && e.publishConfig.bin !== null) {
                    this.publishConfig.bin = new Map;
                    for (let [s, o] of Object.entries(e.publishConfig.bin)) {
                        if (typeof o != "string") {
                            i.push(new Error(`Invalid bin definition for '${s}'`));
                            continue
                        }
                        this.publishConfig.bin.set(s, un(o))
                    }
                }
                if (Array.isArray(e.publishConfig.executableFiles)) {
                    this.publishConfig.executableFiles = new Set;
                    for (let s of e.publishConfig.executableFiles) {
                        if (typeof s != "string") {
                            i.push(new Error("Invalid executable file definition"));
                            continue
                        }
                        this.publishConfig.executableFiles.add(un(s))
                    }
                }
            } else this.publishConfig = null;
            if (typeof e.installConfig == "object" && e.installConfig !== null) {
                this.installConfig = {};
                for (let s of Object.keys(e.installConfig)) s === "hoistingLimits" ? typeof e.installConfig.hoistingLimits == "string" ? this.installConfig.hoistingLimits = e.installConfig.hoistingLimits : i.push(new Error("Invalid hoisting limits definition")) : s == "selfReferences" ? typeof e.installConfig.selfReferences == "boolean" ? this.installConfig.selfReferences = e.installConfig.selfReferences : i.push(new Error("Invalid selfReferences definition, must be a boolean value")) : i.push(new Error(`Unrecognized installConfig key: ${s}`))
            } else this.installConfig = null;
            if (typeof e.optionalDependencies == "object" && e.optionalDependencies !== null) for (let [s, o] of Object.entries(e.optionalDependencies)) {
                if (typeof o != "string") {
                    i.push(new Error(`Invalid dependency range for '${s}'`));
                    continue
                }
                let a;
                try {
                    a = An(s)
                } catch (g) {
                    i.push(new Error(`Parsing failed for the dependency name '${s}'`));
                    continue
                }
                let l = rr(a, o);
                this.dependencies.set(l.identHash, l);
                let c = rr(a, "unknown"), u = this.ensureDependencyMeta(c);
                Object.assign(u, {optional: !0})
            }
            typeof e.preferUnplugged == "boolean" ? this.preferUnplugged = e.preferUnplugged : this.preferUnplugged = null, this.errors = i
        }

        getForScope(e) {
            switch (e) {
                case"dependencies":
                    return this.dependencies;
                case"devDependencies":
                    return this.devDependencies;
                case"peerDependencies":
                    return this.peerDependencies;
                default:
                    throw new Error(`Unsupported value ("${e}")`)
            }
        }

        hasConsumerDependency(e) {
            return !!(this.dependencies.has(e.identHash) || this.peerDependencies.has(e.identHash))
        }

        hasHardDependency(e) {
            return !!(this.dependencies.has(e.identHash) || this.devDependencies.has(e.identHash))
        }

        hasSoftDependency(e) {
            return !!this.peerDependencies.has(e.identHash)
        }

        hasDependency(e) {
            return !!(this.hasHardDependency(e) || this.hasSoftDependency(e))
        }

        getConditions() {
            let e = [];
            return this.os && this.os.length > 0 && e.push(fx("os", this.os)), this.cpu && this.cpu.length > 0 && e.push(fx("cpu", this.cpu)), this.libc && this.libc.length > 0 && e.push(fx("libc", this.libc)), e.length > 0 ? e.join(" & ") : null
        }

        isCompatibleWithOS(e) {
            return ol.isManifestFieldCompatible(this.os, e)
        }

        isCompatibleWithCPU(e) {
            return ol.isManifestFieldCompatible(this.cpu, e)
        }

        ensureDependencyMeta(e) {
            if (e.range !== "unknown" && !m8.default.valid(e.range)) throw new Error(`Invalid meta field range for '${Pn(e)}'`);
            let r = Ot(e), i = e.range !== "unknown" ? e.range : null, n = this.dependenciesMeta.get(r);
            n || this.dependenciesMeta.set(r, n = new Map);
            let s = n.get(i);
            return s || n.set(i, s = {}), s
        }

        ensurePeerDependencyMeta(e) {
            if (e.range !== "unknown") throw new Error(`Invalid meta field range for '${Pn(e)}'`);
            let r = Ot(e), i = this.peerDependenciesMeta.get(r);
            return i || this.peerDependenciesMeta.set(r, i = {}), i
        }

        setRawField(e, r, {after: i = []} = {}) {
            let n = new Set(i.filter(s => Object.prototype.hasOwnProperty.call(this.raw, s)));
            if (n.size === 0 || Object.prototype.hasOwnProperty.call(this.raw, e)) this.raw[e] = r; else {
                let s = this.raw, o = this.raw = {}, a = !1;
                for (let l of Object.keys(s)) o[l] = s[l], a || (n.delete(l), n.size === 0 && (o[e] = r, a = !0))
            }
        }

        exportTo(e, {compatibilityMode: r = !0} = {}) {
            var s;
            if (Object.assign(e, this.raw), this.name !== null ? e.name = Ot(this.name) : delete e.name, this.version !== null ? e.version = this.version : delete e.version, this.os !== null ? e.os = this.os : delete e.os, this.cpu !== null ? e.cpu = this.cpu : delete e.cpu, this.type !== null ? e.type = this.type : delete e.type, this.packageManager !== null ? e.packageManager = this.packageManager : delete e.packageManager, this.private ? e.private = !0 : delete e.private, this.license !== null ? e.license = this.license : delete e.license, this.languageName !== null ? e.languageName = this.languageName : delete e.languageName, this.main !== null ? e.main = this.main : delete e.main, this.module !== null ? e.module = this.module : delete e.module, this.browser !== null) {
                let o = this.browser;
                typeof o == "string" ? e.browser = o : o instanceof Map && (e.browser = Object.assign({}, ...Array.from(o.keys()).sort().map(a => ({[a]: o.get(a)}))))
            } else delete e.browser;
            this.bin.size === 1 && this.name !== null && this.bin.has(this.name.name) ? e.bin = this.bin.get(this.name.name) : this.bin.size > 0 ? e.bin = Object.assign({}, ...Array.from(this.bin.keys()).sort().map(o => ({[o]: this.bin.get(o)}))) : delete e.bin, this.workspaceDefinitions.length > 0 ? this.raw.workspaces && !Array.isArray(this.raw.workspaces) ? e.workspaces = ie(N({}, this.raw.workspaces), {packages: this.workspaceDefinitions.map(({pattern: o}) => o)}) : e.workspaces = this.workspaceDefinitions.map(({pattern: o}) => o) : this.raw.workspaces && !Array.isArray(this.raw.workspaces) && Object.keys(this.raw.workspaces).length > 0 ? e.workspaces = this.raw.workspaces : delete e.workspaces;
            let i = [], n = [];
            for (let o of this.dependencies.values()) {
                let a = this.dependenciesMeta.get(Ot(o)), l = !1;
                if (r && a) {
                    let c = a.get(null);
                    c && c.optional && (l = !0)
                }
                l ? n.push(o) : i.push(o)
            }
            i.length > 0 ? e.dependencies = Object.assign({}, ...Yg(i).map(o => ({[Ot(o)]: o.range}))) : delete e.dependencies, n.length > 0 ? e.optionalDependencies = Object.assign({}, ...Yg(n).map(o => ({[Ot(o)]: o.range}))) : delete e.optionalDependencies, this.devDependencies.size > 0 ? e.devDependencies = Object.assign({}, ...Yg(this.devDependencies.values()).map(o => ({[Ot(o)]: o.range}))) : delete e.devDependencies, this.peerDependencies.size > 0 ? e.peerDependencies = Object.assign({}, ...Yg(this.peerDependencies.values()).map(o => ({[Ot(o)]: o.range}))) : delete e.peerDependencies, e.dependenciesMeta = {};
            for (let [o, a] of xn(this.dependenciesMeta.entries(), ([l, c]) => l)) for (let [l, c] of xn(a.entries(), ([u, g]) => u !== null ? `0${u}` : "1")) {
                let u = l !== null ? Pn(rr(An(o), l)) : o, g = N({}, c);
                r && l === null && delete g.optional, Object.keys(g).length !== 0 && (e.dependenciesMeta[u] = g)
            }
            if (Object.keys(e.dependenciesMeta).length === 0 && delete e.dependenciesMeta, this.peerDependenciesMeta.size > 0 ? e.peerDependenciesMeta = Object.assign({}, ...xn(this.peerDependenciesMeta.entries(), ([o, a]) => o).map(([o, a]) => ({[o]: a}))) : delete e.peerDependenciesMeta, this.resolutions.length > 0 ? e.resolutions = Object.assign({}, ...this.resolutions.map(({
                                                                                                                                                                                                                                                                                                                                                                                                pattern: o,
                                                                                                                                                                                                                                                                                                                                                                                                reference: a
                                                                                                                                                                                                                                                                                                                                                                                            }) => ({[nI(o)]: a}))) : delete e.resolutions, this.files !== null ? e.files = Array.from(this.files) : delete e.files, this.preferUnplugged !== null ? e.preferUnplugged = this.preferUnplugged : delete e.preferUnplugged, this.scripts !== null && this.scripts.size > 0) {
                (s = e.scripts) != null || (e.scripts = {});
                for (let o of Object.keys(e.scripts)) this.scripts.has(o) || delete e.scripts[o];
                for (let [o, a] of this.scripts.entries()) e.scripts[o] = a
            } else delete e.scripts;
            return e
        }
    }, At = ol;
    At.fileName = "package.json", At.allDependencies = ["dependencies", "devDependencies", "peerDependencies"], At.hardDependencies = ["dependencies", "devDependencies"];

    function E8(t) {
        let e = t.match(/^[ \t]+/m);
        return e ? e[0] : "  "
    }

    function I8(t) {
        return t.charCodeAt(0) === 65279 ? t.slice(1) : t
    }

    function un(t) {
        return t.replace(/\\/g, "/")
    }

    function mw(t, {yamlCompatibilityMode: e}) {
        return e ? JS(t) : typeof t == "undefined" || typeof t == "boolean" ? t : null
    }

    function y8(t, e) {
        let r = e.search(/[^!]/);
        if (r === -1) return "invalid";
        let i = r % 2 == 0 ? "" : "!", n = e.slice(r);
        return `${i}${t}=${n}`
    }

    function fx(t, e) {
        return e.length === 1 ? y8(t, e[0]) : `(${e.map(r => y8(t, r)).join(" | ")})`
    }

    var Z8 = ge(X8()), $8 = ge(require("stream")), e4 = ge(require("string_decoder"));
    var Ake = 15, ct = class extends Error {
        constructor(e, r, i) {
            super(r);
            this.reportExtra = i;
            this.reportCode = e
        }
    };

    function lke(t) {
        return typeof t.reportCode != "undefined"
    }

    var Ji = class {
        constructor() {
            this.reportedInfos = new Set;
            this.reportedWarnings = new Set;
            this.reportedErrors = new Set
        }

        static progressViaCounter(e) {
            let r = 0, i, n = new Promise(l => {
                i = l
            }), s = l => {
                let c = i;
                n = new Promise(u => {
                    i = u
                }), r = l, c()
            }, o = (l = 0) => {
                s(r + 1)
            }, a = async function* () {
                for (; r < e;) await n, yield{progress: r / e}
            }();
            return {
                [Symbol.asyncIterator]() {
                    return a
                }, hasProgress: !0, hasTitle: !1, set: s, tick: o
            }
        }

        static progressViaTitle() {
            let e, r, i = new Promise(o => {
                r = o
            }), n = (0, Z8.default)(o => {
                let a = r;
                i = new Promise(l => {
                    r = l
                }), e = o, a()
            }, 1e3 / Ake), s = async function* () {
                for (; ;) await i, yield{title: e}
            }();
            return {
                [Symbol.asyncIterator]() {
                    return s
                }, hasProgress: !1, hasTitle: !0, setTitle: n
            }
        }

        async startProgressPromise(e, r) {
            let i = this.reportProgress(e);
            try {
                return await r(e)
            } finally {
                i.stop()
            }
        }

        startProgressSync(e, r) {
            let i = this.reportProgress(e);
            try {
                return r(e)
            } finally {
                i.stop()
            }
        }

        reportInfoOnce(e, r, i) {
            var s;
            let n = i && i.key ? i.key : r;
            this.reportedInfos.has(n) || (this.reportedInfos.add(n), this.reportInfo(e, r), (s = i == null ? void 0 : i.reportExtra) == null || s.call(i, this))
        }

        reportWarningOnce(e, r, i) {
            var s;
            let n = i && i.key ? i.key : r;
            this.reportedWarnings.has(n) || (this.reportedWarnings.add(n), this.reportWarning(e, r), (s = i == null ? void 0 : i.reportExtra) == null || s.call(i, this))
        }

        reportErrorOnce(e, r, i) {
            var s;
            let n = i && i.key ? i.key : r;
            this.reportedErrors.has(n) || (this.reportedErrors.add(n), this.reportError(e, r), (s = i == null ? void 0 : i.reportExtra) == null || s.call(i, this))
        }

        reportExceptionOnce(e) {
            lke(e) ? this.reportErrorOnce(e.reportCode, e.message, {
                key: e,
                reportExtra: e.reportExtra
            }) : this.reportErrorOnce($.EXCEPTION, e.stack || e.message, {key: e})
        }

        createStreamReporter(e = null) {
            let r = new $8.PassThrough, i = new e4.StringDecoder, n = "";
            return r.on("data", s => {
                let o = i.write(s), a;
                do if (a = o.indexOf(`
`), a !== -1) {
                    let l = n + o.substring(0, a);
                    o = o.substring(a + 1), n = "", e !== null ? this.reportInfo(null, `${e} ${l}`) : this.reportInfo(null, l)
                } while (a !== -1);
                n += o
            }), r.on("end", () => {
                let s = i.end();
                s !== "" && (e !== null ? this.reportInfo(null, `${e} ${s}`) : this.reportInfo(null, s))
            }), r
        }
    };
    var wd = class {
        constructor(e) {
            this.fetchers = e
        }

        supports(e, r) {
            return !!this.tryFetcher(e, r)
        }

        getLocalPath(e, r) {
            return this.getFetcher(e, r).getLocalPath(e, r)
        }

        async fetch(e, r) {
            return await this.getFetcher(e, r).fetch(e, r)
        }

        tryFetcher(e, r) {
            let i = this.fetchers.find(n => n.supports(e, r));
            return i || null
        }

        getFetcher(e, r) {
            let i = this.fetchers.find(n => n.supports(e, r));
            if (!i) throw new ct($.FETCHER_NOT_FOUND, `${Bt(r.project.configuration, e)} isn't supported by any available fetcher`);
            return i
        }
    };
    var Bd = class {
        constructor(e) {
            this.resolvers = e.filter(r => r)
        }

        supportsDescriptor(e, r) {
            return !!this.tryResolverByDescriptor(e, r)
        }

        supportsLocator(e, r) {
            return !!this.tryResolverByLocator(e, r)
        }

        shouldPersistResolution(e, r) {
            return this.getResolverByLocator(e, r).shouldPersistResolution(e, r)
        }

        bindDescriptor(e, r, i) {
            return this.getResolverByDescriptor(e, i).bindDescriptor(e, r, i)
        }

        getResolutionDependencies(e, r) {
            return this.getResolverByDescriptor(e, r).getResolutionDependencies(e, r)
        }

        async getCandidates(e, r, i) {
            return await this.getResolverByDescriptor(e, i).getCandidates(e, r, i)
        }

        async getSatisfying(e, r, i) {
            return this.getResolverByDescriptor(e, i).getSatisfying(e, r, i)
        }

        async resolve(e, r) {
            return await this.getResolverByLocator(e, r).resolve(e, r)
        }

        tryResolverByDescriptor(e, r) {
            let i = this.resolvers.find(n => n.supportsDescriptor(e, r));
            return i || null
        }

        getResolverByDescriptor(e, r) {
            let i = this.resolvers.find(n => n.supportsDescriptor(e, r));
            if (!i) throw new Error(`${sr(r.project.configuration, e)} isn't supported by any available resolver`);
            return i
        }

        tryResolverByLocator(e, r) {
            let i = this.resolvers.find(n => n.supportsLocator(e, r));
            return i || null
        }

        getResolverByLocator(e, r) {
            let i = this.resolvers.find(n => n.supportsLocator(e, r));
            if (!i) throw new Error(`${Bt(r.project.configuration, e)} isn't supported by any available resolver`);
            return i
        }
    };
    var t4 = ge(ri());
    var qg = /^(?!v)[a-z0-9._-]+$/i, dx = class {
        supportsDescriptor(e, r) {
            return !!(ho(e.range) || qg.test(e.range))
        }

        supportsLocator(e, r) {
            return !!(t4.default.valid(e.reference) || qg.test(e.reference))
        }

        shouldPersistResolution(e, r) {
            return r.resolver.shouldPersistResolution(this.forwardLocator(e, r), r)
        }

        bindDescriptor(e, r, i) {
            return i.resolver.bindDescriptor(this.forwardDescriptor(e, i), r, i)
        }

        getResolutionDependencies(e, r) {
            return r.resolver.getResolutionDependencies(this.forwardDescriptor(e, r), r)
        }

        async getCandidates(e, r, i) {
            return await i.resolver.getCandidates(this.forwardDescriptor(e, i), r, i)
        }

        async getSatisfying(e, r, i) {
            return await i.resolver.getSatisfying(this.forwardDescriptor(e, i), r, i)
        }

        async resolve(e, r) {
            let i = await r.resolver.resolve(this.forwardLocator(e, r), r);
            return cd(i, e)
        }

        forwardDescriptor(e, r) {
            return rr(e, `${r.project.configuration.get("defaultProtocol")}${e.range}`)
        }

        forwardLocator(e, r) {
            return cn(e, `${r.project.configuration.get("defaultProtocol")}${e.reference}`)
        }
    };
    var bd = class {
        supports(e) {
            return !!e.reference.startsWith("virtual:")
        }

        getLocalPath(e, r) {
            let i = e.reference.indexOf("#");
            if (i === -1) throw new Error("Invalid virtual package reference");
            let n = e.reference.slice(i + 1), s = cn(e, n);
            return r.fetcher.getLocalPath(s, r)
        }

        async fetch(e, r) {
            let i = e.reference.indexOf("#");
            if (i === -1) throw new Error("Invalid virtual package reference");
            let n = e.reference.slice(i + 1), s = cn(e, n), o = await r.fetcher.fetch(s, r);
            return await this.ensureVirtualLink(e, o, r)
        }

        getLocatorFilename(e) {
            return jg(e)
        }

        async ensureVirtualLink(e, r, i) {
            let n = r.packageFs.getRealPath(), s = i.project.configuration.get("virtualFolder"),
                o = this.getLocatorFilename(e), a = Wr.makeVirtualPath(s, o, n),
                l = new Da(a, {baseFs: r.packageFs, pathUtils: x});
            return ie(N({}, r), {packageFs: l})
        }
    };
    var Jg = class {
        static isVirtualDescriptor(e) {
            return !!e.range.startsWith(Jg.protocol)
        }

        static isVirtualLocator(e) {
            return !!e.reference.startsWith(Jg.protocol)
        }

        supportsDescriptor(e, r) {
            return Jg.isVirtualDescriptor(e)
        }

        supportsLocator(e, r) {
            return Jg.isVirtualLocator(e)
        }

        shouldPersistResolution(e, r) {
            return !1
        }

        bindDescriptor(e, r, i) {
            throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')
        }

        getResolutionDependencies(e, r) {
            throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')
        }

        async getCandidates(e, r, i) {
            throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')
        }

        async getSatisfying(e, r, i) {
            throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')
        }

        async resolve(e, r) {
            throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')
        }
    }, Ew = Jg;
    Ew.protocol = "virtual:";
    var Qd = class {
        supports(e) {
            return !!e.reference.startsWith(oi.protocol)
        }

        getLocalPath(e, r) {
            return this.getWorkspace(e, r).cwd
        }

        async fetch(e, r) {
            let i = this.getWorkspace(e, r).cwd;
            return {packageFs: new _t(i), prefixPath: Ke.dot, localPath: i}
        }

        getWorkspace(e, r) {
            return r.project.getWorkspaceByCwd(e.reference.slice(oi.protocol.length))
        }
    };
    var Cx = {};
    ft(Cx, {getDefaultGlobalFolder: () => Ex, getHomeFolder: () => vd, isFolderInside: () => Ix});
    var mx = ge(require("os"));

    function Ex() {
        if (process.platform === "win32") {
            let t = H.toPortablePath(process.env.LOCALAPPDATA || H.join((0, mx.homedir)(), "AppData", "Local"));
            return x.resolve(t, "Yarn/Berry")
        }
        if (process.env.XDG_DATA_HOME) {
            let t = H.toPortablePath(process.env.XDG_DATA_HOME);
            return x.resolve(t, "yarn/berry")
        }
        return x.resolve(vd(), ".yarn/berry")
    }

    function vd() {
        return H.toPortablePath((0, mx.homedir)() || "/usr/local/share")
    }

    function Ix(t, e) {
        let r = x.relative(e, t);
        return r && !r.startsWith("..") && !x.isAbsolute(r)
    }

    var Wg = {};
    ft(Wg, {
        builtinModules: () => yx,
        getArchitecture: () => Sd,
        getArchitectureName: () => uke,
        getArchitectureSet: () => wx
    });
    var r4 = ge(require("module"));

    function yx() {
        return new Set(r4.default.builtinModules || Object.keys(process.binding("natives")))
    }

    function cke() {
        var i, n, s, o;
        if (process.platform === "win32") return null;
        let e = (s = ((n = (i = process.report) == null ? void 0 : i.getReport()) != null ? n : {}).sharedObjects) != null ? s : [],
            r = /\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;
        return (o = ed(e, a => {
            let l = a.match(r);
            if (!l) return ed.skip;
            if (l[1]) return "glibc";
            if (l[2]) return "musl";
            throw new Error("Assertion failed: Expected the libc variant to have been detected")
        })) != null ? o : null
    }

    var Iw, yw;

    function Sd() {
        return Iw = Iw != null ? Iw : {os: process.platform, cpu: process.arch, libc: cke()}
    }

    function uke(t = Sd()) {
        return t.libc ? `${t.os}-${t.cpu}-${t.libc}` : `${t.os}-${t.cpu}`
    }

    function wx() {
        let t = Sd();
        return yw = yw != null ? yw : {os: [t.os], cpu: [t.cpu], libc: t.libc ? [t.libc] : []}
    }

    var gke = new Set(["binFolder", "version", "flags", "profile", "gpg", "ignoreNode", "wrapOutput", "home", "confDir"]),
        Bw = "yarn_", bx = ".yarnrc.yml", Qx = "yarn.lock", fke = "********", ye;
    (function (u) {
        u.ANY = "ANY", u.BOOLEAN = "BOOLEAN", u.ABSOLUTE_PATH = "ABSOLUTE_PATH", u.LOCATOR = "LOCATOR", u.LOCATOR_LOOSE = "LOCATOR_LOOSE", u.NUMBER = "NUMBER", u.STRING = "STRING", u.SECRET = "SECRET", u.SHAPE = "SHAPE", u.MAP = "MAP"
    })(ye || (ye = {}));
    var Di = Ye, vx = {
        lastUpdateCheck: {
            description: "Last timestamp we checked whether new Yarn versions were available",
            type: ye.STRING,
            default: null
        },
        yarnPath: {
            description: "Path to the local executable that must be used over the global one",
            type: ye.ABSOLUTE_PATH,
            default: null
        },
        ignorePath: {
            description: "If true, the local executable will be ignored when using the global one",
            type: ye.BOOLEAN,
            default: !1
        },
        ignoreCwd: {description: "If true, the `--cwd` flag will be ignored", type: ye.BOOLEAN, default: !1},
        cacheKeyOverride: {
            description: "A global cache key override; used only for test purposes",
            type: ye.STRING,
            default: null
        },
        globalFolder: {
            description: "Folder where all system-global files are stored",
            type: ye.ABSOLUTE_PATH,
            default: Ex()
        },
        cacheFolder: {
            description: "Folder where the cache files must be written",
            type: ye.ABSOLUTE_PATH,
            default: "./.yarn/cache"
        },
        compressionLevel: {
            description: "Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",
            type: ye.NUMBER,
            values: ["mixed", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
            default: nc
        },
        virtualFolder: {
            description: "Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",
            type: ye.ABSOLUTE_PATH,
            default: "./.yarn/__virtual__"
        },
        lockfileFilename: {
            description: "Name of the files where the Yarn dependency tree entries must be stored",
            type: ye.STRING,
            default: Qx
        },
        installStatePath: {
            description: "Path of the file where the install state will be persisted",
            type: ye.ABSOLUTE_PATH,
            default: "./.yarn/install-state.gz"
        },
        immutablePatterns: {
            description: "Array of glob patterns; files matching them won't be allowed to change during immutable installs",
            type: ye.STRING,
            default: [],
            isArray: !0
        },
        rcFilename: {
            description: "Name of the files where the configuration can be found",
            type: ye.STRING,
            default: bw()
        },
        enableGlobalCache: {
            description: "If true, the system-wide cache folder will be used regardless of `cache-folder`",
            type: ye.BOOLEAN,
            default: !1
        },
        enableColors: {
            description: "If true, the CLI is allowed to use colors in its output",
            type: ye.BOOLEAN,
            default: Ny,
            defaultText: "<dynamic>"
        },
        enableHyperlinks: {
            description: "If true, the CLI is allowed to use hyperlinks in its output",
            type: ye.BOOLEAN,
            default: VS,
            defaultText: "<dynamic>"
        },
        enableInlineBuilds: {
            description: "If true, the CLI will print the build output on the command line",
            type: ye.BOOLEAN,
            default: ww.isCI,
            defaultText: "<dynamic>"
        },
        enableMessageNames: {
            description: "If true, the CLI will prefix most messages with codes suitable for search engines",
            type: ye.BOOLEAN,
            default: !0
        },
        enableProgressBars: {
            description: "If true, the CLI is allowed to show a progress bar for long-running events",
            type: ye.BOOLEAN,
            default: !ww.isCI,
            defaultText: "<dynamic>"
        },
        enableTimers: {
            description: "If true, the CLI is allowed to print the time spent executing commands",
            type: ye.BOOLEAN,
            default: !0
        },
        preferAggregateCacheInfo: {
            description: "If true, the CLI will only print a one-line report of any cache changes",
            type: ye.BOOLEAN,
            default: ww.isCI
        },
        preferInteractive: {
            description: "If true, the CLI will automatically use the interactive mode when called from a TTY",
            type: ye.BOOLEAN,
            default: !1
        },
        preferTruncatedLines: {
            description: "If true, the CLI will truncate lines that would go beyond the size of the terminal",
            type: ye.BOOLEAN,
            default: !1
        },
        progressBarStyle: {
            description: "Which style of progress bar should be used (only when progress bars are enabled)",
            type: ye.STRING,
            default: void 0,
            defaultText: "<dynamic>"
        },
        defaultLanguageName: {
            description: "Default language mode that should be used when a package doesn't offer any insight",
            type: ye.STRING,
            default: "node"
        },
        defaultProtocol: {
            description: "Default resolution protocol used when resolving pure semver and tag ranges",
            type: ye.STRING,
            default: "npm:"
        },
        enableTransparentWorkspaces: {
            description: "If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",
            type: ye.BOOLEAN,
            default: !0
        },
        supportedArchitectures: {
            description: "Architectures that Yarn will fetch and inject into the resolver",
            type: ye.SHAPE,
            properties: {
                os: {
                    description: "Array of supported process.platform strings, or null to target them all",
                    type: ye.STRING,
                    isArray: !0,
                    isNullable: !0,
                    default: ["current"]
                },
                cpu: {
                    description: "Array of supported process.arch strings, or null to target them all",
                    type: ye.STRING,
                    isArray: !0,
                    isNullable: !0,
                    default: ["current"]
                },
                libc: {
                    description: "Array of supported libc libraries, or null to target them all",
                    type: ye.STRING,
                    isArray: !0,
                    isNullable: !0,
                    default: ["current"]
                }
            }
        },
        enableMirror: {
            description: "If true, the downloaded packages will be retrieved and stored in both the local and global folders",
            type: ye.BOOLEAN,
            default: !0
        },
        enableNetwork: {
            description: "If false, the package manager will refuse to use the network if required to",
            type: ye.BOOLEAN,
            default: !0
        },
        httpProxy: {
            description: "URL of the http proxy that must be used for outgoing http requests",
            type: ye.STRING,
            default: null
        },
        httpsProxy: {
            description: "URL of the http proxy that must be used for outgoing https requests",
            type: ye.STRING,
            default: null
        },
        unsafeHttpWhitelist: {
            description: "List of the hostnames for which http queries are allowed (glob patterns are supported)",
            type: ye.STRING,
            default: [],
            isArray: !0
        },
        httpTimeout: {description: "Timeout of each http request in milliseconds", type: ye.NUMBER, default: 6e4},
        httpRetry: {description: "Retry times on http failure", type: ye.NUMBER, default: 3},
        networkConcurrency: {description: "Maximal number of concurrent requests", type: ye.NUMBER, default: 50},
        networkSettings: {
            description: "Network settings per hostname (glob patterns are supported)",
            type: ye.MAP,
            valueDefinition: {
                description: "",
                type: ye.SHAPE,
                properties: {
                    caFilePath: {
                        description: "Path to file containing one or multiple Certificate Authority signing certificates",
                        type: ye.ABSOLUTE_PATH,
                        default: null
                    },
                    enableNetwork: {
                        description: "If false, the package manager will refuse to use the network if required to",
                        type: ye.BOOLEAN,
                        default: null
                    },
                    httpProxy: {
                        description: "URL of the http proxy that must be used for outgoing http requests",
                        type: ye.STRING,
                        default: null
                    },
                    httpsProxy: {
                        description: "URL of the http proxy that must be used for outgoing https requests",
                        type: ye.STRING,
                        default: null
                    },
                    httpsKeyFilePath: {
                        description: "Path to file containing private key in PEM format",
                        type: ye.ABSOLUTE_PATH,
                        default: null
                    },
                    httpsCertFilePath: {
                        description: "Path to file containing certificate chain in PEM format",
                        type: ye.ABSOLUTE_PATH,
                        default: null
                    }
                }
            }
        },
        caFilePath: {
            description: "A path to a file containing one or multiple Certificate Authority signing certificates",
            type: ye.ABSOLUTE_PATH,
            default: null
        },
        httpsKeyFilePath: {
            description: "Path to file containing private key in PEM format",
            type: ye.ABSOLUTE_PATH,
            default: null
        },
        httpsCertFilePath: {
            description: "Path to file containing certificate chain in PEM format",
            type: ye.ABSOLUTE_PATH,
            default: null
        },
        enableStrictSsl: {
            description: "If false, SSL certificate errors will be ignored",
            type: ye.BOOLEAN,
            default: !0
        },
        logFilters: {
            description: "Overrides for log levels",
            type: ye.SHAPE,
            isArray: !0,
            concatenateValues: !0,
            properties: {
                code: {
                    description: "Code of the messages covered by this override",
                    type: ye.STRING,
                    default: void 0
                },
                text: {description: "Code of the texts covered by this override", type: ye.STRING, default: void 0},
                pattern: {
                    description: "Code of the patterns covered by this override",
                    type: ye.STRING,
                    default: void 0
                },
                level: {
                    description: "Log level override, set to null to remove override",
                    type: ye.STRING,
                    values: Object.values(fo),
                    isNullable: !0,
                    default: void 0
                }
            }
        },
        enableTelemetry: {
            description: "If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",
            type: ye.BOOLEAN,
            default: !0
        },
        telemetryInterval: {
            description: "Minimal amount of time between two telemetry uploads, in days",
            type: ye.NUMBER,
            default: 7
        },
        telemetryUserId: {
            description: "If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",
            type: ye.STRING,
            default: null
        },
        enableScripts: {
            description: "If true, packages are allowed to have install scripts by default",
            type: ye.BOOLEAN,
            default: !0
        },
        enableStrictSettings: {
            description: "If true, unknown settings will cause Yarn to abort",
            type: ye.BOOLEAN,
            default: !0
        },
        enableImmutableCache: {
            description: "If true, the cache is reputed immutable and actions that would modify it will throw",
            type: ye.BOOLEAN,
            default: !1
        },
        checksumBehavior: {
            description: "Enumeration defining what to do when a checksum doesn't match expectations",
            type: ye.STRING,
            default: "throw"
        },
        packageExtensions: {
            description: "Map of package corrections to apply on the dependency tree",
            type: ye.MAP,
            valueDefinition: {
                description: "The extension that will be applied to any package whose version matches the specified range",
                type: ye.SHAPE,
                properties: {
                    dependencies: {
                        description: "The set of dependencies that must be made available to the current package in order for it to work properly",
                        type: ye.MAP,
                        valueDefinition: {description: "A range", type: ye.STRING}
                    },
                    peerDependencies: {
                        description: "Inherited dependencies - the consumer of the package will be tasked to provide them",
                        type: ye.MAP,
                        valueDefinition: {description: "A semver range", type: ye.STRING}
                    },
                    peerDependenciesMeta: {
                        description: "Extra information related to the dependencies listed in the peerDependencies field",
                        type: ye.MAP,
                        valueDefinition: {
                            description: "The peerDependency meta",
                            type: ye.SHAPE,
                            properties: {
                                optional: {
                                    description: "If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",
                                    type: ye.BOOLEAN,
                                    default: !1
                                }
                            }
                        }
                    }
                }
            }
        }
    };

    function kx(t, e, r, i, n) {
        if (i.isArray || i.type === ye.ANY && Array.isArray(r)) return Array.isArray(r) ? r.map((s, o) => Sx(t, `${e}[${o}]`, s, i, n)) : String(r).split(/,/).map(s => Sx(t, e, s, i, n));
        if (Array.isArray(r)) throw new Error(`Non-array configuration settings "${e}" cannot be an array`);
        return Sx(t, e, r, i, n)
    }

    function Sx(t, e, r, i, n) {
        var a;
        switch (i.type) {
            case ye.ANY:
                return r;
            case ye.SHAPE:
                return hke(t, e, r, i, n);
            case ye.MAP:
                return pke(t, e, r, i, n)
        }
        if (r === null && !i.isNullable && i.default !== null) throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);
        if ((a = i.values) == null ? void 0 : a.includes(r)) return r;
        let o = (() => {
            if (i.type === ye.BOOLEAN && typeof r != "string") return rd(r);
            if (typeof r != "string") throw new Error(`Expected value (${r}) to be a string`);
            let l = qS(r, {env: process.env});
            switch (i.type) {
                case ye.ABSOLUTE_PATH:
                    return x.resolve(n, H.toPortablePath(l));
                case ye.LOCATOR_LOOSE:
                    return Kc(l, !1);
                case ye.NUMBER:
                    return parseInt(l);
                case ye.LOCATOR:
                    return Kc(l);
                case ye.BOOLEAN:
                    return rd(l);
                default:
                    return l
            }
        })();
        if (i.values && !i.values.includes(o)) throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);
        return o
    }

    function hke(t, e, r, i, n) {
        if (typeof r != "object" || Array.isArray(r)) throw new Pe(`Object configuration settings "${e}" must be an object`);
        let s = xx(t, i, {ignoreArrays: !0});
        if (r === null) return s;
        for (let [o, a] of Object.entries(r)) {
            let l = `${e}.${o}`;
            if (!i.properties[o]) throw new Pe(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);
            s.set(o, kx(t, l, a, i.properties[o], n))
        }
        return s
    }

    function pke(t, e, r, i, n) {
        let s = new Map;
        if (typeof r != "object" || Array.isArray(r)) throw new Pe(`Map configuration settings "${e}" must be an object`);
        if (r === null) return s;
        for (let [o, a] of Object.entries(r)) {
            let l = i.normalizeKeys ? i.normalizeKeys(o) : o, c = `${e}['${l}']`, u = i.valueDefinition;
            s.set(l, kx(t, c, a, u, n))
        }
        return s
    }

    function xx(t, e, {ignoreArrays: r = !1} = {}) {
        switch (e.type) {
            case ye.SHAPE: {
                if (e.isArray && !r) return [];
                let i = new Map;
                for (let [n, s] of Object.entries(e.properties)) i.set(n, xx(t, s));
                return i
            }
                break;
            case ye.MAP:
                return e.isArray && !r ? [] : new Map;
            case ye.ABSOLUTE_PATH:
                return e.default === null ? null : t.projectCwd === null ? x.isAbsolute(e.default) ? x.normalize(e.default) : e.isNullable ? null : void 0 : Array.isArray(e.default) ? e.default.map(i => x.resolve(t.projectCwd, i)) : x.resolve(t.projectCwd, e.default);
            default:
                return e.default
        }
    }

    function Qw(t, e, r) {
        if (e.type === ye.SECRET && typeof t == "string" && r.hideSecrets) return fke;
        if (e.type === ye.ABSOLUTE_PATH && typeof t == "string" && r.getNativePaths) return H.fromPortablePath(t);
        if (e.isArray && Array.isArray(t)) {
            let i = [];
            for (let n of t) i.push(Qw(n, e, r));
            return i
        }
        if (e.type === ye.MAP && t instanceof Map) {
            let i = new Map;
            for (let [n, s] of t.entries()) i.set(n, Qw(s, e.valueDefinition, r));
            return i
        }
        if (e.type === ye.SHAPE && t instanceof Map) {
            let i = new Map;
            for (let [n, s] of t.entries()) {
                let o = e.properties[n];
                i.set(n, Qw(s, o, r))
            }
            return i
        }
        return t
    }

    function dke() {
        let t = {};
        for (let [e, r] of Object.entries(process.env)) e = e.toLowerCase(), !!e.startsWith(Bw) && (e = (0, i4.default)(e.slice(Bw.length)), t[e] = r);
        return t
    }

    function bw() {
        let t = `${Bw}rc_filename`;
        for (let [e, r] of Object.entries(process.env)) if (e.toLowerCase() === t && typeof r == "string") return r;
        return bx
    }

    var al;
    (function (i) {
        i[i.LOCKFILE = 0] = "LOCKFILE", i[i.MANIFEST = 1] = "MANIFEST", i[i.NONE = 2] = "NONE"
    })(al || (al = {}));
    var Za = class {
        constructor(e) {
            this.projectCwd = null;
            this.plugins = new Map;
            this.settings = new Map;
            this.values = new Map;
            this.sources = new Map;
            this.invalid = new Map;
            this.packageExtensions = new Map;
            this.limits = new Map;
            this.startingCwd = e
        }

        static create(e, r, i) {
            let n = new Za(e);
            typeof r != "undefined" && !(r instanceof Map) && (n.projectCwd = r), n.importSettings(vx);
            let s = typeof i != "undefined" ? i : r instanceof Map ? r : new Map;
            for (let [o, a] of s) n.activatePlugin(o, a);
            return n
        }

        static async find(e, r, {lookup: i = 0, strict: n = !0, usePath: s = !1, useRc: o = !0} = {}) {
            let a = dke();
            delete a.rcFilename;
            let l = await Za.findRcFiles(e), c = await Za.findHomeRcFile();
            if (c) {
                let b = l.find(S => S.path === c.path);
                b ? b.strict = !1 : l.push(ie(N({}, c), {strict: !1}))
            }
            let u = ({ignoreCwd: b, yarnPath: S, ignorePath: k, lockfileFilename: T}) => ({
                ignoreCwd: b,
                yarnPath: S,
                ignorePath: k,
                lockfileFilename: T
            }), g = j => {
                var Z = j, {ignoreCwd: b, yarnPath: S, ignorePath: k, lockfileFilename: T} = Z,
                    Y = Tr(Z, ["ignoreCwd", "yarnPath", "ignorePath", "lockfileFilename"]);
                return Y
            }, f = new Za(e);
            f.importSettings(u(vx)), f.useWithSource("<environment>", u(a), e, {strict: !1});
            for (let {path: b, cwd: S, data: k} of l) f.useWithSource(b, u(k), S, {strict: !1});
            if (s) {
                let b = f.get("yarnPath"), S = f.get("ignorePath");
                if (b !== null && !S) return f
            }
            let h = f.get("lockfileFilename"), p;
            switch (i) {
                case 0:
                    p = await Za.findProjectCwd(e, h);
                    break;
                case 1:
                    p = await Za.findProjectCwd(e, null);
                    break;
                case 2:
                    K.existsSync(x.join(e, "package.json")) ? p = x.resolve(e) : p = null;
                    break
            }
            f.startingCwd = e, f.projectCwd = p, f.importSettings(g(vx));
            let m = new Map([["@@core", h8]]), y = b => "default" in b ? b.default : b;
            if (r !== null) {
                for (let T of r.plugins.keys()) m.set(T, y(r.modules.get(T)));
                let b = new Map;
                for (let T of yx()) b.set(T, () => Ng(T));
                for (let [T, Y] of r.modules) b.set(T, () => Y);
                let S = new Set, k = async (T, Y) => {
                    let {factory: j, name: Z} = Ng(T);
                    if (S.has(Z)) return;
                    let J = new Map(b), re = A => {
                        if (J.has(A)) return J.get(A)();
                        throw new Pe(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)
                    }, ee = await Rg(async () => y(await j(re)), A => `${A} (when initializing ${Z}, defined in ${Y})`);
                    b.set(Z, () => ee), S.add(Z), m.set(Z, ee)
                };
                if (a.plugins) for (let T of a.plugins.split(";")) {
                    let Y = x.resolve(e, H.toPortablePath(T));
                    await k(Y, "<environment>")
                }
                for (let {
                    path: T,
                    cwd: Y,
                    data: j
                } of l) if (!!o && !!Array.isArray(j.plugins)) for (let Z of j.plugins) {
                    let J = typeof Z != "string" ? Z.path : Z, re = x.resolve(Y, H.toPortablePath(J));
                    await k(re, T)
                }
            }
            for (let [b, S] of m) f.activatePlugin(b, S);
            f.useWithSource("<environment>", g(a), e, {strict: n});
            for (let {
                path: b,
                cwd: S,
                data: k,
                strict: T
            } of l) f.useWithSource(b, g(k), S, {strict: T != null ? T : n});
            return f.get("enableGlobalCache") && (f.values.set("cacheFolder", `${f.get("globalFolder")}/cache`), f.sources.set("cacheFolder", "<internal>")), await f.refreshPackageExtensions(), f
        }

        static async findRcFiles(e) {
            let r = bw(), i = [], n = e, s = null;
            for (; n !== s;) {
                s = n;
                let o = x.join(s, r);
                if (K.existsSync(o)) {
                    let a = await K.readFilePromise(o, "utf8"), l;
                    try {
                        l = Qi(a)
                    } catch (c) {
                        let u = "";
                        throw a.match(/^\s+(?!-)[^:]+\s+\S+/m) && (u = " (in particular, make sure you list the colons after each key name)"), new Pe(`Parse error when loading ${o}; please check it's proper Yaml${u}`)
                    }
                    i.push({path: o, cwd: s, data: l})
                }
                n = x.dirname(s)
            }
            return i
        }

        static async findHomeRcFile() {
            let e = bw(), r = vd(), i = x.join(r, e);
            if (K.existsSync(i)) {
                let n = await K.readFilePromise(i, "utf8"), s = Qi(n);
                return {path: i, cwd: r, data: s}
            }
            return null
        }

        static async findProjectCwd(e, r) {
            let i = null, n = e, s = null;
            for (; n !== s;) {
                if (s = n, K.existsSync(x.join(s, "package.json")) && (i = s), r !== null) {
                    if (K.existsSync(x.join(s, r))) {
                        i = s;
                        break
                    }
                } else if (i !== null) break;
                n = x.dirname(s)
            }
            return i
        }

        static async updateConfiguration(e, r) {
            let i = bw(), n = x.join(e, i), s = K.existsSync(n) ? Qi(await K.readFilePromise(n, "utf8")) : {}, o = !1,
                a;
            if (typeof r == "function") {
                try {
                    a = r(s)
                } catch {
                    a = r({})
                }
                if (a === s) return
            } else {
                a = s;
                for (let l of Object.keys(r)) {
                    let c = s[l], u = r[l], g;
                    if (typeof u == "function") try {
                        g = u(c)
                    } catch {
                        g = u(void 0)
                    } else g = u;
                    c !== g && (a[l] = g, o = !0)
                }
                if (!o) return
            }
            await K.changeFilePromise(n, La(a), {automaticNewlines: !0})
        }

        static async updateHomeConfiguration(e) {
            let r = vd();
            return await Za.updateConfiguration(r, e)
        }

        activatePlugin(e, r) {
            this.plugins.set(e, r), typeof r.configuration != "undefined" && this.importSettings(r.configuration)
        }

        importSettings(e) {
            for (let [r, i] of Object.entries(e)) if (i != null) {
                if (this.settings.has(r)) throw new Error(`Cannot redefine settings "${r}"`);
                this.settings.set(r, i), this.values.set(r, xx(this, i))
            }
        }

        useWithSource(e, r, i, n) {
            try {
                this.use(e, r, i, n)
            } catch (s) {
                throw s.message += ` (in ${et(this, e, Ye.PATH)})`, s
            }
        }

        use(e, r, i, {strict: n = !0, overwrite: s = !1} = {}) {
            n = n && this.get("enableStrictSettings");
            for (let o of ["enableStrictSettings", ...Object.keys(r)]) {
                if (typeof r[o] == "undefined" || o === "plugins" || e === "<environment>" && gke.has(o)) continue;
                if (o === "rcFilename") throw new Pe(`The rcFilename settings can only be set via ${`${Bw}RC_FILENAME`.toUpperCase()}, not via a rc file`);
                let l = this.settings.get(o);
                if (!l) {
                    if (n) throw new Pe(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);
                    this.invalid.set(o, e);
                    continue
                }
                if (this.sources.has(o) && !(s || l.type === ye.MAP || l.isArray && l.concatenateValues)) continue;
                let c;
                try {
                    c = kx(this, o, r[o], l, i)
                } catch (u) {
                    throw u.message += ` in ${et(this, e, Ye.PATH)}`, u
                }
                if (o === "enableStrictSettings" && e !== "<environment>") {
                    n = c;
                    continue
                }
                if (l.type === ye.MAP) {
                    let u = this.values.get(o);
                    this.values.set(o, new Map(s ? [...u, ...c] : [...c, ...u])), this.sources.set(o, `${this.sources.get(o)}, ${e}`)
                } else if (l.isArray && l.concatenateValues) {
                    let u = this.values.get(o);
                    this.values.set(o, s ? [...u, ...c] : [...c, ...u]), this.sources.set(o, `${this.sources.get(o)}, ${e}`)
                } else this.values.set(o, c), this.sources.set(o, e)
            }
        }

        get(e) {
            if (!this.values.has(e)) throw new Error(`Invalid configuration key "${e}"`);
            return this.values.get(e)
        }

        getSpecial(e, {hideSecrets: r = !1, getNativePaths: i = !1}) {
            let n = this.get(e), s = this.settings.get(e);
            if (typeof s == "undefined") throw new Pe(`Couldn't find a configuration settings named "${e}"`);
            return Qw(n, s, {hideSecrets: r, getNativePaths: i})
        }

        getSubprocessStreams(e, {header: r, prefix: i, report: n}) {
            let s, o, a = K.createWriteStream(e);
            if (this.get("enableInlineBuilds")) {
                let l = n.createStreamReporter(`${i} ${et(this, "STDOUT", "green")}`),
                    c = n.createStreamReporter(`${i} ${et(this, "STDERR", "red")}`);
                s = new Bx.PassThrough, s.pipe(l), s.pipe(a), o = new Bx.PassThrough, o.pipe(c), o.pipe(a)
            } else s = a, o = a, typeof r != "undefined" && s.write(`${r}
`);
            return {stdout: s, stderr: o}
        }

        makeResolver() {
            let e = [];
            for (let r of this.plugins.values()) for (let i of r.resolvers || []) e.push(new i);
            return new Bd([new Ew, new oi, new dx, ...e])
        }

        makeFetcher() {
            let e = [];
            for (let r of this.plugins.values()) for (let i of r.fetchers || []) e.push(new i);
            return new wd([new bd, new Qd, ...e])
        }

        getLinkers() {
            let e = [];
            for (let r of this.plugins.values()) for (let i of r.linkers || []) e.push(new i);
            return e
        }

        getSupportedArchitectures() {
            let e = Sd(), r = this.get("supportedArchitectures"), i = r.get("os");
            i !== null && (i = i.map(o => o === "current" ? e.os : o));
            let n = r.get("cpu");
            n !== null && (n = n.map(o => o === "current" ? e.cpu : o));
            let s = r.get("libc");
            return s !== null && (s = qo(s, o => {
                var a;
                return o === "current" ? (a = e.libc) != null ? a : qo.skip : o
            })), {os: i, cpu: n, libc: s}
        }

        async refreshPackageExtensions() {
            this.packageExtensions = new Map;
            let e = this.packageExtensions, r = (i, n, {userProvided: s = !1} = {}) => {
                if (!ho(i.range)) throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");
                let o = new At;
                o.load(n, {yamlCompatibilityMode: !0});
                let a = Pg(e, i.identHash), l = [];
                a.push([i.range, l]);
                let c = {status: qi.Inactive, userProvided: s, parentDescriptor: i};
                for (let u of o.dependencies.values()) l.push(ie(N({}, c), {type: yi.Dependency, descriptor: u}));
                for (let u of o.peerDependencies.values()) l.push(ie(N({}, c), {
                    type: yi.PeerDependency,
                    descriptor: u
                }));
                for (let [u, g] of o.peerDependenciesMeta) for (let [f, h] of Object.entries(g)) l.push(ie(N({}, c), {
                    type: yi.PeerDependencyMeta,
                    selector: u,
                    key: f,
                    value: h
                }))
            };
            await this.triggerHook(i => i.registerPackageExtensions, this, r);
            for (let [i, n] of this.get("packageExtensions")) r(sl(i, !0), Fy(n), {userProvided: !0})
        }

        normalizePackage(e) {
            let r = ud(e);
            if (this.packageExtensions == null) throw new Error("refreshPackageExtensions has to be called before normalizing packages");
            let i = this.packageExtensions.get(e.identHash);
            if (typeof i != "undefined") {
                let s = e.version;
                if (s !== null) {
                    for (let [o, a] of i) if (!!Uc(s, o)) for (let l of a) switch (l.status === qi.Inactive && (l.status = qi.Redundant), l.type) {
                        case yi.Dependency:
                            typeof r.dependencies.get(l.descriptor.identHash) == "undefined" && (l.status = qi.Active, r.dependencies.set(l.descriptor.identHash, l.descriptor));
                            break;
                        case yi.PeerDependency:
                            typeof r.peerDependencies.get(l.descriptor.identHash) == "undefined" && (l.status = qi.Active, r.peerDependencies.set(l.descriptor.identHash, l.descriptor));
                            break;
                        case yi.PeerDependencyMeta: {
                            let c = r.peerDependenciesMeta.get(l.selector);
                            (typeof c == "undefined" || !Object.prototype.hasOwnProperty.call(c, l.key) || c[l.key] !== l.value) && (l.status = qi.Active, Ja(r.peerDependenciesMeta, l.selector, () => ({}))[l.key] = l.value)
                        }
                            break;
                        default:
                            GS(l);
                            break
                    }
                }
            }
            let n = s => s.scope ? `${s.scope}__${s.name}` : `${s.name}`;
            for (let s of r.peerDependenciesMeta.keys()) {
                let o = An(s);
                r.peerDependencies.has(o.identHash) || r.peerDependencies.set(o.identHash, rr(o, "*"))
            }
            for (let s of r.peerDependencies.values()) {
                if (s.scope === "types") continue;
                let o = n(s), a = Vo("types", o), l = Ot(a);
                r.peerDependencies.has(a.identHash) || r.peerDependenciesMeta.has(l) || (r.peerDependencies.set(a.identHash, rr(a, "*")), r.peerDependenciesMeta.set(l, {optional: !0}))
            }
            return r.dependencies = new Map(xn(r.dependencies, ([, s]) => Pn(s))), r.peerDependencies = new Map(xn(r.peerDependencies, ([, s]) => Pn(s))), r
        }

        getLimit(e) {
            return Ja(this.limits, e, () => (0, n4.default)(this.get(e)))
        }

        async triggerHook(e, ...r) {
            for (let i of this.plugins.values()) {
                let n = i.hooks;
                if (!n) continue;
                let s = e(n);
                !s || await s(...r)
            }
        }

        async triggerMultipleHooks(e, r) {
            for (let i of r) await this.triggerHook(e, ...i)
        }

        async reduceHook(e, r, ...i) {
            let n = r;
            for (let s of this.plugins.values()) {
                let o = s.hooks;
                if (!o) continue;
                let a = e(o);
                !a || (n = await a(n, ...i))
            }
            return n
        }

        async firstHook(e, ...r) {
            for (let i of this.plugins.values()) {
                let n = i.hooks;
                if (!n) continue;
                let s = e(n);
                if (!s) continue;
                let o = await s(...r);
                if (typeof o != "undefined") return o
            }
            return null
        }
    }, we = Za;
    we.telemetry = null;
    var ns;
    (function (i) {
        i[i.Never = 0] = "Never", i[i.ErrorCode = 1] = "ErrorCode", i[i.Always = 2] = "Always"
    })(ns || (ns = {}));
    var vw = class extends ct {
        constructor({fileName: e, code: r, signal: i}) {
            let n = we.create(x.cwd()), s = et(n, e, Ye.PATH);
            super($.EXCEPTION, `Child ${s} reported an error`, o => {
                Cke(r, i, {configuration: n, report: o})
            });
            this.code = Dx(r, i)
        }
    }, Rx = class extends vw {
        constructor({fileName: e, code: r, signal: i, stdout: n, stderr: s}) {
            super({fileName: e, code: r, signal: i});
            this.stdout = n, this.stderr = s
        }
    };

    function jc(t) {
        return t !== null && typeof t.fd == "number"
    }

    var Yc = new Set;

    function Fx() {
    }

    function Nx() {
        for (let t of Yc) t.kill()
    }

    async function $o(t, e, {
        cwd: r,
        env: i = process.env,
        strict: n = !1,
        stdin: s = null,
        stdout: o,
        stderr: a,
        end: l = 2
    }) {
        let c = ["pipe", "pipe", "pipe"];
        s === null ? c[0] = "ignore" : jc(s) && (c[0] = s), jc(o) && (c[1] = o), jc(a) && (c[2] = a);
        let u = (0, Px.default)(t, e, {
            cwd: H.fromPortablePath(r),
            env: ie(N({}, i), {PWD: H.fromPortablePath(r)}),
            stdio: c
        });
        Yc.add(u), Yc.size === 1 && (process.on("SIGINT", Fx), process.on("SIGTERM", Nx)), !jc(s) && s !== null && s.pipe(u.stdin), jc(o) || u.stdout.pipe(o, {end: !1}), jc(a) || u.stderr.pipe(a, {end: !1});
        let g = () => {
            for (let f of new Set([o, a])) jc(f) || f.end()
        };
        return new Promise((f, h) => {
            u.on("error", p => {
                Yc.delete(u), Yc.size === 0 && (process.off("SIGINT", Fx), process.off("SIGTERM", Nx)), (l === 2 || l === 1) && g(), h(p)
            }), u.on("close", (p, m) => {
                Yc.delete(u), Yc.size === 0 && (process.off("SIGINT", Fx), process.off("SIGTERM", Nx)), (l === 2 || l === 1 && p > 0) && g(), p === 0 || !n ? f({code: Dx(p, m)}) : h(new vw({
                    fileName: t,
                    code: p,
                    signal: m
                }))
            })
        })
    }

    async function mke(t, e, {cwd: r, env: i = process.env, encoding: n = "utf8", strict: s = !1}) {
        let o = ["ignore", "pipe", "pipe"], a = [], l = [], c = H.fromPortablePath(r);
        typeof i.PWD != "undefined" && (i = ie(N({}, i), {PWD: c}));
        let u = (0, Px.default)(t, e, {cwd: c, env: i, stdio: o});
        return u.stdout.on("data", g => {
            a.push(g)
        }), u.stderr.on("data", g => {
            l.push(g)
        }), await new Promise((g, f) => {
            u.on("error", h => {
                let p = we.create(r), m = et(p, t, Ye.PATH);
                f(new ct($.EXCEPTION, `Process ${m} failed to spawn`, y => {
                    y.reportError($.EXCEPTION, `  ${Jo(p, {label: "Thrown Error", value: go(Ye.NO_HINT, h.message)})}`)
                }))
            }), u.on("close", (h, p) => {
                let m = n === "buffer" ? Buffer.concat(a) : Buffer.concat(a).toString(n),
                    y = n === "buffer" ? Buffer.concat(l) : Buffer.concat(l).toString(n);
                h === 0 || !s ? g({code: Dx(h, p), stdout: m, stderr: y}) : f(new Rx({
                    fileName: t,
                    code: h,
                    signal: p,
                    stdout: m,
                    stderr: y
                }))
            })
        })
    }

    var Eke = new Map([["SIGINT", 2], ["SIGQUIT", 3], ["SIGKILL", 9], ["SIGTERM", 15]]);

    function Dx(t, e) {
        let r = Eke.get(e);
        return typeof r != "undefined" ? 128 + r : t != null ? t : 1
    }

    function Cke(t, e, {configuration: r, report: i}) {
        i.reportError($.EXCEPTION, `  ${Jo(r, t !== null ? {
            label: "Exit Code",
            value: go(Ye.NUMBER, t)
        } : {label: "Exit Signal", value: go(Ye.CODE, e)})}`)
    }

    var ir = {};
    ft(ir, {
        Method: () => fl,
        RequestError: () => j5.RequestError,
        del: () => DDe,
        get: () => xDe,
        getNetworkSettings: () => W5,
        post: () => $P,
        put: () => PDe,
        request: () => Md
    });
    var U5 = ge(Yw()), H5 = ge(require("https")), G5 = ge(require("http")), VP = ge(rs()), XP = ge(K5()),
        qw = ge(require("url"));
    var j5 = ge(Yw()), Y5 = new Map, q5 = new Map, QDe = new G5.Agent({keepAlive: !0}),
        vDe = new H5.Agent({keepAlive: !0});

    function J5(t) {
        let e = new qw.URL(t), r = {host: e.hostname, headers: {}};
        return e.port && (r.port = Number(e.port)), {proxy: r}
    }

    async function ZP(t) {
        return Ja(q5, t, () => K.readFilePromise(t).then(e => (q5.set(t, e), e)))
    }

    function SDe({statusCode: t, statusMessage: e}, r) {
        let i = et(r, t, Ye.NUMBER), n = `https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;
        return Lg(r, `${i}${e ? ` (${e})` : ""}`, n)
    }

    async function Jw(t, {configuration: e, customErrorMessage: r}) {
        var i, n;
        try {
            return await t
        } catch (s) {
            if (s.name !== "HTTPError") throw s;
            let o = (n = r == null ? void 0 : r(s)) != null ? n : (i = s.response.body) == null ? void 0 : i.error;
            o == null && (s.message.startsWith("Response code") ? o = "The remote server failed to provide the requested resource" : o = s.message), s instanceof U5.TimeoutError && s.event === "socket" && (o += `(can be increased via ${et(e, "httpTimeout", Ye.SETTING)})`);
            let a = new ct($.NETWORK_ERROR, o, l => {
                s.response && l.reportError($.NETWORK_ERROR, `  ${Jo(e, {
                    label: "Response Code",
                    value: go(Ye.NO_HINT, SDe(s.response, e))
                })}`), s.request && (l.reportError($.NETWORK_ERROR, `  ${Jo(e, {
                    label: "Request Method",
                    value: go(Ye.NO_HINT, s.request.options.method)
                })}`), l.reportError($.NETWORK_ERROR, `  ${Jo(e, {
                    label: "Request URL",
                    value: go(Ye.URL, s.request.requestUrl)
                })}`)), s.request.redirects.length > 0 && l.reportError($.NETWORK_ERROR, `  ${Jo(e, {
                    label: "Request Redirects",
                    value: go(Ye.NO_HINT, ZS(e, s.request.redirects, Ye.URL))
                })}`), s.request.retryCount === s.request.options.retry.limit && l.reportError($.NETWORK_ERROR, `  ${Jo(e, {
                    label: "Request Retry Count",
                    value: go(Ye.NO_HINT, `${et(e, s.request.retryCount, Ye.NUMBER)} (can be increased via ${et(e, "httpRetry", Ye.SETTING)})`)
                })}`)
            });
            throw a.originalError = s, a
        }
    }

    function W5(t, e) {
        let r = [...e.configuration.get("networkSettings")].sort(([o], [a]) => a.length - o.length), i = {
            enableNetwork: void 0,
            caFilePath: void 0,
            httpProxy: void 0,
            httpsProxy: void 0,
            httpsKeyFilePath: void 0,
            httpsCertFilePath: void 0
        }, n = Object.keys(i), s = typeof t == "string" ? new qw.URL(t) : t;
        for (let [o, a] of r) if (VP.default.isMatch(s.hostname, o)) for (let l of n) {
            let c = a.get(l);
            c !== null && typeof i[l] == "undefined" && (i[l] = c)
        }
        for (let o of n) typeof i[o] == "undefined" && (i[o] = e.configuration.get(o));
        return i
    }

    var fl;
    (function (n) {
        n.GET = "GET", n.PUT = "PUT", n.POST = "POST", n.DELETE = "DELETE"
    })(fl || (fl = {}));

    async function Md(t, e, {configuration: r, headers: i, jsonRequest: n, jsonResponse: s, method: o = fl.GET}) {
        let a = async () => await kDe(t, e, {configuration: r, headers: i, jsonRequest: n, jsonResponse: s, method: o});
        return await (await r.reduceHook(c => c.wrapNetworkRequest, a, {
            target: t,
            body: e,
            configuration: r,
            headers: i,
            jsonRequest: n,
            jsonResponse: s,
            method: o
        }))()
    }

    async function xDe(t, n) {
        var s = n, {configuration: e, jsonResponse: r} = s, i = Tr(s, ["configuration", "jsonResponse"]);
        let o = Ja(Y5, t, () => Jw(Md(t, null, N({configuration: e}, i)), {configuration: e}).then(a => (Y5.set(t, a.body), a.body)));
        return Buffer.isBuffer(o) === !1 && (o = await o), r ? JSON.parse(o.toString()) : o
    }

    async function PDe(t, e, n) {
        var s = n, {customErrorMessage: r} = s, i = Tr(s, ["customErrorMessage"]);
        return (await Jw(Md(t, e, ie(N({}, i), {method: fl.PUT})), i)).body
    }

    async function $P(t, e, n) {
        var s = n, {customErrorMessage: r} = s, i = Tr(s, ["customErrorMessage"]);
        return (await Jw(Md(t, e, ie(N({}, i), {method: fl.POST})), i)).body
    }

    async function DDe(t, i) {
        var n = i, {customErrorMessage: e} = n, r = Tr(n, ["customErrorMessage"]);
        return (await Jw(Md(t, null, ie(N({}, r), {method: fl.DELETE})), r)).body
    }

    async function kDe(t, e, {configuration: r, headers: i, jsonRequest: n, jsonResponse: s, method: o = fl.GET}) {
        let a = typeof t == "string" ? new qw.URL(t) : t, l = W5(a, {configuration: r});
        if (l.enableNetwork === !1) throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);
        if (a.protocol === "http:" && !VP.default.isMatch(a.hostname, r.get("unsafeHttpWhitelist"))) throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);
        let u = {
            agent: {
                http: l.httpProxy ? XP.default.httpOverHttp(J5(l.httpProxy)) : QDe,
                https: l.httpsProxy ? XP.default.httpsOverHttp(J5(l.httpsProxy)) : vDe
            }, headers: i, method: o
        };
        u.responseType = s ? "json" : "buffer", e !== null && (Buffer.isBuffer(e) || !n && typeof e == "string" ? u.body = e : u.json = e);
        let g = r.get("httpTimeout"), f = r.get("httpRetry"), h = r.get("enableStrictSsl"), p = l.caFilePath,
            m = l.httpsCertFilePath,
            y = l.httpsKeyFilePath, {default: b} = await Promise.resolve().then(() => ge(Yw())),
            S = p ? await ZP(p) : void 0, k = m ? await ZP(m) : void 0, T = y ? await ZP(y) : void 0, Y = b.extend(N({
                timeout: {socket: g},
                retry: f,
                https: {rejectUnauthorized: h, certificateAuthority: S, certificate: k, key: T}
            }, u));
        return r.getLimit("networkConcurrency")(() => Y(a))
    }

    var Zt = {};
    ft(Zt, {
        PackageManager: () => hn,
        detectPackageManager: () => o6,
        executePackageAccessibleBinary: () => u6,
        executePackageScript: () => AB,
        executePackageShellcode: () => hD,
        executeWorkspaceAccessibleBinary: () => VRe,
        executeWorkspaceLifecycleScript: () => c6,
        executeWorkspaceScript: () => l6,
        getPackageAccessibleBinaries: () => lB,
        getWorkspaceAccessibleBinaries: () => A6,
        hasPackageScript: () => WRe,
        hasWorkspaceScript: () => fD,
        makeScriptEnv: () => qd,
        maybeExecuteWorkspaceLifecycleScript: () => _Re,
        prepareExternalProject: () => JRe
    });
    var Kd = {};
    ft(Kd, {getLibzipPromise: () => fn, getLibzipSync: () => Z5});
    var X5 = ge(_5());
    var hl = ["number", "number"], rD;
    (function (L) {
        L[L.ZIP_ER_OK = 0] = "ZIP_ER_OK", L[L.ZIP_ER_MULTIDISK = 1] = "ZIP_ER_MULTIDISK", L[L.ZIP_ER_RENAME = 2] = "ZIP_ER_RENAME", L[L.ZIP_ER_CLOSE = 3] = "ZIP_ER_CLOSE", L[L.ZIP_ER_SEEK = 4] = "ZIP_ER_SEEK", L[L.ZIP_ER_READ = 5] = "ZIP_ER_READ", L[L.ZIP_ER_WRITE = 6] = "ZIP_ER_WRITE", L[L.ZIP_ER_CRC = 7] = "ZIP_ER_CRC", L[L.ZIP_ER_ZIPCLOSED = 8] = "ZIP_ER_ZIPCLOSED", L[L.ZIP_ER_NOENT = 9] = "ZIP_ER_NOENT", L[L.ZIP_ER_EXISTS = 10] = "ZIP_ER_EXISTS", L[L.ZIP_ER_OPEN = 11] = "ZIP_ER_OPEN", L[L.ZIP_ER_TMPOPEN = 12] = "ZIP_ER_TMPOPEN", L[L.ZIP_ER_ZLIB = 13] = "ZIP_ER_ZLIB", L[L.ZIP_ER_MEMORY = 14] = "ZIP_ER_MEMORY", L[L.ZIP_ER_CHANGED = 15] = "ZIP_ER_CHANGED", L[L.ZIP_ER_COMPNOTSUPP = 16] = "ZIP_ER_COMPNOTSUPP", L[L.ZIP_ER_EOF = 17] = "ZIP_ER_EOF", L[L.ZIP_ER_INVAL = 18] = "ZIP_ER_INVAL", L[L.ZIP_ER_NOZIP = 19] = "ZIP_ER_NOZIP", L[L.ZIP_ER_INTERNAL = 20] = "ZIP_ER_INTERNAL", L[L.ZIP_ER_INCONS = 21] = "ZIP_ER_INCONS", L[L.ZIP_ER_REMOVE = 22] = "ZIP_ER_REMOVE", L[L.ZIP_ER_DELETED = 23] = "ZIP_ER_DELETED", L[L.ZIP_ER_ENCRNOTSUPP = 24] = "ZIP_ER_ENCRNOTSUPP", L[L.ZIP_ER_RDONLY = 25] = "ZIP_ER_RDONLY", L[L.ZIP_ER_NOPASSWD = 26] = "ZIP_ER_NOPASSWD", L[L.ZIP_ER_WRONGPASSWD = 27] = "ZIP_ER_WRONGPASSWD", L[L.ZIP_ER_OPNOTSUPP = 28] = "ZIP_ER_OPNOTSUPP", L[L.ZIP_ER_INUSE = 29] = "ZIP_ER_INUSE", L[L.ZIP_ER_TELL = 30] = "ZIP_ER_TELL", L[L.ZIP_ER_COMPRESSED_DATA = 31] = "ZIP_ER_COMPRESSED_DATA"
    })(rD || (rD = {}));
    var V5 = t => ({
        get HEAP8() {
            return t.HEAP8
        },
        get HEAPU8() {
            return t.HEAPU8
        },
        errors: rD,
        SEEK_SET: 0,
        SEEK_CUR: 1,
        SEEK_END: 2,
        ZIP_CHECKCONS: 4,
        ZIP_CREATE: 1,
        ZIP_EXCL: 2,
        ZIP_TRUNCATE: 8,
        ZIP_RDONLY: 16,
        ZIP_FL_OVERWRITE: 8192,
        ZIP_FL_COMPRESSED: 4,
        ZIP_OPSYS_DOS: 0,
        ZIP_OPSYS_AMIGA: 1,
        ZIP_OPSYS_OPENVMS: 2,
        ZIP_OPSYS_UNIX: 3,
        ZIP_OPSYS_VM_CMS: 4,
        ZIP_OPSYS_ATARI_ST: 5,
        ZIP_OPSYS_OS_2: 6,
        ZIP_OPSYS_MACINTOSH: 7,
        ZIP_OPSYS_Z_SYSTEM: 8,
        ZIP_OPSYS_CPM: 9,
        ZIP_OPSYS_WINDOWS_NTFS: 10,
        ZIP_OPSYS_MVS: 11,
        ZIP_OPSYS_VSE: 12,
        ZIP_OPSYS_ACORN_RISC: 13,
        ZIP_OPSYS_VFAT: 14,
        ZIP_OPSYS_ALTERNATE_MVS: 15,
        ZIP_OPSYS_BEOS: 16,
        ZIP_OPSYS_TANDEM: 17,
        ZIP_OPSYS_OS_400: 18,
        ZIP_OPSYS_OS_X: 19,
        ZIP_CM_DEFAULT: -1,
        ZIP_CM_STORE: 0,
        ZIP_CM_DEFLATE: 8,
        uint08S: t._malloc(1),
        uint16S: t._malloc(2),
        uint32S: t._malloc(4),
        uint64S: t._malloc(8),
        malloc: t._malloc,
        free: t._free,
        getValue: t.getValue,
        open: t.cwrap("zip_open", "number", ["string", "number", "number"]),
        openFromSource: t.cwrap("zip_open_from_source", "number", ["number", "number", "number"]),
        close: t.cwrap("zip_close", "number", ["number"]),
        discard: t.cwrap("zip_discard", null, ["number"]),
        getError: t.cwrap("zip_get_error", "number", ["number"]),
        getName: t.cwrap("zip_get_name", "string", ["number", "number", "number"]),
        getNumEntries: t.cwrap("zip_get_num_entries", "number", ["number", "number"]),
        delete: t.cwrap("zip_delete", "number", ["number", "number"]),
        stat: t.cwrap("zip_stat", "number", ["number", "string", "number", "number"]),
        statIndex: t.cwrap("zip_stat_index", "number", ["number", ...hl, "number", "number"]),
        fopen: t.cwrap("zip_fopen", "number", ["number", "string", "number"]),
        fopenIndex: t.cwrap("zip_fopen_index", "number", ["number", ...hl, "number"]),
        fread: t.cwrap("zip_fread", "number", ["number", "number", "number", "number"]),
        fclose: t.cwrap("zip_fclose", "number", ["number"]),
        dir: {add: t.cwrap("zip_dir_add", "number", ["number", "string"])},
        file: {
            add: t.cwrap("zip_file_add", "number", ["number", "string", "number", "number"]),
            getError: t.cwrap("zip_file_get_error", "number", ["number"]),
            getExternalAttributes: t.cwrap("zip_file_get_external_attributes", "number", ["number", ...hl, "number", "number", "number"]),
            setExternalAttributes: t.cwrap("zip_file_set_external_attributes", "number", ["number", ...hl, "number", "number", "number"]),
            setMtime: t.cwrap("zip_file_set_mtime", "number", ["number", ...hl, "number", "number"]),
            setCompression: t.cwrap("zip_set_file_compression", "number", ["number", ...hl, "number", "number"])
        },
        ext: {countSymlinks: t.cwrap("zip_ext_count_symlinks", "number", ["number"])},
        error: {
            initWithCode: t.cwrap("zip_error_init_with_code", null, ["number", "number"]),
            strerror: t.cwrap("zip_error_strerror", "string", ["number"])
        },
        name: {locate: t.cwrap("zip_name_locate", "number", ["number", "string", "number"])},
        source: {
            fromUnattachedBuffer: t.cwrap("zip_source_buffer_create", "number", ["number", "number", "number", "number"]),
            fromBuffer: t.cwrap("zip_source_buffer", "number", ["number", "number", ...hl, "number"]),
            free: t.cwrap("zip_source_free", null, ["number"]),
            keep: t.cwrap("zip_source_keep", null, ["number"]),
            open: t.cwrap("zip_source_open", "number", ["number"]),
            close: t.cwrap("zip_source_close", "number", ["number"]),
            seek: t.cwrap("zip_source_seek", "number", ["number", ...hl, "number"]),
            tell: t.cwrap("zip_source_tell", "number", ["number"]),
            read: t.cwrap("zip_source_read", "number", ["number", "number", "number"]),
            error: t.cwrap("zip_source_error", "number", ["number"]),
            setMtime: t.cwrap("zip_source_set_mtime", "number", ["number", "number"])
        },
        struct: {
            stat: t.cwrap("zipstruct_stat", "number", []),
            statS: t.cwrap("zipstruct_statS", "number", []),
            statName: t.cwrap("zipstruct_stat_name", "string", ["number"]),
            statIndex: t.cwrap("zipstruct_stat_index", "number", ["number"]),
            statSize: t.cwrap("zipstruct_stat_size", "number", ["number"]),
            statCompSize: t.cwrap("zipstruct_stat_comp_size", "number", ["number"]),
            statCompMethod: t.cwrap("zipstruct_stat_comp_method", "number", ["number"]),
            statMtime: t.cwrap("zipstruct_stat_mtime", "number", ["number"]),
            statCrc: t.cwrap("zipstruct_stat_crc", "number", ["number"]),
            error: t.cwrap("zipstruct_error", "number", []),
            errorS: t.cwrap("zipstruct_errorS", "number", []),
            errorCodeZip: t.cwrap("zipstruct_error_code_zip", "number", ["number"])
        }
    });
    var iD = null;

    function Z5() {
        return iD === null && (iD = V5((0, X5.default)())), iD
    }

    async function fn() {
        return Z5()
    }

    var Hd = {};
    ft(Hd, {ShellError: () => Os, execute: () => tB, globUtils: () => zw});
    var c_ = ge(BS()), u_ = ge(require("os")), ss = ge(require("stream")), g_ = ge(require("util"));
    var Os = class extends Error {
        constructor(e) {
            super(e);
            this.name = "ShellError"
        }
    };
    var zw = {};
    ft(zw, {
        fastGlobOptions: () => t_,
        isBraceExpansion: () => r_,
        isGlobPattern: () => RDe,
        match: () => FDe,
        micromatchOptions: () => Vw
    });
    var $5 = ge(rw()), e_ = ge(require("fs")), _w = ge(rs()), Vw = {strictBrackets: !0},
        t_ = {onlyDirectories: !1, onlyFiles: !1};

    function RDe(t) {
        if (!_w.default.scan(t, Vw).isGlob) return !1;
        try {
            _w.default.parse(t, Vw)
        } catch {
            return !1
        }
        return !0
    }

    function FDe(t, {cwd: e, baseFs: r}) {
        return (0, $5.default)(t, ie(N({}, t_), {cwd: H.fromPortablePath(e), fs: XE(e_.default, new Xh(r))}))
    }

    function r_(t) {
        return _w.default.scan(t, Vw).isBrace
    }

    var i_ = ge(MQ()), ta = ge(require("stream")), n_ = ge(require("string_decoder")), Fn;
    (function (i) {
        i[i.STDIN = 0] = "STDIN", i[i.STDOUT = 1] = "STDOUT", i[i.STDERR = 2] = "STDERR"
    })(Fn || (Fn = {}));
    var Jc = new Set;

    function nD() {
    }

    function sD() {
        for (let t of Jc) t.kill()
    }

    function s_(t, e, r, i) {
        return n => {
            let s = n[0] instanceof ta.Transform ? "pipe" : n[0], o = n[1] instanceof ta.Transform ? "pipe" : n[1],
                a = n[2] instanceof ta.Transform ? "pipe" : n[2],
                l = (0, i_.default)(t, e, ie(N({}, i), {stdio: [s, o, a]}));
            return Jc.add(l), Jc.size === 1 && (process.on("SIGINT", nD), process.on("SIGTERM", sD)), n[0] instanceof ta.Transform && n[0].pipe(l.stdin), n[1] instanceof ta.Transform && l.stdout.pipe(n[1], {end: !1}), n[2] instanceof ta.Transform && l.stderr.pipe(n[2], {end: !1}), {
                stdin: l.stdin, promise: new Promise(c => {
                    l.on("error", u => {
                        switch (Jc.delete(l), Jc.size === 0 && (process.off("SIGINT", nD), process.off("SIGTERM", sD)), u.code) {
                            case"ENOENT":
                                n[2].write(`command not found: ${t}
`), c(127);
                                break;
                            case"EACCES":
                                n[2].write(`permission denied: ${t}
`), c(128);
                                break;
                            default:
                                n[2].write(`uncaught error: ${u.message}
`), c(1);
                                break
                        }
                    }), l.on("exit", u => {
                        Jc.delete(l), Jc.size === 0 && (process.off("SIGINT", nD), process.off("SIGTERM", sD)), c(u !== null ? u : 129)
                    })
                })
            }
        }
    }

    function o_(t) {
        return e => {
            let r = e[0] === "pipe" ? new ta.PassThrough : e[0];
            return {stdin: r, promise: Promise.resolve().then(() => t({stdin: r, stdout: e[1], stderr: e[2]}))}
        }
    }

    var Co = class {
        constructor(e) {
            this.stream = e
        }

        close() {
        }

        get() {
            return this.stream
        }
    }, a_ = class {
        constructor() {
            this.stream = null
        }

        close() {
            if (this.stream === null) throw new Error("Assertion failed: No stream attached");
            this.stream.end()
        }

        attach(e) {
            this.stream = e
        }

        get() {
            if (this.stream === null) throw new Error("Assertion failed: No stream attached");
            return this.stream
        }
    }, Ud = class {
        constructor(e, r) {
            this.stdin = null;
            this.stdout = null;
            this.stderr = null;
            this.pipe = null;
            this.ancestor = e, this.implementation = r
        }

        static start(e, {stdin: r, stdout: i, stderr: n}) {
            let s = new Ud(null, e);
            return s.stdin = r, s.stdout = i, s.stderr = n, s
        }

        pipeTo(e, r = 1) {
            let i = new Ud(this, e), n = new a_;
            return i.pipe = n, i.stdout = this.stdout, i.stderr = this.stderr, (r & 1) == 1 ? this.stdout = n : this.ancestor !== null && (this.stderr = this.ancestor.stdout), (r & 2) == 2 ? this.stderr = n : this.ancestor !== null && (this.stderr = this.ancestor.stderr), i
        }

        async exec() {
            let e = ["ignore", "ignore", "ignore"];
            if (this.pipe) e[0] = "pipe"; else {
                if (this.stdin === null) throw new Error("Assertion failed: No input stream registered");
                e[0] = this.stdin.get()
            }
            let r;
            if (this.stdout === null) throw new Error("Assertion failed: No output stream registered");
            r = this.stdout, e[1] = r.get();
            let i;
            if (this.stderr === null) throw new Error("Assertion failed: No error stream registered");
            i = this.stderr, e[2] = i.get();
            let n = this.implementation(e);
            return this.pipe && this.pipe.attach(n.stdin), await n.promise.then(s => (r.close(), i.close(), s))
        }

        async run() {
            let e = [];
            for (let i = this; i; i = i.ancestor) e.push(i.exec());
            return (await Promise.all(e))[0]
        }
    };

    function Xw(t, e) {
        return Ud.start(t, e)
    }

    function A_(t, e = null) {
        let r = new ta.PassThrough, i = new n_.StringDecoder, n = "";
        return r.on("data", s => {
            let o = i.write(s), a;
            do if (a = o.indexOf(`
`), a !== -1) {
                let l = n + o.substring(0, a);
                o = o.substring(a + 1), n = "", t(e !== null ? `${e} ${l}` : l)
            } while (a !== -1);
            n += o
        }), r.on("end", () => {
            let s = i.end();
            s !== "" && t(e !== null ? `${e} ${s}` : s)
        }), r
    }

    function l_(t, {prefix: e}) {
        return {
            stdout: A_(r => t.stdout.write(`${r}
`), t.stdout.isTTY ? e : null), stderr: A_(r => t.stderr.write(`${r}
`), t.stderr.isTTY ? e : null)
        }
    }

    var NDe = (0, g_.promisify)(setTimeout);
    var zi;
    (function (r) {
        r[r.Readable = 1] = "Readable", r[r.Writable = 2] = "Writable"
    })(zi || (zi = {}));

    function f_(t, e, r) {
        let i = new ss.PassThrough({autoDestroy: !0});
        switch (t) {
            case Fn.STDIN:
                (e & 1) == 1 && r.stdin.pipe(i, {end: !1}), (e & 2) == 2 && r.stdin instanceof ss.Writable && i.pipe(r.stdin, {end: !1});
                break;
            case Fn.STDOUT:
                (e & 1) == 1 && r.stdout.pipe(i, {end: !1}), (e & 2) == 2 && i.pipe(r.stdout, {end: !1});
                break;
            case Fn.STDERR:
                (e & 1) == 1 && r.stderr.pipe(i, {end: !1}), (e & 2) == 2 && i.pipe(r.stderr, {end: !1});
                break;
            default:
                throw new Os(`Bad file descriptor: "${t}"`)
        }
        return i
    }

    function Zw(t, e = {}) {
        let r = N(N({}, t), e);
        return r.environment = N(N({}, t.environment), e.environment), r.variables = N(N({}, t.variables), e.variables), r
    }

    var LDe = new Map([["cd", async ([t = (0, u_.homedir)(), ...e], r, i) => {
        let n = x.resolve(i.cwd, H.toPortablePath(t));
        if (!(await r.baseFs.statPromise(n).catch(o => {
            throw o.code === "ENOENT" ? new Os(`cd: no such file or directory: ${t}`) : o
        })).isDirectory()) throw new Os(`cd: not a directory: ${t}`);
        return i.cwd = n, 0
    }], ["pwd", async (t, e, r) => (r.stdout.write(`${H.fromPortablePath(r.cwd)}
`), 0)], [":", async (t, e, r) => 0], ["true", async (t, e, r) => 0], ["false", async (t, e, r) => 1], ["exit", async ([t, ...e], r, i) => i.exitCode = parseInt(t != null ? t : i.variables["?"], 10)], ["echo", async (t, e, r) => (r.stdout.write(`${t.join(" ")}
`), 0)], ["sleep", async ([t], e, r) => {
        if (typeof t == "undefined") throw new Os("sleep: missing operand");
        let i = Number(t);
        if (Number.isNaN(i)) throw new Os(`sleep: invalid time interval '${t}'`);
        return await NDe(1e3 * i, 0)
    }], ["__ysh_run_procedure", async (t, e, r) => {
        let i = r.procedures[t[0]];
        return await Xw(i, {stdin: new Co(r.stdin), stdout: new Co(r.stdout), stderr: new Co(r.stderr)}).run()
    }], ["__ysh_set_redirects", async (t, e, r) => {
        let i = r.stdin, n = r.stdout, s = r.stderr, o = [], a = [], l = [], c = 0;
        for (; t[c] !== "--";) {
            let g = t[c++], {type: f, fd: h} = JSON.parse(g), p = S => {
                switch (h) {
                    case null:
                    case 0:
                        o.push(S);
                        break;
                    default:
                        throw new Error(`Unsupported file descriptor: "${h}"`)
                }
            }, m = S => {
                switch (h) {
                    case null:
                    case 1:
                        a.push(S);
                        break;
                    case 2:
                        l.push(S);
                        break;
                    default:
                        throw new Error(`Unsupported file descriptor: "${h}"`)
                }
            }, y = Number(t[c++]), b = c + y;
            for (let S = c; S < b; ++c, ++S) switch (f) {
                case"<":
                    p(() => e.baseFs.createReadStream(x.resolve(r.cwd, H.toPortablePath(t[S]))));
                    break;
                case"<<<":
                    p(() => {
                        let k = new ss.PassThrough;
                        return process.nextTick(() => {
                            k.write(`${t[S]}
`), k.end()
                        }), k
                    });
                    break;
                case"<&":
                    p(() => f_(Number(t[S]), 1, r));
                    break;
                case">":
                case">>": {
                    let k = x.resolve(r.cwd, H.toPortablePath(t[S]));
                    m(k === "/dev/null" ? new ss.Writable({
                        autoDestroy: !0, emitClose: !0, write(T, Y, j) {
                            setImmediate(j)
                        }
                    }) : e.baseFs.createWriteStream(k, f === ">>" ? {flags: "a"} : void 0))
                }
                    break;
                case">&":
                    m(f_(Number(t[S]), 2, r));
                    break;
                default:
                    throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)
            }
        }
        if (o.length > 0) {
            let g = new ss.PassThrough;
            i = g;
            let f = h => {
                if (h === o.length) g.end(); else {
                    let p = o[h]();
                    p.pipe(g, {end: !1}), p.on("end", () => {
                        f(h + 1)
                    })
                }
            };
            f(0)
        }
        if (a.length > 0) {
            let g = new ss.PassThrough;
            n = g;
            for (let f of a) g.pipe(f)
        }
        if (l.length > 0) {
            let g = new ss.PassThrough;
            s = g;
            for (let f of l) g.pipe(f)
        }
        let u = await Xw(Gd(t.slice(c + 1), e, r), {stdin: new Co(i), stdout: new Co(n), stderr: new Co(s)}).run();
        return await Promise.all(a.map(g => new Promise((f, h) => {
            g.on("error", p => {
                h(p)
            }), g.on("close", () => {
                f()
            }), g.end()
        }))), await Promise.all(l.map(g => new Promise((f, h) => {
            g.on("error", p => {
                h(p)
            }), g.on("close", () => {
                f()
            }), g.end()
        }))), u
    }]]);

    async function TDe(t, e, r) {
        let i = [], n = new ss.PassThrough;
        return n.on("data", s => i.push(s)), await $w(t, e, Zw(r, {stdout: n})), Buffer.concat(i).toString().replace(/[\r\n]+$/, "")
    }

    async function h_(t, e, r) {
        let i = t.map(async s => {
            let o = await nA(s.args, e, r);
            return {name: s.name, value: o.join(" ")}
        });
        return (await Promise.all(i)).reduce((s, o) => (s[o.name] = o.value, s), {})
    }

    function eB(t) {
        return t.match(/[^ \r\n\t]+/g) || []
    }

    async function p_(t, e, r, i, n = i) {
        switch (t.name) {
            case"$":
                i(String(process.pid));
                break;
            case"#":
                i(String(e.args.length));
                break;
            case"@":
                if (t.quoted) for (let s of e.args) n(s); else for (let s of e.args) {
                    let o = eB(s);
                    for (let a = 0; a < o.length - 1; ++a) n(o[a]);
                    i(o[o.length - 1])
                }
                break;
            case"*": {
                let s = e.args.join(" ");
                if (t.quoted) i(s); else for (let o of eB(s)) n(o)
            }
                break;
            case"PPID":
                i(String(process.ppid));
                break;
            case"RANDOM":
                i(String(Math.floor(Math.random() * 32768)));
                break;
            default: {
                let s = parseInt(t.name, 10), o;
                if (Number.isFinite(s)) if (s >= 0 && s < e.args.length) o = e.args[s]; else if (t.defaultValue) o = (await nA(t.defaultValue, e, r)).join(" "); else if (t.alternativeValue) o = (await nA(t.alternativeValue, e, r)).join(" "); else throw new Os(`Unbound argument #${s}`); else if (Object.prototype.hasOwnProperty.call(r.variables, t.name)) o = r.variables[t.name]; else if (Object.prototype.hasOwnProperty.call(r.environment, t.name)) o = r.environment[t.name]; else if (t.defaultValue) o = (await nA(t.defaultValue, e, r)).join(" "); else throw new Os(`Unbound variable "${t.name}"`);
                if (typeof o != "undefined" && t.alternativeValue && (o = (await nA(t.alternativeValue, e, r)).join(" ")), t.quoted) i(o); else {
                    let a = eB(o);
                    for (let c = 0; c < a.length - 1; ++c) n(a[c]);
                    let l = a[a.length - 1];
                    typeof l != "undefined" && i(l)
                }
            }
                break
        }
    }

    var ODe = {
        addition: (t, e) => t + e,
        subtraction: (t, e) => t - e,
        multiplication: (t, e) => t * e,
        division: (t, e) => Math.trunc(t / e)
    };

    async function jd(t, e, r) {
        if (t.type === "number") {
            if (Number.isInteger(t.value)) return t.value;
            throw new Error(`Invalid number: "${t.value}", only integers are allowed`)
        } else if (t.type === "variable") {
            let i = [];
            await p_(ie(N({}, t), {quoted: !0}), e, r, s => i.push(s));
            let n = Number(i.join(" "));
            return Number.isNaN(n) ? jd({type: "variable", name: i.join(" ")}, e, r) : jd({
                type: "number",
                value: n
            }, e, r)
        } else return ODe[t.type](await jd(t.left, e, r), await jd(t.right, e, r))
    }

    async function nA(t, e, r) {
        let i = new Map, n = [], s = [], o = u => {
            s.push(u)
        }, a = () => {
            s.length > 0 && n.push(s.join("")), s = []
        }, l = u => {
            o(u), a()
        }, c = (u, g, f) => {
            let h = JSON.stringify({type: u, fd: g}), p = i.get(h);
            typeof p == "undefined" && i.set(h, p = []), p.push(f)
        };
        for (let u of t) {
            let g = !1;
            switch (u.type) {
                case"redirection": {
                    let f = await nA(u.args, e, r);
                    for (let h of f) c(u.subtype, u.fd, h)
                }
                    break;
                case"argument":
                    for (let f of u.segments) switch (f.type) {
                        case"text":
                            o(f.text);
                            break;
                        case"glob":
                            o(f.pattern), g = !0;
                            break;
                        case"shell": {
                            let h = await TDe(f.shell, e, r);
                            if (f.quoted) o(h); else {
                                let p = eB(h);
                                for (let m = 0; m < p.length - 1; ++m) l(p[m]);
                                o(p[p.length - 1])
                            }
                        }
                            break;
                        case"variable":
                            await p_(f, e, r, o, l);
                            break;
                        case"arithmetic":
                            o(String(await jd(f.arithmetic, e, r)));
                            break
                    }
                    break
            }
            if (a(), g) {
                let f = n.pop();
                if (typeof f == "undefined") throw new Error("Assertion failed: Expected a glob pattern to have been set");
                let h = await e.glob.match(f, {cwd: r.cwd, baseFs: e.baseFs});
                if (h.length === 0) {
                    let p = r_(f) ? ". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22" : "";
                    throw new Os(`No matches found: "${f}"${p}`)
                }
                for (let p of h.sort()) l(p)
            }
        }
        if (i.size > 0) {
            let u = [];
            for (let [g, f] of i.entries()) u.splice(u.length, 0, g, String(f.length), ...f);
            n.splice(0, 0, "__ysh_set_redirects", ...u, "--")
        }
        return n
    }

    function Gd(t, e, r) {
        e.builtins.has(t[0]) || (t = ["command", ...t]);
        let i = H.fromPortablePath(r.cwd), n = r.environment;
        typeof n.PWD != "undefined" && (n = ie(N({}, n), {PWD: i}));
        let [s, ...o] = t;
        if (s === "command") return s_(o[0], o.slice(1), e, {cwd: i, env: n});
        let a = e.builtins.get(s);
        if (typeof a == "undefined") throw new Error(`Assertion failed: A builtin should exist for "${s}"`);
        return o_(async ({stdin: l, stdout: c, stderr: u}) => {
            let {stdin: g, stdout: f, stderr: h} = r;
            r.stdin = l, r.stdout = c, r.stderr = u;
            try {
                return await a(o, e, r)
            } finally {
                r.stdin = g, r.stdout = f, r.stderr = h
            }
        })
    }

    function MDe(t, e, r) {
        return i => {
            let n = new ss.PassThrough, s = $w(t, e, Zw(r, {stdin: n}));
            return {stdin: n, promise: s}
        }
    }

    function KDe(t, e, r) {
        return i => {
            let n = new ss.PassThrough, s = $w(t, e, r);
            return {stdin: n, promise: s}
        }
    }

    function d_(t, e, r, i) {
        if (e.length === 0) return t;
        {
            let n;
            do n = String(Math.random()); while (Object.prototype.hasOwnProperty.call(i.procedures, n));
            return i.procedures = N({}, i.procedures), i.procedures[n] = t, Gd([...e, "__ysh_run_procedure", n], r, i)
        }
    }

    async function C_(t, e, r) {
        let i = t, n = null, s = null;
        for (; i;) {
            let o = i.then ? N({}, r) : r, a;
            switch (i.type) {
                case"command": {
                    let l = await nA(i.args, e, r), c = await h_(i.envs, e, r);
                    a = i.envs.length ? Gd(l, e, Zw(o, {environment: c})) : Gd(l, e, o)
                }
                    break;
                case"subshell": {
                    let l = await nA(i.args, e, r), c = MDe(i.subshell, e, o);
                    a = d_(c, l, e, o)
                }
                    break;
                case"group": {
                    let l = await nA(i.args, e, r), c = KDe(i.group, e, o);
                    a = d_(c, l, e, o)
                }
                    break;
                case"envs": {
                    let l = await h_(i.envs, e, r);
                    o.environment = N(N({}, o.environment), l), a = Gd(["true"], e, o)
                }
                    break
            }
            if (typeof a == "undefined") throw new Error("Assertion failed: An action should have been generated");
            if (n === null) s = Xw(a, {
                stdin: new Co(o.stdin),
                stdout: new Co(o.stdout),
                stderr: new Co(o.stderr)
            }); else {
                if (s === null) throw new Error("Assertion failed: The execution pipeline should have been setup");
                switch (n) {
                    case"|":
                        s = s.pipeTo(a, Fn.STDOUT);
                        break;
                    case"|&":
                        s = s.pipeTo(a, Fn.STDOUT | Fn.STDERR);
                        break
                }
            }
            i.then ? (n = i.then.type, i = i.then.chain) : i = null
        }
        if (s === null) throw new Error("Assertion failed: The execution pipeline should have been setup");
        return await s.run()
    }

    async function UDe(t, e, r, {background: i = !1} = {}) {
        function n(s) {
            let o = ["#2E86AB", "#A23B72", "#F18F01", "#C73E1D", "#CCE2A3"], a = o[s % o.length];
            return c_.default.hex(a)
        }

        if (i) {
            let s = r.nextBackgroundJobIndex++, o = n(s), a = `[${s}]`, l = o(a), {
                stdout: c,
                stderr: u
            } = l_(r, {prefix: l});
            return r.backgroundJobs.push(C_(t, e, Zw(r, {stdout: c, stderr: u})).catch(g => u.write(`${g.message}
`)).finally(() => {
                r.stdout.isTTY && r.stdout.write(`Job ${l}, '${o(Xu(t))}' has ended
`)
            })), 0
        }
        return await C_(t, e, r)
    }

    async function HDe(t, e, r, {background: i = !1} = {}) {
        let n, s = a => {
            n = a, r.variables["?"] = String(a)
        }, o = async a => {
            try {
                return await UDe(a.chain, e, r, {background: i && typeof a.then == "undefined"})
            } catch (l) {
                if (!(l instanceof Os)) throw l;
                return r.stderr.write(`${l.message}
`), 1
            }
        };
        for (s(await o(t)); t.then;) {
            if (r.exitCode !== null) return r.exitCode;
            switch (t.then.type) {
                case"&&":
                    n === 0 && s(await o(t.then.line));
                    break;
                case"||":
                    n !== 0 && s(await o(t.then.line));
                    break;
                default:
                    throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)
            }
            t = t.then.line
        }
        return n
    }

    async function $w(t, e, r) {
        let i = r.backgroundJobs;
        r.backgroundJobs = [];
        let n = 0;
        for (let {command: s, type: o} of t) {
            if (n = await HDe(s, e, r, {background: o === "&"}), r.exitCode !== null) return r.exitCode;
            r.variables["?"] = String(n)
        }
        return await Promise.all(r.backgroundJobs), r.backgroundJobs = i, n
    }

    function m_(t) {
        switch (t.type) {
            case"variable":
                return t.name === "@" || t.name === "#" || t.name === "*" || Number.isFinite(parseInt(t.name, 10)) || "defaultValue" in t && !!t.defaultValue && t.defaultValue.some(e => Yd(e)) || "alternativeValue" in t && !!t.alternativeValue && t.alternativeValue.some(e => Yd(e));
            case"arithmetic":
                return oD(t.arithmetic);
            case"shell":
                return aD(t.shell);
            default:
                return !1
        }
    }

    function Yd(t) {
        switch (t.type) {
            case"redirection":
                return t.args.some(e => Yd(e));
            case"argument":
                return t.segments.some(e => m_(e));
            default:
                throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)
        }
    }

    function oD(t) {
        switch (t.type) {
            case"variable":
                return m_(t);
            case"number":
                return !1;
            default:
                return oD(t.left) || oD(t.right)
        }
    }

    function aD(t) {
        return t.some(({command: e}) => {
            for (; e;) {
                let r = e.chain;
                for (; r;) {
                    let i;
                    switch (r.type) {
                        case"subshell":
                            i = aD(r.subshell);
                            break;
                        case"command":
                            i = r.envs.some(n => n.args.some(s => Yd(s))) || r.args.some(n => Yd(n));
                            break
                    }
                    if (i) return !0;
                    if (!r.then) break;
                    r = r.then.chain
                }
                if (!e.then) break;
                e = e.then.line
            }
            return !1
        })
    }

    async function tB(t, e = [], {
        baseFs: r = new ar,
        builtins: i = {},
        cwd: n = H.toPortablePath(process.cwd()),
        env: s = process.env,
        stdin: o = process.stdin,
        stdout: a = process.stdout,
        stderr: l = process.stderr,
        variables: c = {},
        glob: u = zw
    } = {}) {
        let g = {};
        for (let [p, m] of Object.entries(s)) typeof m != "undefined" && (g[p] = m);
        let f = new Map(LDe);
        for (let [p, m] of Object.entries(i)) f.set(p, m);
        o === null && (o = new ss.PassThrough, o.end());
        let h = $E(t, u);
        if (!aD(h) && h.length > 0 && e.length > 0) {
            let {command: p} = h[h.length - 1];
            for (; p.then;) p = p.then.line;
            let m = p.chain;
            for (; m.then;) m = m.then.chain;
            m.type === "command" && (m.args = m.args.concat(e.map(y => ({
                type: "argument",
                segments: [{type: "text", text: y}]
            }))))
        }
        return await $w(h, {
            args: e,
            baseFs: r,
            builtins: f,
            initialStdin: o,
            initialStdout: a,
            initialStderr: l,
            glob: u
        }, {
            cwd: n,
            environment: g,
            exitCode: null,
            procedures: {},
            stdin: o,
            stdout: a,
            stderr: l,
            variables: Object.assign({}, c, {["?"]: 0}),
            nextBackgroundJobIndex: 1,
            backgroundJobs: []
        })
    }

    var n6 = ge(rB()), s6 = ge(lg()), Wc = ge(require("stream"));
    var $_ = ge(Z_()), sB = ge(pc());
    var e6 = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"],
        t6 = 80, KRe = new Set([$.FETCH_NOT_CACHED, $.UNUSED_CACHE_ENTRY]), URe = 5, oB = sB.default.GITHUB_ACTIONS ? {
            start: t => `::group::${t}
`, end: t => `::endgroup::
`
        } : sB.default.TRAVIS ? {
            start: t => `travis_fold:start:${t}
`, end: t => `travis_fold:end:${t}
`
        } : sB.default.GITLAB ? {
            start: t => `section_start:${Math.floor(Date.now() / 1e3)}:${t.toLowerCase().replace(/\W+/g, "_")}[collapsed=true]\r[0K${t}
`, end: t => `section_end:${Math.floor(Date.now() / 1e3)}:${t.toLowerCase().replace(/\W+/g, "_")}\r[0K`
        } : null, r6 = new Date,
        HRe = ["iTerm.app", "Apple_Terminal"].includes(process.env.TERM_PROGRAM) || !!process.env.WT_SESSION,
        GRe = t => t, aB = GRe({
            patrick: {date: [17, 3], chars: ["\u{1F340}", "\u{1F331}"], size: 40},
            simba: {date: [19, 7], chars: ["\u{1F981}", "\u{1F334}"], size: 40},
            jack: {date: [31, 10], chars: ["\u{1F383}", "\u{1F987}"], size: 40},
            hogsfather: {date: [31, 12], chars: ["\u{1F389}", "\u{1F384}"], size: 40},
            default: {chars: ["=", "-"], size: 80}
        }), jRe = HRe && Object.keys(aB).find(t => {
            let e = aB[t];
            return !(e.date && (e.date[0] !== r6.getDate() || e.date[1] !== r6.getMonth() + 1))
        }) || "default";

    function i6(t, {configuration: e, json: r}) {
        if (!e.get("enableMessageNames")) return "";
        let n = qA(t === null ? 0 : t);
        return !r && t === null ? et(e, n, "grey") : n
    }

    function gD(t, {configuration: e, json: r}) {
        let i = i6(t, {configuration: e, json: r});
        if (!i || t === null || t === $.UNNAMED) return i;
        let n = $[t], s = `https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();
        return Lg(e, i, s)
    }

    var Je = class extends Ji {
        constructor({
                        configuration: e,
                        stdout: r,
                        json: i = !1,
                        includeFooter: n = !0,
                        includeLogs: s = !i,
                        includeInfos: o = s,
                        includeWarnings: a = s,
                        forgettableBufferSize: l = URe,
                        forgettableNames: c = new Set
                    }) {
            super();
            this.uncommitted = new Set;
            this.cacheHitCount = 0;
            this.cacheMissCount = 0;
            this.lastCacheMiss = null;
            this.warningCount = 0;
            this.errorCount = 0;
            this.startTime = Date.now();
            this.indent = 0;
            this.progress = new Map;
            this.progressTime = 0;
            this.progressFrame = 0;
            this.progressTimeout = null;
            this.progressStyle = null;
            this.progressMaxScaledSize = null;
            this.forgettableLines = [];
            if (sd(this, {configuration: e}), this.configuration = e, this.forgettableBufferSize = l, this.forgettableNames = new Set([...c, ...KRe]), this.includeFooter = n, this.includeInfos = o, this.includeWarnings = a, this.json = i, this.stdout = r, e.get("enableProgressBars") && !i && r.isTTY && r.columns > 22) {
                let u = e.get("progressBarStyle") || jRe;
                if (!Object.prototype.hasOwnProperty.call(aB, u)) throw new Error("Assertion failed: Invalid progress bar style");
                this.progressStyle = aB[u];
                let g = "\u27A4 YN0000: \u250C ".length, f = Math.max(0, Math.min(r.columns - g, 80));
                this.progressMaxScaledSize = Math.floor(this.progressStyle.size * f / 80)
            }
        }

        static async start(e, r) {
            let i = new this(e), n = process.emitWarning;
            process.emitWarning = (s, o) => {
                if (typeof s != "string") {
                    let l = s;
                    s = l.message, o = o != null ? o : l.name
                }
                let a = typeof o != "undefined" ? `${o}: ${s}` : s;
                i.reportWarning($.UNNAMED, a)
            };
            try {
                await r(i)
            } catch (s) {
                i.reportExceptionOnce(s)
            } finally {
                await i.finalize(), process.emitWarning = n
            }
            return i
        }

        hasErrors() {
            return this.errorCount > 0
        }

        exitCode() {
            return this.hasErrors() ? 1 : 0
        }

        reportCacheHit(e) {
            this.cacheHitCount += 1
        }

        reportCacheMiss(e, r) {
            this.lastCacheMiss = e, this.cacheMissCount += 1, typeof r != "undefined" && !this.configuration.get("preferAggregateCacheInfo") && this.reportInfo($.FETCH_NOT_CACHED, r)
        }

        startSectionSync({reportHeader: e, reportFooter: r, skipIfEmpty: i}, n) {
            let s = {
                committed: !1, action: () => {
                    e == null || e()
                }
            };
            i ? this.uncommitted.add(s) : (s.action(), s.committed = !0);
            let o = Date.now();
            try {
                return n()
            } catch (a) {
                throw this.reportExceptionOnce(a), a
            } finally {
                let a = Date.now();
                this.uncommitted.delete(s), s.committed && (r == null || r(a - o))
            }
        }

        async startSectionPromise({reportHeader: e, reportFooter: r, skipIfEmpty: i}, n) {
            let s = {
                committed: !1, action: () => {
                    e == null || e()
                }
            };
            i ? this.uncommitted.add(s) : (s.action(), s.committed = !0);
            let o = Date.now();
            try {
                return await n()
            } catch (a) {
                throw this.reportExceptionOnce(a), a
            } finally {
                let a = Date.now();
                this.uncommitted.delete(s), s.committed && (r == null || r(a - o))
            }
        }

        startTimerImpl(e, r, i) {
            let n = typeof r == "function" ? {} : r;
            return {
                cb: typeof r == "function" ? r : i, reportHeader: () => {
                    this.reportInfo(null, `\u250C ${e}`), this.indent += 1, oB !== null && !this.json && this.includeInfos && this.stdout.write(oB.start(e))
                }, reportFooter: o => {
                    this.indent -= 1, oB !== null && !this.json && this.includeInfos && this.stdout.write(oB.end(e)), this.configuration.get("enableTimers") && o > 200 ? this.reportInfo(null, `\u2514 Completed in ${et(this.configuration, o, Ye.DURATION)}`) : this.reportInfo(null, "\u2514 Completed")
                }, skipIfEmpty: n.skipIfEmpty
            }
        }

        startTimerSync(e, r, i) {
            let o = this.startTimerImpl(e, r, i), {cb: n} = o, s = Tr(o, ["cb"]);
            return this.startSectionSync(s, n)
        }

        async startTimerPromise(e, r, i) {
            let o = this.startTimerImpl(e, r, i), {cb: n} = o, s = Tr(o, ["cb"]);
            return this.startSectionPromise(s, n)
        }

        async startCacheReport(e) {
            let r = this.configuration.get("preferAggregateCacheInfo") ? {
                cacheHitCount: this.cacheHitCount,
                cacheMissCount: this.cacheMissCount
            } : null;
            try {
                return await e()
            } catch (i) {
                throw this.reportExceptionOnce(i), i
            } finally {
                r !== null && this.reportCacheChanges(r)
            }
        }

        reportSeparator() {
            this.indent === 0 ? this.writeLineWithForgettableReset("") : this.reportInfo(null, "")
        }

        reportInfo(e, r) {
            if (!this.includeInfos) return;
            this.commit();
            let i = this.formatNameWithHyperlink(e), n = i ? `${i}: ` : "",
                s = `${et(this.configuration, "\u27A4", "blueBright")} ${n}${this.formatIndent()}${r}`;
            if (this.json) this.reportJson({
                type: "info",
                name: e,
                displayName: this.formatName(e),
                indent: this.formatIndent(),
                data: r
            }); else if (this.forgettableNames.has(e)) if (this.forgettableLines.push(s), this.forgettableLines.length > this.forgettableBufferSize) {
                for (; this.forgettableLines.length > this.forgettableBufferSize;) this.forgettableLines.shift();
                this.writeLines(this.forgettableLines, {truncate: !0})
            } else this.writeLine(s, {truncate: !0}); else this.writeLineWithForgettableReset(s)
        }

        reportWarning(e, r) {
            if (this.warningCount += 1, !this.includeWarnings) return;
            this.commit();
            let i = this.formatNameWithHyperlink(e), n = i ? `${i}: ` : "";
            this.json ? this.reportJson({
                type: "warning",
                name: e,
                displayName: this.formatName(e),
                indent: this.formatIndent(),
                data: r
            }) : this.writeLineWithForgettableReset(`${et(this.configuration, "\u27A4", "yellowBright")} ${n}${this.formatIndent()}${r}`)
        }

        reportError(e, r) {
            this.errorCount += 1, this.commit();
            let i = this.formatNameWithHyperlink(e), n = i ? `${i}: ` : "";
            this.json ? this.reportJson({
                type: "error",
                name: e,
                displayName: this.formatName(e),
                indent: this.formatIndent(),
                data: r
            }) : this.writeLineWithForgettableReset(`${et(this.configuration, "\u27A4", "redBright")} ${n}${this.formatIndent()}${r}`, {truncate: !1})
        }

        reportProgress(e) {
            if (this.progressStyle === null) return ie(N({}, Promise.resolve()), {
                stop: () => {
                }
            });
            if (e.hasProgress && e.hasTitle) throw new Error("Unimplemented: Progress bars can't have both progress and titles.");
            let r = !1, i = Promise.resolve().then(async () => {
                let s = {progress: e.hasProgress ? 0 : void 0, title: e.hasTitle ? "" : void 0};
                this.progress.set(e, {
                    definition: s,
                    lastScaledSize: e.hasProgress ? -1 : void 0,
                    lastTitle: void 0
                }), this.refreshProgress({delta: -1});
                for await(let {
                    progress: o,
                    title: a
                } of e) r || s.progress === o && s.title === a || (s.progress = o, s.title = a, this.refreshProgress());
                n()
            }), n = () => {
                r || (r = !0, this.progress.delete(e), this.refreshProgress({delta: 1}))
            };
            return ie(N({}, i), {stop: n})
        }

        reportJson(e) {
            this.json && this.writeLineWithForgettableReset(`${JSON.stringify(e)}`)
        }

        async finalize() {
            if (!this.includeFooter) return;
            let e = "";
            this.errorCount > 0 ? e = "Failed with errors" : this.warningCount > 0 ? e = "Done with warnings" : e = "Done";
            let r = et(this.configuration, Date.now() - this.startTime, Ye.DURATION),
                i = this.configuration.get("enableTimers") ? `${e} in ${r}` : e;
            this.errorCount > 0 ? this.reportError($.UNNAMED, i) : this.warningCount > 0 ? this.reportWarning($.UNNAMED, i) : this.reportInfo($.UNNAMED, i)
        }

        writeLine(e, {truncate: r} = {}) {
            this.clearProgress({clear: !0}), this.stdout.write(`${this.truncate(e, {truncate: r})}
`), this.writeProgress()
        }

        writeLineWithForgettableReset(e, {truncate: r} = {}) {
            this.forgettableLines = [], this.writeLine(e, {truncate: r})
        }

        writeLines(e, {truncate: r} = {}) {
            this.clearProgress({delta: e.length});
            for (let i of e) this.stdout.write(`${this.truncate(i, {truncate: r})}
`);
            this.writeProgress()
        }

        reportCacheChanges({cacheHitCount: e, cacheMissCount: r}) {
            let i = this.cacheHitCount - e, n = this.cacheMissCount - r;
            if (i === 0 && n === 0) return;
            let s = "";
            this.cacheHitCount > 1 ? s += `${this.cacheHitCount} packages were already cached` : this.cacheHitCount === 1 ? s += " - one package was already cached" : s += "No packages were cached", this.cacheHitCount > 0 ? this.cacheMissCount > 1 ? s += `, ${this.cacheMissCount} had to be fetched` : this.cacheMissCount === 1 && (s += `, one had to be fetched (${Bt(this.configuration, this.lastCacheMiss)})`) : this.cacheMissCount > 1 ? s += ` - ${this.cacheMissCount} packages had to be fetched` : this.cacheMissCount === 1 && (s += ` - one package had to be fetched (${Bt(this.configuration, this.lastCacheMiss)})`), this.reportInfo($.FETCH_NOT_CACHED, s)
        }

        commit() {
            let e = this.uncommitted;
            this.uncommitted = new Set;
            for (let r of e) r.committed = !0, r.action()
        }

        clearProgress({delta: e = 0, clear: r = !1}) {
            this.progressStyle !== null && this.progress.size + e > 0 && (this.stdout.write(`[${this.progress.size + e}A`), (e > 0 || r) && this.stdout.write("[0J"))
        }

        writeProgress() {
            if (this.progressStyle === null || (this.progressTimeout !== null && clearTimeout(this.progressTimeout), this.progressTimeout = null, this.progress.size === 0)) return;
            let e = Date.now();
            e - this.progressTime > t6 && (this.progressFrame = (this.progressFrame + 1) % e6.length, this.progressTime = e);
            let r = e6[this.progressFrame];
            for (let i of this.progress.values()) {
                let n = "";
                if (typeof i.lastScaledSize != "undefined") {
                    let l = this.progressStyle.chars[0].repeat(i.lastScaledSize),
                        c = this.progressStyle.chars[1].repeat(this.progressMaxScaledSize - i.lastScaledSize);
                    n = ` ${l}${c}`
                }
                let s = this.formatName(null), o = s ? `${s}: ` : "",
                    a = i.definition.title ? ` ${i.definition.title}` : "";
                this.stdout.write(`${et(this.configuration, "\u27A4", "blueBright")} ${o}${r}${n}${a}
`)
            }
            this.progressTimeout = setTimeout(() => {
                this.refreshProgress({force: !0})
            }, t6)
        }

        refreshProgress({delta: e = 0, force: r = !1} = {}) {
            let i = !1, n = !1;
            if (r || this.progress.size === 0) i = !0; else for (let s of this.progress.values()) {
                let o = typeof s.definition.progress != "undefined" ? Math.trunc(this.progressMaxScaledSize * s.definition.progress) : void 0,
                    a = s.lastScaledSize;
                s.lastScaledSize = o;
                let l = s.lastTitle;
                if (s.lastTitle = s.definition.title, o !== a || (n = l !== s.definition.title)) {
                    i = !0;
                    break
                }
            }
            i && (this.clearProgress({delta: e, clear: n}), this.writeProgress())
        }

        truncate(e, {truncate: r} = {}) {
            return this.progressStyle === null && (r = !1), typeof r == "undefined" && (r = this.configuration.get("preferTruncatedLines")), r && (e = (0, $_.default)(e, 0, this.stdout.columns - 1)), e
        }

        formatName(e) {
            return i6(e, {configuration: this.configuration, json: this.json})
        }

        formatNameWithHyperlink(e) {
            return gD(e, {configuration: this.configuration, json: this.json})
        }

        formatIndent() {
            return "\u2502 ".repeat(this.indent)
        }
    };
    var Kr = "3.2.1";
    var hn;
    (function (n) {
        n.Yarn1 = "Yarn Classic", n.Yarn2 = "Yarn", n.Npm = "npm", n.Pnpm = "pnpm"
    })(hn || (hn = {}));

    async function sA(t, e, r, i = []) {
        if (process.platform === "win32") {
            let n = `@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${i.map(s => `"${s.replace('"', '""')}"`).join(" ")} %*`;
            await K.writeFilePromise(x.format({dir: t, name: e, ext: ".cmd"}), n)
        }
        await K.writeFilePromise(x.join(t, e), `#!/bin/sh
exec "${r}" ${i.map(n => `'${n.replace(/'/g, `'"'"'`)}'`).join(" ")} "$@"
`, {mode: 493})
    }

    async function o6(t) {
        let e = await At.tryFind(t);
        if (e == null ? void 0 : e.packageManager) {
            let i = fw(e.packageManager);
            if (i == null ? void 0 : i.name) {
                let n = `found ${JSON.stringify({packageManager: e.packageManager})} in manifest`, [s] = i.reference.split(".");
                switch (i.name) {
                    case"yarn":
                        return {packageManager: Number(s) === 1 ? hn.Yarn1 : hn.Yarn2, reason: n};
                    case"npm":
                        return {packageManager: hn.Npm, reason: n};
                    case"pnpm":
                        return {packageManager: hn.Pnpm, reason: n}
                }
            }
        }
        let r;
        try {
            r = await K.readFilePromise(x.join(t, Pt.lockfile), "utf8")
        } catch {
        }
        return r !== void 0 ? r.match(/^__metadata:$/m) ? {
            packageManager: hn.Yarn2,
            reason: '"__metadata" key found in yarn.lock'
        } : {
            packageManager: hn.Yarn1,
            reason: '"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'
        } : K.existsSync(x.join(t, "package-lock.json")) ? {
            packageManager: hn.Npm,
            reason: `found npm's "package-lock.json" lockfile`
        } : K.existsSync(x.join(t, "pnpm-lock.yaml")) ? {
            packageManager: hn.Pnpm,
            reason: `found pnpm's "pnpm-lock.yaml" lockfile`
        } : null
    }

    async function qd({project: t, locator: e, binFolder: r, lifecycleScript: i}) {
        var l, c;
        let n = {};
        for (let [u, g] of Object.entries(process.env)) typeof g != "undefined" && (n[u.toLowerCase() !== "path" ? u : "PATH"] = g);
        let s = H.fromPortablePath(r);
        n.BERRY_BIN_FOLDER = H.fromPortablePath(s);
        let o = process.env.COREPACK_ROOT ? H.join(process.env.COREPACK_ROOT, "dist/yarn.js") : process.argv[1];
        if (await Promise.all([sA(r, "node", process.execPath), ...Kr !== null ? [sA(r, "run", process.execPath, [o, "run"]), sA(r, "yarn", process.execPath, [o]), sA(r, "yarnpkg", process.execPath, [o]), sA(r, "node-gyp", process.execPath, [o, "run", "--top-level", "node-gyp"])] : []]), t && (n.INIT_CWD = H.fromPortablePath(t.configuration.startingCwd), n.PROJECT_CWD = H.fromPortablePath(t.cwd)), n.PATH = n.PATH ? `${s}${H.delimiter}${n.PATH}` : `${s}`, n.npm_execpath = `${s}${H.sep}yarn`, n.npm_node_execpath = `${s}${H.sep}node`, e) {
            if (!t) throw new Error("Assertion failed: Missing project");
            let u = t.tryWorkspaceByLocator(e),
                g = u ? (l = u.manifest.version) != null ? l : "" : (c = t.storedPackages.get(e.locatorHash).version) != null ? c : "";
            n.npm_package_name = Ot(e), n.npm_package_version = g
        }
        let a = Kr !== null ? `yarn/${Kr}` : `yarn/${Ng("@yarnpkg/core").version}-core`;
        return n.npm_config_user_agent = `${a} npm/? node/${process.version} ${process.platform} ${process.arch}`, i && (n.npm_lifecycle_event = i), t && await t.configuration.triggerHook(u => u.setupScriptEnvironment, t, n, async (u, g, f) => await sA(r, Jr(u), g, f)), n
    }

    var YRe = 2, qRe = (0, s6.default)(YRe);

    async function JRe(t, e, {configuration: r, report: i, workspace: n = null, locator: s = null}) {
        await qRe(async () => {
            await K.mktempPromise(async o => {
                let a = x.join(o, "pack.log"), l = null, {
                        stdout: c,
                        stderr: u
                    } = r.getSubprocessStreams(a, {prefix: H.fromPortablePath(t), report: i}), g = s && Xo(s) ? fd(s) : s,
                    f = g ? Ds(g) : "an external project";
                c.write(`Packing ${f} from sources
`);
                let h = await o6(t), p;
                h !== null ? (c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason}

`), p = h.packageManager) : (c.write(`No package manager configuration detected; defaulting to Yarn

`), p = hn.Yarn2), await K.mktempPromise(async m => {
                    let y = await qd({binFolder: m}), S = new Map([[hn.Yarn1, async () => {
                        let T = n !== null ? ["workspace", n] : [],
                            Y = await $o("yarn", ["set", "version", "classic", "--only-if-needed"], {
                                cwd: t,
                                env: y,
                                stdin: l,
                                stdout: c,
                                stderr: u,
                                end: ns.ErrorCode
                            });
                        if (Y.code !== 0) return Y.code;
                        await K.appendFilePromise(x.join(t, ".npmignore"), `/.yarn
`), c.write(`
`), delete y.NODE_ENV;
                        let j = await $o("yarn", ["install"], {
                            cwd: t,
                            env: y,
                            stdin: l,
                            stdout: c,
                            stderr: u,
                            end: ns.ErrorCode
                        });
                        if (j.code !== 0) return j.code;
                        c.write(`
`);
                        let Z = await $o("yarn", [...T, "pack", "--filename", H.fromPortablePath(e)], {
                            cwd: t,
                            env: y,
                            stdin: l,
                            stdout: c,
                            stderr: u
                        });
                        return Z.code !== 0 ? Z.code : 0
                    }], [hn.Yarn2, async () => {
                        let T = n !== null ? ["workspace", n] : [];
                        y.YARN_ENABLE_INLINE_BUILDS = "1";
                        let Y = x.join(t, Pt.lockfile);
                        await K.existsPromise(Y) || await K.writeFilePromise(Y, "");
                        let j = await $o("yarn", [...T, "pack", "--install-if-needed", "--filename", H.fromPortablePath(e)], {
                            cwd: t,
                            env: y,
                            stdin: l,
                            stdout: c,
                            stderr: u
                        });
                        return j.code !== 0 ? j.code : 0
                    }], [hn.Npm, async () => {
                        if (n !== null) {
                            let A = new Wc.PassThrough, oe = Fg(A);
                            A.pipe(c, {end: !1});
                            let le = await $o("npm", ["--version"], {
                                cwd: t,
                                env: y,
                                stdin: l,
                                stdout: A,
                                stderr: u,
                                end: ns.Never
                            });
                            if (A.end(), le.code !== 0) return c.end(), u.end(), le.code;
                            let X = (await oe).toString().trim();
                            if (!Uc(X, ">=7.x")) {
                                let O = Vo(null, "npm"), L = rr(O, X), pe = rr(O, ">=7.x");
                                throw new Error(`Workspaces aren't supported by ${sr(r, L)}; please upgrade to ${sr(r, pe)} (npm has been detected as the primary package manager for ${et(r, t, Ye.PATH)})`)
                            }
                        }
                        let T = n !== null ? ["--workspace", n] : [];
                        delete y.npm_config_user_agent, delete y.npm_config_production, delete y.NPM_CONFIG_PRODUCTION, delete y.NODE_ENV;
                        let Y = await $o("npm", ["install"], {
                            cwd: t,
                            env: y,
                            stdin: l,
                            stdout: c,
                            stderr: u,
                            end: ns.ErrorCode
                        });
                        if (Y.code !== 0) return Y.code;
                        let j = new Wc.PassThrough, Z = Fg(j);
                        j.pipe(c);
                        let J = await $o("npm", ["pack", "--silent", ...T], {
                            cwd: t,
                            env: y,
                            stdin: l,
                            stdout: j,
                            stderr: u
                        });
                        if (J.code !== 0) return J.code;
                        let re = (await Z).toString().trim().replace(/^.*\n/s, ""),
                            ee = x.resolve(t, H.toPortablePath(re));
                        return await K.renamePromise(ee, e), 0
                    }]]).get(p);
                    if (typeof S == "undefined") throw new Error("Assertion failed: Unsupported workflow");
                    let k = await S();
                    if (!(k === 0 || typeof k == "undefined")) throw K.detachTemp(o), new ct($.PACKAGE_PREPARATION_FAILED, `Packing the package failed (exit code ${k}, logs can be found here: ${et(r, a, Ye.PATH)})`)
                })
            })
        })
    }

    async function WRe(t, e, {project: r}) {
        let i = r.tryWorkspaceByLocator(t);
        if (i !== null) return fD(i, e);
        let n = r.storedPackages.get(t.locatorHash);
        if (!n) throw new Error(`Package for ${Bt(r.configuration, t)} not found in the project`);
        return await Es.openPromise(async s => {
            let o = r.configuration, a = r.configuration.getLinkers(),
                l = {project: r, report: new Je({stdout: new Wc.PassThrough, configuration: o})},
                c = a.find(h => h.supportsPackage(n, l));
            if (!c) throw new Error(`The package ${Bt(r.configuration, n)} isn't supported by any of the available linkers`);
            let u = await c.findPackageLocation(n, l), g = new _t(u, {baseFs: s});
            return (await At.find(Ke.dot, {baseFs: g})).scripts.has(e)
        }, {libzip: await fn()})
    }

    async function AB(t, e, r, {cwd: i, project: n, stdin: s, stdout: o, stderr: a}) {
        return await K.mktempPromise(async l => {
            let {manifest: c, env: u, cwd: g} = await a6(t, {project: n, binFolder: l, cwd: i, lifecycleScript: e}),
                f = c.scripts.get(e);
            if (typeof f == "undefined") return 1;
            let h = async () => await tB(f, r, {cwd: g, env: u, stdin: s, stdout: o, stderr: a});
            return await (await n.configuration.reduceHook(m => m.wrapScriptExecution, h, n, t, e, {
                script: f,
                args: r,
                cwd: g,
                env: u,
                stdin: s,
                stdout: o,
                stderr: a
            }))()
        })
    }

    async function hD(t, e, r, {cwd: i, project: n, stdin: s, stdout: o, stderr: a}) {
        return await K.mktempPromise(async l => {
            let {env: c, cwd: u} = await a6(t, {project: n, binFolder: l, cwd: i});
            return await tB(e, r, {cwd: u, env: c, stdin: s, stdout: o, stderr: a})
        })
    }

    async function zRe(t, {binFolder: e, cwd: r, lifecycleScript: i}) {
        let n = await qd({project: t.project, locator: t.anchoredLocator, binFolder: e, lifecycleScript: i});
        return await Promise.all(Array.from(await A6(t), ([s, [, o]]) => sA(e, Jr(s), process.execPath, [o]))), typeof r == "undefined" && (r = x.dirname(await K.realpathPromise(x.join(t.cwd, "package.json")))), {
            manifest: t.manifest,
            binFolder: e,
            env: n,
            cwd: r
        }
    }

    async function a6(t, {project: e, binFolder: r, cwd: i, lifecycleScript: n}) {
        let s = e.tryWorkspaceByLocator(t);
        if (s !== null) return zRe(s, {binFolder: r, cwd: i, lifecycleScript: n});
        let o = e.storedPackages.get(t.locatorHash);
        if (!o) throw new Error(`Package for ${Bt(e.configuration, t)} not found in the project`);
        return await Es.openPromise(async a => {
            let l = e.configuration, c = e.configuration.getLinkers(),
                u = {project: e, report: new Je({stdout: new Wc.PassThrough, configuration: l})},
                g = c.find(y => y.supportsPackage(o, u));
            if (!g) throw new Error(`The package ${Bt(e.configuration, o)} isn't supported by any of the available linkers`);
            let f = await qd({project: e, locator: t, binFolder: r, lifecycleScript: n});
            await Promise.all(Array.from(await lB(t, {project: e}), ([y, [, b]]) => sA(r, Jr(y), process.execPath, [b])));
            let h = await g.findPackageLocation(o, u), p = new _t(h, {baseFs: a}),
                m = await At.find(Ke.dot, {baseFs: p});
            return typeof i == "undefined" && (i = h), {manifest: m, binFolder: r, env: f, cwd: i}
        }, {libzip: await fn()})
    }

    async function l6(t, e, r, {cwd: i, stdin: n, stdout: s, stderr: o}) {
        return await AB(t.anchoredLocator, e, r, {cwd: i, project: t.project, stdin: n, stdout: s, stderr: o})
    }

    function fD(t, e) {
        return t.manifest.scripts.has(e)
    }

    async function c6(t, e, {cwd: r, report: i}) {
        let {configuration: n} = t.project, s = null;
        await K.mktempPromise(async o => {
            let a = x.join(o, `${e}.log`),
                l = `# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${H.fromPortablePath(t.cwd)}")
`, {stdout: c, stderr: u} = n.getSubprocessStreams(a, {report: i, prefix: Bt(n, t.anchoredLocator), header: l});
            i.reportInfo($.LIFECYCLE_SCRIPT, `Calling the "${e}" lifecycle script`);
            let g = await l6(t, e, [], {cwd: r, stdin: s, stdout: c, stderr: u});
            if (c.end(), u.end(), g !== 0) throw K.detachTemp(o), new ct($.LIFECYCLE_SCRIPT, `${(0, n6.default)(e)} script failed (exit code ${et(n, g, Ye.NUMBER)}, logs can be found here: ${et(n, a, Ye.PATH)}); run ${et(n, `yarn ${e}`, Ye.CODE)} to investigate`)
        })
    }

    async function _Re(t, e, r) {
        fD(t, e) && await c6(t, e, r)
    }

    async function lB(t, {project: e}) {
        let r = e.configuration, i = new Map, n = e.storedPackages.get(t.locatorHash);
        if (!n) throw new Error(`Package for ${Bt(r, t)} not found in the project`);
        let s = new Wc.Writable, o = r.getLinkers(), a = {project: e, report: new Je({configuration: r, stdout: s})},
            l = new Set([t.locatorHash]);
        for (let u of n.dependencies.values()) {
            let g = e.storedResolutions.get(u.descriptorHash);
            if (!g) throw new Error(`Assertion failed: The resolution (${sr(r, u)}) should have been registered`);
            l.add(g)
        }
        let c = await Promise.all(Array.from(l, async u => {
            let g = e.storedPackages.get(u);
            if (!g) throw new Error(`Assertion failed: The package (${u}) should have been registered`);
            if (g.bin.size === 0) return qo.skip;
            let f = o.find(p => p.supportsPackage(g, a));
            if (!f) return qo.skip;
            let h = null;
            try {
                h = await f.findPackageLocation(g, a)
            } catch (p) {
                if (p.code === "LOCATOR_NOT_INSTALLED") return qo.skip;
                throw p
            }
            return {dependency: g, packageLocation: h}
        }));
        for (let u of c) {
            if (u === qo.skip) continue;
            let {dependency: g, packageLocation: f} = u;
            for (let [h, p] of g.bin) i.set(h, [g, H.fromPortablePath(x.resolve(f, p))])
        }
        return i
    }

    async function A6(t) {
        return await lB(t.anchoredLocator, {project: t.project})
    }

    async function u6(t, e, r, {
        cwd: i,
        project: n,
        stdin: s,
        stdout: o,
        stderr: a,
        nodeArgs: l = [],
        packageAccessibleBinaries: c
    }) {
        c != null || (c = await lB(t, {project: n}));
        let u = c.get(e);
        if (!u) throw new Error(`Binary not found (${e}) for ${Bt(n.configuration, t)}`);
        return await K.mktempPromise(async g => {
            let [, f] = u, h = await qd({project: n, locator: t, binFolder: g});
            await Promise.all(Array.from(c, ([m, [, y]]) => sA(h.BERRY_BIN_FOLDER, Jr(m), process.execPath, [y])));
            let p;
            try {
                p = await $o(process.execPath, [...l, f, ...r], {cwd: i, env: h, stdin: s, stdout: o, stderr: a})
            } finally {
                await K.removePromise(h.BERRY_BIN_FOLDER)
            }
            return p.code
        })
    }

    async function VRe(t, e, r, {cwd: i, stdin: n, stdout: s, stderr: o, packageAccessibleBinaries: a}) {
        return await u6(t.anchoredLocator, e, r, {
            project: t.project,
            cwd: i,
            stdin: n,
            stdout: s,
            stderr: o,
            packageAccessibleBinaries: a
        })
    }

    var wi = {};
    ft(wi, {convertToZip: () => oLe, extractArchiveTo: () => ALe, makeArchiveFromDirectory: () => sLe});
    var i7 = ge(require("stream")), n7 = ge(X9());
    var Z9 = ge(require("os")), $9 = ge(lg()), e7 = ge(require("worker_threads")), vl = Symbol("kTaskInfo"),
        SR = class {
            constructor(e) {
                this.source = e;
                this.workers = [];
                this.limit = (0, $9.default)(Math.max(1, (0, Z9.cpus)().length));
                this.cleanupInterval = setInterval(() => {
                    if (this.limit.pendingCount === 0 && this.limit.activeCount === 0) {
                        let r = this.workers.pop();
                        r ? r.terminate() : clearInterval(this.cleanupInterval)
                    }
                }, 5e3).unref()
            }

            createWorker() {
                this.cleanupInterval.refresh();
                let e = new e7.Worker(this.source, {
                    eval: !0,
                    execArgv: [...process.execArgv, "--unhandled-rejections=strict"]
                });
                return e.on("message", r => {
                    if (!e[vl]) throw new Error("Assertion failed: Worker sent a result without having a task assigned");
                    e[vl].resolve(r), e[vl] = null, e.unref(), this.workers.push(e)
                }), e.on("error", r => {
                    var i;
                    (i = e[vl]) == null || i.reject(r), e[vl] = null
                }), e.on("exit", r => {
                    var i;
                    r !== 0 && ((i = e[vl]) == null || i.reject(new Error(`Worker exited with code ${r}`))), e[vl] = null
                }), e
            }

            run(e) {
                return this.limit(() => {
                    var i;
                    let r = (i = this.workers.pop()) != null ? i : this.createWorker();
                    return r.ref(), new Promise((n, s) => {
                        r[vl] = {resolve: n, reject: s}, r.postMessage(e)
                    })
                })
            }
        };
    var s7 = ge(r7());

    async function sLe(t, {baseFs: e = new ar, prefixPath: r = Ke.root, compressionLevel: i, inMemory: n = !1} = {}) {
        let s = await fn(), o;
        if (n) o = new Ai(null, {libzip: s, level: i}); else {
            let l = await K.mktempPromise(), c = x.join(l, "archive.zip");
            o = new Ai(c, {create: !0, libzip: s, level: i})
        }
        let a = x.resolve(Ke.root, r);
        return await o.copyPromise(a, t, {baseFs: e, stableTime: !0, stableSort: !0}), o
    }

    var o7;

    async function oLe(t, e) {
        let r = await K.mktempPromise(), i = x.join(r, "archive.zip");
        return o7 || (o7 = new SR((0, s7.getContent)())), await o7.run({
            tmpFile: i,
            tgz: t,
            opts: e
        }), new Ai(i, {libzip: await fn(), level: e.compressionLevel})
    }

    async function* aLe(t) {
        let e = new n7.default.Parse, r = new i7.PassThrough({objectMode: !0, autoDestroy: !0, emitClose: !0});
        e.on("entry", i => {
            r.write(i)
        }), e.on("error", i => {
            r.destroy(i)
        }), e.on("close", () => {
            r.destroyed || r.end()
        }), e.end(t);
        for await(let i of r) {
            let n = i;
            yield n, n.resume()
        }
    }

    async function ALe(t, e, {stripComponents: r = 0, prefixPath: i = Ke.dot} = {}) {
        var s, o;

        function n(a) {
            if (a.path[0] === "/") return !0;
            let l = a.path.split(/\//g);
            return !!(l.some(c => c === "..") || l.length <= r)
        }

        for await(let a of aLe(t)) {
            if (n(a)) continue;
            let l = x.normalize(H.toPortablePath(a.path)).replace(/\/$/, "").split(/\//g);
            if (l.length <= r) continue;
            let c = l.slice(r).join("/"), u = x.join(i, c), g = 420;
            switch ((a.type === "Directory" || (((s = a.mode) != null ? s : 0) & 73) != 0) && (g |= 73), a.type) {
                case"Directory":
                    e.mkdirpSync(x.dirname(u), {
                        chmod: 493,
                        utimes: [Dr.SAFE_TIME, Dr.SAFE_TIME]
                    }), e.mkdirSync(u, {mode: g}), e.utimesSync(u, Dr.SAFE_TIME, Dr.SAFE_TIME);
                    break;
                case"OldFile":
                case"File":
                    e.mkdirpSync(x.dirname(u), {
                        chmod: 493,
                        utimes: [Dr.SAFE_TIME, Dr.SAFE_TIME]
                    }), e.writeFileSync(u, await Fg(a), {mode: g}), e.utimesSync(u, Dr.SAFE_TIME, Dr.SAFE_TIME);
                    break;
                case"SymbolicLink":
                    e.mkdirpSync(x.dirname(u), {
                        chmod: 493,
                        utimes: [Dr.SAFE_TIME, Dr.SAFE_TIME]
                    }), e.symlinkSync(a.linkpath, u), (o = e.lutimesSync) == null || o.call(e, u, Dr.SAFE_TIME, Dr.SAFE_TIME);
                    break
            }
        }
        return e
    }

    var As = {};
    ft(As, {emitList: () => lLe, emitTree: () => g7, treeNodeToJson: () => u7, treeNodeToTreeify: () => c7});
    var l7 = ge(A7());

    function c7(t, {configuration: e}) {
        let r = {}, i = (n, s) => {
            let o = Array.isArray(n) ? n.entries() : Object.entries(n);
            for (let [a, {label: l, value: c, children: u}] of o) {
                let g = [];
                typeof l != "undefined" && g.push(Ty(e, l, Dc.BOLD)), typeof c != "undefined" && g.push(et(e, c[0], c[1])), g.length === 0 && g.push(Ty(e, `${a}`, Dc.BOLD));
                let f = g.join(": "), h = s[f] = {};
                typeof u != "undefined" && i(u, h)
            }
        };
        if (typeof t.children == "undefined") throw new Error("The root node must only contain children");
        return i(t.children, r), r
    }

    function u7(t) {
        let e = r => {
            var s;
            if (typeof r.children == "undefined") {
                if (typeof r.value == "undefined") throw new Error("Assertion failed: Expected a value to be set if the children are missing");
                return Rc(r.value[0], r.value[1])
            }
            let i = Array.isArray(r.children) ? r.children.entries() : Object.entries((s = r.children) != null ? s : {}),
                n = Array.isArray(r.children) ? [] : {};
            for (let [o, a] of i) n[o] = e(a);
            return typeof r.value == "undefined" ? n : {value: Rc(r.value[0], r.value[1]), children: n}
        };
        return e(t)
    }

    function lLe(t, {configuration: e, stdout: r, json: i}) {
        let n = t.map(s => ({value: s}));
        g7({children: n}, {configuration: e, stdout: r, json: i})
    }

    function g7(t, {configuration: e, stdout: r, json: i, separators: n = 0}) {
        var o;
        if (i) {
            let a = Array.isArray(t.children) ? t.children.values() : Object.values((o = t.children) != null ? o : {});
            for (let l of a) r.write(`${JSON.stringify(u7(l))}
`);
            return
        }
        let s = (0, l7.asTree)(c7(t, {configuration: e}), !1, !1);
        if (n >= 1 && (s = s.replace(/^([├└]─)/gm, `\u2502
$1`).replace(/^│\n/, "")), n >= 2) for (let a = 0; a < 2; ++a) s = s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm, `$1$3  \u2502
$2`).replace(/^│\n/, "");
        if (n >= 3) throw new Error("Only the first two levels are accepted by treeUtils.emitTree");
        r.write(s)
    }

    var f7 = ge(require("crypto")), PR = ge(require("fs"));
    var cLe = 8, Nt = class {
        constructor(e, {configuration: r, immutable: i = r.get("enableImmutableCache"), check: n = !1}) {
            this.markedFiles = new Set;
            this.mutexes = new Map;
            this.cacheId = `-${(0, f7.randomBytes)(8).toString("hex")}.tmp`;
            this.configuration = r, this.cwd = e, this.immutable = i, this.check = n;
            let s = r.get("cacheKeyOverride");
            if (s !== null) this.cacheKey = `${s}`; else {
                let o = r.get("compressionLevel"), a = o !== nc ? `c${o}` : "";
                this.cacheKey = [cLe, a].join("")
            }
        }

        static async find(e, {immutable: r, check: i} = {}) {
            let n = new Nt(e.get("cacheFolder"), {configuration: e, immutable: r, check: i});
            return await n.setup(), n
        }

        get mirrorCwd() {
            if (!this.configuration.get("enableMirror")) return null;
            let e = `${this.configuration.get("globalFolder")}/cache`;
            return e !== this.cwd ? e : null
        }

        getVersionFilename(e) {
            return `${jg(e)}-${this.cacheKey}.zip`
        }

        getChecksumFilename(e, r) {
            let n = uLe(r).slice(0, 10);
            return `${jg(e)}-${n}.zip`
        }

        getLocatorPath(e, r, i = {}) {
            var s;
            return this.mirrorCwd === null || ((s = i.unstablePackages) == null ? void 0 : s.has(e.locatorHash)) ? x.resolve(this.cwd, this.getVersionFilename(e)) : r === null || DR(r) !== this.cacheKey ? null : x.resolve(this.cwd, this.getChecksumFilename(e, r))
        }

        getLocatorMirrorPath(e) {
            let r = this.mirrorCwd;
            return r !== null ? x.resolve(r, this.getVersionFilename(e)) : null
        }

        async setup() {
            if (!this.configuration.get("enableGlobalCache")) if (this.immutable) {
                if (!await K.existsPromise(this.cwd)) throw new ct($.IMMUTABLE_CACHE, "Cache path does not exist.")
            } else {
                await K.mkdirPromise(this.cwd, {recursive: !0});
                let e = x.resolve(this.cwd, ".gitignore");
                await K.changeFilePromise(e, `/.gitignore
*.flock
*.tmp
`)
            }
            (this.mirrorCwd || !this.immutable) && await K.mkdirPromise(this.mirrorCwd || this.cwd, {recursive: !0})
        }

        async fetchPackageFromCache(e, r, a) {
            var l = a, {onHit: i, onMiss: n, loader: s} = l, o = Tr(l, ["onHit", "onMiss", "loader"]);
            var A;
            let c = this.getLocatorMirrorPath(e), u = new ar, g = () => {
                let oe = new Ai(null, {libzip: Y}), le = x.join(Ke.root, gx(e));
                return oe.mkdirSync(le, {recursive: !0}), oe.writeJsonSync(x.join(le, Pt.manifest), {
                    name: Ot(e),
                    mocked: !0
                }), oe
            }, f = async (oe, le = null) => {
                var O;
                if (le === null && ((O = o.unstablePackages) == null ? void 0 : O.has(e.locatorHash))) return null;
                let X = !o.skipIntegrityCheck || !r ? `${this.cacheKey}/${await lw(oe)}` : r;
                if (le !== null) {
                    let L = !o.skipIntegrityCheck || !r ? `${this.cacheKey}/${await lw(le)}` : r;
                    if (X !== L) throw new ct($.CACHE_CHECKSUM_MISMATCH, "The remote archive doesn't match the local checksum - has the local cache been corrupted?")
                }
                if (r !== null && X !== r) {
                    let L;
                    switch (this.check ? L = "throw" : DR(r) !== DR(X) ? L = "update" : L = this.configuration.get("checksumBehavior"), L) {
                        case"ignore":
                            return r;
                        case"update":
                            return X;
                        default:
                        case"throw":
                            throw new ct($.CACHE_CHECKSUM_MISMATCH, "The remote archive doesn't match the expected checksum")
                    }
                }
                return X
            }, h = async oe => {
                if (!s) throw new Error(`Cache check required but no loader configured for ${Bt(this.configuration, e)}`);
                let le = await s(), X = le.getRealPath();
                return le.saveAndClose(), await K.chmodPromise(X, 420), await f(oe, X)
            }, p = async () => {
                if (c === null || !await K.existsPromise(c)) {
                    let oe = await s(), le = oe.getRealPath();
                    return oe.saveAndClose(), {source: "loader", path: le}
                }
                return {source: "mirror", path: c}
            }, m = async () => {
                if (!s) throw new Error(`Cache entry required but missing for ${Bt(this.configuration, e)}`);
                if (this.immutable) throw new ct($.IMMUTABLE_CACHE, `Cache entry required but missing for ${Bt(this.configuration, e)}`);
                let {path: oe, source: le} = await p(), X = await f(oe), O = this.getLocatorPath(e, X, o);
                if (!O) throw new Error("Assertion failed: Expected the cache path to be available");
                let L = [];
                le !== "mirror" && c !== null && L.push(async () => {
                    let Ce = `${c}${this.cacheId}`;
                    await K.copyFilePromise(oe, Ce, PR.default.constants.COPYFILE_FICLONE), await K.chmodPromise(Ce, 420), await K.renamePromise(Ce, c)
                }), (!o.mirrorWriteOnly || c === null) && L.push(async () => {
                    let Ce = `${O}${this.cacheId}`;
                    await K.copyFilePromise(oe, Ce, PR.default.constants.COPYFILE_FICLONE), await K.chmodPromise(Ce, 420), await K.renamePromise(Ce, O)
                });
                let pe = o.mirrorWriteOnly && c != null ? c : O;
                return await Promise.all(L.map(Ce => Ce())), [!1, pe, X]
            }, y = async () => {
                let le = (async () => {
                    var Oe;
                    let X = this.getLocatorPath(e, r, o), O = X !== null ? await u.existsPromise(X) : !1,
                        L = !!((Oe = o.mockedPackages) == null ? void 0 : Oe.has(e.locatorHash)) && (!this.check || !O),
                        pe = L || O, Ce = pe ? i : n;
                    if (Ce && Ce(), pe) {
                        let te = null, se = X;
                        return L || (te = this.check ? await h(se) : await f(se)), [L, se, te]
                    } else return m()
                })();
                this.mutexes.set(e.locatorHash, le);
                try {
                    return await le
                } finally {
                    this.mutexes.delete(e.locatorHash)
                }
            };
            for (let oe; oe = this.mutexes.get(e.locatorHash);) await oe;
            let [b, S, k] = await y();
            this.markedFiles.add(S);
            let T, Y = await fn(), j = b ? () => g() : () => new Ai(S, {baseFs: u, libzip: Y, readOnly: !0}),
                Z = new Vh(() => YS(() => T = j(), oe => `Failed to open the cache entry for ${Bt(this.configuration, e)}: ${oe}`), x),
                J = new Da(S, {baseFs: Z, pathUtils: x}), re = () => {
                    T == null || T.discardAndClose()
                }, ee = ((A = o.unstablePackages) == null ? void 0 : A.has(e.locatorHash)) ? null : k;
            return [J, re, ee]
        }
    };

    function DR(t) {
        let e = t.indexOf("/");
        return e !== -1 ? t.slice(0, e) : null
    }

    function uLe(t) {
        let e = t.indexOf("/");
        return e !== -1 ? t.slice(e + 1) : t
    }

    var ls;
    (function (r) {
        r[r.SCRIPT = 0] = "SCRIPT", r[r.SHELLCODE = 1] = "SHELLCODE"
    })(ls || (ls = {}));
    var gA = class extends Ji {
        constructor({configuration: e, stdout: r, suggestInstall: i = !0}) {
            super();
            this.errorCount = 0;
            sd(this, {configuration: e}), this.configuration = e, this.stdout = r, this.suggestInstall = i
        }

        static async start(e, r) {
            let i = new this(e);
            try {
                await r(i)
            } catch (n) {
                i.reportExceptionOnce(n)
            } finally {
                await i.finalize()
            }
            return i
        }

        hasErrors() {
            return this.errorCount > 0
        }

        exitCode() {
            return this.hasErrors() ? 1 : 0
        }

        reportCacheHit(e) {
        }

        reportCacheMiss(e) {
        }

        startSectionSync(e, r) {
            return r()
        }

        async startSectionPromise(e, r) {
            return await r()
        }

        startTimerSync(e, r, i) {
            return (typeof r == "function" ? r : i)()
        }

        async startTimerPromise(e, r, i) {
            return await (typeof r == "function" ? r : i)()
        }

        async startCacheReport(e) {
            return await e()
        }

        reportSeparator() {
        }

        reportInfo(e, r) {
        }

        reportWarning(e, r) {
        }

        reportError(e, r) {
            this.errorCount += 1, this.stdout.write(`${et(this.configuration, "\u27A4", "redBright")} ${this.formatNameWithHyperlink(e)}: ${r}
`)
        }

        reportProgress(e) {
            let r = Promise.resolve().then(async () => {
                for await(let {} of e) ;
            }), i = () => {
            };
            return ie(N({}, r), {stop: i})
        }

        reportJson(e) {
        }

        async finalize() {
            this.errorCount > 0 && (this.stdout.write(`
`), this.stdout.write(`${et(this.configuration, "\u27A4", "redBright")} Errors happened when preparing the environment required to run this command.
`), this.suggestInstall && this.stdout.write(`${et(this.configuration, "\u27A4", "redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.
`))
        }

        formatNameWithHyperlink(e) {
            return gD(e, {configuration: this.configuration, json: !1})
        }
    };
    var p0 = ge(require("crypto")), n$ = ge(V7()), d0 = ge(r$()), s$ = ge(lg()), o$ = ge(ri()),
        sF = ge(require("util")), oF = ge(require("v8")), aF = ge(require("zlib"));
    var WKe = [[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/, (t, e, r, i) => `${r}#commit=${i}`], [/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/, (t, e, r = "", i, n) => `https://${r}github.com/${i}.git#commit=${n}`], [/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/, (t, e, r = "", i, n) => `https://${r}github.com/${i}.git#commit=${n}`], [/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/, t => `npm:${t}`], [/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/, t => `npm:${t}`], [/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/, t => `npm:${t}`], [/^https?:\/\/(?:[^\\.]+)\.jfrog\.io\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/, (t, e) => hw({
        protocol: "npm:",
        source: null,
        selector: t,
        params: {__archiveUrl: e}
    })], [/^[^/]+\.tgz#[0-9a-f]+$/, t => `npm:${t}`]], rF = class {
        constructor(e) {
            this.resolver = e;
            this.resolutions = null
        }

        async setup(e, {report: r}) {
            let i = x.join(e.cwd, e.configuration.get("lockfileFilename"));
            if (!K.existsSync(i)) return;
            let n = await K.readFilePromise(i, "utf8"), s = Qi(n);
            if (Object.prototype.hasOwnProperty.call(s, "__metadata")) return;
            let o = this.resolutions = new Map;
            for (let a of Object.keys(s)) {
                let l = dd(a);
                if (!l) {
                    r.reportWarning($.YARN_IMPORT_FAILED, `Failed to parse the string "${a}" into a proper descriptor`);
                    continue
                }
                ho(l.range) && (l = rr(l, `npm:${l.range}`));
                let {version: c, resolved: u} = s[a];
                if (!u) continue;
                let g;
                for (let [h, p] of WKe) {
                    let m = u.match(h);
                    if (m) {
                        g = p(c, ...m);
                        break
                    }
                }
                if (!g) {
                    r.reportWarning($.YARN_IMPORT_FAILED, `${sr(e.configuration, l)}: Only some patterns can be imported from legacy lockfiles (not "${u}")`);
                    continue
                }
                let f = l;
                try {
                    let h = Gg(l.range), p = dd(h.selector, !0);
                    p && (f = p)
                } catch {
                }
                o.set(l.descriptorHash, cn(f, g))
            }
        }

        supportsDescriptor(e, r) {
            return this.resolutions ? this.resolutions.has(e.descriptorHash) : !1
        }

        supportsLocator(e, r) {
            return !1
        }

        shouldPersistResolution(e, r) {
            throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")
        }

        bindDescriptor(e, r, i) {
            return e
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            if (!this.resolutions) throw new Error("Assertion failed: The resolution store should have been setup");
            let n = this.resolutions.get(e.descriptorHash);
            if (!n) throw new Error("Assertion failed: The resolution should have been registered");
            return await this.resolver.getCandidates(ax(n), r, i)
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")
        }
    };
    var iF = class {
        constructor(e) {
            this.resolver = e
        }

        supportsDescriptor(e, r) {
            return !!(r.project.storedResolutions.get(e.descriptorHash) || r.project.originalPackages.has(gw(e).locatorHash))
        }

        supportsLocator(e, r) {
            return !!(r.project.originalPackages.has(e.locatorHash) && !r.project.lockfileNeedsRefresh)
        }

        shouldPersistResolution(e, r) {
            throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")
        }

        bindDescriptor(e, r, i) {
            return e
        }

        getResolutionDependencies(e, r) {
            return this.resolver.getResolutionDependencies(e, r)
        }

        async getCandidates(e, r, i) {
            let n = i.project.originalPackages.get(gw(e).locatorHash);
            if (n) return [n];
            let s = i.project.storedResolutions.get(e.descriptorHash);
            if (!s) throw new Error("Expected the resolution to have been successful - resolution not found");
            if (n = i.project.originalPackages.get(s), !n) throw new Error("Expected the resolution to have been successful - package not found");
            return [n]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            let i = r.project.originalPackages.get(e.locatorHash);
            if (!i) throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");
            return i
        }
    };
    var nF = class {
        constructor(e) {
            this.resolver = e
        }

        supportsDescriptor(e, r) {
            return this.resolver.supportsDescriptor(e, r)
        }

        supportsLocator(e, r) {
            return this.resolver.supportsLocator(e, r)
        }

        shouldPersistResolution(e, r) {
            return this.resolver.shouldPersistResolution(e, r)
        }

        bindDescriptor(e, r, i) {
            return this.resolver.bindDescriptor(e, r, i)
        }

        getResolutionDependencies(e, r) {
            return this.resolver.getResolutionDependencies(e, r)
        }

        async getCandidates(e, r, i) {
            throw new ct($.MISSING_LOCKFILE_ENTRY, `This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)
        }

        async getSatisfying(e, r, i) {
            throw new ct($.MISSING_LOCKFILE_ENTRY, `This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)
        }

        async resolve(e, r) {
            throw new ct($.MISSING_LOCKFILE_ENTRY, `This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)
        }
    };
    var pi = class extends Ji {
        reportCacheHit(e) {
        }

        reportCacheMiss(e) {
        }

        startSectionSync(e, r) {
            return r()
        }

        async startSectionPromise(e, r) {
            return await r()
        }

        startTimerSync(e, r, i) {
            return (typeof r == "function" ? r : i)()
        }

        async startTimerPromise(e, r, i) {
            return await (typeof r == "function" ? r : i)()
        }

        async startCacheReport(e) {
            return await e()
        }

        reportSeparator() {
        }

        reportInfo(e, r) {
        }

        reportWarning(e, r) {
        }

        reportError(e, r) {
        }

        reportProgress(e) {
            let r = Promise.resolve().then(async () => {
                for await(let {} of e) ;
            }), i = () => {
            };
            return ie(N({}, r), {stop: i})
        }

        reportJson(e) {
        }

        async finalize() {
        }
    };
    var i$ = ge(sx());
    var bC = class {
        constructor(e, {project: r}) {
            this.workspacesCwds = new Set;
            this.dependencies = new Map;
            this.project = r, this.cwd = e
        }

        async setup() {
            var s;
            this.manifest = (s = await At.tryFind(this.cwd)) != null ? s : new At, this.relativeCwd = x.relative(this.project.cwd, this.cwd) || Ke.dot;
            let e = this.manifest.name ? this.manifest.name : Vo(null, `${this.computeCandidateName()}-${ln(this.relativeCwd).substring(0, 6)}`),
                r = this.manifest.version ? this.manifest.version : "0.0.0";
            this.locator = cn(e, r), this.anchoredDescriptor = rr(this.locator, `${oi.protocol}${this.relativeCwd}`), this.anchoredLocator = cn(this.locator, `${oi.protocol}${this.relativeCwd}`);
            let i = this.manifest.workspaceDefinitions.map(({pattern: o}) => o), n = await (0, i$.default)(i, {
                cwd: H.fromPortablePath(this.cwd),
                expandDirectories: !1,
                onlyDirectories: !0,
                onlyFiles: !1,
                ignore: ["**/node_modules", "**/.git", "**/.yarn"]
            });
            n.sort();
            for (let o of n) {
                let a = x.resolve(this.cwd, H.toPortablePath(o));
                K.existsSync(x.join(a, "package.json")) && this.workspacesCwds.add(a)
            }
        }

        accepts(e) {
            var o;
            let r = e.indexOf(":"), i = r !== -1 ? e.slice(0, r + 1) : null, n = r !== -1 ? e.slice(r + 1) : e;
            if (i === oi.protocol && x.normalize(n) === this.relativeCwd || i === oi.protocol && (n === "*" || n === "^" || n === "~")) return !0;
            let s = ho(n);
            return s ? i === oi.protocol ? s.test((o = this.manifest.version) != null ? o : "0.0.0") : this.project.configuration.get("enableTransparentWorkspaces") && this.manifest.version !== null ? s.test(this.manifest.version) : !1 : !1
        }

        computeCandidateName() {
            return this.cwd === this.project.cwd ? "root-workspace" : `${x.basename(this.cwd)}` || "unnamed-workspace"
        }

        getRecursiveWorkspaceDependencies({dependencies: e = At.hardDependencies} = {}) {
            let r = new Set, i = n => {
                for (let s of e) for (let o of n.manifest[s].values()) {
                    let a = this.project.tryWorkspaceByDescriptor(o);
                    a === null || r.has(a) || (r.add(a), i(a))
                }
            };
            return i(this), r
        }

        getRecursiveWorkspaceDependents({dependencies: e = At.hardDependencies} = {}) {
            let r = new Set, i = n => {
                for (let s of this.project.workspaces) e.some(a => [...s.manifest[a].values()].some(l => {
                    let c = this.project.tryWorkspaceByDescriptor(l);
                    return c !== null && pd(c.anchoredLocator, n.anchoredLocator)
                })) && !r.has(s) && (r.add(s), i(s))
            };
            return i(this), r
        }

        getRecursiveWorkspaceChildren() {
            let e = [];
            for (let r of this.workspacesCwds) {
                let i = this.project.workspacesByCwd.get(r);
                i && e.push(i, ...i.getRecursiveWorkspaceChildren())
            }
            return e
        }

        async persistManifest() {
            let e = {};
            this.manifest.exportTo(e);
            let r = x.join(this.cwd, At.fileName), i = `${JSON.stringify(e, null, this.manifest.indent)}
`;
            await K.changeFilePromise(r, i, {automaticNewlines: !0}), this.manifest.raw = e
        }
    };
    var a$ = 6, zKe = 1, _Ke = / *, */g, A$ = /\/$/, VKe = 32, XKe = (0, sF.promisify)(aF.default.gzip),
        ZKe = (0, sF.promisify)(aF.default.gunzip), di;
    (function (r) {
        r.UpdateLockfile = "update-lockfile", r.SkipBuild = "skip-build"
    })(di || (di = {}));
    var AF = {
        restoreInstallersCustomData: ["installersCustomData"],
        restoreResolutions: ["accessibleLocators", "conditionalLocators", "disabledLocators", "optionalBuilds", "storedDescriptors", "storedResolutions", "storedPackages", "lockFileChecksum"],
        restoreBuildState: ["storedBuildState"]
    }, l$ = t => ln(`${zKe}`, t), ze = class {
        constructor(e, {configuration: r}) {
            this.resolutionAliases = new Map;
            this.workspaces = [];
            this.workspacesByCwd = new Map;
            this.workspacesByIdent = new Map;
            this.storedResolutions = new Map;
            this.storedDescriptors = new Map;
            this.storedPackages = new Map;
            this.storedChecksums = new Map;
            this.storedBuildState = new Map;
            this.accessibleLocators = new Set;
            this.conditionalLocators = new Set;
            this.disabledLocators = new Set;
            this.originalPackages = new Map;
            this.optionalBuilds = new Set;
            this.lockfileNeedsRefresh = !1;
            this.peerRequirements = new Map;
            this.installersCustomData = new Map;
            this.lockFileChecksum = null;
            this.installStateChecksum = null;
            this.configuration = r, this.cwd = e
        }

        static async find(e, r) {
            var p, m, y;
            if (!e.projectCwd) throw new Pe(`No project found in ${r}`);
            let i = e.projectCwd, n = r, s = null;
            for (; s !== e.projectCwd;) {
                if (s = n, K.existsSync(x.join(s, Pt.manifest))) {
                    i = s;
                    break
                }
                n = x.dirname(s)
            }
            let o = new ze(e.projectCwd, {configuration: e});
            (p = we.telemetry) == null || p.reportProject(o.cwd), await o.setupResolutions(), await o.setupWorkspaces(), (m = we.telemetry) == null || m.reportWorkspaceCount(o.workspaces.length), (y = we.telemetry) == null || y.reportDependencyCount(o.workspaces.reduce((b, S) => b + S.manifest.dependencies.size + S.manifest.devDependencies.size, 0));
            let a = o.tryWorkspaceByCwd(i);
            if (a) return {project: o, workspace: a, locator: a.anchoredLocator};
            let l = await o.findLocatorForLocation(`${i}/`, {strict: !0});
            if (l) return {project: o, locator: l, workspace: null};
            let c = et(e, o.cwd, Ye.PATH), u = et(e, x.relative(o.cwd, i), Ye.PATH),
                g = `- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,
                f = `- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,
                h = `- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;
            throw new Pe(`The nearest package directory (${et(e, i, Ye.PATH)}) doesn't seem to be part of the project declared in ${et(e, o.cwd, Ye.PATH)}.

${[g, f, h].join(`
`)}`)
        }

        async setupResolutions() {
            var i;
            this.storedResolutions = new Map, this.storedDescriptors = new Map, this.storedPackages = new Map, this.lockFileChecksum = null;
            let e = x.join(this.cwd, this.configuration.get("lockfileFilename")),
                r = this.configuration.get("defaultLanguageName");
            if (K.existsSync(e)) {
                let n = await K.readFilePromise(e, "utf8");
                this.lockFileChecksum = l$(n);
                let s = Qi(n);
                if (s.__metadata) {
                    let o = s.__metadata.version, a = s.__metadata.cacheKey;
                    this.lockfileNeedsRefresh = o < a$;
                    for (let l of Object.keys(s)) {
                        if (l === "__metadata") continue;
                        let c = s[l];
                        if (typeof c.resolution == "undefined") throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);
                        let u = Kc(c.resolution, !0), g = new At;
                        g.load(c, {yamlCompatibilityMode: !0});
                        let f = g.version, h = g.languageName || r, p = c.linkType.toUpperCase(),
                            m = (i = c.conditions) != null ? i : null, y = g.dependencies, b = g.peerDependencies,
                            S = g.dependenciesMeta, k = g.peerDependenciesMeta, T = g.bin;
                        if (c.checksum != null) {
                            let j = typeof a != "undefined" && !c.checksum.includes("/") ? `${a}/${c.checksum}` : c.checksum;
                            this.storedChecksums.set(u.locatorHash, j)
                        }
                        let Y = ie(N({}, u), {
                            version: f,
                            languageName: h,
                            linkType: p,
                            conditions: m,
                            dependencies: y,
                            peerDependencies: b,
                            dependenciesMeta: S,
                            peerDependenciesMeta: k,
                            bin: T
                        });
                        this.originalPackages.set(Y.locatorHash, Y);
                        for (let j of l.split(_Ke)) {
                            let Z = sl(j);
                            this.storedDescriptors.set(Z.descriptorHash, Z), this.storedResolutions.set(Z.descriptorHash, u.locatorHash)
                        }
                    }
                }
            }
        }

        async setupWorkspaces() {
            this.workspaces = [], this.workspacesByCwd = new Map, this.workspacesByIdent = new Map;
            let e = [this.cwd];
            for (; e.length > 0;) {
                let r = e;
                e = [];
                for (let i of r) {
                    if (this.workspacesByCwd.has(i)) continue;
                    let n = await this.addWorkspace(i), s = this.storedPackages.get(n.anchoredLocator.locatorHash);
                    s && (n.dependencies = s.dependencies);
                    for (let o of n.workspacesCwds) e.push(o)
                }
            }
        }

        async addWorkspace(e) {
            let r = new bC(e, {project: this});
            await r.setup();
            let i = this.workspacesByIdent.get(r.locator.identHash);
            if (typeof i != "undefined") throw new Error(`Duplicate workspace name ${gi(this.configuration, r.locator)}: ${H.fromPortablePath(e)} conflicts with ${H.fromPortablePath(i.cwd)}`);
            return this.workspaces.push(r), this.workspacesByCwd.set(e, r), this.workspacesByIdent.set(r.locator.identHash, r), r
        }

        get topLevelWorkspace() {
            return this.getWorkspaceByCwd(this.cwd)
        }

        tryWorkspaceByCwd(e) {
            x.isAbsolute(e) || (e = x.resolve(this.cwd, e)), e = x.normalize(e).replace(/\/+$/, "");
            let r = this.workspacesByCwd.get(e);
            return r || null
        }

        getWorkspaceByCwd(e) {
            let r = this.tryWorkspaceByCwd(e);
            if (!r) throw new Error(`Workspace not found (${e})`);
            return r
        }

        tryWorkspaceByFilePath(e) {
            let r = null;
            for (let i of this.workspaces) x.relative(i.cwd, e).startsWith("../") || r && r.cwd.length >= i.cwd.length || (r = i);
            return r || null
        }

        getWorkspaceByFilePath(e) {
            let r = this.tryWorkspaceByFilePath(e);
            if (!r) throw new Error(`Workspace not found (${e})`);
            return r
        }

        tryWorkspaceByIdent(e) {
            let r = this.workspacesByIdent.get(e.identHash);
            return typeof r == "undefined" ? null : r
        }

        getWorkspaceByIdent(e) {
            let r = this.tryWorkspaceByIdent(e);
            if (!r) throw new Error(`Workspace not found (${gi(this.configuration, e)})`);
            return r
        }

        tryWorkspaceByDescriptor(e) {
            let r = this.tryWorkspaceByIdent(e);
            return r === null || (nl(e) && (e = gd(e)), !r.accepts(e.range)) ? null : r
        }

        getWorkspaceByDescriptor(e) {
            let r = this.tryWorkspaceByDescriptor(e);
            if (r === null) throw new Error(`Workspace not found (${sr(this.configuration, e)})`);
            return r
        }

        tryWorkspaceByLocator(e) {
            let r = this.tryWorkspaceByIdent(e);
            return r === null || (Xo(e) && (e = fd(e)), r.locator.locatorHash !== e.locatorHash && r.anchoredLocator.locatorHash !== e.locatorHash) ? null : r
        }

        getWorkspaceByLocator(e) {
            let r = this.tryWorkspaceByLocator(e);
            if (!r) throw new Error(`Workspace not found (${Bt(this.configuration, e)})`);
            return r
        }

        refreshWorkspaceDependencies() {
            for (let e of this.workspaces) {
                let r = this.storedPackages.get(e.anchoredLocator.locatorHash);
                if (!r) throw new Error(`Assertion failed: Expected workspace ${md(this.configuration, e)} (${et(this.configuration, x.join(e.cwd, Pt.manifest), Ye.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);
                e.dependencies = new Map(r.dependencies)
            }
        }

        forgetResolution(e) {
            let r = n => {
                this.storedResolutions.delete(n), this.storedDescriptors.delete(n)
            }, i = n => {
                this.originalPackages.delete(n), this.storedPackages.delete(n), this.accessibleLocators.delete(n)
            };
            if ("descriptorHash" in e) {
                let n = this.storedResolutions.get(e.descriptorHash);
                r(e.descriptorHash);
                let s = new Set(this.storedResolutions.values());
                typeof n != "undefined" && !s.has(n) && i(n)
            }
            if ("locatorHash" in e) {
                i(e.locatorHash);
                for (let [n, s] of this.storedResolutions) s === e.locatorHash && r(n)
            }
        }

        forgetTransientResolutions() {
            let e = this.configuration.makeResolver();
            for (let r of this.originalPackages.values()) {
                let i;
                try {
                    i = e.shouldPersistResolution(r, {project: this, resolver: e})
                } catch {
                    i = !1
                }
                i || this.forgetResolution(r)
            }
        }

        forgetVirtualResolutions() {
            for (let e of this.storedPackages.values()) for (let [r, i] of e.dependencies) nl(i) && e.dependencies.set(r, gd(i))
        }

        getDependencyMeta(e, r) {
            let i = {}, s = this.topLevelWorkspace.manifest.dependenciesMeta.get(Ot(e));
            if (!s) return i;
            let o = s.get(null);
            if (o && Object.assign(i, o), r === null || !o$.default.valid(r)) return i;
            for (let [a, l] of s) a !== null && a === r && Object.assign(i, l);
            return i
        }

        async findLocatorForLocation(e, {strict: r = !1} = {}) {
            let i = new pi, n = this.configuration.getLinkers(), s = {project: this, report: i};
            for (let o of n) {
                let a = await o.findPackageLocator(e, s);
                if (a) {
                    if (r && (await o.findPackageLocation(a, s)).replace(A$, "") !== e.replace(A$, "")) continue;
                    return a
                }
            }
            return null
        }

        async resolveEverything(e) {
            if (!this.workspacesByCwd || !this.workspacesByIdent) throw new Error("Workspaces must have been setup before calling this function");
            this.forgetVirtualResolutions(), e.lockfileOnly || this.forgetTransientResolutions();
            let r = e.resolver || this.configuration.makeResolver(), i = new rF(r);
            await i.setup(this, {report: e.report});
            let n = e.lockfileOnly ? [new nF(r)] : [i, r], s = new Bd([new iF(r), ...n]),
                o = this.configuration.makeFetcher(),
                a = e.lockfileOnly ? {project: this, report: e.report, resolver: s} : {
                    project: this,
                    report: e.report,
                    resolver: s,
                    fetchOptions: {
                        project: this,
                        cache: e.cache,
                        checksums: this.storedChecksums,
                        report: e.report,
                        fetcher: o,
                        cacheOptions: {mirrorWriteOnly: !0}
                    }
                }, l = new Map, c = new Map, u = new Map, g = new Map, f = new Map, h = new Map,
                p = this.topLevelWorkspace.anchoredLocator, m = new Set, y = [], b = wx(),
                S = this.configuration.getSupportedArchitectures();
            await e.report.startProgressPromise(Ji.progressViaTitle(), async re => {
                let ee = async O => {
                    let L = await Rg(async () => await s.resolve(O, a), Oe => `${Bt(this.configuration, O)}: ${Oe}`);
                    if (!pd(O, L)) throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Bt(this.configuration, O)} to ${Bt(this.configuration, L)})`);
                    g.set(L.locatorHash, L);
                    let pe = this.configuration.normalizePackage(L);
                    for (let [Oe, te] of pe.dependencies) {
                        let se = await this.configuration.reduceHook(he => he.reduceDependency, te, this, pe, te, {
                            resolver: s,
                            resolveOptions: a
                        });
                        if (!hd(te, se)) throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");
                        let be = s.bindDescriptor(se, O, a);
                        pe.dependencies.set(Oe, be)
                    }
                    let Ce = uo([...pe.dependencies.values()].map(Oe => X(Oe)));
                    return y.push(Ce), Ce.catch(() => {
                    }), c.set(pe.locatorHash, pe), pe
                }, A = async O => {
                    let L = f.get(O.locatorHash);
                    if (typeof L != "undefined") return L;
                    let pe = Promise.resolve().then(() => ee(O));
                    return f.set(O.locatorHash, pe), pe
                }, oe = async (O, L) => {
                    let pe = await X(L);
                    return l.set(O.descriptorHash, O), u.set(O.descriptorHash, pe.locatorHash), pe
                }, le = async O => {
                    re.setTitle(sr(this.configuration, O));
                    let L = this.resolutionAliases.get(O.descriptorHash);
                    if (typeof L != "undefined") return oe(O, this.storedDescriptors.get(L));
                    let pe = s.getResolutionDependencies(O, a), Ce = new Map(await uo(pe.map(async se => {
                            let be = s.bindDescriptor(se, p, a), he = await X(be);
                            return m.add(he.locatorHash), [se.descriptorHash, he]
                        }))),
                        te = (await Rg(async () => await s.getCandidates(O, Ce, a), se => `${sr(this.configuration, O)}: ${se}`))[0];
                    if (typeof te == "undefined") throw new Error(`${sr(this.configuration, O)}: No candidates found`);
                    return l.set(O.descriptorHash, O), u.set(O.descriptorHash, te.locatorHash), A(te)
                }, X = O => {
                    let L = h.get(O.descriptorHash);
                    if (typeof L != "undefined") return L;
                    l.set(O.descriptorHash, O);
                    let pe = Promise.resolve().then(() => le(O));
                    return h.set(O.descriptorHash, pe), pe
                };
                for (let O of this.workspaces) {
                    let L = O.anchoredDescriptor;
                    y.push(X(L))
                }
                for (; y.length > 0;) {
                    let O = [...y];
                    y.length = 0, await uo(O)
                }
            });
            let k = new Set(this.resolutionAliases.values()), T = new Set(c.keys()), Y = new Set, j = new Map;
            $Ke({
                project: this,
                report: e.report,
                accessibleLocators: Y,
                volatileDescriptors: k,
                optionalBuilds: T,
                peerRequirements: j,
                allDescriptors: l,
                allResolutions: u,
                allPackages: c
            });
            for (let re of m) T.delete(re);
            for (let re of k) l.delete(re), u.delete(re);
            let Z = new Set, J = new Set;
            for (let re of c.values()) re.conditions != null && (!T.has(re.locatorHash) || (dw(re, S) || (dw(re, b) && e.report.reportWarningOnce($.GHOST_ARCHITECTURE, `${Bt(this.configuration, re)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${et(this.configuration, "supportedArchitectures", Di.SETTING)} setting`), J.add(re.locatorHash)), Z.add(re.locatorHash)));
            this.storedResolutions = u, this.storedDescriptors = l, this.storedPackages = c, this.accessibleLocators = Y, this.conditionalLocators = Z, this.disabledLocators = J, this.originalPackages = g, this.optionalBuilds = T, this.peerRequirements = j, this.refreshWorkspaceDependencies()
        }

        async fetchEverything({cache: e, report: r, fetcher: i, mode: n}) {
            let s = {mockedPackages: this.disabledLocators, unstablePackages: this.conditionalLocators},
                o = i || this.configuration.makeFetcher(),
                a = {checksums: this.storedChecksums, project: this, cache: e, fetcher: o, report: r, cacheOptions: s},
                l = Array.from(new Set(xn(this.storedResolutions.values(), [f => {
                    let h = this.storedPackages.get(f);
                    if (!h) throw new Error("Assertion failed: The locator should have been registered");
                    return Ds(h)
                }])));
            n === di.UpdateLockfile && (l = l.filter(f => !this.storedChecksums.has(f)));
            let c = !1, u = Ji.progressViaCounter(l.length);
            r.reportProgress(u);
            let g = (0, s$.default)(VKe);
            if (await r.startCacheReport(async () => {
                await uo(l.map(f => g(async () => {
                    let h = this.storedPackages.get(f);
                    if (!h) throw new Error("Assertion failed: The locator should have been registered");
                    if (Xo(h)) return;
                    let p;
                    try {
                        p = await o.fetch(h, a)
                    } catch (m) {
                        m.message = `${Bt(this.configuration, h)}: ${m.message}`, r.reportExceptionOnce(m), c = m;
                        return
                    }
                    p.checksum != null ? this.storedChecksums.set(h.locatorHash, p.checksum) : this.storedChecksums.delete(h.locatorHash), p.releaseFs && p.releaseFs()
                }).finally(() => {
                    u.tick()
                })))
            }), c) throw c
        }

        async linkEverything({cache: e, report: r, fetcher: i, mode: n}) {
            var A, oe, le;
            let s = {
                    mockedPackages: this.disabledLocators,
                    unstablePackages: this.conditionalLocators,
                    skipIntegrityCheck: !0
                }, o = i || this.configuration.makeFetcher(), a = {
                    checksums: this.storedChecksums,
                    project: this,
                    cache: e,
                    fetcher: o,
                    report: r,
                    skipIntegrityCheck: !0,
                    cacheOptions: s
                }, l = this.configuration.getLinkers(), c = {project: this, report: r}, u = new Map(l.map(X => {
                    let O = X.makeInstaller(c), L = O.getCustomDataKey(), pe = this.installersCustomData.get(L);
                    return typeof pe != "undefined" && O.attachCustomData(pe), [X, O]
                })), g = new Map, f = new Map, h = new Map,
                p = new Map(await uo([...this.accessibleLocators].map(async X => {
                    let O = this.storedPackages.get(X);
                    if (!O) throw new Error("Assertion failed: The locator should have been registered");
                    return [X, await o.fetch(O, a)]
                }))), m = [];
            for (let X of this.accessibleLocators) {
                let O = this.storedPackages.get(X);
                if (typeof O == "undefined") throw new Error("Assertion failed: The locator should have been registered");
                let L = p.get(O.locatorHash);
                if (typeof L == "undefined") throw new Error("Assertion failed: The fetch result should have been registered");
                let pe = [], Ce = te => {
                    pe.push(te)
                }, Oe = this.tryWorkspaceByLocator(O);
                if (Oe !== null) {
                    let te = [], {scripts: se} = Oe.manifest;
                    for (let he of ["preinstall", "install", "postinstall"]) se.has(he) && te.push([ls.SCRIPT, he]);
                    try {
                        for (let [he, Fe] of u) if (he.supportsPackage(O, c) && (await Fe.installPackage(O, L, {holdFetchResult: Ce})).buildDirective !== null) throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")
                    } finally {
                        pe.length === 0 ? (A = L.releaseFs) == null || A.call(L) : m.push(uo(pe).catch(() => {
                        }).then(() => {
                            var he;
                            (he = L.releaseFs) == null || he.call(L)
                        }))
                    }
                    let be = x.join(L.packageFs.getRealPath(), L.prefixPath);
                    f.set(O.locatorHash, be), !Xo(O) && te.length > 0 && h.set(O.locatorHash, {
                        directives: te,
                        buildLocations: [be]
                    })
                } else {
                    let te = l.find(he => he.supportsPackage(O, c));
                    if (!te) throw new ct($.LINKER_NOT_FOUND, `${Bt(this.configuration, O)} isn't supported by any available linker`);
                    let se = u.get(te);
                    if (!se) throw new Error("Assertion failed: The installer should have been registered");
                    let be;
                    try {
                        be = await se.installPackage(O, L, {holdFetchResult: Ce})
                    } finally {
                        pe.length === 0 ? (oe = L.releaseFs) == null || oe.call(L) : m.push(uo(pe).then(() => {
                        }).then(() => {
                            var he;
                            (he = L.releaseFs) == null || he.call(L)
                        }))
                    }
                    g.set(O.locatorHash, te), f.set(O.locatorHash, be.packageLocation), be.buildDirective && be.buildDirective.length > 0 && be.packageLocation && h.set(O.locatorHash, {
                        directives: be.buildDirective,
                        buildLocations: [be.packageLocation]
                    })
                }
            }
            let y = new Map;
            for (let X of this.accessibleLocators) {
                let O = this.storedPackages.get(X);
                if (!O) throw new Error("Assertion failed: The locator should have been registered");
                let L = this.tryWorkspaceByLocator(O) !== null, pe = async (Ce, Oe) => {
                    let te = f.get(O.locatorHash);
                    if (typeof te == "undefined") throw new Error(`Assertion failed: The package (${Bt(this.configuration, O)}) should have been registered`);
                    let se = [];
                    for (let be of O.dependencies.values()) {
                        let he = this.storedResolutions.get(be.descriptorHash);
                        if (typeof he == "undefined") throw new Error(`Assertion failed: The resolution (${sr(this.configuration, be)}, from ${Bt(this.configuration, O)})should have been registered`);
                        let Fe = this.storedPackages.get(he);
                        if (typeof Fe == "undefined") throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration, be)}) should have been registered`);
                        let Ue = this.tryWorkspaceByLocator(Fe) === null ? g.get(he) : null;
                        if (typeof Ue == "undefined") throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration, be)}) should have been registered`);
                        Ue === Ce || Ue === null ? f.get(Fe.locatorHash) !== null && se.push([be, Fe]) : !L && te !== null && Pg(y, he).push(te)
                    }
                    te !== null && await Oe.attachInternalDependencies(O, se)
                };
                if (L) for (let [Ce, Oe] of u) Ce.supportsPackage(O, c) && await pe(Ce, Oe); else {
                    let Ce = g.get(O.locatorHash);
                    if (!Ce) throw new Error("Assertion failed: The linker should have been found");
                    let Oe = u.get(Ce);
                    if (!Oe) throw new Error("Assertion failed: The installer should have been registered");
                    await pe(Ce, Oe)
                }
            }
            for (let [X, O] of y) {
                let L = this.storedPackages.get(X);
                if (!L) throw new Error("Assertion failed: The package should have been registered");
                let pe = g.get(L.locatorHash);
                if (!pe) throw new Error("Assertion failed: The linker should have been found");
                let Ce = u.get(pe);
                if (!Ce) throw new Error("Assertion failed: The installer should have been registered");
                await Ce.attachExternalDependents(L, O)
            }
            let b = new Map;
            for (let X of u.values()) {
                let O = await X.finalizeInstall();
                for (let L of (le = O == null ? void 0 : O.records) != null ? le : []) h.set(L.locatorHash, {
                    directives: L.buildDirective,
                    buildLocations: L.buildLocations
                });
                typeof (O == null ? void 0 : O.customData) != "undefined" && b.set(X.getCustomDataKey(), O.customData)
            }
            if (this.installersCustomData = b, await uo(m), n === di.SkipBuild) return;
            let S = new Set(this.storedPackages.keys()), k = new Set(h.keys());
            for (let X of k) S.delete(X);
            let T = (0, p0.createHash)("sha512");
            T.update(process.versions.node), await this.configuration.triggerHook(X => X.globalHashGeneration, this, X => {
                T.update("\0"), T.update(X)
            });
            let Y = T.digest("hex"), j = new Map, Z = X => {
                let O = j.get(X.locatorHash);
                if (typeof O != "undefined") return O;
                let L = this.storedPackages.get(X.locatorHash);
                if (typeof L == "undefined") throw new Error("Assertion failed: The package should have been registered");
                let pe = (0, p0.createHash)("sha512");
                pe.update(X.locatorHash), j.set(X.locatorHash, "<recursive>");
                for (let Ce of L.dependencies.values()) {
                    let Oe = this.storedResolutions.get(Ce.descriptorHash);
                    if (typeof Oe == "undefined") throw new Error(`Assertion failed: The resolution (${sr(this.configuration, Ce)}) should have been registered`);
                    let te = this.storedPackages.get(Oe);
                    if (typeof te == "undefined") throw new Error("Assertion failed: The package should have been registered");
                    pe.update(Z(te))
                }
                return O = pe.digest("hex"), j.set(X.locatorHash, O), O
            }, J = (X, O) => {
                let L = (0, p0.createHash)("sha512");
                L.update(Y), L.update(Z(X));
                for (let pe of O) L.update(pe);
                return L.digest("hex")
            }, re = new Map, ee = !1;
            for (; k.size > 0;) {
                let X = k.size, O = [];
                for (let L of k) {
                    let pe = this.storedPackages.get(L);
                    if (!pe) throw new Error("Assertion failed: The package should have been registered");
                    let Ce = !0;
                    for (let se of pe.dependencies.values()) {
                        let be = this.storedResolutions.get(se.descriptorHash);
                        if (!be) throw new Error(`Assertion failed: The resolution (${sr(this.configuration, se)}) should have been registered`);
                        if (k.has(be)) {
                            Ce = !1;
                            break
                        }
                    }
                    if (!Ce) continue;
                    k.delete(L);
                    let Oe = h.get(pe.locatorHash);
                    if (!Oe) throw new Error("Assertion failed: The build directive should have been registered");
                    let te = J(pe, Oe.buildLocations);
                    if (this.storedBuildState.get(pe.locatorHash) === te) {
                        re.set(pe.locatorHash, te);
                        continue
                    }
                    ee || (await this.persistInstallStateFile(), ee = !0), this.storedBuildState.has(pe.locatorHash) ? r.reportInfo($.MUST_REBUILD, `${Bt(this.configuration, pe)} must be rebuilt because its dependency tree changed`) : r.reportInfo($.MUST_BUILD, `${Bt(this.configuration, pe)} must be built because it never has been before or the last one failed`);
                    for (let se of Oe.buildLocations) {
                        if (!x.isAbsolute(se)) throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);
                        O.push((async () => {
                            for (let [be, he] of Oe.directives) {
                                let Fe = `# This file contains the result of Yarn building a package (${Ds(pe)})
`;
                                switch (be) {
                                    case ls.SCRIPT:
                                        Fe += `# Script name: ${he}
`;
                                        break;
                                    case ls.SHELLCODE:
                                        Fe += `# Script code: ${he}
`;
                                        break
                                }
                                let Ue = null;
                                if (!await K.mktempPromise(async Se => {
                                    let de = x.join(Se, "build.log"), {
                                        stdout: V,
                                        stderr: Qe
                                    } = this.configuration.getSubprocessStreams(de, {
                                        header: Fe,
                                        prefix: Bt(this.configuration, pe),
                                        report: r
                                    }), ce;
                                    try {
                                        switch (be) {
                                            case ls.SCRIPT:
                                                ce = await AB(pe, he, [], {
                                                    cwd: se,
                                                    project: this,
                                                    stdin: Ue,
                                                    stdout: V,
                                                    stderr: Qe
                                                });
                                                break;
                                            case ls.SHELLCODE:
                                                ce = await hD(pe, he, [], {
                                                    cwd: se,
                                                    project: this,
                                                    stdin: Ue,
                                                    stdout: V,
                                                    stderr: Qe
                                                });
                                                break
                                        }
                                    } catch (gt) {
                                        Qe.write(gt.stack), ce = 1
                                    }
                                    if (V.end(), Qe.end(), ce === 0) return re.set(pe.locatorHash, te), !0;
                                    K.detachTemp(Se);
                                    let fe = `${Bt(this.configuration, pe)} couldn't be built successfully (exit code ${et(this.configuration, ce, Ye.NUMBER)}, logs can be found here: ${et(this.configuration, de, Ye.PATH)})`;
                                    return this.optionalBuilds.has(pe.locatorHash) ? (r.reportInfo($.BUILD_FAILED, fe), re.set(pe.locatorHash, te), !0) : (r.reportError($.BUILD_FAILED, fe), !1)
                                })) return
                            }
                        })())
                    }
                }
                if (await uo(O), X === k.size) {
                    let L = Array.from(k).map(pe => {
                        let Ce = this.storedPackages.get(pe);
                        if (!Ce) throw new Error("Assertion failed: The package should have been registered");
                        return Bt(this.configuration, Ce)
                    }).join(", ");
                    r.reportError($.CYCLIC_DEPENDENCIES, `Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${L})`);
                    break
                }
            }
            this.storedBuildState = re
        }

        async install(e) {
            var a, l;
            let r = this.configuration.get("nodeLinker");
            (a = we.telemetry) == null || a.reportInstall(r), await e.report.startTimerPromise("Project validation", {skipIfEmpty: !0}, async () => {
                await this.configuration.triggerHook(c => c.validateProject, this, {
                    reportWarning: e.report.reportWarning.bind(e.report),
                    reportError: e.report.reportError.bind(e.report)
                })
            });
            for (let c of this.configuration.packageExtensions.values()) for (let [, u] of c) for (let g of u) g.status = qi.Inactive;
            let i = x.join(this.cwd, this.configuration.get("lockfileFilename")), n = null;
            if (e.immutable) try {
                n = await K.readFilePromise(i, "utf8")
            } catch (c) {
                throw c.code === "ENOENT" ? new ct($.FROZEN_LOCKFILE_EXCEPTION, "The lockfile would have been created by this install, which is explicitly forbidden.") : c
            }
            await e.report.startTimerPromise("Resolution step", async () => {
                await this.resolveEverything(e)
            }), await e.report.startTimerPromise("Post-resolution validation", {skipIfEmpty: !0}, async () => {
                for (let [, c] of this.configuration.packageExtensions) for (let [, u] of c) for (let g of u) if (g.userProvided) {
                    let f = et(this.configuration, g, Ye.PACKAGE_EXTENSION);
                    switch (g.status) {
                        case qi.Inactive:
                            e.report.reportWarning($.UNUSED_PACKAGE_EXTENSION, `${f}: No matching package in the dependency tree; you may not need this rule anymore.`);
                            break;
                        case qi.Redundant:
                            e.report.reportWarning($.REDUNDANT_PACKAGE_EXTENSION, `${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);
                            break
                    }
                }
                if (n !== null) {
                    let c = ec(n, this.generateLockfile());
                    if (c !== n) {
                        let u = (0, n$.structuredPatch)(i, i, n, c);
                        e.report.reportSeparator();
                        for (let g of u.hunks) {
                            e.report.reportInfo(null, `@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);
                            for (let f of g.lines) f.startsWith("+") ? e.report.reportError($.FROZEN_LOCKFILE_EXCEPTION, et(this.configuration, f, Ye.ADDED)) : f.startsWith("-") ? e.report.reportError($.FROZEN_LOCKFILE_EXCEPTION, et(this.configuration, f, Ye.REMOVED)) : e.report.reportInfo(null, et(this.configuration, f, "grey"))
                        }
                        throw e.report.reportSeparator(), new ct($.FROZEN_LOCKFILE_EXCEPTION, "The lockfile would have been modified by this install, which is explicitly forbidden.")
                    }
                }
            });
            for (let c of this.configuration.packageExtensions.values()) for (let [, u] of c) for (let g of u) g.userProvided && g.status === qi.Active && ((l = we.telemetry) == null || l.reportPackageExtension(Rc(g, Ye.PACKAGE_EXTENSION)));
            await e.report.startTimerPromise("Fetch step", async () => {
                await this.fetchEverything(e), (typeof e.persistProject == "undefined" || e.persistProject) && e.mode !== di.UpdateLockfile && await this.cacheCleanup(e)
            });
            let s = e.immutable ? [...new Set(this.configuration.get("immutablePatterns"))].sort() : [],
                o = await Promise.all(s.map(async c => cw(c, {cwd: this.cwd})));
            (typeof e.persistProject == "undefined" || e.persistProject) && await this.persist(), await e.report.startTimerPromise("Link step", async () => {
                if (e.mode === di.UpdateLockfile) {
                    e.report.reportWarning($.UPDATE_LOCKFILE_ONLY_SKIP_LINK, `Skipped due to ${et(this.configuration, "mode=update-lockfile", Ye.CODE)}`);
                    return
                }
                await this.linkEverything(e);
                let c = await Promise.all(s.map(async u => cw(u, {cwd: this.cwd})));
                for (let u = 0; u < s.length; ++u) o[u] !== c[u] && e.report.reportError($.FROZEN_ARTIFACT_EXCEPTION, `The checksum for ${s[u]} has been modified by this install, which is explicitly forbidden.`)
            }), await this.persistInstallStateFile(), await this.configuration.triggerHook(c => c.afterAllInstalled, this, e)
        }

        generateLockfile() {
            let e = new Map;
            for (let [n, s] of this.storedResolutions.entries()) {
                let o = e.get(s);
                o || e.set(s, o = new Set), o.add(n)
            }
            let r = {};
            r.__metadata = {version: a$, cacheKey: void 0};
            for (let [n, s] of e.entries()) {
                let o = this.originalPackages.get(n);
                if (!o) continue;
                let a = [];
                for (let f of s) {
                    let h = this.storedDescriptors.get(f);
                    if (!h) throw new Error("Assertion failed: The descriptor should have been registered");
                    a.push(h)
                }
                let l = a.map(f => Pn(f)).sort().join(", "), c = new At;
                c.version = o.linkType === Qt.HARD ? o.version : "0.0.0-use.local", c.languageName = o.languageName, c.dependencies = new Map(o.dependencies), c.peerDependencies = new Map(o.peerDependencies), c.dependenciesMeta = new Map(o.dependenciesMeta), c.peerDependenciesMeta = new Map(o.peerDependenciesMeta), c.bin = new Map(o.bin);
                let u, g = this.storedChecksums.get(o.locatorHash);
                if (typeof g != "undefined") {
                    let f = g.indexOf("/");
                    if (f === -1) throw new Error("Assertion failed: Expected the checksum to reference its cache key");
                    let h = g.slice(0, f), p = g.slice(f + 1);
                    typeof r.__metadata.cacheKey == "undefined" && (r.__metadata.cacheKey = h), h === r.__metadata.cacheKey ? u = p : u = g
                }
                r[l] = ie(N({}, c.exportTo({}, {compatibilityMode: !1})), {
                    linkType: o.linkType.toLowerCase(),
                    resolution: Ds(o),
                    checksum: u,
                    conditions: o.conditions || void 0
                })
            }
            return `${[`# This file is generated by running "yarn install" inside your project.
`, `# Manual changes might be lost - proceed with caution!
`].join("")}
` + La(r)
        }

        async persistLockfile() {
            let e = x.join(this.cwd, this.configuration.get("lockfileFilename")), r = "";
            try {
                r = await K.readFilePromise(e, "utf8")
            } catch (s) {
            }
            let i = this.generateLockfile(), n = ec(r, i);
            n !== r && (await K.writeFilePromise(e, n), this.lockFileChecksum = l$(n), this.lockfileNeedsRefresh = !1)
        }

        async persistInstallStateFile() {
            let e = [];
            for (let o of Object.values(AF)) e.push(...o);
            let r = (0, d0.default)(this, e), i = oF.default.serialize(r), n = ln(i);
            if (this.installStateChecksum === n) return;
            let s = this.configuration.get("installStatePath");
            await K.mkdirPromise(x.dirname(s), {recursive: !0}), await K.writeFilePromise(s, await XKe(i)), this.installStateChecksum = n
        }

        async restoreInstallState({
                                      restoreInstallersCustomData: e = !0,
                                      restoreResolutions: r = !0,
                                      restoreBuildState: i = !0
                                  } = {}) {
            let n = this.configuration.get("installStatePath"), s;
            try {
                let o = await ZKe(await K.readFilePromise(n));
                s = oF.default.deserialize(o), this.installStateChecksum = ln(o)
            } catch {
                r && await this.applyLightResolution();
                return
            }
            e && typeof s.installersCustomData != "undefined" && (this.installersCustomData = s.installersCustomData), i && Object.assign(this, (0, d0.default)(s, AF.restoreBuildState)), r && (s.lockFileChecksum === this.lockFileChecksum ? (Object.assign(this, (0, d0.default)(s, AF.restoreResolutions)), this.refreshWorkspaceDependencies()) : await this.applyLightResolution())
        }

        async applyLightResolution() {
            await this.resolveEverything({lockfileOnly: !0, report: new pi}), await this.persistInstallStateFile()
        }

        async persist() {
            await this.persistLockfile();
            for (let e of this.workspacesByCwd.values()) await e.persistManifest()
        }

        async cacheCleanup({cache: e, report: r}) {
            if (this.configuration.get("enableGlobalCache")) return;
            let i = new Set([".gitignore"]);
            if (!Ix(e.cwd, this.cwd) || !await K.existsPromise(e.cwd)) return;
            let n = this.configuration.get("preferAggregateCacheInfo"), s = 0, o = null;
            for (let a of await K.readdirPromise(e.cwd)) {
                if (i.has(a)) continue;
                let l = x.resolve(e.cwd, a);
                e.markedFiles.has(l) || (o = a, e.immutable ? r.reportError($.IMMUTABLE_CACHE, `${et(this.configuration, x.basename(l), "magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`) : (n ? s += 1 : r.reportInfo($.UNUSED_CACHE_ENTRY, `${et(this.configuration, x.basename(l), "magenta")} appears to be unused - removing`), await K.removePromise(l)))
            }
            n && s !== 0 && r.reportInfo($.UNUSED_CACHE_ENTRY, s > 1 ? `${s} packages appeared to be unused and were removed` : `${o} appeared to be unused and was removed`), e.markedFiles.clear()
        }
    };

    function $Ke({
                     project: t,
                     allDescriptors: e,
                     allResolutions: r,
                     allPackages: i,
                     accessibleLocators: n = new Set,
                     optionalBuilds: s = new Set,
                     peerRequirements: o = new Map,
                     volatileDescriptors: a = new Set,
                     report: l,
                     tolerateMissingPackages: c = !1
                 }) {
        var re;
        let u = new Map, g = [], f = new Map, h = new Map, p = new Map, m = new Map, y = new Map,
            b = new Map(t.workspaces.map(ee => {
                let A = ee.anchoredLocator.locatorHash, oe = i.get(A);
                if (typeof oe == "undefined") {
                    if (c) return [A, null];
                    throw new Error("Assertion failed: The workspace should have an associated package")
                }
                return [A, ud(oe)]
            })), S = () => {
                let ee = K.mktempSync(), A = x.join(ee, "stacktrace.log"), oe = String(g.length + 1).length,
                    le = g.map((X, O) => `${`${O + 1}.`.padStart(oe, " ")} ${Ds(X)}
`).join("");
                throw K.writeFileSync(A, le), K.detachTemp(ee), new ct($.STACK_OVERFLOW_RESOLUTION, `Encountered a stack overflow when resolving peer dependencies; cf ${H.fromPortablePath(A)}`)
            }, k = ee => {
                let A = r.get(ee.descriptorHash);
                if (typeof A == "undefined") throw new Error("Assertion failed: The resolution should have been registered");
                let oe = i.get(A);
                if (!oe) throw new Error("Assertion failed: The package could not be found");
                return oe
            }, T = (ee, A, oe, {top: le, optional: X}) => {
                g.length > 1e3 && S(), g.push(A);
                let O = Y(ee, A, oe, {top: le, optional: X});
                return g.pop(), O
            }, Y = (ee, A, oe, {top: le, optional: X}) => {
                if (n.has(A.locatorHash)) return;
                n.add(A.locatorHash), X || s.delete(A.locatorHash);
                let O = i.get(A.locatorHash);
                if (!O) {
                    if (c) return;
                    throw new Error(`Assertion failed: The package (${Bt(t.configuration, A)}) should have been registered`)
                }
                let L = [], pe = [], Ce = [], Oe = [], te = [];
                for (let be of Array.from(O.dependencies.values())) {
                    if (O.peerDependencies.has(be.identHash) && O.locatorHash !== le) continue;
                    if (nl(be)) throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");
                    a.delete(be.descriptorHash);
                    let he = X;
                    if (!he) {
                        let Qe = O.dependenciesMeta.get(Ot(be));
                        if (typeof Qe != "undefined") {
                            let ce = Qe.get(null);
                            typeof ce != "undefined" && ce.optional && (he = !0)
                        }
                    }
                    let Fe = r.get(be.descriptorHash);
                    if (!Fe) {
                        if (c) continue;
                        throw new Error(`Assertion failed: The resolution (${sr(t.configuration, be)}) should have been registered`)
                    }
                    let Ue = b.get(Fe) || i.get(Fe);
                    if (!Ue) throw new Error(`Assertion failed: The package (${Fe}, resolved from ${sr(t.configuration, be)}) should have been registered`);
                    if (Ue.peerDependencies.size === 0) {
                        T(be, Ue, new Map, {top: le, optional: he});
                        continue
                    }
                    let xe, Se, de = new Set, V;
                    pe.push(() => {
                        xe = Ax(be, A.locatorHash), Se = lx(Ue, A.locatorHash), O.dependencies.delete(be.identHash), O.dependencies.set(xe.identHash, xe), r.set(xe.descriptorHash, Se.locatorHash), e.set(xe.descriptorHash, xe), i.set(Se.locatorHash, Se), L.push([Ue, xe, Se])
                    }), Ce.push(() => {
                        var Qe;
                        V = new Map;
                        for (let ce of Se.peerDependencies.values()) {
                            let fe = O.dependencies.get(ce.identHash);
                            if (!fe && hd(A, ce) && (ee.identHash === A.identHash ? fe = ee : (fe = rr(A, ee.range), e.set(fe.descriptorHash, fe), r.set(fe.descriptorHash, A.locatorHash), a.delete(fe.descriptorHash))), (!fe || fe.range === "missing:") && Se.dependencies.has(ce.identHash)) {
                                Se.peerDependencies.delete(ce.identHash);
                                continue
                            }
                            fe || (fe = rr(ce, "missing:")), Se.dependencies.set(fe.identHash, fe), nl(fe) && xc(p, fe.descriptorHash).add(Se.locatorHash), f.set(fe.identHash, fe), fe.range === "missing:" && de.add(fe.identHash), V.set(ce.identHash, (Qe = oe.get(ce.identHash)) != null ? Qe : Se.locatorHash)
                        }
                        Se.dependencies = new Map(xn(Se.dependencies, ([ce, fe]) => Ot(fe)))
                    }), Oe.push(() => {
                        if (!i.has(Se.locatorHash)) return;
                        let Qe = u.get(Ue.locatorHash);
                        typeof Qe == "number" && Qe >= 2 && S();
                        let ce = u.get(Ue.locatorHash), fe = typeof ce != "undefined" ? ce + 1 : 1;
                        u.set(Ue.locatorHash, fe), T(xe, Se, V, {top: le, optional: he}), u.set(Ue.locatorHash, fe - 1)
                    }), te.push(() => {
                        let Qe = O.dependencies.get(be.identHash);
                        if (typeof Qe == "undefined") throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");
                        let ce = r.get(Qe.descriptorHash);
                        if (typeof ce == "undefined") throw new Error("Assertion failed: Expected the descriptor to be registered");
                        if (xc(y, ce).add(A.locatorHash), !!i.has(Se.locatorHash)) {
                            for (let fe of Se.peerDependencies.values()) {
                                let gt = V.get(fe.identHash);
                                if (typeof gt == "undefined") throw new Error("Assertion failed: Expected the peer dependency ident to be registered");
                                Pg(Dg(m, gt), Ot(fe)).push(Se.locatorHash)
                            }
                            for (let fe of de) Se.dependencies.delete(fe)
                        }
                    })
                }
                for (let be of [...pe, ...Ce]) be();
                let se;
                do {
                    se = !0;
                    for (let [be, he, Fe] of L) {
                        let Ue = Dg(h, be.locatorHash), xe = ln(...[...Fe.dependencies.values()].map(Qe => {
                            let ce = Qe.range !== "missing:" ? r.get(Qe.descriptorHash) : "missing:";
                            if (typeof ce == "undefined") throw new Error(`Assertion failed: Expected the resolution for ${sr(t.configuration, Qe)} to have been registered`);
                            return ce === le ? `${ce} (top)` : ce
                        }), he.identHash), Se = Ue.get(xe);
                        if (typeof Se == "undefined") {
                            Ue.set(xe, he);
                            continue
                        }
                        if (Se === he) continue;
                        i.delete(Fe.locatorHash), e.delete(he.descriptorHash), r.delete(he.descriptorHash), n.delete(Fe.locatorHash);
                        let de = p.get(he.descriptorHash) || [], V = [O.locatorHash, ...de];
                        p.delete(he.descriptorHash);
                        for (let Qe of V) {
                            let ce = i.get(Qe);
                            typeof ce != "undefined" && (ce.dependencies.get(he.identHash).descriptorHash !== Se.descriptorHash && (se = !1), ce.dependencies.set(he.identHash, Se))
                        }
                    }
                } while (!se);
                for (let be of [...Oe, ...te]) be()
            };
        for (let ee of t.workspaces) {
            let A = ee.anchoredLocator;
            a.delete(ee.anchoredDescriptor.descriptorHash), T(ee.anchoredDescriptor, A, new Map, {
                top: A.locatorHash,
                optional: !1
            })
        }
        var j;
        (function (oe) {
            oe[oe.NotProvided = 0] = "NotProvided", oe[oe.NotCompatible = 1] = "NotCompatible"
        })(j || (j = {}));
        let Z = [];
        for (let [ee, A] of y) {
            let oe = i.get(ee);
            if (typeof oe == "undefined") throw new Error("Assertion failed: Expected the root to be registered");
            let le = m.get(ee);
            if (typeof le != "undefined") for (let X of A) {
                let O = i.get(X);
                if (typeof O != "undefined") for (let [L, pe] of le) {
                    let Ce = An(L);
                    if (O.peerDependencies.has(Ce.identHash)) continue;
                    let Oe = `p${ln(X, L, ee).slice(0, 5)}`;
                    o.set(Oe, {subject: X, requested: Ce, rootRequester: ee, allRequesters: pe});
                    let te = oe.dependencies.get(Ce.identHash);
                    if (typeof te != "undefined") {
                        let se = k(te), be = (re = se.version) != null ? re : "0.0.0", he = new Set;
                        for (let Ue of pe) {
                            let xe = i.get(Ue);
                            if (typeof xe == "undefined") throw new Error("Assertion failed: Expected the link to be registered");
                            let Se = xe.peerDependencies.get(Ce.identHash);
                            if (typeof Se == "undefined") throw new Error("Assertion failed: Expected the ident to be registered");
                            he.add(Se.range)
                        }
                        [...he].every(Ue => {
                            if (Ue.startsWith(oi.protocol)) {
                                if (!t.tryWorkspaceByLocator(se)) return !1;
                                Ue = Ue.slice(oi.protocol.length), (Ue === "^" || Ue === "~") && (Ue = "*")
                            }
                            return Uc(be, Ue)
                        }) || Z.push({
                            type: 1,
                            subject: O,
                            requested: Ce,
                            requester: oe,
                            version: be,
                            hash: Oe,
                            requirementCount: pe.length
                        })
                    } else {
                        let se = oe.peerDependenciesMeta.get(L);
                        (se == null ? void 0 : se.optional) || Z.push({
                            type: 0,
                            subject: O,
                            requested: Ce,
                            requester: oe,
                            hash: Oe
                        })
                    }
                }
            }
        }
        let J = [ee => ux(ee.subject), ee => Ot(ee.requested), ee => `${ee.type}`];
        l == null || l.startSectionSync({
            reportFooter: () => {
                l.reportWarning($.UNNAMED, `Some peer dependencies are incorrectly met; run ${et(t.configuration, "yarn explain peer-requirements <hash>", Ye.CODE)} for details, where ${et(t.configuration, "<hash>", Ye.CODE)} is the six-letter p-prefixed code`)
            }, skipIfEmpty: !0
        }, () => {
            for (let ee of xn(Z, J)) switch (ee.type) {
                case 0:
                    l.reportWarning($.MISSING_PEER_DEPENDENCY, `${Bt(t.configuration, ee.subject)} doesn't provide ${gi(t.configuration, ee.requested)} (${et(t.configuration, ee.hash, Ye.CODE)}), requested by ${gi(t.configuration, ee.requester)}`);
                    break;
                case 1: {
                    let A = ee.requirementCount > 1 ? "and some of its descendants request" : "requests";
                    l.reportWarning($.INCOMPATIBLE_PEER_DEPENDENCY, `${Bt(t.configuration, ee.subject)} provides ${gi(t.configuration, ee.requested)} (${et(t.configuration, ee.hash, Ye.CODE)}) with version ${Cd(t.configuration, ee.version)}, which doesn't satisfy what ${gi(t.configuration, ee.requester)} ${A}`)
                }
                    break
            }
        })
    }

    var aa;
    (function (l) {
        l.VERSION = "version", l.COMMAND_NAME = "commandName", l.PLUGIN_NAME = "pluginName", l.INSTALL_COUNT = "installCount", l.PROJECT_COUNT = "projectCount", l.WORKSPACE_COUNT = "workspaceCount", l.DEPENDENCY_COUNT = "dependencyCount", l.EXTENSION = "packageExtension"
    })(aa || (aa = {}));
    var QC = class {
        constructor(e, r) {
            this.values = new Map;
            this.hits = new Map;
            this.enumerators = new Map;
            this.configuration = e;
            let i = this.getRegistryPath();
            this.isNew = !K.existsSync(i), this.sendReport(r), this.startBuffer()
        }

        reportVersion(e) {
            this.reportValue(aa.VERSION, e.replace(/-git\..*/, "-git"))
        }

        reportCommandName(e) {
            this.reportValue(aa.COMMAND_NAME, e || "<none>")
        }

        reportPluginName(e) {
            this.reportValue(aa.PLUGIN_NAME, e)
        }

        reportProject(e) {
            this.reportEnumerator(aa.PROJECT_COUNT, e)
        }

        reportInstall(e) {
            this.reportHit(aa.INSTALL_COUNT, e)
        }

        reportPackageExtension(e) {
            this.reportValue(aa.EXTENSION, e)
        }

        reportWorkspaceCount(e) {
            this.reportValue(aa.WORKSPACE_COUNT, String(e))
        }

        reportDependencyCount(e) {
            this.reportValue(aa.DEPENDENCY_COUNT, String(e))
        }

        reportValue(e, r) {
            xc(this.values, e).add(r)
        }

        reportEnumerator(e, r) {
            xc(this.enumerators, e).add(ln(r))
        }

        reportHit(e, r = "*") {
            let i = Dg(this.hits, e), n = Ja(i, r, () => 0);
            i.set(r, n + 1)
        }

        getRegistryPath() {
            let e = this.configuration.get("globalFolder");
            return x.join(e, "telemetry.json")
        }

        sendReport(e) {
            var u, g, f;
            let r = this.getRegistryPath(), i;
            try {
                i = K.readJsonSync(r)
            } catch {
                i = {}
            }
            let n = Date.now(), s = this.configuration.get("telemetryInterval") * 24 * 60 * 60 * 1e3,
                a = ((u = i.lastUpdate) != null ? u : n + s + Math.floor(s * Math.random())) + s;
            if (a > n && i.lastUpdate != null) return;
            try {
                K.mkdirSync(x.dirname(r), {recursive: !0}), K.writeJsonSync(r, {lastUpdate: n})
            } catch {
                return
            }
            if (a > n || !i.blocks) return;
            let l = `https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,
                c = h => $P(l, h, {configuration: this.configuration}).catch(() => {
                });
            for (let [h, p] of Object.entries((g = i.blocks) != null ? g : {})) {
                if (Object.keys(p).length === 0) continue;
                let m = p;
                m.userId = h, m.reportType = "primary";
                for (let S of Object.keys((f = m.enumerators) != null ? f : {})) m.enumerators[S] = m.enumerators[S].length;
                c(m);
                let y = new Map, b = 20;
                for (let [S, k] of Object.entries(m.values)) k.length > 0 && y.set(S, k.slice(0, b));
                for (; y.size > 0;) {
                    let S = {};
                    S.userId = h, S.reportType = "secondary", S.metrics = {};
                    for (let [k, T] of y) S.metrics[k] = T.shift(), T.length === 0 && y.delete(k);
                    c(S)
                }
            }
        }

        applyChanges() {
            var o, a, l, c, u, g, f, h, p;
            let e = this.getRegistryPath(), r;
            try {
                r = K.readJsonSync(e)
            } catch {
                r = {}
            }
            let i = (o = this.configuration.get("telemetryUserId")) != null ? o : "*",
                n = r.blocks = (a = r.blocks) != null ? a : {}, s = n[i] = (l = n[i]) != null ? l : {};
            for (let m of this.hits.keys()) {
                let y = s.hits = (c = s.hits) != null ? c : {}, b = y[m] = (u = y[m]) != null ? u : {};
                for (let [S, k] of this.hits.get(m)) b[S] = ((g = b[S]) != null ? g : 0) + k
            }
            for (let m of ["values", "enumerators"]) for (let y of this[m].keys()) {
                let b = s[m] = (f = s[m]) != null ? f : {};
                b[y] = [...new Set([...(h = b[y]) != null ? h : [], ...(p = this[m].get(y)) != null ? p : []])]
            }
            K.mkdirSync(x.dirname(e), {recursive: !0}), K.writeJsonSync(e, r)
        }

        startBuffer() {
            process.on("exit", () => {
                try {
                    this.applyChanges()
                } catch {
                }
            })
        }
    };
    var lF = ge(require("child_process")), c$ = ge(pc());
    var cF = ge(require("fs"));
    var Tf = new Map([["constraints", [["constraints", "query"], ["constraints", "source"], ["constraints"]]], ["exec", []], ["interactive-tools", [["search"], ["upgrade-interactive"]]], ["stage", [["stage"]]], ["typescript", []], ["version", [["version", "apply"], ["version", "check"], ["version"]]], ["workspace-tools", [["workspaces", "focus"], ["workspaces", "foreach"]]]]);

    function e1e(t) {
        let e = H.fromPortablePath(t);
        process.on("SIGINT", () => {
        }), e ? (0, lF.execFileSync)(process.execPath, [e, ...process.argv.slice(2)], {
            stdio: "inherit",
            env: ie(N({}, process.env), {YARN_IGNORE_PATH: "1", YARN_IGNORE_CWD: "1"})
        }) : (0, lF.execFileSync)(e, process.argv.slice(2), {
            stdio: "inherit",
            env: ie(N({}, process.env), {YARN_IGNORE_PATH: "1", YARN_IGNORE_CWD: "1"})
        })
    }

    async function C0({binaryVersion: t, pluginConfiguration: e}) {
        async function r() {
            let n = new ys({binaryLabel: "Yarn Package Manager", binaryName: "yarn", binaryVersion: t});
            try {
                await i(n)
            } catch (s) {
                process.stdout.write(n.error(s)), process.exitCode = 1
            }
        }

        async function i(n) {
            var m, y, b, S, k;
            let s = process.versions.node, o = ">=12 <14 || 14.2 - 14.9 || >14.10.0";
            if (!ve.parseOptionalBoolean(process.env.YARN_IGNORE_NODE) && !Wt.satisfiesWithPrereleases(s, o)) throw new Pe(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);
            let l = await we.find(H.toPortablePath(process.cwd()), e, {usePath: !0, strict: !1}), c = l.get("yarnPath"),
                u = l.get("ignorePath"), g = l.get("ignoreCwd"), f = H.toPortablePath(H.resolve(process.argv[1])),
                h = T => K.readFilePromise(T).catch(() => Buffer.of());
            if (!u && !g && await (async () => c === f || Buffer.compare(...await Promise.all([h(c), h(f)])) === 0)()) {
                process.env.YARN_IGNORE_PATH = "1", process.env.YARN_IGNORE_CWD = "1", await i(n);
                return
            } else if (c !== null && !u) if (!K.existsSync(c)) process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))), process.exitCode = 1; else try {
                e1e(c)
            } catch (T) {
                process.exitCode = T.code || 1
            } else {
                u && delete process.env.YARN_IGNORE_PATH, l.get("enableTelemetry") && !c$.isCI && process.stdout.isTTY && (we.telemetry = new QC(l, "puba9cdc10ec5790a2cf4969dd413a47270")), (m = we.telemetry) == null || m.reportVersion(t);
                for (let [Z, J] of l.plugins.entries()) {
                    Tf.has((b = (y = Z.match(/^@yarnpkg\/plugin-(.*)$/)) == null ? void 0 : y[1]) != null ? b : "") && ((S = we.telemetry) == null || S.reportPluginName(Z));
                    for (let re of J.commands || []) n.register(re)
                }
                let Y = n.process(process.argv.slice(2));
                Y.help || (k = we.telemetry) == null || k.reportCommandName(Y.path.join(" "));
                let j = Y.cwd;
                if (typeof j != "undefined" && !g) {
                    let Z = (0, cF.realpathSync)(process.cwd()), J = (0, cF.realpathSync)(j);
                    if (Z !== J) {
                        process.chdir(j), await r();
                        return
                    }
                }
                await n.runExit(Y, {
                    cwd: H.toPortablePath(process.cwd()),
                    plugins: e,
                    quiet: !1,
                    stdin: process.stdin,
                    stdout: process.stdout,
                    stderr: process.stderr
                })
            }
        }

        return r().catch(n => {
            process.stdout.write(n.stack || n.message), process.exitCode = 1
        }).finally(() => K.rmtempPromise())
    }

    function u$(t) {
        t.Command.Path = (...e) => r => {
            r.paths = r.paths || [], r.paths.push(e)
        };
        for (let e of ["Array", "Boolean", "String", "Proxy", "Rest", "Counter"]) t.Command[e] = (...r) => (i, n) => {
            let s = t.Option[e](...r);
            Object.defineProperty(i, `__${n}`, {
                configurable: !1, enumerable: !0, get() {
                    return s
                }, set(o) {
                    this[n] = o
                }
            })
        };
        return t
    }

    var VC = {};
    ft(VC, {
        BaseCommand: () => Le,
        WorkspaceRequiredError: () => ht,
        getDynamicLibs: () => Qie,
        getPluginConfiguration: () => W0,
        main: () => C0,
        openWorkspace: () => zf,
        pluginCommands: () => Tf
    });
    var Le = class extends Re {
        constructor() {
            super(...arguments);
            this.cwd = W.String("--cwd", {hidden: !0})
        }
    };
    var ht = class extends Pe {
        constructor(e, r) {
            let i = x.relative(e, r), n = x.join(e, At.fileName);
            super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)
        }
    };
    var oqe = ge(ri());
    Is();
    var aqe = ge(AN()),
        Qie = () => new Map([["@yarnpkg/cli", VC], ["@yarnpkg/core", vC], ["@yarnpkg/fslib", $h], ["@yarnpkg/libzip", Kd], ["@yarnpkg/parsers", ap], ["@yarnpkg/shell", Hd], ["clipanion", mp], ["semver", oqe], ["typanion", ag], ["yup", aqe]]);

    async function zf(t, e) {
        let {project: r, workspace: i} = await ze.find(t, e);
        if (!i) throw new ht(r.cwd, e);
        return i
    }

    var v9e = ge(ri());
    Is();
    var S9e = ge(AN());
    var uL = {};
    ft(uL, {dedupeUtils: () => YN, default: () => E4e, suggestUtils: () => DN});
    var SAe = ge(pc());
    var Nse = ge(em());
    Is();
    var DN = {};
    ft(DN, {
        Modifier: () => ga,
        Strategy: () => Vr,
        Target: () => Hr,
        WorkspaceModifier: () => Zf,
        applyModifier: () => Pse,
        extractDescriptorFromPath: () => NN,
        extractRangeModifier: () => xse,
        fetchDescriptorFrom: () => FN,
        findProjectDescriptors: () => Fse,
        getModifier: () => tm,
        getSuggestedDescriptors: () => rm,
        makeWorkspaceDescriptor: () => Rse,
        toWorkspaceModifier: () => Dse
    });
    var RN = ge(ri()), QJe = "workspace:", Hr;
    (function (i) {
        i.REGULAR = "dependencies", i.DEVELOPMENT = "devDependencies", i.PEER = "peerDependencies"
    })(Hr || (Hr = {}));
    var ga;
    (function (i) {
        i.CARET = "^", i.TILDE = "~", i.EXACT = ""
    })(ga || (ga = {}));
    var Zf;
    (function (i) {
        i.CARET = "^", i.TILDE = "~", i.EXACT = "*"
    })(Zf || (Zf = {}));
    var Vr;
    (function (s) {
        s.KEEP = "keep", s.REUSE = "reuse", s.PROJECT = "project", s.LATEST = "latest", s.CACHE = "cache"
    })(Vr || (Vr = {}));

    function tm(t, e) {
        return t.exact ? ga.EXACT : t.caret ? ga.CARET : t.tilde ? ga.TILDE : e.configuration.get("defaultSemverRangePrefix")
    }

    var vJe = /^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;

    function xse(t, {project: e}) {
        let r = t.match(vJe);
        return r ? r[1] : e.configuration.get("defaultSemverRangePrefix")
    }

    function Pse(t, e) {
        let {protocol: r, source: i, params: n, selector: s} = P.parseRange(t.range);
        return RN.default.valid(s) && (s = `${e}${t.range}`), P.makeDescriptor(t, P.makeRange({
            protocol: r,
            source: i,
            params: n,
            selector: s
        }))
    }

    function Dse(t) {
        switch (t) {
            case ga.CARET:
                return Zf.CARET;
            case ga.TILDE:
                return Zf.TILDE;
            case ga.EXACT:
                return Zf.EXACT;
            default:
                throw new Error(`Assertion failed: Unknown modifier: "${t}"`)
        }
    }

    function Rse(t, e) {
        return P.makeDescriptor(t.anchoredDescriptor, `${QJe}${Dse(e)}`)
    }

    async function Fse(t, {project: e, target: r}) {
        let i = new Map, n = s => {
            let o = i.get(s.descriptorHash);
            return o || i.set(s.descriptorHash, o = {descriptor: s, locators: []}), o
        };
        for (let s of e.workspaces) if (r === Hr.PEER) {
            let o = s.manifest.peerDependencies.get(t.identHash);
            o !== void 0 && n(o).locators.push(s.locator)
        } else {
            let o = s.manifest.dependencies.get(t.identHash), a = s.manifest.devDependencies.get(t.identHash);
            r === Hr.DEVELOPMENT ? a !== void 0 ? n(a).locators.push(s.locator) : o !== void 0 && n(o).locators.push(s.locator) : o !== void 0 ? n(o).locators.push(s.locator) : a !== void 0 && n(a).locators.push(s.locator)
        }
        return i
    }

    async function NN(t, {cwd: e, workspace: r}) {
        return await SJe(async i => {
            x.isAbsolute(t) || (t = x.relative(r.cwd, x.resolve(e, t)), t.match(/^\.{0,2}\//) || (t = `./${t}`));
            let {project: n} = r,
                s = await FN(P.makeIdent(null, "archive"), t, {project: r.project, cache: i, workspace: r});
            if (!s) throw new Error("Assertion failed: The descriptor should have been found");
            let o = new pi, a = n.configuration.makeResolver(), l = n.configuration.makeFetcher(),
                c = {checksums: n.storedChecksums, project: n, cache: i, fetcher: l, report: o, resolver: a},
                u = a.bindDescriptor(s, r.anchoredLocator, c), g = P.convertDescriptorToLocator(u),
                f = await l.fetch(g, c), h = await At.find(f.prefixPath, {baseFs: f.packageFs});
            if (!h.name) throw new Error("Target path doesn't have a name");
            return P.makeDescriptor(h.name, t)
        })
    }

    async function rm(t, {
        project: e,
        workspace: r,
        cache: i,
        target: n,
        modifier: s,
        strategies: o,
        maxResults: a = Infinity
    }) {
        if (!(a >= 0)) throw new Error(`Invalid maxResults (${a})`);
        if (t.range !== "unknown") return {
            suggestions: [{
                descriptor: t,
                name: `Use ${P.prettyDescriptor(e.configuration, t)}`,
                reason: "(unambiguous explicit request)"
            }], rejections: []
        };
        let l = typeof r != "undefined" && r !== null && r.manifest[n].get(t.identHash) || null, c = [], u = [],
            g = async f => {
                try {
                    await f()
                } catch (h) {
                    u.push(h)
                }
            };
        for (let f of o) {
            if (c.length >= a) break;
            switch (f) {
                case Vr.KEEP:
                    await g(async () => {
                        l && c.push({
                            descriptor: l,
                            name: `Keep ${P.prettyDescriptor(e.configuration, l)}`,
                            reason: "(no changes)"
                        })
                    });
                    break;
                case Vr.REUSE:
                    await g(async () => {
                        for (let {descriptor: h, locators: p} of (await Fse(t, {project: e, target: n})).values()) {
                            if (p.length === 1 && p[0].locatorHash === r.anchoredLocator.locatorHash && o.includes(Vr.KEEP)) continue;
                            let m = `(originally used by ${P.prettyLocator(e.configuration, p[0])}`;
                            m += p.length > 1 ? ` and ${p.length - 1} other${p.length > 2 ? "s" : ""})` : ")", c.push({
                                descriptor: h,
                                name: `Reuse ${P.prettyDescriptor(e.configuration, h)}`,
                                reason: m
                            })
                        }
                    });
                    break;
                case Vr.CACHE:
                    await g(async () => {
                        for (let h of e.storedDescriptors.values()) h.identHash === t.identHash && c.push({
                            descriptor: h,
                            name: `Reuse ${P.prettyDescriptor(e.configuration, h)}`,
                            reason: "(already used somewhere in the lockfile)"
                        })
                    });
                    break;
                case Vr.PROJECT:
                    await g(async () => {
                        if (r.manifest.name !== null && t.identHash === r.manifest.name.identHash) return;
                        let h = e.tryWorkspaceByIdent(t);
                        if (h === null) return;
                        let p = Rse(h, s);
                        c.push({
                            descriptor: p,
                            name: `Attach ${P.prettyDescriptor(e.configuration, p)}`,
                            reason: `(local workspace at ${Ae.pretty(e.configuration, h.relativeCwd, Ae.Type.PATH)})`
                        })
                    });
                    break;
                case Vr.LATEST:
                    await g(async () => {
                        if (t.range !== "unknown") c.push({
                            descriptor: t,
                            name: `Use ${P.prettyRange(e.configuration, t.range)}`,
                            reason: "(explicit range requested)"
                        }); else if (n === Hr.PEER) c.push({
                            descriptor: P.makeDescriptor(t, "*"),
                            name: "Use *",
                            reason: "(catch-all peer dependency pattern)"
                        }); else if (!e.configuration.get("enableNetwork")) c.push({
                            descriptor: null,
                            name: "Resolve from latest",
                            reason: Ae.pretty(e.configuration, "(unavailable because enableNetwork is toggled off)", "grey")
                        }); else {
                            let h = await FN(t, "latest", {project: e, cache: i, workspace: r, preserveModifier: !1});
                            h && (h = Pse(h, s), c.push({
                                descriptor: h,
                                name: `Use ${P.prettyDescriptor(e.configuration, h)}`,
                                reason: "(resolved from latest)"
                            }))
                        }
                    });
                    break
            }
        }
        return {suggestions: c.slice(0, a), rejections: u.slice(0, a)}
    }

    async function FN(t, e, {project: r, cache: i, workspace: n, preserveModifier: s = !0}) {
        let o = P.makeDescriptor(t, e), a = new pi, l = r.configuration.makeFetcher(),
            c = r.configuration.makeResolver(), u = {
                project: r,
                fetcher: l,
                cache: i,
                checksums: r.storedChecksums,
                report: a,
                cacheOptions: {skipIntegrityCheck: !0},
                skipIntegrityCheck: !0
            }, g = ie(N({}, u), {resolver: c, fetchOptions: u}), f = c.bindDescriptor(o, n.anchoredLocator, g),
            h = await c.getCandidates(f, new Map, g);
        if (h.length === 0) return null;
        let p = h[0], {
            protocol: m,
            source: y,
            params: b,
            selector: S
        } = P.parseRange(P.convertToManifestRange(p.reference));
        if (m === r.configuration.get("defaultProtocol") && (m = null), RN.default.valid(S) && s !== !1) {
            let k = typeof s == "string" ? s : o.range;
            S = xse(k, {project: r}) + S
        }
        return P.makeDescriptor(p, P.makeRange({protocol: m, source: y, params: b, selector: S}))
    }

    async function SJe(t) {
        return await K.mktempPromise(async e => {
            let r = we.create(e);
            return r.useWithSource(e, {
                enableMirror: !1,
                compressionLevel: 0
            }, e, {overwrite: !0}), await t(new Nt(e, {configuration: r, check: !1, immutable: !1}))
        })
    }

    var im = class extends Le {
        constructor() {
            super(...arguments);
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.exact = W.Boolean("-E,--exact", !1, {description: "Don't use any semver modifier on the resolved range"});
            this.tilde = W.Boolean("-T,--tilde", !1, {description: "Use the `~` semver modifier on the resolved range"});
            this.caret = W.Boolean("-C,--caret", !1, {description: "Use the `^` semver modifier on the resolved range"});
            this.dev = W.Boolean("-D,--dev", !1, {description: "Add a package as a dev dependency"});
            this.peer = W.Boolean("-P,--peer", !1, {description: "Add a package as a peer dependency"});
            this.optional = W.Boolean("-O,--optional", !1, {description: "Add / upgrade a package to an optional regular / peer dependency"});
            this.preferDev = W.Boolean("--prefer-dev", !1, {description: "Add / upgrade a package to a dev dependency"});
            this.interactive = W.Boolean("-i,--interactive", {description: "Reuse the specified package from other workspaces in the project"});
            this.cached = W.Boolean("--cached", !1, {description: "Reuse the highest version already used somewhere within the project"});
            this.mode = W.String("--mode", {description: "Change what artifacts installs generate", validator: nn(di)});
            this.silent = W.Boolean("--silent", {hidden: !0});
            this.packages = W.Rest()
        }

        async execute() {
            var m;
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState({restoreResolutions: !1});
            let s = (m = this.interactive) != null ? m : e.get("preferInteractive"), o = tm(this, r),
                a = [...s ? [Vr.REUSE] : [], Vr.PROJECT, ...this.cached ? [Vr.CACHE] : [], Vr.LATEST],
                l = s ? Infinity : 1, c = await Promise.all(this.packages.map(async y => {
                    let b = y.match(/^\.{0,2}\//) ? await NN(y, {
                        cwd: this.context.cwd,
                        workspace: i
                    }) : P.tryParseDescriptor(y), S = y.match(/^(https?:|git@github)/);
                    if (S) throw new Pe(`It seems you are trying to add a package using a ${Ae.pretty(e, `${S[0]}...`, Di.RANGE)} url; we now require package names to be explicitly specified.
Try running the command again with the package name prefixed: ${Ae.pretty(e, "yarn add", Di.CODE)} ${Ae.pretty(e, P.makeDescriptor(P.makeIdent(null, "my-package"), `${S[0]}...`), Di.DESCRIPTOR)}`);
                    if (!b) throw new Pe(`The ${Ae.pretty(e, y, Di.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);
                    let k = kJe(i, b, {dev: this.dev, peer: this.peer, preferDev: this.preferDev, optional: this.optional}),
                        T = await rm(b, {
                            project: r,
                            workspace: i,
                            cache: n,
                            target: k,
                            modifier: o,
                            strategies: a,
                            maxResults: l
                        });
                    return [b, T, k]
                })), u = await gA.start({configuration: e, stdout: this.context.stdout, suggestInstall: !1}, async y => {
                    for (let [b, {
                        suggestions: S,
                        rejections: k
                    }] of c) if (S.filter(Y => Y.descriptor !== null).length === 0) {
                        let [Y] = k;
                        if (typeof Y == "undefined") throw new Error("Assertion failed: Expected an error to have been set");
                        r.configuration.get("enableNetwork") ? y.reportError($.CANT_SUGGEST_RESOLUTIONS, `${P.prettyDescriptor(e, b)} can't be resolved to a satisfying range`) : y.reportError($.CANT_SUGGEST_RESOLUTIONS, `${P.prettyDescriptor(e, b)} can't be resolved to a satisfying range (note: network resolution has been disabled)`), y.reportSeparator(), y.reportExceptionOnce(Y)
                    }
                });
            if (u.hasErrors()) return u.exitCode();
            let g = !1, f = [], h = [];
            for (let [, {suggestions: y}, b] of c) {
                let S, k = y.filter(Z => Z.descriptor !== null), T = k[0].descriptor,
                    Y = k.every(Z => P.areDescriptorsEqual(Z.descriptor, T));
                k.length === 1 || Y ? S = T : (g = !0, {answer: S} = await (0, Nse.prompt)({
                    type: "select",
                    name: "answer",
                    message: "Which range do you want to use?",
                    choices: y.map(({descriptor: Z, name: J, reason: re}) => Z ? {
                        name: J,
                        hint: re,
                        descriptor: Z
                    } : {name: J, hint: re, disabled: !0}),
                    onCancel: () => process.exit(130),
                    result(Z) {
                        return this.find(Z, "descriptor")
                    },
                    stdin: this.context.stdin,
                    stdout: this.context.stdout
                }));
                let j = i.manifest[b].get(S.identHash);
                (typeof j == "undefined" || j.descriptorHash !== S.descriptorHash) && (i.manifest[b].set(S.identHash, S), this.optional && (b === "dependencies" ? i.manifest.ensureDependencyMeta(ie(N({}, S), {range: "unknown"})).optional = !0 : b === "peerDependencies" && (i.manifest.ensurePeerDependencyMeta(ie(N({}, S), {range: "unknown"})).optional = !0)), typeof j == "undefined" ? f.push([i, b, S, a]) : h.push([i, b, j, S]))
            }
            return await e.triggerMultipleHooks(y => y.afterWorkspaceDependencyAddition, f), await e.triggerMultipleHooks(y => y.afterWorkspaceDependencyReplacement, h), g && this.context.stdout.write(`
`), (await Je.start({
                configuration: e,
                json: this.json,
                stdout: this.context.stdout,
                includeLogs: !this.context.quiet
            }, async y => {
                await r.install({cache: n, report: y, mode: this.mode})
            })).exitCode()
        }
    };
    im.paths = [["add"]], im.usage = Re.Usage({
        description: "add dependencies to the project",
        details: "\n      This command adds a package to the package.json for the nearest workspace.\n\n      - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n      - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n      - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n      - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n      - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n      - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n      If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n      If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n      For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n    ",
        examples: [["Add a regular package to the current workspace", "$0 add lodash"], ["Add a specific version for a package to the current workspace", "$0 add lodash@1.2.3"], ["Add a package from a GitHub repository (the master branch) to the current workspace using a URL", "$0 add lodash@https://github.com/lodash/lodash"], ["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol", "$0 add lodash@github:lodash/lodash"], ["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)", "$0 add lodash@lodash/lodash"], ["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)", "$0 add lodash-es@lodash/lodash#es"]]
    });
    var Lse = im;

    function kJe(t, e, {dev: r, peer: i, preferDev: n, optional: s}) {
        let o = t.manifest[Hr.REGULAR].has(e.identHash), a = t.manifest[Hr.DEVELOPMENT].has(e.identHash),
            l = t.manifest[Hr.PEER].has(e.identHash);
        if ((r || i) && o) throw new Pe(`Package "${P.prettyIdent(t.project.configuration, e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);
        if (!r && !i && l) throw new Pe(`Package "${P.prettyIdent(t.project.configuration, e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);
        if (s && a) throw new Pe(`Package "${P.prettyIdent(t.project.configuration, e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);
        if (s && !i && l) throw new Pe(`Package "${P.prettyIdent(t.project.configuration, e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);
        if ((r || n) && s) throw new Pe(`Package "${P.prettyIdent(t.project.configuration, e)}" cannot simultaneously be a dev dependency and an optional dependency`);
        return i ? Hr.PEER : r || n ? Hr.DEVELOPMENT : o ? Hr.REGULAR : a ? Hr.DEVELOPMENT : Hr.REGULAR
    }

    var nm = class extends Le {
        constructor() {
            super(...arguments);
            this.verbose = W.Boolean("-v,--verbose", !1, {description: "Print both the binary name and the locator of the package that provides the binary"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.name = W.String({required: !1})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                locator: i
            } = await ze.find(e, this.context.cwd);
            if (await r.restoreInstallState(), this.name) {
                let o = (await Zt.getPackageAccessibleBinaries(i, {project: r})).get(this.name);
                if (!o) throw new Pe(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(e, i)}"`);
                let [, a] = o;
                return this.context.stdout.write(`${a}
`), 0
            }
            return (await Je.start({configuration: e, json: this.json, stdout: this.context.stdout}, async s => {
                let o = await Zt.getPackageAccessibleBinaries(i, {project: r}),
                    l = Array.from(o.keys()).reduce((c, u) => Math.max(c, u.length), 0);
                for (let [c, [u, g]] of o) s.reportJson({name: c, source: P.stringifyIdent(u), path: g});
                if (this.verbose) for (let [c, [u]] of o) s.reportInfo(null, `${c.padEnd(l, " ")}   ${P.prettyLocator(e, u)}`); else for (let c of o.keys()) s.reportInfo(null, c)
            })).exitCode()
        }
    };
    nm.paths = [["bin"]], nm.usage = Re.Usage({
        description: "get the path to a binary script",
        details: `
      When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.

      When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.
    `,
        examples: [["List all the available binaries", "$0 bin"], ["Print the path to a specific binary", "$0 bin eslint"]]
    });
    var Tse = nm;
    var sm = class extends Le {
        constructor() {
            super(...arguments);
            this.mirror = W.Boolean("--mirror", !1, {description: "Remove the global cache files instead of the local cache files"});
            this.all = W.Boolean("--all", !1, {description: "Remove both the global cache files and the local cache files of the current project"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), r = await Nt.find(e);
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async () => {
                let n = (this.all || this.mirror) && r.mirrorCwd !== null, s = !this.mirror;
                n && (await K.removePromise(r.mirrorCwd), await e.triggerHook(o => o.cleanGlobalArtifacts, e)), s && await K.removePromise(r.cwd)
            })).exitCode()
        }
    };
    sm.paths = [["cache", "clean"], ["cache", "clear"]], sm.usage = Re.Usage({
        description: "remove the shared cache files",
        details: `
      This command will remove all the files from the cache.
    `,
        examples: [["Remove all the local archives", "$0 cache clean"], ["Remove all the archives stored in the ~/.yarn directory", "$0 cache clean --mirror"]]
    });
    var Ose = sm;
    var Mse = ge(x0()), LN = ge(require("util")), om = class extends Le {
        constructor() {
            super(...arguments);
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.unsafe = W.Boolean("--no-redacted", !1, {description: "Don't redact secrets (such as tokens) from the output"});
            this.name = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), r = this.name.replace(/[.[].*$/, ""),
                i = this.name.replace(/^[^.[]*/, "");
            if (typeof e.settings.get(r) == "undefined") throw new Pe(`Couldn't find a configuration settings named "${r}"`);
            let s = e.getSpecial(r, {hideSecrets: !this.unsafe, getNativePaths: !0}),
                o = ve.convertMapsToIndexableObjects(s), a = i ? (0, Mse.default)(o, i) : o, l = await Je.start({
                    configuration: e,
                    includeFooter: !1,
                    json: this.json,
                    stdout: this.context.stdout
                }, async c => {
                    c.reportJson(a)
                });
            if (!this.json) {
                if (typeof a == "string") return this.context.stdout.write(`${a}
`), l.exitCode();
                LN.inspect.styles.name = "cyan", this.context.stdout.write(`${(0, LN.inspect)(a, {
                    depth: Infinity,
                    colors: e.get("enableColors"),
                    compact: !1
                })}
`)
            }
            return l.exitCode()
        }
    };
    om.paths = [["config", "get"]], om.usage = Re.Usage({
        description: "read a configuration settings",
        details: `
      This command will print a configuration setting.

      Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value.
    `,
        examples: [["Print a simple configuration setting", "yarn config get yarnPath"], ["Print a complex configuration setting", "yarn config get packageExtensions"], ["Print a nested field from the configuration", `yarn config get 'npmScopes["my-company"].npmRegistryServer'`], ["Print a token from the configuration", "yarn config get npmAuthToken --no-redacted"], ["Print a configuration setting as JSON", "yarn config get packageExtensions --json"]]
    });
    var Kse = om;
    var Xoe = ge(HN()), Zoe = ge(x0()), $oe = ge(Voe()), GN = ge(require("util")), Am = class extends Le {
        constructor() {
            super(...arguments);
            this.json = W.Boolean("--json", !1, {description: "Set complex configuration settings to JSON values"});
            this.home = W.Boolean("-H,--home", !1, {description: "Update the home configuration instead of the project configuration"});
            this.name = W.String();
            this.value = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), r = () => {
                if (!e.projectCwd) throw new Pe("This command must be run from within a project folder");
                return e.projectCwd
            }, i = this.name.replace(/[.[].*$/, ""), n = this.name.replace(/^[^.[]*\.?/, "");
            if (typeof e.settings.get(i) == "undefined") throw new Pe(`Couldn't find a configuration settings named "${i}"`);
            if (i === "enableStrictSettings") throw new Pe("This setting only affects the file it's in, and thus cannot be set from the CLI");
            let o = this.json ? JSON.parse(this.value) : this.value;
            await (this.home ? h => we.updateHomeConfiguration(h) : h => we.updateConfiguration(r(), h))(h => {
                if (n) {
                    let p = (0, Xoe.default)(h);
                    return (0, $oe.default)(p, this.name, o), p
                } else return ie(N({}, h), {[i]: o})
            });
            let c = (await we.find(this.context.cwd, this.context.plugins)).getSpecial(i, {
                hideSecrets: !0,
                getNativePaths: !0
            }), u = ve.convertMapsToIndexableObjects(c), g = n ? (0, Zoe.default)(u, n) : u;
            return (await Je.start({configuration: e, includeFooter: !1, stdout: this.context.stdout}, async h => {
                GN.inspect.styles.name = "cyan", h.reportInfo($.UNNAMED, `Successfully set ${this.name} to ${(0, GN.inspect)(g, {
                    depth: Infinity,
                    colors: e.get("enableColors"),
                    compact: !1
                })}`)
            })).exitCode()
        }
    };
    Am.paths = [["config", "set"]], Am.usage = Re.Usage({
        description: "change a configuration settings",
        details: `
      This command will set a configuration setting.

      When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean).

      When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects.
    `,
        examples: [["Set a simple configuration setting (a string, a number, or a boolean)", "yarn config set initScope myScope"], ["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag", 'yarn config set initScope --json \\"myScope\\"'], ["Set a complex configuration setting (an Array) using the `--json` flag", `yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`], ["Set a complex configuration setting (an Object) using the `--json` flag", `yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`], ["Set a nested configuration setting", 'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'], ["Set a nested configuration setting using indexed access for non-simple keys", `yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]
    });
    var eae = Am;
    var lae = ge(HN()), cae = ge(kC()), uae = ge(Aae()), lm = class extends Le {
        constructor() {
            super(...arguments);
            this.home = W.Boolean("-H,--home", !1, {description: "Update the home configuration instead of the project configuration"});
            this.name = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), r = () => {
                if (!e.projectCwd) throw new Pe("This command must be run from within a project folder");
                return e.projectCwd
            }, i = this.name.replace(/[.[].*$/, ""), n = this.name.replace(/^[^.[]*\.?/, "");
            if (typeof e.settings.get(i) == "undefined") throw new Pe(`Couldn't find a configuration settings named "${i}"`);
            let o = this.home ? l => we.updateHomeConfiguration(l) : l => we.updateConfiguration(r(), l);
            return (await Je.start({configuration: e, includeFooter: !1, stdout: this.context.stdout}, async l => {
                let c = !1;
                await o(u => {
                    if (!(0, cae.default)(u, this.name)) return l.reportWarning($.UNNAMED, `Configuration doesn't contain setting ${this.name}; there is nothing to unset`), c = !0, u;
                    let g = n ? (0, lae.default)(u) : N({}, u);
                    return (0, uae.default)(g, this.name), g
                }), c || l.reportInfo($.UNNAMED, `Successfully unset ${this.name}`)
            })).exitCode()
        }
    };
    lm.paths = [["config", "unset"]], lm.usage = Re.Usage({
        description: "unset a configuration setting",
        details: `
      This command will unset a configuration setting.
    `,
        examples: [["Unset a simple configuration setting", "yarn config unset initScope"], ["Unset a complex configuration setting", "yarn config unset packageExtensions"], ["Unset a nested configuration setting", "yarn config unset npmScopes.company.npmRegistryServer"]]
    });
    var gae = lm;
    var jN = ge(require("util")), cm = class extends Le {
        constructor() {
            super(...arguments);
            this.verbose = W.Boolean("-v,--verbose", !1, {description: "Print the setting description on top of the regular key/value information"});
            this.why = W.Boolean("--why", !1, {description: "Print the reason why a setting is set a particular way"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins, {strict: !1});
            return (await Je.start({configuration: e, json: this.json, stdout: this.context.stdout}, async i => {
                if (e.invalid.size > 0 && !this.json) {
                    for (let [n, s] of e.invalid) i.reportError($.INVALID_CONFIGURATION_KEY, `Invalid configuration key "${n}" in ${s}`);
                    i.reportSeparator()
                }
                if (this.json) {
                    let n = ve.sortMap(e.settings.keys(), s => s);
                    for (let s of n) {
                        let o = e.settings.get(s), a = e.getSpecial(s, {hideSecrets: !0, getNativePaths: !0}),
                            l = e.sources.get(s);
                        this.verbose ? i.reportJson({key: s, effective: a, source: l}) : i.reportJson(N({
                            key: s,
                            effective: a,
                            source: l
                        }, o))
                    }
                } else {
                    let n = ve.sortMap(e.settings.keys(), a => a), s = n.reduce((a, l) => Math.max(a, l.length), 0),
                        o = {breakLength: Infinity, colors: e.get("enableColors"), maxArrayLength: 2};
                    if (this.why || this.verbose) {
                        let a = n.map(c => {
                            let u = e.settings.get(c);
                            if (!u) throw new Error(`Assertion failed: This settings ("${c}") should have been registered`);
                            let g = this.why ? e.sources.get(c) || "<default>" : u.description;
                            return [c, g]
                        }), l = a.reduce((c, [, u]) => Math.max(c, u.length), 0);
                        for (let [c, u] of a) i.reportInfo(null, `${c.padEnd(s, " ")}   ${u.padEnd(l, " ")}   ${(0, jN.inspect)(e.getSpecial(c, {
                            hideSecrets: !0,
                            getNativePaths: !0
                        }), o)}`)
                    } else for (let a of n) i.reportInfo(null, `${a.padEnd(s, " ")}   ${(0, jN.inspect)(e.getSpecial(a, {
                        hideSecrets: !0,
                        getNativePaths: !0
                    }), o)}`)
                }
            })).exitCode()
        }
    };
    cm.paths = [["config"]], cm.usage = Re.Usage({
        description: "display the current configuration", details: `
      This command prints the current active configuration settings.
    `, examples: [["Print the active configuration settings", "$0 config"]]
    });
    var fae = cm;
    Is();
    var YN = {};
    ft(YN, {Strategy: () => yu, acceptedStrategies: () => D8e, dedupe: () => qN});
    var hae = ge(rs()), yu;
    (function (e) {
        e.HIGHEST = "highest"
    })(yu || (yu = {}));
    var D8e = new Set(Object.values(yu)), R8e = {
        highest: async (t, e, {resolver: r, fetcher: i, resolveOptions: n, fetchOptions: s}) => {
            let o = new Map;
            for (let [a, l] of t.storedResolutions) {
                let c = t.storedDescriptors.get(a);
                if (typeof c == "undefined") throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);
                ve.getSetWithDefault(o, c.identHash).add(l)
            }
            return Array.from(t.storedDescriptors.values(), async a => {
                if (e.length && !hae.default.isMatch(P.stringifyIdent(a), e)) return null;
                let l = t.storedResolutions.get(a.descriptorHash);
                if (typeof l == "undefined") throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);
                let c = t.originalPackages.get(l);
                if (typeof c == "undefined" || !r.shouldPersistResolution(c, n)) return null;
                let u = o.get(a.identHash);
                if (typeof u == "undefined") throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);
                if (u.size === 1) return null;
                let g = [...u].map(y => {
                    let b = t.originalPackages.get(y);
                    if (typeof b == "undefined") throw new Error(`Assertion failed: The package (${y}) should have been registered`);
                    return b.reference
                }), f = await r.getSatisfying(a, g, n), h = f == null ? void 0 : f[0];
                if (typeof h == "undefined") return null;
                let p = h.locatorHash, m = t.originalPackages.get(p);
                if (typeof m == "undefined") throw new Error(`Assertion failed: The package (${p}) should have been registered`);
                return p === l ? null : {descriptor: a, currentPackage: c, updatedPackage: m}
            })
        }
    };

    async function qN(t, {strategy: e, patterns: r, cache: i, report: n}) {
        let {configuration: s} = t, o = new pi, a = s.makeResolver(), l = s.makeFetcher(), c = {
            cache: i,
            checksums: t.storedChecksums,
            fetcher: l,
            project: t,
            report: o,
            skipIntegrityCheck: !0,
            cacheOptions: {skipIntegrityCheck: !0}
        }, u = {project: t, resolver: a, report: o, fetchOptions: c};
        return await n.startTimerPromise("Deduplication step", async () => {
            let f = await R8e[e](t, r, {resolver: a, resolveOptions: u, fetcher: l, fetchOptions: c}),
                h = Ji.progressViaCounter(f.length);
            n.reportProgress(h);
            let p = 0;
            await Promise.all(f.map(b => b.then(S => {
                if (S === null) return;
                p++;
                let {descriptor: k, currentPackage: T, updatedPackage: Y} = S;
                n.reportInfo($.UNNAMED, `${P.prettyDescriptor(s, k)} can be deduped from ${P.prettyLocator(s, T)} to ${P.prettyLocator(s, Y)}`), n.reportJson({
                    descriptor: P.stringifyDescriptor(k),
                    currentResolution: P.stringifyLocator(T),
                    updatedResolution: P.stringifyLocator(Y)
                }), t.storedResolutions.set(k.descriptorHash, Y.locatorHash)
            }).finally(() => h.tick())));
            let m;
            switch (p) {
                case 0:
                    m = "No packages";
                    break;
                case 1:
                    m = "One package";
                    break;
                default:
                    m = `${p} packages`
            }
            let y = Ae.pretty(s, e, Ae.Type.CODE);
            return n.reportInfo($.UNNAMED, `${m} can be deduped using the ${y} strategy`), p
        })
    }

    var um = class extends Le {
        constructor() {
            super(...arguments);
            this.strategy = W.String("-s,--strategy", yu.HIGHEST, {
                description: "The strategy to use when deduping dependencies",
                validator: nn(yu)
            });
            this.check = W.Boolean("-c,--check", !1, {description: "Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.mode = W.String("--mode", {description: "Change what artifacts installs generate", validator: nn(di)});
            this.patterns = W.Rest()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {project: r} = await ze.find(e, this.context.cwd),
                i = await Nt.find(e);
            await r.restoreInstallState({restoreResolutions: !1});
            let n = 0, s = await Je.start({
                configuration: e,
                includeFooter: !1,
                stdout: this.context.stdout,
                json: this.json
            }, async o => {
                n = await qN(r, {strategy: this.strategy, patterns: this.patterns, cache: i, report: o})
            });
            return s.hasErrors() ? s.exitCode() : this.check ? n ? 1 : 0 : (await Je.start({
                configuration: e,
                stdout: this.context.stdout,
                json: this.json
            }, async a => {
                await r.install({cache: i, report: a, mode: this.mode})
            })).exitCode()
        }
    };
    um.paths = [["dedupe"]], um.usage = Re.Usage({
        description: "deduplicate dependencies with overlapping ranges",
        details: "\n      Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n      This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n      - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n      **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n      If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n      This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n      ### In-depth explanation:\n\n      Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n      **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n      Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n      **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n    ",
        examples: [["Dedupe all packages", "$0 dedupe"], ["Dedupe all packages using a specific strategy", "$0 dedupe --strategy highest"], ["Dedupe a specific package", "$0 dedupe lodash"], ["Dedupe all packages with the `@babel/*` scope", "$0 dedupe '@babel/*'"], ["Check for duplicates (can be used as a CI step)", "$0 dedupe --check"]]
    });
    var pae = um;
    var nb = class extends Le {
        async execute() {
            let {plugins: e} = await we.find(this.context.cwd, this.context.plugins), r = [];
            for (let o of e) {
                let {commands: a} = o[1];
                if (a) {
                    let c = ys.from(a).definitions();
                    r.push([o[0], c])
                }
            }
            let i = this.cli.definitions(), n = (o, a) => o.split(" ").slice(1).join() === a.split(" ").slice(1).join(),
                s = Cae()["@yarnpkg/builder"].bundles.standard;
            for (let o of r) {
                let a = o[1];
                for (let l of a) i.find(c => n(c.path, l.path)).plugin = {name: o[0], isDefault: s.includes(o[0])}
            }
            this.context.stdout.write(`${JSON.stringify(i, null, 2)}
`)
        }
    };
    nb.paths = [["--clipanion=definitions"]];
    var mae = nb;
    var sb = class extends Le {
        async execute() {
            this.context.stdout.write(this.cli.usage(null))
        }
    };
    sb.paths = [["help"], ["--help"], ["-h"]];
    var Eae = sb;
    var JN = class extends Le {
        constructor() {
            super(...arguments);
            this.leadingArgument = W.String();
            this.args = W.Proxy()
        }

        async execute() {
            if (this.leadingArgument.match(/[\\/]/) && !P.tryParseIdent(this.leadingArgument)) {
                let e = x.resolve(this.context.cwd, H.toPortablePath(this.leadingArgument));
                return await this.cli.run(this.args, {cwd: e})
            } else return await this.cli.run(["run", this.leadingArgument, ...this.args])
        }
    }, Iae = JN;
    var ob = class extends Le {
        async execute() {
            this.context.stdout.write(`${Kr || "<unknown>"}
`)
        }
    };
    ob.paths = [["-v"], ["--version"]];
    var yae = ob;
    var gm = class extends Le {
        constructor() {
            super(...arguments);
            this.commandName = W.String();
            this.args = W.Proxy()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                locator: i
            } = await ze.find(e, this.context.cwd);
            return await r.restoreInstallState(), await Zt.executePackageShellcode(i, this.commandName, this.args, {
                cwd: this.context.cwd,
                stdin: this.context.stdin,
                stdout: this.context.stdout,
                stderr: this.context.stderr,
                project: r
            })
        }
    };
    gm.paths = [["exec"]], gm.usage = Re.Usage({
        description: "execute a shell script",
        details: `
      This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell.

      It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).
    `,
        examples: [["Execute a single shell command", "$0 exec echo Hello World"], ["Execute a shell script", '$0 exec "tsc & babel src --out-dir lib"']]
    });
    var wae = gm;
    Is();
    var fm = class extends Le {
        constructor() {
            super(...arguments);
            this.hash = W.String({required: !1, validator: hp(fp(), [pp(/^p[0-9a-f]{5}$/)])})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {project: r} = await ze.find(e, this.context.cwd);
            return await r.restoreInstallState({restoreResolutions: !1}), await r.applyLightResolution(), typeof this.hash != "undefined" ? await F8e(this.hash, r, {stdout: this.context.stdout}) : (await Je.start({
                configuration: e,
                stdout: this.context.stdout,
                includeFooter: !1
            }, async n => {
                var o;
                let s = [([, a]) => P.stringifyLocator(r.storedPackages.get(a.subject)), ([, a]) => P.stringifyIdent(a.requested)];
                for (let [a, l] of ve.sortMap(r.peerRequirements, s)) {
                    let c = r.storedPackages.get(l.subject);
                    if (typeof c == "undefined") throw new Error("Assertion failed: Expected the subject package to have been registered");
                    let u = r.storedPackages.get(l.rootRequester);
                    if (typeof u == "undefined") throw new Error("Assertion failed: Expected the root package to have been registered");
                    let g = (o = c.dependencies.get(l.requested.identHash)) != null ? o : null,
                        f = Ae.pretty(e, a, Ae.Type.CODE), h = P.prettyLocator(e, c), p = P.prettyIdent(e, l.requested),
                        m = P.prettyIdent(e, u), y = l.allRequesters.length - 1, b = `descendant${y === 1 ? "" : "s"}`,
                        S = y > 0 ? ` and ${y} ${b}` : "", k = g !== null ? "provides" : "doesn't provide";
                    n.reportInfo(null, `${f} \u2192 ${h} ${k} ${p} to ${m}${S}`)
                }
            })).exitCode()
        }
    };
    fm.paths = [["explain", "peer-requirements"]], fm.usage = Re.Usage({
        description: "explain a set of peer requirements",
        details: `
      A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants.

      When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not.

      When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set.

      **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`).
    `,
        examples: [["Explain the corresponding set of peer requirements for a hash", "$0 explain peer-requirements p1a4ed"], ["List all sets of peer requirements", "$0 explain peer-requirements"]]
    });
    var Bae = fm;

    async function F8e(t, e, r) {
        let {configuration: i} = e, n = e.peerRequirements.get(t);
        if (typeof n == "undefined") throw new Error(`No peerDependency requirements found for hash: "${t}"`);
        return (await Je.start({configuration: i, stdout: r.stdout, includeFooter: !1}, async o => {
            var b, S;
            let a = e.storedPackages.get(n.subject);
            if (typeof a == "undefined") throw new Error("Assertion failed: Expected the subject package to have been registered");
            let l = e.storedPackages.get(n.rootRequester);
            if (typeof l == "undefined") throw new Error("Assertion failed: Expected the root package to have been registered");
            let c = (b = a.dependencies.get(n.requested.identHash)) != null ? b : null,
                u = c !== null ? e.storedResolutions.get(c.descriptorHash) : null;
            if (typeof u == "undefined") throw new Error("Assertion failed: Expected the resolution to have been registered");
            let g = u !== null ? e.storedPackages.get(u) : null;
            if (typeof g == "undefined") throw new Error("Assertion failed: Expected the provided package to have been registered");
            let f = [...n.allRequesters.values()].map(k => {
                let T = e.storedPackages.get(k);
                if (typeof T == "undefined") throw new Error("Assertion failed: Expected the package to be registered");
                let Y = P.devirtualizeLocator(T), j = e.storedPackages.get(Y.locatorHash);
                if (typeof j == "undefined") throw new Error("Assertion failed: Expected the package to be registered");
                let Z = j.peerDependencies.get(n.requested.identHash);
                if (typeof Z == "undefined") throw new Error("Assertion failed: Expected the peer dependency to be registered");
                return {pkg: T, peerDependency: Z}
            });
            if (g !== null) {
                let k = f.every(({peerDependency: T}) => Wt.satisfiesWithPrereleases(g.version, T.range));
                o.reportInfo($.UNNAMED, `${P.prettyLocator(i, a)} provides ${P.prettyLocator(i, g)} with version ${P.prettyReference(i, (S = g.version) != null ? S : "<missing>")}, which ${k ? "satisfies" : "doesn't satisfy"} the following requirements:`)
            } else o.reportInfo($.UNNAMED, `${P.prettyLocator(i, a)} doesn't provide ${P.prettyIdent(i, n.requested)}, breaking the following requirements:`);
            o.reportSeparator();
            let h = Ae.mark(i), p = [];
            for (let {pkg: k, peerDependency: T} of ve.sortMap(f, Y => P.stringifyLocator(Y.pkg))) {
                let j = (g !== null ? Wt.satisfiesWithPrereleases(g.version, T.range) : !1) ? h.Check : h.Cross;
                p.push({
                    stringifiedLocator: P.stringifyLocator(k),
                    prettyLocator: P.prettyLocator(i, k),
                    prettyRange: P.prettyRange(i, T.range),
                    mark: j
                })
            }
            let m = Math.max(...p.map(({stringifiedLocator: k}) => k.length)),
                y = Math.max(...p.map(({prettyRange: k}) => k.length));
            for (let {
                stringifiedLocator: k,
                prettyLocator: T,
                prettyRange: Y,
                mark: j
            } of ve.sortMap(p, ({stringifiedLocator: Z}) => Z)) o.reportInfo(null, `${T.padEnd(m + (T.length - k.length), " ")} \u2192 ${Y.padEnd(y, " ")} ${j}`);
            p.length > 1 && (o.reportSeparator(), o.reportInfo($.UNNAMED, `Note: these requirements start with ${P.prettyLocator(e.configuration, l)}`))
        })).exitCode()
    }

    Is();
    var bae = ge(ri()), hm = class extends Le {
        constructor() {
            super(...arguments);
            this.onlyIfNeeded = W.Boolean("--only-if-needed", !1, {description: "Only lock the Yarn version if it isn't already locked"});
            this.version = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins);
            if (e.get("yarnPath") && this.onlyIfNeeded) return 0;
            let r = () => {
                if (typeof Kr == "undefined") throw new Pe("The --install flag can only be used without explicit version specifier from the Yarn CLI");
                return `file://${process.argv[1]}`
            }, i;
            if (this.version === "self") i = r(); else if (this.version === "latest" || this.version === "berry" || this.version === "stable") i = `https://repo.yarnpkg.com/${await pm(e, "stable")}/packages/yarnpkg-cli/bin/yarn.js`; else if (this.version === "canary") i = `https://repo.yarnpkg.com/${await pm(e, "canary")}/packages/yarnpkg-cli/bin/yarn.js`; else if (this.version === "classic") i = "https://nightly.yarnpkg.com/latest.js"; else if (this.version.match(/^https?:/)) i = this.version; else if (this.version.match(/^\.{0,2}[\\/]/) || H.isAbsolute(this.version)) i = `file://${H.resolve(this.version)}`; else if (Wt.satisfiesWithPrereleases(this.version, ">=2.0.0")) i = `https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`; else if (Wt.satisfiesWithPrereleases(this.version, "^0.x || ^1.x")) i = `https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`; else if (Wt.validRange(this.version)) i = `https://repo.yarnpkg.com/${await N8e(e, this.version)}/packages/yarnpkg-cli/bin/yarn.js`; else throw new Pe(`Invalid version descriptor "${this.version}"`);
            return (await Je.start({
                configuration: e,
                stdout: this.context.stdout,
                includeLogs: !this.context.quiet
            }, async s => {
                let o = "file://", a;
                i.startsWith(o) ? (s.reportInfo($.UNNAMED, `Downloading ${Ae.pretty(e, i, Di.URL)}`), a = await K.readFilePromise(H.toPortablePath(i.slice(o.length)))) : (s.reportInfo($.UNNAMED, `Retrieving ${Ae.pretty(e, i, Di.PATH)}`), a = await ir.get(i, {configuration: e})), await WN(e, null, a, {report: s})
            })).exitCode()
        }
    };
    hm.paths = [["set", "version"]], hm.usage = Re.Usage({
        description: "lock the Yarn version used by the project",
        details: "\n      This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n      A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n\n      The version specifier can be:\n\n      - a tag:\n        - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n        - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n        - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n      - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n      - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n      - a local file referenced through either a relative or absolute path\n\n      - `self` -> the version used to invoke the command\n    ",
        examples: [["Download the latest release from the Yarn repository", "$0 set version latest"], ["Download the latest canary release from the Yarn repository", "$0 set version canary"], ["Download the latest classic release from the Yarn repository", "$0 set version classic"], ["Download the most recent Yarn 3 build", "$0 set version 3.x"], ["Download a specific Yarn 2 build", "$0 set version 2.0.0-rc.30"], ["Switch back to a specific Yarn 1 release", "$0 set version 1.22.1"], ["Use a release from the local filesystem", "$0 set version ./yarn.cjs"], ["Use a release from a URL", "$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"], ["Download the version used to invoke the command", "$0 set version self"]]
    });
    var Qae = hm;

    async function N8e(t, e) {
        let i = (await ir.get("https://repo.yarnpkg.com/tags", {
            configuration: t,
            jsonResponse: !0
        })).tags.filter(n => Wt.satisfiesWithPrereleases(n, e));
        if (i.length === 0) throw new Pe(`No matching release found for range ${Ae.pretty(t, e, Ae.Type.RANGE)}.`);
        return i[0]
    }

    async function pm(t, e) {
        let r = await ir.get("https://repo.yarnpkg.com/tags", {configuration: t, jsonResponse: !0});
        if (!r.latest[e]) throw new Pe(`Tag ${Ae.pretty(t, e, Ae.Type.RANGE)} not found`);
        return r.latest[e]
    }

    async function WN(t, e, r, {report: i}) {
        var g;
        e === null && await K.mktempPromise(async f => {
            let h = x.join(f, "yarn.cjs");
            await K.writeFilePromise(h, r);
            let {stdout: p} = await Fr.execvp(process.execPath, [H.fromPortablePath(h), "--version"], {
                cwd: f,
                env: ie(N({}, process.env), {YARN_IGNORE_PATH: "1"})
            });
            if (e = p.trim(), !bae.default.valid(e)) throw new Error(`Invalid semver version. ${Ae.pretty(t, "yarn --version", Ae.Type.CODE)} returned:
${e}`)
        });
        let n = (g = t.projectCwd) != null ? g : t.startingCwd, s = x.resolve(n, ".yarn/releases"),
            o = x.resolve(s, `yarn-${e}.cjs`), a = x.relative(t.startingCwd, o), l = x.relative(n, o),
            c = t.get("yarnPath"), u = c === null || c.startsWith(`${s}/`);
        if (i.reportInfo($.UNNAMED, `Saving the new release in ${Ae.pretty(t, a, "magenta")}`), await K.removePromise(x.dirname(o)), await K.mkdirPromise(x.dirname(o), {recursive: !0}), await K.writeFilePromise(o, r, {mode: 493}), u) {
            await we.updateConfiguration(n, {yarnPath: l});
            let f = await At.tryFind(n) || new At;
            f.packageManager = `yarn@${e && ve.isTaggedYarnVersion(e) ? e : await pm(t, "stable")}`;
            let h = {};
            f.exportTo(h);
            let p = x.join(n, At.fileName), m = `${JSON.stringify(h, null, f.indent)}
`;
            await K.changeFilePromise(p, m, {automaticNewlines: !0})
        }
    }

    function vae(t) {
        return $[bI(t)]
    }

    var L8e = /## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;

    async function T8e(t) {
        let r = `https://repo.yarnpkg.com/${ve.isTaggedYarnVersion(Kr) ? Kr : await pm(t, "canary")}/packages/gatsby/content/advanced/error-codes.md`,
            i = await ir.get(r, {configuration: t});
        return new Map(Array.from(i.toString().matchAll(L8e), ({groups: n}) => {
            if (!n) throw new Error("Assertion failed: Expected the match to have been successful");
            let s = vae(n.code);
            if (n.name !== s) throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);
            return [n.code, n.details]
        }))
    }

    var dm = class extends Le {
        constructor() {
            super(...arguments);
            this.code = W.String({required: !1, validator: hp(fp(), [pp(/^YN[0-9]{4}$/)])});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins);
            if (typeof this.code != "undefined") {
                let r = vae(this.code), i = Ae.pretty(e, r, Ae.Type.CODE),
                    n = this.cli.format().header(`${this.code} - ${i}`), o = (await T8e(e)).get(this.code),
                    a = typeof o != "undefined" ? Ae.jsonOrPretty(this.json, e, Ae.tuple(Ae.Type.MARKDOWN, {
                        text: o,
                        format: this.cli.format(),
                        paragraphs: !0
                    })) : `This error code does not have a description.

You can help us by editing this page on GitHub \u{1F642}:
${Ae.jsonOrPretty(this.json, e, Ae.tuple(Ae.Type.URL, "https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))}
`;
                this.json ? this.context.stdout.write(`${JSON.stringify({code: this.code, name: r, details: a})}
`) : this.context.stdout.write(`${n}

${a}
`)
            } else {
                let r = {
                    children: ve.mapAndFilter(Object.entries($), ([i, n]) => Number.isNaN(Number(i)) ? ve.mapAndFilter.skip : {
                        label: qA(Number(i)),
                        value: Ae.tuple(Ae.Type.CODE, n)
                    })
                };
                As.emitTree(r, {configuration: e, stdout: this.context.stdout, json: this.json})
            }
        }
    };
    dm.paths = [["explain"]], dm.usage = Re.Usage({
        description: "explain an error code", details: `
      When the code argument is specified, this command prints its name and its details.

      When used without arguments, this command lists all error codes and their names.
    `, examples: [["Explain an error code", "$0 explain YN0006"], ["List all error codes", "$0 explain"]]
    });
    var Sae = dm;
    var kae = ge(rs()), Cm = class extends Le {
        constructor() {
            super(...arguments);
            this.all = W.Boolean("-A,--all", !1, {description: "Print versions of a package from the whole project"});
            this.recursive = W.Boolean("-R,--recursive", !1, {description: "Print information for all packages, including transitive dependencies"});
            this.extra = W.Array("-X,--extra", [], {description: "An array of requests of extra data provided by plugins"});
            this.cache = W.Boolean("--cache", !1, {description: "Print information about the cache entry of a package (path, size, checksum)"});
            this.dependents = W.Boolean("--dependents", !1, {description: "Print all dependents for each matching package"});
            this.manifest = W.Boolean("--manifest", !1, {description: "Print data obtained by looking at the package archive (license, homepage, ...)"});
            this.nameOnly = W.Boolean("--name-only", !1, {description: "Only print the name for the matching packages"});
            this.virtuals = W.Boolean("--virtuals", !1, {description: "Print each instance of the virtual packages"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.patterns = W.Rest()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i && !this.all) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState();
            let s = new Set(this.extra);
            this.cache && s.add("cache"), this.dependents && s.add("dependents"), this.manifest && s.add("manifest");
            let o = (k, {recursive: T}) => {
                    let Y = k.anchoredLocator.locatorHash, j = new Map, Z = [Y];
                    for (; Z.length > 0;) {
                        let J = Z.shift();
                        if (j.has(J)) continue;
                        let re = r.storedPackages.get(J);
                        if (typeof re == "undefined") throw new Error("Assertion failed: Expected the package to be registered");
                        if (j.set(J, re), P.isVirtualLocator(re) && Z.push(P.devirtualizeLocator(re).locatorHash), !(!T && J !== Y)) for (let ee of re.dependencies.values()) {
                            let A = r.storedResolutions.get(ee.descriptorHash);
                            if (typeof A == "undefined") throw new Error("Assertion failed: Expected the resolution to be registered");
                            Z.push(A)
                        }
                    }
                    return j.values()
                }, a = ({recursive: k}) => {
                    let T = new Map;
                    for (let Y of r.workspaces) for (let j of o(Y, {recursive: k})) T.set(j.locatorHash, j);
                    return T.values()
                }, l = ({
                            all: k,
                            recursive: T
                        }) => k && T ? r.storedPackages.values() : k ? a({recursive: T}) : o(i, {recursive: T}),
                c = ({all: k, recursive: T}) => {
                    let Y = l({all: k, recursive: T}), j = this.patterns.map(re => {
                        let ee = P.parseLocator(re), A = kae.default.makeRe(P.stringifyIdent(ee)),
                            oe = P.isVirtualLocator(ee), le = oe ? P.devirtualizeLocator(ee) : ee;
                        return X => {
                            let O = P.stringifyIdent(X);
                            if (!A.test(O)) return !1;
                            if (ee.reference === "unknown") return !0;
                            let L = P.isVirtualLocator(X), pe = L ? P.devirtualizeLocator(X) : X;
                            return !(oe && L && ee.reference !== X.reference || le.reference !== pe.reference)
                        }
                    }), Z = ve.sortMap([...Y], re => P.stringifyLocator(re));
                    return {selection: Z.filter(re => j.length === 0 || j.some(ee => ee(re))), sortedLookup: Z}
                }, {selection: u, sortedLookup: g} = c({all: this.all, recursive: this.recursive});
            if (u.length === 0) throw new Pe("No package matched your request");
            let f = new Map;
            if (this.dependents) for (let k of g) for (let T of k.dependencies.values()) {
                let Y = r.storedResolutions.get(T.descriptorHash);
                if (typeof Y == "undefined") throw new Error("Assertion failed: Expected the resolution to be registered");
                ve.getArrayWithDefault(f, Y).push(k)
            }
            let h = new Map;
            for (let k of g) {
                if (!P.isVirtualLocator(k)) continue;
                let T = P.devirtualizeLocator(k);
                ve.getArrayWithDefault(h, T.locatorHash).push(k)
            }
            let p = {}, m = {children: p}, y = e.makeFetcher(), b = {
                project: r,
                fetcher: y,
                cache: n,
                checksums: r.storedChecksums,
                report: new pi,
                cacheOptions: {skipIntegrityCheck: !0},
                skipIntegrityCheck: !0
            }, S = [async (k, T, Y) => {
                var J, re;
                if (!T.has("manifest")) return;
                let j = await y.fetch(k, b), Z;
                try {
                    Z = await At.find(j.prefixPath, {baseFs: j.packageFs})
                } finally {
                    (J = j.releaseFs) == null || J.call(j)
                }
                Y("Manifest", {
                    License: Ae.tuple(Ae.Type.NO_HINT, Z.license),
                    Homepage: Ae.tuple(Ae.Type.URL, (re = Z.raw.homepage) != null ? re : null)
                })
            }, async (k, T, Y) => {
                var A;
                if (!T.has("cache")) return;
                let j = {mockedPackages: r.disabledLocators, unstablePackages: r.conditionalLocators},
                    Z = (A = r.storedChecksums.get(k.locatorHash)) != null ? A : null, J = n.getLocatorPath(k, Z, j),
                    re;
                if (J !== null) try {
                    re = K.statSync(J)
                } catch {
                }
                let ee = typeof re != "undefined" ? [re.size, Ae.Type.SIZE] : void 0;
                Y("Cache", {Checksum: Ae.tuple(Ae.Type.NO_HINT, Z), Path: Ae.tuple(Ae.Type.PATH, J), Size: ee})
            }];
            for (let k of u) {
                let T = P.isVirtualLocator(k);
                if (!this.virtuals && T) continue;
                let Y = {}, j = {value: [k, Ae.Type.LOCATOR], children: Y};
                if (p[P.stringifyLocator(k)] = j, this.nameOnly) {
                    delete j.children;
                    continue
                }
                let Z = h.get(k.locatorHash);
                typeof Z != "undefined" && (Y.Instances = {
                    label: "Instances",
                    value: Ae.tuple(Ae.Type.NUMBER, Z.length)
                }), Y.Version = {label: "Version", value: Ae.tuple(Ae.Type.NO_HINT, k.version)};
                let J = (ee, A) => {
                    let oe = {};
                    if (Y[ee] = oe, Array.isArray(A)) oe.children = A.map(le => ({value: le})); else {
                        let le = {};
                        oe.children = le;
                        for (let [X, O] of Object.entries(A)) typeof O != "undefined" && (le[X] = {label: X, value: O})
                    }
                };
                if (!T) {
                    for (let ee of S) await ee(k, s, J);
                    await e.triggerHook(ee => ee.fetchPackageInfo, k, s, J)
                }
                k.bin.size > 0 && !T && J("Exported Binaries", [...k.bin.keys()].map(ee => Ae.tuple(Ae.Type.PATH, ee)));
                let re = f.get(k.locatorHash);
                typeof re != "undefined" && re.length > 0 && J("Dependents", re.map(ee => Ae.tuple(Ae.Type.LOCATOR, ee))), k.dependencies.size > 0 && !T && J("Dependencies", [...k.dependencies.values()].map(ee => {
                    var le;
                    let A = r.storedResolutions.get(ee.descriptorHash),
                        oe = typeof A != "undefined" && (le = r.storedPackages.get(A)) != null ? le : null;
                    return Ae.tuple(Ae.Type.RESOLUTION, {descriptor: ee, locator: oe})
                })), k.peerDependencies.size > 0 && T && J("Peer dependencies", [...k.peerDependencies.values()].map(ee => {
                    var X, O;
                    let A = k.dependencies.get(ee.identHash),
                        oe = typeof A != "undefined" && (X = r.storedResolutions.get(A.descriptorHash)) != null ? X : null,
                        le = oe !== null && (O = r.storedPackages.get(oe)) != null ? O : null;
                    return Ae.tuple(Ae.Type.RESOLUTION, {descriptor: ee, locator: le})
                }))
            }
            As.emitTree(m, {
                configuration: e,
                json: this.json,
                stdout: this.context.stdout,
                separators: this.nameOnly ? 0 : 2
            })
        }
    };
    Cm.paths = [["info"]], Cm.usage = Re.Usage({
        description: "see information related to packages",
        details: "\n      This command prints various information related to the specified packages, accepting glob patterns.\n\n      By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n      Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n      Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n    ",
        examples: [["Show information about Lodash", "$0 info lodash"]]
    });
    var xae = Cm;
    var ab = ge(pc());
    Is();
    var mm = class extends Le {
        constructor() {
            super(...arguments);
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.immutable = W.Boolean("--immutable", {description: "Abort with an error exit code if the lockfile was to be modified"});
            this.immutableCache = W.Boolean("--immutable-cache", {description: "Abort with an error exit code if the cache folder was to be modified"});
            this.checkCache = W.Boolean("--check-cache", !1, {description: "Always refetch the packages and ensure that their checksums are consistent"});
            this.inlineBuilds = W.Boolean("--inline-builds", {description: "Verbosely print the output of the build steps of dependencies"});
            this.mode = W.String("--mode", {description: "Change what artifacts installs generate", validator: nn(di)});
            this.cacheFolder = W.String("--cache-folder", {hidden: !0});
            this.frozenLockfile = W.Boolean("--frozen-lockfile", {hidden: !0});
            this.ignoreEngines = W.Boolean("--ignore-engines", {hidden: !0});
            this.nonInteractive = W.Boolean("--non-interactive", {hidden: !0});
            this.preferOffline = W.Boolean("--prefer-offline", {hidden: !0});
            this.production = W.Boolean("--production", {hidden: !0});
            this.registry = W.String("--registry", {hidden: !0});
            this.silent = W.Boolean("--silent", {hidden: !0});
            this.networkTimeout = W.String("--network-timeout", {hidden: !0})
        }

        async execute() {
            var g;
            let e = await we.find(this.context.cwd, this.context.plugins);
            typeof this.inlineBuilds != "undefined" && e.useWithSource("<cli>", {enableInlineBuilds: this.inlineBuilds}, e.startingCwd, {overwrite: !0});
            let r = !!process.env.FUNCTION_TARGET || !!process.env.GOOGLE_RUNTIME, i = async (f, {error: h}) => {
                let p = await Je.start({configuration: e, stdout: this.context.stdout, includeFooter: !1}, async m => {
                    h ? m.reportError($.DEPRECATED_CLI_SETTINGS, f) : m.reportWarning($.DEPRECATED_CLI_SETTINGS, f)
                });
                return p.hasErrors() ? p.exitCode() : null
            };
            if (typeof this.ignoreEngines != "undefined") {
                let f = await i("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore", {error: !ab.default.VERCEL});
                if (f !== null) return f
            }
            if (typeof this.registry != "undefined") {
                let f = await i("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file", {error: !1});
                if (f !== null) return f
            }
            if (typeof this.preferOffline != "undefined") {
                let f = await i("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead", {error: !ab.default.VERCEL});
                if (f !== null) return f
            }
            if (typeof this.production != "undefined") {
                let f = await i("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead", {error: !0});
                if (f !== null) return f
            }
            if (typeof this.nonInteractive != "undefined") {
                let f = await i("The --non-interactive option is deprecated", {error: !r});
                if (f !== null) return f
            }
            if (typeof this.frozenLockfile != "undefined" && (await i("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead", {error: !1}), this.immutable = this.frozenLockfile), typeof this.cacheFolder != "undefined") {
                let f = await i("The cache-folder option has been deprecated; use rc settings instead", {error: !ab.default.NETLIFY});
                if (f !== null) return f
            }
            let n = this.mode === di.UpdateLockfile;
            if (n && (this.immutable || this.immutableCache)) throw new Pe(`${Ae.pretty(e, "--immutable", Ae.Type.CODE)} and ${Ae.pretty(e, "--immutable-cache", Ae.Type.CODE)} cannot be used with ${Ae.pretty(e, "--mode=update-lockfile", Ae.Type.CODE)}`);
            let s = ((g = this.immutable) != null ? g : e.get("enableImmutableInstalls")) && !n,
                o = this.immutableCache && !n;
            if (e.projectCwd !== null) {
                let f = await Je.start({
                    configuration: e,
                    json: this.json,
                    stdout: this.context.stdout,
                    includeFooter: !1
                }, async h => {
                    await O8e(e, s) && (h.reportInfo($.AUTOMERGE_SUCCESS, "Automatically fixed merge conflicts \u{1F44D}"), h.reportSeparator())
                });
                if (f.hasErrors()) return f.exitCode()
            }
            if (e.projectCwd !== null && typeof e.sources.get("nodeLinker") == "undefined") {
                let f = e.projectCwd, h;
                try {
                    h = await K.readFilePromise(x.join(f, Pt.lockfile), "utf8")
                } catch {
                }
                if (h == null ? void 0 : h.includes("yarn lockfile v1")) {
                    let p = await Je.start({
                        configuration: e,
                        json: this.json,
                        stdout: this.context.stdout,
                        includeFooter: !1
                    }, async m => {
                        m.reportInfo($.AUTO_NM_SUCCESS, "Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"), m.reportSeparator(), e.use("<compat>", {nodeLinker: "node-modules"}, f, {overwrite: !0}), await we.updateConfiguration(f, {nodeLinker: "node-modules"})
                    });
                    if (p.hasErrors()) return p.exitCode()
                }
            }
            if (e.projectCwd !== null) {
                let f = await Je.start({
                    configuration: e,
                    json: this.json,
                    stdout: this.context.stdout,
                    includeFooter: !1
                }, async h => {
                    var p;
                    ((p = we.telemetry) == null ? void 0 : p.isNew) && (h.reportInfo($.TELEMETRY_NOTICE, "Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"), h.reportInfo($.TELEMETRY_NOTICE, `Run ${Ae.pretty(e, "yarn config set --home enableTelemetry 0", Ae.Type.CODE)} to disable`), h.reportSeparator())
                });
                if (f.hasErrors()) return f.exitCode()
            }
            let {project: a, workspace: l} = await ze.find(e, this.context.cwd),
                c = await Nt.find(e, {immutable: o, check: this.checkCache});
            if (!l) throw new ht(a.cwd, this.context.cwd);
            return await a.restoreInstallState({restoreResolutions: !1}), (await Je.start({
                configuration: e,
                json: this.json,
                stdout: this.context.stdout,
                includeLogs: !0
            }, async f => {
                await a.install({cache: c, report: f, immutable: s, mode: this.mode})
            })).exitCode()
        }
    };
    mm.paths = [["install"], Re.Default], mm.usage = Re.Usage({
        description: "install the project dependencies",
        details: `
      This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:

      - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).

      - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored).

      - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know).

      - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.

      Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.

      If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release.

      If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).

      If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.

      If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.

      If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:

      - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.

      - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.
    `,
        examples: [["Install the project", "$0 install"], ["Validate a project when using Zero-Installs", "$0 install --immutable --immutable-cache"], ["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)", "$0 install --immutable --immutable-cache --check-cache"]]
    });
    var Pae = mm, M8e = "|||||||", K8e = ">>>>>>>", U8e = "=======", Dae = "<<<<<<<";

    async function O8e(t, e) {
        if (!t.projectCwd) return !1;
        let r = x.join(t.projectCwd, t.get("lockfileFilename"));
        if (!await K.existsPromise(r)) return !1;
        let i = await K.readFilePromise(r, "utf8");
        if (!i.includes(Dae)) return !1;
        if (e) throw new ct($.AUTOMERGE_IMMUTABLE, "Cannot autofix a lockfile when running an immutable install");
        let [n, s] = H8e(i), o, a;
        try {
            o = Qi(n), a = Qi(s)
        } catch (c) {
            throw new ct($.AUTOMERGE_FAILED_TO_PARSE, "The individual variants of the lockfile failed to parse")
        }
        let l = N(N({}, o), a);
        for (let [c, u] of Object.entries(l)) typeof u == "string" && delete l[c];
        return await K.changeFilePromise(r, La(l), {automaticNewlines: !0}), !0
    }

    function H8e(t) {
        let e = [[], []], r = t.split(/\r?\n/g), i = !1;
        for (; r.length > 0;) {
            let n = r.shift();
            if (typeof n == "undefined") throw new Error("Assertion failed: Some lines should remain");
            if (n.startsWith(Dae)) {
                for (; r.length > 0;) {
                    let s = r.shift();
                    if (typeof s == "undefined") throw new Error("Assertion failed: Some lines should remain");
                    if (s === U8e) {
                        i = !1;
                        break
                    } else if (i || s.startsWith(M8e)) {
                        i = !0;
                        continue
                    } else e[0].push(s)
                }
                for (; r.length > 0;) {
                    let s = r.shift();
                    if (typeof s == "undefined") throw new Error("Assertion failed: Some lines should remain");
                    if (s.startsWith(K8e)) break;
                    e[1].push(s)
                }
            } else e[0].push(n), e[1].push(n)
        }
        return [e[0].join(`
`), e[1].join(`
`)]
    }

    var Em = class extends Le {
        constructor() {
            super(...arguments);
            this.all = W.Boolean("-A,--all", !1, {description: "Link all workspaces belonging to the target project to the current one"});
            this.private = W.Boolean("-p,--private", !1, {description: "Also link private workspaces belonging to the target project to the current one"});
            this.relative = W.Boolean("-r,--relative", !1, {description: "Link workspaces using relative paths instead of absolute paths"});
            this.destination = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState({restoreResolutions: !1});
            let s = x.resolve(this.context.cwd, H.toPortablePath(this.destination)),
                o = await we.find(s, this.context.plugins, {useRc: !1, strict: !1}), {
                    project: a,
                    workspace: l
                } = await ze.find(o, s);
            if (r.cwd === a.cwd) throw new Pe("Invalid destination; Can't link the project to itself");
            if (!l) throw new ht(a.cwd, s);
            let c = r.topLevelWorkspace, u = [];
            if (this.all) {
                for (let f of a.workspaces) f.manifest.name && (!f.manifest.private || this.private) && u.push(f);
                if (u.length === 0) throw new Pe("No workspace found to be linked in the target project")
            } else {
                if (!l.manifest.name) throw new Pe("The target workspace doesn't have a name and thus cannot be linked");
                if (l.manifest.private && !this.private) throw new Pe("The target workspace is marked private - use the --private flag to link it anyway");
                u.push(l)
            }
            for (let f of u) {
                let h = P.stringifyIdent(f.locator), p = this.relative ? x.relative(r.cwd, f.cwd) : f.cwd;
                c.manifest.resolutions.push({pattern: {descriptor: {fullName: h}}, reference: `portal:${p}`})
            }
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async f => {
                await r.install({cache: n, report: f})
            })).exitCode()
        }
    };
    Em.paths = [["link"]], Em.usage = Re.Usage({
        description: "connect the local project to another one",
        details: "\n      This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n    ",
        examples: [["Register a remote workspace for use in the current project", "$0 link ~/ts-loader"], ["Register all workspaces from a remote project for use in the current project", "$0 link ~/jest --all"]]
    });
    var Rae = Em;
    var Im = class extends Le {
        constructor() {
            super(...arguments);
            this.args = W.Proxy()
        }

        async execute() {
            return this.cli.run(["exec", "node", ...this.args])
        }
    };
    Im.paths = [["node"]], Im.usage = Re.Usage({
        description: "run node with the hook already setup", details: `
      This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).

      The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.
    `, examples: [["Run a Node script", "$0 node ./my-script.js"]]
    });
    var Fae = Im;
    var Gae = ge(require("os"));
    var Lae = ge(require("os"));
    var G8e = "https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";

    async function wu(t) {
        let e = await ir.get(G8e, {configuration: t});
        return Qi(e.toString())
    }

    var ym = class extends Le {
        constructor() {
            super(...arguments);
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins);
            return (await Je.start({configuration: e, json: this.json, stdout: this.context.stdout}, async i => {
                let n = await wu(e);
                for (let s of Object.entries(n)) {
                    let [l, o] = s, a = o, {experimental: c} = a, u = Tr(a, ["experimental"]);
                    let g = l;
                    c && (g += " [experimental]"), i.reportJson(N({name: l, experimental: c}, u)), i.reportInfo(null, g)
                }
            })).exitCode()
        }
    };
    ym.paths = [["plugin", "list"]], ym.usage = Re.Usage({
        category: "Plugin-related commands",
        description: "list the available official plugins",
        details: "\n      This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n    ",
        examples: [["List the official plugins", "$0 plugin list"]]
    });
    var Nae = ym;
    var j8e = /^[0-9]+$/;

    function Tae(t) {
        return j8e.test(t) ? `pull/${t}/head` : t
    }

    var Y8e = ({
                   repository: t,
                   branch: e
               }, r) => [["git", "init", H.fromPortablePath(r)], ["git", "remote", "add", "origin", t], ["git", "fetch", "origin", "--depth=1", Tae(e)], ["git", "reset", "--hard", "FETCH_HEAD"]],
        q8e = ({branch: t}) => [["git", "fetch", "origin", "--depth=1", Tae(t), "--force"], ["git", "reset", "--hard", "FETCH_HEAD"], ["git", "clean", "-dfx"]],
        J8e = ({
                   plugins: t,
                   noMinify: e
               }, r) => [["yarn", "build:cli", ...new Array().concat(...t.map(i => ["--plugin", x.resolve(r, i)])), ...e ? ["--no-minify"] : [], "|"]],
        wm = class extends Le {
            constructor() {
                super(...arguments);
                this.installPath = W.String("--path", {description: "The path where the repository should be cloned to"});
                this.repository = W.String("--repository", "https://github.com/yarnpkg/berry.git", {description: "The repository that should be cloned"});
                this.branch = W.String("--branch", "master", {description: "The branch of the repository that should be cloned"});
                this.plugins = W.Array("--plugin", [], {description: "An array of additional plugins that should be included in the bundle"});
                this.noMinify = W.Boolean("--no-minify", !1, {description: "Build a bundle for development (debugging) - non-minified and non-mangled"});
                this.force = W.Boolean("-f,--force", !1, {description: "Always clone the repository instead of trying to fetch the latest commits"});
                this.skipPlugins = W.Boolean("--skip-plugins", !1, {description: "Skip updating the contrib plugins"})
            }

            async execute() {
                let e = await we.find(this.context.cwd, this.context.plugins), {project: r} = await ze.find(e, this.context.cwd),
                    i = typeof this.installPath != "undefined" ? x.resolve(this.context.cwd, H.toPortablePath(this.installPath)) : x.resolve(H.toPortablePath((0, Lae.tmpdir)()), "yarnpkg-sources", Dn.makeHash(this.repository).slice(0, 6));
                return (await Je.start({configuration: e, stdout: this.context.stdout}, async s => {
                    await _N(this, {
                        configuration: e,
                        report: s,
                        target: i
                    }), s.reportSeparator(), s.reportInfo($.UNNAMED, "Building a fresh bundle"), s.reportSeparator(), await Bm(J8e(this, i), {
                        configuration: e,
                        context: this.context,
                        target: i
                    }), s.reportSeparator();
                    let o = x.resolve(i, "packages/yarnpkg-cli/bundles/yarn.js"), a = await K.readFilePromise(o);
                    await WN(e, "sources", a, {report: s}), this.skipPlugins || await W8e(this, {
                        project: r,
                        report: s,
                        target: i
                    })
                })).exitCode()
            }
        };
    wm.paths = [["set", "version", "from", "sources"]], wm.usage = Re.Usage({
        description: "build Yarn from master", details: `
      This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.

      By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag.
    `, examples: [["Build Yarn from master", "$0 set version from sources"]]
    });
    var Oae = wm;

    async function Bm(t, {configuration: e, context: r, target: i}) {
        for (let [n, ...s] of t) {
            let o = s[s.length - 1] === "|";
            if (o && s.pop(), o) await Fr.pipevp(n, s, {
                cwd: i,
                stdin: r.stdin,
                stdout: r.stdout,
                stderr: r.stderr,
                strict: !0
            }); else {
                r.stdout.write(`${Ae.pretty(e, `  $ ${[n, ...s].join(" ")}`, "grey")}
`);
                try {
                    await Fr.execvp(n, s, {cwd: i, strict: !0})
                } catch (a) {
                    throw r.stdout.write(a.stdout || a.stack), a
                }
            }
        }
    }

    async function _N(t, {configuration: e, report: r, target: i}) {
        let n = !1;
        if (!t.force && K.existsSync(x.join(i, ".git"))) {
            r.reportInfo($.UNNAMED, "Fetching the latest commits"), r.reportSeparator();
            try {
                await Bm(q8e(t), {configuration: e, context: t.context, target: i}), n = !0
            } catch (s) {
                r.reportSeparator(), r.reportWarning($.UNNAMED, "Repository update failed; we'll try to regenerate it")
            }
        }
        n || (r.reportInfo($.UNNAMED, "Cloning the remote repository"), r.reportSeparator(), await K.removePromise(i), await K.mkdirPromise(i, {recursive: !0}), await Bm(Y8e(t, i), {
            configuration: e,
            context: t.context,
            target: i
        }))
    }

    async function W8e(t, {project: e, report: r, target: i}) {
        let n = await wu(e.configuration), s = new Set(Object.keys(n));
        for (let o of e.configuration.plugins.keys()) !s.has(o) || await zN(o, t, {project: e, report: r, target: i})
    }

    var Mae = ge(ri()), Kae = ge(require("url")), Uae = ge(require("vm"));
    var bm = class extends Le {
        constructor() {
            super(...arguments);
            this.name = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins);
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async i => {
                let {project: n} = await ze.find(e, this.context.cwd), s, o;
                if (this.name.match(/^\.{0,2}[\\/]/) || H.isAbsolute(this.name)) {
                    let a = x.resolve(this.context.cwd, H.toPortablePath(this.name));
                    i.reportInfo($.UNNAMED, `Reading ${Ae.pretty(e, a, Ae.Type.PATH)}`), s = x.relative(n.cwd, a), o = await K.readFilePromise(a)
                } else {
                    let a;
                    if (this.name.match(/^https?:/)) {
                        try {
                            new Kae.URL(this.name)
                        } catch {
                            throw new ct($.INVALID_PLUGIN_REFERENCE, `Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)
                        }
                        s = this.name, a = this.name
                    } else {
                        let l = P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/, "@yarnpkg/plugin-"));
                        if (l.reference !== "unknown" && !Mae.default.valid(l.reference)) throw new ct($.UNNAMED, "Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");
                        let c = P.stringifyIdent(l), u = await wu(e);
                        if (!Object.prototype.hasOwnProperty.call(u, c)) throw new ct($.PLUGIN_NAME_NOT_FOUND, `Couldn't find a plugin named "${c}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);
                        s = c, a = u[c].url, l.reference !== "unknown" ? a = a.replace(/\/master\//, `/${c}/${l.reference}/`) : Kr !== null && (a = a.replace(/\/master\//, `/@yarnpkg/cli/${Kr}/`))
                    }
                    i.reportInfo($.UNNAMED, `Downloading ${Ae.pretty(e, a, "green")}`), o = await ir.get(a, {configuration: e})
                }
                await VN(s, o, {project: n, report: i})
            })).exitCode()
        }
    };
    bm.paths = [["plugin", "import"]], bm.usage = Re.Usage({
        category: "Plugin-related commands",
        description: "download a plugin",
        details: `
      This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.

      Three types of plugin references are accepted:

      - If the plugin is stored within the Yarn repository, it can be referenced by name.
      - Third-party plugins can be referenced directly through their public urls.
      - Local plugins can be referenced by their path on the disk.

      Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package).
    `,
        examples: [['Download and activate the "@yarnpkg/plugin-exec" plugin', "$0 plugin import @yarnpkg/plugin-exec"], ['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)', "$0 plugin import exec"], ["Download and activate a community plugin", "$0 plugin import https://example.org/path/to/plugin.js"], ["Activate a local plugin", "$0 plugin import ./path/to/plugin.js"]]
    });
    var Hae = bm;

    async function VN(t, e, {project: r, report: i}) {
        let {configuration: n} = r, s = {}, o = {exports: s};
        (0, Uae.runInNewContext)(e.toString(), {module: o, exports: s});
        let a = o.exports.name, l = `.yarn/plugins/${a}.cjs`, c = x.resolve(r.cwd, l);
        i.reportInfo($.UNNAMED, `Saving the new plugin in ${Ae.pretty(n, l, "magenta")}`), await K.mkdirPromise(x.dirname(c), {recursive: !0}), await K.writeFilePromise(c, e);
        let u = {path: l, spec: t};
        await we.updateConfiguration(r.cwd, g => {
            let f = [], h = !1;
            for (let p of g.plugins || []) {
                let m = typeof p != "string" ? p.path : p,
                    y = x.resolve(r.cwd, H.toPortablePath(m)), {name: b} = ve.dynamicRequire(y);
                b !== a ? f.push(p) : (f.push(u), h = !0)
            }
            return h || f.push(u), ie(N({}, g), {plugins: f})
        })
    }

    var z8e = ({pluginName: t, noMinify: e}, r) => [["yarn", `build:${t}`, ...e ? ["--no-minify"] : [], "|"]],
        Qm = class extends Le {
            constructor() {
                super(...arguments);
                this.installPath = W.String("--path", {description: "The path where the repository should be cloned to"});
                this.repository = W.String("--repository", "https://github.com/yarnpkg/berry.git", {description: "The repository that should be cloned"});
                this.branch = W.String("--branch", "master", {description: "The branch of the repository that should be cloned"});
                this.noMinify = W.Boolean("--no-minify", !1, {description: "Build a plugin for development (debugging) - non-minified and non-mangled"});
                this.force = W.Boolean("-f,--force", !1, {description: "Always clone the repository instead of trying to fetch the latest commits"});
                this.name = W.String()
            }

            async execute() {
                let e = await we.find(this.context.cwd, this.context.plugins),
                    r = typeof this.installPath != "undefined" ? x.resolve(this.context.cwd, H.toPortablePath(this.installPath)) : x.resolve(H.toPortablePath((0, Gae.tmpdir)()), "yarnpkg-sources", Dn.makeHash(this.repository).slice(0, 6));
                return (await Je.start({configuration: e, stdout: this.context.stdout}, async n => {
                    let {project: s} = await ze.find(e, this.context.cwd),
                        o = P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/, "@yarnpkg/plugin-")),
                        a = P.stringifyIdent(o), l = await wu(e);
                    if (!Object.prototype.hasOwnProperty.call(l, a)) throw new ct($.PLUGIN_NAME_NOT_FOUND, `Couldn't find a plugin named "${a}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);
                    let c = a;
                    await _N(this, {configuration: e, report: n, target: r}), await zN(c, this, {
                        project: s,
                        report: n,
                        target: r
                    })
                })).exitCode()
            }
        };
    Qm.paths = [["plugin", "import", "from", "sources"]], Qm.usage = Re.Usage({
        category: "Plugin-related commands",
        description: "build a plugin from sources",
        details: `
      This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.

      The plugins can be referenced by their short name if sourced from the official Yarn repository.
    `,
        examples: [['Build and activate the "@yarnpkg/plugin-exec" plugin', "$0 plugin import from sources @yarnpkg/plugin-exec"], ['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)', "$0 plugin import from sources exec"]]
    });
    var jae = Qm;

    async function zN(t, {context: e, noMinify: r}, {project: i, report: n, target: s}) {
        let o = t.replace(/@yarnpkg\//, ""), {configuration: a} = i;
        n.reportSeparator(), n.reportInfo($.UNNAMED, `Building a fresh ${o}`), n.reportSeparator(), await Bm(z8e({
            pluginName: o,
            noMinify: r
        }, s), {configuration: a, context: e, target: s}), n.reportSeparator();
        let l = x.resolve(s, `packages/${o}/bundles/${t}.js`), c = await K.readFilePromise(l);
        await VN(t, c, {project: i, report: n})
    }

    var vm = class extends Le {
        constructor() {
            super(...arguments);
            this.name = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {project: r} = await ze.find(e, this.context.cwd);
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async n => {
                let s = this.name, o = P.parseIdent(s);
                if (!e.plugins.has(s)) throw new Pe(`${P.prettyIdent(e, o)} isn't referenced by the current configuration`);
                let a = `.yarn/plugins/${s}.cjs`, l = x.resolve(r.cwd, a);
                K.existsSync(l) && (n.reportInfo($.UNNAMED, `Removing ${Ae.pretty(e, a, Ae.Type.PATH)}...`), await K.removePromise(l)), n.reportInfo($.UNNAMED, "Updating the configuration..."), await we.updateConfiguration(r.cwd, c => {
                    if (!Array.isArray(c.plugins)) return c;
                    let u = c.plugins.filter(g => g.path !== a);
                    return c.plugins.length === u.length ? c : ie(N({}, c), {plugins: u})
                })
            })).exitCode()
        }
    };
    vm.paths = [["plugin", "remove"]], vm.usage = Re.Usage({
        category: "Plugin-related commands",
        description: "remove a plugin",
        details: `
      This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.

      **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed.
   `,
        examples: [["Remove a plugin imported from the Yarn repository", "$0 plugin remove @yarnpkg/plugin-typescript"], ["Remove a plugin imported from a local file", "$0 plugin remove my-local-plugin"]]
    });
    var Yae = vm;
    var Sm = class extends Le {
        constructor() {
            super(...arguments);
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins);
            return (await Je.start({configuration: e, json: this.json, stdout: this.context.stdout}, async i => {
                for (let n of e.plugins.keys()) {
                    let s = this.context.plugins.plugins.has(n), o = n;
                    s && (o += " [builtin]"), i.reportJson({name: n, builtin: s}), i.reportInfo(null, `${o}`)
                }
            })).exitCode()
        }
    };
    Sm.paths = [["plugin", "runtime"]], Sm.usage = Re.Usage({
        category: "Plugin-related commands", description: "list the active plugins", details: `
      This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.
    `, examples: [["List the currently active plugins", "$0 plugin runtime"]]
    });
    var qae = Sm;
    var km = class extends Le {
        constructor() {
            super(...arguments);
            this.idents = W.Rest()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            let s = new Set;
            for (let a of this.idents) s.add(P.parseIdent(a).identHash);
            if (await r.restoreInstallState({restoreResolutions: !1}), await r.resolveEverything({
                cache: n,
                report: new pi
            }), s.size > 0) for (let a of r.storedPackages.values()) s.has(a.identHash) && r.storedBuildState.delete(a.locatorHash); else r.storedBuildState.clear();
            return (await Je.start({
                configuration: e,
                stdout: this.context.stdout,
                includeLogs: !this.context.quiet
            }, async a => {
                await r.install({cache: n, report: a})
            })).exitCode()
        }
    };
    km.paths = [["rebuild"]], km.usage = Re.Usage({
        description: "rebuild the project's native packages", details: `
      This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.

      Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).

      By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.
    `, examples: [["Rebuild all packages", "$0 rebuild"], ["Rebuild fsevents only", "$0 rebuild fsevents"]]
    });
    var Jae = km;
    var XN = ge(rs());
    Is();
    var xm = class extends Le {
        constructor() {
            super(...arguments);
            this.all = W.Boolean("-A,--all", !1, {description: "Apply the operation to all workspaces from the current project"});
            this.mode = W.String("--mode", {description: "Change what artifacts installs generate", validator: nn(di)});
            this.patterns = W.Rest()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState({restoreResolutions: !1});
            let s = this.all ? r.workspaces : [i], o = [Hr.REGULAR, Hr.DEVELOPMENT, Hr.PEER], a = [], l = !1, c = [];
            for (let h of this.patterns) {
                let p = !1, m = P.parseIdent(h);
                for (let y of s) {
                    let b = [...y.manifest.peerDependenciesMeta.keys()];
                    for (let S of (0, XN.default)(b, h)) y.manifest.peerDependenciesMeta.delete(S), l = !0, p = !0;
                    for (let S of o) {
                        let k = y.manifest.getForScope(S), T = [...k.values()].map(Y => P.stringifyIdent(Y));
                        for (let Y of (0, XN.default)(T, P.stringifyIdent(m))) {
                            let {identHash: j} = P.parseIdent(Y), Z = k.get(j);
                            if (typeof Z == "undefined") throw new Error("Assertion failed: Expected the descriptor to be registered");
                            y.manifest[S].delete(j), c.push([y, S, Z]), l = !0, p = !0
                        }
                    }
                }
                p || a.push(h)
            }
            let u = a.length > 1 ? "Patterns" : "Pattern", g = a.length > 1 ? "don't" : "doesn't",
                f = this.all ? "any" : "this";
            if (a.length > 0) throw new Pe(`${u} ${Ae.prettyList(e, a, Di.CODE)} ${g} match any packages referenced by ${f} workspace`);
            return l ? (await e.triggerMultipleHooks(p => p.afterWorkspaceDependencyRemoval, c), (await Je.start({
                configuration: e,
                stdout: this.context.stdout
            }, async p => {
                await r.install({cache: n, report: p, mode: this.mode})
            })).exitCode()) : 0
        }
    };
    xm.paths = [["remove"]], xm.usage = Re.Usage({
        description: "remove dependencies from the project",
        details: `
      This command will remove the packages matching the specified patterns from the current workspace.

      If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:

      - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.

      - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.

      This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.
    `,
        examples: [["Remove a dependency from the current project", "$0 remove lodash"], ["Remove a dependency from all workspaces at once", "$0 remove lodash --all"], ["Remove all dependencies starting with `eslint-`", "$0 remove 'eslint-*'"], ["Remove all dependencies with the `@babel` scope", "$0 remove '@babel/*'"], ["Remove all dependencies matching `react-dom` or `react-helmet`", "$0 remove 'react-{dom,helmet}'"]]
    });
    var Wae = xm;
    var zae = ge(require("util")), Ab = class extends Le {
        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async s => {
                let o = i.manifest.scripts, a = ve.sortMap(o.keys(), u => u),
                    l = {breakLength: Infinity, colors: e.get("enableColors"), maxArrayLength: 2},
                    c = a.reduce((u, g) => Math.max(u, g.length), 0);
                for (let [u, g] of o.entries()) s.reportInfo(null, `${u.padEnd(c, " ")}   ${(0, zae.inspect)(g, l)}`)
            })).exitCode()
        }
    };
    Ab.paths = [["run"]];
    var _ae = Ab;
    var Pm = class extends Le {
        constructor() {
            super(...arguments);
            this.inspect = W.String("--inspect", !1, {
                tolerateBoolean: !0,
                description: "Forwarded to the underlying Node process when executing a binary"
            });
            this.inspectBrk = W.String("--inspect-brk", !1, {
                tolerateBoolean: !0,
                description: "Forwarded to the underlying Node process when executing a binary"
            });
            this.topLevel = W.Boolean("-T,--top-level", !1, {description: "Check the root workspace for scripts and/or binaries instead of the current one"});
            this.binariesOnly = W.Boolean("-B,--binaries-only", !1, {description: "Ignore any user defined scripts and only check for binaries"});
            this.silent = W.Boolean("--silent", {hidden: !0});
            this.scriptName = W.String();
            this.args = W.Proxy()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i,
                locator: n
            } = await ze.find(e, this.context.cwd);
            await r.restoreInstallState();
            let s = this.topLevel ? r.topLevelWorkspace.anchoredLocator : n;
            if (!this.binariesOnly && await Zt.hasPackageScript(s, this.scriptName, {project: r})) return await Zt.executePackageScript(s, this.scriptName, this.args, {
                project: r,
                stdin: this.context.stdin,
                stdout: this.context.stdout,
                stderr: this.context.stderr
            });
            let o = await Zt.getPackageAccessibleBinaries(s, {project: r});
            if (o.get(this.scriptName)) {
                let l = [];
                return this.inspect && (typeof this.inspect == "string" ? l.push(`--inspect=${this.inspect}`) : l.push("--inspect")), this.inspectBrk && (typeof this.inspectBrk == "string" ? l.push(`--inspect-brk=${this.inspectBrk}`) : l.push("--inspect-brk")), await Zt.executePackageAccessibleBinary(s, this.scriptName, this.args, {
                    cwd: this.context.cwd,
                    project: r,
                    stdin: this.context.stdin,
                    stdout: this.context.stdout,
                    stderr: this.context.stderr,
                    nodeArgs: l,
                    packageAccessibleBinaries: o
                })
            }
            if (!this.topLevel && !this.binariesOnly && i && this.scriptName.includes(":")) {
                let c = (await Promise.all(r.workspaces.map(async u => u.manifest.scripts.has(this.scriptName) ? u : null))).filter(u => u !== null);
                if (c.length === 1) return await Zt.executeWorkspaceScript(c[0], this.scriptName, this.args, {
                    stdin: this.context.stdin,
                    stdout: this.context.stdout,
                    stderr: this.context.stderr
                })
            }
            if (this.topLevel) throw this.scriptName === "node-gyp" ? new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e, n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`) : new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e, n)}).`);
            {
                if (this.scriptName === "global") throw new Pe("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");
                let l = [this.scriptName].concat(this.args);
                for (let [c, u] of Tf) for (let g of u) if (l.length >= g.length && JSON.stringify(l.slice(0, g.length)) === JSON.stringify(g)) throw new Pe(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${c} plugin. You can install it with "yarn plugin import ${c}".`);
                throw new Pe(`Couldn't find a script named "${this.scriptName}".`)
            }
        }
    };
    Pm.paths = [["run"]], Pm.usage = Re.Usage({
        description: "run a script defined in the package.json",
        details: `
      This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:

      - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed.

      - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed.

      - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.

      Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).
    `,
        examples: [["Run the tests from the local workspace", "$0 run test"], ['Same thing, but without the "run" keyword', "$0 test"], ["Inspect Webpack while running", "$0 run --inspect-brk webpack"]]
    });
    var Vae = Pm;
    var Dm = class extends Le {
        constructor() {
            super(...arguments);
            this.save = W.Boolean("-s,--save", !1, {description: "Persist the resolution inside the top-level manifest"});
            this.descriptor = W.String();
            this.resolution = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (await r.restoreInstallState({restoreResolutions: !1}), !i) throw new ht(r.cwd, this.context.cwd);
            let s = P.parseDescriptor(this.descriptor, !0), o = P.makeDescriptor(s, this.resolution);
            return r.storedDescriptors.set(s.descriptorHash, s), r.storedDescriptors.set(o.descriptorHash, o), r.resolutionAliases.set(s.descriptorHash, o.descriptorHash), (await Je.start({
                configuration: e,
                stdout: this.context.stdout
            }, async l => {
                await r.install({cache: n, report: l})
            })).exitCode()
        }
    };
    Dm.paths = [["set", "resolution"]], Dm.usage = Re.Usage({
        description: "enforce a package resolution",
        details: '\n      This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n      Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n      Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n    ',
        examples: [["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0", "$0 set resolution lodash@npm:^1.2.3 1.5.0"]]
    });
    var Xae = Dm;
    var Zae = ge(rs()), Rm = class extends Le {
        constructor() {
            super(...arguments);
            this.all = W.Boolean("-A,--all", !1, {description: "Unlink all workspaces belonging to the target project from the current one"});
            this.leadingArguments = W.Rest()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            let s = r.topLevelWorkspace, o = new Set;
            if (this.leadingArguments.length === 0 && this.all) for (let {
                pattern: l,
                reference: c
            } of s.manifest.resolutions) c.startsWith("portal:") && o.add(l.descriptor.fullName);
            if (this.leadingArguments.length > 0) for (let l of this.leadingArguments) {
                let c = x.resolve(this.context.cwd, H.toPortablePath(l));
                if (ve.isPathLike(l)) {
                    let u = await we.find(c, this.context.plugins, {useRc: !1, strict: !1}), {
                        project: g,
                        workspace: f
                    } = await ze.find(u, c);
                    if (!f) throw new ht(g.cwd, c);
                    if (this.all) {
                        for (let h of g.workspaces) h.manifest.name && o.add(P.stringifyIdent(h.locator));
                        if (o.size === 0) throw new Pe("No workspace found to be unlinked in the target project")
                    } else {
                        if (!f.manifest.name) throw new Pe("The target workspace doesn't have a name and thus cannot be unlinked");
                        o.add(P.stringifyIdent(f.locator))
                    }
                } else {
                    let u = [...s.manifest.resolutions.map(({pattern: g}) => g.descriptor.fullName)];
                    for (let g of (0, Zae.default)(u, l)) o.add(g)
                }
            }
            return s.manifest.resolutions = s.manifest.resolutions.filter(({pattern: l}) => !o.has(l.descriptor.fullName)), (await Je.start({
                configuration: e,
                stdout: this.context.stdout
            }, async l => {
                await r.install({cache: n, report: l})
            })).exitCode()
        }
    };
    Rm.paths = [["unlink"]], Rm.usage = Re.Usage({
        description: "disconnect the local project from another one",
        details: `
      This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments.
    `,
        examples: [["Unregister a remote workspace in the current project", "$0 unlink ~/ts-loader"], ["Unregister all workspaces from a remote project in the current project", "$0 unlink ~/jest --all"], ["Unregister all previously linked workspaces", "$0 unlink --all"], ["Unregister all workspaces matching a glob", "$0 unlink '@babel/*' 'pkg-{a,b}'"]]
    });
    var $ae = Rm;
    var eAe = ge(em()), ZN = ge(rs());
    Is();
    var rh = class extends Le {
        constructor() {
            super(...arguments);
            this.interactive = W.Boolean("-i,--interactive", {description: "Offer various choices, depending on the detected upgrade paths"});
            this.exact = W.Boolean("-E,--exact", !1, {description: "Don't use any semver modifier on the resolved range"});
            this.tilde = W.Boolean("-T,--tilde", !1, {description: "Use the `~` semver modifier on the resolved range"});
            this.caret = W.Boolean("-C,--caret", !1, {description: "Use the `^` semver modifier on the resolved range"});
            this.recursive = W.Boolean("-R,--recursive", !1, {description: "Resolve again ALL resolutions for those packages"});
            this.mode = W.String("--mode", {description: "Change what artifacts installs generate", validator: nn(di)});
            this.patterns = W.Rest()
        }

        async execute() {
            return this.recursive ? await this.executeUpRecursive() : await this.executeUpClassic()
        }

        async executeUpRecursive() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState({restoreResolutions: !1});
            let s = [...r.storedDescriptors.values()], o = s.map(u => P.stringifyIdent(u)), a = new Set;
            for (let u of this.patterns) {
                if (P.parseDescriptor(u).range !== "unknown") throw new Pe("Ranges aren't allowed when using --recursive");
                for (let g of (0, ZN.default)(o, u)) {
                    let f = P.parseIdent(g);
                    a.add(f.identHash)
                }
            }
            let l = s.filter(u => a.has(u.identHash));
            for (let u of l) r.storedDescriptors.delete(u.descriptorHash), r.storedResolutions.delete(u.descriptorHash);
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async u => {
                await r.install({cache: n, report: u})
            })).exitCode()
        }

        async executeUpClassic() {
            var m;
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState({restoreResolutions: !1});
            let s = (m = this.interactive) != null ? m : e.get("preferInteractive"), o = tm(this, r),
                a = s ? [Vr.KEEP, Vr.REUSE, Vr.PROJECT, Vr.LATEST] : [Vr.PROJECT, Vr.LATEST], l = [], c = [];
            for (let y of this.patterns) {
                let b = !1, S = P.parseDescriptor(y);
                for (let k of r.workspaces) for (let T of [Hr.REGULAR, Hr.DEVELOPMENT]) {
                    let j = [...k.manifest.getForScope(T).values()].map(Z => P.stringifyIdent(Z));
                    for (let Z of (0, ZN.default)(j, P.stringifyIdent(S))) {
                        let J = P.parseIdent(Z), re = k.manifest[T].get(J.identHash);
                        if (typeof re == "undefined") throw new Error("Assertion failed: Expected the descriptor to be registered");
                        let ee = P.makeDescriptor(J, S.range);
                        l.push(Promise.resolve().then(async () => [k, T, re, await rm(ee, {
                            project: r,
                            workspace: k,
                            cache: n,
                            target: T,
                            modifier: o,
                            strategies: a
                        })])), b = !0
                    }
                }
                b || c.push(y)
            }
            if (c.length > 1) throw new Pe(`Patterns ${Ae.prettyList(e, c, Di.CODE)} don't match any packages referenced by any workspace`);
            if (c.length > 0) throw new Pe(`Pattern ${Ae.prettyList(e, c, Di.CODE)} doesn't match any packages referenced by any workspace`);
            let u = await Promise.all(l),
                g = await gA.start({configuration: e, stdout: this.context.stdout, suggestInstall: !1}, async y => {
                    for (let [, , b, {suggestions: S, rejections: k}] of u) {
                        let T = S.filter(Y => Y.descriptor !== null);
                        if (T.length === 0) {
                            let [Y] = k;
                            if (typeof Y == "undefined") throw new Error("Assertion failed: Expected an error to have been set");
                            let j = this.cli.error(Y);
                            r.configuration.get("enableNetwork") ? y.reportError($.CANT_SUGGEST_RESOLUTIONS, `${P.prettyDescriptor(e, b)} can't be resolved to a satisfying range

${j}`) : y.reportError($.CANT_SUGGEST_RESOLUTIONS, `${P.prettyDescriptor(e, b)} can't be resolved to a satisfying range (note: network resolution has been disabled)

${j}`)
                        } else T.length > 1 && !s && y.reportError($.CANT_SUGGEST_RESOLUTIONS, `${P.prettyDescriptor(e, b)} has multiple possible upgrade strategies; use -i to disambiguate manually`)
                    }
                });
            if (g.hasErrors()) return g.exitCode();
            let f = !1, h = [];
            for (let [y, b, , {suggestions: S}] of u) {
                let k, T = S.filter(J => J.descriptor !== null), Y = T[0].descriptor,
                    j = T.every(J => P.areDescriptorsEqual(J.descriptor, Y));
                T.length === 1 || j ? k = Y : (f = !0, {answer: k} = await (0, eAe.prompt)({
                    type: "select",
                    name: "answer",
                    message: `Which range to you want to use in ${P.prettyWorkspace(e, y)} \u276F ${b}?`,
                    choices: S.map(({descriptor: J, name: re, reason: ee}) => J ? {
                        name: re,
                        hint: ee,
                        descriptor: J
                    } : {name: re, hint: ee, disabled: !0}),
                    onCancel: () => process.exit(130),
                    result(J) {
                        return this.find(J, "descriptor")
                    },
                    stdin: this.context.stdin,
                    stdout: this.context.stdout
                }));
                let Z = y.manifest[b].get(k.identHash);
                if (typeof Z == "undefined") throw new Error("Assertion failed: This descriptor should have a matching entry");
                if (Z.descriptorHash !== k.descriptorHash) y.manifest[b].set(k.identHash, k), h.push([y, b, Z, k]); else {
                    let J = e.makeResolver(), re = {project: r, resolver: J},
                        ee = J.bindDescriptor(Z, y.anchoredLocator, re);
                    r.forgetResolution(ee)
                }
            }
            return await e.triggerMultipleHooks(y => y.afterWorkspaceDependencyReplacement, h), f && this.context.stdout.write(`
`), (await Je.start({configuration: e, stdout: this.context.stdout}, async y => {
                await r.install({cache: n, report: y, mode: this.mode})
            })).exitCode()
        }
    };
    rh.paths = [["up"]], rh.usage = Re.Usage({
        description: "upgrade dependencies across the project",
        details: "\n      This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n      If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n      If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n      The, `-C,--caret`, `-E,--exact` and  `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n      If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n      - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n      - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n      Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n      This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n      **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n    ",
        examples: [["Upgrade all instances of lodash to the latest release", "$0 up lodash"], ["Upgrade all instances of lodash to the latest release, but ask confirmation for each", "$0 up lodash -i"], ["Upgrade all instances of lodash to 1.2.3", "$0 up lodash@1.2.3"], ["Upgrade all instances of packages with the `@babel` scope to the latest release", "$0 up '@babel/*'"], ["Upgrade all instances of packages containing the word `jest` to the latest release", "$0 up '*jest*'"], ["Upgrade all instances of packages with the `@babel` scope to 7.0.0", "$0 up '@babel/*@7.0.0'"]]
    }), rh.schema = [gv("recursive", mc.Forbids, ["interactive", "exact", "tilde", "caret"], {ignore: [void 0, !1]})];
    var tAe = rh;
    var Fm = class extends Le {
        constructor() {
            super(...arguments);
            this.recursive = W.Boolean("-R,--recursive", !1, {description: "List, for each workspace, what are all the paths that lead to the dependency"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.peers = W.Boolean("--peers", !1, {description: "Also print the peer dependencies that match the specified name"});
            this.package = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState();
            let n = P.parseIdent(this.package).identHash,
                s = this.recursive ? V8e(r, n, {configuration: e, peers: this.peers}) : _8e(r, n, {
                    configuration: e,
                    peers: this.peers
                });
            As.emitTree(s, {configuration: e, stdout: this.context.stdout, json: this.json, separators: 1})
        }
    };
    Fm.paths = [["why"]], Fm.usage = Re.Usage({
        description: "display the reason why a package is needed", details: `
      This command prints the exact reasons why a package appears in the dependency tree.

      If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree.
    `, examples: [["Explain why lodash is used in your project", "$0 why lodash"]]
    });
    var rAe = Fm;

    function _8e(t, e, {configuration: r, peers: i}) {
        let n = ve.sortMap(t.storedPackages.values(), a => P.stringifyLocator(a)), s = {}, o = {children: s};
        for (let a of n) {
            let l = {}, c = null;
            for (let u of a.dependencies.values()) {
                if (!i && a.peerDependencies.has(u.identHash)) continue;
                let g = t.storedResolutions.get(u.descriptorHash);
                if (!g) throw new Error("Assertion failed: The resolution should have been registered");
                let f = t.storedPackages.get(g);
                if (!f) throw new Error("Assertion failed: The package should have been registered");
                if (f.identHash !== e) continue;
                if (c === null) {
                    let p = P.stringifyLocator(a);
                    s[p] = {value: [a, Ae.Type.LOCATOR], children: l}
                }
                let h = P.stringifyLocator(f);
                l[h] = {value: [{descriptor: u, locator: f}, Ae.Type.DEPENDENT]}
            }
        }
        return o
    }

    function V8e(t, e, {configuration: r, peers: i}) {
        let n = ve.sortMap(t.workspaces, f => P.stringifyLocator(f.anchoredLocator)), s = new Set, o = new Set,
            a = f => {
                if (s.has(f.locatorHash)) return o.has(f.locatorHash);
                if (s.add(f.locatorHash), f.identHash === e) return o.add(f.locatorHash), !0;
                let h = !1;
                f.identHash === e && (h = !0);
                for (let p of f.dependencies.values()) {
                    if (!i && f.peerDependencies.has(p.identHash)) continue;
                    let m = t.storedResolutions.get(p.descriptorHash);
                    if (!m) throw new Error("Assertion failed: The resolution should have been registered");
                    let y = t.storedPackages.get(m);
                    if (!y) throw new Error("Assertion failed: The package should have been registered");
                    a(y) && (h = !0)
                }
                return h && o.add(f.locatorHash), h
            };
        for (let f of n) {
            let h = t.storedPackages.get(f.anchoredLocator.locatorHash);
            if (!h) throw new Error("Assertion failed: The package should have been registered");
            a(h)
        }
        let l = new Set, c = {}, u = {children: c}, g = (f, h, p) => {
            if (!o.has(f.locatorHash)) return;
            let m = p !== null ? Ae.tuple(Ae.Type.DEPENDENT, {
                locator: f,
                descriptor: p
            }) : Ae.tuple(Ae.Type.LOCATOR, f), y = {}, b = {value: m, children: y}, S = P.stringifyLocator(f);
            if (h[S] = b, !l.has(f.locatorHash) && (l.add(f.locatorHash), !(p !== null && t.tryWorkspaceByLocator(f)))) for (let k of f.dependencies.values()) {
                if (!i && f.peerDependencies.has(k.identHash)) continue;
                let T = t.storedResolutions.get(k.descriptorHash);
                if (!T) throw new Error("Assertion failed: The resolution should have been registered");
                let Y = t.storedPackages.get(T);
                if (!Y) throw new Error("Assertion failed: The package should have been registered");
                g(Y, y, k)
            }
        };
        for (let f of n) {
            let h = t.storedPackages.get(f.anchoredLocator.locatorHash);
            if (!h) throw new Error("Assertion failed: The package should have been registered");
            g(h, c, null)
        }
        return u
    }

    var cL = {};
    ft(cL, {default: () => C4e, gitUtils: () => Bu});
    var Bu = {};
    ft(Bu, {
        TreeishProtocols: () => On,
        clone: () => aL,
        fetchBase: () => BAe,
        fetchChangedFiles: () => bAe,
        fetchChangedWorkspaces: () => p4e,
        fetchRoot: () => wAe,
        isGitUrl: () => nh,
        lsRemote: () => yAe,
        normalizeLocator: () => nL,
        normalizeRepoUrl: () => Nm,
        resolveUrl: () => oL,
        splitRepoUrl: () => Lm
    });
    var rL = ge(CAe()), mAe = ge(rB()), ih = ge(require("querystring")), iL = ge(ri()), EAe = ge(require("url"));

    function IAe() {
        return ie(N({}, process.env), {GIT_SSH_COMMAND: process.env.GIT_SSH_COMMAND || `${process.env.GIT_SSH || "ssh"} -o BatchMode=yes`})
    }

    var h4e = [/^ssh:/, /^git(?:\+[^:]+)?:/, /^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/, /^git@[^#]+\/[^#]+\.git(?:#.*)?$/, /^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/, /^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],
        On;
    (function (n) {
        n.Commit = "commit", n.Head = "head", n.Tag = "tag", n.Semver = "semver"
    })(On || (On = {}));

    function nh(t) {
        return t ? h4e.some(e => !!t.match(e)) : !1
    }

    function Lm(t) {
        t = Nm(t);
        let e = t.indexOf("#");
        if (e === -1) return {repo: t, treeish: {protocol: On.Head, request: "HEAD"}, extra: {}};
        let r = t.slice(0, e), i = t.slice(e + 1);
        if (i.match(/^[a-z]+=/)) {
            let n = ih.default.parse(i);
            for (let [l, c] of Object.entries(n)) if (typeof c != "string") throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);
            let s = Object.values(On).find(l => Object.prototype.hasOwnProperty.call(n, l)), o, a;
            typeof s != "undefined" ? (o = s, a = n[s]) : (o = On.Head, a = "HEAD");
            for (let l of Object.values(On)) delete n[l];
            return {repo: r, treeish: {protocol: o, request: a}, extra: n}
        } else {
            let n = i.indexOf(":"), s, o;
            return n === -1 ? (s = null, o = i) : (s = i.slice(0, n), o = i.slice(n + 1)), {
                repo: r,
                treeish: {protocol: s, request: o},
                extra: {}
            }
        }
    }

    function Nm(t, {git: e = !1} = {}) {
        var r;
        if (t = t.replace(/^git\+https:/, "https:"), t = t.replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/, "https://github.com/$1/$2.git$3"), t = t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/, "https://github.com/$1/$2.git#$3"), e) {
            t = t.replace(/^git\+([^:]+):/, "$1:");
            let i;
            try {
                i = EAe.default.parse(t)
            } catch {
                i = null
            }
            i && i.protocol === "ssh:" && ((r = i.path) == null ? void 0 : r.startsWith("/:")) && (t = t.replace(/^ssh:\/\//, ""))
        }
        return t
    }

    function nL(t) {
        return P.makeLocator(t, Nm(t.reference))
    }

    async function yAe(t, e) {
        let r = Nm(t, {git: !0});
        if (!ir.getNetworkSettings(`https://${(0, rL.default)(r).resource}`, {configuration: e}).enableNetwork) throw new Error(`Request to '${r}' has been blocked because of your configuration settings`);
        let n = await sL("listing refs", ["ls-remote", r], {cwd: e.startingCwd, env: IAe()}, {
            configuration: e,
            normalizedRepoUrl: r
        }), s = new Map, o = /^([a-f0-9]{40})\t([^\n]+)/gm, a;
        for (; (a = o.exec(n.stdout)) !== null;) s.set(a[2], a[1]);
        return s
    }

    async function oL(t, e) {
        let {repo: r, treeish: {protocol: i, request: n}, extra: s} = Lm(t), o = await yAe(r, e), a = (c, u) => {
            switch (c) {
                case On.Commit: {
                    if (!u.match(/^[a-f0-9]{40}$/)) throw new Error("Invalid commit hash");
                    return ih.default.stringify(ie(N({}, s), {commit: u}))
                }
                case On.Head: {
                    let g = o.get(u === "HEAD" ? u : `refs/heads/${u}`);
                    if (typeof g == "undefined") throw new Error(`Unknown head ("${u}")`);
                    return ih.default.stringify(ie(N({}, s), {commit: g}))
                }
                case On.Tag: {
                    let g = o.get(`refs/tags/${u}`);
                    if (typeof g == "undefined") throw new Error(`Unknown tag ("${u}")`);
                    return ih.default.stringify(ie(N({}, s), {commit: g}))
                }
                case On.Semver: {
                    let g = Wt.validRange(u);
                    if (!g) throw new Error(`Invalid range ("${u}")`);
                    let f = new Map([...o.entries()].filter(([p]) => p.startsWith("refs/tags/")).map(([p, m]) => [iL.default.parse(p.slice(10)), m]).filter(p => p[0] !== null)),
                        h = iL.default.maxSatisfying([...f.keys()], g);
                    if (h === null) throw new Error(`No matching range ("${u}")`);
                    return ih.default.stringify(ie(N({}, s), {commit: f.get(h)}))
                }
                case null: {
                    let g;
                    if ((g = l(On.Commit, u)) !== null || (g = l(On.Tag, u)) !== null || (g = l(On.Head, u)) !== null) return g;
                    throw u.match(/^[a-f0-9]+$/) ? new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`) : new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)
                }
                default:
                    throw new Error(`Invalid Git resolution protocol ("${c}")`)
            }
        }, l = (c, u) => {
            try {
                return a(c, u)
            } catch (g) {
                return null
            }
        };
        return `${r}#${a(i, n)}`
    }

    async function aL(t, e) {
        return await e.getLimit("cloneConcurrency")(async () => {
            let {repo: r, treeish: {protocol: i, request: n}} = Lm(t);
            if (i !== "commit") throw new Error("Invalid treeish protocol when cloning");
            let s = Nm(r, {git: !0});
            if (ir.getNetworkSettings(`https://${(0, rL.default)(s).resource}`, {configuration: e}).enableNetwork === !1) throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);
            let o = await K.mktempPromise(), a = {cwd: o, env: IAe()};
            return await sL("cloning the repository", ["clone", "-c core.autocrlf=false", s, H.fromPortablePath(o)], a, {
                configuration: e,
                normalizedRepoUrl: s
            }), await sL("switching branch", ["checkout", `${n}`], a, {configuration: e, normalizedRepoUrl: s}), o
        })
    }

    async function wAe(t) {
        let e = null, r, i = t;
        do r = i, await K.existsPromise(x.join(r, ".git")) && (e = r), i = x.dirname(r); while (e === null && i !== r);
        return e
    }

    async function BAe(t, {baseRefs: e}) {
        if (e.length === 0) throw new Pe("Can't run this command with zero base refs specified.");
        let r = [];
        for (let a of e) {
            let {code: l} = await Fr.execvp("git", ["merge-base", a, "HEAD"], {cwd: t});
            l === 0 && r.push(a)
        }
        if (r.length === 0) throw new Pe(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);
        let {stdout: i} = await Fr.execvp("git", ["merge-base", "HEAD", ...r], {cwd: t, strict: !0}),
            n = i.trim(), {stdout: s} = await Fr.execvp("git", ["show", "--quiet", "--pretty=format:%s", n], {
                cwd: t,
                strict: !0
            }), o = s.trim();
        return {hash: n, title: o}
    }

    async function bAe(t, {base: e, project: r}) {
        let i = ve.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")), {stdout: n} = await Fr.execvp("git", ["diff", "--name-only", `${e}`], {
                cwd: t,
                strict: !0
            }),
            s = n.split(/\r\n|\r|\n/).filter(c => c.length > 0).map(c => x.resolve(t, H.toPortablePath(c))), {stdout: o} = await Fr.execvp("git", ["ls-files", "--others", "--exclude-standard"], {
                cwd: t,
                strict: !0
            }), a = o.split(/\r\n|\r|\n/).filter(c => c.length > 0).map(c => x.resolve(t, H.toPortablePath(c))),
            l = [...new Set([...s, ...a].sort())];
        return i ? l.filter(c => !x.relative(r.cwd, c).match(i)) : l
    }

    async function p4e({ref: t, project: e}) {
        if (e.configuration.projectCwd === null) throw new Pe("This command can only be run from within a Yarn project");
        let r = [x.resolve(e.cwd, e.configuration.get("cacheFolder")), x.resolve(e.cwd, e.configuration.get("installStatePath")), x.resolve(e.cwd, e.configuration.get("lockfileFilename")), x.resolve(e.cwd, e.configuration.get("virtualFolder"))];
        await e.configuration.triggerHook(o => o.populateYarnPaths, e, o => {
            o != null && r.push(o)
        });
        let i = await wAe(e.configuration.projectCwd);
        if (i == null) throw new Pe("This command can only be run on Git repositories");
        let n = await BAe(i, {baseRefs: typeof t == "string" ? [t] : e.configuration.get("changesetBaseRefs")}),
            s = await bAe(i, {base: n.hash, project: e});
        return new Set(ve.mapAndFilter(s, o => {
            let a = e.tryWorkspaceByFilePath(o);
            return a === null ? ve.mapAndFilter.skip : r.some(l => o.startsWith(l)) ? ve.mapAndFilter.skip : a
        }))
    }

    async function sL(t, e, r, {configuration: i, normalizedRepoUrl: n}) {
        try {
            return await Fr.execvp("git", e, ie(N({}, r), {strict: !0}))
        } catch (s) {
            if (!(s instanceof Fr.ExecError)) throw s;
            let o = s.reportExtra, a = s.stderr.toString();
            throw new ct($.EXCEPTION, `Failed ${t}`, l => {
                l.reportError($.EXCEPTION, `  ${Ae.prettyField(i, {
                    label: "Repository URL",
                    value: Ae.tuple(Ae.Type.URL, n)
                })}`);
                for (let c of a.matchAll(/^(.+?): (.*)$/gm)) {
                    let [, u, g] = c;
                    u = u.toLowerCase();
                    let f = u === "error" ? "Error" : `${(0, mAe.default)(u)} Error`;
                    l.reportError($.EXCEPTION, `  ${Ae.prettyField(i, {
                        label: f,
                        value: Ae.tuple(Ae.Type.NO_HINT, g)
                    })}`)
                }
                o == null || o(l)
            })
        }
    }

    var AL = class {
        supports(e, r) {
            return nh(e.reference)
        }

        getLocalPath(e, r) {
            return null
        }

        async fetch(e, r) {
            let i = r.checksums.get(e.locatorHash) || null, n = nL(e), s = new Map(r.checksums);
            s.set(n.locatorHash, i);
            let o = ie(N({}, r), {checksums: s}), a = await this.downloadHosted(n, o);
            if (a !== null) return a;
            let [l, c, u] = await r.cache.fetchPackageFromCache(e, i, N({
                onHit: () => r.report.reportCacheHit(e),
                onMiss: () => r.report.reportCacheMiss(e, `${P.prettyLocator(r.project.configuration, e)} can't be found in the cache and will be fetched from the remote repository`),
                loader: () => this.cloneFromRemote(n, o),
                skipIntegrityCheck: r.skipIntegrityCheck
            }, r.cacheOptions));
            return {packageFs: l, releaseFs: c, prefixPath: P.getIdentVendorPath(e), checksum: u}
        }

        async downloadHosted(e, r) {
            return r.project.configuration.reduceHook(i => i.fetchHostedRepository, null, e, r)
        }

        async cloneFromRemote(e, r) {
            let i = await aL(e.reference, r.project.configuration), n = Lm(e.reference), s = x.join(i, "package.tgz");
            await Zt.prepareExternalProject(i, s, {
                configuration: r.project.configuration,
                report: r.report,
                workspace: n.extra.workspace,
                locator: e
            });
            let o = await K.readFilePromise(s);
            return await ve.releaseAfterUseAsync(async () => await wi.convertToZip(o, {
                compressionLevel: r.project.configuration.get("compressionLevel"),
                prefixPath: P.getIdentVendorPath(e),
                stripComponents: 1
            }))
        }
    };
    var lL = class {
        supportsDescriptor(e, r) {
            return nh(e.range)
        }

        supportsLocator(e, r) {
            return nh(e.reference)
        }

        shouldPersistResolution(e, r) {
            return !0
        }

        bindDescriptor(e, r, i) {
            return e
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            let n = await oL(e.range, i.project.configuration);
            return [P.makeLocator(e, n)]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            if (!r.fetchOptions) throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");
            let i = await r.fetchOptions.fetcher.fetch(e, r.fetchOptions),
                n = await ve.releaseAfterUseAsync(async () => await At.find(i.prefixPath, {baseFs: i.packageFs}), i.releaseFs);
            return ie(N({}, e), {
                version: n.version || "0.0.0",
                languageName: n.languageName || r.project.configuration.get("defaultLanguageName"),
                linkType: Qt.HARD,
                conditions: n.getConditions(),
                dependencies: n.dependencies,
                peerDependencies: n.peerDependencies,
                dependenciesMeta: n.dependenciesMeta,
                peerDependenciesMeta: n.peerDependenciesMeta,
                bin: n.bin
            })
        }
    };
    var d4e = {
        configuration: {
            changesetBaseRefs: {
                description: "The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",
                type: ye.STRING,
                isArray: !0,
                isNullable: !1,
                default: ["master", "origin/master", "upstream/master", "main", "origin/main", "upstream/main"]
            },
            changesetIgnorePatterns: {
                description: "Array of glob patterns; files matching them will be ignored when fetching the changed files",
                type: ye.STRING,
                default: [],
                isArray: !0
            },
            cloneConcurrency: {description: "Maximal number of concurrent clones", type: ye.NUMBER, default: 2}
        }, fetchers: [AL], resolvers: [lL]
    };
    var C4e = d4e;
    var Tm = class extends Le {
        constructor() {
            super(...arguments);
            this.since = W.String("--since", {
                description: "Only include workspaces that have been changed since the specified ref.",
                tolerateBoolean: !0
            });
            this.recursive = W.Boolean("-R,--recursive", !1, {description: "Find packages via dependencies/devDependencies instead of using the workspaces field"});
            this.verbose = W.Boolean("-v,--verbose", !1, {description: "Also return the cross-dependencies between workspaces"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {project: r} = await ze.find(e, this.context.cwd);
            return (await Je.start({configuration: e, json: this.json, stdout: this.context.stdout}, async n => {
                let s = this.since ? await Bu.fetchChangedWorkspaces({ref: this.since, project: r}) : r.workspaces,
                    o = new Set(s);
                if (this.recursive) for (let a of [...s].map(l => l.getRecursiveWorkspaceDependents())) for (let l of a) o.add(l);
                for (let a of o) {
                    let {manifest: l} = a, c;
                    if (this.verbose) {
                        let u = new Set, g = new Set;
                        for (let f of At.hardDependencies) for (let [h, p] of l.getForScope(f)) {
                            let m = r.tryWorkspaceByDescriptor(p);
                            m === null ? r.workspacesByIdent.has(h) && g.add(p) : u.add(m)
                        }
                        c = {
                            workspaceDependencies: Array.from(u).map(f => f.relativeCwd),
                            mismatchedWorkspaceDependencies: Array.from(g).map(f => P.stringifyDescriptor(f))
                        }
                    }
                    n.reportInfo(null, `${a.relativeCwd}`), n.reportJson(N({
                        location: a.relativeCwd,
                        name: l.name ? P.stringifyIdent(l.name) : null
                    }, c))
                }
            })).exitCode()
        }
    };
    Tm.paths = [["workspaces", "list"]], Tm.usage = Re.Usage({
        category: "Workspace-related commands",
        description: "list all available workspaces",
        details: "\n      This command will print the list of all workspaces in the project.\n\n      - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n      - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n      - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n    "
    });
    var QAe = Tm;
    var Om = class extends Le {
        constructor() {
            super(...arguments);
            this.workspaceName = W.String();
            this.commandName = W.String();
            this.args = W.Proxy()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            let n = r.workspaces, s = new Map(n.map(a => {
                let l = P.convertToIdent(a.locator);
                return [P.stringifyIdent(l), a]
            })), o = s.get(this.workspaceName);
            if (o === void 0) {
                let a = Array.from(s.keys()).sort();
                throw new Pe(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:
  - ${a.join(`
  - `)}?`)
            }
            return this.cli.run([this.commandName, ...this.args], {cwd: o.cwd})
        }
    };
    Om.paths = [["workspace"]], Om.usage = Re.Usage({
        category: "Workspace-related commands",
        description: "run a command within the specified workspace",
        details: `
      This command will run a given sub-command on a single workspace.
    `,
        examples: [["Add a package to a single workspace", "yarn workspace components add -D react"], ["Run build script on a single workspace", "yarn workspace components run build"]]
    });
    var vAe = Om;
    var m4e = {
        configuration: {
            enableImmutableInstalls: {
                description: "If true (the default on CI), prevents the install command from modifying the lockfile",
                type: ye.BOOLEAN,
                default: SAe.isCI
            },
            defaultSemverRangePrefix: {
                description: "The default save prefix: '^', '~' or ''",
                type: ye.STRING,
                values: ["^", "~", ""],
                default: ga.CARET
            }
        },
        commands: [Ose, Kse, eae, gae, Xae, Oae, Qae, QAe, mae, Eae, Iae, yae, Lse, Tse, fae, pae, wae, Bae, Sae, xae, Pae, Rae, $ae, Fae, jae, Hae, Yae, Nae, qae, Jae, Wae, _ae, Vae, tAe, rAe, vAe]
    }, E4e = m4e;
    var pL = {};
    ft(pL, {default: () => y4e});
    var qe = {optional: !0},
        kAe = [["@tailwindcss/aspect-ratio@<0.2.1", {peerDependencies: {tailwindcss: "^2.0.2"}}], ["@tailwindcss/line-clamp@<0.2.1", {peerDependencies: {tailwindcss: "^2.0.2"}}], ["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0", {peerDependencies: {postcss: "^8.0.0"}}], ["@samverschueren/stream-to-observable@<0.3.1", {
            peerDependenciesMeta: {
                rxjs: qe,
                zenObservable: qe
            }
        }], ["any-observable@<0.5.1", {
            peerDependenciesMeta: {
                rxjs: qe,
                zenObservable: qe
            }
        }], ["@pm2/agent@<1.0.4", {dependencies: {debug: "*"}}], ["debug@<4.2.0", {peerDependenciesMeta: {["supports-color"]: qe}}], ["got@<11", {
            dependencies: {
                ["@types/responselike"]: "^1.0.0",
                ["@types/keyv"]: "^3.1.1"
            }
        }], ["cacheable-lookup@<4.1.2", {dependencies: {["@types/keyv"]: "^3.1.1"}}], ["http-link-dataloader@*", {peerDependencies: {graphql: "^0.13.1 || ^14.0.0"}}], ["typescript-language-server@*", {
            dependencies: {
                ["vscode-jsonrpc"]: "^5.0.1",
                ["vscode-languageserver-protocol"]: "^3.15.0"
            }
        }], ["postcss-syntax@*", {
            peerDependenciesMeta: {
                ["postcss-html"]: qe,
                ["postcss-jsx"]: qe,
                ["postcss-less"]: qe,
                ["postcss-markdown"]: qe,
                ["postcss-scss"]: qe
            }
        }], ["jss-plugin-rule-value-function@<=10.1.1", {dependencies: {["tiny-warning"]: "^1.0.2"}}], ["ink-select-input@<4.1.0", {peerDependencies: {react: "^16.8.2"}}], ["license-webpack-plugin@<2.3.18", {peerDependenciesMeta: {webpack: qe}}], ["snowpack@>=3.3.0", {dependencies: {["node-gyp"]: "^7.1.0"}}], ["promise-inflight@*", {peerDependenciesMeta: {bluebird: qe}}], ["reactcss@*", {peerDependencies: {react: "*"}}], ["react-color@<=2.19.0", {peerDependencies: {react: "*"}}], ["gatsby-plugin-i18n@*", {dependencies: {ramda: "^0.24.1"}}], ["useragent@^2.0.0", {
            dependencies: {
                request: "^2.88.0",
                yamlparser: "0.0.x",
                semver: "5.5.x"
            }
        }], ["@apollographql/apollo-tools@*", {peerDependencies: {graphql: "^14.2.1 || ^15.0.0"}}], ["material-table@^2.0.0", {dependencies: {"@babel/runtime": "^7.11.2"}}], ["@babel/parser@*", {dependencies: {"@babel/types": "^7.8.3"}}], ["fork-ts-checker-webpack-plugin@<=6.3.4", {
            peerDependencies: {
                eslint: ">= 6",
                typescript: ">= 2.7",
                webpack: ">= 4",
                "vue-template-compiler": "*"
            }, peerDependenciesMeta: {eslint: qe, "vue-template-compiler": qe}
        }], ["rc-animate@<=3.1.1", {
            peerDependencies: {
                react: ">=16.9.0",
                "react-dom": ">=16.9.0"
            }
        }], ["react-bootstrap-table2-paginator@*", {dependencies: {classnames: "^2.2.6"}}], ["react-draggable@<=4.4.3", {
            peerDependencies: {
                react: ">= 16.3.0",
                "react-dom": ">= 16.3.0"
            }
        }], ["apollo-upload-client@<14", {peerDependencies: {graphql: "14 - 15"}}], ["react-instantsearch-core@<=6.7.0", {peerDependencies: {algoliasearch: ">= 3.1 < 5"}}], ["react-instantsearch-dom@<=6.7.0", {dependencies: {"react-fast-compare": "^3.0.0"}}], ["ws@<7.2.1", {
            peerDependencies: {
                bufferutil: "^4.0.1",
                "utf-8-validate": "^5.0.2"
            }, peerDependenciesMeta: {bufferutil: qe, "utf-8-validate": qe}
        }], ["react-portal@*", {peerDependencies: {"react-dom": "^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}], ["react-scripts@<=4.0.1", {peerDependencies: {react: "*"}}], ["testcafe@<=1.10.1", {
            dependencies: {
                "@babel/plugin-transform-for-of": "^7.12.1",
                "@babel/runtime": "^7.12.5"
            }
        }], ["testcafe-legacy-api@<=4.2.0", {
            dependencies: {
                "testcafe-hammerhead": "^17.0.1",
                "read-file-relative": "^1.2.0"
            }
        }], ["@google-cloud/firestore@<=4.9.3", {dependencies: {protobufjs: "^6.8.6"}}], ["gatsby-source-apiserver@*", {dependencies: {["babel-polyfill"]: "^6.26.0"}}], ["@webpack-cli/package-utils@<=1.0.1-alpha.4", {dependencies: {["cross-spawn"]: "^7.0.3"}}], ["gatsby-remark-prismjs@<3.3.28", {dependencies: {lodash: "^4"}}], ["gatsby-plugin-favicon@*", {peerDependencies: {webpack: "*"}}], ["gatsby-plugin-sharp@<=4.6.0-next.3", {dependencies: {debug: "^4.3.1"}}], ["gatsby-react-router-scroll@<=5.6.0-next.0", {dependencies: {["prop-types"]: "^15.7.2"}}], ["@rebass/forms@*", {
            dependencies: {["@styled-system/should-forward-prop"]: "^5.0.0"},
            peerDependencies: {react: "^16.8.6"}
        }], ["rebass@*", {peerDependencies: {react: "^16.8.6"}}], ["@ant-design/react-slick@<=0.28.3", {peerDependencies: {react: ">=16.0.0"}}], ["mqtt@<4.2.7", {dependencies: {duplexify: "^4.1.1"}}], ["vue-cli-plugin-vuetify@<=2.0.3", {
            dependencies: {semver: "^6.3.0"},
            peerDependenciesMeta: {"sass-loader": qe, "vuetify-loader": qe}
        }], ["vue-cli-plugin-vuetify@<=2.0.4", {dependencies: {"null-loader": "^3.0.0"}}], ["@vuetify/cli-plugin-utils@<=0.0.4", {
            dependencies: {semver: "^6.3.0"},
            peerDependenciesMeta: {"sass-loader": qe}
        }], ["@vue/cli-plugin-typescript@<=5.0.0-alpha.0", {dependencies: {"babel-loader": "^8.1.0"}}], ["@vue/cli-plugin-typescript@<=5.0.0-beta.0", {
            dependencies: {"@babel/core": "^7.12.16"},
            peerDependencies: {"vue-template-compiler": "^2.0.0"},
            peerDependenciesMeta: {"vue-template-compiler": qe}
        }], ["cordova-ios@<=6.3.0", {dependencies: {underscore: "^1.9.2"}}], ["cordova-lib@<=10.0.1", {dependencies: {underscore: "^1.9.2"}}], ["git-node-fs@*", {
            peerDependencies: {"js-git": "^0.7.8"},
            peerDependenciesMeta: {"js-git": qe}
        }], ["consolidate@*", {
            peerDependencies: {
                velocityjs: "^2.0.1",
                tinyliquid: "^0.2.34",
                "liquid-node": "^3.0.1",
                jade: "^1.11.0",
                "then-jade": "*",
                dust: "^0.3.0",
                "dustjs-helpers": "^1.7.4",
                "dustjs-linkedin": "^2.7.5",
                swig: "^1.4.2",
                "swig-templates": "^2.0.3",
                "razor-tmpl": "^1.3.1",
                atpl: ">=0.7.6",
                liquor: "^0.0.5",
                twig: "^1.15.2",
                ejs: "^3.1.5",
                eco: "^1.1.0-rc-3",
                jazz: "^0.0.18",
                jqtpl: "~1.1.0",
                hamljs: "^0.6.2",
                hamlet: "^0.3.3",
                whiskers: "^0.4.0",
                "haml-coffee": "^1.14.1",
                "hogan.js": "^3.0.2",
                templayed: ">=0.2.3",
                handlebars: "^4.7.6",
                underscore: "^1.11.0",
                lodash: "^4.17.20",
                pug: "^3.0.0",
                "then-pug": "*",
                qejs: "^3.0.5",
                walrus: "^0.10.1",
                mustache: "^4.0.1",
                just: "^0.1.8",
                ect: "^0.5.9",
                mote: "^0.2.0",
                toffee: "^0.3.6",
                dot: "^1.1.3",
                "bracket-template": "^1.1.5",
                ractive: "^1.3.12",
                nunjucks: "^3.2.2",
                htmling: "^0.0.8",
                "babel-core": "^6.26.3",
                plates: "~0.4.11",
                "react-dom": "^16.13.1",
                react: "^16.13.1",
                "arc-templates": "^0.5.3",
                vash: "^0.13.0",
                slm: "^2.0.0",
                marko: "^3.14.4",
                teacup: "^2.0.0",
                "coffee-script": "^1.12.7",
                squirrelly: "^5.1.0",
                twing: "^5.0.2"
            },
            peerDependenciesMeta: {
                velocityjs: qe,
                tinyliquid: qe,
                "liquid-node": qe,
                jade: qe,
                "then-jade": qe,
                dust: qe,
                "dustjs-helpers": qe,
                "dustjs-linkedin": qe,
                swig: qe,
                "swig-templates": qe,
                "razor-tmpl": qe,
                atpl: qe,
                liquor: qe,
                twig: qe,
                ejs: qe,
                eco: qe,
                jazz: qe,
                jqtpl: qe,
                hamljs: qe,
                hamlet: qe,
                whiskers: qe,
                "haml-coffee": qe,
                "hogan.js": qe,
                templayed: qe,
                handlebars: qe,
                underscore: qe,
                lodash: qe,
                pug: qe,
                "then-pug": qe,
                qejs: qe,
                walrus: qe,
                mustache: qe,
                just: qe,
                ect: qe,
                mote: qe,
                toffee: qe,
                dot: qe,
                "bracket-template": qe,
                ractive: qe,
                nunjucks: qe,
                htmling: qe,
                "babel-core": qe,
                plates: qe,
                "react-dom": qe,
                react: qe,
                "arc-templates": qe,
                vash: qe,
                slm: qe,
                marko: qe,
                teacup: qe,
                "coffee-script": qe,
                squirrelly: qe,
                twing: qe
            }
        }], ["vue-loader@<=16.3.1", {
            peerDependencies: {
                "@vue/compiler-sfc": "^3.0.8",
                webpack: "^4.1.0 || ^5.0.0-0"
            }
        }], ["scss-parser@*", {dependencies: {lodash: "^4.17.21"}}], ["query-ast@*", {dependencies: {lodash: "^4.17.21"}}], ["redux-thunk@<=2.3.0", {peerDependencies: {redux: "^4.0.0"}}], ["skypack@<=0.3.2", {dependencies: {tar: "^6.1.0"}}], ["@npmcli/metavuln-calculator@<2.0.0", {dependencies: {"json-parse-even-better-errors": "^2.3.1"}}], ["bin-links@<2.3.0", {dependencies: {"mkdirp-infer-owner": "^1.0.2"}}], ["rollup-plugin-polyfill-node@<=0.8.0", {peerDependencies: {rollup: "^1.20.0 || ^2.0.0"}}], ["snowpack@<3.8.6", {dependencies: {"magic-string": "^0.25.7"}}], ["elm-webpack-loader@*", {dependencies: {temp: "^0.9.4"}}], ["winston-transport@<=4.4.0", {dependencies: {logform: "^2.2.0"}}], ["jest-vue-preprocessor@*", {
            dependencies: {
                "@babel/core": "7.8.7",
                "@babel/template": "7.8.6"
            }, peerDependencies: {pug: "^2.0.4"}, peerDependenciesMeta: {pug: qe}
        }], ["redux-persist@*", {
            peerDependencies: {react: ">=16"},
            peerDependenciesMeta: {react: qe}
        }], ["sodium@>=3", {dependencies: {"node-gyp": "^3.8.0"}}], ["babel-plugin-graphql-tag@<=3.1.0", {peerDependencies: {graphql: "^14.0.0 || ^15.0.0"}}], ["@playwright/test@<=1.14.1", {dependencies: {"jest-matcher-utils": "^26.4.2"}}], ...["babel-plugin-remove-graphql-queries@<3.14.0-next.1", "babel-preset-gatsby-package@<1.14.0-next.1", "create-gatsby@<1.14.0-next.1", "gatsby-admin@<0.24.0-next.1", "gatsby-cli@<3.14.0-next.1", "gatsby-core-utils@<2.14.0-next.1", "gatsby-design-tokens@<3.14.0-next.1", "gatsby-legacy-polyfills@<1.14.0-next.1", "gatsby-plugin-benchmark-reporting@<1.14.0-next.1", "gatsby-plugin-graphql-config@<0.23.0-next.1", "gatsby-plugin-image@<1.14.0-next.1", "gatsby-plugin-mdx@<2.14.0-next.1", "gatsby-plugin-netlify-cms@<5.14.0-next.1", "gatsby-plugin-no-sourcemaps@<3.14.0-next.1", "gatsby-plugin-page-creator@<3.14.0-next.1", "gatsby-plugin-preact@<5.14.0-next.1", "gatsby-plugin-preload-fonts@<2.14.0-next.1", "gatsby-plugin-schema-snapshot@<2.14.0-next.1", "gatsby-plugin-styletron@<6.14.0-next.1", "gatsby-plugin-subfont@<3.14.0-next.1", "gatsby-plugin-utils@<1.14.0-next.1", "gatsby-recipes@<0.25.0-next.1", "gatsby-source-shopify@<5.6.0-next.1", "gatsby-source-wikipedia@<3.14.0-next.1", "gatsby-transformer-screenshot@<3.14.0-next.1", "gatsby-worker@<0.5.0-next.1"].map(t => [t, {dependencies: {"@babel/runtime": "^7.14.8"}}]), ["gatsby-core-utils@<2.14.0-next.1", {dependencies: {got: "8.3.2"}}], ["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0", {dependencies: {"gatsby-core-utils": "^2.13.0-next.0"}}], ["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1", {peerDependencies: {webpack: "*"}}], ["babel-plugin-remove-graphql-queries@<=3.14.0-next.1", {dependencies: {"gatsby-core-utils": "^2.8.0-next.1"}}], ["gatsby-plugin-netlify@3.13.0-next.1", {dependencies: {"gatsby-core-utils": "^2.13.0-next.0"}}], ["clipanion-v3-codemod@<=0.2.0", {peerDependencies: {jscodeshift: "^0.11.0"}}], ["react-live@*", {
            peerDependencies: {
                "react-dom": "*",
                react: "*"
            }
        }], ["webpack@<4.44.1", {
            peerDependenciesMeta: {
                "webpack-cli": qe,
                "webpack-command": qe
            }
        }], ["webpack@<5.0.0-beta.23", {peerDependenciesMeta: {"webpack-cli": qe}}], ["webpack-dev-server@<3.10.2", {peerDependenciesMeta: {"webpack-cli": qe}}], ["@docusaurus/responsive-loader@<1.5.0", {
            peerDependenciesMeta: {
                sharp: qe,
                jimp: qe
            }
        }], ["eslint-module-utils@*", {
            peerDependenciesMeta: {
                "eslint-import-resolver-node": qe,
                "eslint-import-resolver-typescript": qe,
                "eslint-import-resolver-webpack": qe,
                "@typescript-eslint/parser": qe
            }
        }], ["eslint-plugin-import@*", {peerDependenciesMeta: {"@typescript-eslint/parser": qe}}], ["critters-webpack-plugin@<3.0.2", {peerDependenciesMeta: {"html-webpack-plugin": qe}}], ["terser@<=5.10.0", {dependencies: {acorn: "^8.5.0"}}], ["babel-preset-react-app@10.0.x", {dependencies: {"@babel/plugin-proposal-private-property-in-object": "^7.16.0"}}], ["eslint-config-react-app@*", {peerDependenciesMeta: {typescript: qe}}], ["@vue/eslint-config-typescript@*", {peerDependenciesMeta: {typescript: qe}}], ["unplugin-vue2-script-setup@<0.9.1", {
            peerDependencies: {
                "@vue/composition-api": "^1.4.3",
                "@vue/runtime-dom": "^3.2.26"
            }
        }]];
    var gL;

    function xAe() {
        return typeof gL == "undefined" && (gL = require("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==", "base64")).toString()), gL
    }

    var fL;

    function PAe() {
        return typeof fL == "undefined" && (fL = require("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=", "base64")).toString()), fL
    }

    var hL;

    function DAe() {
        return typeof hL == "undefined" && (hL = require("zlib").brotliDecompressSync(Buffer.from(" ", "base64")).toString()), hL
    }

    var RAe = new Map([[P.makeIdent(null, "fsevents").identHash, xAe], [P.makeIdent(null, "resolve").identHash, PAe], [P.makeIdent(null, "typescript").identHash, DAe]]),
        I4e = {
            hooks: {
                registerPackageExtensions: async (t, e) => {
                    for (let [r, i] of kAe) e(P.parseDescriptor(r, !0), i)
                },
                getBuiltinPatch: async (t, e) => {
                    var s;
                    let r = "compat/";
                    if (!e.startsWith(r)) return;
                    let i = P.parseIdent(e.slice(r.length)), n = (s = RAe.get(i.identHash)) == null ? void 0 : s();
                    return typeof n != "undefined" ? n : null
                },
                reduceDependency: async (t, e, r, i) => typeof RAe.get(t.identHash) == "undefined" ? t : P.makeDescriptor(t, P.makeRange({
                    protocol: "patch:",
                    source: P.stringifyDescriptor(t),
                    selector: `~builtin<compat/${P.stringifyIdent(t)}>`,
                    params: null
                }))
            }
        }, y4e = I4e;
    var dL = {};
    ft(dL, {default: () => B4e});
    var lb = class extends Le {
        constructor() {
            super(...arguments);
            this.pkg = W.String("-p,--package", {description: "The package to run the provided command from"});
            this.quiet = W.Boolean("-q,--quiet", !1, {description: "Only report critical errors instead of printing the full install logs"});
            this.command = W.String();
            this.args = W.Proxy()
        }

        async execute() {
            let e = [];
            this.pkg && e.push("--package", this.pkg), this.quiet && e.push("--quiet");
            let r = P.parseIdent(this.command), i = P.makeIdent(r.scope, `create-${r.name}`);
            return this.cli.run(["dlx", ...e, P.stringifyIdent(i), ...this.args])
        }
    };
    lb.paths = [["create"]];
    var FAe = lb;
    var Mm = class extends Le {
        constructor() {
            super(...arguments);
            this.packages = W.Array("-p,--package", {description: "The package(s) to install before running the command"});
            this.quiet = W.Boolean("-q,--quiet", !1, {description: "Only report critical errors instead of printing the full install logs"});
            this.command = W.String();
            this.args = W.Proxy()
        }

        async execute() {
            return we.telemetry = null, await K.mktempPromise(async e => {
                var p;
                let r = x.join(e, `dlx-${process.pid}`);
                await K.mkdirPromise(r), await K.writeFilePromise(x.join(r, "package.json"), `{}
`), await K.writeFilePromise(x.join(r, "yarn.lock"), "");
                let i = x.join(r, ".yarnrc.yml"), n = await we.findProjectCwd(this.context.cwd, Pt.lockfile),
                    s = !(await we.find(this.context.cwd, null, {strict: !1})).get("enableGlobalCache"),
                    o = n !== null ? x.join(n, ".yarnrc.yml") : null;
                o !== null && K.existsSync(o) ? (await K.copyFilePromise(o, i), await we.updateConfiguration(r, m => {
                    let y = ie(N({}, m), {enableGlobalCache: s, enableTelemetry: !1});
                    return Array.isArray(m.plugins) && (y.plugins = m.plugins.map(b => {
                        let S = typeof b == "string" ? b : b.path,
                            k = H.isAbsolute(S) ? S : H.resolve(H.fromPortablePath(n), S);
                        return typeof b == "string" ? k : {path: k, spec: b.spec}
                    })), y
                })) : await K.writeFilePromise(i, `enableGlobalCache: ${s}
enableTelemetry: false
`);
                let a = (p = this.packages) != null ? p : [this.command], l = P.parseDescriptor(this.command).name,
                    c = await this.cli.run(["add", "--", ...a], {cwd: r, quiet: this.quiet});
                if (c !== 0) return c;
                this.quiet || this.context.stdout.write(`
`);
                let u = await we.find(r, this.context.plugins), {project: g, workspace: f} = await ze.find(u, r);
                if (f === null) throw new ht(g.cwd, r);
                await g.restoreInstallState();
                let h = await Zt.getWorkspaceAccessibleBinaries(f);
                return h.has(l) === !1 && h.size === 1 && typeof this.packages == "undefined" && (l = Array.from(h)[0][0]), await Zt.executeWorkspaceAccessibleBinary(f, l, this.args, {
                    packageAccessibleBinaries: h,
                    cwd: this.context.cwd,
                    stdin: this.context.stdin,
                    stdout: this.context.stdout,
                    stderr: this.context.stderr
                })
            })
        }
    };
    Mm.paths = [["dlx"]], Mm.usage = Re.Usage({
        description: "run a package in a temporary environment",
        details: "\n      This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n      By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n      Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n    ",
        examples: [["Use create-react-app to create a new React app", "yarn dlx create-react-app ./my-app"], ["Install multiple packages for a single command", `yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]
    });
    var NAe = Mm;
    var w4e = {commands: [FAe, NAe]}, B4e = w4e;
    var QL = {};
    ft(QL, {default: () => v4e, fileUtils: () => CL});
    var sh = /^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/, Km = /^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/, Xr = "file:";
    var CL = {};
    ft(CL, {
        makeArchiveFromLocator: () => cb,
        makeBufferFromLocator: () => IL,
        makeLocator: () => EL,
        makeSpec: () => LAe,
        parseSpec: () => mL
    });

    function mL(t) {
        let {params: e, selector: r} = P.parseRange(t), i = H.toPortablePath(r);
        return {parentLocator: e && typeof e.locator == "string" ? P.parseLocator(e.locator) : null, path: i}
    }

    function LAe({parentLocator: t, path: e, folderHash: r, protocol: i}) {
        let n = t !== null ? {locator: P.stringifyLocator(t)} : {}, s = typeof r != "undefined" ? {hash: r} : {};
        return P.makeRange({protocol: i, source: e, selector: e, params: N(N({}, s), n)})
    }

    function EL(t, {parentLocator: e, path: r, folderHash: i, protocol: n}) {
        return P.makeLocator(t, LAe({parentLocator: e, path: r, folderHash: i, protocol: n}))
    }

    async function cb(t, {protocol: e, fetchOptions: r, inMemory: i = !1}) {
        let {parentLocator: n, path: s} = P.parseFileStyleRange(t.reference, {protocol: e}), o = x.isAbsolute(s) ? {
                packageFs: new _t(Ke.root),
                prefixPath: Ke.dot,
                localPath: Ke.root
            } : await r.fetcher.fetch(n, r),
            a = o.localPath ? {packageFs: new _t(Ke.root), prefixPath: x.relative(Ke.root, o.localPath)} : o;
        o !== a && o.releaseFs && o.releaseFs();
        let l = a.packageFs, c = x.join(a.prefixPath, s);
        return await ve.releaseAfterUseAsync(async () => await wi.makeArchiveFromDirectory(c, {
            baseFs: l,
            prefixPath: P.getIdentVendorPath(t),
            compressionLevel: r.project.configuration.get("compressionLevel"),
            inMemory: i
        }), a.releaseFs)
    }

    async function IL(t, {protocol: e, fetchOptions: r}) {
        return (await cb(t, {protocol: e, fetchOptions: r, inMemory: !0})).getBufferAndClose()
    }

    var yL = class {
        supports(e, r) {
            return !!e.reference.startsWith(Xr)
        }

        getLocalPath(e, r) {
            let {parentLocator: i, path: n} = P.parseFileStyleRange(e.reference, {protocol: Xr});
            if (x.isAbsolute(n)) return n;
            let s = r.fetcher.getLocalPath(i, r);
            return s === null ? null : x.resolve(s, n)
        }

        async fetch(e, r) {
            let i = r.checksums.get(e.locatorHash) || null, [n, s, o] = await r.cache.fetchPackageFromCache(e, i, N({
                onHit: () => r.report.reportCacheHit(e),
                onMiss: () => r.report.reportCacheMiss(e, `${P.prettyLocator(r.project.configuration, e)} can't be found in the cache and will be fetched from the disk`),
                loader: () => this.fetchFromDisk(e, r),
                skipIntegrityCheck: r.skipIntegrityCheck
            }, r.cacheOptions));
            return {
                packageFs: n,
                releaseFs: s,
                prefixPath: P.getIdentVendorPath(e),
                localPath: this.getLocalPath(e, r),
                checksum: o
            }
        }

        async fetchFromDisk(e, r) {
            return cb(e, {protocol: Xr, fetchOptions: r})
        }
    };
    var b4e = 2, wL = class {
        supportsDescriptor(e, r) {
            return e.range.match(sh) ? !0 : !!e.range.startsWith(Xr)
        }

        supportsLocator(e, r) {
            return !!e.reference.startsWith(Xr)
        }

        shouldPersistResolution(e, r) {
            return !1
        }

        bindDescriptor(e, r, i) {
            return sh.test(e.range) && (e = P.makeDescriptor(e, `${Xr}${e.range}`)), P.bindDescriptor(e, {locator: P.stringifyLocator(r)})
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            if (!i.fetchOptions) throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");
            let {path: n, parentLocator: s} = mL(e.range);
            if (s === null) throw new Error("Assertion failed: The descriptor should have been bound");
            let o = await IL(P.makeLocator(e, P.makeRange({
                protocol: Xr,
                source: n,
                selector: n,
                params: {locator: P.stringifyLocator(s)}
            })), {protocol: Xr, fetchOptions: i.fetchOptions}), a = Dn.makeHash(`${b4e}`, o).slice(0, 6);
            return [EL(e, {parentLocator: s, path: n, folderHash: a, protocol: Xr})]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            if (!r.fetchOptions) throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");
            let i = await r.fetchOptions.fetcher.fetch(e, r.fetchOptions),
                n = await ve.releaseAfterUseAsync(async () => await At.find(i.prefixPath, {baseFs: i.packageFs}), i.releaseFs);
            return ie(N({}, e), {
                version: n.version || "0.0.0",
                languageName: n.languageName || r.project.configuration.get("defaultLanguageName"),
                linkType: Qt.HARD,
                conditions: n.getConditions(),
                dependencies: n.dependencies,
                peerDependencies: n.peerDependencies,
                dependenciesMeta: n.dependenciesMeta,
                peerDependenciesMeta: n.peerDependenciesMeta,
                bin: n.bin
            })
        }
    };
    var BL = class {
        supports(e, r) {
            return Km.test(e.reference) ? !!e.reference.startsWith(Xr) : !1
        }

        getLocalPath(e, r) {
            return null
        }

        async fetch(e, r) {
            let i = r.checksums.get(e.locatorHash) || null, [n, s, o] = await r.cache.fetchPackageFromCache(e, i, N({
                onHit: () => r.report.reportCacheHit(e),
                onMiss: () => r.report.reportCacheMiss(e, `${P.prettyLocator(r.project.configuration, e)} can't be found in the cache and will be fetched from the disk`),
                loader: () => this.fetchFromDisk(e, r),
                skipIntegrityCheck: r.skipIntegrityCheck
            }, r.cacheOptions));
            return {packageFs: n, releaseFs: s, prefixPath: P.getIdentVendorPath(e), checksum: o}
        }

        async fetchFromDisk(e, r) {
            let {parentLocator: i, path: n} = P.parseFileStyleRange(e.reference, {protocol: Xr}),
                s = x.isAbsolute(n) ? {
                    packageFs: new _t(Ke.root),
                    prefixPath: Ke.dot,
                    localPath: Ke.root
                } : await r.fetcher.fetch(i, r),
                o = s.localPath ? {packageFs: new _t(Ke.root), prefixPath: x.relative(Ke.root, s.localPath)} : s;
            s !== o && s.releaseFs && s.releaseFs();
            let a = o.packageFs, l = x.join(o.prefixPath, n), c = await a.readFilePromise(l);
            return await ve.releaseAfterUseAsync(async () => await wi.convertToZip(c, {
                compressionLevel: r.project.configuration.get("compressionLevel"),
                prefixPath: P.getIdentVendorPath(e),
                stripComponents: 1
            }), o.releaseFs)
        }
    };
    var bL = class {
        supportsDescriptor(e, r) {
            return Km.test(e.range) ? !!(e.range.startsWith(Xr) || sh.test(e.range)) : !1
        }

        supportsLocator(e, r) {
            return Km.test(e.reference) ? !!e.reference.startsWith(Xr) : !1
        }

        shouldPersistResolution(e, r) {
            return !0
        }

        bindDescriptor(e, r, i) {
            return sh.test(e.range) && (e = P.makeDescriptor(e, `${Xr}${e.range}`)), P.bindDescriptor(e, {locator: P.stringifyLocator(r)})
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            let n = e.range;
            return n.startsWith(Xr) && (n = n.slice(Xr.length)), [P.makeLocator(e, `${Xr}${H.toPortablePath(n)}`)]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            if (!r.fetchOptions) throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");
            let i = await r.fetchOptions.fetcher.fetch(e, r.fetchOptions),
                n = await ve.releaseAfterUseAsync(async () => await At.find(i.prefixPath, {baseFs: i.packageFs}), i.releaseFs);
            return ie(N({}, e), {
                version: n.version || "0.0.0",
                languageName: n.languageName || r.project.configuration.get("defaultLanguageName"),
                linkType: Qt.HARD,
                conditions: n.getConditions(),
                dependencies: n.dependencies,
                peerDependencies: n.peerDependencies,
                dependenciesMeta: n.dependenciesMeta,
                peerDependenciesMeta: n.peerDependenciesMeta,
                bin: n.bin
            })
        }
    };
    var Q4e = {fetchers: [BL, yL], resolvers: [bL, wL]}, v4e = Q4e;
    var SL = {};
    ft(SL, {default: () => x4e});
    var TAe = ge(require("querystring")),
        OAe = [/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/, /^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];

    function MAe(t) {
        return t ? OAe.some(e => !!t.match(e)) : !1
    }

    function KAe(t) {
        let e;
        for (let a of OAe) if (e = t.match(a), e) break;
        if (!e) throw new Error(S4e(t));
        let [, r, i, n, s = "master"] = e, {commit: o} = TAe.default.parse(s);
        return s = o || s.replace(/[^:]*:/, ""), {auth: r, username: i, reponame: n, treeish: s}
    }

    function S4e(t) {
        return `Input cannot be parsed as a valid GitHub URL ('${t}').`
    }

    var vL = class {
        supports(e, r) {
            return !!MAe(e.reference)
        }

        getLocalPath(e, r) {
            return null
        }

        async fetch(e, r) {
            let i = r.checksums.get(e.locatorHash) || null, [n, s, o] = await r.cache.fetchPackageFromCache(e, i, N({
                onHit: () => r.report.reportCacheHit(e),
                onMiss: () => r.report.reportCacheMiss(e, `${P.prettyLocator(r.project.configuration, e)} can't be found in the cache and will be fetched from GitHub`),
                loader: () => this.fetchFromNetwork(e, r),
                skipIntegrityCheck: r.skipIntegrityCheck
            }, r.cacheOptions));
            return {packageFs: n, releaseFs: s, prefixPath: P.getIdentVendorPath(e), checksum: o}
        }

        async fetchFromNetwork(e, r) {
            let i = await ir.get(this.getLocatorUrl(e, r), {configuration: r.project.configuration});
            return await K.mktempPromise(async n => {
                let s = new _t(n);
                await wi.extractArchiveTo(i, s, {stripComponents: 1});
                let o = Bu.splitRepoUrl(e.reference), a = x.join(n, "package.tgz");
                await Zt.prepareExternalProject(n, a, {
                    configuration: r.project.configuration,
                    report: r.report,
                    workspace: o.extra.workspace,
                    locator: e
                });
                let l = await K.readFilePromise(a);
                return await wi.convertToZip(l, {
                    compressionLevel: r.project.configuration.get("compressionLevel"),
                    prefixPath: P.getIdentVendorPath(e),
                    stripComponents: 1
                })
            })
        }

        getLocatorUrl(e, r) {
            let {auth: i, username: n, reponame: s, treeish: o} = KAe(e.reference);
            return `https://${i ? `${i}@` : ""}github.com/${n}/${s}/archive/${o}.tar.gz`
        }
    };
    var k4e = {
        hooks: {
            async fetchHostedRepository(t, e, r) {
                if (t !== null) return t;
                let i = new vL;
                if (!i.supports(e, r)) return null;
                try {
                    return await i.fetch(e, r)
                } catch (n) {
                    return null
                }
            }
        }
    }, x4e = k4e;
    var PL = {};
    ft(PL, {default: () => D4e});
    var Um = /^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/, Hm = /^https?:/;
    var kL = class {
        supports(e, r) {
            return Um.test(e.reference) ? !!Hm.test(e.reference) : !1
        }

        getLocalPath(e, r) {
            return null
        }

        async fetch(e, r) {
            let i = r.checksums.get(e.locatorHash) || null, [n, s, o] = await r.cache.fetchPackageFromCache(e, i, N({
                onHit: () => r.report.reportCacheHit(e),
                onMiss: () => r.report.reportCacheMiss(e, `${P.prettyLocator(r.project.configuration, e)} can't be found in the cache and will be fetched from the remote server`),
                loader: () => this.fetchFromNetwork(e, r),
                skipIntegrityCheck: r.skipIntegrityCheck
            }, r.cacheOptions));
            return {packageFs: n, releaseFs: s, prefixPath: P.getIdentVendorPath(e), checksum: o}
        }

        async fetchFromNetwork(e, r) {
            let i = await ir.get(e.reference, {configuration: r.project.configuration});
            return await wi.convertToZip(i, {
                compressionLevel: r.project.configuration.get("compressionLevel"),
                prefixPath: P.getIdentVendorPath(e),
                stripComponents: 1
            })
        }
    };
    var xL = class {
        supportsDescriptor(e, r) {
            return Um.test(e.range) ? !!Hm.test(e.range) : !1
        }

        supportsLocator(e, r) {
            return Um.test(e.reference) ? !!Hm.test(e.reference) : !1
        }

        shouldPersistResolution(e, r) {
            return !0
        }

        bindDescriptor(e, r, i) {
            return e
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            return [P.convertDescriptorToLocator(e)]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            if (!r.fetchOptions) throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");
            let i = await r.fetchOptions.fetcher.fetch(e, r.fetchOptions),
                n = await ve.releaseAfterUseAsync(async () => await At.find(i.prefixPath, {baseFs: i.packageFs}), i.releaseFs);
            return ie(N({}, e), {
                version: n.version || "0.0.0",
                languageName: n.languageName || r.project.configuration.get("defaultLanguageName"),
                linkType: Qt.HARD,
                conditions: n.getConditions(),
                dependencies: n.dependencies,
                peerDependencies: n.peerDependencies,
                dependenciesMeta: n.dependenciesMeta,
                peerDependenciesMeta: n.peerDependenciesMeta,
                bin: n.bin
            })
        }
    };
    var P4e = {fetchers: [kL], resolvers: [xL]}, D4e = P4e;
    var NL = {};
    ft(NL, {default: () => Rze});
    var gle = ge(ule()), FL = ge(require("util")), Gm = class extends Le {
        constructor() {
            super(...arguments);
            this.private = W.Boolean("-p,--private", !1, {description: "Initialize a private package"});
            this.workspace = W.Boolean("-w,--workspace", !1, {description: "Initialize a workspace root with a `packages/` directory"});
            this.install = W.String("-i,--install", !1, {
                tolerateBoolean: !0,
                description: "Initialize a package with a specific bundle that will be locked in the project"
            });
            this.usev2 = W.Boolean("-2", !1, {hidden: !0});
            this.yes = W.Boolean("-y,--yes", {hidden: !0});
            this.assumeFreshProject = W.Boolean("--assume-fresh-project", !1, {hidden: !0})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins),
                r = typeof this.install == "string" ? this.install : this.usev2 || this.install === !0 ? "latest" : null;
            return r !== null ? await this.executeProxy(e, r) : await this.executeRegular(e)
        }

        async executeProxy(e, r) {
            if (e.projectCwd !== null && e.projectCwd !== this.context.cwd) throw new Pe("Cannot use the --install flag from within a project subdirectory");
            K.existsSync(this.context.cwd) || await K.mkdirPromise(this.context.cwd, {recursive: !0});
            let i = x.join(this.context.cwd, e.get("lockfileFilename"));
            K.existsSync(i) || await K.writeFilePromise(i, "");
            let n = await this.cli.run(["set", "version", r], {quiet: !0});
            if (n !== 0) return n;
            let s = [];
            return this.private && s.push("-p"), this.workspace && s.push("-w"), this.yes && s.push("-y"), await K.mktempPromise(async o => {
                let {code: a} = await Fr.pipevp("yarn", ["init", ...s], {
                    cwd: this.context.cwd,
                    stdin: this.context.stdin,
                    stdout: this.context.stdout,
                    stderr: this.context.stderr,
                    env: await Zt.makeScriptEnv({binFolder: o})
                });
                return a
            })
        }

        async executeRegular(e) {
            var l;
            let r = null;
            try {
                r = (await ze.find(e, this.context.cwd)).project
            } catch {
                r = null
            }
            K.existsSync(this.context.cwd) || await K.mkdirPromise(this.context.cwd, {recursive: !0});
            let i = await At.tryFind(this.context.cwd) || new At, n = Object.fromEntries(e.get("initFields").entries());
            i.load(n), i.name = (l = i.name) != null ? l : P.makeIdent(e.get("initScope"), x.basename(this.context.cwd)), i.packageManager = Kr && ve.isTaggedYarnVersion(Kr) ? `yarn@${Kr}` : null, typeof i.raw.private == "undefined" && (this.private || this.workspace && i.workspaceDefinitions.length === 0) && (i.private = !0), this.workspace && i.workspaceDefinitions.length === 0 && (await K.mkdirPromise(x.join(this.context.cwd, "packages"), {recursive: !0}), i.workspaceDefinitions = [{pattern: "packages/*"}]);
            let s = {};
            i.exportTo(s), FL.inspect.styles.name = "cyan", this.context.stdout.write(`${(0, FL.inspect)(s, {
                depth: Infinity,
                colors: !0,
                compact: !1
            })}
`);
            let o = x.join(this.context.cwd, At.fileName);
            await K.changeFilePromise(o, `${JSON.stringify(s, null, 2)}
`, {automaticNewlines: !0});
            let a = x.join(this.context.cwd, "README.md");
            if (K.existsSync(a) || await K.writeFilePromise(a, `# ${P.stringifyIdent(i.name)}
`), !r || r.cwd === this.context.cwd) {
                let c = x.join(this.context.cwd, Pt.lockfile);
                K.existsSync(c) || await K.writeFilePromise(c, "");
                let g = [".yarn/*", "!.yarn/patches", "!.yarn/plugins", "!.yarn/releases", "!.yarn/sdks", "!.yarn/versions", "", "# Swap the comments on the following lines if you don't wish to use zero-installs", "# Documentation here: https://yarnpkg.com/features/zero-installs", "!.yarn/cache", "#.pnp.*"].map(y => `${y}
`).join(""), f = x.join(this.context.cwd, ".gitignore");
                K.existsSync(f) || await K.writeFilePromise(f, g);
                let h = {
                    ["*"]: {endOfLine: "lf", insertFinalNewline: !0},
                    ["*.{js,json,yml}"]: {charset: "utf-8", indentStyle: "space", indentSize: 2}
                };
                (0, gle.default)(h, e.get("initEditorConfig"));
                let p = `root = true
`;
                for (let [y, b] of Object.entries(h)) {
                    p += `
[${y}]
`;
                    for (let [S, k] of Object.entries(b)) p += `${S.replace(/[A-Z]/g, Y => `_${Y.toLowerCase()}`)} = ${k}
`
                }
                let m = x.join(this.context.cwd, ".editorconfig");
                K.existsSync(m) || await K.writeFilePromise(m, p), K.existsSync(x.join(this.context.cwd, ".git")) || await Fr.execvp("git", ["init"], {cwd: this.context.cwd})
            }
        }
    };
    Gm.paths = [["init"]], Gm.usage = Re.Usage({
        description: "create a new package",
        details: "\n      This command will setup a new package in your local directory.\n\n      If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n      If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n      If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n      The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n    ",
        examples: [["Create a new package in the local directory", "yarn init"], ["Create a new private package in the local directory", "yarn init -p"], ["Create a new package and store the Yarn release inside", "yarn init -i=latest"], ["Create a new private package and defines it as a workspace root", "yarn init -w"]]
    });
    var fle = Gm;
    var Dze = {
        configuration: {
            initScope: {
                description: "Scope used when creating packages via the init command",
                type: ye.STRING,
                default: null
            },
            initFields: {
                description: "Additional fields to set when creating packages via the init command",
                type: ye.MAP,
                valueDefinition: {description: "", type: ye.ANY}
            },
            initEditorConfig: {
                description: "Extra rules to define in the generator editorconfig",
                type: ye.MAP,
                valueDefinition: {description: "", type: ye.ANY}
            }
        }, commands: [fle]
    }, Rze = Dze;
    var KL = {};
    ft(KL, {default: () => Nze});
    var EA = "portal:", IA = "link:";
    var LL = class {
        supports(e, r) {
            return !!e.reference.startsWith(EA)
        }

        getLocalPath(e, r) {
            let {parentLocator: i, path: n} = P.parseFileStyleRange(e.reference, {protocol: EA});
            if (x.isAbsolute(n)) return n;
            let s = r.fetcher.getLocalPath(i, r);
            return s === null ? null : x.resolve(s, n)
        }

        async fetch(e, r) {
            var c;
            let {parentLocator: i, path: n} = P.parseFileStyleRange(e.reference, {protocol: EA}),
                s = x.isAbsolute(n) ? {
                    packageFs: new _t(Ke.root),
                    prefixPath: Ke.dot,
                    localPath: Ke.root
                } : await r.fetcher.fetch(i, r), o = s.localPath ? {
                    packageFs: new _t(Ke.root),
                    prefixPath: x.relative(Ke.root, s.localPath),
                    localPath: Ke.root
                } : s;
            s !== o && s.releaseFs && s.releaseFs();
            let a = o.packageFs,
                l = x.resolve((c = o.localPath) != null ? c : o.packageFs.getRealPath(), o.prefixPath, n);
            return s.localPath ? {
                packageFs: new _t(l, {baseFs: a}),
                releaseFs: o.releaseFs,
                prefixPath: Ke.dot,
                localPath: l
            } : {packageFs: new Ra(l, {baseFs: a}), releaseFs: o.releaseFs, prefixPath: Ke.dot}
        }
    };
    var TL = class {
        supportsDescriptor(e, r) {
            return !!e.range.startsWith(EA)
        }

        supportsLocator(e, r) {
            return !!e.reference.startsWith(EA)
        }

        shouldPersistResolution(e, r) {
            return !1
        }

        bindDescriptor(e, r, i) {
            return P.bindDescriptor(e, {locator: P.stringifyLocator(r)})
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            let n = e.range.slice(EA.length);
            return [P.makeLocator(e, `${EA}${H.toPortablePath(n)}`)]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            if (!r.fetchOptions) throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");
            let i = await r.fetchOptions.fetcher.fetch(e, r.fetchOptions),
                n = await ve.releaseAfterUseAsync(async () => await At.find(i.prefixPath, {baseFs: i.packageFs}), i.releaseFs);
            return ie(N({}, e), {
                version: n.version || "0.0.0",
                languageName: n.languageName || r.project.configuration.get("defaultLanguageName"),
                linkType: Qt.SOFT,
                conditions: n.getConditions(),
                dependencies: new Map([...n.dependencies]),
                peerDependencies: n.peerDependencies,
                dependenciesMeta: n.dependenciesMeta,
                peerDependenciesMeta: n.peerDependenciesMeta,
                bin: n.bin
            })
        }
    };
    var OL = class {
        supports(e, r) {
            return !!e.reference.startsWith(IA)
        }

        getLocalPath(e, r) {
            let {parentLocator: i, path: n} = P.parseFileStyleRange(e.reference, {protocol: IA});
            if (x.isAbsolute(n)) return n;
            let s = r.fetcher.getLocalPath(i, r);
            return s === null ? null : x.resolve(s, n)
        }

        async fetch(e, r) {
            var c;
            let {parentLocator: i, path: n} = P.parseFileStyleRange(e.reference, {protocol: IA}),
                s = x.isAbsolute(n) ? {
                    packageFs: new _t(Ke.root),
                    prefixPath: Ke.dot,
                    localPath: Ke.root
                } : await r.fetcher.fetch(i, r), o = s.localPath ? {
                    packageFs: new _t(Ke.root),
                    prefixPath: x.relative(Ke.root, s.localPath),
                    localPath: Ke.root
                } : s;
            s !== o && s.releaseFs && s.releaseFs();
            let a = o.packageFs,
                l = x.resolve((c = o.localPath) != null ? c : o.packageFs.getRealPath(), o.prefixPath, n);
            return s.localPath ? {
                packageFs: new _t(l, {baseFs: a}),
                releaseFs: o.releaseFs,
                prefixPath: Ke.dot,
                discardFromLookup: !0,
                localPath: l
            } : {packageFs: new Ra(l, {baseFs: a}), releaseFs: o.releaseFs, prefixPath: Ke.dot, discardFromLookup: !0}
        }
    };
    var ML = class {
        supportsDescriptor(e, r) {
            return !!e.range.startsWith(IA)
        }

        supportsLocator(e, r) {
            return !!e.reference.startsWith(IA)
        }

        shouldPersistResolution(e, r) {
            return !1
        }

        bindDescriptor(e, r, i) {
            return P.bindDescriptor(e, {locator: P.stringifyLocator(r)})
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            let n = e.range.slice(IA.length);
            return [P.makeLocator(e, `${IA}${H.toPortablePath(n)}`)]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            return ie(N({}, e), {
                version: "0.0.0",
                languageName: r.project.configuration.get("defaultLanguageName"),
                linkType: Qt.SOFT,
                conditions: null,
                dependencies: new Map,
                peerDependencies: new Map,
                dependenciesMeta: new Map,
                peerDependenciesMeta: new Map,
                bin: new Map
            })
        }
    };
    var Fze = {fetchers: [OL, LL], resolvers: [ML, TL]}, Nze = Fze;
    var fT = {};
    ft(fT, {default: () => j5e});
    var Mn;
    (function (i) {
        i[i.REGULAR = 0] = "REGULAR", i[i.WORKSPACE = 1] = "WORKSPACE", i[i.EXTERNAL_SOFT_LINK = 2] = "EXTERNAL_SOFT_LINK"
    })(Mn || (Mn = {}));
    var yA;
    (function (i) {
        i[i.YES = 0] = "YES", i[i.NO = 1] = "NO", i[i.DEPENDS = 2] = "DEPENDS"
    })(yA || (yA = {}));
    var UL = (t, e) => `${t}@${e}`, hle = (t, e) => {
        let r = e.indexOf("#"), i = r >= 0 ? e.substring(r + 1) : e;
        return UL(t, i)
    }, Io;
    (function (s) {
        s[s.NONE = -1] = "NONE", s[s.PERF = 0] = "PERF", s[s.CHECK = 1] = "CHECK", s[s.REASONS = 2] = "REASONS", s[s.INTENSIVE_CHECK = 9] = "INTENSIVE_CHECK"
    })(Io || (Io = {}));
    var dle = (t, e = {}) => {
        let r = e.debugLevel || Number(process.env.NM_DEBUG_LEVEL || -1), i = e.check || r >= 9,
            n = e.hoistingLimits || new Map, s = {check: i, debugLevel: r, hoistingLimits: n, fastLookupPossible: !0},
            o;
        s.debugLevel >= 0 && (o = Date.now());
        let a = Lze(t, s), l = !1, c = 0;
        do l = HL(a, [a], new Set([a.locator]), new Map, s).anotherRoundNeeded, s.fastLookupPossible = !1, c++; while (l);
        if (s.debugLevel >= 0 && console.log(`hoist time: ${Date.now() - o}ms, rounds: ${c}`), s.debugLevel >= 1) {
            let u = jm(a);
            if (HL(a, [a], new Set([a.locator]), new Map, s).isGraphChanged) throw new Error(`The hoisting result is not terminal, prev tree:
${u}, next tree:
${jm(a)}`);
            let f = ple(a);
            if (f) throw new Error(`${f}, after hoisting finished:
${jm(a)}`)
        }
        return s.debugLevel >= 2 && console.log(jm(a)), Tze(a)
    }, Oze = t => {
        let e = t[t.length - 1], r = new Map, i = new Set, n = s => {
            if (!i.has(s)) {
                i.add(s);
                for (let o of s.hoistedDependencies.values()) r.set(o.name, o);
                for (let o of s.dependencies.values()) s.peerNames.has(o.name) || n(o)
            }
        };
        return n(e), r
    }, Mze = t => {
        let e = t[t.length - 1], r = new Map, i = new Set, n = new Set, s = (o, a) => {
            if (i.has(o)) return;
            i.add(o);
            for (let c of o.hoistedDependencies.values()) if (!a.has(c.name)) {
                let u;
                for (let g of t) u = g.dependencies.get(c.name), u && r.set(u.name, u)
            }
            let l = new Set;
            for (let c of o.dependencies.values()) l.add(c.name);
            for (let c of o.dependencies.values()) o.peerNames.has(c.name) || s(c, l)
        };
        return s(e, n), r
    }, Cle = (t, e) => {
        if (e.decoupled) return e;
        let {
            name: r,
            references: i,
            ident: n,
            locator: s,
            dependencies: o,
            originalDependencies: a,
            hoistedDependencies: l,
            peerNames: c,
            reasons: u,
            isHoistBorder: g,
            hoistPriority: f,
            dependencyKind: h,
            hoistedFrom: p,
            hoistedTo: m
        } = e, y = {
            name: r,
            references: new Set(i),
            ident: n,
            locator: s,
            dependencies: new Map(o),
            originalDependencies: new Map(a),
            hoistedDependencies: new Map(l),
            peerNames: new Set(c),
            reasons: new Map(u),
            decoupled: !0,
            isHoistBorder: g,
            hoistPriority: f,
            dependencyKind: h,
            hoistedFrom: new Map(p),
            hoistedTo: new Map(m)
        }, b = y.dependencies.get(r);
        return b && b.ident == y.ident && y.dependencies.set(r, y), t.dependencies.set(y.name, y), y
    }, Kze = (t, e) => {
        let r = new Map([[t.name, [t.ident]]]);
        for (let n of t.dependencies.values()) t.peerNames.has(n.name) || r.set(n.name, [n.ident]);
        let i = Array.from(e.keys());
        i.sort((n, s) => {
            let o = e.get(n), a = e.get(s);
            return a.hoistPriority !== o.hoistPriority ? a.hoistPriority - o.hoistPriority : a.peerDependents.size !== o.peerDependents.size ? a.peerDependents.size - o.peerDependents.size : a.dependents.size - o.dependents.size
        });
        for (let n of i) {
            let s = n.substring(0, n.indexOf("@", 1)), o = n.substring(s.length + 1);
            if (!t.peerNames.has(s)) {
                let a = r.get(s);
                a || (a = [], r.set(s, a)), a.indexOf(o) < 0 && a.push(o)
            }
        }
        return r
    }, GL = t => {
        let e = new Set, r = (i, n = new Set) => {
            if (!n.has(i)) {
                n.add(i);
                for (let s of i.peerNames) if (!t.peerNames.has(s)) {
                    let o = t.dependencies.get(s);
                    o && !e.has(o) && r(o, n)
                }
                e.add(i)
            }
        };
        for (let i of t.dependencies.values()) t.peerNames.has(i.name) || r(i);
        return e
    }, HL = (t, e, r, i, n, s = new Set) => {
        let o = e[e.length - 1];
        if (s.has(o)) return {anotherRoundNeeded: !1, isGraphChanged: !1};
        s.add(o);
        let a = Hze(o), l = Kze(o, a), c = t == o ? new Map : n.fastLookupPossible ? Oze(e) : Mze(e), u, g = !1, f = !1,
            h = new Map(Array.from(l.entries()).map(([m, y]) => [m, y[0]])), p = new Map;
        do {
            let m = Uze(t, e, r, c, h, l, i, p, n);
            m.isGraphChanged && (f = !0), m.anotherRoundNeeded && (g = !0), u = !1;
            for (let [y, b] of l) b.length > 1 && !o.dependencies.has(y) && (h.delete(y), b.shift(), h.set(y, b[0]), u = !0)
        } while (u);
        for (let m of o.dependencies.values()) if (!o.peerNames.has(m.name) && !r.has(m.locator)) {
            r.add(m.locator);
            let y = HL(t, [...e, m], r, p, n);
            y.isGraphChanged && (f = !0), y.anotherRoundNeeded && (g = !0), r.delete(m.locator)
        }
        return {anotherRoundNeeded: g, isGraphChanged: f}
    }, Gze = t => {
        for (let [e, r] of t.dependencies) if (!t.peerNames.has(e) && r.ident !== t.ident) return !0;
        return !1
    }, jze = (t, e, r, i, n, s, o, a, {outputReason: l, fastLookupPossible: c}) => {
        let u, g = null, f = new Set;
        l && (u = `${Array.from(e).map(y => Ni(y)).join("\u2192")}`);
        let h = r[r.length - 1], m = !(i.ident === h.ident);
        if (l && !m && (g = "- self-reference"), m && (m = i.dependencyKind !== 1, l && !m && (g = "- workspace")), m && i.dependencyKind === 2 && (m = !Gze(i), l && !m && (g = "- external soft link with unhoisted dependencies")), m && (m = h.dependencyKind !== 1 || h.hoistedFrom.has(i.name) || e.size === 1, l && !m && (g = h.reasons.get(i.name))), m && (m = !t.peerNames.has(i.name), l && !m && (g = `- cannot shadow peer: ${Ni(t.originalDependencies.get(i.name).locator)} at ${u}`)), m) {
            let y = !1, b = n.get(i.name);
            if (y = !b || b.ident === i.ident, l && !y && (g = `- filled by: ${Ni(b.locator)} at ${u}`), y) for (let S = r.length - 1; S >= 1; S--) {
                let T = r[S].dependencies.get(i.name);
                if (T && T.ident !== i.ident) {
                    y = !1;
                    let Y = a.get(h);
                    Y || (Y = new Set, a.set(h, Y)), Y.add(i.name), l && (g = `- filled by ${Ni(T.locator)} at ${r.slice(0, S).map(j => Ni(j.locator)).join("\u2192")}`);
                    break
                }
            }
            m = y
        }
        if (m && (m = s.get(i.name) === i.ident, l && !m && (g = `- filled by: ${Ni(o.get(i.name)[0])} at ${u}`)), m) {
            let y = !0, b = new Set(i.peerNames);
            for (let S = r.length - 1; S >= 1; S--) {
                let k = r[S];
                for (let T of b) {
                    if (k.peerNames.has(T) && k.originalDependencies.has(T)) continue;
                    let Y = k.dependencies.get(T);
                    Y && t.dependencies.get(T) !== Y && (S === r.length - 1 ? f.add(Y) : (f = null, y = !1, l && (g = `- peer dependency ${Ni(Y.locator)} from parent ${Ni(k.locator)} was not hoisted to ${u}`))), b.delete(T)
                }
                if (!y) break
            }
            m = y
        }
        if (m && !c) for (let y of i.hoistedDependencies.values()) {
            let b = n.get(y.name) || t.dependencies.get(y.name);
            if (!b || y.ident !== b.ident) {
                m = !1, l && (g = `- previously hoisted dependency mismatch, needed: ${Ni(y.locator)}, available: ${Ni(b == null ? void 0 : b.locator)}`);
                break
            }
        }
        return f !== null && f.size > 0 ? {isHoistable: 2, dependsOn: f, reason: g} : {
            isHoistable: m ? 0 : 1,
            reason: g
        }
    }, ub = t => `${t.name}@${t.locator}`, Uze = (t, e, r, i, n, s, o, a, l) => {
        let c = e[e.length - 1], u = new Set, g = !1, f = !1, h = (b, S, k, T, Y) => {
            if (u.has(T)) return;
            let j = [...S, ub(T)], Z = [...k, ub(T)], J = new Map, re = new Map;
            for (let X of GL(T)) {
                let O = jze(c, r, [c, ...b, T], X, i, n, s, a, {
                    outputReason: l.debugLevel >= 2,
                    fastLookupPossible: l.fastLookupPossible
                });
                if (re.set(X, O), O.isHoistable === 2) for (let L of O.dependsOn) {
                    let pe = J.get(L.name) || new Set;
                    pe.add(X.name), J.set(L.name, pe)
                }
            }
            let ee = new Set, A = (X, O, L) => {
                if (!ee.has(X)) {
                    ee.add(X), re.set(X, {isHoistable: 1, reason: L});
                    for (let pe of J.get(X.name) || []) A(T.dependencies.get(pe), O, l.debugLevel >= 2 ? `- peer dependency ${Ni(X.locator)} from parent ${Ni(T.locator)} was not hoisted` : "")
                }
            };
            for (let [X, O] of re) O.isHoistable === 1 && A(X, O, O.reason);
            let oe = !1;
            for (let X of re.keys()) if (!ee.has(X)) {
                f = !0;
                let O = o.get(T);
                O && O.has(X.name) && (g = !0), oe = !0, T.dependencies.delete(X.name), T.hoistedDependencies.set(X.name, X), T.reasons.delete(X.name);
                let L = c.dependencies.get(X.name);
                if (l.debugLevel >= 2) {
                    let pe = Array.from(S).concat([T.locator]).map(Oe => Ni(Oe)).join("\u2192"),
                        Ce = c.hoistedFrom.get(X.name);
                    Ce || (Ce = [], c.hoistedFrom.set(X.name, Ce)), Ce.push(pe), T.hoistedTo.set(X.name, Array.from(e).map(Oe => Ni(Oe.locator)).join("\u2192"))
                }
                if (!L) c.ident !== X.ident && (c.dependencies.set(X.name, X), Y.add(X)); else for (let pe of X.references) L.references.add(pe)
            }
            if (T.dependencyKind === 2 && oe && (g = !0), l.check) {
                let X = ple(t);
                if (X) throw new Error(`${X}, after hoisting dependencies of ${[c, ...b, T].map(O => Ni(O.locator)).join("\u2192")}:
${jm(t)}`)
            }
            let le = GL(T);
            for (let X of le) if (ee.has(X)) {
                let O = re.get(X);
                if ((n.get(X.name) === X.ident || !T.reasons.has(X.name)) && O.isHoistable !== 0 && T.reasons.set(X.name, O.reason), !X.isHoistBorder && Z.indexOf(ub(X)) < 0) {
                    u.add(T);
                    let pe = Cle(T, X);
                    h([...b, T], j, Z, pe, m), u.delete(T)
                }
            }
        }, p, m = new Set(GL(c)), y = Array.from(e).map(b => ub(b));
        do {
            p = m, m = new Set;
            for (let b of p) {
                if (b.locator === c.locator || b.isHoistBorder) continue;
                let S = Cle(c, b);
                h([], Array.from(r), y, S, m)
            }
        } while (m.size > 0);
        return {anotherRoundNeeded: g, isGraphChanged: f}
    }, ple = t => {
        let e = [], r = new Set, i = new Set, n = (s, o, a) => {
            if (r.has(s) || (r.add(s), i.has(s))) return;
            let l = new Map(o);
            for (let c of s.dependencies.values()) s.peerNames.has(c.name) || l.set(c.name, c);
            for (let c of s.originalDependencies.values()) {
                let u = l.get(c.name), g = () => `${Array.from(i).concat([s]).map(f => Ni(f.locator)).join("\u2192")}`;
                if (s.peerNames.has(c.name)) {
                    let f = o.get(c.name);
                    (f !== u || !f || f.ident !== c.ident) && e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f && f.ident}`)
                } else {
                    let f = a.hoistedFrom.get(s.name), h = s.hoistedTo.get(c.name),
                        p = `${f ? ` hoisted from ${f.join(", ")}` : ""}`, m = `${h ? ` hoisted to ${h}` : ""}`,
                        y = `${g()}${p}`;
                    u ? u.ident !== c.ident && e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`) : e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)
                }
            }
            i.add(s);
            for (let c of s.dependencies.values()) s.peerNames.has(c.name) || n(c, l, s);
            i.delete(s)
        };
        return n(t, t.dependencies, t), e.join(`
`)
    }, Lze = (t, e) => {
        let {identName: r, name: i, reference: n, peerNames: s} = t, o = {
            name: i,
            references: new Set([n]),
            locator: UL(r, n),
            ident: hle(r, n),
            dependencies: new Map,
            originalDependencies: new Map,
            hoistedDependencies: new Map,
            peerNames: new Set(s),
            reasons: new Map,
            decoupled: !0,
            isHoistBorder: !0,
            hoistPriority: 0,
            dependencyKind: 1,
            hoistedFrom: new Map,
            hoistedTo: new Map
        }, a = new Map([[t, o]]), l = (c, u) => {
            let g = a.get(c), f = !!g;
            if (!g) {
                let {name: h, identName: p, reference: m, peerNames: y, hoistPriority: b, dependencyKind: S} = c,
                    k = e.hoistingLimits.get(u.locator);
                g = {
                    name: h,
                    references: new Set([m]),
                    locator: UL(p, m),
                    ident: hle(p, m),
                    dependencies: new Map,
                    originalDependencies: new Map,
                    hoistedDependencies: new Map,
                    peerNames: new Set(y),
                    reasons: new Map,
                    decoupled: !0,
                    isHoistBorder: k ? k.has(h) : !1,
                    hoistPriority: b || 0,
                    dependencyKind: S || 0,
                    hoistedFrom: new Map,
                    hoistedTo: new Map
                }, a.set(c, g)
            }
            if (u.dependencies.set(c.name, g), u.originalDependencies.set(c.name, g), f) {
                let h = new Set, p = m => {
                    if (!h.has(m)) {
                        h.add(m), m.decoupled = !1;
                        for (let y of m.dependencies.values()) m.peerNames.has(y.name) || p(y)
                    }
                };
                p(g)
            } else for (let h of c.dependencies) l(h, g)
        };
        for (let c of t.dependencies) l(c, o);
        return o
    }, jL = t => t.substring(0, t.indexOf("@", 1)), Tze = t => {
        let e = {name: t.name, identName: jL(t.locator), references: new Set(t.references), dependencies: new Set},
            r = new Set([t]), i = (n, s, o) => {
                let a = r.has(n), l;
                if (s === n) l = o; else {
                    let {name: c, references: u, locator: g} = n;
                    l = {name: c, identName: jL(g), references: u, dependencies: new Set}
                }
                if (o.dependencies.add(l), !a) {
                    r.add(n);
                    for (let c of n.dependencies.values()) n.peerNames.has(c.name) || i(c, n, l);
                    r.delete(n)
                }
            };
        for (let n of t.dependencies.values()) i(n, t, e);
        return e
    }, Hze = t => {
        let e = new Map, r = new Set([t]), i = o => `${o.name}@${o.ident}`, n = o => {
            let a = i(o), l = e.get(a);
            return l || (l = {dependents: new Set, peerDependents: new Set, hoistPriority: 0}, e.set(a, l)), l
        }, s = (o, a) => {
            let l = !!r.has(a);
            if (n(a).dependents.add(o.ident), !l) {
                r.add(a);
                for (let u of a.dependencies.values()) {
                    let g = n(u);
                    g.hoistPriority = Math.max(g.hoistPriority, u.hoistPriority), a.peerNames.has(u.name) ? g.peerDependents.add(a.ident) : s(a, u)
                }
            }
        };
        for (let o of t.dependencies.values()) t.peerNames.has(o.name) || s(t, o);
        return e
    }, Ni = t => {
        if (!t) return "none";
        let e = t.indexOf("@", 1), r = t.substring(0, e);
        r.endsWith("$wsroot$") && (r = `wh:${r.replace("$wsroot$", "")}`);
        let i = t.substring(e + 1);
        if (i === "workspace:.") return ".";
        if (i) {
            let n = (i.indexOf("#") > 0 ? i.split("#")[1] : i).replace("npm:", "");
            return i.startsWith("virtual") && (r = `v:${r}`), n.startsWith("workspace") && (r = `w:${r}`, n = ""), `${r}${n ? `@${n}` : ""}`
        } else return `${r}`
    }, mle = 5e4, jm = t => {
        let e = 0, r = (n, s, o = "") => {
            if (e > mle || s.has(n)) return "";
            e++;
            let a = Array.from(n.dependencies.values()).sort((c, u) => c.name === u.name ? 0 : c.name > u.name ? 1 : -1),
                l = "";
            s.add(n);
            for (let c = 0; c < a.length; c++) {
                let u = a[c];
                if (!n.peerNames.has(u.name) && u !== n) {
                    let g = n.reasons.get(u.name), f = jL(u.locator);
                    l += `${o}${c < a.length - 1 ? "\u251C\u2500" : "\u2514\u2500"}${(s.has(u) ? ">" : "") + (f !== u.name ? `a:${u.name}:` : "") + Ni(u.locator) + (g ? ` ${g}` : "")}
`, l += r(u, s, `${o}${c < a.length - 1 ? "\u2502 " : "  "}`)
                }
            }
            return s.delete(n), l
        };
        return r(t, new Set) + (e > mle ? `
Tree is too large, part of the tree has been dunped
` : "")
    };
    var yo;
    (function (r) {
        r.HARD = "HARD", r.SOFT = "SOFT"
    })(yo || (yo = {}));
    var Kn;
    (function (i) {
        i.WORKSPACES = "workspaces", i.DEPENDENCIES = "dependencies", i.NONE = "none"
    })(Kn || (Kn = {}));
    var Ele = "node_modules", bu = "$wsroot$";
    var Ym = (t, e) => {
        let {packageTree: r, hoistingLimits: i, errors: n, preserveSymlinksRequired: s} = Yze(t, e), o = null;
        if (n.length === 0) {
            let a = dle(r, {hoistingLimits: i});
            o = qze(t, a, e)
        }
        return {tree: o, errors: n, preserveSymlinksRequired: s}
    }, fa = t => `${t.name}@${t.reference}`, YL = t => {
        let e = new Map;
        for (let [r, i] of t.entries()) if (!i.dirList) {
            let n = e.get(i.locator);
            n || (n = {
                target: i.target,
                linkType: i.linkType,
                locations: [],
                aliases: i.aliases
            }, e.set(i.locator, n)), n.locations.push(r)
        }
        for (let r of e.values()) r.locations = r.locations.sort((i, n) => {
            let s = i.split(x.delimiter).length, o = n.split(x.delimiter).length;
            return n === i ? 0 : s !== o ? o - s : n > i ? 1 : -1
        });
        return e
    }, Ile = (t, e) => {
        let r = P.isVirtualLocator(t) ? P.devirtualizeLocator(t) : t,
            i = P.isVirtualLocator(e) ? P.devirtualizeLocator(e) : e;
        return P.areLocatorsEqual(r, i)
    }, qL = (t, e, r, i) => {
        if (t.linkType !== yo.SOFT) return !1;
        let n = H.toPortablePath(r.resolveVirtual && e.reference && e.reference.startsWith("virtual:") ? r.resolveVirtual(t.packageLocation) : t.packageLocation);
        return x.contains(i, n) === null
    }, Jze = t => {
        let e = t.getPackageInformation(t.topLevel);
        if (e === null) throw new Error("Assertion failed: Expected the top-level package to have been registered");
        if (t.findPackageLocator(e.packageLocation) === null) throw new Error("Assertion failed: Expected the top-level package to have a physical locator");
        let i = H.toPortablePath(e.packageLocation.slice(0, -1)), n = new Map, s = {children: new Map},
            o = t.getDependencyTreeRoots(), a = new Map, l = new Set, c = (f, h) => {
                let p = fa(f);
                if (l.has(p)) return;
                l.add(p);
                let m = t.getPackageInformation(f);
                if (m) {
                    let y = h ? fa(h) : "";
                    if (fa(f) !== y && m.linkType === yo.SOFT && !qL(m, f, t, i)) {
                        let b = yle(m, f, t);
                        (!a.get(b) || f.reference.startsWith("workspace:")) && a.set(b, f)
                    }
                    for (let [b, S] of m.packageDependencies) S !== null && (m.packagePeers.has(b) || c(t.getLocator(b, S), f))
                }
            };
        for (let f of o) c(f, null);
        let u = i.split(x.sep);
        for (let f of a.values()) {
            let h = t.getPackageInformation(f),
                m = H.toPortablePath(h.packageLocation.slice(0, -1)).split(x.sep).slice(u.length), y = s;
            for (let b of m) {
                let S = y.children.get(b);
                S || (S = {children: new Map}, y.children.set(b, S)), y = S
            }
            y.workspaceLocator = f
        }
        let g = (f, h) => {
            if (f.workspaceLocator) {
                let p = fa(h), m = n.get(p);
                m || (m = new Set, n.set(p, m)), m.add(f.workspaceLocator)
            }
            for (let p of f.children.values()) g(p, f.workspaceLocator || h)
        };
        for (let f of s.children.values()) g(f, s.workspaceLocator);
        return n
    }, Yze = (t, e) => {
        let r = [], i = !1, n = new Map, s = Jze(t), o = t.getPackageInformation(t.topLevel);
        if (o === null) throw new Error("Assertion failed: Expected the top-level package to have been registered");
        let a = t.findPackageLocator(o.packageLocation);
        if (a === null) throw new Error("Assertion failed: Expected the top-level package to have a physical locator");
        let l = H.toPortablePath(o.packageLocation.slice(0, -1)), c = {
            name: a.name,
            identName: a.name,
            reference: a.reference,
            peerNames: o.packagePeers,
            dependencies: new Set,
            dependencyKind: Mn.WORKSPACE
        }, u = new Map, g = (h, p) => `${fa(p)}:${h}`, f = (h, p, m, y, b, S, k, T) => {
            var X, O;
            let Y = g(h, m), j = u.get(Y), Z = !!j;
            !Z && m.name === a.name && m.reference === a.reference && (j = c, u.set(Y, c));
            let J = qL(p, m, t, l);
            if (!j) {
                let L = Mn.REGULAR;
                J ? L = Mn.EXTERNAL_SOFT_LINK : p.linkType === yo.SOFT && m.name.endsWith(bu) && (L = Mn.WORKSPACE), j = {
                    name: h,
                    identName: m.name,
                    reference: m.reference,
                    dependencies: new Set,
                    peerNames: L === Mn.WORKSPACE ? new Set : p.packagePeers,
                    dependencyKind: L
                }, u.set(Y, j)
            }
            let re;
            if (J ? re = 2 : b.linkType === yo.SOFT ? re = 1 : re = 0, j.hoistPriority = Math.max(j.hoistPriority || 0, re), T && !J) {
                let L = fa({name: y.identName, reference: y.reference}), pe = n.get(L) || new Set;
                n.set(L, pe), pe.add(j.name)
            }
            let ee = new Map(p.packageDependencies);
            if (e.project) {
                let L = e.project.workspacesByCwd.get(H.toPortablePath(p.packageLocation.slice(0, -1)));
                if (L) {
                    let pe = new Set([...Array.from(L.manifest.peerDependencies.values(), Ce => P.stringifyIdent(Ce)), ...Array.from(L.manifest.peerDependenciesMeta.keys())]);
                    for (let Ce of pe) ee.has(Ce) || (ee.set(Ce, S.get(Ce) || null), j.peerNames.add(Ce))
                }
            }
            let A = fa({name: m.name.replace(bu, ""), reference: m.reference}), oe = s.get(A);
            if (oe) for (let L of oe) ee.set(`${L.name}${bu}`, L.reference);
            (p !== b || p.linkType !== yo.SOFT || !J && (!e.selfReferencesByCwd || e.selfReferencesByCwd.get(k))) && y.dependencies.add(j);
            let le = m !== a && p.linkType === yo.SOFT && !m.name.endsWith(bu) && !J;
            if (!Z && !le) {
                let L = new Map;
                for (let [pe, Ce] of ee) if (Ce !== null) {
                    let Oe = t.getLocator(pe, Ce), te = t.getLocator(pe.replace(bu, ""), Ce),
                        se = t.getPackageInformation(te);
                    if (se === null) throw new Error("Assertion failed: Expected the package to have been registered");
                    let be = qL(se, Oe, t, l);
                    if (e.validateExternalSoftLinks && e.project && be) {
                        se.packageDependencies.size > 0 && (i = !0);
                        for (let [Se, de] of se.packageDependencies) if (de !== null) {
                            let V = P.parseLocator(Array.isArray(de) ? `${de[0]}@${de[1]}` : `${Se}@${de}`);
                            if (fa(V) !== fa(Oe)) {
                                let Qe = ee.get(Se);
                                if (Qe) {
                                    let ce = P.parseLocator(Array.isArray(Qe) ? `${Qe[0]}@${Qe[1]}` : `${Se}@${Qe}`);
                                    Ile(ce, V) || r.push({
                                        messageName: $.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,
                                        text: `Cannot link ${P.prettyIdent(e.project.configuration, P.parseIdent(Oe.name))} into ${P.prettyLocator(e.project.configuration, P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration, V)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration, ce)}`
                                    })
                                } else {
                                    let ce = L.get(Se);
                                    if (ce) {
                                        let fe = ce.target,
                                            gt = P.parseLocator(Array.isArray(fe) ? `${fe[0]}@${fe[1]}` : `${Se}@${fe}`);
                                        Ile(gt, V) || r.push({
                                            messageName: $.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,
                                            text: `Cannot link ${P.prettyIdent(e.project.configuration, P.parseIdent(Oe.name))} into ${P.prettyLocator(e.project.configuration, P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration, V)} conflicts with dependency ${P.prettyLocator(e.project.configuration, gt)} from sibling portal ${P.prettyIdent(e.project.configuration, P.parseIdent(ce.portal.name))}`
                                        })
                                    } else L.set(Se, {target: V.reference, portal: Oe})
                                }
                            }
                        }
                    }
                    let he = (X = e.hoistingLimitsByCwd) == null ? void 0 : X.get(k),
                        Fe = be ? k : x.relative(l, H.toPortablePath(se.packageLocation)) || Ke.dot,
                        Ue = (O = e.hoistingLimitsByCwd) == null ? void 0 : O.get(Fe),
                        xe = he === Kn.DEPENDENCIES || Ue === Kn.DEPENDENCIES || Ue === Kn.WORKSPACES;
                    f(pe, se, Oe, j, p, ee, Fe, xe)
                }
            }
        };
        return f(a.name, o, a, c, o, o.packageDependencies, Ke.dot, !1), {
            packageTree: c,
            hoistingLimits: n,
            errors: r,
            preserveSymlinksRequired: i
        }
    };

    function yle(t, e, r) {
        let i = r.resolveVirtual && e.reference && e.reference.startsWith("virtual:") ? r.resolveVirtual(t.packageLocation) : t.packageLocation;
        return H.toPortablePath(i || t.packageLocation)
    }

    function Wze(t, e, r) {
        let i = e.getLocator(t.name.replace(bu, ""), t.reference), n = e.getPackageInformation(i);
        if (n === null) throw new Error("Assertion failed: Expected the package to be registered");
        let s, o;
        return r.pnpifyFs ? (o = H.toPortablePath(n.packageLocation), s = yo.SOFT) : (o = yle(n, t, e), s = n.linkType), {
            linkType: s,
            target: o
        }
    }

    var qze = (t, e, r) => {
        let i = new Map, n = (u, g, f) => {
            let {linkType: h, target: p} = Wze(u, t, r);
            return {locator: fa(u), nodePath: g, target: p, linkType: h, aliases: f}
        }, s = u => {
            let [g, f] = u.split("/");
            return f ? {scope: Jr(g), name: Jr(f)} : {scope: null, name: Jr(g)}
        }, o = new Set, a = (u, g, f) => {
            if (!o.has(u)) {
                o.add(u);
                for (let h of u.dependencies) {
                    if (h === u) continue;
                    let p = Array.from(h.references).sort(), m = {name: h.identName, reference: p[0]}, {
                            name: y,
                            scope: b
                        } = s(h.name), S = b ? [b, y] : [y], k = x.join(g, Ele), T = x.join(k, ...S), Y = `${f}/${m.name}`,
                        j = n(m, f, p.slice(1)), Z = !1;
                    if (j.linkType === yo.SOFT && r.project) {
                        let J = r.project.workspacesByCwd.get(j.target.slice(0, -1));
                        Z = !!(J && !J.manifest.name)
                    }
                    if (!h.name.endsWith(bu) && !Z) {
                        let J = i.get(T);
                        if (J) {
                            if (J.dirList) throw new Error(`Assertion failed: ${T} cannot merge dir node with leaf node`);
                            {
                                let oe = P.parseLocator(J.locator), le = P.parseLocator(j.locator);
                                if (J.linkType !== j.linkType) throw new Error(`Assertion failed: ${T} cannot merge nodes with different link types ${J.nodePath}/${P.stringifyLocator(oe)} and ${f}/${P.stringifyLocator(le)}`);
                                if (oe.identHash !== le.identHash) throw new Error(`Assertion failed: ${T} cannot merge nodes with different idents ${J.nodePath}/${P.stringifyLocator(oe)} and ${f}/s${P.stringifyLocator(le)}`);
                                j.aliases = [...j.aliases, ...J.aliases, P.parseLocator(J.locator).reference]
                            }
                        }
                        i.set(T, j);
                        let re = T.split("/"), ee = re.indexOf(Ele), A = re.length - 1;
                        for (; ee >= 0 && A > ee;) {
                            let oe = H.toPortablePath(re.slice(0, A).join(x.sep)), le = Jr(re[A]), X = i.get(oe);
                            if (!X) i.set(oe, {dirList: new Set([le])}); else if (X.dirList) {
                                if (X.dirList.has(le)) break;
                                X.dirList.add(le)
                            }
                            A--
                        }
                    }
                    a(h, j.linkType === yo.SOFT ? j.target : T, Y)
                }
            }
        }, l = n({name: e.name, reference: Array.from(e.references)[0]}, "", []), c = l.target;
        return i.set(c, l), a(e, c, ""), i
    };
    var rT = {};
    ft(rT, {
        PnpInstaller: () => ah,
        PnpLinker: () => vu,
        default: () => C5e,
        getPnpPath: () => Dl,
        jsInstallUtils: () => ha,
        pnpUtils: () => eT,
        quotePathIfNeeded: () => qle
    });
    var jle = ge(ri()), Yle = ge(require("url"));
    var wle;
    (function (r) {
        r.HARD = "HARD", r.SOFT = "SOFT"
    })(wle || (wle = {}));
    var er;
    (function (f) {
        f.DEFAULT = "DEFAULT", f.TOP_LEVEL = "TOP_LEVEL", f.FALLBACK_EXCLUSION_LIST = "FALLBACK_EXCLUSION_LIST", f.FALLBACK_EXCLUSION_ENTRIES = "FALLBACK_EXCLUSION_ENTRIES", f.FALLBACK_EXCLUSION_DATA = "FALLBACK_EXCLUSION_DATA", f.PACKAGE_REGISTRY_DATA = "PACKAGE_REGISTRY_DATA", f.PACKAGE_REGISTRY_ENTRIES = "PACKAGE_REGISTRY_ENTRIES", f.PACKAGE_STORE_DATA = "PACKAGE_STORE_DATA", f.PACKAGE_STORE_ENTRIES = "PACKAGE_STORE_ENTRIES", f.PACKAGE_INFORMATION_DATA = "PACKAGE_INFORMATION_DATA", f.PACKAGE_DEPENDENCIES = "PACKAGE_DEPENDENCIES", f.PACKAGE_DEPENDENCY = "PACKAGE_DEPENDENCY"
    })(er || (er = {}));
    var Ble = {
        [er.DEFAULT]: {collapsed: !1, next: {["*"]: er.DEFAULT}},
        [er.TOP_LEVEL]: {
            collapsed: !1,
            next: {
                fallbackExclusionList: er.FALLBACK_EXCLUSION_LIST,
                packageRegistryData: er.PACKAGE_REGISTRY_DATA,
                ["*"]: er.DEFAULT
            }
        },
        [er.FALLBACK_EXCLUSION_LIST]: {collapsed: !1, next: {["*"]: er.FALLBACK_EXCLUSION_ENTRIES}},
        [er.FALLBACK_EXCLUSION_ENTRIES]: {collapsed: !0, next: {["*"]: er.FALLBACK_EXCLUSION_DATA}},
        [er.FALLBACK_EXCLUSION_DATA]: {collapsed: !0, next: {["*"]: er.DEFAULT}},
        [er.PACKAGE_REGISTRY_DATA]: {collapsed: !1, next: {["*"]: er.PACKAGE_REGISTRY_ENTRIES}},
        [er.PACKAGE_REGISTRY_ENTRIES]: {collapsed: !0, next: {["*"]: er.PACKAGE_STORE_DATA}},
        [er.PACKAGE_STORE_DATA]: {collapsed: !1, next: {["*"]: er.PACKAGE_STORE_ENTRIES}},
        [er.PACKAGE_STORE_ENTRIES]: {collapsed: !0, next: {["*"]: er.PACKAGE_INFORMATION_DATA}},
        [er.PACKAGE_INFORMATION_DATA]: {
            collapsed: !1,
            next: {packageDependencies: er.PACKAGE_DEPENDENCIES, ["*"]: er.DEFAULT}
        },
        [er.PACKAGE_DEPENDENCIES]: {collapsed: !1, next: {["*"]: er.PACKAGE_DEPENDENCY}},
        [er.PACKAGE_DEPENDENCY]: {collapsed: !0, next: {["*"]: er.DEFAULT}}
    };

    function zze(t, e, r) {
        let i = "";
        i += "[";
        for (let n = 0, s = t.length; n < s; ++n) i += gb(String(n), t[n], e, r).replace(/^ +/g, ""), n + 1 < s && (i += ", ");
        return i += "]", i
    }

    function _ze(t, e, r) {
        let i = `${r}  `, n = "";
        n += r, n += `[
`;
        for (let s = 0, o = t.length; s < o; ++s) n += i + gb(String(s), t[s], e, i).replace(/^ +/, ""), s + 1 < o && (n += ","), n += `
`;
        return n += r, n += "]", n
    }

    function Vze(t, e, r) {
        let i = Object.keys(t), n = "";
        n += "{";
        for (let s = 0, o = i.length, a = 0; s < o; ++s) {
            let l = i[s], c = t[l];
            typeof c != "undefined" && (a !== 0 && (n += ", "), n += JSON.stringify(l), n += ": ", n += gb(l, c, e, r).replace(/^ +/g, ""), a += 1)
        }
        return n += "}", n
    }

    function Xze(t, e, r) {
        let i = Object.keys(t), n = `${r}  `, s = "";
        s += r, s += `{
`;
        let o = 0;
        for (let a = 0, l = i.length; a < l; ++a) {
            let c = i[a], u = t[c];
            typeof u != "undefined" && (o !== 0 && (s += ",", s += `
`), s += n, s += JSON.stringify(c), s += ": ", s += gb(c, u, e, n).replace(/^ +/g, ""), o += 1)
        }
        return o !== 0 && (s += `
`), s += r, s += "}", s
    }

    function gb(t, e, r, i) {
        let {next: n} = Ble[r], s = n[t] || n["*"];
        return ble(e, s, i)
    }

    function ble(t, e, r) {
        let {collapsed: i} = Ble[e];
        return Array.isArray(t) ? i ? zze(t, e, r) : _ze(t, e, r) : typeof t == "object" && t !== null ? i ? Vze(t, e, r) : Xze(t, e, r) : JSON.stringify(t)
    }

    function Qle(t) {
        return ble(t, er.TOP_LEVEL, "")
    }

    function qm(t, e) {
        let r = Array.from(t);
        Array.isArray(e) || (e = [e]);
        let i = [];
        for (let s of e) i.push(r.map(o => s(o)));
        let n = r.map((s, o) => o);
        return n.sort((s, o) => {
            for (let a of i) {
                let l = a[s] < a[o] ? -1 : a[s] > a[o] ? 1 : 0;
                if (l !== 0) return l
            }
            return 0
        }), n.map(s => r[s])
    }

    function Zze(t) {
        let e = new Map,
            r = qm(t.fallbackExclusionList || [], [({name: i, reference: n}) => i, ({name: i, reference: n}) => n]);
        for (let {name: i, reference: n} of r) {
            let s = e.get(i);
            typeof s == "undefined" && e.set(i, s = new Set), s.add(n)
        }
        return Array.from(e).map(([i, n]) => [i, Array.from(n)])
    }

    function $ze(t) {
        return qm(t.fallbackPool || [], ([e]) => e)
    }

    function e5e(t) {
        let e = [];
        for (let [r, i] of qm(t.packageRegistry, ([n]) => n === null ? "0" : `1${n}`)) {
            let n = [];
            e.push([r, n]);
            for (let [s, {
                packageLocation: o,
                packageDependencies: a,
                packagePeers: l,
                linkType: c,
                discardFromLookup: u
            }] of qm(i, ([g]) => g === null ? "0" : `1${g}`)) {
                let g = [];
                r !== null && s !== null && !a.has(r) && g.push([r, s]);
                for (let [p, m] of qm(a.entries(), ([y]) => y)) g.push([p, m]);
                let f = l && l.size > 0 ? Array.from(l) : void 0, h = u || void 0;
                n.push([s, {
                    packageLocation: o,
                    packageDependencies: g,
                    packagePeers: f,
                    linkType: c,
                    discardFromLookup: h
                }])
            }
        }
        return e
    }

    function Jm(t) {
        return {
            __info: ["This file is automatically generated. Do not touch it, or risk", "your modifications being lost. We also recommend you not to read", "it either without using the @yarnpkg/pnp package, as the data layout", "is entirely unspecified and WILL change from a version to another."],
            dependencyTreeRoots: t.dependencyTreeRoots,
            enableTopLevelFallback: t.enableTopLevelFallback || !1,
            ignorePatternData: t.ignorePattern || null,
            fallbackExclusionList: Zze(t),
            fallbackPool: $ze(t),
            packageRegistryData: e5e(t)
        }
    }

    var kle = ge(Sle());

    function xle(t, e) {
        return [t ? `${t}
` : "", `/* eslint-disable */

`, `try {
`, `  Object.freeze({}).detectStrictMode = true;
`, `} catch (error) {
`, "  throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n", `}
`, `
`, `function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`, e.replace(/^/gm, "  "), `}
`, `
`, (0, kle.default)()].join("")
    }

    function t5e(t) {
        return JSON.stringify(t, null, 2)
    }

    function r5e(t) {
        return `'${t.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/\n/g, `\\
`)}'`
    }

    function i5e(t) {
        return [`return hydrateRuntimeState(JSON.parse(${r5e(Qle(t))}), {basePath: basePath || __dirname});
`].join("")
    }

    function n5e(t) {
        return [`var path = require('path');
`, `var dataLocation = path.resolve(__dirname, ${JSON.stringify(t)});
`, `return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)});
`].join("")
    }

    function Ple(t) {
        let e = Jm(t), r = i5e(e);
        return xle(t.shebang, r)
    }

    function Dle(t) {
        let e = Jm(t), r = n5e(t.dataLocation), i = xle(t.shebang, r);
        return {dataFile: t5e(e), loaderFile: i}
    }

    var Nle = ge(require("fs")), c5e = ge(require("path")), Lle = ge(require("util"));

    function WL(t, {basePath: e}) {
        let r = H.toPortablePath(e), i = x.resolve(r),
            n = t.ignorePatternData !== null ? new RegExp(t.ignorePatternData) : null, s = new Map,
            o = new Map(t.packageRegistryData.map(([g, f]) => [g, new Map(f.map(([h, p]) => {
                var k;
                if (g === null != (h === null)) throw new Error("Assertion failed: The name and reference should be null, or neither should");
                let m = (k = p.discardFromLookup) != null ? k : !1, y = {name: g, reference: h},
                    b = s.get(p.packageLocation);
                b ? (b.discardFromLookup = b.discardFromLookup && m, m || (b.locator = y)) : s.set(p.packageLocation, {
                    locator: y,
                    discardFromLookup: m
                });
                let S = null;
                return [h, {
                    packageDependencies: new Map(p.packageDependencies),
                    packagePeers: new Set(p.packagePeers),
                    linkType: p.linkType,
                    discardFromLookup: m,
                    get packageLocation() {
                        return S || (S = x.join(i, p.packageLocation))
                    }
                }]
            }))])), a = new Map(t.fallbackExclusionList.map(([g, f]) => [g, new Set(f)])), l = new Map(t.fallbackPool),
            c = t.dependencyTreeRoots, u = t.enableTopLevelFallback;
        return {
            basePath: r,
            dependencyTreeRoots: c,
            enableTopLevelFallback: u,
            fallbackExclusionList: a,
            fallbackPool: l,
            ignorePattern: n,
            packageLocatorsByLocations: s,
            packageRegistry: o
        }
    }

    var Wm = ge(require("module"));

    function oh(t, e) {
        if (typeof t == "string") return t;
        if (t) {
            let r, i;
            if (Array.isArray(t)) {
                for (r = 0; r < t.length; r++) if (i = oh(t[r], e)) return i
            } else for (r in t) if (e.has(r)) return oh(t[r], e)
        }
    }

    function Qu(t, e, r) {
        throw new Error(r ? `No known conditions for "${e}" entry in "${t}" package` : `Missing "${e}" export in "${t}" package`)
    }

    function s5e(t, e) {
        return e === t ? "." : e[0] === "." ? e : e.replace(new RegExp("^" + t + "/"), "./")
    }

    function Rle(t, e = ".", r = {}) {
        let {name: i, exports: n} = t;
        if (n) {
            let {browser: s, require: o, unsafe: a, conditions: l = []} = r, c = s5e(i, e);
            if (c[0] !== "." && (c = "./" + c), typeof n == "string") return c === "." ? n : Qu(i, c);
            let u = new Set(["default", ...l]);
            a || u.add(o ? "require" : "import"), a || u.add(s ? "browser" : "node");
            let g, f, h = !1;
            for (g in n) {
                h = g[0] !== ".";
                break
            }
            if (h) return c === "." ? oh(n, u) || Qu(i, c, 1) : Qu(i, c);
            if (f = n[c]) return oh(f, u) || Qu(i, c, 1);
            for (g in n) {
                if (f = g[g.length - 1], f === "/" && c.startsWith(g)) return (f = oh(n[g], u)) ? f + c.substring(g.length) : Qu(i, c, 1);
                if (f === "*" && c.startsWith(g.slice(0, -1)) && c.substring(g.length - 1).length > 0) return (f = oh(n[g], u)) ? f.replace("*", c.substring(g.length - 1)) : Qu(i, c, 1)
            }
            return Qu(i, c)
        }
    }

    var zL = ge(require("util"));
    var ur;
    (function (c) {
        c.API_ERROR = "API_ERROR", c.BUILTIN_NODE_RESOLUTION_FAILED = "BUILTIN_NODE_RESOLUTION_FAILED", c.EXPORTS_RESOLUTION_FAILED = "EXPORTS_RESOLUTION_FAILED", c.MISSING_DEPENDENCY = "MISSING_DEPENDENCY", c.MISSING_PEER_DEPENDENCY = "MISSING_PEER_DEPENDENCY", c.QUALIFIED_PATH_RESOLUTION_FAILED = "QUALIFIED_PATH_RESOLUTION_FAILED", c.INTERNAL = "INTERNAL", c.UNDECLARED_DEPENDENCY = "UNDECLARED_DEPENDENCY", c.UNSUPPORTED = "UNSUPPORTED"
    })(ur || (ur = {}));
    var o5e = new Set([ur.BUILTIN_NODE_RESOLUTION_FAILED, ur.MISSING_DEPENDENCY, ur.MISSING_PEER_DEPENDENCY, ur.QUALIFIED_PATH_RESOLUTION_FAILED, ur.UNDECLARED_DEPENDENCY]);

    function ai(t, e, r = {}, i) {
        i != null || (i = o5e.has(t) ? "MODULE_NOT_FOUND" : t);
        let n = {configurable: !0, writable: !0, enumerable: !1};
        return Object.defineProperties(new Error(e), {
            code: ie(N({}, n), {value: i}),
            pnpCode: ie(N({}, n), {value: t}),
            data: ie(N({}, n), {value: r})
        })
    }

    function wo(t) {
        return H.normalize(H.fromPortablePath(t))
    }

    var a5e = ge(require("fs")), Fle = ge(require("module")), A5e = ge(require("path")),
        l5e = new Set(Fle.Module.builtinModules || Object.keys(process.binding("natives"))),
        fb = t => t.startsWith("node:") || l5e.has(t);

    function _L(t, e) {
        let r = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0, i = Number(process.env.PNP_DEBUG_LEVEL),
            n = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,
            s = /^(\/|\.{1,2}(\/|$))/, o = /\/$/, a = /^\.{0,2}\//, l = {name: null, reference: null}, c = [],
            u = new Set;
        if (t.enableTopLevelFallback === !0 && c.push(l), e.compatibilityMode !== !1) for (let te of ["react-scripts", "gatsby"]) {
            let se = t.packageRegistry.get(te);
            if (se) for (let be of se.keys()) {
                if (be === null) throw new Error("Assertion failed: This reference shouldn't be null");
                c.push({name: te, reference: be})
            }
        }
        let {ignorePattern: g, packageRegistry: f, packageLocatorsByLocations: h} = t;

        function p(te, se) {
            return {fn: te, args: se, error: null, result: null}
        }

        function m(te) {
            var Ue, xe, Se, de, V, Qe;
            let se = (Se = (xe = (Ue = process.stderr) == null ? void 0 : Ue.hasColors) == null ? void 0 : xe.call(Ue)) != null ? Se : process.stdout.isTTY,
                be = (ce, fe) => `[${ce}m${fe}[0m`, he = te.error;
            console.error(he ? be("31;1", `\u2716 ${(de = te.error) == null ? void 0 : de.message.replace(/\n.*/s, "")}`) : be("33;1", "\u203C Resolution")), te.args.length > 0 && console.error();
            for (let ce of te.args) console.error(`  ${be("37;1", "In \u2190")} ${(0, zL.inspect)(ce, {
                colors: se,
                compact: !0
            })}`);
            te.result && (console.error(), console.error(`  ${be("37;1", "Out \u2192")} ${(0, zL.inspect)(te.result, {
                colors: se,
                compact: !0
            })}`));
            let Fe = (Qe = (V = new Error().stack.match(/(?<=^ +)at.*/gm)) == null ? void 0 : V.slice(2)) != null ? Qe : [];
            if (Fe.length > 0) {
                console.error();
                for (let ce of Fe) console.error(`  ${be("38;5;244", ce)}`)
            }
            console.error()
        }

        function y(te, se) {
            if (e.allowDebug === !1) return se;
            if (Number.isFinite(i)) {
                if (i >= 2) return (...be) => {
                    let he = p(te, be);
                    try {
                        return he.result = se(...be)
                    } catch (Fe) {
                        throw he.error = Fe
                    } finally {
                        m(he)
                    }
                };
                if (i >= 1) return (...be) => {
                    try {
                        return se(...be)
                    } catch (he) {
                        let Fe = p(te, be);
                        throw Fe.error = he, m(Fe), he
                    }
                }
            }
            return se
        }

        function b(te) {
            let se = A(te);
            if (!se) throw ai(ur.INTERNAL, "Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");
            return se
        }

        function S(te) {
            if (te.name === null) return !0;
            for (let se of t.dependencyTreeRoots) if (se.name === te.name && se.reference === te.reference) return !0;
            return !1
        }

        let k = new Set(["default", "node", "require"]);

        function T(te, se = k) {
            let be = X(x.join(te, "internal.js"), {resolveIgnored: !0, includeDiscardFromLookup: !0});
            if (be === null) throw ai(ur.INTERNAL, `The locator that owns the "${te}" path can't be found inside the dependency tree (this is probably an internal error)`);
            let {packageLocation: he} = b(be), Fe = x.join(he, Pt.manifest);
            if (!e.fakeFs.existsSync(Fe)) return null;
            let Ue = JSON.parse(e.fakeFs.readFileSync(Fe, "utf8")), xe = x.contains(he, te);
            if (xe === null) throw ai(ur.INTERNAL, "unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");
            a.test(xe) || (xe = `./${xe}`);
            let Se;
            try {
                Se = Rle(Ue, x.normalize(xe), {conditions: se, unsafe: !0})
            } catch (de) {
                throw ai(ur.EXPORTS_RESOLUTION_FAILED, de.message, {
                    unqualifiedPath: wo(te),
                    locator: be,
                    pkgJson: Ue,
                    subpath: wo(xe),
                    conditions: se
                }, "ERR_PACKAGE_PATH_NOT_EXPORTED")
            }
            return typeof Se == "string" ? x.join(he, Se) : null
        }

        function Y(te, se, {extensions: be}) {
            let he;
            try {
                se.push(te), he = e.fakeFs.statSync(te)
            } catch (Fe) {
            }
            if (he && !he.isDirectory()) return e.fakeFs.realpathSync(te);
            if (he && he.isDirectory()) {
                let Fe;
                try {
                    Fe = JSON.parse(e.fakeFs.readFileSync(x.join(te, Pt.manifest), "utf8"))
                } catch (xe) {
                }
                let Ue;
                if (Fe && Fe.main && (Ue = x.resolve(te, Fe.main)), Ue && Ue !== te) {
                    let xe = Y(Ue, se, {extensions: be});
                    if (xe !== null) return xe
                }
            }
            for (let Fe = 0, Ue = be.length; Fe < Ue; Fe++) {
                let xe = `${te}${be[Fe]}`;
                if (se.push(xe), e.fakeFs.existsSync(xe)) return xe
            }
            if (he && he.isDirectory()) for (let Fe = 0, Ue = be.length; Fe < Ue; Fe++) {
                let xe = x.format({dir: te, name: "index", ext: be[Fe]});
                if (se.push(xe), e.fakeFs.existsSync(xe)) return xe
            }
            return null
        }

        function j(te) {
            let se = new Wm.Module(te, null);
            return se.filename = te, se.paths = Wm.Module._nodeModulePaths(te), se
        }

        function Z(te, se) {
            return se.endsWith("/") && (se = x.join(se, "internal.js")), Wm.Module._resolveFilename(H.fromPortablePath(te), j(H.fromPortablePath(se)), !1, {plugnplay: !1})
        }

        function J(te) {
            if (g === null) return !1;
            let se = x.contains(t.basePath, te);
            return se === null ? !1 : !!g.test(se.replace(/\/$/, ""))
        }

        let re = {std: 3, resolveVirtual: 1, getAllLocators: 1}, ee = l;

        function A({name: te, reference: se}) {
            let be = f.get(te);
            if (!be) return null;
            let he = be.get(se);
            return he || null
        }

        function oe({name: te, reference: se}) {
            let be = [];
            for (let [he, Fe] of f) if (he !== null) for (let [Ue, xe] of Fe) Ue === null || xe.packageDependencies.get(te) !== se || he === te && Ue === se || be.push({
                name: he,
                reference: Ue
            });
            return be
        }

        function le(te, se) {
            let be = new Map, he = new Set, Fe = xe => {
                let Se = JSON.stringify(xe.name);
                if (he.has(Se)) return;
                he.add(Se);
                let de = oe(xe);
                for (let V of de) if (b(V).packagePeers.has(te)) Fe(V); else {
                    let ce = be.get(V.name);
                    typeof ce == "undefined" && be.set(V.name, ce = new Set), ce.add(V.reference)
                }
            };
            Fe(se);
            let Ue = [];
            for (let xe of [...be.keys()].sort()) for (let Se of [...be.get(xe)].sort()) Ue.push({
                name: xe,
                reference: Se
            });
            return Ue
        }

        function X(te, {resolveIgnored: se = !1, includeDiscardFromLookup: be = !1} = {}) {
            if (J(te) && !se) return null;
            let he = x.relative(t.basePath, te);
            he.match(s) || (he = `./${he}`), he.endsWith("/") || (he = `${he}/`);
            do {
                let Fe = h.get(he);
                if (typeof Fe == "undefined" || Fe.discardFromLookup && !be) {
                    he = he.substring(0, he.lastIndexOf("/", he.length - 2) + 1);
                    continue
                }
                return Fe.locator
            } while (he !== "");
            return null
        }

        function O(te, se, {considerBuiltins: be = !0} = {}) {
            if (te === "pnpapi") return H.toPortablePath(e.pnpapiResolution);
            if (be && fb(te)) return null;
            let he = wo(te), Fe = se && wo(se);
            if (se && J(se) && (!x.isAbsolute(te) || X(te) === null)) {
                let Se = Z(te, se);
                if (Se === !1) throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED, `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp)

Require request: "${he}"
Required by: ${Fe}
`, {request: he, issuer: Fe});
                return H.toPortablePath(Se)
            }
            let Ue, xe = te.match(n);
            if (xe) {
                if (!se) throw ai(ur.API_ERROR, "The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute", {
                    request: he,
                    issuer: Fe
                });
                let [, Se, de] = xe, V = X(se);
                if (!V) {
                    let Gt = Z(te, se);
                    if (Gt === !1) throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED, `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).

Require path: "${he}"
Required by: ${Fe}
`, {request: he, issuer: Fe});
                    return H.toPortablePath(Gt)
                }
                let ce = b(V).packageDependencies.get(Se), fe = null;
                if (ce == null && V.name !== null) {
                    let Gt = t.fallbackExclusionList.get(V.name);
                    if (!Gt || !Gt.has(V.reference)) {
                        for (let Ti = 0, Vs = c.length; Ti < Vs; ++Ti) {
                            let Hn = b(c[Ti]).packageDependencies.get(Se);
                            if (Hn != null) {
                                r ? fe = Hn : ce = Hn;
                                break
                            }
                        }
                        if (t.enableTopLevelFallback && ce == null && fe === null) {
                            let Ti = t.fallbackPool.get(Se);
                            Ti != null && (fe = Ti)
                        }
                    }
                }
                let gt = null;
                if (ce === null) if (S(V)) gt = ai(ur.MISSING_PEER_DEPENDENCY, `Your application tried to access ${Se} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.

Required package: ${Se}${Se !== he ? ` (via "${he}")` : ""}
Required by: ${Fe}
`, {request: he, issuer: Fe, dependencyName: Se}); else {
                    let Gt = le(Se, V);
                    Gt.every(Qr => S(Qr)) ? gt = ai(ur.MISSING_PEER_DEPENDENCY, `${V.name} tried to access ${Se} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.

Required package: ${Se}${Se !== he ? ` (via "${he}")` : ""}
Required by: ${V.name}@${V.reference} (via ${Fe})
${Gt.map(Qr => `Ancestor breaking the chain: ${Qr.name}@${Qr.reference}
`).join("")}
`, {
                        request: he,
                        issuer: Fe,
                        issuerLocator: Object.assign({}, V),
                        dependencyName: Se,
                        brokenAncestors: Gt
                    }) : gt = ai(ur.MISSING_PEER_DEPENDENCY, `${V.name} tried to access ${Se} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.

Required package: ${Se}${Se !== he ? ` (via "${he}")` : ""}
Required by: ${V.name}@${V.reference} (via ${Fe})

${Gt.map(Qr => `Ancestor breaking the chain: ${Qr.name}@${Qr.reference}
`).join("")}
`, {request: he, issuer: Fe, issuerLocator: Object.assign({}, V), dependencyName: Se, brokenAncestors: Gt})
                } else ce === void 0 && (!be && fb(te) ? S(V) ? gt = ai(ur.UNDECLARED_DEPENDENCY, `Your application tried to access ${Se}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Se} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.

Required package: ${Se}${Se !== he ? ` (via "${he}")` : ""}
Required by: ${Fe}
`, {
                    request: he,
                    issuer: Fe,
                    dependencyName: Se
                }) : gt = ai(ur.UNDECLARED_DEPENDENCY, `${V.name} tried to access ${Se}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Se} isn't otherwise declared in ${V.name}'s dependencies, this makes the require call ambiguous and unsound.

Required package: ${Se}${Se !== he ? ` (via "${he}")` : ""}
Required by: ${Fe}
`, {
                    request: he,
                    issuer: Fe,
                    issuerLocator: Object.assign({}, V),
                    dependencyName: Se
                }) : S(V) ? gt = ai(ur.UNDECLARED_DEPENDENCY, `Your application tried to access ${Se}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.

Required package: ${Se}${Se !== he ? ` (via "${he}")` : ""}
Required by: ${Fe}
`, {request: he, issuer: Fe, dependencyName: Se}) : gt = ai(ur.UNDECLARED_DEPENDENCY, `${V.name} tried to access ${Se}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.

Required package: ${Se}${Se !== he ? ` (via "${he}")` : ""}
Required by: ${V.name}@${V.reference} (via ${Fe})
`, {request: he, issuer: Fe, issuerLocator: Object.assign({}, V), dependencyName: Se}));
                if (ce == null) {
                    if (fe === null || gt === null) throw gt || new Error("Assertion failed: Expected an error to have been set");
                    ce = fe;
                    let Gt = gt.message.replace(/\n.*/g, "");
                    gt.message = Gt, !u.has(Gt) && i !== 0 && (u.add(Gt), process.emitWarning(gt))
                }
                let Ht = Array.isArray(ce) ? {name: ce[0], reference: ce[1]} : {name: Se, reference: ce}, Mt = b(Ht);
                if (!Mt.packageLocation) throw ai(ur.MISSING_DEPENDENCY, `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.

Required package: ${Ht.name}@${Ht.reference}${Ht.name !== he ? ` (via "${he}")` : ""}
Required by: ${V.name}@${V.reference} (via ${Fe})
`, {request: he, issuer: Fe, dependencyLocator: Object.assign({}, Ht)});
                let mi = Mt.packageLocation;
                de ? Ue = x.join(mi, de) : Ue = mi
            } else if (x.isAbsolute(te)) Ue = x.normalize(te); else {
                if (!se) throw ai(ur.API_ERROR, "The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute", {
                    request: he,
                    issuer: Fe
                });
                let Se = x.resolve(se);
                se.match(o) ? Ue = x.normalize(x.join(Se, te)) : Ue = x.normalize(x.join(x.dirname(Se), te))
            }
            return x.normalize(Ue)
        }

        function L(te, se, be = k) {
            if (s.test(te)) return se;
            let he = T(se, be);
            return he ? x.normalize(he) : se
        }

        function pe(te, {extensions: se = Object.keys(Wm.Module._extensions)} = {}) {
            var Fe, Ue;
            let be = [], he = Y(te, be, {extensions: se});
            if (he) return x.normalize(he);
            {
                let xe = wo(te), Se = X(te);
                if (Se) {
                    let {packageLocation: de} = b(Se), V = !0;
                    try {
                        e.fakeFs.accessSync(de)
                    } catch (Qe) {
                        if ((Qe == null ? void 0 : Qe.code) === "ENOENT") V = !1; else {
                            let ce = ((Ue = (Fe = Qe == null ? void 0 : Qe.message) != null ? Fe : Qe) != null ? Ue : "empty exception thrown").replace(/^[A-Z]/, fe => fe.toLowerCase());
                            throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${ce}).

Missing package: ${Se.name}@${Se.reference}
Expected package location: ${wo(de)}
`, {unqualifiedPath: xe, extensions: se})
                        }
                    }
                    if (!V) {
                        let Qe = de.includes("/unplugged/") ? "Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work)." : "Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";
                        throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED, `${Qe}

Missing package: ${Se.name}@${Se.reference}
Expected package location: ${wo(de)}
`, {unqualifiedPath: xe, extensions: se})
                    }
                }
                throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED, `Qualified path resolution failed: we looked for the following paths, but none could be accessed.

Source path: ${xe}
${be.map(de => `Not found: ${wo(de)}
`).join("")}`, {unqualifiedPath: xe, extensions: se})
            }
        }

        function Ce(te, se, {considerBuiltins: be, extensions: he, conditions: Fe} = {}) {
            try {
                let Ue = O(te, se, {considerBuiltins: be});
                if (te === "pnpapi") return Ue;
                if (Ue === null) return null;
                let xe = () => se !== null ? J(se) : !1, Se = (!be || !fb(te)) && !xe() ? L(te, Ue, Fe) : Ue;
                return pe(Se, {extensions: he})
            } catch (Ue) {
                throw Object.prototype.hasOwnProperty.call(Ue, "pnpCode") && Object.assign(Ue.data, {
                    request: wo(te),
                    issuer: se && wo(se)
                }), Ue
            }
        }

        function Oe(te) {
            let se = x.normalize(te), be = Wr.resolveVirtual(se);
            return be !== se ? be : null
        }

        return {
            VERSIONS: re,
            topLevel: ee,
            getLocator: (te, se) => Array.isArray(se) ? {name: se[0], reference: se[1]} : {name: te, reference: se},
            getDependencyTreeRoots: () => [...t.dependencyTreeRoots],
            getAllLocators() {
                let te = [];
                for (let [se, be] of f) for (let he of be.keys()) se !== null && he !== null && te.push({
                    name: se,
                    reference: he
                });
                return te
            },
            getPackageInformation: te => {
                let se = A(te);
                if (se === null) return null;
                let be = H.fromPortablePath(se.packageLocation);
                return ie(N({}, se), {packageLocation: be})
            },
            findPackageLocator: te => X(H.toPortablePath(te)),
            resolveToUnqualified: y("resolveToUnqualified", (te, se, be) => {
                let he = se !== null ? H.toPortablePath(se) : null, Fe = O(H.toPortablePath(te), he, be);
                return Fe === null ? null : H.fromPortablePath(Fe)
            }),
            resolveUnqualified: y("resolveUnqualified", (te, se) => H.fromPortablePath(pe(H.toPortablePath(te), se))),
            resolveRequest: y("resolveRequest", (te, se, be) => {
                let he = se !== null ? H.toPortablePath(se) : null, Fe = Ce(H.toPortablePath(te), he, be);
                return Fe === null ? null : H.fromPortablePath(Fe)
            }),
            resolveVirtual: y("resolveVirtual", te => {
                let se = Oe(H.toPortablePath(te));
                return se !== null ? H.fromPortablePath(se) : null
            })
        }
    }

    var YQt = (0, Lle.promisify)(Nle.readFile);
    var Tle = (t, e, r) => {
        let i = Jm(t), n = WL(i, {basePath: e}), s = H.join(e, Pt.pnpCjs);
        return _L(n, {fakeFs: r, pnpapiResolution: s})
    };
    var XL = ge(Mle());
    var ha = {};
    ft(ha, {
        checkAndReportManifestCompatibility: () => Ule,
        checkManifestCompatibility: () => Kle,
        extractBuildScripts: () => hb,
        getExtractHint: () => ZL,
        hasBindingGyp: () => $L
    });

    function Kle(t) {
        return P.isPackageCompatible(t, Wg.getArchitectureSet())
    }

    function Ule(t, e, {configuration: r, report: i}) {
        return Kle(t) ? !0 : (i == null || i.reportWarningOnce($.INCOMPATIBLE_ARCHITECTURE, `${P.prettyLocator(r, t)} The ${Wg.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`), !1)
    }

    function hb(t, e, r, {configuration: i, report: n}) {
        let s = [];
        for (let a of ["preinstall", "install", "postinstall"]) e.manifest.scripts.has(a) && s.push([ls.SCRIPT, a]);
        return !e.manifest.scripts.has("install") && e.misc.hasBindingGyp && s.push([ls.SHELLCODE, "node-gyp rebuild"]), s.length === 0 ? [] : t.linkType !== Qt.HARD ? (n == null || n.reportWarningOnce($.SOFT_LINK_BUILD, `${P.prettyLocator(i, t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`), []) : r && r.built === !1 ? (n == null || n.reportInfoOnce($.BUILD_DISABLED, `${P.prettyLocator(i, t)} lists build scripts, but its build has been explicitly disabled through configuration.`), []) : !i.get("enableScripts") && !r.built ? (n == null || n.reportWarningOnce($.DISABLED_BUILD_SCRIPTS, `${P.prettyLocator(i, t)} lists build scripts, but all build scripts have been disabled.`), []) : Ule(t, "build", {
            configuration: i,
            report: n
        }) ? s : []
    }

    var u5e = new Set([".exe", ".h", ".hh", ".hpp", ".c", ".cc", ".cpp", ".java", ".jar", ".node"]);

    function ZL(t) {
        return t.packageFs.getExtractHint({relevantExtensions: u5e})
    }

    function $L(t) {
        let e = x.join(t.prefixPath, "binding.gyp");
        return t.packageFs.existsSync(e)
    }

    var eT = {};
    ft(eT, {getUnpluggedPath: () => zm});

    function zm(t, {configuration: e}) {
        return x.resolve(e.get("pnpUnpluggedFolder"), P.slugifyLocator(t))
    }

    var g5e = new Set([P.makeIdent(null, "nan").identHash, P.makeIdent(null, "node-gyp").identHash, P.makeIdent(null, "node-pre-gyp").identHash, P.makeIdent(null, "node-addon-api").identHash, P.makeIdent(null, "fsevents").identHash]),
        vu = class {
            constructor() {
                this.mode = "strict";
                this.pnpCache = new Map
            }

            supportsPackage(e, r) {
                return this.isEnabled(r)
            }

            async findPackageLocation(e, r) {
                if (!this.isEnabled(r)) throw new Error("Assertion failed: Expected the PnP linker to be enabled");
                let i = Dl(r.project).cjs;
                if (!K.existsSync(i)) throw new Pe(`The project in ${Ae.pretty(r.project.configuration, `${r.project.cwd}/package.json`, Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);
                let n = ve.getFactoryWithDefault(this.pnpCache, i, () => ve.dynamicRequire(i, {cachingStrategy: ve.CachingStrategy.FsTime})),
                    s = {name: P.stringifyIdent(e), reference: e.reference}, o = n.getPackageInformation(s);
                if (!o) throw new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration, e)} in the currently installed PnP map - running an install might help`);
                return H.toPortablePath(o.packageLocation)
            }

            async findPackageLocator(e, r) {
                if (!this.isEnabled(r)) return null;
                let i = Dl(r.project).cjs;
                if (!K.existsSync(i)) return null;
                let s = ve.getFactoryWithDefault(this.pnpCache, i, () => ve.dynamicRequire(i, {cachingStrategy: ve.CachingStrategy.FsTime})).findPackageLocator(H.fromPortablePath(e));
                return s ? P.makeLocator(P.parseIdent(s.name), s.reference) : null
            }

            makeInstaller(e) {
                return new ah(e)
            }

            isEnabled(e) {
                return !(e.project.configuration.get("nodeLinker") !== "pnp" || e.project.configuration.get("pnpMode") !== this.mode)
            }
        }, ah = class {
            constructor(e) {
                this.opts = e;
                this.mode = "strict";
                this.asyncActions = new ve.AsyncActions(10);
                this.packageRegistry = new Map;
                this.virtualTemplates = new Map;
                this.isESMLoaderRequired = !1;
                this.customData = {store: new Map};
                this.unpluggedPaths = new Set;
                this.opts = e
            }

            getCustomDataKey() {
                return JSON.stringify({name: "PnpInstaller", version: 2})
            }

            attachCustomData(e) {
                this.customData = e
            }

            async installPackage(e, r, i) {
                let n = P.stringifyIdent(e), s = e.reference, o = !!this.opts.project.tryWorkspaceByLocator(e),
                    a = P.isVirtualLocator(e), l = e.peerDependencies.size > 0 && !a, c = !l && !o,
                    u = !l && e.linkType !== Qt.SOFT, g, f;
                if (c || u) {
                    let k = a ? P.devirtualizeLocator(e) : e;
                    g = this.customData.store.get(k.locatorHash), typeof g == "undefined" && (g = await f5e(r), e.linkType === Qt.HARD && this.customData.store.set(k.locatorHash, g)), g.manifest.type === "module" && (this.isESMLoaderRequired = !0), f = this.opts.project.getDependencyMeta(k, e.version)
                }
                let h = c ? hb(e, g, f, {configuration: this.opts.project.configuration, report: this.opts.report}) : [],
                    p = u ? await this.unplugPackageIfNeeded(e, g, r, f, i) : r.packageFs;
                if (x.isAbsolute(r.prefixPath)) throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);
                let m = x.resolve(p.getRealPath(), r.prefixPath), y = tT(this.opts.project.cwd, m), b = new Map,
                    S = new Set;
                if (a) {
                    for (let k of e.peerDependencies.values()) b.set(P.stringifyIdent(k), null), S.add(P.stringifyIdent(k));
                    if (!o) {
                        let k = P.devirtualizeLocator(e);
                        this.virtualTemplates.set(k.locatorHash, {
                            location: tT(this.opts.project.cwd, Wr.resolveVirtual(m)),
                            locator: k
                        })
                    }
                }
                return ve.getMapWithDefault(this.packageRegistry, n).set(s, {
                    packageLocation: y,
                    packageDependencies: b,
                    packagePeers: S,
                    linkType: e.linkType,
                    discardFromLookup: r.discardFromLookup || !1
                }), {packageLocation: m, buildDirective: h.length > 0 ? h : null}
            }

            async attachInternalDependencies(e, r) {
                let i = this.getPackageInformation(e);
                for (let [n, s] of r) {
                    let o = P.areIdentsEqual(n, s) ? s.reference : [P.stringifyIdent(s), s.reference];
                    i.packageDependencies.set(P.stringifyIdent(n), o)
                }
            }

            async attachExternalDependents(e, r) {
                for (let i of r) this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e), e.reference)
            }

            async finalizeInstall() {
                if (this.opts.project.configuration.get("pnpMode") !== this.mode) return;
                let e = Dl(this.opts.project);
                if (K.existsSync(e.cjsLegacy) && (this.opts.report.reportWarning($.UNNAMED, `Removing the old ${Ae.pretty(this.opts.project.configuration, Pt.pnpJs, Ae.Type.PATH)} file. You might need to manually update existing references to reference the new ${Ae.pretty(this.opts.project.configuration, Pt.pnpCjs, Ae.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${Ae.pretty(this.opts.project.configuration, "yarn sdks", Ae.Type.CODE)}.`), await K.removePromise(e.cjsLegacy)), this.isEsmEnabled() || await K.removePromise(e.esmLoader), this.opts.project.configuration.get("nodeLinker") !== "pnp") {
                    await K.removePromise(e.cjs), await K.removePromise(this.opts.project.configuration.get("pnpDataPath")), await K.removePromise(e.esmLoader);
                    return
                }
                for (let {
                    locator: u,
                    location: g
                } of this.virtualTemplates.values()) ve.getMapWithDefault(this.packageRegistry, P.stringifyIdent(u)).set(u.reference, {
                    packageLocation: g,
                    packageDependencies: new Map,
                    packagePeers: new Set,
                    linkType: Qt.SOFT,
                    discardFromLookup: !1
                });
                this.packageRegistry.set(null, new Map([[null, this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));
                let r = this.opts.project.configuration.get("pnpFallbackMode"),
                    i = this.opts.project.workspaces.map(({anchoredLocator: u}) => ({
                        name: P.stringifyIdent(u),
                        reference: u.reference
                    })), n = r !== "none", s = [], o = new Map,
                    a = ve.buildIgnorePattern([".yarn/sdks/**", ...this.opts.project.configuration.get("pnpIgnorePatterns")]),
                    l = this.packageRegistry, c = this.opts.project.configuration.get("pnpShebang");
                if (r === "dependencies-only") for (let u of this.opts.project.storedPackages.values()) this.opts.project.tryWorkspaceByLocator(u) && s.push({
                    name: P.stringifyIdent(u),
                    reference: u.reference
                });
                return await this.asyncActions.wait(), await this.finalizeInstallWithPnp({
                    dependencyTreeRoots: i,
                    enableTopLevelFallback: n,
                    fallbackExclusionList: s,
                    fallbackPool: o,
                    ignorePattern: a,
                    packageRegistry: l,
                    shebang: c
                }), {customData: this.customData}
            }

            async transformPnpSettings(e) {
            }

            isEsmEnabled() {
                if (this.opts.project.configuration.sources.has("pnpEnableEsmLoader")) return this.opts.project.configuration.get("pnpEnableEsmLoader");
                if (this.isESMLoaderRequired) return !0;
                for (let e of this.opts.project.workspaces) if (e.manifest.type === "module") return !0;
                return !1
            }

            async finalizeInstallWithPnp(e) {
                let r = Dl(this.opts.project), i = this.opts.project.configuration.get("pnpDataPath"),
                    n = await this.locateNodeModules(e.ignorePattern);
                if (n.length > 0) {
                    this.opts.report.reportWarning($.DANGEROUS_NODE_MODULES, "One or more node_modules have been detected and will be removed. This operation may take some time.");
                    for (let o of n) await K.removePromise(o)
                }
                if (await this.transformPnpSettings(e), this.opts.project.configuration.get("pnpEnableInlining")) {
                    let o = Ple(e);
                    await K.changeFilePromise(r.cjs, o, {automaticNewlines: !0, mode: 493}), await K.removePromise(i)
                } else {
                    let o = x.relative(x.dirname(r.cjs), i), {
                        dataFile: a,
                        loaderFile: l
                    } = Dle(ie(N({}, e), {dataLocation: o}));
                    await K.changeFilePromise(r.cjs, l, {
                        automaticNewlines: !0,
                        mode: 493
                    }), await K.changeFilePromise(i, a, {automaticNewlines: !0, mode: 420})
                }
                this.isEsmEnabled() && (this.opts.report.reportWarning($.UNNAMED, "ESM support for PnP uses the experimental loader API and is therefore experimental"), await K.changeFilePromise(r.esmLoader, (0, XL.default)(), {
                    automaticNewlines: !0,
                    mode: 420
                }));
                let s = this.opts.project.configuration.get("pnpUnpluggedFolder");
                if (this.unpluggedPaths.size === 0) await K.removePromise(s); else for (let o of await K.readdirPromise(s)) {
                    let a = x.resolve(s, o);
                    this.unpluggedPaths.has(a) || await K.removePromise(a)
                }
            }

            async locateNodeModules(e) {
                let r = [], i = e ? new RegExp(e) : null;
                for (let n of this.opts.project.workspaces) {
                    let s = x.join(n.cwd, "node_modules");
                    if (i && i.test(x.relative(this.opts.project.cwd, n.cwd)) || !K.existsSync(s)) continue;
                    let o = await K.readdirPromise(s, {withFileTypes: !0}),
                        a = o.filter(l => !l.isDirectory() || l.name === ".bin" || !l.name.startsWith("."));
                    if (a.length === o.length) r.push(s); else for (let l of a) r.push(x.join(s, l.name))
                }
                return r
            }

            async unplugPackageIfNeeded(e, r, i, n, s) {
                return this.shouldBeUnplugged(e, r, n) ? this.unplugPackage(e, i, s) : i.packageFs
            }

            shouldBeUnplugged(e, r, i) {
                return typeof i.unplugged != "undefined" ? i.unplugged : g5e.has(e.identHash) || e.conditions != null ? !0 : r.manifest.preferUnplugged !== null ? r.manifest.preferUnplugged : !!(hb(e, r, i, {configuration: this.opts.project.configuration}).length > 0 || r.misc.extractHint)
            }

            async unplugPackage(e, r, i) {
                let n = zm(e, {configuration: this.opts.project.configuration});
                return this.opts.project.disabledLocators.has(e.locatorHash) ? new Da(n, {
                    baseFs: r.packageFs,
                    pathUtils: x
                }) : (this.unpluggedPaths.add(n), i.holdFetchResult(this.asyncActions.set(e.locatorHash, async () => {
                    let s = x.join(n, r.prefixPath, ".ready");
                    await K.existsPromise(s) || (this.opts.project.storedBuildState.delete(e.locatorHash), await K.mkdirPromise(n, {recursive: !0}), await K.copyPromise(n, Ke.dot, {
                        baseFs: r.packageFs,
                        overwrite: !1
                    }), await K.writeFilePromise(s, ""))
                })), new _t(n))
            }

            getPackageInformation(e) {
                let r = P.stringifyIdent(e), i = e.reference, n = this.packageRegistry.get(r);
                if (!n) throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration, e)})`);
                let s = n.get(i);
                if (!s) throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration, e)})`);
                return s
            }

            getDiskInformation(e) {
                let r = ve.getMapWithDefault(this.packageRegistry, "@@disk"), i = tT(this.opts.project.cwd, e);
                return ve.getFactoryWithDefault(r, i, () => ({
                    packageLocation: i,
                    packageDependencies: new Map,
                    packagePeers: new Set,
                    linkType: Qt.SOFT,
                    discardFromLookup: !1
                }))
            }
        };

    function tT(t, e) {
        let r = x.relative(t, e);
        return r.match(/^\.{0,2}\//) || (r = `./${r}`), r.replace(/\/?$/, "/")
    }

    async function f5e(t) {
        var i;
        let e = (i = await At.tryFind(t.prefixPath, {baseFs: t.packageFs})) != null ? i : new At,
            r = new Set(["preinstall", "install", "postinstall"]);
        for (let n of e.scripts.keys()) r.has(n) || e.scripts.delete(n);
        return {
            manifest: {scripts: e.scripts, preferUnplugged: e.preferUnplugged, type: e.type},
            misc: {extractHint: ZL(t), hasBindingGyp: $L(t)}
        }
    }

    var Hle = ge(rs());
    var _m = class extends Le {
        constructor() {
            super(...arguments);
            this.all = W.Boolean("-A,--all", !1, {description: "Unplug direct dependencies from the entire project"});
            this.recursive = W.Boolean("-R,--recursive", !1, {description: "Unplug both direct and transitive dependencies"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.patterns = W.Rest()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            if (e.get("nodeLinker") !== "pnp") throw new Pe("This command can only be used if the `nodeLinker` option is set to `pnp`");
            await r.restoreInstallState();
            let s = new Set(this.patterns), o = this.patterns.map(f => {
                let h = P.parseDescriptor(f), p = h.range !== "unknown" ? h : P.makeDescriptor(h, "*");
                if (!Wt.validRange(p.range)) throw new Pe(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(e, p)})`);
                return m => {
                    let y = P.stringifyIdent(m);
                    return !Hle.default.isMatch(y, P.stringifyIdent(p)) || m.version && !Wt.satisfiesWithPrereleases(m.version, p.range) ? !1 : (s.delete(f), !0)
                }
            }), a = () => {
                let f = [];
                for (let h of r.storedPackages.values()) !r.tryWorkspaceByLocator(h) && !P.isVirtualLocator(h) && o.some(p => p(h)) && f.push(h);
                return f
            }, l = f => {
                let h = new Set, p = [], m = (y, b) => {
                    if (!h.has(y.locatorHash) && (h.add(y.locatorHash), !r.tryWorkspaceByLocator(y) && o.some(S => S(y)) && p.push(y), !(b > 0 && !this.recursive))) for (let S of y.dependencies.values()) {
                        let k = r.storedResolutions.get(S.descriptorHash);
                        if (!k) throw new Error("Assertion failed: The resolution should have been registered");
                        let T = r.storedPackages.get(k);
                        if (!T) throw new Error("Assertion failed: The package should have been registered");
                        m(T, b + 1)
                    }
                };
                for (let y of f) {
                    let b = r.storedPackages.get(y.anchoredLocator.locatorHash);
                    if (!b) throw new Error("Assertion failed: The package should have been registered");
                    m(b, 0)
                }
                return p
            }, c, u;
            if (this.all && this.recursive ? (c = a(), u = "the project") : this.all ? (c = l(r.workspaces), u = "any workspace") : (c = l([i]), u = "this workspace"), s.size > 1) throw new Pe(`Patterns ${Ae.prettyList(e, s, Ae.Type.CODE)} don't match any packages referenced by ${u}`);
            if (s.size > 0) throw new Pe(`Pattern ${Ae.prettyList(e, s, Ae.Type.CODE)} doesn't match any packages referenced by ${u}`);
            return c = ve.sortMap(c, f => P.stringifyLocator(f)), (await Je.start({
                configuration: e,
                stdout: this.context.stdout,
                json: this.json
            }, async f => {
                var h;
                for (let p of c) {
                    let m = (h = p.version) != null ? h : "unknown",
                        y = r.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(p, m));
                    y.unplugged = !0, f.reportInfo($.UNNAMED, `Will unpack ${P.prettyLocator(e, p)} to ${Ae.pretty(e, zm(p, {configuration: e}), Ae.Type.PATH)}`), f.reportJson({
                        locator: P.stringifyLocator(p),
                        version: m
                    })
                }
                await r.topLevelWorkspace.persistManifest(), f.reportSeparator(), await r.install({cache: n, report: f})
            })).exitCode()
        }
    };
    _m.paths = [["unplug"]], _m.usage = Re.Usage({
        description: "force the unpacking of a list of packages",
        details: "\n      This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n      A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n      Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n      By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n      This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n    ",
        examples: [["Unplug the lodash dependency from the active workspace", "yarn unplug lodash"], ["Unplug all instances of lodash referenced by any workspace", "yarn unplug lodash -A"], ["Unplug all instances of lodash referenced by the active workspace and its dependencies", "yarn unplug lodash -R"], ["Unplug all instances of lodash, anywhere", "yarn unplug lodash -AR"], ["Unplug one specific version of lodash", "yarn unplug lodash@1.2.3"], ["Unplug all packages with the `@babel` scope", "yarn unplug '@babel/*'"], ["Unplug all packages (only for testing, not recommended)", "yarn unplug -R '*'"]]
    });
    var Gle = _m;
    var Dl = t => ({
        cjs: x.join(t.cwd, Pt.pnpCjs),
        cjsLegacy: x.join(t.cwd, Pt.pnpJs),
        esmLoader: x.join(t.cwd, ".pnp.loader.mjs")
    }), qle = t => /\s/.test(t) ? JSON.stringify(t) : t;

    async function h5e(t, e, r) {
        let i = Dl(t), n = `--require ${qle(H.fromPortablePath(i.cjs))}`;
        if (K.existsSync(i.esmLoader) && (n = `${n} --experimental-loader ${(0, Yle.pathToFileURL)(H.fromPortablePath(i.esmLoader)).href}`), i.cjs.includes(" ") && jle.default.lt(process.versions.node, "12.0.0")) throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);
        if (K.existsSync(i.cjs)) {
            let s = e.NODE_OPTIONS || "", o = /\s*--require\s+\S*\.pnp\.c?js\s*/g,
                a = /\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;
            s = s.replace(o, " ").replace(a, " ").trim(), s = s ? `${n} ${s}` : n, e.NODE_OPTIONS = s
        }
    }

    async function p5e(t, e) {
        let r = Dl(t);
        e(r.cjs), e(r.esmLoader), e(t.configuration.get("pnpDataPath")), e(t.configuration.get("pnpUnpluggedFolder"))
    }

    var d5e = {
        hooks: {populateYarnPaths: p5e, setupScriptEnvironment: h5e}, configuration: {
            nodeLinker: {
                description: 'The linker used for installing Node packages, one of: "pnp", "node-modules"',
                type: ye.STRING,
                default: "pnp"
            },
            pnpMode: {
                description: "If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",
                type: ye.STRING,
                default: "strict"
            },
            pnpShebang: {
                description: "String to prepend to the generated PnP script",
                type: ye.STRING,
                default: "#!/usr/bin/env node"
            },
            pnpIgnorePatterns: {
                description: "Array of glob patterns; files matching them will use the classic resolution",
                type: ye.STRING,
                default: [],
                isArray: !0
            },
            pnpEnableEsmLoader: {
                description: "If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",
                type: ye.BOOLEAN,
                default: !1
            },
            pnpEnableInlining: {
                description: "If true, the PnP data will be inlined along with the generated loader",
                type: ye.BOOLEAN,
                default: !0
            },
            pnpFallbackMode: {
                description: "If true, the generated PnP loader will follow the top-level fallback rule",
                type: ye.STRING,
                default: "dependencies-only"
            },
            pnpUnpluggedFolder: {
                description: "Folder where the unplugged packages must be stored",
                type: ye.ABSOLUTE_PATH,
                default: "./.yarn/unplugged"
            },
            pnpDataPath: {
                description: "Path of the file where the PnP data (used by the loader) must be written",
                type: ye.ABSOLUTE_PATH,
                default: "./.pnp.data.json"
            }
        }, linkers: [vu], commands: [Gle]
    }, C5e = d5e;
    var Xle = ge(Vle());
    var aT = ge(require("crypto")), Zle = ge(require("fs")), $le = 1, Gr = "node_modules", pb = ".bin",
        ece = ".yarn-state.yml", Li;
    (function (i) {
        i.CLASSIC = "classic", i.HARDLINKS_LOCAL = "hardlinks-local", i.HARDLINKS_GLOBAL = "hardlinks-global"
    })(Li || (Li = {}));
    var AT = class {
        constructor() {
            this.installStateCache = new Map
        }

        supportsPackage(e, r) {
            return this.isEnabled(r)
        }

        async findPackageLocation(e, r) {
            if (!this.isEnabled(r)) throw new Error("Assertion failed: Expected the node-modules linker to be enabled");
            let i = r.project.tryWorkspaceByLocator(e);
            if (i) return i.cwd;
            let n = await ve.getFactoryWithDefault(this.installStateCache, r.project.cwd, async () => await lT(r.project, {unrollAliases: !0}));
            if (n === null) throw new Pe("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");
            let s = n.locatorMap.get(P.stringifyLocator(e));
            if (!s) {
                let a = new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration, e)} in the currently installed node_modules map - running an install might help`);
                throw a.code = "LOCATOR_NOT_INSTALLED", a
            }
            let o = r.project.configuration.startingCwd;
            return s.locations.find(a => x.contains(o, a)) || s.locations[0]
        }

        async findPackageLocator(e, r) {
            if (!this.isEnabled(r)) return null;
            let i = await ve.getFactoryWithDefault(this.installStateCache, r.project.cwd, async () => await lT(r.project, {unrollAliases: !0}));
            if (i === null) return null;
            let {locationRoot: n, segments: s} = db(x.resolve(e), {skipPrefix: r.project.cwd}),
                o = i.locationTree.get(n);
            if (!o) return null;
            let a = o.locator;
            for (let l of s) {
                if (o = o.children.get(l), !o) break;
                a = o.locator || a
            }
            return P.parseLocator(a)
        }

        makeInstaller(e) {
            return new tce(e)
        }

        isEnabled(e) {
            return e.project.configuration.get("nodeLinker") === "node-modules"
        }
    }, tce = class {
        constructor(e) {
            this.opts = e;
            this.localStore = new Map;
            this.realLocatorChecksums = new Map;
            this.customData = {store: new Map}
        }

        getCustomDataKey() {
            return JSON.stringify({name: "NodeModulesInstaller", version: 2})
        }

        attachCustomData(e) {
            this.customData = e
        }

        async installPackage(e, r) {
            var u;
            let i = x.resolve(r.packageFs.getRealPath(), r.prefixPath), n = this.customData.store.get(e.locatorHash);
            if (typeof n == "undefined" && (n = await N5e(e, r), e.linkType === Qt.HARD && this.customData.store.set(e.locatorHash, n)), !P.isPackageCompatible(e, this.opts.project.configuration.getSupportedArchitectures())) return {
                packageLocation: null,
                buildDirective: null
            };
            let s = new Map, o = new Set;
            s.has(P.stringifyIdent(e)) || s.set(P.stringifyIdent(e), e.reference);
            let a = e;
            if (P.isVirtualLocator(e)) {
                a = P.devirtualizeLocator(e);
                for (let g of e.peerDependencies.values()) s.set(P.stringifyIdent(g), null), o.add(P.stringifyIdent(g))
            }
            let l = {
                packageLocation: `${H.fromPortablePath(i)}/`,
                packageDependencies: s,
                packagePeers: o,
                linkType: e.linkType,
                discardFromLookup: (u = r.discardFromLookup) != null ? u : !1
            };
            this.localStore.set(e.locatorHash, {
                pkg: e,
                customPackageData: n,
                dependencyMeta: this.opts.project.getDependencyMeta(e, e.version),
                pnpNode: l
            });
            let c = r.checksum ? r.checksum.substring(r.checksum.indexOf("/") + 1) : null;
            return this.realLocatorChecksums.set(a.locatorHash, c), {packageLocation: i, buildDirective: null}
        }

        async attachInternalDependencies(e, r) {
            let i = this.localStore.get(e.locatorHash);
            if (typeof i == "undefined") throw new Error("Assertion failed: Expected information object to have been registered");
            for (let [n, s] of r) {
                let o = P.areIdentsEqual(n, s) ? s.reference : [P.stringifyIdent(s), s.reference];
                i.pnpNode.packageDependencies.set(P.stringifyIdent(n), o)
            }
        }

        async attachExternalDependents(e, r) {
            throw new Error("External dependencies haven't been implemented for the node-modules linker")
        }

        async finalizeInstall() {
            if (this.opts.project.configuration.get("nodeLinker") !== "node-modules") return;
            let e = new Wr({baseFs: new Es({libzip: await fn(), maxOpenFiles: 80, readOnlyArchives: !0})}),
                r = await lT(this.opts.project), i = this.opts.project.configuration.get("nmMode");
            (r === null || i !== r.nmMode) && (this.opts.project.storedBuildState.clear(), r = {
                locatorMap: new Map,
                binSymlinks: new Map,
                locationTree: new Map,
                nmMode: i,
                mtimeMs: 0
            });
            let n = new Map(this.opts.project.workspaces.map(f => {
                var p, m;
                let h = this.opts.project.configuration.get("nmHoistingLimits");
                try {
                    h = ve.validateEnum(Kn, (m = (p = f.manifest.installConfig) == null ? void 0 : p.hoistingLimits) != null ? m : h)
                } catch (y) {
                    let b = P.prettyWorkspace(this.opts.project.configuration, f);
                    this.opts.report.reportWarning($.INVALID_MANIFEST, `${b}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(Kn).join(", ")}, using default: "${h}"`)
                }
                return [f.relativeCwd, h]
            })), s = new Map(this.opts.project.workspaces.map(f => {
                var p, m;
                let h = this.opts.project.configuration.get("nmSelfReferences");
                return h = (m = (p = f.manifest.installConfig) == null ? void 0 : p.selfReferences) != null ? m : h, [f.relativeCwd, h]
            })), o = {
                VERSIONS: {std: 1},
                topLevel: {name: null, reference: null},
                getLocator: (f, h) => Array.isArray(h) ? {name: h[0], reference: h[1]} : {name: f, reference: h},
                getDependencyTreeRoots: () => this.opts.project.workspaces.map(f => {
                    let h = f.anchoredLocator;
                    return {name: P.stringifyIdent(f.locator), reference: h.reference}
                }),
                getPackageInformation: f => {
                    let h = f.reference === null ? this.opts.project.topLevelWorkspace.anchoredLocator : P.makeLocator(P.parseIdent(f.name), f.reference),
                        p = this.localStore.get(h.locatorHash);
                    if (typeof p == "undefined") throw new Error("Assertion failed: Expected the package reference to have been registered");
                    return p.pnpNode
                },
                findPackageLocator: f => {
                    let h = this.opts.project.tryWorkspaceByCwd(H.toPortablePath(f));
                    if (h !== null) {
                        let p = h.anchoredLocator;
                        return {name: P.stringifyIdent(p), reference: p.reference}
                    }
                    throw new Error("Assertion failed: Unimplemented")
                },
                resolveToUnqualified: () => {
                    throw new Error("Assertion failed: Unimplemented")
                },
                resolveUnqualified: () => {
                    throw new Error("Assertion failed: Unimplemented")
                },
                resolveRequest: () => {
                    throw new Error("Assertion failed: Unimplemented")
                },
                resolveVirtual: f => H.fromPortablePath(Wr.resolveVirtual(H.toPortablePath(f)))
            }, {tree: a, errors: l, preserveSymlinksRequired: c} = Ym(o, {
                pnpifyFs: !1,
                validateExternalSoftLinks: !0,
                hoistingLimitsByCwd: n,
                project: this.opts.project,
                selfReferencesByCwd: s
            });
            if (!a) {
                for (let {messageName: f, text: h} of l) this.opts.report.reportError(f, h);
                return
            }
            let u = YL(a);
            await L5e(r, u, {
                baseFs: e,
                project: this.opts.project,
                report: this.opts.report,
                realLocatorChecksums: this.realLocatorChecksums,
                loadManifest: async f => {
                    let h = P.parseLocator(f), p = this.localStore.get(h.locatorHash);
                    if (typeof p == "undefined") throw new Error("Assertion failed: Expected the slot to exist");
                    return p.customPackageData.manifest
                }
            });
            let g = [];
            for (let [f, h] of u.entries()) {
                if (rce(f)) continue;
                let p = P.parseLocator(f), m = this.localStore.get(p.locatorHash);
                if (typeof m == "undefined") throw new Error("Assertion failed: Expected the slot to exist");
                if (this.opts.project.tryWorkspaceByLocator(m.pkg)) continue;
                let y = ha.extractBuildScripts(m.pkg, m.customPackageData, m.dependencyMeta, {
                    configuration: this.opts.project.configuration,
                    report: this.opts.report
                });
                y.length !== 0 && g.push({buildLocations: h.locations, locatorHash: p.locatorHash, buildDirective: y})
            }
            return c && this.opts.report.reportWarning($.NM_PRESERVE_SYMLINKS_REQUIRED, `The application uses portals and that's why ${Ae.pretty(this.opts.project.configuration, "--preserve-symlinks", Ae.Type.CODE)} Node option is required for launching it`), {
                customData: this.customData,
                records: g
            }
        }
    };

    async function N5e(t, e) {
        var n;
        let r = (n = await At.tryFind(e.prefixPath, {baseFs: e.packageFs})) != null ? n : new At,
            i = new Set(["preinstall", "install", "postinstall"]);
        for (let s of r.scripts.keys()) i.has(s) || r.scripts.delete(s);
        return {
            manifest: {bin: r.bin, scripts: r.scripts},
            misc: {extractHint: ha.getExtractHint(e), hasBindingGyp: ha.hasBindingGyp(e)}
        }
    }

    async function T5e(t, e, r, i, {installChangedByUser: n}) {
        let s = "";
        s += `# Warning: This file is automatically generated. Removing it is fine, but will
`, s += `# cause your node_modules installation to become invalidated.
`, s += `
`, s += `__metadata:
`, s += `  version: ${$le}
`, s += `  nmMode: ${i.value}
`;
        let o = Array.from(e.keys()).sort(), a = P.stringifyLocator(t.topLevelWorkspace.anchoredLocator);
        for (let u of o) {
            let g = e.get(u);
            s += `
`, s += `${JSON.stringify(u)}:
`, s += `  locations:
`;
            for (let f of g.locations) {
                let h = x.contains(t.cwd, f);
                if (h === null) throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);
                s += `    - ${JSON.stringify(h)}
`
            }
            if (g.aliases.length > 0) {
                s += `  aliases:
`;
                for (let f of g.aliases) s += `    - ${JSON.stringify(f)}
`
            }
            if (u === a && r.size > 0) {
                s += `  bin:
`;
                for (let [f, h] of r) {
                    let p = x.contains(t.cwd, f);
                    if (p === null) throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);
                    s += `    ${JSON.stringify(p)}:
`;
                    for (let [m, y] of h) {
                        let b = x.relative(x.join(f, Gr), y);
                        s += `      ${JSON.stringify(m)}: ${JSON.stringify(b)}
`
                    }
                }
            }
        }
        let l = t.cwd, c = x.join(l, Gr, ece);
        n && await K.removePromise(c), await K.changeFilePromise(c, s, {automaticNewlines: !0})
    }

    async function lT(t, {unrollAliases: e = !1} = {}) {
        let r = t.cwd, i = x.join(r, Gr, ece), n;
        try {
            n = await K.statPromise(i)
        } catch (c) {
        }
        if (!n) return null;
        let s = Qi(await K.readFilePromise(i, "utf8"));
        if (s.__metadata.version > $le) return null;
        let o = s.__metadata.nmMode || Li.CLASSIC, a = new Map, l = new Map;
        delete s.__metadata;
        for (let [c, u] of Object.entries(s)) {
            let g = u.locations.map(h => x.join(r, h)), f = u.bin;
            if (f) for (let [h, p] of Object.entries(f)) {
                let m = x.join(r, H.toPortablePath(h)), y = ve.getMapWithDefault(l, m);
                for (let [b, S] of Object.entries(p)) y.set(Jr(b), H.toPortablePath([m, Gr, S].join(x.sep)))
            }
            if (a.set(c, {
                target: Ke.dot,
                linkType: Qt.HARD,
                locations: g,
                aliases: u.aliases || []
            }), e && u.aliases) for (let h of u.aliases) {
                let {scope: p, name: m} = P.parseLocator(c), y = P.makeLocator(P.makeIdent(p, m), h),
                    b = P.stringifyLocator(y);
                a.set(b, {target: Ke.dot, linkType: Qt.HARD, locations: g, aliases: []})
            }
        }
        return {locatorMap: a, binSymlinks: l, locationTree: ice(a, {skipPrefix: t.cwd}), nmMode: o, mtimeMs: n.mtimeMs}
    }

    var lh = async (t, e) => {
        if (t.split(x.sep).indexOf(Gr) < 0) throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);
        try {
            if (!e.innerLoop) {
                let i = e.allowSymlink ? await K.statPromise(t) : await K.lstatPromise(t);
                if (e.allowSymlink && !i.isDirectory() || !e.allowSymlink && i.isSymbolicLink()) {
                    await K.unlinkPromise(t);
                    return
                }
            }
            let r = await K.readdirPromise(t, {withFileTypes: !0});
            for (let i of r) {
                let n = x.join(t, Jr(i.name));
                i.isDirectory() ? (i.name !== Gr || e && e.innerLoop) && await lh(n, {
                    innerLoop: !0,
                    contentsOnly: !1
                }) : await K.unlinkPromise(n)
            }
            e.contentsOnly || await K.rmdirPromise(t)
        } catch (r) {
            if (r.code !== "ENOENT" && r.code !== "ENOTEMPTY") throw r
        }
    }, nce = 4, db = (t, {skipPrefix: e}) => {
        let r = x.contains(e, t);
        if (r === null) throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);
        let i = r.split(x.sep).filter(l => l !== ""), n = i.indexOf(Gr), s = i.slice(0, n).join(x.sep),
            o = x.join(e, s), a = i.slice(n);
        return {locationRoot: o, segments: a}
    }, ice = (t, {skipPrefix: e}) => {
        let r = new Map;
        if (t === null) return r;
        let i = () => ({children: new Map, linkType: Qt.HARD});
        for (let [n, s] of t.entries()) {
            if (s.linkType === Qt.SOFT && x.contains(e, s.target) !== null) {
                let a = ve.getFactoryWithDefault(r, s.target, i);
                a.locator = n, a.linkType = s.linkType
            }
            for (let o of s.locations) {
                let {locationRoot: a, segments: l} = db(o, {skipPrefix: e}), c = ve.getFactoryWithDefault(r, a, i);
                for (let u = 0; u < l.length; ++u) {
                    let g = l[u];
                    if (g !== ".") {
                        let f = ve.getFactoryWithDefault(c.children, g, i);
                        c.children.set(g, f), c = f
                    }
                    u === l.length - 1 && (c.locator = n, c.linkType = s.linkType)
                }
            }
        }
        return r
    }, cT = async (t, e) => {
        let r;
        try {
            process.platform === "win32" && (r = await K.lstatPromise(t))
        } catch (i) {
        }
        process.platform == "win32" && (!r || r.isDirectory()) ? await K.symlinkPromise(t, e, "junction") : await K.symlinkPromise(x.relative(x.dirname(e), t), e)
    };

    async function sce(t, e, r) {
        let i = x.join(t, Jr(`${aT.default.randomBytes(16).toString("hex")}.tmp`));
        try {
            await K.writeFilePromise(i, r);
            try {
                await K.linkPromise(i, e)
            } catch (n) {
            }
        } finally {
            await K.unlinkPromise(i)
        }
    }

    async function O5e({srcPath: t, dstPath: e, srcMode: r, globalHardlinksStore: i, baseFs: n, nmMode: s, digest: o}) {
        if (s.value === Li.HARDLINKS_GLOBAL && i && o) {
            let l = x.join(i, o.substring(0, 2), `${o.substring(2)}.dat`), c;
            try {
                if (await Dn.checksumFile(l, {baseFs: K, algorithm: "sha1"}) !== o) {
                    let g = x.join(i, Jr(`${aT.default.randomBytes(16).toString("hex")}.tmp`));
                    await K.renamePromise(l, g);
                    let f = await n.readFilePromise(t);
                    await K.writeFilePromise(g, f);
                    try {
                        await K.linkPromise(g, l), await K.unlinkPromise(g)
                    } catch (h) {
                    }
                }
                await K.linkPromise(l, e), c = !0
            } catch (u) {
                c = !1
            }
            if (!c) {
                let u = await n.readFilePromise(t);
                await sce(i, l, u);
                try {
                    await K.linkPromise(l, e)
                } catch (g) {
                    g && g.code && g.code == "EXDEV" && (s.value = Li.HARDLINKS_LOCAL, await n.copyFilePromise(t, e))
                }
            }
        } else await n.copyFilePromise(t, e);
        let a = r & 511;
        a !== 420 && await K.chmodPromise(e, a)
    }

    var Rl;
    (function (i) {
        i.FILE = "file", i.DIRECTORY = "directory", i.SYMLINK = "symlink"
    })(Rl || (Rl = {}));
    var M5e = async (t, e, {baseFs: r, globalHardlinksStore: i, nmMode: n, packageChecksum: s}) => {
        await K.mkdirPromise(t, {recursive: !0});
        let o = async (l = Ke.dot) => {
            let c = x.join(e, l), u = await r.readdirPromise(c, {withFileTypes: !0}), g = new Map;
            for (let f of u) {
                let h = x.join(l, f.name), p, m = x.join(c, f.name);
                if (f.isFile()) {
                    if (p = {kind: Rl.FILE, mode: (await r.lstatPromise(m)).mode}, n.value === Li.HARDLINKS_GLOBAL) {
                        let y = await Dn.checksumFile(m, {baseFs: r, algorithm: "sha1"});
                        p.digest = y
                    }
                } else if (f.isDirectory()) p = {kind: Rl.DIRECTORY}; else if (f.isSymbolicLink()) p = {
                    kind: Rl.SYMLINK,
                    symlinkTo: await r.readlinkPromise(m)
                }; else throw new Error(`Unsupported file type (file: ${m}, mode: 0o${await r.statSync(m).mode.toString(8).padStart(6, "0")})`);
                if (g.set(h, p), f.isDirectory() && h !== Gr) {
                    let y = await o(h);
                    for (let [b, S] of y) g.set(b, S)
                }
            }
            return g
        }, a;
        if (n.value === Li.HARDLINKS_GLOBAL && i && s) {
            let l = x.join(i, s.substring(0, 2), `${s.substring(2)}.json`);
            try {
                a = new Map(Object.entries(JSON.parse(await K.readFilePromise(l, "utf8"))))
            } catch (c) {
                a = await o(), await sce(i, l, Buffer.from(JSON.stringify(Object.fromEntries(a))))
            }
        } else a = await o();
        for (let [l, c] of a) {
            let u = x.join(e, l), g = x.join(t, l);
            c.kind === Rl.DIRECTORY ? await K.mkdirPromise(g, {recursive: !0}) : c.kind === Rl.FILE ? await O5e({
                srcPath: u,
                dstPath: g,
                srcMode: c.mode,
                digest: c.digest,
                nmMode: n,
                baseFs: r,
                globalHardlinksStore: i
            }) : c.kind === Rl.SYMLINK && await cT(x.resolve(x.dirname(g), c.symlinkTo), g)
        }
    };

    function K5e(t, e, r, i) {
        let n = new Map, s = new Map, o = new Map, a = !1, l = (c, u, g, f, h) => {
            let p = !0, m = x.join(c, u), y = new Set;
            if (u === Gr || u.startsWith("@")) {
                let S;
                try {
                    S = K.statSync(m)
                } catch (T) {
                }
                p = !!S, S ? S.mtimeMs > r ? (a = !0, y = new Set(K.readdirSync(m))) : y = new Set(g.children.get(u).children.keys()) : a = !0;
                let k = e.get(c);
                if (k) {
                    let T = x.join(c, Gr, pb), Y;
                    try {
                        Y = K.statSync(T)
                    } catch (j) {
                    }
                    if (!Y) a = !0; else if (Y.mtimeMs > r) {
                        a = !0;
                        let j = new Set(K.readdirSync(T)), Z = new Map;
                        s.set(c, Z);
                        for (let [J, re] of k) j.has(J) && Z.set(J, re)
                    } else s.set(c, k)
                }
            } else p = h.has(u);
            let b = g.children.get(u);
            if (p) {
                let {linkType: S, locator: k} = b, T = {children: new Map, linkType: S, locator: k};
                if (f.children.set(u, T), k) {
                    let Y = ve.getSetWithDefault(o, k);
                    Y.add(m), o.set(k, Y)
                }
                for (let Y of b.children.keys()) l(m, Y, b, T, y)
            } else b.locator && i.storedBuildState.delete(P.parseLocator(b.locator).locatorHash)
        };
        for (let [c, u] of t) {
            let {linkType: g, locator: f} = u, h = {children: new Map, linkType: g, locator: f};
            if (n.set(c, h), f) {
                let p = ve.getSetWithDefault(o, u.locator);
                p.add(c), o.set(u.locator, p)
            }
            u.children.has(Gr) && l(c, Gr, u, h, new Set)
        }
        return {locationTree: n, binSymlinks: s, locatorLocations: o, installChangedByUser: a}
    }

    function rce(t) {
        let e = P.parseDescriptor(t);
        return P.isVirtualDescriptor(e) && (e = P.devirtualizeDescriptor(e)), e.range.startsWith("link:")
    }

    async function U5e(t, e, r, {loadManifest: i}) {
        let n = new Map;
        for (let [a, {locations: l}] of t) {
            let c = rce(a) ? null : await i(a, l[0]), u = new Map;
            if (c) for (let [g, f] of c.bin) {
                let h = x.join(l[0], f);
                f !== "" && K.existsSync(h) && u.set(g, f)
            }
            n.set(a, u)
        }
        let s = new Map, o = (a, l, c) => {
            let u = new Map, g = x.contains(r, a);
            if (c.locator && g !== null) {
                let f = n.get(c.locator);
                for (let [h, p] of f) {
                    let m = x.join(a, H.toPortablePath(p));
                    u.set(Jr(h), m)
                }
                for (let [h, p] of c.children) {
                    let m = x.join(a, h), y = o(m, m, p);
                    y.size > 0 && s.set(a, new Map([...s.get(a) || new Map, ...y]))
                }
            } else for (let [f, h] of c.children) {
                let p = o(x.join(a, f), l, h);
                for (let [m, y] of p) u.set(m, y)
            }
            return u
        };
        for (let [a, l] of e) {
            let c = o(a, a, l);
            c.size > 0 && s.set(a, new Map([...s.get(a) || new Map, ...c]))
        }
        return s
    }

    var oce = (t, e) => {
        if (!t || !e) return t === e;
        let r = P.parseLocator(t);
        P.isVirtualLocator(r) && (r = P.devirtualizeLocator(r));
        let i = P.parseLocator(e);
        return P.isVirtualLocator(i) && (i = P.devirtualizeLocator(i)), P.areLocatorsEqual(r, i)
    };

    function uT(t) {
        return x.join(t.get("globalFolder"), "store")
    }

    async function L5e(t, e, {baseFs: r, project: i, report: n, loadManifest: s, realLocatorChecksums: o}) {
        let a = x.join(i.cwd, Gr), {
            locationTree: l,
            binSymlinks: c,
            locatorLocations: u,
            installChangedByUser: g
        } = K5e(t.locationTree, t.binSymlinks, t.mtimeMs, i), f = ice(e, {skipPrefix: i.cwd}), h = [], p = async ({
                                                                                                                      srcDir: J,
                                                                                                                      dstDir: re,
                                                                                                                      linkType: ee,
                                                                                                                      globalHardlinksStore: A,
                                                                                                                      nmMode: oe,
                                                                                                                      packageChecksum: le
                                                                                                                  }) => {
            let X = (async () => {
                try {
                    ee === Qt.SOFT ? (await K.mkdirPromise(x.dirname(re), {recursive: !0}), await cT(x.resolve(J), re)) : await M5e(re, J, {
                        baseFs: r,
                        globalHardlinksStore: A,
                        nmMode: oe,
                        packageChecksum: le
                    })
                } catch (O) {
                    throw O.message = `While persisting ${J} -> ${re} ${O.message}`, O
                } finally {
                    T.tick()
                }
            })().then(() => h.splice(h.indexOf(X), 1));
            h.push(X), h.length > nce && await Promise.race(h)
        }, m = async (J, re, ee) => {
            let A = (async () => {
                let oe = async (le, X, O) => {
                    try {
                        O.innerLoop || await K.mkdirPromise(X, {recursive: !0});
                        let L = await K.readdirPromise(le, {withFileTypes: !0});
                        for (let pe of L) {
                            if (!O.innerLoop && pe.name === pb) continue;
                            let Ce = x.join(le, pe.name), Oe = x.join(X, pe.name);
                            pe.isDirectory() ? (pe.name !== Gr || O && O.innerLoop) && (await K.mkdirPromise(Oe, {recursive: !0}), await oe(Ce, Oe, ie(N({}, O), {innerLoop: !0}))) : Z.value === Li.HARDLINKS_LOCAL || Z.value === Li.HARDLINKS_GLOBAL ? await K.linkPromise(Ce, Oe) : await K.copyFilePromise(Ce, Oe, Zle.default.constants.COPYFILE_FICLONE)
                        }
                    } catch (L) {
                        throw O.innerLoop || (L.message = `While cloning ${le} -> ${X} ${L.message}`), L
                    } finally {
                        O.innerLoop || T.tick()
                    }
                };
                await oe(J, re, ee)
            })().then(() => h.splice(h.indexOf(A), 1));
            h.push(A), h.length > nce && await Promise.race(h)
        }, y = async (J, re, ee) => {
            if (ee) for (let [A, oe] of re.children) {
                let le = ee.children.get(A);
                await y(x.join(J, A), oe, le)
            } else {
                re.children.has(Gr) && await lh(x.join(J, Gr), {contentsOnly: !1});
                let A = x.basename(J) === Gr && f.has(x.join(x.dirname(J), x.sep));
                await lh(J, {contentsOnly: J === a, allowSymlink: A})
            }
        };
        for (let [J, re] of l) {
            let ee = f.get(J);
            for (let [A, oe] of re.children) {
                if (A === ".") continue;
                let le = ee && ee.children.get(A), X = x.join(J, A);
                await y(X, oe, le)
            }
        }
        let b = async (J, re, ee) => {
            if (ee) {
                oce(re.locator, ee.locator) || await lh(J, {contentsOnly: re.linkType === Qt.HARD});
                for (let [A, oe] of re.children) {
                    let le = ee.children.get(A);
                    await b(x.join(J, A), oe, le)
                }
            } else {
                re.children.has(Gr) && await lh(x.join(J, Gr), {contentsOnly: !0});
                let A = x.basename(J) === Gr && f.has(x.join(x.dirname(J), x.sep));
                await lh(J, {contentsOnly: re.linkType === Qt.HARD, allowSymlink: A})
            }
        };
        for (let [J, re] of f) {
            let ee = l.get(J);
            for (let [A, oe] of re.children) {
                if (A === ".") continue;
                let le = ee && ee.children.get(A);
                await b(x.join(J, A), oe, le)
            }
        }
        let S = new Map, k = [];
        for (let [J, re] of u) for (let ee of re) {
            let {locationRoot: A, segments: oe} = db(ee, {skipPrefix: i.cwd}), le = f.get(A), X = A;
            if (le) {
                for (let O of oe) if (X = x.join(X, O), le = le.children.get(O), !le) break;
                if (le) {
                    let O = oce(le.locator, J), L = e.get(le.locator), pe = L.target, Ce = X, Oe = L.linkType;
                    if (O) S.has(pe) || S.set(pe, Ce); else if (pe !== Ce) {
                        let te = P.parseLocator(le.locator);
                        P.isVirtualLocator(te) && (te = P.devirtualizeLocator(te)), k.push({
                            srcDir: pe,
                            dstDir: Ce,
                            linkType: Oe,
                            realLocatorHash: te.locatorHash
                        })
                    }
                }
            }
        }
        for (let [J, {locations: re}] of e.entries()) for (let ee of re) {
            let {locationRoot: A, segments: oe} = db(ee, {skipPrefix: i.cwd}), le = l.get(A), X = f.get(A), O = A,
                L = e.get(J), pe = P.parseLocator(J);
            P.isVirtualLocator(pe) && (pe = P.devirtualizeLocator(pe));
            let Ce = pe.locatorHash, Oe = L.target, te = ee;
            if (Oe === te) continue;
            let se = L.linkType;
            for (let be of oe) X = X.children.get(be);
            if (!le) k.push({
                srcDir: Oe,
                dstDir: te,
                linkType: se,
                realLocatorHash: Ce
            }); else for (let be of oe) if (O = x.join(O, be), le = le.children.get(be), !le) {
                k.push({srcDir: Oe, dstDir: te, linkType: se, realLocatorHash: Ce});
                break
            }
        }
        let T = Ji.progressViaCounter(k.length), Y = n.reportProgress(T), j = i.configuration.get("nmMode"),
            Z = {value: j};
        try {
            let J = Z.value === Li.HARDLINKS_GLOBAL ? `${uT(i.configuration)}/v1` : null;
            if (J && !await K.existsPromise(J)) {
                await K.mkdirpPromise(J);
                for (let ee = 0; ee < 256; ee++) await K.mkdirPromise(x.join(J, ee.toString(16).padStart(2, "0")))
            }
            for (let ee of k) (ee.linkType === Qt.SOFT || !S.has(ee.srcDir)) && (S.set(ee.srcDir, ee.dstDir), await p(ie(N({}, ee), {
                globalHardlinksStore: J,
                nmMode: Z,
                packageChecksum: o.get(ee.realLocatorHash) || null
            })));
            await Promise.all(h), h.length = 0;
            for (let ee of k) {
                let A = S.get(ee.srcDir);
                ee.linkType !== Qt.SOFT && ee.dstDir !== A && await m(A, ee.dstDir, {nmMode: Z})
            }
            await Promise.all(h), await K.mkdirPromise(a, {recursive: !0});
            let re = await U5e(e, f, i.cwd, {loadManifest: s});
            await H5e(c, re, i.cwd), await T5e(i, e, re, Z, {installChangedByUser: g}), j == Li.HARDLINKS_GLOBAL && Z.value == Li.HARDLINKS_LOCAL && n.reportWarningOnce($.NM_HARDLINKS_MODE_DOWNGRADED, "'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")
        } finally {
            Y.stop()
        }
    }

    async function H5e(t, e, r) {
        for (let i of t.keys()) {
            if (x.contains(r, i) === null) throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);
            if (!e.has(i)) {
                let n = x.join(i, Gr, pb);
                await K.removePromise(n)
            }
        }
        for (let [i, n] of e) {
            if (x.contains(r, i) === null) throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);
            let s = x.join(i, Gr, pb), o = t.get(i) || new Map;
            await K.mkdirPromise(s, {recursive: !0});
            for (let a of o.keys()) n.has(a) || (await K.removePromise(x.join(s, a)), process.platform === "win32" && await K.removePromise(x.join(s, Jr(`${a}.cmd`))));
            for (let [a, l] of n) {
                let c = o.get(a), u = x.join(s, a);
                c !== l && (process.platform === "win32" ? await (0, Xle.default)(H.fromPortablePath(l), H.fromPortablePath(u), {createPwshFile: !1}) : (await K.removePromise(u), await cT(l, u), x.contains(r, await K.realpathPromise(l)) !== null && await K.chmodPromise(l, 493)))
            }
        }
    }

    var gT = class extends vu {
        constructor() {
            super(...arguments);
            this.mode = "loose"
        }

        makeInstaller(e) {
            return new ace(e)
        }
    }, ace = class extends ah {
        constructor() {
            super(...arguments);
            this.mode = "loose"
        }

        async transformPnpSettings(e) {
            let r = new Wr({baseFs: new Es({libzip: await fn(), maxOpenFiles: 80, readOnlyArchives: !0})}),
                i = Tle(e, this.opts.project.cwd, r), {tree: n, errors: s} = Ym(i, {
                    pnpifyFs: !1,
                    project: this.opts.project
                });
            if (!n) {
                for (let {messageName: u, text: g} of s) this.opts.report.reportError(u, g);
                return
            }
            let o = new Map;
            e.fallbackPool = o;
            let a = (u, g) => {
                let f = P.parseLocator(g.locator), h = P.stringifyIdent(f);
                h === u ? o.set(u, f.reference) : o.set(u, [h, f.reference])
            }, l = x.join(this.opts.project.cwd, Pt.nodeModules), c = n.get(l);
            if (typeof c != "undefined") {
                if ("target" in c) throw new Error("Assertion failed: Expected the root junction point to be a directory");
                for (let u of c.dirList) {
                    let g = x.join(l, u), f = n.get(g);
                    if (typeof f == "undefined") throw new Error("Assertion failed: Expected the child to have been registered");
                    if ("target" in f) a(u, f); else for (let h of f.dirList) {
                        let p = x.join(g, h), m = n.get(p);
                        if (typeof m == "undefined") throw new Error("Assertion failed: Expected the subchild to have been registered");
                        if ("target" in m) a(`${u}/${h}`, m); else throw new Error("Assertion failed: Expected the leaf junction to be a package")
                    }
                }
            }
        }
    };
    var G5e = {
        hooks: {
            cleanGlobalArtifacts: async t => {
                let e = uT(t);
                await K.removePromise(e)
            }
        },
        configuration: {
            nmHoistingLimits: {
                description: "Prevent packages to be hoisted past specific levels",
                type: ye.STRING,
                values: [Kn.WORKSPACES, Kn.DEPENDENCIES, Kn.NONE],
                default: Kn.NONE
            },
            nmMode: {
                description: 'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',
                type: ye.STRING,
                values: [Li.CLASSIC, Li.HARDLINKS_LOCAL, Li.HARDLINKS_GLOBAL],
                default: Li.CLASSIC
            },
            nmSelfReferences: {
                description: "If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",
                type: ye.BOOLEAN,
                default: !0
            }
        },
        linkers: [AT, gT]
    }, j5e = G5e;
    var gO = {};
    ft(gO, {default: () => XVe, npmConfigUtils: () => br, npmHttpUtils: () => zt, npmPublishUtils: () => Bh});
    var gce = ge(ri());
    var Cr = "npm:";
    var zt = {};
    ft(zt, {
        AuthType: () => cs,
        customPackageError: () => J5e,
        del: () => _5e,
        get: () => Bo,
        getIdentUrl: () => Nl,
        handleInvalidAuthenticationError: () => Fl,
        post: () => W5e,
        put: () => z5e
    });
    var cce = ge(em()), uce = ge(require("url"));
    var br = {};
    ft(br, {
        RegistryType: () => wA,
        getAuditRegistry: () => Y5e,
        getAuthConfiguration: () => pT,
        getDefaultRegistry: () => Cb,
        getPublishRegistry: () => Ace,
        getRegistryConfiguration: () => lce,
        getScopeConfiguration: () => hT,
        getScopeRegistry: () => BA,
        normalizeRegistry: () => pa
    });
    var wA;
    (function (i) {
        i.AUDIT_REGISTRY = "npmAuditRegistry", i.FETCH_REGISTRY = "npmRegistryServer", i.PUBLISH_REGISTRY = "npmPublishRegistry"
    })(wA || (wA = {}));

    function pa(t) {
        return t.replace(/\/$/, "")
    }

    function Y5e(t, {configuration: e}) {
        let r = e.get(wA.AUDIT_REGISTRY);
        return r !== null ? pa(r) : Ace(t, {configuration: e})
    }

    function Ace(t, {configuration: e}) {
        var r;
        return ((r = t.publishConfig) == null ? void 0 : r.registry) ? pa(t.publishConfig.registry) : t.name ? BA(t.name.scope, {
            configuration: e,
            type: wA.PUBLISH_REGISTRY
        }) : Cb({configuration: e, type: wA.PUBLISH_REGISTRY})
    }

    function BA(t, {configuration: e, type: r = wA.FETCH_REGISTRY}) {
        let i = hT(t, {configuration: e});
        if (i === null) return Cb({configuration: e, type: r});
        let n = i.get(r);
        return n === null ? Cb({configuration: e, type: r}) : pa(n)
    }

    function Cb({configuration: t, type: e = wA.FETCH_REGISTRY}) {
        let r = t.get(e);
        return pa(r !== null ? r : t.get(wA.FETCH_REGISTRY))
    }

    function lce(t, {configuration: e}) {
        let r = e.get("npmRegistries"), i = pa(t), n = r.get(i);
        if (typeof n != "undefined") return n;
        let s = r.get(i.replace(/^[a-z]+:/, ""));
        return typeof s != "undefined" ? s : null
    }

    function hT(t, {configuration: e}) {
        if (t === null) return null;
        let i = e.get("npmScopes").get(t);
        return i || null
    }

    function pT(t, {configuration: e, ident: r}) {
        let i = r && hT(r.scope, {configuration: e});
        return (i == null ? void 0 : i.get("npmAuthIdent")) || (i == null ? void 0 : i.get("npmAuthToken")) ? i : lce(t, {configuration: e}) || e
    }

    var cs;
    (function (n) {
        n[n.NO_AUTH = 0] = "NO_AUTH", n[n.BEST_EFFORT = 1] = "BEST_EFFORT", n[n.CONFIGURATION = 2] = "CONFIGURATION", n[n.ALWAYS_AUTH = 3] = "ALWAYS_AUTH"
    })(cs || (cs = {}));

    async function Fl(t, {attemptedAs: e, registry: r, headers: i, configuration: n}) {
        var s, o;
        if (mb(t)) throw new ct($.AUTHENTICATION_INVALID, "Invalid OTP token");
        if (((s = t.originalError) == null ? void 0 : s.name) === "HTTPError" && ((o = t.originalError) == null ? void 0 : o.response.statusCode) === 401) throw new ct($.AUTHENTICATION_INVALID, `Invalid authentication (${typeof e != "string" ? `as ${await q5e(r, i, {configuration: n})}` : `attempted as ${e}`})`)
    }

    function J5e(t) {
        var e;
        return ((e = t.response) == null ? void 0 : e.statusCode) === 404 ? "Package not found" : null
    }

    function Nl(t) {
        return t.scope ? `/@${t.scope}%2f${t.name}` : `/${t.name}`
    }

    async function Bo(t, a) {
        var l = a, {configuration: e, headers: r, ident: i, authType: n, registry: s} = l,
            o = Tr(l, ["configuration", "headers", "ident", "authType", "registry"]);
        if (i && typeof s == "undefined" && (s = BA(i.scope, {configuration: e})), i && i.scope && typeof n == "undefined" && (n = 1), typeof s != "string") throw new Error("Assertion failed: The registry should be a string");
        let c = await Eb(s, {authType: n, configuration: e, ident: i});
        c && (r = ie(N({}, r), {authorization: c}));
        try {
            return await ir.get(t.charAt(0) === "/" ? `${s}${t}` : t, N({configuration: e, headers: r}, o))
        } catch (u) {
            throw await Fl(u, {registry: s, configuration: e, headers: r}), u
        }
    }

    async function W5e(t, e, u) {
        var g = u, {attemptedAs: r, configuration: i, headers: n, ident: s, authType: o = 3, registry: a, otp: l} = g,
            c = Tr(g, ["attemptedAs", "configuration", "headers", "ident", "authType", "registry", "otp"]);
        if (s && typeof a == "undefined" && (a = BA(s.scope, {configuration: i})), typeof a != "string") throw new Error("Assertion failed: The registry should be a string");
        let f = await Eb(a, {authType: o, configuration: i, ident: s});
        f && (n = ie(N({}, n), {authorization: f})), l && (n = N(N({}, n), ch(l)));
        try {
            return await ir.post(a + t, e, N({configuration: i, headers: n}, c))
        } catch (h) {
            if (!mb(h) || l) throw await Fl(h, {attemptedAs: r, registry: a, configuration: i, headers: n}), h;
            l = await dT();
            let p = N(N({}, n), ch(l));
            try {
                return await ir.post(`${a}${t}`, e, N({configuration: i, headers: p}, c))
            } catch (m) {
                throw await Fl(m, {attemptedAs: r, registry: a, configuration: i, headers: n}), m
            }
        }
    }

    async function z5e(t, e, u) {
        var g = u, {attemptedAs: r, configuration: i, headers: n, ident: s, authType: o = 3, registry: a, otp: l} = g,
            c = Tr(g, ["attemptedAs", "configuration", "headers", "ident", "authType", "registry", "otp"]);
        if (s && typeof a == "undefined" && (a = BA(s.scope, {configuration: i})), typeof a != "string") throw new Error("Assertion failed: The registry should be a string");
        let f = await Eb(a, {authType: o, configuration: i, ident: s});
        f && (n = ie(N({}, n), {authorization: f})), l && (n = N(N({}, n), ch(l)));
        try {
            return await ir.put(a + t, e, N({configuration: i, headers: n}, c))
        } catch (h) {
            if (!mb(h)) throw await Fl(h, {attemptedAs: r, registry: a, configuration: i, headers: n}), h;
            l = await dT();
            let p = N(N({}, n), ch(l));
            try {
                return await ir.put(`${a}${t}`, e, N({configuration: i, headers: p}, c))
            } catch (m) {
                throw await Fl(m, {attemptedAs: r, registry: a, configuration: i, headers: n}), m
            }
        }
    }

    async function _5e(t, c) {
        var u = c, {attemptedAs: e, configuration: r, headers: i, ident: n, authType: s = 3, registry: o, otp: a} = u,
            l = Tr(u, ["attemptedAs", "configuration", "headers", "ident", "authType", "registry", "otp"]);
        if (n && typeof o == "undefined" && (o = BA(n.scope, {configuration: r})), typeof o != "string") throw new Error("Assertion failed: The registry should be a string");
        let g = await Eb(o, {authType: s, configuration: r, ident: n});
        g && (i = ie(N({}, i), {authorization: g})), a && (i = N(N({}, i), ch(a)));
        try {
            return await ir.del(o + t, N({configuration: r, headers: i}, l))
        } catch (f) {
            if (!mb(f) || a) throw await Fl(f, {attemptedAs: e, registry: o, configuration: r, headers: i}), f;
            a = await dT();
            let h = N(N({}, i), ch(a));
            try {
                return await ir.del(`${o}${t}`, N({configuration: r, headers: h}, l))
            } catch (p) {
                throw await Fl(p, {attemptedAs: e, registry: o, configuration: r, headers: i}), p
            }
        }
    }

    async function Eb(t, {authType: e = 2, configuration: r, ident: i}) {
        let n = pT(t, {configuration: r, ident: i}), s = V5e(n, e);
        if (!s) return null;
        let o = await r.reduceHook(a => a.getNpmAuthenticationHeader, void 0, t, {configuration: r, ident: i});
        if (o) return o;
        if (n.get("npmAuthToken")) return `Bearer ${n.get("npmAuthToken")}`;
        if (n.get("npmAuthIdent")) {
            let a = n.get("npmAuthIdent");
            return a.includes(":") ? `Basic ${Buffer.from(a).toString("base64")}` : `Basic ${a}`
        }
        if (s && e !== 1) throw new ct($.AUTHENTICATION_NOT_FOUND, "No authentication configured for request");
        return null
    }

    function V5e(t, e) {
        switch (e) {
            case 2:
                return t.get("npmAlwaysAuth");
            case 1:
            case 3:
                return !0;
            case 0:
                return !1;
            default:
                throw new Error("Unreachable")
        }
    }

    async function q5e(t, e, {configuration: r}) {
        var i;
        if (typeof e == "undefined" || typeof e.authorization == "undefined") return "an anonymous user";
        try {
            return (i = (await ir.get(new uce.URL(`${t}/-/whoami`).href, {
                configuration: r,
                headers: e,
                jsonResponse: !0
            })).username) != null ? i : "an unknown user"
        } catch {
            return "an unknown user"
        }
    }

    async function dT() {
        if (process.env.TEST_ENV) return process.env.TEST_NPM_2FA_TOKEN || "";
        let {otp: t} = await (0, cce.prompt)({
            type: "password",
            name: "otp",
            message: "One-time password:",
            required: !0,
            onCancel: () => process.exit(130)
        });
        return t
    }

    function mb(t) {
        var e, r;
        if (((e = t.originalError) == null ? void 0 : e.name) !== "HTTPError") return !1;
        try {
            return ((r = t.originalError) == null ? void 0 : r.response.headers["www-authenticate"].split(/,\s*/).map(n => n.toLowerCase())).includes("otp")
        } catch (i) {
            return !1
        }
    }

    function ch(t) {
        return {["npm-otp"]: t}
    }

    var CT = class {
        supports(e, r) {
            if (!e.reference.startsWith(Cr)) return !1;
            let {selector: i, params: n} = P.parseRange(e.reference);
            return !(!gce.default.valid(i) || n === null || typeof n.__archiveUrl != "string")
        }

        getLocalPath(e, r) {
            return null
        }

        async fetch(e, r) {
            let i = r.checksums.get(e.locatorHash) || null, [n, s, o] = await r.cache.fetchPackageFromCache(e, i, N({
                onHit: () => r.report.reportCacheHit(e),
                onMiss: () => r.report.reportCacheMiss(e, `${P.prettyLocator(r.project.configuration, e)} can't be found in the cache and will be fetched from the remote server`),
                loader: () => this.fetchFromNetwork(e, r),
                skipIntegrityCheck: r.skipIntegrityCheck
            }, r.cacheOptions));
            return {packageFs: n, releaseFs: s, prefixPath: P.getIdentVendorPath(e), checksum: o}
        }

        async fetchFromNetwork(e, r) {
            let {params: i} = P.parseRange(e.reference);
            if (i === null || typeof i.__archiveUrl != "string") throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");
            let n = await Bo(i.__archiveUrl, {configuration: r.project.configuration, ident: e});
            return await wi.convertToZip(n, {
                compressionLevel: r.project.configuration.get("compressionLevel"),
                prefixPath: P.getIdentVendorPath(e),
                stripComponents: 1
            })
        }
    };
    var mT = class {
        supportsDescriptor(e, r) {
            return !(!e.range.startsWith(Cr) || !P.tryParseDescriptor(e.range.slice(Cr.length), !0))
        }

        supportsLocator(e, r) {
            return !1
        }

        shouldPersistResolution(e, r) {
            throw new Error("Unreachable")
        }

        bindDescriptor(e, r, i) {
            return e
        }

        getResolutionDependencies(e, r) {
            let i = P.parseDescriptor(e.range.slice(Cr.length), !0);
            return r.resolver.getResolutionDependencies(i, r)
        }

        async getCandidates(e, r, i) {
            let n = P.parseDescriptor(e.range.slice(Cr.length), !0);
            return await i.resolver.getCandidates(n, r, i)
        }

        async getSatisfying(e, r, i) {
            let n = P.parseDescriptor(e.range.slice(Cr.length), !0);
            return i.resolver.getSatisfying(n, r, i)
        }

        resolve(e, r) {
            throw new Error("Unreachable")
        }
    };
    var fce = ge(ri()), hce = ge(require("url"));
    var bo = class {
        supports(e, r) {
            if (!e.reference.startsWith(Cr)) return !1;
            let i = new hce.URL(e.reference);
            return !(!fce.default.valid(i.pathname) || i.searchParams.has("__archiveUrl"))
        }

        getLocalPath(e, r) {
            return null
        }

        async fetch(e, r) {
            let i = r.checksums.get(e.locatorHash) || null, [n, s, o] = await r.cache.fetchPackageFromCache(e, i, N({
                onHit: () => r.report.reportCacheHit(e),
                onMiss: () => r.report.reportCacheMiss(e, `${P.prettyLocator(r.project.configuration, e)} can't be found in the cache and will be fetched from the remote registry`),
                loader: () => this.fetchFromNetwork(e, r),
                skipIntegrityCheck: r.skipIntegrityCheck
            }, r.cacheOptions));
            return {packageFs: n, releaseFs: s, prefixPath: P.getIdentVendorPath(e), checksum: o}
        }

        async fetchFromNetwork(e, r) {
            let i;
            try {
                i = await Bo(bo.getLocatorUrl(e), {configuration: r.project.configuration, ident: e})
            } catch (n) {
                i = await Bo(bo.getLocatorUrl(e).replace(/%2f/g, "/"), {
                    configuration: r.project.configuration,
                    ident: e
                })
            }
            return await wi.convertToZip(i, {
                compressionLevel: r.project.configuration.get("compressionLevel"),
                prefixPath: P.getIdentVendorPath(e),
                stripComponents: 1
            })
        }

        static isConventionalTarballUrl(e, r, {configuration: i}) {
            let n = BA(e.scope, {configuration: i}), s = bo.getLocatorUrl(e);
            return r = r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/, "https:$1"), n = n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/, "https://registry.yarnpkg.com$1"), r = r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/, "https://registry.yarnpkg.com$1"), r === n + s || r === n + s.replace(/%2f/g, "/")
        }

        static getLocatorUrl(e) {
            let r = Wt.clean(e.reference.slice(Cr.length));
            if (r === null) throw new ct($.RESOLVER_NOT_FOUND, "The npm semver resolver got selected, but the version isn't semver");
            return `${Nl(e)}/-/${e.name}-${r}.tgz`
        }
    };
    var pce = ge(ri());
    var Ib = P.makeIdent(null, "node-gyp"), X5e = /\b(node-gyp|prebuild-install)\b/, ET = class {
        supportsDescriptor(e, r) {
            return e.range.startsWith(Cr) ? !!Wt.validRange(e.range.slice(Cr.length)) : !1
        }

        supportsLocator(e, r) {
            if (!e.reference.startsWith(Cr)) return !1;
            let {selector: i} = P.parseRange(e.reference);
            return !!pce.default.valid(i)
        }

        shouldPersistResolution(e, r) {
            return !0
        }

        bindDescriptor(e, r, i) {
            return e
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            let n = Wt.validRange(e.range.slice(Cr.length));
            if (n === null) throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);
            let s = await Bo(Nl(e), {configuration: i.project.configuration, ident: e, jsonResponse: !0}),
                o = ve.mapAndFilter(Object.keys(s.versions), c => {
                    try {
                        let u = new Wt.SemVer(c);
                        if (n.test(u)) return u
                    } catch {
                    }
                    return ve.mapAndFilter.skip
                }), a = o.filter(c => !s.versions[c.raw].deprecated), l = a.length > 0 ? a : o;
            return l.sort((c, u) => -c.compare(u)), l.map(c => {
                let u = P.makeLocator(e, `${Cr}${c.raw}`), g = s.versions[c.raw].dist.tarball;
                return bo.isConventionalTarballUrl(u, g, {configuration: i.project.configuration}) ? u : P.bindLocator(u, {__archiveUrl: g})
            })
        }

        async getSatisfying(e, r, i) {
            let n = Wt.validRange(e.range.slice(Cr.length));
            if (n === null) throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);
            return ve.mapAndFilter(r, s => {
                try {
                    let {selector: o} = P.parseRange(s, {requireProtocol: Cr}), a = new Wt.SemVer(o);
                    if (n.test(a)) return {reference: s, version: a}
                } catch {
                }
                return ve.mapAndFilter.skip
            }).sort((s, o) => -s.version.compare(o.version)).map(({reference: s}) => P.makeLocator(e, s))
        }

        async resolve(e, r) {
            let {selector: i} = P.parseRange(e.reference), n = Wt.clean(i);
            if (n === null) throw new ct($.RESOLVER_NOT_FOUND, "The npm semver resolver got selected, but the version isn't semver");
            let s = await Bo(Nl(e), {configuration: r.project.configuration, ident: e, jsonResponse: !0});
            if (!Object.prototype.hasOwnProperty.call(s, "versions")) throw new ct($.REMOTE_INVALID, 'Registry returned invalid data for - missing "versions" field');
            if (!Object.prototype.hasOwnProperty.call(s.versions, n)) throw new ct($.REMOTE_NOT_FOUND, `Registry failed to return reference "${n}"`);
            let o = new At;
            if (o.load(s.versions[n]), !o.dependencies.has(Ib.identHash) && !o.peerDependencies.has(Ib.identHash)) {
                for (let a of o.scripts.values()) if (a.match(X5e)) {
                    o.dependencies.set(Ib.identHash, P.makeDescriptor(Ib, "latest")), r.report.reportWarningOnce($.NODE_GYP_INJECTED, `${P.prettyLocator(r.project.configuration, e)}: Implicit dependencies on node-gyp are discouraged`);
                    break
                }
            }
            if (typeof o.raw.deprecated == "string" && o.raw.deprecated !== "") {
                let a = P.prettyLocator(r.project.configuration, e),
                    l = o.raw.deprecated.match(/\S/) ? `${a} is deprecated: ${o.raw.deprecated}` : `${a} is deprecated`;
                r.report.reportWarningOnce($.DEPRECATED_PACKAGE, l)
            }
            return ie(N({}, e), {
                version: n,
                languageName: "node",
                linkType: Qt.HARD,
                conditions: o.getConditions(),
                dependencies: o.dependencies,
                peerDependencies: o.peerDependencies,
                dependenciesMeta: o.dependenciesMeta,
                peerDependenciesMeta: o.peerDependenciesMeta,
                bin: o.bin
            })
        }
    };
    var IT = class {
        supportsDescriptor(e, r) {
            return !(!e.range.startsWith(Cr) || !qg.test(e.range.slice(Cr.length)))
        }

        supportsLocator(e, r) {
            return !1
        }

        shouldPersistResolution(e, r) {
            throw new Error("Unreachable")
        }

        bindDescriptor(e, r, i) {
            return e
        }

        getResolutionDependencies(e, r) {
            return []
        }

        async getCandidates(e, r, i) {
            let n = e.range.slice(Cr.length),
                s = await Bo(Nl(e), {configuration: i.project.configuration, ident: e, jsonResponse: !0});
            if (!Object.prototype.hasOwnProperty.call(s, "dist-tags")) throw new ct($.REMOTE_INVALID, 'Registry returned invalid data - missing "dist-tags" field');
            let o = s["dist-tags"];
            if (!Object.prototype.hasOwnProperty.call(o, n)) throw new ct($.REMOTE_NOT_FOUND, `Registry failed to return tag "${n}"`);
            let a = o[n], l = P.makeLocator(e, `${Cr}${a}`), c = s.versions[a].dist.tarball;
            return bo.isConventionalTarballUrl(l, c, {configuration: i.project.configuration}) ? [l] : [P.bindLocator(l, {__archiveUrl: c})]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            throw new Error("Unreachable")
        }
    };
    var Bh = {};
    ft(Bh, {getGitHead: () => _Ve, makePublishBody: () => zVe});
    var AO = {};
    ft(AO, {default: () => PVe, packUtils: () => SA});
    var SA = {};
    ft(SA, {
        genPackList: () => Gb,
        genPackStream: () => aO,
        genPackageManifest: () => jue,
        hasPackScripts: () => sO,
        prepareForPack: () => oO
    });
    var nO = ge(rs()), Hue = ge(Uue()), Gue = ge(require("zlib")),
        EVe = ["/package.json", "/readme", "/readme.*", "/license", "/license.*", "/licence", "/licence.*", "/changelog", "/changelog.*"],
        IVe = ["/package.tgz", ".github", ".git", ".hg", "node_modules", ".npmignore", ".gitignore", ".#*", ".DS_Store"];

    async function sO(t) {
        return !!(Zt.hasWorkspaceScript(t, "prepack") || Zt.hasWorkspaceScript(t, "postpack"))
    }

    async function oO(t, {report: e}, r) {
        await Zt.maybeExecuteWorkspaceLifecycleScript(t, "prepack", {report: e});
        try {
            let i = x.join(t.cwd, At.fileName);
            await K.existsPromise(i) && await t.manifest.loadFile(i, {baseFs: K}), await r()
        } finally {
            await Zt.maybeExecuteWorkspaceLifecycleScript(t, "postpack", {report: e})
        }
    }

    async function aO(t, e) {
        var s, o;
        typeof e == "undefined" && (e = await Gb(t));
        let r = new Set;
        for (let a of (o = (s = t.manifest.publishConfig) == null ? void 0 : s.executableFiles) != null ? o : new Set) r.add(x.normalize(a));
        for (let a of t.manifest.bin.values()) r.add(x.normalize(a));
        let i = Hue.default.pack();
        process.nextTick(async () => {
            for (let a of e) {
                let l = x.normalize(a), c = x.resolve(t.cwd, l), u = x.join("package", l), g = await K.lstatPromise(c),
                    f = {name: u, mtime: new Date(Dr.SAFE_TIME * 1e3)}, h = r.has(l) ? 493 : 420, p, m,
                    y = new Promise((S, k) => {
                        p = S, m = k
                    }), b = S => {
                        S ? m(S) : p()
                    };
                if (g.isFile()) {
                    let S;
                    l === "package.json" ? S = Buffer.from(JSON.stringify(await jue(t), null, 2)) : S = await K.readFilePromise(c), i.entry(ie(N({}, f), {
                        mode: h,
                        type: "file"
                    }), S, b)
                } else g.isSymbolicLink() ? i.entry(ie(N({}, f), {
                    mode: h,
                    type: "symlink",
                    linkname: await K.readlinkPromise(c)
                }), b) : b(new Error(`Unsupported file type ${g.mode} for ${H.fromPortablePath(l)}`));
                await y
            }
            i.finalize()
        });
        let n = (0, Gue.createGzip)();
        return i.pipe(n), n
    }

    async function jue(t) {
        let e = JSON.parse(JSON.stringify(t.manifest.raw));
        return await t.project.configuration.triggerHook(r => r.beforeWorkspacePacking, t, e), e
    }

    async function Gb(t) {
        var g, f, h, p, m, y, b, S;
        let e = t.project, r = e.configuration, i = {accept: [], reject: []};
        for (let k of IVe) i.reject.push(k);
        for (let k of EVe) i.accept.push(k);
        i.reject.push(r.get("rcFilename"));
        let n = k => {
            if (k === null || !k.startsWith(`${t.cwd}/`)) return;
            let T = x.relative(t.cwd, k), Y = x.resolve(Ke.root, T);
            i.reject.push(Y)
        };
        n(x.resolve(e.cwd, r.get("lockfileFilename"))), n(r.get("cacheFolder")), n(r.get("globalFolder")), n(r.get("installStatePath")), n(r.get("virtualFolder")), n(r.get("yarnPath")), await r.triggerHook(k => k.populateYarnPaths, e, k => {
            n(k)
        });
        for (let k of e.workspaces) {
            let T = x.relative(t.cwd, k.cwd);
            T !== "" && !T.match(/^(\.\.)?\//) && i.reject.push(`/${T}`)
        }
        let s = {accept: [], reject: []},
            o = (f = (g = t.manifest.publishConfig) == null ? void 0 : g.main) != null ? f : t.manifest.main,
            a = (p = (h = t.manifest.publishConfig) == null ? void 0 : h.module) != null ? p : t.manifest.module,
            l = (y = (m = t.manifest.publishConfig) == null ? void 0 : m.browser) != null ? y : t.manifest.browser,
            c = (S = (b = t.manifest.publishConfig) == null ? void 0 : b.bin) != null ? S : t.manifest.bin;
        o != null && s.accept.push(x.resolve(Ke.root, o)), a != null && s.accept.push(x.resolve(Ke.root, a)), typeof l == "string" && s.accept.push(x.resolve(Ke.root, l));
        for (let k of c.values()) s.accept.push(x.resolve(Ke.root, k));
        if (l instanceof Map) for (let [k, T] of l.entries()) s.accept.push(x.resolve(Ke.root, k)), typeof T == "string" && s.accept.push(x.resolve(Ke.root, T));
        let u = t.manifest.files !== null;
        if (u) {
            s.reject.push("/*");
            for (let k of t.manifest.files) Yue(s.accept, k, {cwd: Ke.root})
        }
        return await yVe(t.cwd, {hasExplicitFileList: u, globalList: i, ignoreList: s})
    }

    async function yVe(t, {hasExplicitFileList: e, globalList: r, ignoreList: i}) {
        let n = [], s = new Ra(t), o = [[Ke.root, [i]]];
        for (; o.length > 0;) {
            let [a, l] = o.pop(), c = await s.lstatPromise(a);
            if (!Jue(a, {globalList: r, ignoreLists: c.isDirectory() ? null : l})) if (c.isDirectory()) {
                let u = await s.readdirPromise(a), g = !1, f = !1;
                if (!e || a !== Ke.root) for (let m of u) g = g || m === ".gitignore", f = f || m === ".npmignore";
                let h = f ? await que(s, a, ".npmignore") : g ? await que(s, a, ".gitignore") : null,
                    p = h !== null ? [h].concat(l) : l;
                Jue(a, {globalList: r, ignoreLists: l}) && (p = [...l, {accept: [], reject: ["**/*"]}]);
                for (let m of u) o.push([x.resolve(a, m), p])
            } else (c.isFile() || c.isSymbolicLink()) && n.push(x.relative(Ke.root, a))
        }
        return n.sort()
    }

    async function que(t, e, r) {
        let i = {accept: [], reject: []}, n = await t.readFilePromise(x.join(e, r), "utf8");
        for (let s of n.split(/\n/g)) Yue(i.reject, s, {cwd: e});
        return i
    }

    function wVe(t, {cwd: e}) {
        let r = t[0] === "!";
        return r && (t = t.slice(1)), t.match(/\.{0,1}\//) && (t = x.resolve(e, t)), r && (t = `!${t}`), t
    }

    function Yue(t, e, {cwd: r}) {
        let i = e.trim();
        i === "" || i[0] === "#" || t.push(wVe(i, {cwd: r}))
    }

    var us;
    (function (i) {
        i[i.None = 0] = "None", i[i.Match = 1] = "Match", i[i.NegatedMatch = 2] = "NegatedMatch"
    })(us || (us = {}));

    function Jue(t, {globalList: e, ignoreLists: r}) {
        let i = jb(t, e.accept);
        if (i !== 0) return i === 2;
        let n = jb(t, e.reject);
        if (n !== 0) return n === 1;
        if (r !== null) for (let s of r) {
            let o = jb(t, s.accept);
            if (o !== 0) return o === 2;
            let a = jb(t, s.reject);
            if (a !== 0) return a === 1
        }
        return !1
    }

    function jb(t, e) {
        let r = e, i = [];
        for (let n = 0; n < e.length; ++n) e[n][0] !== "!" ? r !== e && r.push(e[n]) : (r === e && (r = e.slice(0, n)), i.push(e[n].slice(1)));
        return Wue(t, i) ? 2 : Wue(t, r) ? 1 : 0
    }

    function Wue(t, e) {
        let r = e, i = [];
        for (let n = 0; n < e.length; ++n) e[n].includes("/") ? r !== e && r.push(e[n]) : (r === e && (r = e.slice(0, n)), i.push(e[n]));
        return !!(nO.default.isMatch(t, r, {dot: !0, nocase: !0}) || nO.default.isMatch(t, i, {
            dot: !0,
            basename: !0,
            nocase: !0
        }))
    }

    var lE = class extends Le {
        constructor() {
            super(...arguments);
            this.installIfNeeded = W.Boolean("--install-if-needed", !1, {description: "Run a preliminary `yarn install` if the package contains build scripts"});
            this.dryRun = W.Boolean("-n,--dry-run", !1, {description: "Print the file paths without actually generating the package archive"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.out = W.String("-o,--out", {description: "Create the archive at the specified path"});
            this.filename = W.String("--filename", {hidden: !0})
        }

        async execute() {
            var a;
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await sO(i) && (this.installIfNeeded ? await r.install({
                cache: await Nt.find(e),
                report: new pi
            }) : await r.restoreInstallState());
            let n = (a = this.out) != null ? a : this.filename,
                s = typeof n != "undefined" ? x.resolve(this.context.cwd, BVe(n, {workspace: i})) : x.resolve(i.cwd, "package.tgz");
            return (await Je.start({configuration: e, stdout: this.context.stdout, json: this.json}, async l => {
                await oO(i, {report: l}, async () => {
                    l.reportJson({base: H.fromPortablePath(i.cwd)});
                    let c = await Gb(i);
                    for (let u of c) l.reportInfo(null, H.fromPortablePath(u)), l.reportJson({location: H.fromPortablePath(u)});
                    if (!this.dryRun) {
                        let u = await aO(i, c), g = K.createWriteStream(s);
                        u.pipe(g), await new Promise(f => {
                            g.on("finish", f)
                        })
                    }
                }), this.dryRun || (l.reportInfo($.UNNAMED, `Package archive generated in ${Ae.pretty(e, s, Ae.Type.PATH)}`), l.reportJson({output: H.fromPortablePath(s)}))
            })).exitCode()
        }
    };
    lE.paths = [["pack"]], lE.usage = Re.Usage({
        description: "generate a tarball from the active workspace",
        details: "\n      This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n      If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n    ",
        examples: [["Create an archive from the active workspace", "yarn pack"], ["List the files that would be made part of the workspace's archive", "yarn pack --dry-run"], ["Name and output the archive in a dedicated folder", "yarn pack --out /artifacts/%s-%v.tgz"]]
    });
    var zue = lE;

    function BVe(t, {workspace: e}) {
        let r = t.replace("%s", bVe(e)).replace("%v", QVe(e));
        return H.toPortablePath(r)
    }

    function bVe(t) {
        return t.manifest.name !== null ? P.slugifyIdent(t.manifest.name) : "package"
    }

    function QVe(t) {
        return t.manifest.version !== null ? t.manifest.version : "unknown"
    }

    var vVe = ["dependencies", "devDependencies", "peerDependencies"], SVe = "workspace:", kVe = (t, e) => {
        var i, n;
        e.publishConfig && (e.publishConfig.main && (e.main = e.publishConfig.main), e.publishConfig.browser && (e.browser = e.publishConfig.browser), e.publishConfig.module && (e.module = e.publishConfig.module), e.publishConfig.browser && (e.browser = e.publishConfig.browser), e.publishConfig.exports && (e.exports = e.publishConfig.exports), e.publishConfig.bin && (e.bin = e.publishConfig.bin));
        let r = t.project;
        for (let s of vVe) for (let o of t.manifest.getForScope(s).values()) {
            let a = r.tryWorkspaceByDescriptor(o), l = P.parseRange(o.range);
            if (l.protocol === SVe) if (a === null) {
                if (r.tryWorkspaceByIdent(o) === null) throw new ct($.WORKSPACE_NOT_FOUND, `${P.prettyDescriptor(r.configuration, o)}: No local workspace found for this range`)
            } else {
                let c;
                P.areDescriptorsEqual(o, a.anchoredDescriptor) || l.selector === "*" ? c = (i = a.manifest.version) != null ? i : "0.0.0" : l.selector === "~" || l.selector === "^" ? c = `${l.selector}${(n = a.manifest.version) != null ? n : "0.0.0"}` : c = l.selector;
                let u = s === "dependencies" ? P.makeDescriptor(o, "unknown") : null,
                    g = u !== null && t.manifest.ensureDependencyMeta(u).optional ? "optionalDependencies" : s;
                e[g][P.stringifyIdent(o)] = c
            }
        }
    }, xVe = {hooks: {beforeWorkspacePacking: kVe}, commands: [zue]}, PVe = xVe;
    var ige = ge(require("crypto")), nge = ge(rge()), sge = ge(require("url"));

    async function zVe(t, e, {access: r, tag: i, registry: n, gitHead: s}) {
        let o = t.project.configuration, a = t.manifest.name, l = t.manifest.version, c = P.stringifyIdent(a),
            u = (0, ige.createHash)("sha1").update(e).digest("hex"), g = nge.default.fromData(e).toString();
        typeof r == "undefined" && (t.manifest.publishConfig && typeof t.manifest.publishConfig.access == "string" ? r = t.manifest.publishConfig.access : o.get("npmPublishAccess") !== null ? r = o.get("npmPublishAccess") : a.scope ? r = "restricted" : r = "public");
        let f = await SA.genPackageManifest(t), h = `${c}-${l}.tgz`, p = new sge.URL(`${pa(n)}/${c}/-/${h}`);
        return {
            _id: c,
            _attachments: {
                [h]: {
                    content_type: "application/octet-stream",
                    data: e.toString("base64"),
                    length: e.length
                }
            },
            name: c,
            access: r,
            ["dist-tags"]: {[i]: l},
            versions: {
                [l]: ie(N({}, f), {
                    _id: `${c}@${l}`,
                    name: c,
                    version: l,
                    gitHead: s,
                    dist: {shasum: u, integrity: g, tarball: p.toString()}
                })
            }
        }
    }

    async function _Ve(t) {
        try {
            let {stdout: e} = await Fr.execvp("git", ["rev-parse", "--revs-only", "HEAD"], {cwd: t});
            return e.trim() === "" ? void 0 : e.trim()
        } catch {
            return
        }
    }

    var fO = {
        npmAlwaysAuth: {
            description: "URL of the selected npm registry (note: npm enterprise isn't supported)",
            type: ye.BOOLEAN,
            default: !1
        },
        npmAuthIdent: {
            description: "Authentication identity for the npm registry (_auth in npm and yarn v1)",
            type: ye.SECRET,
            default: null
        },
        npmAuthToken: {
            description: "Authentication token for the npm registry (_authToken in npm and yarn v1)",
            type: ye.SECRET,
            default: null
        }
    }, oge = {
        npmAuditRegistry: {description: "Registry to query for audit reports", type: ye.STRING, default: null},
        npmPublishRegistry: {description: "Registry to push packages to", type: ye.STRING, default: null},
        npmRegistryServer: {
            description: "URL of the selected npm registry (note: npm enterprise isn't supported)",
            type: ye.STRING,
            default: "https://registry.yarnpkg.com"
        }
    }, VVe = {
        configuration: ie(N(N({}, fO), oge), {
            npmScopes: {
                description: "Settings per package scope",
                type: ye.MAP,
                valueDefinition: {description: "", type: ye.SHAPE, properties: N(N({}, fO), oge)}
            },
            npmRegistries: {
                description: "Settings per registry",
                type: ye.MAP,
                normalizeKeys: pa,
                valueDefinition: {description: "", type: ye.SHAPE, properties: N({}, fO)}
            }
        }), fetchers: [CT, bo], resolvers: [mT, ET, IT]
    }, XVe = VVe;
    var CO = {};
    ft(CO, {default: () => o9e});
    Is();
    var Ia;
    (function (i) {
        i.All = "all", i.Production = "production", i.Development = "development"
    })(Ia || (Ia = {}));
    var vo;
    (function (s) {
        s.Info = "info", s.Low = "low", s.Moderate = "moderate", s.High = "high", s.Critical = "critical"
    })(vo || (vo = {}));
    var Yb = [vo.Info, vo.Low, vo.Moderate, vo.High, vo.Critical];

    function age(t, e) {
        let r = [], i = new Set, n = o => {
            i.has(o) || (i.add(o), r.push(o))
        };
        for (let o of e) n(o);
        let s = new Set;
        for (; r.length > 0;) {
            let o = r.shift(), a = t.storedResolutions.get(o);
            if (typeof a == "undefined") throw new Error("Assertion failed: Expected the resolution to have been registered");
            let l = t.storedPackages.get(a);
            if (!!l) {
                s.add(o);
                for (let c of l.dependencies.values()) n(c.descriptorHash)
            }
        }
        return s
    }

    function ZVe(t, e) {
        return new Set([...t].filter(r => !e.has(r)))
    }

    function $Ve(t, e, {all: r}) {
        let i = r ? t.workspaces : [e], n = i.map(f => f.manifest),
            s = new Set(n.map(f => [...f.dependencies].map(([h, p]) => h)).flat()),
            o = new Set(n.map(f => [...f.devDependencies].map(([h, p]) => h)).flat()),
            a = i.map(f => [...f.dependencies.values()]).flat(),
            l = a.filter(f => s.has(f.identHash)).map(f => f.descriptorHash),
            c = a.filter(f => o.has(f.identHash)).map(f => f.descriptorHash), u = age(t, l), g = age(t, c);
        return ZVe(g, u)
    }

    function Age(t) {
        let e = {};
        for (let r of t) e[P.stringifyIdent(r)] = P.parseRange(r.range).selector;
        return e
    }

    function lge(t) {
        if (typeof t == "undefined") return new Set;
        let e = Yb.indexOf(t), r = Yb.slice(e);
        return new Set(r)
    }

    function e9e(t, e) {
        let r = lge(e), i = {};
        for (let n of r) i[n] = t[n];
        return i
    }

    function cge(t, e) {
        var i;
        let r = e9e(t, e);
        for (let n of Object.keys(r)) if ((i = r[n]) != null ? i : 0 > 0) return !0;
        return !1
    }

    function uge(t, e) {
        var s;
        let r = {}, i = {children: r}, n = Object.values(t.advisories);
        if (e != null) {
            let o = lge(e);
            n = n.filter(a => o.has(a.severity))
        }
        for (let o of ve.sortMap(n, a => a.module_name)) r[o.module_name] = {
            label: o.module_name,
            value: Ae.tuple(Ae.Type.RANGE, o.findings.map(a => a.version).join(", ")),
            children: {
                Issue: {label: "Issue", value: Ae.tuple(Ae.Type.NO_HINT, o.title)},
                URL: {label: "URL", value: Ae.tuple(Ae.Type.URL, o.url)},
                Severity: {label: "Severity", value: Ae.tuple(Ae.Type.NO_HINT, o.severity)},
                ["Vulnerable Versions"]: {
                    label: "Vulnerable Versions",
                    value: Ae.tuple(Ae.Type.RANGE, o.vulnerable_versions)
                },
                ["Patched Versions"]: {label: "Patched Versions", value: Ae.tuple(Ae.Type.RANGE, o.patched_versions)},
                Via: {
                    label: "Via",
                    value: Ae.tuple(Ae.Type.NO_HINT, Array.from(new Set(o.findings.map(a => a.paths).flat().map(a => a.split(">")[0]))).join(", "))
                },
                Recommendation: {
                    label: "Recommendation",
                    value: Ae.tuple(Ae.Type.NO_HINT, (s = o.recommendation) == null ? void 0 : s.replace(/\n/g, " "))
                }
            }
        };
        return i
    }

    function gge(t, e, {all: r, environment: i}) {
        let n = r ? t.workspaces : [e], s = [Ia.All, Ia.Production].includes(i), o = [];
        if (s) for (let c of n) for (let u of c.manifest.dependencies.values()) o.push(u);
        let a = [Ia.All, Ia.Development].includes(i), l = [];
        if (a) for (let c of n) for (let u of c.manifest.devDependencies.values()) l.push(u);
        return Age([...o, ...l].filter(c => P.parseRange(c.range).protocol === null))
    }

    function fge(t, e, {all: r}) {
        var s;
        let i = $Ve(t, e, {all: r}), n = {};
        for (let o of t.storedPackages.values()) n[P.stringifyIdent(o)] = {
            version: (s = o.version) != null ? s : "0.0.0",
            integrity: o.identHash,
            requires: Age(o.dependencies.values()),
            dev: i.has(P.convertLocatorToDescriptor(o).descriptorHash)
        };
        return n
    }

    var gE = class extends Le {
        constructor() {
            super(...arguments);
            this.all = W.Boolean("-A,--all", !1, {description: "Audit dependencies from all workspaces"});
            this.recursive = W.Boolean("-R,--recursive", !1, {description: "Audit transitive dependencies as well"});
            this.environment = W.String("--environment", Ia.All, {
                description: "Which environments to cover",
                validator: nn(Ia)
            });
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.severity = W.String("--severity", vo.Info, {
                description: "Minimal severity requested for packages to be displayed",
                validator: nn(vo)
            })
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState();
            let n = gge(r, i, {all: this.all, environment: this.environment}), s = fge(r, i, {all: this.all});
            if (!this.recursive) for (let f of Object.keys(s)) Object.prototype.hasOwnProperty.call(n, f) ? s[f].requires = {} : delete s[f];
            let o = {requires: n, dependencies: s}, a = br.getAuditRegistry(i.manifest, {configuration: e}), l,
                c = await gA.start({configuration: e, stdout: this.context.stdout}, async () => {
                    l = await zt.post("/-/npm/v1/security/audits/quick", o, {
                        authType: zt.AuthType.BEST_EFFORT,
                        configuration: e,
                        jsonResponse: !0,
                        registry: a
                    })
                });
            if (c.hasErrors()) return c.exitCode();
            let u = cge(l.metadata.vulnerabilities, this.severity);
            return !this.json && u ? (As.emitTree(uge(l, this.severity), {
                configuration: e,
                json: this.json,
                stdout: this.context.stdout,
                separators: 2
            }), 1) : (await Je.start({
                configuration: e,
                includeFooter: !1,
                json: this.json,
                stdout: this.context.stdout
            }, async f => {
                f.reportJson(l), u || f.reportInfo($.EXCEPTION, "No audit suggestions")
            })).exitCode()
        }
    };
    gE.paths = [["npm", "audit"]], gE.usage = Re.Usage({
        description: "perform a vulnerability audit against the installed packages",
        details: `
      This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths).

      For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`.

      Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${Yb.map(e => `\`${e}\``).join(", ")}.

      If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages.

      To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why <package>\` to get more information as to who depends on them.
    `,
        examples: [["Checks for known security issues with the installed packages. The output is a list of known issues.", "yarn npm audit"], ["Audit dependencies in all workspaces", "yarn npm audit --all"], ["Limit auditing to `dependencies` (excludes `devDependencies`)", "yarn npm audit --environment production"], ["Show audit report as valid JSON", "yarn npm audit --json"], ["Audit all direct and transitive dependencies", "yarn npm audit --recursive"], ["Output moderate (or more severe) vulnerabilities", "yarn npm audit --severity moderate"]]
    });
    var hge = gE;
    var hO = ge(ri()), pO = ge(require("util")), fE = class extends Le {
        constructor() {
            super(...arguments);
            this.fields = W.String("-f,--fields", {description: "A comma-separated list of manifest fields that should be displayed"});
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.packages = W.Rest()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {project: r} = await ze.find(e, this.context.cwd),
                i = typeof this.fields != "undefined" ? new Set(["name", ...this.fields.split(/\s*,\s*/)]) : null,
                n = [], s = !1, o = await Je.start({
                    configuration: e,
                    includeFooter: !1,
                    json: this.json,
                    stdout: this.context.stdout
                }, async a => {
                    for (let l of this.packages) {
                        let c;
                        if (l === ".") {
                            let k = r.topLevelWorkspace;
                            if (!k.manifest.name) throw new Pe(`Missing ${Ae.pretty(e, "name", Ae.Type.CODE)} field in ${H.fromPortablePath(x.join(k.cwd, Pt.manifest))}`);
                            c = P.makeDescriptor(k.manifest.name, "unknown")
                        } else c = P.parseDescriptor(l);
                        let u = zt.getIdentUrl(c), g = dO(await zt.get(u, {
                                configuration: e,
                                ident: c,
                                jsonResponse: !0,
                                customErrorMessage: zt.customPackageError
                            })), f = Object.keys(g.versions).sort(hO.default.compareLoose),
                            p = g["dist-tags"].latest || f[f.length - 1], m = Wt.validRange(c.range);
                        if (m) {
                            let k = hO.default.maxSatisfying(f, m);
                            k !== null ? p = k : (a.reportWarning($.UNNAMED, `Unmet range ${P.prettyRange(e, c.range)}; falling back to the latest version`), s = !0)
                        } else Object.prototype.hasOwnProperty.call(g["dist-tags"], c.range) ? p = g["dist-tags"][c.range] : c.range !== "unknown" && (a.reportWarning($.UNNAMED, `Unknown tag ${P.prettyRange(e, c.range)}; falling back to the latest version`), s = !0);
                        let y = g.versions[p], b = ie(N(N({}, g), y), {version: p, versions: f}), S;
                        if (i !== null) {
                            S = {};
                            for (let k of i) {
                                let T = b[k];
                                if (typeof T != "undefined") S[k] = T; else {
                                    a.reportWarning($.EXCEPTION, `The ${Ae.pretty(e, k, Ae.Type.CODE)} field doesn't exist inside ${P.prettyIdent(e, c)}'s information`), s = !0;
                                    continue
                                }
                            }
                        } else this.json || (delete b.dist, delete b.readme, delete b.users), S = b;
                        a.reportJson(S), this.json || n.push(S)
                    }
                });
            pO.inspect.styles.name = "cyan";
            for (let a of n) (a !== n[0] || s) && this.context.stdout.write(`
`), this.context.stdout.write(`${(0, pO.inspect)(a, {depth: Infinity, colors: !0, compact: !1})}
`);
            return o.exitCode()
        }
    };
    fE.paths = [["npm", "info"]], fE.usage = Re.Usage({
        category: "Npm-related commands",
        description: "show information about a package",
        details: "\n      This command fetches information about a package from the npm registry and prints it in a tree format.\n\n      The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n      Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n      If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n      By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n    ",
        examples: [["Show all available information about react (except the `dist`, `readme`, and `users` fields)", "yarn npm info react"], ["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)", "yarn npm info react --json"], ["Show all available information about react@16.12.0", "yarn npm info react@16.12.0"], ["Show all available information about react@next", "yarn npm info react@next"], ["Show the description of react", "yarn npm info react --fields description"], ["Show all available versions of react", "yarn npm info react --fields versions"], ["Show the readme of react", "yarn npm info react --fields readme"], ["Show a few fields of react", "yarn npm info react --fields homepage,repository"]]
    });
    var pge = fE;

    function dO(t) {
        if (Array.isArray(t)) {
            let e = [];
            for (let r of t) r = dO(r), r && e.push(r);
            return e
        } else if (typeof t == "object" && t !== null) {
            let e = {};
            for (let r of Object.keys(t)) {
                if (r.startsWith("_")) continue;
                let i = dO(t[r]);
                i && (e[r] = i)
            }
            return e
        } else return t || null
    }

    var dge = ge(em()), hE = class extends Le {
        constructor() {
            super(...arguments);
            this.scope = W.String("-s,--scope", {description: "Login to the registry configured for a given scope"});
            this.publish = W.Boolean("--publish", !1, {description: "Login to the publish registry"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins),
                r = await qb({configuration: e, cwd: this.context.cwd, publish: this.publish, scope: this.scope});
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async n => {
                let s = await r9e({registry: r, report: n, stdin: this.context.stdin, stdout: this.context.stdout}),
                    o = `/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`, a = await zt.put(o, s, {
                        attemptedAs: s.name,
                        configuration: e,
                        registry: r,
                        jsonResponse: !0,
                        authType: zt.AuthType.NO_AUTH
                    });
                return await t9e(r, a.token, {
                    configuration: e,
                    scope: this.scope
                }), n.reportInfo($.UNNAMED, "Successfully logged in")
            })).exitCode()
        }
    };
    hE.paths = [["npm", "login"]], hE.usage = Re.Usage({
        category: "Npm-related commands",
        description: "store new login info to access the npm registry",
        details: "\n      This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n      Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n      Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n    ",
        examples: [["Login to the default registry", "yarn npm login"], ["Login to the registry linked to the @my-scope registry", "yarn npm login --scope my-scope"], ["Login to the publish registry for the current package", "yarn npm login --publish"]]
    });
    var Cge = hE;

    async function qb({scope: t, publish: e, configuration: r, cwd: i}) {
        return t && e ? br.getScopeRegistry(t, {
            configuration: r,
            type: br.RegistryType.PUBLISH_REGISTRY
        }) : t ? br.getScopeRegistry(t, {configuration: r}) : e ? br.getPublishRegistry((await zf(r, i)).manifest, {configuration: r}) : br.getDefaultRegistry({configuration: r})
    }

    async function t9e(t, e, {configuration: r, scope: i}) {
        let n = o => a => {
            let l = ve.isIndexableObject(a) ? a : {}, c = l[o], u = ve.isIndexableObject(c) ? c : {};
            return ie(N({}, l), {[o]: ie(N({}, u), {npmAuthToken: e})})
        }, s = i ? {npmScopes: n(i)} : {npmRegistries: n(t)};
        return await we.updateHomeConfiguration(s)
    }

    async function r9e({registry: t, report: e, stdin: r, stdout: i}) {
        if (process.env.TEST_ENV) return {
            name: process.env.TEST_NPM_USER || "",
            password: process.env.TEST_NPM_PASSWORD || ""
        };
        e.reportInfo($.UNNAMED, `Logging in to ${t}`);
        let n = !1;
        t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/) && (e.reportInfo($.UNNAMED, "You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."), n = !0), e.reportSeparator();
        let {username: s, password: o} = await (0, dge.prompt)([{
            type: "input",
            name: "username",
            message: "Username:",
            required: !0,
            onCancel: () => process.exit(130),
            stdin: r,
            stdout: i
        }, {
            type: "password",
            name: "password",
            message: n ? "Token:" : "Password:",
            required: !0,
            onCancel: () => process.exit(130),
            stdin: r,
            stdout: i
        }]);
        return e.reportSeparator(), {name: s, password: o}
    }

    var bh = new Set(["npmAuthIdent", "npmAuthToken"]), pE = class extends Le {
        constructor() {
            super(...arguments);
            this.scope = W.String("-s,--scope", {description: "Logout of the registry configured for a given scope"});
            this.publish = W.Boolean("--publish", !1, {description: "Logout of the publish registry"});
            this.all = W.Boolean("-A,--all", !1, {description: "Logout of all registries"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), r = async () => {
                var l;
                let n = await qb({configuration: e, cwd: this.context.cwd, publish: this.publish, scope: this.scope}),
                    s = await we.find(this.context.cwd, this.context.plugins),
                    o = P.makeIdent((l = this.scope) != null ? l : null, "pkg");
                return !br.getAuthConfiguration(n, {configuration: s, ident: o}).get("npmAuthToken")
            };
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async n => {
                if (this.all && (await i9e(), n.reportInfo($.UNNAMED, "Successfully logged out from everything")), this.scope) {
                    await mge("npmScopes", this.scope), await r() ? n.reportInfo($.UNNAMED, `Successfully logged out from ${this.scope}`) : n.reportWarning($.UNNAMED, "Scope authentication settings removed, but some other ones settings still apply to it");
                    return
                }
                let s = await qb({configuration: e, cwd: this.context.cwd, publish: this.publish});
                await mge("npmRegistries", s), await r() ? n.reportInfo($.UNNAMED, `Successfully logged out from ${s}`) : n.reportWarning($.UNNAMED, "Registry authentication settings removed, but some other ones settings still apply to it")
            })).exitCode()
        }
    };
    pE.paths = [["npm", "logout"]], pE.usage = Re.Usage({
        category: "Npm-related commands",
        description: "logout of the npm registry",
        details: "\n      This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n      Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n      Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n      Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n    ",
        examples: [["Logout of the default registry", "yarn npm logout"], ["Logout of the @my-scope scope", "yarn npm logout --scope my-scope"], ["Logout of the publish registry for the current package", "yarn npm logout --publish"], ["Logout of all registries", "yarn npm logout --all"]]
    });
    var Ege = pE;

    function n9e(t, e) {
        let r = t[e];
        if (!ve.isIndexableObject(r)) return !1;
        let i = new Set(Object.keys(r));
        if ([...bh].every(s => !i.has(s))) return !1;
        for (let s of bh) i.delete(s);
        if (i.size === 0) return t[e] = void 0, !0;
        let n = N({}, r);
        for (let s of bh) delete n[s];
        return t[e] = n, !0
    }

    async function i9e() {
        let t = e => {
            let r = !1, i = ve.isIndexableObject(e) ? N({}, e) : {};
            i.npmAuthToken && (delete i.npmAuthToken, r = !0);
            for (let n of Object.keys(i)) n9e(i, n) && (r = !0);
            if (Object.keys(i).length !== 0) return r ? i : e
        };
        return await we.updateHomeConfiguration({npmRegistries: t, npmScopes: t})
    }

    async function mge(t, e) {
        return await we.updateHomeConfiguration({
            [t]: r => {
                let i = ve.isIndexableObject(r) ? r : {};
                if (!Object.prototype.hasOwnProperty.call(i, e)) return r;
                let n = i[e], s = ve.isIndexableObject(n) ? n : {}, o = new Set(Object.keys(s));
                if ([...bh].every(l => !o.has(l))) return r;
                for (let l of bh) o.delete(l);
                if (o.size === 0) return Object.keys(i).length === 1 ? void 0 : ie(N({}, i), {[e]: void 0});
                let a = {};
                for (let l of bh) a[l] = void 0;
                return ie(N({}, i), {[e]: N(N({}, s), a)})
            }
        })
    }

    var dE = class extends Le {
        constructor() {
            super(...arguments);
            this.access = W.String("--access", {description: "The access for the published package (public or restricted)"});
            this.tag = W.String("--tag", "latest", {description: "The tag on the registry that the package should be attached to"});
            this.tolerateRepublish = W.Boolean("--tolerate-republish", !1, {description: "Warn and exit when republishing an already existing version of a package"});
            this.otp = W.String("--otp", {description: "The OTP token to use with the command"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            if (i.manifest.private) throw new Pe("Private workspaces cannot be published");
            if (i.manifest.name === null || i.manifest.version === null) throw new Pe("Workspaces must have valid names and versions to be published on an external registry");
            await r.restoreInstallState();
            let n = i.manifest.name, s = i.manifest.version, o = br.getPublishRegistry(i.manifest, {configuration: e});
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async l => {
                var c, u;
                if (this.tolerateRepublish) try {
                    let g = await zt.get(zt.getIdentUrl(n), {
                        configuration: e,
                        registry: o,
                        ident: n,
                        jsonResponse: !0
                    });
                    if (!Object.prototype.hasOwnProperty.call(g, "versions")) throw new ct($.REMOTE_INVALID, 'Registry returned invalid data for - missing "versions" field');
                    if (Object.prototype.hasOwnProperty.call(g.versions, s)) {
                        l.reportWarning($.UNNAMED, `Registry already knows about version ${s}; skipping.`);
                        return
                    }
                } catch (g) {
                    if (((u = (c = g.originalError) == null ? void 0 : c.response) == null ? void 0 : u.statusCode) !== 404) throw g
                }
                await Zt.maybeExecuteWorkspaceLifecycleScript(i, "prepublish", {report: l}), await SA.prepareForPack(i, {report: l}, async () => {
                    let g = await SA.genPackList(i);
                    for (let y of g) l.reportInfo(null, y);
                    let f = await SA.genPackStream(i, g), h = await ve.bufferStream(f), p = await Bh.getGitHead(i.cwd),
                        m = await Bh.makePublishBody(i, h, {
                            access: this.access,
                            tag: this.tag,
                            registry: o,
                            gitHead: p
                        });
                    await zt.put(zt.getIdentUrl(n), m, {
                        configuration: e,
                        registry: o,
                        ident: n,
                        otp: this.otp,
                        jsonResponse: !0
                    })
                }), l.reportInfo($.UNNAMED, "Package archive published")
            })).exitCode()
        }
    };
    dE.paths = [["npm", "publish"]], dE.usage = Re.Usage({
        category: "Npm-related commands",
        description: "publish the active workspace to the npm registry",
        details: '\n      This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n      The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n      Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n    ',
        examples: [["Publish the active workspace", "yarn npm publish"]]
    });
    var Ige = dE;
    var wge = ge(ri());
    var CE = class extends Le {
        constructor() {
            super(...arguments);
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.package = W.String({required: !1})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n;
            if (typeof this.package != "undefined") n = P.parseIdent(this.package); else {
                if (!i) throw new ht(r.cwd, this.context.cwd);
                if (!i.manifest.name) throw new Pe(`Missing 'name' field in ${H.fromPortablePath(x.join(i.cwd, Pt.manifest))}`);
                n = i.manifest.name
            }
            let s = await mE(n, e), a = {
                children: ve.sortMap(Object.entries(s), ([l]) => l).map(([l, c]) => ({
                    value: Ae.tuple(Ae.Type.RESOLUTION, {
                        descriptor: P.makeDescriptor(n, l),
                        locator: P.makeLocator(n, c)
                    })
                }))
            };
            return As.emitTree(a, {configuration: e, json: this.json, stdout: this.context.stdout})
        }
    };
    CE.paths = [["npm", "tag", "list"]], CE.usage = Re.Usage({
        category: "Npm-related commands", description: "list all dist-tags of a package", details: `
      This command will list all tags of a package from the npm registry.

      If the package is not specified, Yarn will default to the current workspace.
    `, examples: [["List all tags of package `my-pkg`", "yarn npm tag list my-pkg"]]
    });
    var yge = CE;

    async function mE(t, e) {
        let r = `/-/package${zt.getIdentUrl(t)}/dist-tags`;
        return zt.get(r, {configuration: e, ident: t, jsonResponse: !0, customErrorMessage: zt.customPackageError})
    }

    var EE = class extends Le {
        constructor() {
            super(...arguments);
            this.package = W.String();
            this.tag = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            let n = P.parseDescriptor(this.package, !0), s = n.range;
            if (!wge.default.valid(s)) throw new Pe(`The range ${Ae.pretty(e, n.range, Ae.Type.RANGE)} must be a valid semver version`);
            let o = br.getPublishRegistry(i.manifest, {configuration: e}), a = Ae.pretty(e, n, Ae.Type.IDENT),
                l = Ae.pretty(e, s, Ae.Type.RANGE), c = Ae.pretty(e, this.tag, Ae.Type.CODE);
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async g => {
                let f = await mE(n, e);
                Object.prototype.hasOwnProperty.call(f, this.tag) && f[this.tag] === s && g.reportWarning($.UNNAMED, `Tag ${c} is already set to version ${l}`);
                let h = `/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;
                await zt.put(h, s, {
                    configuration: e,
                    registry: o,
                    ident: n,
                    jsonRequest: !0,
                    jsonResponse: !0
                }), g.reportInfo($.UNNAMED, `Tag ${c} added to version ${l} of package ${a}`)
            })).exitCode()
        }
    };
    EE.paths = [["npm", "tag", "add"]], EE.usage = Re.Usage({
        category: "Npm-related commands",
        description: "add a tag for a specific version of a package",
        details: `
      This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten.
    `,
        examples: [["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`", "yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]
    });
    var Bge = EE;
    var IE = class extends Le {
        constructor() {
            super(...arguments);
            this.package = W.String();
            this.tag = W.String()
        }

        async execute() {
            if (this.tag === "latest") throw new Pe("The 'latest' tag cannot be removed.");
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            let n = P.parseIdent(this.package), s = br.getPublishRegistry(i.manifest, {configuration: e}),
                o = Ae.pretty(e, this.tag, Ae.Type.CODE), a = Ae.pretty(e, n, Ae.Type.IDENT), l = await mE(n, e);
            if (!Object.prototype.hasOwnProperty.call(l, this.tag)) throw new Pe(`${o} is not a tag of package ${a}`);
            return (await Je.start({configuration: e, stdout: this.context.stdout}, async u => {
                let g = `/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;
                await zt.del(g, {
                    configuration: e,
                    registry: s,
                    ident: n,
                    jsonResponse: !0
                }), u.reportInfo($.UNNAMED, `Tag ${o} removed from package ${a}`)
            })).exitCode()
        }
    };
    IE.paths = [["npm", "tag", "remove"]], IE.usage = Re.Usage({
        category: "Npm-related commands", description: "remove a tag from a package", details: `
      This command will remove a tag from a package from the npm registry.
    `, examples: [["Remove the `beta` tag from package `my-pkg`", "yarn npm tag remove my-pkg beta"]]
    });
    var bge = IE;
    var yE = class extends Le {
        constructor() {
            super(...arguments);
            this.scope = W.String("-s,--scope", {description: "Print username for the registry configured for a given scope"});
            this.publish = W.Boolean("--publish", !1, {description: "Print username for the publish registry"})
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), r;
            return this.scope && this.publish ? r = br.getScopeRegistry(this.scope, {
                configuration: e,
                type: br.RegistryType.PUBLISH_REGISTRY
            }) : this.scope ? r = br.getScopeRegistry(this.scope, {configuration: e}) : this.publish ? r = br.getPublishRegistry((await zf(e, this.context.cwd)).manifest, {configuration: e}) : r = br.getDefaultRegistry({configuration: e}), (await Je.start({
                configuration: e,
                stdout: this.context.stdout
            }, async n => {
                var o, a;
                let s;
                try {
                    s = await zt.get("/-/whoami", {
                        configuration: e,
                        registry: r,
                        authType: zt.AuthType.ALWAYS_AUTH,
                        jsonResponse: !0,
                        ident: this.scope ? P.makeIdent(this.scope, "") : void 0
                    })
                } catch (l) {
                    if (((o = l.response) == null ? void 0 : o.statusCode) === 401 || ((a = l.response) == null ? void 0 : a.statusCode) === 403) {
                        n.reportError($.AUTHENTICATION_INVALID, "Authentication failed - your credentials may have expired");
                        return
                    } else throw l
                }
                n.reportInfo($.UNNAMED, s.username)
            })).exitCode()
        }
    };
    yE.paths = [["npm", "whoami"]], yE.usage = Re.Usage({
        category: "Npm-related commands",
        description: "display the name of the authenticated user",
        details: "\n      Print the username associated with the current authentication settings to the standard output.\n\n      When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n      When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n    ",
        examples: [["Print username for the default registry", "yarn npm whoami"], ["Print username for the registry on a given scope", "yarn npm whoami --scope company"]]
    });
    var Qge = yE;
    var s9e = {
        configuration: {
            npmPublishAccess: {
                description: "Default access of the published packages",
                type: ye.STRING,
                default: null
            }
        }, commands: [hge, pge, Cge, Ege, Ige, Bge, yge, bge, Qge]
    }, o9e = s9e;
    var QO = {};
    ft(QO, {default: () => w9e, patchUtils: () => mO});
    var mO = {};
    ft(mO, {
        applyPatchFile: () => zb,
        diffFolders: () => wO,
        extractPackageToDisk: () => yO,
        extractPatchFlags: () => Fge,
        isParentRequired: () => IO,
        loadPatchFiles: () => QE,
        makeDescriptor: () => E9e,
        makeLocator: () => EO,
        parseDescriptor: () => BE,
        parseLocator: () => bE,
        parsePatchFile: () => Wb
    });
    var wE = class extends Error {
        constructor(e, r) {
            super(`Cannot apply hunk #${e + 1}`);
            this.hunk = r
        }
    };
    var a9e = /^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;

    function Qh(t) {
        return x.relative(Ke.root, x.resolve(Ke.root, H.toPortablePath(t)))
    }

    function A9e(t) {
        let e = t.trim().match(a9e);
        if (!e) throw new Error(`Bad header line: '${t}'`);
        return {
            original: {start: Math.max(Number(e[1]), 1), length: Number(e[3] || 1)},
            patched: {start: Math.max(Number(e[4]), 1), length: Number(e[6] || 1)}
        }
    }

    var l9e = 420, c9e = 493, Zr;
    (function (i) {
        i.Context = "context", i.Insertion = "insertion", i.Deletion = "deletion"
    })(Zr || (Zr = {}));
    var vge = () => ({
        semverExclusivity: null,
        diffLineFromPath: null,
        diffLineToPath: null,
        oldMode: null,
        newMode: null,
        deletedFileMode: null,
        newFileMode: null,
        renameFrom: null,
        renameTo: null,
        beforeHash: null,
        afterHash: null,
        fromPath: null,
        toPath: null,
        hunks: null
    }), u9e = t => ({header: A9e(t), parts: []}), g9e = {
        ["@"]: "header",
        ["-"]: Zr.Deletion,
        ["+"]: Zr.Insertion,
        [" "]: Zr.Context,
        ["\\"]: "pragma",
        undefined: Zr.Context
    };

    function h9e(t) {
        let e = [], r = vge(), i = "parsing header", n = null, s = null;

        function o() {
            n && (s && (n.parts.push(s), s = null), r.hunks.push(n), n = null)
        }

        function a() {
            o(), e.push(r), r = vge()
        }

        for (let l = 0; l < t.length; l++) {
            let c = t[l];
            if (i === "parsing header") if (c.startsWith("@@")) i = "parsing hunks", r.hunks = [], l -= 1; else if (c.startsWith("diff --git ")) {
                r && r.diffLineFromPath && a();
                let u = c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);
                if (!u) throw new Error(`Bad diff line: ${c}`);
                r.diffLineFromPath = u[1], r.diffLineToPath = u[2]
            } else if (c.startsWith("old mode ")) r.oldMode = c.slice("old mode ".length).trim(); else if (c.startsWith("new mode ")) r.newMode = c.slice("new mode ".length).trim(); else if (c.startsWith("deleted file mode ")) r.deletedFileMode = c.slice("deleted file mode ".length).trim(); else if (c.startsWith("new file mode ")) r.newFileMode = c.slice("new file mode ".length).trim(); else if (c.startsWith("rename from ")) r.renameFrom = c.slice("rename from ".length).trim(); else if (c.startsWith("rename to ")) r.renameTo = c.slice("rename to ".length).trim(); else if (c.startsWith("index ")) {
                let u = c.match(/(\w+)\.\.(\w+)/);
                if (!u) continue;
                r.beforeHash = u[1], r.afterHash = u[2]
            } else c.startsWith("semver exclusivity ") ? r.semverExclusivity = c.slice("semver exclusivity ".length).trim() : c.startsWith("--- ") ? r.fromPath = c.slice("--- a/".length).trim() : c.startsWith("+++ ") && (r.toPath = c.slice("+++ b/".length).trim()); else {
                let u = g9e[c[0]] || null;
                switch (u) {
                    case"header":
                        o(), n = u9e(c);
                        break;
                    case null:
                        i = "parsing header", a(), l -= 1;
                        break;
                    case"pragma": {
                        if (!c.startsWith("\\ No newline at end of file")) throw new Error(`Unrecognized pragma in patch file: ${c}`);
                        if (!s) throw new Error("Bad parser state: No newline at EOF pragma encountered without context");
                        s.noNewlineAtEndOfFile = !0
                    }
                        break;
                    case Zr.Context:
                    case Zr.Deletion:
                    case Zr.Insertion: {
                        if (!n) throw new Error("Bad parser state: Hunk lines encountered before hunk header");
                        s && s.type !== u && (n.parts.push(s), s = null), s || (s = {
                            type: u,
                            lines: [],
                            noNewlineAtEndOfFile: !1
                        }), s.lines.push(c.slice(1))
                    }
                        break;
                    default:
                        ve.assertNever(u);
                        break
                }
            }
        }
        a();
        for (let {hunks: l} of e) if (l) for (let c of l) f9e(c);
        return e
    }

    function p9e(t) {
        let e = [];
        for (let r of t) {
            let {
                    semverExclusivity: i,
                    diffLineFromPath: n,
                    diffLineToPath: s,
                    oldMode: o,
                    newMode: a,
                    deletedFileMode: l,
                    newFileMode: c,
                    renameFrom: u,
                    renameTo: g,
                    beforeHash: f,
                    afterHash: h,
                    fromPath: p,
                    toPath: m,
                    hunks: y
                } = r,
                b = u ? "rename" : l ? "file deletion" : c ? "file creation" : y && y.length > 0 ? "patch" : "mode change",
                S = null;
            switch (b) {
                case"rename": {
                    if (!u || !g) throw new Error("Bad parser state: rename from & to not given");
                    e.push({type: "rename", semverExclusivity: i, fromPath: Qh(u), toPath: Qh(g)}), S = g
                }
                    break;
                case"file deletion": {
                    let k = n || p;
                    if (!k) throw new Error("Bad parse state: no path given for file deletion");
                    e.push({
                        type: "file deletion",
                        semverExclusivity: i,
                        hunk: y && y[0] || null,
                        path: Qh(k),
                        mode: Jb(l),
                        hash: f
                    })
                }
                    break;
                case"file creation": {
                    let k = s || m;
                    if (!k) throw new Error("Bad parse state: no path given for file creation");
                    e.push({
                        type: "file creation",
                        semverExclusivity: i,
                        hunk: y && y[0] || null,
                        path: Qh(k),
                        mode: Jb(c),
                        hash: h
                    })
                }
                    break;
                case"patch":
                case"mode change":
                    S = m || s;
                    break;
                default:
                    ve.assertNever(b);
                    break
            }
            S && o && a && o !== a && e.push({
                type: "mode change",
                semverExclusivity: i,
                path: Qh(S),
                oldMode: Jb(o),
                newMode: Jb(a)
            }), S && y && y.length && e.push({
                type: "patch",
                semverExclusivity: i,
                path: Qh(S),
                hunks: y,
                beforeHash: f,
                afterHash: h
            })
        }
        if (e.length === 0) throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");
        return e
    }

    function Jb(t) {
        let e = parseInt(t, 8) & 511;
        if (e !== l9e && e !== c9e) throw new Error(`Unexpected file mode string: ${t}`);
        return e
    }

    function Wb(t) {
        let e = t.split(/\n/g);
        return e[e.length - 1] === "" && e.pop(), p9e(h9e(e))
    }

    function f9e(t) {
        let e = 0, r = 0;
        for (let {type: i, lines: n} of t.parts) switch (i) {
            case Zr.Context:
                r += n.length, e += n.length;
                break;
            case Zr.Deletion:
                e += n.length;
                break;
            case Zr.Insertion:
                r += n.length;
                break;
            default:
                ve.assertNever(i);
                break
        }
        if (e !== t.header.original.length || r !== t.header.patched.length) {
            let i = n => n < 0 ? n : `+${n}`;
            throw new Error(`hunk header integrity check failed (expected @@ ${i(t.header.original.length)} ${i(t.header.patched.length)} @@, got @@ ${i(e)} ${i(r)} @@)`)
        }
    }

    async function vh(t, e, r) {
        let i = await t.lstatPromise(e), n = await r();
        if (typeof n != "undefined" && (e = n), t.lutimesPromise) await t.lutimesPromise(e, i.atime, i.mtime); else if (!i.isSymbolicLink()) await t.utimesPromise(e, i.atime, i.mtime); else throw new Error("Cannot preserve the time values of a symlink")
    }

    async function zb(t, {baseFs: e = new ar, dryRun: r = !1, version: i = null} = {}) {
        for (let n of t) if (!(n.semverExclusivity !== null && i !== null && !Wt.satisfiesWithPrereleases(i, n.semverExclusivity))) switch (n.type) {
            case"file deletion":
                if (r) {
                    if (!e.existsSync(n.path)) throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)
                } else await vh(e, x.dirname(n.path), async () => {
                    await e.unlinkPromise(n.path)
                });
                break;
            case"rename":
                if (r) {
                    if (!e.existsSync(n.fromPath)) throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)
                } else await vh(e, x.dirname(n.fromPath), async () => {
                    await vh(e, x.dirname(n.toPath), async () => {
                        await vh(e, n.fromPath, async () => (await e.movePromise(n.fromPath, n.toPath), n.toPath))
                    })
                });
                break;
            case"file creation":
                if (r) {
                    if (e.existsSync(n.path)) throw new Error(`Trying to create a file that already exists: ${n.path}`)
                } else {
                    let s = n.hunk ? n.hunk.parts[0].lines.join(`
`) + (n.hunk.parts[0].noNewlineAtEndOfFile ? "" : `
`) : "";
                    await e.mkdirpPromise(x.dirname(n.path), {
                        chmod: 493,
                        utimes: [Dr.SAFE_TIME, Dr.SAFE_TIME]
                    }), await e.writeFilePromise(n.path, s, {mode: n.mode}), await e.utimesPromise(n.path, Dr.SAFE_TIME, Dr.SAFE_TIME)
                }
                break;
            case"patch":
                await vh(e, n.path, async () => {
                    await d9e(n, {baseFs: e, dryRun: r})
                });
                break;
            case"mode change": {
                let o = (await e.statPromise(n.path)).mode;
                if (Sge(n.newMode) !== Sge(o)) continue;
                await vh(e, n.path, async () => {
                    await e.chmodPromise(n.path, n.newMode)
                })
            }
                break;
            default:
                ve.assertNever(n);
                break
        }
    }

    function Sge(t) {
        return (t & 64) > 0
    }

    function kge(t) {
        return t.replace(/\s+$/, "")
    }

    function C9e(t, e) {
        return kge(t) === kge(e)
    }

    async function d9e({hunks: t, path: e}, {baseFs: r, dryRun: i = !1}) {
        let n = await r.statSync(e).mode, o = (await r.readFileSync(e, "utf8")).split(/\n/), a = [], l = 0, c = 0;
        for (let g of t) {
            let f = Math.max(c, g.header.patched.start + l), h = Math.max(0, f - c),
                p = Math.max(0, o.length - f - g.header.original.length), m = Math.max(h, p), y = 0, b = 0, S = null;
            for (; y <= m;) {
                if (y <= h && (b = f - y, S = xge(g, o, b), S !== null)) {
                    y = -y;
                    break
                }
                if (y <= p && (b = f + y, S = xge(g, o, b), S !== null)) break;
                y += 1
            }
            if (S === null) throw new wE(t.indexOf(g), g);
            a.push(S), l += y, c = b + g.header.original.length
        }
        if (i) return;
        let u = 0;
        for (let g of a) for (let f of g) switch (f.type) {
            case"splice": {
                let h = f.index + u;
                o.splice(h, f.numToDelete, ...f.linesToInsert), u += f.linesToInsert.length - f.numToDelete
            }
                break;
            case"pop":
                o.pop();
                break;
            case"push":
                o.push(f.line);
                break;
            default:
                ve.assertNever(f);
                break
        }
        await r.writeFilePromise(e, o.join(`
`), {mode: n})
    }

    function xge(t, e, r) {
        let i = [];
        for (let n of t.parts) switch (n.type) {
            case Zr.Context:
            case Zr.Deletion: {
                for (let s of n.lines) {
                    let o = e[r];
                    if (o == null || !C9e(o, s)) return null;
                    r += 1
                }
                n.type === Zr.Deletion && (i.push({
                    type: "splice",
                    index: r - n.lines.length,
                    numToDelete: n.lines.length,
                    linesToInsert: []
                }), n.noNewlineAtEndOfFile && i.push({type: "push", line: ""}))
            }
                break;
            case Zr.Insertion:
                i.push({
                    type: "splice",
                    index: r,
                    numToDelete: 0,
                    linesToInsert: n.lines
                }), n.noNewlineAtEndOfFile && i.push({type: "pop"});
                break;
            default:
                ve.assertNever(n.type);
                break
        }
        return i
    }

    var m9e = /^builtin<([^>]+)>$/;

    function Pge(t, e) {
        let {source: r, selector: i, params: n} = P.parseRange(t);
        if (r === null) throw new Error("Patch locators must explicitly define their source");
        let s = i ? i.split(/&/).map(c => H.toPortablePath(c)) : [],
            o = n && typeof n.locator == "string" ? P.parseLocator(n.locator) : null,
            a = n && typeof n.version == "string" ? n.version : null, l = e(r);
        return {parentLocator: o, sourceItem: l, patchPaths: s, sourceVersion: a}
    }

    function BE(t) {
        let i = Pge(t.range, P.parseDescriptor), {sourceItem: e} = i, r = Tr(i, ["sourceItem"]);
        return ie(N({}, r), {sourceDescriptor: e})
    }

    function bE(t) {
        let i = Pge(t.reference, P.parseLocator), {sourceItem: e} = i, r = Tr(i, ["sourceItem"]);
        return ie(N({}, r), {sourceLocator: e})
    }

    function Dge({parentLocator: t, sourceItem: e, patchPaths: r, sourceVersion: i, patchHash: n}, s) {
        let o = t !== null ? {locator: P.stringifyLocator(t)} : {}, a = typeof i != "undefined" ? {version: i} : {},
            l = typeof n != "undefined" ? {hash: n} : {};
        return P.makeRange({protocol: "patch:", source: s(e), selector: r.join("&"), params: N(N(N({}, a), l), o)})
    }

    function E9e(t, {parentLocator: e, sourceDescriptor: r, patchPaths: i}) {
        return P.makeLocator(t, Dge({parentLocator: e, sourceItem: r, patchPaths: i}, P.stringifyDescriptor))
    }

    function EO(t, {parentLocator: e, sourcePackage: r, patchPaths: i, patchHash: n}) {
        return P.makeLocator(t, Dge({
            parentLocator: e,
            sourceItem: r,
            sourceVersion: r.version,
            patchPaths: i,
            patchHash: n
        }, P.stringifyLocator))
    }

    function Rge({onAbsolute: t, onRelative: e, onBuiltin: r}, i) {
        i.startsWith("~") && (i = i.slice(1));
        let s = i.match(m9e);
        return s !== null ? r(s[1]) : x.isAbsolute(i) ? t(i) : e(i)
    }

    function Fge(t) {
        let e = t.startsWith("~");
        return e && (t = t.slice(1)), {optional: e}
    }

    function IO(t) {
        return Rge({onAbsolute: () => !1, onRelative: () => !0, onBuiltin: () => !1}, t)
    }

    async function QE(t, e, r) {
        let i = t !== null ? await r.fetcher.fetch(t, r) : null,
            n = i && i.localPath ? {packageFs: new _t(Ke.root), prefixPath: x.relative(Ke.root, i.localPath)} : i;
        i && i !== n && i.releaseFs && i.releaseFs();
        let s = await ve.releaseAfterUseAsync(async () => await Promise.all(e.map(async o => {
            let a = Fge(o), l = await Rge({
                onAbsolute: async () => await K.readFilePromise(o, "utf8"),
                onRelative: async () => {
                    if (n === null) throw new Error("Assertion failed: The parent locator should have been fetched");
                    return await n.packageFs.readFilePromise(x.join(n.prefixPath, o), "utf8")
                },
                onBuiltin: async c => await r.project.configuration.firstHook(u => u.getBuiltinPatch, r.project, c)
            }, o);
            return ie(N({}, a), {source: l})
        })));
        for (let o of s) typeof o.source == "string" && (o.source = o.source.replace(/\r\n?/g, `
`));
        return s
    }

    async function yO(t, {cache: e, project: r}) {
        let i = r.storedPackages.get(t.locatorHash);
        if (typeof i == "undefined") throw new Error("Assertion failed: Expected the package to be registered");
        let n = r.storedChecksums, s = new pi, o = r.configuration.makeFetcher(),
            a = await o.fetch(t, {cache: e, project: r, fetcher: o, checksums: n, report: s}),
            l = await K.mktempPromise(), c = x.join(l, "source"), u = x.join(l, "user"),
            g = x.join(l, ".yarn-patch.json");
        return await Promise.all([K.copyPromise(c, a.prefixPath, {baseFs: a.packageFs}), K.copyPromise(u, a.prefixPath, {baseFs: a.packageFs}), K.writeJsonPromise(g, {
            locator: P.stringifyLocator(t),
            version: i.version
        })]), K.detachTemp(l), u
    }

    async function wO(t, e) {
        let r = H.fromPortablePath(t).replace(/\\/g, "/"), i = H.fromPortablePath(e).replace(/\\/g, "/"), {
            stdout: n,
            stderr: s
        } = await Fr.execvp("git", ["-c", "core.safecrlf=false", "diff", "--src-prefix=a/", "--dst-prefix=b/", "--ignore-cr-at-eol", "--full-index", "--no-index", "--text", r, i], {
            cwd: H.toPortablePath(process.cwd()),
            env: ie(N({}, process.env), {GIT_CONFIG_NOSYSTEM: "1", HOME: "", XDG_CONFIG_HOME: "", USERPROFILE: ""})
        });
        if (s.length > 0) throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH.
The following error was reported by 'git':
${s}`);
        let o = r.startsWith("/") ? a => a.slice(1) : a => a;
        return n.replace(new RegExp(`(a|b)(${ve.escapeRegExp(`/${o(r)}/`)})`, "g"), "$1/").replace(new RegExp(`(a|b)${ve.escapeRegExp(`/${o(i)}/`)}`, "g"), "$1/").replace(new RegExp(ve.escapeRegExp(`${r}/`), "g"), "").replace(new RegExp(ve.escapeRegExp(`${i}/`), "g"), "")
    }

    function Nge(t, {configuration: e, report: r}) {
        for (let i of t.parts) for (let n of i.lines) switch (i.type) {
            case Zr.Context:
                r.reportInfo(null, `  ${Ae.pretty(e, n, "grey")}`);
                break;
            case Zr.Deletion:
                r.reportError($.FROZEN_LOCKFILE_EXCEPTION, `- ${Ae.pretty(e, n, Ae.Type.REMOVED)}`);
                break;
            case Zr.Insertion:
                r.reportError($.FROZEN_LOCKFILE_EXCEPTION, `+ ${Ae.pretty(e, n, Ae.Type.ADDED)}`);
                break;
            default:
                ve.assertNever(i.type)
        }
    }

    var BO = class {
        supports(e, r) {
            return !!e.reference.startsWith("patch:")
        }

        getLocalPath(e, r) {
            return null
        }

        async fetch(e, r) {
            let i = r.checksums.get(e.locatorHash) || null, [n, s, o] = await r.cache.fetchPackageFromCache(e, i, N({
                onHit: () => r.report.reportCacheHit(e),
                onMiss: () => r.report.reportCacheMiss(e, `${P.prettyLocator(r.project.configuration, e)} can't be found in the cache and will be fetched from the disk`),
                loader: () => this.patchPackage(e, r),
                skipIntegrityCheck: r.skipIntegrityCheck
            }, r.cacheOptions));
            return {
                packageFs: n,
                releaseFs: s,
                prefixPath: P.getIdentVendorPath(e),
                localPath: this.getLocalPath(e, r),
                checksum: o
            }
        }

        async patchPackage(e, r) {
            let {parentLocator: i, sourceLocator: n, sourceVersion: s, patchPaths: o} = bE(e), a = await QE(i, o, r),
                l = await K.mktempPromise(), c = x.join(l, "current.zip"), u = await r.fetcher.fetch(n, r),
                g = P.getIdentVendorPath(e), f = await fn(),
                h = new Ai(c, {libzip: f, create: !0, level: r.project.configuration.get("compressionLevel")});
            await ve.releaseAfterUseAsync(async () => {
                await h.copyPromise(g, u.prefixPath, {baseFs: u.packageFs, stableSort: !0})
            }, u.releaseFs), h.saveAndClose();
            for (let {source: p, optional: m} of a) {
                if (p === null) continue;
                let y = new Ai(c, {libzip: f, level: r.project.configuration.get("compressionLevel")}),
                    b = new _t(x.resolve(Ke.root, g), {baseFs: y});
                try {
                    await zb(Wb(p), {baseFs: b, version: s})
                } catch (S) {
                    if (!(S instanceof wE)) throw S;
                    let k = r.project.configuration.get("enableInlineHunks"),
                        T = !k && !m ? " (set enableInlineHunks for details)" : "",
                        Y = `${P.prettyLocator(r.project.configuration, e)}: ${S.message}${T}`, j = Z => {
                            !k || Nge(S.hunk, {configuration: r.project.configuration, report: Z})
                        };
                    if (y.discardAndClose(), m) {
                        r.report.reportWarningOnce($.PATCH_HUNK_FAILED, Y, {reportExtra: j});
                        continue
                    } else throw new ct($.PATCH_HUNK_FAILED, Y, j)
                }
                y.saveAndClose()
            }
            return new Ai(c, {libzip: f, level: r.project.configuration.get("compressionLevel")})
        }
    };
    var I9e = 3, bO = class {
        supportsDescriptor(e, r) {
            return !!e.range.startsWith("patch:")
        }

        supportsLocator(e, r) {
            return !!e.reference.startsWith("patch:")
        }

        shouldPersistResolution(e, r) {
            return !1
        }

        bindDescriptor(e, r, i) {
            let {patchPaths: n} = BE(e);
            return n.every(s => !IO(s)) ? e : P.bindDescriptor(e, {locator: P.stringifyLocator(r)})
        }

        getResolutionDependencies(e, r) {
            let {sourceDescriptor: i} = BE(e);
            return [i]
        }

        async getCandidates(e, r, i) {
            if (!i.fetchOptions) throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");
            let {parentLocator: n, sourceDescriptor: s, patchPaths: o} = BE(e), a = await QE(n, o, i.fetchOptions),
                l = r.get(s.descriptorHash);
            if (typeof l == "undefined") throw new Error("Assertion failed: The dependency should have been resolved");
            let c = Dn.makeHash(`${I9e}`, ...a.map(u => JSON.stringify(u))).slice(0, 6);
            return [EO(e, {parentLocator: n, sourcePackage: l, patchPaths: o, patchHash: c})]
        }

        async getSatisfying(e, r, i) {
            return null
        }

        async resolve(e, r) {
            let {sourceLocator: i} = bE(e), n = await r.resolver.resolve(i, r);
            return N(N({}, n), e)
        }
    };
    var vE = class extends Le {
        constructor() {
            super(...arguments);
            this.save = W.Boolean("-s,--save", !1, {description: "Add the patch to your resolution entries"});
            this.patchFolder = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState();
            let n = x.resolve(this.context.cwd, H.toPortablePath(this.patchFolder)), s = x.join(n, "../source"),
                o = x.join(n, "../.yarn-patch.json");
            if (!K.existsSync(s)) throw new Pe("The argument folder didn't get created by 'yarn patch'");
            let a = await wO(s, n), l = await K.readJsonPromise(o), c = P.parseLocator(l.locator, !0);
            if (!r.storedPackages.has(c.locatorHash)) throw new Pe("No package found in the project for the given locator");
            if (!this.save) {
                this.context.stdout.write(a);
                return
            }
            let u = e.get("patchFolder"), g = x.join(u, `${P.slugifyLocator(c)}.patch`);
            await K.mkdirPromise(u, {recursive: !0}), await K.writeFilePromise(g, a);
            let f = x.relative(r.cwd, g);
            r.topLevelWorkspace.manifest.resolutions.push({
                pattern: {
                    descriptor: {
                        fullName: P.stringifyIdent(c),
                        description: l.version
                    }
                }, reference: `patch:${P.stringifyLocator(c)}#${f}`
            }), await r.persist()
        }
    };
    vE.paths = [["patch-commit"]], vE.usage = Re.Usage({
        description: "generate a patch out of a directory",
        details: "\n      By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n      With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n      Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n    "
    });
    var Lge = vE;
    var SE = class extends Le {
        constructor() {
            super(...arguments);
            this.json = W.Boolean("--json", !1, {description: "Format the output as an NDJSON stream"});
            this.package = W.String()
        }

        async execute() {
            let e = await we.find(this.context.cwd, this.context.plugins), {
                project: r,
                workspace: i
            } = await ze.find(e, this.context.cwd), n = await Nt.find(e);
            if (!i) throw new ht(r.cwd, this.context.cwd);
            await r.restoreInstallState();
            let s = P.parseLocator(this.package);
            if (s.reference === "unknown") {
                let o = ve.mapAndFilter([...r.storedPackages.values()], a => a.identHash !== s.identHash ? ve.mapAndFilter.skip : P.isVirtualLocator(a) ? ve.mapAndFilter.skip : a);
                if (o.length === 0) throw new Pe("No package found in the project for the given locator");
                if (o.length > 1) throw new Pe(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them):
${o.map(a => `
- ${P.prettyLocator(e, a)}`).join("")}`);
                s = o[0]
            }
            if (!r.storedPackages.has(s.locatorHash)) throw new Pe("No package found in the project for the given locator");
            await Je.start({configuration: e, json: this.json, stdout: this.context.stdout}, async o => {
                let a = await yO(s, {cache: n, project: r});
                o.reportJson({
                    locator: P.stringifyLocator(s),
                    path: H.fromPortablePath(a)
                }), o.reportInfo($.UNNAMED, `Package ${P.prettyLocator(e, s)} got extracted with success!`), o.reportInfo($.UNNAMED, `You can now edit the following folder: ${Ae.pretty(e, H.fromPortablePath(a), "magenta")}`), o.reportInfo($.UNNAMED, `Once you are done run ${Ae.pretty(e, `yarn patch-commit -s ${process.platform === "win32" ? '"' : ""}${H.fromPortablePath(a)}${process.platform === "win32" ? '"' : ""}`, "cyan")} and Yarn will store a patchfile based on your changes.`)
            })
        }
    };
    SE.paths = [["patch"]], SE.usage = Re.Usage({
        description: "prepare a package for patching",
        details: "\n      This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n      \n      Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n    "
    });
    var Tge = SE;
    var y9e = {
        configuration: {
            enableInlineHunks: {
                description: "If true, the installs will print unmatched patch hunks",
                type: ye.BOOLEAN,
                default: !1
            },
            patchFolder: {
                description: "Folder where the patch files must be written",
                type: ye.ABSOLUTE_PATH,
                default: "./.yarn/patches"
            }
        }, commands: [Lge, Tge], fetchers: [BO], resolvers: [bO]
    }, w9e = y9e;
    var xO = {};
    ft(xO, {default: () => Q9e});
    var vO = class {
        supportsPackage(e, r) {
            return this.isEnabled(r)
        }

        async findPackageLocation(e, r) {
            if (!this.isEnabled(r)) throw new Error("Assertion failed: Expected the pnpm linker to be enabled");
            let i = SO(), n = r.project.installersCustomData.get(i);
            if (!n) throw new Pe(`The project in ${Ae.pretty(r.project.configuration, `${r.project.cwd}/package.json`, Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);
            let s = n.pathByLocator.get(e.locatorHash);
            if (typeof s == "undefined") throw new Pe(`Couldn't find ${P.prettyLocator(r.project.configuration, e)} in the currently installed pnpm map - running an install might help`);
            return s
        }

        async findPackageLocator(e, r) {
            if (!this.isEnabled(r)) return null;
            let i = SO(), n = r.project.installersCustomData.get(i);
            if (!n) throw new Pe(`The project in ${Ae.pretty(r.project.configuration, `${r.project.cwd}/package.json`, Ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);
            let s = e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);
            if (s) {
                let l = n.locatorByPath.get(s[1]);
                if (l) return l
            }
            let o = e, a = e;
            do {
                a = o, o = x.dirname(a);
                let l = n.locatorByPath.get(a);
                if (l) return l
            } while (o !== a);
            return null
        }

        makeInstaller(e) {
            return new Oge(e)
        }

        isEnabled(e) {
            return e.project.configuration.get("nodeLinker") === "pnpm"
        }
    }, Oge = class {
        constructor(e) {
            this.opts = e;
            this.asyncActions = new ve.AsyncActions(10);
            this.customData = {pathByLocator: new Map, locatorByPath: new Map}
        }

        getCustomDataKey() {
            return SO()
        }

        attachCustomData(e) {
        }

        async installPackage(e, r, i) {
            switch (e.linkType) {
                case Qt.SOFT:
                    return this.installPackageSoft(e, r, i);
                case Qt.HARD:
                    return this.installPackageHard(e, r, i)
            }
            throw new Error("Assertion failed: Unsupported package link type")
        }

        async installPackageSoft(e, r, i) {
            let n = x.resolve(r.packageFs.getRealPath(), r.prefixPath);
            return this.customData.pathByLocator.set(e.locatorHash, n), {packageLocation: n, buildDirective: null}
        }

        async installPackageHard(e, r, i) {
            var u;
            let n = B9e(e, {project: this.opts.project});
            this.customData.locatorByPath.set(n, P.stringifyLocator(e)), this.customData.pathByLocator.set(e.locatorHash, n), i.holdFetchResult(this.asyncActions.set(e.locatorHash, async () => {
                await K.mkdirPromise(n, {recursive: !0}), await K.copyPromise(n, r.prefixPath, {
                    baseFs: r.packageFs,
                    overwrite: !1
                })
            }));
            let o = P.isVirtualLocator(e) ? P.devirtualizeLocator(e) : e, a = {
                manifest: (u = await At.tryFind(r.prefixPath, {baseFs: r.packageFs})) != null ? u : new At,
                misc: {hasBindingGyp: ha.hasBindingGyp(r)}
            }, l = this.opts.project.getDependencyMeta(o, e.version), c = ha.extractBuildScripts(e, a, l, {
                configuration: this.opts.project.configuration,
                report: this.opts.report
            });
            return {packageLocation: n, buildDirective: c}
        }

        async attachInternalDependencies(e, r) {
            this.opts.project.configuration.get("nodeLinker") === "pnpm" && (!Uge(e, {project: this.opts.project}) || this.asyncActions.reduce(e.locatorHash, async i => {
                await i;
                let n = this.customData.pathByLocator.get(e.locatorHash);
                if (typeof n == "undefined") throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);
                let s = x.join(n, Pt.nodeModules), o = [], a = await Hge(s);
                for (let [l, c] of r) {
                    let u = c;
                    Uge(c, {project: this.opts.project}) || (this.opts.report.reportWarning($.UNNAMED, "The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"), u = P.devirtualizeLocator(c));
                    let g = this.customData.pathByLocator.get(u.locatorHash);
                    if (typeof g == "undefined") throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);
                    let f = P.stringifyIdent(l), h = x.join(s, f), p = x.relative(x.dirname(h), g), m = a.get(f);
                    a.delete(f), o.push(Promise.resolve().then(async () => {
                        if (m) {
                            if (m.isSymbolicLink() && await K.readlinkPromise(h) === p) return;
                            await K.removePromise(h)
                        }
                        await K.mkdirpPromise(x.dirname(h)), process.platform == "win32" ? await K.symlinkPromise(g, h, "junction") : await K.symlinkPromise(p, h)
                    }))
                }
                o.push(Gge(s, a)), await Promise.all(o)
            }))
        }

        async attachExternalDependents(e, r) {
            throw new Error("External dependencies haven't been implemented for the pnpm linker")
        }

        async finalizeInstall() {
            let e = Kge(this.opts.project);
            if (this.opts.project.configuration.get("nodeLinker") !== "pnpm") await K.removePromise(e); else {
                let r = [], i = new Set;
                for (let s of this.customData.pathByLocator.values()) {
                    let o = x.contains(e, s);
                    if (o !== null) {
                        let [a, , ...l] = o.split(x.sep);
                        i.add(a);
                        let c = x.join(e, a);
                        r.push(K.readdirPromise(c).then(u => Promise.all(u.map(async g => {
                            let f = x.join(c, g);
                            if (g === Pt.nodeModules) {
                                let h = await Hge(f);
                                return h.delete(l.join(x.sep)), Gge(f, h)
                            } else return K.removePromise(f)
                        }))).catch(u => {
                            if (u.code !== "ENOENT") throw u
                        }))
                    }
                }
                let n;
                try {
                    n = await K.readdirPromise(e)
                } catch {
                    n = []
                }
                for (let s of n) i.has(s) || r.push(K.removePromise(x.join(e, s)));
                await Promise.all(r)
            }
            return await this.asyncActions.wait(), await kO(e), this.opts.project.configuration.get("nodeLinker") !== "node-modules" && await kO(Mge(this.opts.project)), {customData: this.customData}
        }
    };

    function SO() {
        return JSON.stringify({name: "PnpmInstaller", version: 2})
    }

    function Mge(t) {
        return x.join(t.cwd, Pt.nodeModules)
    }

    function Kge(t) {
        return x.join(Mge(t), ".store")
    }

    function B9e(t, {project: e}) {
        let r = P.slugifyLocator(t), i = P.getIdentVendorPath(t);
        return x.join(Kge(e), r, i)
    }

    function Uge(t, {project: e}) {
        return !P.isVirtualLocator(t) || !e.tryWorkspaceByLocator(t)
    }

    async function Hge(t) {
        let e = new Map, r = [];
        try {
            r = await K.readdirPromise(t, {withFileTypes: !0})
        } catch (i) {
            if (i.code !== "ENOENT") throw i
        }
        try {
            for (let i of r) if (!i.name.startsWith(".")) if (i.name.startsWith("@")) {
                let n = await K.readdirPromise(x.join(t, i.name), {withFileTypes: !0});
                if (n.length === 0) e.set(i.name, i); else for (let s of n) e.set(`${i.name}/${s.name}`, s)
            } else e.set(i.name, i)
        } catch (i) {
            if (i.code !== "ENOENT") throw i
        }
        return e
    }

    async function Gge(t, e) {
        var n;
        let r = [], i = new Set;
        for (let s of e.keys()) {
            r.push(K.removePromise(x.join(t, s)));
            let o = (n = P.tryParseIdent(s)) == null ? void 0 : n.scope;
            o && i.add(`@${o}`)
        }
        return Promise.all(r).then(() => Promise.all([...i].map(s => kO(x.join(t, s)))))
    }

    async function kO(t) {
        try {
            await K.rmdirPromise(t)
        } catch (e) {
            if (e.code !== "ENOENT" && e.code !== "ENOTEMPTY") throw e
        }
    }

    var b9e = {linkers: [vO]}, Q9e = b9e;
    var W0 = () => ({
        modules: new Map([["@yarnpkg/cli", VC], ["@yarnpkg/core", vC], ["@yarnpkg/fslib", $h], ["@yarnpkg/libzip", Kd], ["@yarnpkg/parsers", ap], ["@yarnpkg/shell", Hd], ["clipanion", u$(mp)], ["semver", v9e], ["typanion", ag], ["yup", S9e], ["@yarnpkg/plugin-essentials", uL], ["@yarnpkg/plugin-compat", pL], ["@yarnpkg/plugin-dlx", dL], ["@yarnpkg/plugin-file", QL], ["@yarnpkg/plugin-git", cL], ["@yarnpkg/plugin-github", SL], ["@yarnpkg/plugin-http", PL], ["@yarnpkg/plugin-init", NL], ["@yarnpkg/plugin-link", KL], ["@yarnpkg/plugin-nm", fT], ["@yarnpkg/plugin-npm", gO], ["@yarnpkg/plugin-npm-cli", CO], ["@yarnpkg/plugin-pack", AO], ["@yarnpkg/plugin-patch", QO], ["@yarnpkg/plugin-pnp", rT], ["@yarnpkg/plugin-pnpm", xO]]),
        plugins: new Set(["@yarnpkg/plugin-essentials", "@yarnpkg/plugin-compat", "@yarnpkg/plugin-dlx", "@yarnpkg/plugin-file", "@yarnpkg/plugin-git", "@yarnpkg/plugin-github", "@yarnpkg/plugin-http", "@yarnpkg/plugin-init", "@yarnpkg/plugin-link", "@yarnpkg/plugin-nm", "@yarnpkg/plugin-npm", "@yarnpkg/plugin-npm-cli", "@yarnpkg/plugin-pack", "@yarnpkg/plugin-patch", "@yarnpkg/plugin-pnp", "@yarnpkg/plugin-pnpm"])
    });
    C0({binaryVersion: Kr || "<unknown>", pluginConfiguration: W0()});
})();
/*!
 * buildToken
 * Builds OAuth token prefix (helper function)
 *
 * @name buildToken
 * @function
 * @param {GitUrl} obj The parsed Git url object.
 * @return {String} token prefix
 */
/*!
 * fill-range <https://github.com/jonschlinkert/fill-range>
 *
 * Copyright (c) 2014-present, Jon Schlinkert.
 * Licensed under the MIT License.
 */
/*!
 * is-extglob <https://github.com/jonschlinkert/is-extglob>
 *
 * Copyright (c) 2014-2016, Jon Schlinkert.
 * Licensed under the MIT License.
 */
/*!
 * is-glob <https://github.com/jonschlinkert/is-glob>
 *
 * Copyright (c) 2014-2017, Jon Schlinkert.
 * Released under the MIT License.
 */
/*!
 * is-number <https://github.com/jonschlinkert/is-number>
 *
 * Copyright (c) 2014-present, Jon Schlinkert.
 * Released under the MIT License.
 */
/*!
 * is-windows <https://github.com/jonschlinkert/is-windows>
 *
 * Copyright © 2015-2018, Jon Schlinkert.
 * Released under the MIT License.
 */
/*!
 * to-regex-range <https://github.com/micromatch/to-regex-range>
 *
 * Copyright (c) 2015-present, Jon Schlinkert.
 * Released under the MIT License.
 */
