const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Dashboard-BZtcH2qk.js","./vue-CNrckKKA.js","./ColoredChip.vue_vue_type_script_setup_true_lang-DdstTZOS.js","./vuetify-CX6A6eCZ.js","./TagFormDialog.vue_vue_type_script_setup_true_lang-0UZeL-bz.js","./Dashboard-DYNPPe4U.css","./Settings-BUcyxfe-.js","./PasswordField.vue_vue_type_script_setup_true_lang-CbMvAqSz.js","./Settings-DQiwVX2O.css","./RssArticles-B9paJCad.js","./RssArticles-9vWSa0z4.css","./Logs-CsUeAlEP.js","./SearchEngine-BGj6UdDJ.js","./SearchEngine-D9tNU7S0.css","./TorrentCreator-oSAIEirv.js","./TorrentDetail-HtdwmSWK.js","./TorrentDetail-BeZJnkuc.css","./MagnetHandler-VhtXokMs.js","./Login-DEqdiTBW.js"])))=>i.map(i=>d[i]);
import { w as me, ac as yx, o as pa, a as T, a7 as Ue, s as de, P as Pt, aa as bx, v as Eo, ad as K, d as W, ae as Fx, g as nl, af as Ly, f as Et, u as Y, b as Lt, ag as jd, r as Ba, A as ea, a1 as Fa, a8 as cr, S as il, ah as kx, R as gt, ai as xx, aj as pi, a2 as Ti, e as um, q as ga, Q as ol, X as gr, t as Ei, ak as wx, m as y, al as cm, am as Kr, j as On, n as Z, I as Mr, B as at, a5 as mt, an as qa, F as Ce, a6 as Ca, x as La, p as Kt, k as Sx, ao as Cx, ap as Ax, a4 as Iy, K as Se, l as Gt, aq as Dx, y as Tx, ar as Ex, J as Pe, h as Ft, _ as lo, $ as uo, D as ze, E as ve, G as _x, H as O, a0 as zy, c as sl, O as it, as as Px, N as Dt, U as dm, Y as dr, Z as Ny, at as Oy, W as hm, T as nt, M as gn, au as Bx, av as Mx, aw as Rx, ax as Lx, ay as Ix, az as zx, aA as Nx, aB as Ox } from "./vue-CNrckKKA.js";
import { u as _o, a as Ia, g as te, p as $, b as Bt, d as mm, i as Yf, c as Hx, e as ll, f as Vx, h as Rr, j as Wx, k as xe, l as Gx, m as ie, n as Qe, o as we, I as Me, q as $x, S as fm, r as za, s as ut, E as ra, t as Be, v as Aa, w as pm, x as qf, y as an, z as Tt, A as xi, B as It, C as zt, D as ul, F as vn, G as Ux, H as co, J as jx, K as Hy, L as gm, M as Ma, N as Xt, O as Hn, P as Yx, Q as vr, R as qx, T as Yt, U as Vn, V as Ms, W as Kf, X as rn, Y as br, Z as Kx, _ as Vy, $ as $t, a0 as bi, a1 as Xx, a2 as Yd, a3 as lu, a4 as uu, a5 as Xf, a6 as Rs, a7 as cu, a8 as Jf, a9 as Zf, aa as Rt, ab as Jx, ac as Zx, ad as qd, ae as Qx, af as ew, ag as Wy, ah as vm, ai as tw, aj as aw, ak as rw, al as ym, am as wi, an as Gy, ao as nw, ap as cl, aq as Qf, ar as Wn, as as Gn, at as $y, au as iw, av as ow, aw as Uy, ax as jy, ay as Yy, az as sw, aA as lw, aB as uw, aC as qy, aD as cw, aE as Kd, aF as dl, aG as Xd, aH as os, aI as ep, aJ as $r, aK as Jd, aL as tp, aM as Ky, aN as dw, aO as hw, aP as Ls, aQ as ss, aR as mw, aS as fw, aT as ap, aU as Po, aV as pw, aW as gw, aX as vw, aY as yw, aZ as bw, a_ as Fw, a$ as kw, b0 as xw } from "./vuetify-CX6A6eCZ.js";
let sh, Th, qs, Qn, jn, Sl, Bi, kr, e1, K3, Ks, zl, rt, Dh, Os, M4, U6, Bf, sa, oW, Nt, Jr, ya, Ll, Ka, nW, oa, ko, _e, pv, Ee, G6, Te, xm, gN, ox, iW, gD, uW, d1, Zy, Mw, Rw, Bw, Pw, _w, Aw, Cw, Dw, Xy, Sw, ww, no, io, Tw, Ew, Yn, Vt, ZB, bn, Zt, yh, qB, $s, RF, YB, XW, Ys, NV, tb, jr, n1, MF, eb, ez, Ml, pD, fd, cW, eM, Yr, b0, ob, Si, OV, a4, N4, iR, wl, lN, F0, Br, Jy, zm, gv, Nn, Ln, Rn, Im, mW, hl, Lz, Mz, No, Qy, fD, hW, dW, sW, fW, JB, XI, Vm, r4, lh, Mm, Rm, ID, nF, iF, Vs, Le, Um, to, Ze, Lr, _l, lW, mi, $A, Cr, zD, ND, Bm, OD, zz, RD, bl, ri, Hi, ai, rk, QF, Oi, un, Re, Pn, Wm, LF, ka, Qd, qe, Pa, tt, _n, qt, Pr, _a, tm, W0, V0;
let __tla = (async ()=>{
    (function() {
        const e = document.createElement("link").relList;
        if (e && e.supports && e.supports("modulepreload")) return;
        for (const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);
        new MutationObserver((n)=>{
            for (const i of n)if (i.type === "childList") for (const o of i.addedNodes)o.tagName === "LINK" && o.rel === "modulepreload" && r(o);
        }).observe(document, {
            childList: !0,
            subtree: !0
        });
        function a(n) {
            const i = {};
            return n.integrity && (i.integrity = n.integrity), n.referrerPolicy && (i.referrerPolicy = n.referrerPolicy), n.crossOrigin === "use-credentials" ? i.credentials = "include" : n.crossOrigin === "anonymous" ? i.credentials = "omit" : i.credentials = "same-origin", i;
        }
        function r(n) {
            if (n.ep) return;
            n.ep = !0;
            const i = a(n);
            fetch(n.href, i);
        }
    })();
    window.onerror = function(t, e, a, r, n) {
        let i = "";
        r && (i += `
column: ` + r), n && (i += `
error: ` + n);
        const o = "Error: " + t + `
url: ` + e + `
line: ` + a + i;
        sessionStorage.getItem("vuetorrent_mounted") === "true" ? console.error(o) : alert(o);
    };
    let Ga, ab, wt;
    ww = ((t)=>(t[t.NEVER = 0] = "NEVER", t[t.IF_ADDED = 1] = "IF_ADDED", t[t.ALWAYS = 2] = "ALWAYS", t))(ww || {});
    Sw = ((t)=>(t[t.TCP_uTP = 0] = "TCP_uTP", t[t.TCP = 1] = "TCP", t[t.uTP = 2] = "uTP", t))(Sw || {});
    no = ((t)=>(t.ORIGINAL = "Original", t.SUBFOLDER = "Subfolder", t.NO_SUBFOLDER = "NoSubfolder", t))(no || {});
    Cw = ((t)=>(t[t.PREFER_ENCRYPTION = 0] = "PREFER_ENCRYPTION", t[t.FORCE_ON = 1] = "FORCE_ON", t[t.FORCE_OFF = 2] = "FORCE_OFF", t))(Cw || {});
    Aw = ((t)=>(t[t.DAYS = 0] = "DAYS", t[t.MONTHS = 1] = "MONTHS", t[t.YEARS = 2] = "YEARS", t))(Aw || {});
    Dw = ((t)=>(t[t.DEFAULT = -1] = "DEFAULT", t[t.STOP_TORRENT = 0] = "STOP_TORRENT", t[t.REMOVE_TORRENT = 1] = "REMOVE_TORRENT", t[t.ENABLE_SUPERSEEDING = 2] = "ENABLE_SUPERSEEDING", t[t.REMOVE_TORRENT_AND_FILES = 3] = "REMOVE_TORRENT_AND_FILES", t))(Dw || {});
    Xy = ((t)=>(t.NONE = "None", t.SOCKS4 = "SOCKS4", t.SOCKS5 = "SOCKS5", t.HTTP = "HTTP", t))(Xy || {});
    Jy = ((t)=>(t.LEGACY = "Legacy", t.SQLITE = "SQLite", t))(Jy || {});
    Tw = ((t)=>(t[t.MONITORED_FOLDER = 0] = "MONITORED_FOLDER", t[t.DEFAULT_SAVE_PATH = 1] = "DEFAULT_SAVE_PATH", t))(Tw || {});
    Ew = ((t)=>(t[t.EVERY_DAY = 0] = "EVERY_DAY", t[t.EVERY_WEEKDAY = 1] = "EVERY_WEEKDAY", t[t.EVERY_WEEKEND = 2] = "EVERY_WEEKEND", t[t.EVERY_MONDAY = 3] = "EVERY_MONDAY", t[t.EVERY_TUESDAY = 4] = "EVERY_TUESDAY", t[t.EVERY_WEDNESDAY = 5] = "EVERY_WEDNESDAY", t[t.EVERY_THURSDAY = 6] = "EVERY_THURSDAY", t[t.EVERY_FRIDAY = 7] = "EVERY_FRIDAY", t[t.EVERY_SATURDAY = 8] = "EVERY_SATURDAY", t[t.EVERY_SUNDAY = 9] = "EVERY_SUNDAY", t))(Ew || {});
    io = ((t)=>(t.NONE = "None", t.METADATA_RECEIVED = "MetadataReceived", t.FILES_CHECKED = "FilesChecked", t))(io || {});
    Zy = ((t)=>(t.DELETE = "Delete", t.MOVE_TO_TRASH = "MoveToTrash", t))(Zy || {});
    _w = ((t)=>(t[t.ROUND_ROBIN = 0] = "ROUND_ROBIN", t[t.FASTEST_UPLOAD = 1] = "FASTEST_UPLOAD", t[t.ANTI_LEECH = 2] = "ANTI_LEECH", t))(_w || {});
    Pw = ((t)=>(t[t.FIXED_SLOTS = 0] = "FIXED_SLOTS", t[t.UPLOAD_RATE_BASED = 1] = "UPLOAD_RATE_BASED", t))(Pw || {});
    Bw = ((t)=>(t[t.PREFER_TCP = 0] = "PREFER_TCP", t[t.PEER_PROPORTIONAL = 1] = "PEER_PROPORTIONAL", t))(Bw || {});
    Mw = ((t)=>(t[t.DEFAULT = 0] = "DEFAULT", t[t.MEMORY_MAPPED_FILES = 1] = "MEMORY_MAPPED_FILES", t[t.POSIX_COMPLIANT = 2] = "POSIX_COMPLIANT", t[t.SIMPLE_PREAD_PWRITE = 3] = "SIMPLE_PREAD_PWRITE", t))(Mw || {});
    Rw = ((t)=>(t[t.DISABLE_OS_CACHE = 0] = "DISABLE_OS_CACHE", t[t.ENABLE_OS_CACHE = 1] = "ENABLE_OS_CACHE", t[t.WRITE_THROUGH = 2] = "WRITE_THROUGH", t))(Rw || {});
    Ga = ((t)=>(t.CONNECTED = "connected", t.FIREWALLED = "firewalled", t.DISCONNECTED = "disconnected", t.UNKNOWN = "unknown", t))(Ga || {});
    mi = ((t)=>(t[t.MIXED = -1] = "MIXED", t[t.DO_NOT_DOWNLOAD = 0] = "DO_NOT_DOWNLOAD", t[t.NORMAL = 1] = "NORMAL", t[t.HIGH = 6] = "HIGH", t[t.MAXIMAL = 7] = "MAXIMAL", t))(mi || {});
    rt = ((t)=>(t[t.NONE = 0] = "NONE", t[t.NORMAL = 1] = "NORMAL", t[t.INFO = 2] = "INFO", t[t.WARNING = 4] = "WARNING", t[t.CRITICAL = 8] = "CRITICAL", t[t.ALL = 15] = "ALL", t))(rt || {});
    Qy = ((t)=>(t[t.MISSING = 0] = "MISSING", t[t.DOWNLOADING = 1] = "DOWNLOADING", t[t.DOWNLOADED = 2] = "DOWNLOADED", t))(Qy || {});
    eb = ((t)=>(t.FAILED = "Failed", t.QUEUED = "Queued", t.RUNNING = "Running", t.FINISHED = "Finished", t))(eb || {});
    tb = ((t)=>(t.V1 = "v1", t.V2 = "v2", t.HYBRID = "hybrid", t))(tb || {});
    ab = ((t)=>(t.AUTO_MANAGED = "AutoManaged", t.FORCED = "Forced", t))(ab || {});
    wt = ((t)=>(t.META_DL = "metaDL", t.FORCED_META_DL = "forcedMetaDL", t.FORCED_DL = "forcedDL", t.DOWNLOADING = "downloading", t.STALLED_DL = "stalledDL", t.PAUSED_DL = "pausedDL", t.STOPPED_DL = "stoppedDL", t.QUEUED_DL = "queuedDL", t.FORCED_UP = "forcedUP", t.UPLOADING = "uploading", t.STALLED_UP = "stalledUP", t.PAUSED_UP = "pausedUP", t.STOPPED_UP = "stoppedUP", t.QUEUED_UP = "queuedUP", t.CHECKING_DL = "checkingDL", t.CHECKING_UP = "checkingUP", t.CHECKING_RESUME_DATA = "checkingResumeData", t.ALLOCATING = "allocating", t.MOVING = "moving", t.MISSING_FILES = "missingFiles", t.ERROR = "error", t.UNKNOWN = "unknown", t))(wt || {});
    const rp = {
        added_on: (t, e, a)=>Te.numeric.compare(t.added_on, e.added_on, a),
        amount_left: (t, e, a)=>Te.numeric.compare(t.amount_left, e.amount_left, a),
        auto_tmm: (t, e, a)=>Te.boolean.compare(t.auto_tmm, e.auto_tmm, a),
        availability: (t, e, a)=>Te.numeric.compare(t.availability, e.availability, a),
        available_peers: (t, e, a)=>Te.numeric.compare(t.available_peers, e.available_peers, a),
        available_seeds: (t, e, a)=>Te.numeric.compare(t.available_seeds, e.available_seeds, a),
        avgDownloadSpeed: (t, e, a)=>Te.numeric.compare(t.avgDownloadSpeed, e.avgDownloadSpeed, a),
        avgUploadSpeed: (t, e, a)=>Te.numeric.compare(t.avgUploadSpeed, e.avgUploadSpeed, a),
        basename_content_path: (t, e, a)=>Te.textWithNumbers.compare(t.basename_content_path, e.basename_content_path, a),
        basename_download_path: (t, e, a)=>Te.textWithNumbers.compare(t.basename_download_path, e.basename_download_path, a),
        basename_save_path: (t, e, a)=>Te.textWithNumbers.compare(t.basename_save_path, e.basename_save_path, a),
        category: (t, e, a)=>Te.textWithNumbers.compare(t.category, e.category, a),
        comment: (t, e, a)=>Te.text.compare(t.comment, e.comment, a),
        completed_on: (t, e, a)=>Te.numeric.compare(t.completed_on, e.completed_on, a),
        content_path: (t, e, a)=>Te.textWithNumbers.compare(t.content_path, e.content_path, a),
        dl_limit: (t, e, a)=>Te.numeric.compare(t.dl_limit, e.dl_limit, a),
        dlspeed: (t, e, a)=>Te.numeric.compare(t.dlspeed, e.dlspeed, a),
        download_path: (t, e, a)=>Te.textWithNumbers.compare(t.download_path, e.download_path, a),
        downloaded: (t, e, a)=>Te.numeric.compare(t.downloaded, e.downloaded, a),
        downloaded_session: (t, e, a)=>Te.numeric.compare(t.downloaded_session, e.downloaded_session, a),
        eta: (t, e, a)=>Te.numeric.compare(t.eta === 0 && t.forced ? Ws : t.eta, e.eta === 0 && e.forced ? Ws : e.eta, a),
        f_l_piece_prio: (t, e, a)=>Te.boolean.compare(t.f_l_piece_prio, e.f_l_piece_prio, a),
        forced: (t, e, a)=>Te.boolean.compare(t.forced, e.forced, a),
        globalSpeed: (t, e, a)=>Te.numeric.compare(t.globalSpeed, e.globalSpeed, a),
        globalVolume: (t, e, a)=>Te.numeric.compare(t.globalVolume, e.globalVolume, a),
        hasMetadata: (t, e, a)=>Te.boolean.compare(t.hasMetadata, e.hasMetadata, a),
        hash: (t, e, a)=>Te.text.compare(t.hash, e.hash, a),
        inactive_seeding_time_limit: (t, e, a)=>Te.numeric.compare(t.inactive_seeding_time_limit, e.inactive_seeding_time_limit, a),
        infohash_v1: (t, e, a)=>Te.text.compare(t.infohash_v1, e.infohash_v1, a),
        infohash_v2: (t, e, a)=>Te.text.compare(t.infohash_v2, e.infohash_v2, a),
        last_activity: (t, e, a)=>Te.invertedNumeric.compare(t.last_activity, e.last_activity, a),
        magnet: (t, e, a)=>Te.text.compare(t.magnet, e.magnet, a),
        name: (t, e, a)=>Te.textWithNumbers.compare(t.name, e.name, a),
        num_leechs: (t, e, a)=>Te.numeric.compare(t.num_leechs, e.num_leechs, a) || Te.numeric.compare(t.available_peers, e.available_peers, a),
        num_seeds: (t, e, a)=>Te.numeric.compare(t.num_seeds, e.num_seeds, a) || Te.numeric.compare(t.available_seeds, e.available_seeds, a),
        popularity: (t, e, a)=>Te.numeric.compare(t.popularity, e.popularity, a),
        priority: (t, e, a)=>t.priority > 0 && e.priority > 0 ? Te.numeric.compare(t.priority, e.priority, a) : t.priority <= 0 && e.priority <= 0 ? Te.numeric.compare(t.added_on, e.added_on, a) : t.priority <= 0 ? 1 : -1,
        private: (t, e, a)=>Te.boolean.compare(t.private, e.private, a),
        progress: (t, e, a)=>Te.numeric.compare(t.progress, e.progress, a),
        ratio: (t, e, a)=>Te.numeric.compare(t.ratio, e.ratio, a),
        ratio_limit: (t, e, a)=>Te.numeric.compare(t.ratio_limit, e.ratio_limit, a),
        reannounce: (t, e, a)=>Te.numeric.compare(t.reannounce, e.reannounce, a),
        rootPath: (t, e, a)=>Te.text.compare(t.rootPath, e.rootPath, a),
        savePath: (t, e, a)=>Te.textWithNumbers.compare(t.savePath, e.savePath, a),
        seeding_time: (t, e, a)=>Te.numeric.compare(t.seeding_time, e.seeding_time, a),
        seeding_time_limit: (t, e, a)=>Te.numeric.compare(t.seeding_time_limit, e.seeding_time_limit, a),
        seen_complete: (t, e, a)=>Te.numeric.compare(t.seen_complete, e.seen_complete, a),
        seq_dl: (t, e, a)=>Te.boolean.compare(t.seq_dl, e.seq_dl, a),
        size: (t, e, a)=>Te.numeric.compare(t.size, e.size, a),
        state: (t, e, a)=>Te.numeric.compare(t.state, e.state, a),
        super_seeding: (t, e, a)=>Te.boolean.compare(t.super_seeding, e.super_seeding, a),
        tags: (t, e, a)=>Te.arrayText.compare(t.tags, e.tags, a),
        time_active: (t, e, a)=>Te.numeric.compare(t.time_active, e.time_active, a),
        total_size: (t, e, a)=>Te.numeric.compare(t.total_size, e.total_size, a),
        tracker: (t, e, a)=>Te.text.compare(t.tracker, e.tracker, a),
        trackerDomain: (t, e, a)=>Te.text.compare(t.trackerDomain, e.trackerDomain, a),
        trackers_count: (t, e, a)=>Te.numeric.compare(t.trackers_count, e.trackers_count, a),
        truncated_hash: (t, e, a)=>Te.text.compare(t.truncated_hash, e.truncated_hash, a),
        up_limit: (t, e, a)=>Te.numeric.compare(t.up_limit, e.up_limit, a),
        uploaded: (t, e, a)=>Te.numeric.compare(t.uploaded, e.uploaded, a),
        uploaded_session: (t, e, a)=>Te.numeric.compare(t.uploaded_session, e.uploaded_session, a),
        upspeed: (t, e, a)=>Te.numeric.compare(t.upspeed, e.upspeed, a)
    };
    function Zd(t) {
        return yx() ? (pa(t), !0) : !1;
    }
    const du = new WeakMap, Lw = (...t)=>{
        var e;
        const a = t[0], r = (e = nl()) == null ? void 0 : e.proxy;
        if (r == null && !Ly()) throw new Error("injectLocal must be called in setup");
        return r && du.has(r) && a in du.get(r) ? du.get(r)[a] : Et(...t);
    }, Is = typeof window < "u" && typeof document < "u";
    typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
    const Iw = Object.prototype.toString, zw = (t)=>Iw.call(t) === "[object Object]", hu = (t, e, a)=>Math.min(a, Math.max(e, t)), Fi = ()=>{};
    function Nw(...t) {
        if (t.length !== 1) return K(...t);
        const e = t[0];
        return typeof e == "function" ? Eo(Fx(()=>({
                get: e,
                set: Fi
            }))) : W(e);
    }
    function rb(t, e) {
        function a(...r) {
            return new Promise((n, i)=>{
                Promise.resolve(t(()=>e.apply(this, r), {
                    fn: e,
                    thisArg: this,
                    args: r
                })).then(n).catch(i);
            });
        }
        return a;
    }
    const nb = (t)=>t();
    function Ow(t, e = {}) {
        let a, r, n = Fi;
        const i = (l)=>{
            clearTimeout(l), n(), n = Fi;
        };
        let o;
        return (l)=>{
            const u = Ue(t), c = Ue(e.maxWait);
            return a && i(a), u <= 0 || c !== void 0 && c <= 0 ? (r && (i(r), r = null), Promise.resolve(l())) : new Promise((d, h)=>{
                n = e.rejectOnCancel ? h : d, o = l, c && !r && (r = setTimeout(()=>{
                    a && i(a), r = null, d(o());
                }, c)), a = setTimeout(()=>{
                    r && i(r), r = null, d(l());
                }, u);
            });
        };
    }
    function Hw(t = nb, e = {}) {
        const { initialState: a = "active" } = e, r = Nw(a === "active");
        function n() {
            r.value = !1;
        }
        function i() {
            r.value = !0;
        }
        const o = (...s)=>{
            r.value && t(...s);
        };
        return {
            isActive: Eo(r),
            pause: n,
            resume: i,
            eventFilter: o
        };
    }
    function np(t) {
        return t.endsWith("rem") ? Number.parseFloat(t) * 16 : Number.parseFloat(t);
    }
    function mu(t) {
        return Array.isArray(t) ? t : [
            t
        ];
    }
    NV = function(t, e = 200, a = {}) {
        return rb(Ow(e, a), t);
    };
    function Vw(t, e, a = {}) {
        const { eventFilter: r = nb, ...n } = a;
        return me(t, rb(r, e), n);
    }
    function ip(t, e, a = {}) {
        const { eventFilter: r, initialState: n = "active", ...i } = a, { eventFilter: o, pause: s, resume: l, isActive: u } = Hw(r, {
            initialState: n
        });
        return {
            stop: Vw(t, e, {
                ...i,
                eventFilter: o
            }),
            pause: s,
            resume: l,
            isActive: u
        };
    }
    function op(t, e, ...[a]) {
        const { flush: r = "sync", deep: n = !1, immediate: i = !0, direction: o = "both", transform: s = {} } = a || {}, l = [], u = "ltr" in s && s.ltr || ((h)=>h), c = "rtl" in s && s.rtl || ((h)=>h);
        return (o === "both" || o === "ltr") && l.push(ip(t, (h)=>{
            l.forEach((m)=>m.pause()), e.value = u(h), l.forEach((m)=>m.resume());
        }, {
            flush: r,
            deep: n,
            immediate: i
        })), (o === "both" || o === "rtl") && l.push(ip(e, (h)=>{
            l.forEach((m)=>m.pause()), t.value = c(h), l.forEach((m)=>m.resume());
        }, {
            flush: r,
            deep: n,
            immediate: i
        })), ()=>{
            l.forEach((h)=>h.stop());
        };
    }
    function Ww(t, e) {
        return T(()=>Ue(t).map((a)=>Ue(a)).filter(e));
    }
    function Gw(t) {
        return Array.from(new Set(t));
    }
    OV = function(t, e) {
        return T(()=>{
            const a = Ue(t).map((r)=>Ue(r));
            return Gw(a);
        });
    };
    Qd = function(t, e = 1e3, a = {}) {
        const { immediate: r = !0, immediateCallback: n = !1 } = a;
        let i = null;
        const o = de(!1);
        function s() {
            i && (clearInterval(i), i = null);
        }
        function l() {
            o.value = !1, s();
        }
        function u() {
            const c = Ue(e);
            c <= 0 || (o.value = !0, n && t(), s(), o.value && (i = setInterval(t, c)));
        }
        if (r && Is && u(), Pt(e) || typeof e == "function") {
            const c = me(e, ()=>{
                o.value && Is && u();
            });
            Zd(c);
        }
        return Zd(l), {
            isActive: bx(o),
            pause: l,
            resume: u
        };
    };
    function $w(t, e, a) {
        return me(t, e, {
            ...a,
            immediate: !0
        });
    }
    function fi(t, e, a) {
        return me(t, (n, i, o)=>{
            n && e(n, i, o);
        }, {
            ...a,
            once: !1
        });
    }
    const ib = Is ? window : void 0;
    function Uw(t) {
        var e;
        const a = Ue(t);
        return (e = a?.$el) != null ? e : a;
    }
    function eo(...t) {
        const e = [], a = ()=>{
            e.forEach((s)=>s()), e.length = 0;
        }, r = (s, l, u, c)=>(s.addEventListener(l, u, c), ()=>s.removeEventListener(l, u, c)), n = T(()=>{
            const s = mu(Ue(t[0])).filter((l)=>l != null);
            return s.every((l)=>typeof l != "string") ? s : void 0;
        }), i = $w(()=>{
            var s, l;
            return [
                (l = (s = n.value) == null ? void 0 : s.map((u)=>Uw(u))) != null ? l : [
                    ib
                ].filter((u)=>u != null),
                mu(Ue(n.value ? t[1] : t[0])),
                mu(Y(n.value ? t[2] : t[1])),
                Ue(n.value ? t[3] : t[2])
            ];
        }, ([s, l, u, c])=>{
            if (a(), !s?.length || !l?.length || !u?.length) return;
            const d = zw(c) ? {
                ...c
            } : c;
            e.push(...s.flatMap((h)=>l.flatMap((m)=>u.map((f)=>r(h, m, f, d)))));
        }, {
            flush: "post"
        }), o = ()=>{
            i(), a();
        };
        return Zd(a), o;
    }
    function jw() {
        const t = de(!1), e = nl();
        return e && ea(()=>{
            t.value = !0;
        }, e), t;
    }
    function Yw(t) {
        const e = jw();
        return T(()=>(e.value, !!t()));
    }
    const qw = Symbol("vueuse-ssr-width");
    function Kw() {
        const t = Ly() ? Lw(qw, null) : null;
        return typeof t == "number" ? t : void 0;
    }
    function Xw(t, e = {}) {
        const { window: a = ib, ssrWidth: r = Kw() } = e, n = Yw(()=>a && "matchMedia" in a && typeof a.matchMedia == "function"), i = de(typeof r == "number"), o = de(), s = de(!1), l = (u)=>{
            s.value = u.matches;
        };
        return Lt(()=>{
            if (i.value) {
                i.value = !n.value;
                const u = Ue(t).split(",");
                s.value = u.some((c)=>{
                    const d = c.includes("not all"), h = c.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/), m = c.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);
                    let f = !!(h || m);
                    return h && f && (f = r >= np(h[1])), m && f && (f = r <= np(m[1])), d ? !f : f;
                });
                return;
            }
            n.value && (o.value = a.matchMedia(Ue(t)), s.value = o.value.matches);
        }), eo(o, "change", l, {
            passive: !0
        }), T(()=>s.value);
    }
    function fu(t, e = {}) {
        var a, r;
        const n = de(!1), i = de(null);
        let o = 0, s = !0;
        if (Is) {
            const l = typeof e == "function" ? {
                onDrop: e
            } : e, u = (a = l.multiple) != null ? a : !0, c = (r = l.preventDefaultForUnhandled) != null ? r : !1, d = (g)=>{
                var v, b;
                const k = Array.from((b = (v = g.dataTransfer) == null ? void 0 : v.files) != null ? b : []);
                return k.length === 0 ? null : u ? k : [
                    k[0]
                ];
            }, h = (g)=>{
                const v = Y(l.dataTypes);
                return typeof v == "function" ? v(g) : v?.length ? g.length === 0 ? !1 : g.every((b)=>v.some((k)=>b.includes(k))) : !0;
            }, m = (g)=>{
                const v = Array.from(g ?? []).map((S)=>S.type), b = h(v), k = u || g.length <= 1;
                return b && k;
            }, f = ()=>/^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !("chrome" in window), p = (g, v)=>{
                var b, k, S, x, C, w;
                const F = (b = g.dataTransfer) == null ? void 0 : b.items;
                if (s = (k = F && m(F)) != null ? k : !1, c && g.preventDefault(), !f() && !s) {
                    g.dataTransfer && (g.dataTransfer.dropEffect = "none");
                    return;
                }
                g.preventDefault(), g.dataTransfer && (g.dataTransfer.dropEffect = "copy");
                const D = d(g);
                switch(v){
                    case "enter":
                        o += 1, n.value = !0, (S = l.onEnter) == null || S.call(l, null, g);
                        break;
                    case "over":
                        (x = l.onOver) == null || x.call(l, null, g);
                        break;
                    case "leave":
                        o -= 1, o === 0 && (n.value = !1), (C = l.onLeave) == null || C.call(l, null, g);
                        break;
                    case "drop":
                        o = 0, n.value = !1, s && (i.value = D, (w = l.onDrop) == null || w.call(l, D, g));
                        break;
                }
            };
            eo(t, "dragenter", (g)=>p(g, "enter")), eo(t, "dragover", (g)=>p(g, "over")), eo(t, "dragleave", (g)=>p(g, "leave")), eo(t, "drop", (g)=>p(g, "drop"));
        }
        return {
            files: i,
            isOverDropZone: n
        };
    }
    function sp(t, e, a) {
        if (typeof t == "function" || jd(t)) return T(()=>hu(Ue(t), Ue(e), Ue(a)));
        const r = W(t);
        return T({
            get () {
                return r.value = hu(r.value, Ue(e), Ue(a));
            },
            set (n) {
                r.value = hu(n, Ue(e), Ue(a));
            }
        });
    }
    function Jw(t) {
        const { total: e = Number.POSITIVE_INFINITY, pageSize: a = 10, page: r = 1, onPageChange: n = Fi, onPageSizeChange: i = Fi, onPageCountChange: o = Fi } = t, s = sp(a, 1, Number.POSITIVE_INFINITY), l = T(()=>Math.max(1, Math.ceil(Ue(e) / Ue(s)))), u = sp(r, 1, l), c = T(()=>u.value === 1), d = T(()=>u.value === l.value);
        Pt(r) && op(r, u, {
            direction: jd(r) ? "ltr" : "both"
        }), Pt(a) && op(a, s, {
            direction: jd(a) ? "ltr" : "both"
        });
        function h() {
            u.value--;
        }
        function m() {
            u.value++;
        }
        const f = {
            currentPage: u,
            currentPageSize: s,
            pageCount: l,
            isFirstPage: c,
            isLastPage: d,
            prev: h,
            next: m
        };
        return me(u, ()=>{
            n(Ba(f));
        }), me(s, ()=>{
            i(Ba(f));
        }), me(l, ()=>{
            o(Ba(f));
        }), f;
    }
    const Zw = (t, e)=>t.sort(e), ls = (t, e)=>t - e;
    hl = function(...t) {
        var e, a, r, n;
        const [i] = t;
        let o = ls, s = {};
        t.length === 2 ? typeof t[1] == "object" ? (s = t[1], o = (e = s.compareFn) != null ? e : ls) : o = (a = t[1]) != null ? a : ls : t.length > 2 && (o = (r = t[1]) != null ? r : ls, s = (n = t[2]) != null ? n : {});
        const { dirty: l = !1, sortFn: u = Zw } = s;
        return l ? (Lt(()=>{
            const c = u(Ue(i), o);
            Pt(i) ? i.value = c : i.splice(0, i.length, ...c);
        }), i) : T(()=>u([
                ...Ue(i)
            ], o));
    };
    ob = function(t, e, a = 1) {
        const { currentPage: r, currentPageSize: n, pageCount: i, isFirstPage: o, isLastPage: s, next: l, prev: u } = Jw({
            total: ()=>Ue(t).length,
            page: a,
            pageSize: ()=>Ue(e) === -1 ? Ue(t).length : Ue(e)
        }), c = T(()=>{
            const d = (r.value - 1) * Ue(e), h = d + n.value;
            return Ue(t).slice(d, h);
        });
        return {
            currentPage: r,
            currentPageSize: n,
            pageCount: i,
            isFirstPage: o,
            isLastPage: s,
            next: l,
            prev: u,
            paginatedResults: c
        };
    };
    function sb(t, e) {
        return function() {
            return t.apply(e, arguments);
        };
    }
    const { toString: Qw } = Object.prototype, { getPrototypeOf: bm } = Object, ml = ((t)=>(e)=>{
            const a = Qw.call(e);
            return t[a] || (t[a] = a.slice(8, -1).toLowerCase());
        })(Object.create(null)), mr = (t)=>(t = t.toLowerCase(), (e)=>ml(e) === t), fl = (t)=>(e)=>typeof e === t, { isArray: _i } = Array, ho = fl("undefined");
    function eS(t) {
        return t !== null && !ho(t) && t.constructor !== null && !ho(t.constructor) && ja(t.constructor.isBuffer) && t.constructor.isBuffer(t);
    }
    const lb = mr("ArrayBuffer");
    function tS(t) {
        let e;
        return typeof ArrayBuffer < "u" && ArrayBuffer.isView ? e = ArrayBuffer.isView(t) : e = t && t.buffer && lb(t.buffer), e;
    }
    const aS = fl("string"), ja = fl("function"), ub = fl("number"), pl = (t)=>t !== null && typeof t == "object", rS = (t)=>t === !0 || t === !1, Fs = (t)=>{
        if (ml(t) !== "object") return !1;
        const e = bm(t);
        return (e === null || e === Object.prototype || Object.getPrototypeOf(e) === null) && !(Symbol.toStringTag in t) && !(Symbol.iterator in t);
    }, nS = mr("Date"), iS = mr("File"), oS = mr("Blob"), sS = mr("FileList"), lS = (t)=>pl(t) && ja(t.pipe), uS = (t)=>{
        let e;
        return t && (typeof FormData == "function" && t instanceof FormData || ja(t.append) && ((e = ml(t)) === "formdata" || e === "object" && ja(t.toString) && t.toString() === "[object FormData]"));
    }, cS = mr("URLSearchParams"), [dS, hS, mS, fS] = [
        "ReadableStream",
        "Request",
        "Response",
        "Headers"
    ].map(mr), pS = (t)=>t.trim ? t.trim() : t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
    function Bo(t, e, { allOwnKeys: a = !1 } = {}) {
        if (t === null || typeof t > "u") return;
        let r, n;
        if (typeof t != "object" && (t = [
            t
        ]), _i(t)) for(r = 0, n = t.length; r < n; r++)e.call(null, t[r], r, t);
        else {
            const i = a ? Object.getOwnPropertyNames(t) : Object.keys(t), o = i.length;
            let s;
            for(r = 0; r < o; r++)s = i[r], e.call(null, t[s], s, t);
        }
    }
    function cb(t, e) {
        e = e.toLowerCase();
        const a = Object.keys(t);
        let r = a.length, n;
        for(; r-- > 0;)if (n = a[r], e === n.toLowerCase()) return n;
        return null;
    }
    const yn = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : global, db = (t)=>!ho(t) && t !== yn;
    function eh() {
        const { caseless: t } = db(this) && this || {}, e = {}, a = (r, n)=>{
            const i = t && cb(e, n) || n;
            Fs(e[i]) && Fs(r) ? e[i] = eh(e[i], r) : Fs(r) ? e[i] = eh({}, r) : _i(r) ? e[i] = r.slice() : e[i] = r;
        };
        for(let r = 0, n = arguments.length; r < n; r++)arguments[r] && Bo(arguments[r], a);
        return e;
    }
    const gS = (t, e, a, { allOwnKeys: r } = {})=>(Bo(e, (n, i)=>{
            a && ja(n) ? t[i] = sb(n, a) : t[i] = n;
        }, {
            allOwnKeys: r
        }), t), vS = (t)=>(t.charCodeAt(0) === 65279 && (t = t.slice(1)), t), yS = (t, e, a, r)=>{
        t.prototype = Object.create(e.prototype, r), t.prototype.constructor = t, Object.defineProperty(t, "super", {
            value: e.prototype
        }), a && Object.assign(t.prototype, a);
    }, bS = (t, e, a, r)=>{
        let n, i, o;
        const s = {};
        if (e = e || {}, t == null) return e;
        do {
            for(n = Object.getOwnPropertyNames(t), i = n.length; i-- > 0;)o = n[i], (!r || r(o, t, e)) && !s[o] && (e[o] = t[o], s[o] = !0);
            t = a !== !1 && bm(t);
        }while (t && (!a || a(t, e)) && t !== Object.prototype);
        return e;
    }, FS = (t, e, a)=>{
        t = String(t), (a === void 0 || a > t.length) && (a = t.length), a -= e.length;
        const r = t.indexOf(e, a);
        return r !== -1 && r === a;
    }, kS = (t)=>{
        if (!t) return null;
        if (_i(t)) return t;
        let e = t.length;
        if (!ub(e)) return null;
        const a = new Array(e);
        for(; e-- > 0;)a[e] = t[e];
        return a;
    }, xS = ((t)=>(e)=>t && e instanceof t)(typeof Uint8Array < "u" && bm(Uint8Array)), wS = (t, e)=>{
        const r = (t && t[Symbol.iterator]).call(t);
        let n;
        for(; (n = r.next()) && !n.done;){
            const i = n.value;
            e.call(t, i[0], i[1]);
        }
    }, SS = (t, e)=>{
        let a;
        const r = [];
        for(; (a = t.exec(e)) !== null;)r.push(a);
        return r;
    }, CS = mr("HTMLFormElement"), AS = (t)=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function(a, r, n) {
            return r.toUpperCase() + n;
        }), lp = (({ hasOwnProperty: t })=>(e, a)=>t.call(e, a))(Object.prototype), DS = mr("RegExp"), hb = (t, e)=>{
        const a = Object.getOwnPropertyDescriptors(t), r = {};
        Bo(a, (n, i)=>{
            let o;
            (o = e(n, i, t)) !== !1 && (r[i] = o || n);
        }), Object.defineProperties(t, r);
    }, TS = (t)=>{
        hb(t, (e, a)=>{
            if (ja(t) && [
                "arguments",
                "caller",
                "callee"
            ].indexOf(a) !== -1) return !1;
            const r = t[a];
            if (ja(r)) {
                if (e.enumerable = !1, "writable" in e) {
                    e.writable = !1;
                    return;
                }
                e.set || (e.set = ()=>{
                    throw Error("Can not rewrite read-only method '" + a + "'");
                });
            }
        });
    }, ES = (t, e)=>{
        const a = {}, r = (n)=>{
            n.forEach((i)=>{
                a[i] = !0;
            });
        };
        return _i(t) ? r(t) : r(String(t).split(e)), a;
    }, _S = ()=>{}, PS = (t, e)=>t != null && Number.isFinite(t = +t) ? t : e;
    function BS(t) {
        return !!(t && ja(t.append) && t[Symbol.toStringTag] === "FormData" && t[Symbol.iterator]);
    }
    const MS = (t)=>{
        const e = new Array(10), a = (r, n)=>{
            if (pl(r)) {
                if (e.indexOf(r) >= 0) return;
                if (!("toJSON" in r)) {
                    e[n] = r;
                    const i = _i(r) ? [] : {};
                    return Bo(r, (o, s)=>{
                        const l = a(o, n + 1);
                        !ho(l) && (i[s] = l);
                    }), e[n] = void 0, i;
                }
            }
            return r;
        };
        return a(t, 0);
    }, RS = mr("AsyncFunction"), LS = (t)=>t && (pl(t) || ja(t)) && ja(t.then) && ja(t.catch), mb = ((t, e)=>t ? setImmediate : e ? ((a, r)=>(yn.addEventListener("message", ({ source: n, data: i })=>{
                n === yn && i === a && r.length && r.shift()();
            }, !1), (n)=>{
                r.push(n), yn.postMessage(a, "*");
            }))(`axios@${Math.random()}`, []) : (a)=>setTimeout(a))(typeof setImmediate == "function", ja(yn.postMessage)), IS = typeof queueMicrotask < "u" ? queueMicrotask.bind(yn) : typeof process < "u" && process.nextTick || mb, oe = {
        isArray: _i,
        isArrayBuffer: lb,
        isBuffer: eS,
        isFormData: uS,
        isArrayBufferView: tS,
        isString: aS,
        isNumber: ub,
        isBoolean: rS,
        isObject: pl,
        isPlainObject: Fs,
        isReadableStream: dS,
        isRequest: hS,
        isResponse: mS,
        isHeaders: fS,
        isUndefined: ho,
        isDate: nS,
        isFile: iS,
        isBlob: oS,
        isRegExp: DS,
        isFunction: ja,
        isStream: lS,
        isURLSearchParams: cS,
        isTypedArray: xS,
        isFileList: sS,
        forEach: Bo,
        merge: eh,
        extend: gS,
        trim: pS,
        stripBOM: vS,
        inherits: yS,
        toFlatObject: bS,
        kindOf: ml,
        kindOfTest: mr,
        endsWith: FS,
        toArray: kS,
        forEachEntry: wS,
        matchAll: SS,
        isHTMLForm: CS,
        hasOwnProperty: lp,
        hasOwnProp: lp,
        reduceDescriptors: hb,
        freezeMethods: TS,
        toObjectSet: ES,
        toCamelCase: AS,
        noop: _S,
        toFiniteNumber: PS,
        findKey: cb,
        global: yn,
        isContextDefined: db,
        isSpecCompliantForm: BS,
        toJSONObject: MS,
        isAsyncFn: RS,
        isThenable: LS,
        setImmediate: mb,
        asap: IS
    };
    function Ke(t, e, a, r, n) {
        Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack, this.message = t, this.name = "AxiosError", e && (this.code = e), a && (this.config = a), r && (this.request = r), n && (this.response = n, this.status = n.status ? n.status : null);
    }
    oe.inherits(Ke, Error, {
        toJSON: function() {
            return {
                message: this.message,
                name: this.name,
                description: this.description,
                number: this.number,
                fileName: this.fileName,
                lineNumber: this.lineNumber,
                columnNumber: this.columnNumber,
                stack: this.stack,
                config: oe.toJSONObject(this.config),
                code: this.code,
                status: this.status
            };
        }
    });
    const fb = Ke.prototype, pb = {};
    [
        "ERR_BAD_OPTION_VALUE",
        "ERR_BAD_OPTION",
        "ECONNABORTED",
        "ETIMEDOUT",
        "ERR_NETWORK",
        "ERR_FR_TOO_MANY_REDIRECTS",
        "ERR_DEPRECATED",
        "ERR_BAD_RESPONSE",
        "ERR_BAD_REQUEST",
        "ERR_CANCELED",
        "ERR_NOT_SUPPORT",
        "ERR_INVALID_URL"
    ].forEach((t)=>{
        pb[t] = {
            value: t
        };
    });
    Object.defineProperties(Ke, pb);
    Object.defineProperty(fb, "isAxiosError", {
        value: !0
    });
    Ke.from = (t, e, a, r, n, i)=>{
        const o = Object.create(fb);
        return oe.toFlatObject(t, o, function(l) {
            return l !== Error.prototype;
        }, (s)=>s !== "isAxiosError"), Ke.call(o, t.message, e, a, r, n), o.cause = t, o.name = t.name, i && Object.assign(o, i), o;
    };
    const zS = null;
    function th(t) {
        return oe.isPlainObject(t) || oe.isArray(t);
    }
    function gb(t) {
        return oe.endsWith(t, "[]") ? t.slice(0, -2) : t;
    }
    function up(t, e, a) {
        return t ? t.concat(e).map(function(n, i) {
            return n = gb(n), !a && i ? "[" + n + "]" : n;
        }).join(a ? "." : "") : e;
    }
    function NS(t) {
        return oe.isArray(t) && !t.some(th);
    }
    const OS = oe.toFlatObject(oe, {}, null, function(e) {
        return /^is[A-Z]/.test(e);
    });
    function gl(t, e, a) {
        if (!oe.isObject(t)) throw new TypeError("target must be an object");
        e = e || new FormData, a = oe.toFlatObject(a, {
            metaTokens: !0,
            dots: !1,
            indexes: !1
        }, !1, function(p, g) {
            return !oe.isUndefined(g[p]);
        });
        const r = a.metaTokens, n = a.visitor || c, i = a.dots, o = a.indexes, l = (a.Blob || typeof Blob < "u" && Blob) && oe.isSpecCompliantForm(e);
        if (!oe.isFunction(n)) throw new TypeError("visitor must be a function");
        function u(f) {
            if (f === null) return "";
            if (oe.isDate(f)) return f.toISOString();
            if (!l && oe.isBlob(f)) throw new Ke("Blob is not supported. Use a Buffer instead.");
            return oe.isArrayBuffer(f) || oe.isTypedArray(f) ? l && typeof Blob == "function" ? new Blob([
                f
            ]) : Buffer.from(f) : f;
        }
        function c(f, p, g) {
            let v = f;
            if (f && !g && typeof f == "object") {
                if (oe.endsWith(p, "{}")) p = r ? p : p.slice(0, -2), f = JSON.stringify(f);
                else if (oe.isArray(f) && NS(f) || (oe.isFileList(f) || oe.endsWith(p, "[]")) && (v = oe.toArray(f))) return p = gb(p), v.forEach(function(k, S) {
                    !(oe.isUndefined(k) || k === null) && e.append(o === !0 ? up([
                        p
                    ], S, i) : o === null ? p : p + "[]", u(k));
                }), !1;
            }
            return th(f) ? !0 : (e.append(up(g, p, i), u(f)), !1);
        }
        const d = [], h = Object.assign(OS, {
            defaultVisitor: c,
            convertValue: u,
            isVisitable: th
        });
        function m(f, p) {
            if (!oe.isUndefined(f)) {
                if (d.indexOf(f) !== -1) throw Error("Circular reference detected in " + p.join("."));
                d.push(f), oe.forEach(f, function(v, b) {
                    (!(oe.isUndefined(v) || v === null) && n.call(e, v, oe.isString(b) ? b.trim() : b, p, h)) === !0 && m(v, p ? p.concat(b) : [
                        b
                    ]);
                }), d.pop();
            }
        }
        if (!oe.isObject(t)) throw new TypeError("data must be an object");
        return m(t), e;
    }
    function cp(t) {
        const e = {
            "!": "%21",
            "'": "%27",
            "(": "%28",
            ")": "%29",
            "~": "%7E",
            "%20": "+",
            "%00": "\0"
        };
        return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g, function(r) {
            return e[r];
        });
    }
    function Fm(t, e) {
        this._pairs = [], t && gl(t, this, e);
    }
    const vb = Fm.prototype;
    vb.append = function(e, a) {
        this._pairs.push([
            e,
            a
        ]);
    };
    vb.toString = function(e) {
        const a = e ? function(r) {
            return e.call(this, r, cp);
        } : cp;
        return this._pairs.map(function(n) {
            return a(n[0]) + "=" + a(n[1]);
        }, "").join("&");
    };
    function HS(t) {
        return encodeURIComponent(t).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]");
    }
    function yb(t, e, a) {
        if (!e) return t;
        const r = a && a.encode || HS;
        oe.isFunction(a) && (a = {
            serialize: a
        });
        const n = a && a.serialize;
        let i;
        if (n ? i = n(e, a) : i = oe.isURLSearchParams(e) ? e.toString() : new Fm(e, a).toString(r), i) {
            const o = t.indexOf("#");
            o !== -1 && (t = t.slice(0, o)), t += (t.indexOf("?") === -1 ? "?" : "&") + i;
        }
        return t;
    }
    class dp {
        constructor(){
            this.handlers = [];
        }
        use(e, a, r) {
            return this.handlers.push({
                fulfilled: e,
                rejected: a,
                synchronous: r ? r.synchronous : !1,
                runWhen: r ? r.runWhen : null
            }), this.handlers.length - 1;
        }
        eject(e) {
            this.handlers[e] && (this.handlers[e] = null);
        }
        clear() {
            this.handlers && (this.handlers = []);
        }
        forEach(e) {
            oe.forEach(this.handlers, function(r) {
                r !== null && e(r);
            });
        }
    }
    const bb = {
        silentJSONParsing: !0,
        forcedJSONParsing: !0,
        clarifyTimeoutError: !1
    }, VS = typeof URLSearchParams < "u" ? URLSearchParams : Fm, WS = typeof FormData < "u" ? FormData : null, GS = typeof Blob < "u" ? Blob : null, $S = {
        isBrowser: !0,
        classes: {
            URLSearchParams: VS,
            FormData: WS,
            Blob: GS
        },
        protocols: [
            "http",
            "https",
            "file",
            "blob",
            "url",
            "data"
        ]
    }, km = typeof window < "u" && typeof document < "u", ah = typeof navigator == "object" && navigator || void 0, US = km && (!ah || [
        "ReactNative",
        "NativeScript",
        "NS"
    ].indexOf(ah.product) < 0), jS = typeof WorkerGlobalScope < "u" && self instanceof WorkerGlobalScope && typeof self.importScripts == "function", YS = km && window.location.href || "http://localhost", qS = Object.freeze(Object.defineProperty({
        __proto__: null,
        hasBrowserEnv: km,
        hasStandardBrowserEnv: US,
        hasStandardBrowserWebWorkerEnv: jS,
        navigator: ah,
        origin: YS
    }, Symbol.toStringTag, {
        value: "Module"
    })), va = {
        ...qS,
        ...$S
    };
    function KS(t, e) {
        return gl(t, new va.classes.URLSearchParams, Object.assign({
            visitor: function(a, r, n, i) {
                return va.isNode && oe.isBuffer(a) ? (this.append(r, a.toString("base64")), !1) : i.defaultVisitor.apply(this, arguments);
            }
        }, e));
    }
    function XS(t) {
        return oe.matchAll(/\w+|\[(\w*)]/g, t).map((e)=>e[0] === "[]" ? "" : e[1] || e[0]);
    }
    function JS(t) {
        const e = {}, a = Object.keys(t);
        let r;
        const n = a.length;
        let i;
        for(r = 0; r < n; r++)i = a[r], e[i] = t[i];
        return e;
    }
    function Fb(t) {
        function e(a, r, n, i) {
            let o = a[i++];
            if (o === "__proto__") return !0;
            const s = Number.isFinite(+o), l = i >= a.length;
            return o = !o && oe.isArray(n) ? n.length : o, l ? (oe.hasOwnProp(n, o) ? n[o] = [
                n[o],
                r
            ] : n[o] = r, !s) : ((!n[o] || !oe.isObject(n[o])) && (n[o] = []), e(a, r, n[o], i) && oe.isArray(n[o]) && (n[o] = JS(n[o])), !s);
        }
        if (oe.isFormData(t) && oe.isFunction(t.entries)) {
            const a = {};
            return oe.forEachEntry(t, (r, n)=>{
                e(XS(r), n, a, 0);
            }), a;
        }
        return null;
    }
    function ZS(t, e, a) {
        if (oe.isString(t)) try {
            return (e || JSON.parse)(t), oe.trim(t);
        } catch (r) {
            if (r.name !== "SyntaxError") throw r;
        }
        return (a || JSON.stringify)(t);
    }
    const Mo = {
        transitional: bb,
        adapter: [
            "xhr",
            "http",
            "fetch"
        ],
        transformRequest: [
            function(e, a) {
                const r = a.getContentType() || "", n = r.indexOf("application/json") > -1, i = oe.isObject(e);
                if (i && oe.isHTMLForm(e) && (e = new FormData(e)), oe.isFormData(e)) return n ? JSON.stringify(Fb(e)) : e;
                if (oe.isArrayBuffer(e) || oe.isBuffer(e) || oe.isStream(e) || oe.isFile(e) || oe.isBlob(e) || oe.isReadableStream(e)) return e;
                if (oe.isArrayBufferView(e)) return e.buffer;
                if (oe.isURLSearchParams(e)) return a.setContentType("application/x-www-form-urlencoded;charset=utf-8", !1), e.toString();
                let s;
                if (i) {
                    if (r.indexOf("application/x-www-form-urlencoded") > -1) return KS(e, this.formSerializer).toString();
                    if ((s = oe.isFileList(e)) || r.indexOf("multipart/form-data") > -1) {
                        const l = this.env && this.env.FormData;
                        return gl(s ? {
                            "files[]": e
                        } : e, l && new l, this.formSerializer);
                    }
                }
                return i || n ? (a.setContentType("application/json", !1), ZS(e)) : e;
            }
        ],
        transformResponse: [
            function(e) {
                const a = this.transitional || Mo.transitional, r = a && a.forcedJSONParsing, n = this.responseType === "json";
                if (oe.isResponse(e) || oe.isReadableStream(e)) return e;
                if (e && oe.isString(e) && (r && !this.responseType || n)) {
                    const o = !(a && a.silentJSONParsing) && n;
                    try {
                        return JSON.parse(e);
                    } catch (s) {
                        if (o) throw s.name === "SyntaxError" ? Ke.from(s, Ke.ERR_BAD_RESPONSE, this, null, this.response) : s;
                    }
                }
                return e;
            }
        ],
        timeout: 0,
        xsrfCookieName: "XSRF-TOKEN",
        xsrfHeaderName: "X-XSRF-TOKEN",
        maxContentLength: -1,
        maxBodyLength: -1,
        env: {
            FormData: va.classes.FormData,
            Blob: va.classes.Blob
        },
        validateStatus: function(e) {
            return e >= 200 && e < 300;
        },
        headers: {
            common: {
                Accept: "application/json, text/plain, */*",
                "Content-Type": void 0
            }
        }
    };
    oe.forEach([
        "delete",
        "get",
        "head",
        "post",
        "put",
        "patch"
    ], (t)=>{
        Mo.headers[t] = {};
    });
    const QS = oe.toObjectSet([
        "age",
        "authorization",
        "content-length",
        "content-type",
        "etag",
        "expires",
        "from",
        "host",
        "if-modified-since",
        "if-unmodified-since",
        "last-modified",
        "location",
        "max-forwards",
        "proxy-authorization",
        "referer",
        "retry-after",
        "user-agent"
    ]), eC = (t)=>{
        const e = {};
        let a, r, n;
        return t && t.split(`
`).forEach(function(o) {
            n = o.indexOf(":"), a = o.substring(0, n).trim().toLowerCase(), r = o.substring(n + 1).trim(), !(!a || e[a] && QS[a]) && (a === "set-cookie" ? e[a] ? e[a].push(r) : e[a] = [
                r
            ] : e[a] = e[a] ? e[a] + ", " + r : r);
        }), e;
    }, hp = Symbol("internals");
    function qi(t) {
        return t && String(t).trim().toLowerCase();
    }
    function ks(t) {
        return t === !1 || t == null ? t : oe.isArray(t) ? t.map(ks) : String(t);
    }
    function tC(t) {
        const e = Object.create(null), a = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
        let r;
        for(; r = a.exec(t);)e[r[1]] = r[2];
        return e;
    }
    const aC = (t)=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());
    function pu(t, e, a, r, n) {
        if (oe.isFunction(r)) return r.call(this, e, a);
        if (n && (e = a), !!oe.isString(e)) {
            if (oe.isString(r)) return e.indexOf(r) !== -1;
            if (oe.isRegExp(r)) return r.test(e);
        }
    }
    function rC(t) {
        return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (e, a, r)=>a.toUpperCase() + r);
    }
    function nC(t, e) {
        const a = oe.toCamelCase(" " + e);
        [
            "get",
            "set",
            "has"
        ].forEach((r)=>{
            Object.defineProperty(t, r + a, {
                value: function(n, i, o) {
                    return this[r].call(this, e, n, i, o);
                },
                configurable: !0
            });
        });
    }
    let Ra = class {
        constructor(e){
            e && this.set(e);
        }
        set(e, a, r) {
            const n = this;
            function i(s, l, u) {
                const c = qi(l);
                if (!c) throw new Error("header name must be a non-empty string");
                const d = oe.findKey(n, c);
                (!d || n[d] === void 0 || u === !0 || u === void 0 && n[d] !== !1) && (n[d || l] = ks(s));
            }
            const o = (s, l)=>oe.forEach(s, (u, c)=>i(u, c, l));
            if (oe.isPlainObject(e) || e instanceof this.constructor) o(e, a);
            else if (oe.isString(e) && (e = e.trim()) && !aC(e)) o(eC(e), a);
            else if (oe.isHeaders(e)) for (const [s, l] of e.entries())i(l, s, r);
            else e != null && i(a, e, r);
            return this;
        }
        get(e, a) {
            if (e = qi(e), e) {
                const r = oe.findKey(this, e);
                if (r) {
                    const n = this[r];
                    if (!a) return n;
                    if (a === !0) return tC(n);
                    if (oe.isFunction(a)) return a.call(this, n, r);
                    if (oe.isRegExp(a)) return a.exec(n);
                    throw new TypeError("parser must be boolean|regexp|function");
                }
            }
        }
        has(e, a) {
            if (e = qi(e), e) {
                const r = oe.findKey(this, e);
                return !!(r && this[r] !== void 0 && (!a || pu(this, this[r], r, a)));
            }
            return !1;
        }
        delete(e, a) {
            const r = this;
            let n = !1;
            function i(o) {
                if (o = qi(o), o) {
                    const s = oe.findKey(r, o);
                    s && (!a || pu(r, r[s], s, a)) && (delete r[s], n = !0);
                }
            }
            return oe.isArray(e) ? e.forEach(i) : i(e), n;
        }
        clear(e) {
            const a = Object.keys(this);
            let r = a.length, n = !1;
            for(; r--;){
                const i = a[r];
                (!e || pu(this, this[i], i, e, !0)) && (delete this[i], n = !0);
            }
            return n;
        }
        normalize(e) {
            const a = this, r = {};
            return oe.forEach(this, (n, i)=>{
                const o = oe.findKey(r, i);
                if (o) {
                    a[o] = ks(n), delete a[i];
                    return;
                }
                const s = e ? rC(i) : String(i).trim();
                s !== i && delete a[i], a[s] = ks(n), r[s] = !0;
            }), this;
        }
        concat(...e) {
            return this.constructor.concat(this, ...e);
        }
        toJSON(e) {
            const a = Object.create(null);
            return oe.forEach(this, (r, n)=>{
                r != null && r !== !1 && (a[n] = e && oe.isArray(r) ? r.join(", ") : r);
            }), a;
        }
        [Symbol.iterator]() {
            return Object.entries(this.toJSON())[Symbol.iterator]();
        }
        toString() {
            return Object.entries(this.toJSON()).map(([e, a])=>e + ": " + a).join(`
`);
        }
        get [Symbol.toStringTag]() {
            return "AxiosHeaders";
        }
        static from(e) {
            return e instanceof this ? e : new this(e);
        }
        static concat(e, ...a) {
            const r = new this(e);
            return a.forEach((n)=>r.set(n)), r;
        }
        static accessor(e) {
            const r = (this[hp] = this[hp] = {
                accessors: {}
            }).accessors, n = this.prototype;
            function i(o) {
                const s = qi(o);
                r[s] || (nC(n, o), r[s] = !0);
            }
            return oe.isArray(e) ? e.forEach(i) : i(e), this;
        }
    };
    Ra.accessor([
        "Content-Type",
        "Content-Length",
        "Accept",
        "Accept-Encoding",
        "User-Agent",
        "Authorization"
    ]);
    oe.reduceDescriptors(Ra.prototype, ({ value: t }, e)=>{
        let a = e[0].toUpperCase() + e.slice(1);
        return {
            get: ()=>t,
            set (r) {
                this[a] = r;
            }
        };
    });
    oe.freezeMethods(Ra);
    function gu(t, e) {
        const a = this || Mo, r = e || a, n = Ra.from(r.headers);
        let i = r.data;
        return oe.forEach(t, function(s) {
            i = s.call(a, i, n.normalize(), e ? e.status : void 0);
        }), n.normalize(), i;
    }
    function kb(t) {
        return !!(t && t.__CANCEL__);
    }
    function Pi(t, e, a) {
        Ke.call(this, t ?? "canceled", Ke.ERR_CANCELED, e, a), this.name = "CanceledError";
    }
    oe.inherits(Pi, Ke, {
        __CANCEL__: !0
    });
    function xb(t, e, a) {
        const r = a.config.validateStatus;
        !a.status || !r || r(a.status) ? t(a) : e(new Ke("Request failed with status code " + a.status, [
            Ke.ERR_BAD_REQUEST,
            Ke.ERR_BAD_RESPONSE
        ][Math.floor(a.status / 100) - 4], a.config, a.request, a));
    }
    function iC(t) {
        const e = /^([-+\w]{1,25})(:?\/\/|:)/.exec(t);
        return e && e[1] || "";
    }
    function oC(t, e) {
        t = t || 10;
        const a = new Array(t), r = new Array(t);
        let n = 0, i = 0, o;
        return e = e !== void 0 ? e : 1e3, function(l) {
            const u = Date.now(), c = r[i];
            o || (o = u), a[n] = l, r[n] = u;
            let d = i, h = 0;
            for(; d !== n;)h += a[d++], d = d % t;
            if (n = (n + 1) % t, n === i && (i = (i + 1) % t), u - o < e) return;
            const m = c && u - c;
            return m ? Math.round(h * 1e3 / m) : void 0;
        };
    }
    function sC(t, e) {
        let a = 0, r = 1e3 / e, n, i;
        const o = (u, c = Date.now())=>{
            a = c, n = null, i && (clearTimeout(i), i = null), t.apply(null, u);
        };
        return [
            (...u)=>{
                const c = Date.now(), d = c - a;
                d >= r ? o(u, c) : (n = u, i || (i = setTimeout(()=>{
                    i = null, o(n);
                }, r - d)));
            },
            ()=>n && o(n)
        ];
    }
    const zs = (t, e, a = 3)=>{
        let r = 0;
        const n = oC(50, 250);
        return sC((i)=>{
            const o = i.loaded, s = i.lengthComputable ? i.total : void 0, l = o - r, u = n(l), c = o <= s;
            r = o;
            const d = {
                loaded: o,
                total: s,
                progress: s ? o / s : void 0,
                bytes: l,
                rate: u || void 0,
                estimated: u && s && c ? (s - o) / u : void 0,
                event: i,
                lengthComputable: s != null,
                [e ? "download" : "upload"]: !0
            };
            t(d);
        }, a);
    }, mp = (t, e)=>{
        const a = t != null;
        return [
            (r)=>e[0]({
                    lengthComputable: a,
                    total: t,
                    loaded: r
                }),
            e[1]
        ];
    }, fp = (t)=>(...e)=>oe.asap(()=>t(...e)), lC = va.hasStandardBrowserEnv ? ((t, e)=>(a)=>(a = new URL(a, va.origin), t.protocol === a.protocol && t.host === a.host && (e || t.port === a.port)))(new URL(va.origin), va.navigator && /(msie|trident)/i.test(va.navigator.userAgent)) : ()=>!0, uC = va.hasStandardBrowserEnv ? {
        write (t, e, a, r, n, i) {
            const o = [
                t + "=" + encodeURIComponent(e)
            ];
            oe.isNumber(a) && o.push("expires=" + new Date(a).toGMTString()), oe.isString(r) && o.push("path=" + r), oe.isString(n) && o.push("domain=" + n), i === !0 && o.push("secure"), document.cookie = o.join("; ");
        },
        read (t) {
            const e = document.cookie.match(new RegExp("(^|;\\s*)(" + t + ")=([^;]*)"));
            return e ? decodeURIComponent(e[3]) : null;
        },
        remove (t) {
            this.write(t, "", Date.now() - 864e5);
        }
    } : {
        write () {},
        read () {
            return null;
        },
        remove () {}
    };
    function cC(t) {
        return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);
    }
    function dC(t, e) {
        return e ? t.replace(/\/?\/$/, "") + "/" + e.replace(/^\/+/, "") : t;
    }
    function wb(t, e, a) {
        let r = !cC(e);
        return t && (r || a == !1) ? dC(t, e) : e;
    }
    const pp = (t)=>t instanceof Ra ? {
            ...t
        } : t;
    function Dn(t, e) {
        e = e || {};
        const a = {};
        function r(u, c, d, h) {
            return oe.isPlainObject(u) && oe.isPlainObject(c) ? oe.merge.call({
                caseless: h
            }, u, c) : oe.isPlainObject(c) ? oe.merge({}, c) : oe.isArray(c) ? c.slice() : c;
        }
        function n(u, c, d, h) {
            if (oe.isUndefined(c)) {
                if (!oe.isUndefined(u)) return r(void 0, u, d, h);
            } else return r(u, c, d, h);
        }
        function i(u, c) {
            if (!oe.isUndefined(c)) return r(void 0, c);
        }
        function o(u, c) {
            if (oe.isUndefined(c)) {
                if (!oe.isUndefined(u)) return r(void 0, u);
            } else return r(void 0, c);
        }
        function s(u, c, d) {
            if (d in e) return r(u, c);
            if (d in t) return r(void 0, u);
        }
        const l = {
            url: i,
            method: i,
            data: i,
            baseURL: o,
            transformRequest: o,
            transformResponse: o,
            paramsSerializer: o,
            timeout: o,
            timeoutMessage: o,
            withCredentials: o,
            withXSRFToken: o,
            adapter: o,
            responseType: o,
            xsrfCookieName: o,
            xsrfHeaderName: o,
            onUploadProgress: o,
            onDownloadProgress: o,
            decompress: o,
            maxContentLength: o,
            maxBodyLength: o,
            beforeRedirect: o,
            transport: o,
            httpAgent: o,
            httpsAgent: o,
            cancelToken: o,
            socketPath: o,
            responseEncoding: o,
            validateStatus: s,
            headers: (u, c, d)=>n(pp(u), pp(c), d, !0)
        };
        return oe.forEach(Object.keys(Object.assign({}, t, e)), function(c) {
            const d = l[c] || n, h = d(t[c], e[c], c);
            oe.isUndefined(h) && d !== s || (a[c] = h);
        }), a;
    }
    const Sb = (t)=>{
        const e = Dn({}, t);
        let { data: a, withXSRFToken: r, xsrfHeaderName: n, xsrfCookieName: i, headers: o, auth: s } = e;
        e.headers = o = Ra.from(o), e.url = yb(wb(e.baseURL, e.url, e.allowAbsoluteUrls), t.params, t.paramsSerializer), s && o.set("Authorization", "Basic " + btoa((s.username || "") + ":" + (s.password ? unescape(encodeURIComponent(s.password)) : "")));
        let l;
        if (oe.isFormData(a)) {
            if (va.hasStandardBrowserEnv || va.hasStandardBrowserWebWorkerEnv) o.setContentType(void 0);
            else if ((l = o.getContentType()) !== !1) {
                const [u, ...c] = l ? l.split(";").map((d)=>d.trim()).filter(Boolean) : [];
                o.setContentType([
                    u || "multipart/form-data",
                    ...c
                ].join("; "));
            }
        }
        if (va.hasStandardBrowserEnv && (r && oe.isFunction(r) && (r = r(e)), r || r !== !1 && lC(e.url))) {
            const u = n && i && uC.read(i);
            u && o.set(n, u);
        }
        return e;
    }, hC = typeof XMLHttpRequest < "u", mC = hC && function(t) {
        return new Promise(function(a, r) {
            const n = Sb(t);
            let i = n.data;
            const o = Ra.from(n.headers).normalize();
            let { responseType: s, onUploadProgress: l, onDownloadProgress: u } = n, c, d, h, m, f;
            function p() {
                m && m(), f && f(), n.cancelToken && n.cancelToken.unsubscribe(c), n.signal && n.signal.removeEventListener("abort", c);
            }
            let g = new XMLHttpRequest;
            g.open(n.method.toUpperCase(), n.url, !0), g.timeout = n.timeout;
            function v() {
                if (!g) return;
                const k = Ra.from("getAllResponseHeaders" in g && g.getAllResponseHeaders()), x = {
                    data: !s || s === "text" || s === "json" ? g.responseText : g.response,
                    status: g.status,
                    statusText: g.statusText,
                    headers: k,
                    config: t,
                    request: g
                };
                xb(function(w) {
                    a(w), p();
                }, function(w) {
                    r(w), p();
                }, x), g = null;
            }
            "onloadend" in g ? g.onloadend = v : g.onreadystatechange = function() {
                !g || g.readyState !== 4 || g.status === 0 && !(g.responseURL && g.responseURL.indexOf("file:") === 0) || setTimeout(v);
            }, g.onabort = function() {
                g && (r(new Ke("Request aborted", Ke.ECONNABORTED, t, g)), g = null);
            }, g.onerror = function() {
                r(new Ke("Network Error", Ke.ERR_NETWORK, t, g)), g = null;
            }, g.ontimeout = function() {
                let S = n.timeout ? "timeout of " + n.timeout + "ms exceeded" : "timeout exceeded";
                const x = n.transitional || bb;
                n.timeoutErrorMessage && (S = n.timeoutErrorMessage), r(new Ke(S, x.clarifyTimeoutError ? Ke.ETIMEDOUT : Ke.ECONNABORTED, t, g)), g = null;
            }, i === void 0 && o.setContentType(null), "setRequestHeader" in g && oe.forEach(o.toJSON(), function(S, x) {
                g.setRequestHeader(x, S);
            }), oe.isUndefined(n.withCredentials) || (g.withCredentials = !!n.withCredentials), s && s !== "json" && (g.responseType = n.responseType), u && ([h, f] = zs(u, !0), g.addEventListener("progress", h)), l && g.upload && ([d, m] = zs(l), g.upload.addEventListener("progress", d), g.upload.addEventListener("loadend", m)), (n.cancelToken || n.signal) && (c = (k)=>{
                g && (r(!k || k.type ? new Pi(null, t, g) : k), g.abort(), g = null);
            }, n.cancelToken && n.cancelToken.subscribe(c), n.signal && (n.signal.aborted ? c() : n.signal.addEventListener("abort", c)));
            const b = iC(n.url);
            if (b && va.protocols.indexOf(b) === -1) {
                r(new Ke("Unsupported protocol " + b + ":", Ke.ERR_BAD_REQUEST, t));
                return;
            }
            g.send(i || null);
        });
    }, fC = (t, e)=>{
        const { length: a } = t = t ? t.filter(Boolean) : [];
        if (e || a) {
            let r = new AbortController, n;
            const i = function(u) {
                if (!n) {
                    n = !0, s();
                    const c = u instanceof Error ? u : this.reason;
                    r.abort(c instanceof Ke ? c : new Pi(c instanceof Error ? c.message : c));
                }
            };
            let o = e && setTimeout(()=>{
                o = null, i(new Ke(`timeout ${e} of ms exceeded`, Ke.ETIMEDOUT));
            }, e);
            const s = ()=>{
                t && (o && clearTimeout(o), o = null, t.forEach((u)=>{
                    u.unsubscribe ? u.unsubscribe(i) : u.removeEventListener("abort", i);
                }), t = null);
            };
            t.forEach((u)=>u.addEventListener("abort", i));
            const { signal: l } = r;
            return l.unsubscribe = ()=>oe.asap(s), l;
        }
    }, pC = function*(t, e) {
        let a = t.byteLength;
        if (a < e) {
            yield t;
            return;
        }
        let r = 0, n;
        for(; r < a;)n = r + e, yield t.slice(r, n), r = n;
    }, gC = async function*(t, e) {
        for await (const a of vC(t))yield* pC(a, e);
    }, vC = async function*(t) {
        if (t[Symbol.asyncIterator]) {
            yield* t;
            return;
        }
        const e = t.getReader();
        try {
            for(;;){
                const { done: a, value: r } = await e.read();
                if (a) break;
                yield r;
            }
        } finally{
            await e.cancel();
        }
    }, gp = (t, e, a, r)=>{
        const n = gC(t, e);
        let i = 0, o, s = (l)=>{
            o || (o = !0, r && r(l));
        };
        return new ReadableStream({
            async pull (l) {
                try {
                    const { done: u, value: c } = await n.next();
                    if (u) {
                        s(), l.close();
                        return;
                    }
                    let d = c.byteLength;
                    if (a) {
                        let h = i += d;
                        a(h);
                    }
                    l.enqueue(new Uint8Array(c));
                } catch (u) {
                    throw s(u), u;
                }
            },
            cancel (l) {
                return s(l), n.return();
            }
        }, {
            highWaterMark: 2
        });
    }, vl = typeof fetch == "function" && typeof Request == "function" && typeof Response == "function", Cb = vl && typeof ReadableStream == "function", yC = vl && (typeof TextEncoder == "function" ? ((t)=>(e)=>t.encode(e))(new TextEncoder) : async (t)=>new Uint8Array(await new Response(t).arrayBuffer())), Ab = (t, ...e)=>{
        try {
            return !!t(...e);
        } catch  {
            return !1;
        }
    }, bC = Cb && Ab(()=>{
        let t = !1;
        const e = new Request(va.origin, {
            body: new ReadableStream,
            method: "POST",
            get duplex () {
                return t = !0, "half";
            }
        }).headers.has("Content-Type");
        return t && !e;
    }), vp = 64 * 1024, rh = Cb && Ab(()=>oe.isReadableStream(new Response("").body)), Ns = {
        stream: rh && ((t)=>t.body)
    };
    vl && ((t)=>{
        [
            "text",
            "arrayBuffer",
            "blob",
            "formData",
            "stream"
        ].forEach((e)=>{
            !Ns[e] && (Ns[e] = oe.isFunction(t[e]) ? (a)=>a[e]() : (a, r)=>{
                throw new Ke(`Response type '${e}' is not supported`, Ke.ERR_NOT_SUPPORT, r);
            });
        });
    })(new Response);
    const FC = async (t)=>{
        if (t == null) return 0;
        if (oe.isBlob(t)) return t.size;
        if (oe.isSpecCompliantForm(t)) return (await new Request(va.origin, {
            method: "POST",
            body: t
        }).arrayBuffer()).byteLength;
        if (oe.isArrayBufferView(t) || oe.isArrayBuffer(t)) return t.byteLength;
        if (oe.isURLSearchParams(t) && (t = t + ""), oe.isString(t)) return (await yC(t)).byteLength;
    }, kC = async (t, e)=>{
        const a = oe.toFiniteNumber(t.getContentLength());
        return a ?? FC(e);
    }, xC = vl && (async (t)=>{
        let { url: e, method: a, data: r, signal: n, cancelToken: i, timeout: o, onDownloadProgress: s, onUploadProgress: l, responseType: u, headers: c, withCredentials: d = "same-origin", fetchOptions: h } = Sb(t);
        u = u ? (u + "").toLowerCase() : "text";
        let m = fC([
            n,
            i && i.toAbortSignal()
        ], o), f;
        const p = m && m.unsubscribe && (()=>{
            m.unsubscribe();
        });
        let g;
        try {
            if (l && bC && a !== "get" && a !== "head" && (g = await kC(c, r)) !== 0) {
                let x = new Request(e, {
                    method: "POST",
                    body: r,
                    duplex: "half"
                }), C;
                if (oe.isFormData(r) && (C = x.headers.get("content-type")) && c.setContentType(C), x.body) {
                    const [w, F] = mp(g, zs(fp(l)));
                    r = gp(x.body, vp, w, F);
                }
            }
            oe.isString(d) || (d = d ? "include" : "omit");
            const v = "credentials" in Request.prototype;
            f = new Request(e, {
                ...h,
                signal: m,
                method: a.toUpperCase(),
                headers: c.normalize().toJSON(),
                body: r,
                duplex: "half",
                credentials: v ? d : void 0
            });
            let b = await fetch(f);
            const k = rh && (u === "stream" || u === "response");
            if (rh && (s || k && p)) {
                const x = {};
                [
                    "status",
                    "statusText",
                    "headers"
                ].forEach((D)=>{
                    x[D] = b[D];
                });
                const C = oe.toFiniteNumber(b.headers.get("content-length")), [w, F] = s && mp(C, zs(fp(s), !0)) || [];
                b = new Response(gp(b.body, vp, w, ()=>{
                    F && F(), p && p();
                }), x);
            }
            u = u || "text";
            let S = await Ns[oe.findKey(Ns, u) || "text"](b, t);
            return !k && p && p(), await new Promise((x, C)=>{
                xb(x, C, {
                    data: S,
                    headers: Ra.from(b.headers),
                    status: b.status,
                    statusText: b.statusText,
                    config: t,
                    request: f
                });
            });
        } catch (v) {
            throw p && p(), v && v.name === "TypeError" && /fetch/i.test(v.message) ? Object.assign(new Ke("Network Error", Ke.ERR_NETWORK, t, f), {
                cause: v.cause || v
            }) : Ke.from(v, v && v.code, t, f);
        }
    }), nh = {
        http: zS,
        xhr: mC,
        fetch: xC
    };
    oe.forEach(nh, (t, e)=>{
        if (t) {
            try {
                Object.defineProperty(t, "name", {
                    value: e
                });
            } catch  {}
            Object.defineProperty(t, "adapterName", {
                value: e
            });
        }
    });
    const yp = (t)=>`- ${t}`, wC = (t)=>oe.isFunction(t) || t === null || t === !1, Db = {
        getAdapter: (t)=>{
            t = oe.isArray(t) ? t : [
                t
            ];
            const { length: e } = t;
            let a, r;
            const n = {};
            for(let i = 0; i < e; i++){
                a = t[i];
                let o;
                if (r = a, !wC(a) && (r = nh[(o = String(a)).toLowerCase()], r === void 0)) throw new Ke(`Unknown adapter '${o}'`);
                if (r) break;
                n[o || "#" + i] = r;
            }
            if (!r) {
                const i = Object.entries(n).map(([s, l])=>`adapter ${s} ` + (l === !1 ? "is not supported by the environment" : "is not available in the build"));
                let o = e ? i.length > 1 ? `since :
` + i.map(yp).join(`
`) : " " + yp(i[0]) : "as no adapter specified";
                throw new Ke("There is no suitable adapter to dispatch the request " + o, "ERR_NOT_SUPPORT");
            }
            return r;
        },
        adapters: nh
    };
    function vu(t) {
        if (t.cancelToken && t.cancelToken.throwIfRequested(), t.signal && t.signal.aborted) throw new Pi(null, t);
    }
    function bp(t) {
        return vu(t), t.headers = Ra.from(t.headers), t.data = gu.call(t, t.transformRequest), [
            "post",
            "put",
            "patch"
        ].indexOf(t.method) !== -1 && t.headers.setContentType("application/x-www-form-urlencoded", !1), Db.getAdapter(t.adapter || Mo.adapter)(t).then(function(r) {
            return vu(t), r.data = gu.call(t, t.transformResponse, r), r.headers = Ra.from(r.headers), r;
        }, function(r) {
            return kb(r) || (vu(t), r && r.response && (r.response.data = gu.call(t, t.transformResponse, r.response), r.response.headers = Ra.from(r.response.headers))), Promise.reject(r);
        });
    }
    const Tb = "1.8.4", yl = {};
    [
        "object",
        "boolean",
        "number",
        "function",
        "string",
        "symbol"
    ].forEach((t, e)=>{
        yl[t] = function(r) {
            return typeof r === t || "a" + (e < 1 ? "n " : " ") + t;
        };
    });
    const Fp = {};
    yl.transitional = function(e, a, r) {
        function n(i, o) {
            return "[Axios v" + Tb + "] Transitional option '" + i + "'" + o + (r ? ". " + r : "");
        }
        return (i, o, s)=>{
            if (e === !1) throw new Ke(n(o, " has been removed" + (a ? " in " + a : "")), Ke.ERR_DEPRECATED);
            return a && !Fp[o] && (Fp[o] = !0, console.warn(n(o, " has been deprecated since v" + a + " and will be removed in the near future"))), e ? e(i, o, s) : !0;
        };
    };
    yl.spelling = function(e) {
        return (a, r)=>(console.warn(`${r} is likely a misspelling of ${e}`), !0);
    };
    function SC(t, e, a) {
        if (typeof t != "object") throw new Ke("options must be an object", Ke.ERR_BAD_OPTION_VALUE);
        const r = Object.keys(t);
        let n = r.length;
        for(; n-- > 0;){
            const i = r[n], o = e[i];
            if (o) {
                const s = t[i], l = s === void 0 || o(s, i, t);
                if (l !== !0) throw new Ke("option " + i + " must be " + l, Ke.ERR_BAD_OPTION_VALUE);
                continue;
            }
            if (a !== !0) throw new Ke("Unknown option " + i, Ke.ERR_BAD_OPTION);
        }
    }
    const xs = {
        assertOptions: SC,
        validators: yl
    }, pr = xs.validators;
    let Sn = class {
        constructor(e){
            this.defaults = e, this.interceptors = {
                request: new dp,
                response: new dp
            };
        }
        async request(e, a) {
            try {
                return await this._request(e, a);
            } catch (r) {
                if (r instanceof Error) {
                    let n = {};
                    Error.captureStackTrace ? Error.captureStackTrace(n) : n = new Error;
                    const i = n.stack ? n.stack.replace(/^.+\n/, "") : "";
                    try {
                        r.stack ? i && !String(r.stack).endsWith(i.replace(/^.+\n.+\n/, "")) && (r.stack += `
` + i) : r.stack = i;
                    } catch  {}
                }
                throw r;
            }
        }
        _request(e, a) {
            typeof e == "string" ? (a = a || {}, a.url = e) : a = e || {}, a = Dn(this.defaults, a);
            const { transitional: r, paramsSerializer: n, headers: i } = a;
            r !== void 0 && xs.assertOptions(r, {
                silentJSONParsing: pr.transitional(pr.boolean),
                forcedJSONParsing: pr.transitional(pr.boolean),
                clarifyTimeoutError: pr.transitional(pr.boolean)
            }, !1), n != null && (oe.isFunction(n) ? a.paramsSerializer = {
                serialize: n
            } : xs.assertOptions(n, {
                encode: pr.function,
                serialize: pr.function
            }, !0)), a.allowAbsoluteUrls !== void 0 || (this.defaults.allowAbsoluteUrls !== void 0 ? a.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls : a.allowAbsoluteUrls = !0), xs.assertOptions(a, {
                baseUrl: pr.spelling("baseURL"),
                withXsrfToken: pr.spelling("withXSRFToken")
            }, !0), a.method = (a.method || this.defaults.method || "get").toLowerCase();
            let o = i && oe.merge(i.common, i[a.method]);
            i && oe.forEach([
                "delete",
                "get",
                "head",
                "post",
                "put",
                "patch",
                "common"
            ], (f)=>{
                delete i[f];
            }), a.headers = Ra.concat(o, i);
            const s = [];
            let l = !0;
            this.interceptors.request.forEach(function(p) {
                typeof p.runWhen == "function" && p.runWhen(a) === !1 || (l = l && p.synchronous, s.unshift(p.fulfilled, p.rejected));
            });
            const u = [];
            this.interceptors.response.forEach(function(p) {
                u.push(p.fulfilled, p.rejected);
            });
            let c, d = 0, h;
            if (!l) {
                const f = [
                    bp.bind(this),
                    void 0
                ];
                for(f.unshift.apply(f, s), f.push.apply(f, u), h = f.length, c = Promise.resolve(a); d < h;)c = c.then(f[d++], f[d++]);
                return c;
            }
            h = s.length;
            let m = a;
            for(d = 0; d < h;){
                const f = s[d++], p = s[d++];
                try {
                    m = f(m);
                } catch (g) {
                    p.call(this, g);
                    break;
                }
            }
            try {
                c = bp.call(this, m);
            } catch (f) {
                return Promise.reject(f);
            }
            for(d = 0, h = u.length; d < h;)c = c.then(u[d++], u[d++]);
            return c;
        }
        getUri(e) {
            e = Dn(this.defaults, e);
            const a = wb(e.baseURL, e.url, e.allowAbsoluteUrls);
            return yb(a, e.params, e.paramsSerializer);
        }
    };
    oe.forEach([
        "delete",
        "get",
        "head",
        "options"
    ], function(e) {
        Sn.prototype[e] = function(a, r) {
            return this.request(Dn(r || {}, {
                method: e,
                url: a,
                data: (r || {}).data
            }));
        };
    });
    oe.forEach([
        "post",
        "put",
        "patch"
    ], function(e) {
        function a(r) {
            return function(i, o, s) {
                return this.request(Dn(s || {}, {
                    method: e,
                    headers: r ? {
                        "Content-Type": "multipart/form-data"
                    } : {},
                    url: i,
                    data: o
                }));
            };
        }
        Sn.prototype[e] = a(), Sn.prototype[e + "Form"] = a(!0);
    });
    let CC = class Eb {
        constructor(e){
            if (typeof e != "function") throw new TypeError("executor must be a function.");
            let a;
            this.promise = new Promise(function(i) {
                a = i;
            });
            const r = this;
            this.promise.then((n)=>{
                if (!r._listeners) return;
                let i = r._listeners.length;
                for(; i-- > 0;)r._listeners[i](n);
                r._listeners = null;
            }), this.promise.then = (n)=>{
                let i;
                const o = new Promise((s)=>{
                    r.subscribe(s), i = s;
                }).then(n);
                return o.cancel = function() {
                    r.unsubscribe(i);
                }, o;
            }, e(function(i, o, s) {
                r.reason || (r.reason = new Pi(i, o, s), a(r.reason));
            });
        }
        throwIfRequested() {
            if (this.reason) throw this.reason;
        }
        subscribe(e) {
            if (this.reason) {
                e(this.reason);
                return;
            }
            this._listeners ? this._listeners.push(e) : this._listeners = [
                e
            ];
        }
        unsubscribe(e) {
            if (!this._listeners) return;
            const a = this._listeners.indexOf(e);
            a !== -1 && this._listeners.splice(a, 1);
        }
        toAbortSignal() {
            const e = new AbortController, a = (r)=>{
                e.abort(r);
            };
            return this.subscribe(a), e.signal.unsubscribe = ()=>this.unsubscribe(a), e.signal;
        }
        static source() {
            let e;
            return {
                token: new Eb(function(n) {
                    e = n;
                }),
                cancel: e
            };
        }
    };
    function AC(t) {
        return function(a) {
            return t.apply(null, a);
        };
    }
    function DC(t) {
        return oe.isObject(t) && t.isAxiosError === !0;
    }
    const ih = {
        Continue: 100,
        SwitchingProtocols: 101,
        Processing: 102,
        EarlyHints: 103,
        Ok: 200,
        Created: 201,
        Accepted: 202,
        NonAuthoritativeInformation: 203,
        NoContent: 204,
        ResetContent: 205,
        PartialContent: 206,
        MultiStatus: 207,
        AlreadyReported: 208,
        ImUsed: 226,
        MultipleChoices: 300,
        MovedPermanently: 301,
        Found: 302,
        SeeOther: 303,
        NotModified: 304,
        UseProxy: 305,
        Unused: 306,
        TemporaryRedirect: 307,
        PermanentRedirect: 308,
        BadRequest: 400,
        Unauthorized: 401,
        PaymentRequired: 402,
        Forbidden: 403,
        NotFound: 404,
        MethodNotAllowed: 405,
        NotAcceptable: 406,
        ProxyAuthenticationRequired: 407,
        RequestTimeout: 408,
        Conflict: 409,
        Gone: 410,
        LengthRequired: 411,
        PreconditionFailed: 412,
        PayloadTooLarge: 413,
        UriTooLong: 414,
        UnsupportedMediaType: 415,
        RangeNotSatisfiable: 416,
        ExpectationFailed: 417,
        ImATeapot: 418,
        MisdirectedRequest: 421,
        UnprocessableEntity: 422,
        Locked: 423,
        FailedDependency: 424,
        TooEarly: 425,
        UpgradeRequired: 426,
        PreconditionRequired: 428,
        TooManyRequests: 429,
        RequestHeaderFieldsTooLarge: 431,
        UnavailableForLegalReasons: 451,
        InternalServerError: 500,
        NotImplemented: 501,
        BadGateway: 502,
        ServiceUnavailable: 503,
        GatewayTimeout: 504,
        HttpVersionNotSupported: 505,
        VariantAlsoNegotiates: 506,
        InsufficientStorage: 507,
        LoopDetected: 508,
        NotExtended: 510,
        NetworkAuthenticationRequired: 511
    };
    Object.entries(ih).forEach(([t, e])=>{
        ih[e] = t;
    });
    function _b(t) {
        const e = new Sn(t), a = sb(Sn.prototype.request, e);
        return oe.extend(a, Sn.prototype, e, {
            allOwnKeys: !0
        }), oe.extend(a, e, null, {
            allOwnKeys: !0
        }), a.create = function(n) {
            return _b(Dn(t, n));
        }, a;
    }
    Vt = _b(Mo);
    Vt.Axios = Sn;
    Vt.CanceledError = Pi;
    Vt.CancelToken = CC;
    Vt.isCancel = kb;
    Vt.VERSION = Tb;
    Vt.toFormData = gl;
    Vt.AxiosError = Ke;
    Vt.Cancel = Vt.CanceledError;
    Vt.all = function(e) {
        return Promise.all(e);
    };
    Vt.spread = AC;
    Vt.isAxiosError = DC;
    Vt.mergeConfig = Dn;
    Vt.AxiosHeaders = Ra;
    Vt.formToJSON = (t)=>Fb(oe.isHTMLForm(t) ? new FormData(t) : t);
    Vt.getAdapter = Db.getAdapter;
    Vt.HttpStatusCode = ih;
    Vt.default = Vt;
    const { Axios: WV, AxiosError: GV, CanceledError: $V, isCancel: UV, CancelToken: jV, VERSION: YV, all: qV, Cancel: KV, isAxiosError: XV, spread: JV, toFormData: ZV, AxiosHeaders: QV, HttpStatusCode: eW, formToJSON: tW, getAdapter: aW, mergeConfig: rW } = Vt;
    class TC {
        axios;
        up = !1;
        constructor(){
            let e = `${location.origin}${location.pathname}`;
            e.endsWith("/") || (e += "/"), e += "backend", this.axios = Vt.create({
                baseURL: e,
                withCredentials: !0,
                headers: {
                    put: {
                        "Content-Type": "application/json"
                    }
                }
            });
        }
        async ping() {
            return await this.axios.get("/ping").then((e)=>e.data === "pong", ()=>!1).then((e)=>(this.up = e, e));
        }
        async getAll() {
            return this.up ? this.axios.get("/config").then((e)=>e.data) : null;
        }
        async get(e) {
            return this.up ? this.axios.get(`/config/${e}`).then((a)=>a.data[e], ()=>null) : null;
        }
        async set(e, a) {
            return this.up ? this.axios.put(`/config/${e}`, {
                value: a
            }).then(()=>!0, ()=>!1) : !1;
        }
        async del(e) {
            return this.up ? this.axios.delete(`/config/${e}`).then(()=>!0, ()=>!1) : !1;
        }
        async update() {
            return this.axios.get("/update");
        }
    }
    const oh = new TC;
    function yu(t, e, a = {}) {
        const r = de(()=>{}), n = de({});
        function i(c) {
            return a.whitelist ? a.whitelist.includes(c) : a.blacklist ? !a.blacklist.includes(c) : !0;
        }
        async function o() {
            const c = await oh.get(e);
            if (!c) return;
            const d = JSON.parse(c), h = {};
            Object.entries(d).forEach(([m, f])=>{
                i(m) && (h[m] = f);
            }), t.$patch(h), n.value = JSON.parse(JSON.stringify(h));
        }
        async function s() {
            const c = {};
            Object.entries(t.$state).forEach(([d, h])=>{
                i(d) && (c[d] = h);
            }), aF(c, n.value) || await oh.set(e, JSON.stringify(c)) && (n.value = JSON.parse(JSON.stringify(c)));
        }
        function l() {
            r.value = t.$subscribe(()=>{
                s();
            });
        }
        function u() {
            r.value();
        }
        return {
            loadState: o,
            saveState: s,
            registerWatcher: l,
            cancelWatcher: u
        };
    }
    const ia = [];
    for(let t = 0; t < 256; ++t)ia.push((t + 256).toString(16).slice(1));
    function EC(t, e = 0) {
        return (ia[t[e + 0]] + ia[t[e + 1]] + ia[t[e + 2]] + ia[t[e + 3]] + "-" + ia[t[e + 4]] + ia[t[e + 5]] + "-" + ia[t[e + 6]] + ia[t[e + 7]] + "-" + ia[t[e + 8]] + ia[t[e + 9]] + "-" + ia[t[e + 10]] + ia[t[e + 11]] + ia[t[e + 12]] + ia[t[e + 13]] + ia[t[e + 14]] + ia[t[e + 15]]).toLowerCase();
    }
    let bu;
    const _C = new Uint8Array(16);
    function PC() {
        if (!bu) {
            if (typeof crypto > "u" || !crypto.getRandomValues) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
            bu = crypto.getRandomValues.bind(crypto);
        }
        return bu(_C);
    }
    const BC = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), kp = {
        randomUUID: BC
    };
    sh = function(t, e, a) {
        if (kp.randomUUID && !t) return kp.randomUUID();
        t = t || {};
        const r = t.random ?? t.rng?.() ?? PC();
        if (r.length < 16) throw new Error("Random bytes length must be >= 16");
        return r[6] = r[6] & 15 | 64, r[8] = r[8] & 63 | 128, EC(r);
    };
    Bi = Fa("dialogs", ()=>{
        const t = de(new Map), e = T(()=>t.value.size > 0);
        function a(i) {
            return t.value.has(i);
        }
        function r(i, o, s) {
            const l = sh();
            return t.value.set(l, {
                component: i,
                props: o || {},
                guid: l,
                onClose: s
            }), cr(t), l;
        }
        function n(i) {
            const o = t.value.get(i);
            o && o.onClose && o.onClose(), t.value.delete(i), cr(t);
        }
        return {
            dialogs: t,
            hasActiveDialog: e,
            isDialogOpened: a,
            createDialog: r,
            deleteDialog: n,
            $reset: ()=>{
                t.value.clear(), cr(t);
            }
        };
    });
    bl = function(t) {
        const e = W(!0), a = Bi(), r = T({
            get: ()=>e.value,
            set: (i)=>{
                e.value = i, i || n();
            }
        });
        function n() {
            setTimeout(()=>a.deleteDialog(t), 300);
        }
        return il(n), {
            isOpened: r
        };
    };
    qt = function() {
        const t = kx(), { useEmojiState: e } = gt(ka());
        function a(r) {
            const n = t.t(`torrent.state.${tF(r)}`);
            return e.value ? [
                YA[r],
                n
            ].join(" ") : n;
        }
        return {
            ...t,
            getTorrentStateString: a
        };
    };
    xm = function(t, e, a, r) {
        const n = T(()=>{
            const s = Ue(t) ?? [], l = (Ue(e) ?? "").trim().toLowerCase().split(/[ ,]/i).filter(Boolean), u = l.filter((h)=>!h.startsWith("-")), c = l.filter((h)=>h.startsWith("-")).map((h)=>h.slice(1));
            return s.filter((h)=>i(h, u) && o(h, c));
        });
        function i(s, l) {
            return l.every((u)=>{
                let c = a(s);
                return Array.isArray(c) || (c = [
                    c
                ]), c.some((d)=>d.toLowerCase().indexOf(u) !== -1);
            });
        }
        function o(s, l) {
            return !l.some((u)=>{
                let c = a(s);
                return Array.isArray(c) || (c = [
                    c
                ]), c.some((d)=>d.toLowerCase().indexOf(u) !== -1);
            });
        }
        return {
            results: n
        };
    };
    function MC() {
        function t(e) {
            return {
                added_on: e.added_on,
                amount_left: e.amount_left,
                auto_tmm: e.auto_tmm,
                availability: Math.floor(e.availability * 100) / 100,
                available_peers: e.num_incomplete,
                available_seeds: e.num_complete,
                category: e.category,
                comment: e.comment ?? "",
                completed_on: e.completion_on,
                content_path: e.content_path,
                dl_limit: e.dl_limit,
                dlspeed: e.dlspeed,
                download_path: e.download_path,
                downloaded: e.downloaded,
                downloaded_session: e.downloaded_session,
                eta: e.eta,
                f_l_piece_prio: e.f_l_piece_prio,
                forced: e.force_start,
                hasMetadata: e.has_metadata ?? [
                    wt.META_DL,
                    wt.FORCED_META_DL
                ].includes(e.state),
                hash: e.hash,
                inactive_seeding_time_limit: e.inactive_seeding_time_limit,
                infohash_v1: e.infohash_v1,
                infohash_v2: e.infohash_v2,
                last_activity: e.last_activity,
                magnet: e.magnet_uri,
                name: e.name,
                num_leechs: e.num_leechs,
                num_seeds: e.num_seeds,
                popularity: e.popularity,
                priority: e.priority,
                private: e.private,
                progress: e.progress,
                ratio: Math.round(e.ratio * 100) / 100,
                ratio_limit: e.ratio_limit,
                reannounce: e.reannounce,
                rootPath: e.root_path,
                savePath: e.save_path,
                seeding_time: e.seeding_time,
                seeding_time_limit: e.seeding_time_limit,
                seen_complete: e.seen_complete,
                seq_dl: e.seq_dl,
                size: e.size,
                state: qA(e.state),
                super_seeding: e.super_seeding,
                tags: e.tags.length > 0 ? e.tags.split(", ").map((a)=>a.trim()) : [],
                time_active: e.time_active,
                total_size: e.total_size,
                tracker: e.tracker,
                trackers_count: e.trackers_count,
                up_limit: e.up_limit,
                uploaded: e.uploaded,
                uploaded_session: e.uploaded_session,
                upspeed: e.upspeed,
                get avgDownloadSpeed () {
                    const a = this.time_active - this.seeding_time;
                    return this.downloaded / (a === 0 ? -1 : a);
                },
                get avgUploadSpeed () {
                    const a = this.time_active;
                    return this.uploaded / (a === 0 ? -1 : a);
                },
                get basename_content_path () {
                    return fd(this.content_path);
                },
                get basename_download_path () {
                    return fd(this.download_path);
                },
                get basename_save_path () {
                    return fd(this.savePath);
                },
                get globalSpeed () {
                    return this.dlspeed + this.upspeed;
                },
                get globalVolume () {
                    return this.downloaded + this.uploaded;
                },
                get trackerDomain () {
                    return VD(this.tracker);
                },
                get truncated_hash () {
                    return this.hash.slice(0, 8);
                }
            };
        }
        return {
            buildFromQbit: t
        };
    }
    var Fu, xp;
    function Pb() {
        if (xp) return Fu;
        xp = 1;
        var t = Object.prototype.toString;
        return Fu = function(a) {
            var r = t.call(a), n = r === "[object Arguments]";
            return n || (n = r !== "[object Array]" && a !== null && typeof a == "object" && typeof a.length == "number" && a.length >= 0 && t.call(a.callee) === "[object Function]"), n;
        }, Fu;
    }
    var ku, wp;
    function RC() {
        if (wp) return ku;
        wp = 1;
        var t;
        if (!Object.keys) {
            var e = Object.prototype.hasOwnProperty, a = Object.prototype.toString, r = Pb(), n = Object.prototype.propertyIsEnumerable, i = !n.call({
                toString: null
            }, "toString"), o = n.call(function() {}, "prototype"), s = [
                "toString",
                "toLocaleString",
                "valueOf",
                "hasOwnProperty",
                "isPrototypeOf",
                "propertyIsEnumerable",
                "constructor"
            ], l = function(h) {
                var m = h.constructor;
                return m && m.prototype === h;
            }, u = {
                $applicationCache: !0,
                $console: !0,
                $external: !0,
                $frame: !0,
                $frameElement: !0,
                $frames: !0,
                $innerHeight: !0,
                $innerWidth: !0,
                $onmozfullscreenchange: !0,
                $onmozfullscreenerror: !0,
                $outerHeight: !0,
                $outerWidth: !0,
                $pageXOffset: !0,
                $pageYOffset: !0,
                $parent: !0,
                $scrollLeft: !0,
                $scrollTop: !0,
                $scrollX: !0,
                $scrollY: !0,
                $self: !0,
                $webkitIndexedDB: !0,
                $webkitStorageInfo: !0,
                $window: !0
            }, c = function() {
                if (typeof window > "u") return !1;
                for(var h in window)try {
                    if (!u["$" + h] && e.call(window, h) && window[h] !== null && typeof window[h] == "object") try {
                        l(window[h]);
                    } catch  {
                        return !0;
                    }
                } catch  {
                    return !0;
                }
                return !1;
            }(), d = function(h) {
                if (typeof window > "u" || !c) return l(h);
                try {
                    return l(h);
                } catch  {
                    return !1;
                }
            };
            t = function(m) {
                var f = m !== null && typeof m == "object", p = a.call(m) === "[object Function]", g = r(m), v = f && a.call(m) === "[object String]", b = [];
                if (!f && !p && !g) throw new TypeError("Object.keys called on a non-object");
                var k = o && p;
                if (v && m.length > 0 && !e.call(m, 0)) for(var S = 0; S < m.length; ++S)b.push(String(S));
                if (g && m.length > 0) for(var x = 0; x < m.length; ++x)b.push(String(x));
                else for(var C in m)!(k && C === "prototype") && e.call(m, C) && b.push(String(C));
                if (i) for(var w = d(m), F = 0; F < s.length; ++F)!(w && s[F] === "constructor") && e.call(m, s[F]) && b.push(s[F]);
                return b;
            };
        }
        return ku = t, ku;
    }
    var xu, Sp;
    function LC() {
        if (Sp) return xu;
        Sp = 1;
        var t = Array.prototype.slice, e = Pb(), a = Object.keys, r = a ? function(o) {
            return a(o);
        } : RC(), n = Object.keys;
        return r.shim = function() {
            if (Object.keys) {
                var o = function() {
                    var s = Object.keys(arguments);
                    return s && s.length === arguments.length;
                }(1, 2);
                o || (Object.keys = function(l) {
                    return e(l) ? n(t.call(l)) : n(l);
                });
            } else Object.keys = r;
            return Object.keys || r;
        }, xu = r, xu;
    }
    var wu, Cp;
    function Ro() {
        if (Cp) return wu;
        Cp = 1;
        var t = Object.defineProperty || !1;
        if (t) try {
            t({}, "a", {
                value: 1
            });
        } catch  {
            t = !1;
        }
        return wu = t, wu;
    }
    var Su, Ap;
    function Fl() {
        return Ap || (Ap = 1, Su = SyntaxError), Su;
    }
    var Cu, Dp;
    function _t() {
        return Dp || (Dp = 1, Cu = TypeError), Cu;
    }
    var Au, Tp;
    function IC() {
        return Tp || (Tp = 1, Au = Object.getOwnPropertyDescriptor), Au;
    }
    var Du, Ep;
    function Mi() {
        if (Ep) return Du;
        Ep = 1;
        var t = IC();
        if (t) try {
            t([], "length");
        } catch  {
            t = null;
        }
        return Du = t, Du;
    }
    var Tu, _p;
    function wm() {
        if (_p) return Tu;
        _p = 1;
        var t = Ro(), e = Fl(), a = _t(), r = Mi();
        return Tu = function(i, o, s) {
            if (!i || typeof i != "object" && typeof i != "function") throw new a("`obj` must be an object or a function`");
            if (typeof o != "string" && typeof o != "symbol") throw new a("`property` must be a string or a symbol`");
            if (arguments.length > 3 && typeof arguments[3] != "boolean" && arguments[3] !== null) throw new a("`nonEnumerable`, if provided, must be a boolean or null");
            if (arguments.length > 4 && typeof arguments[4] != "boolean" && arguments[4] !== null) throw new a("`nonWritable`, if provided, must be a boolean or null");
            if (arguments.length > 5 && typeof arguments[5] != "boolean" && arguments[5] !== null) throw new a("`nonConfigurable`, if provided, must be a boolean or null");
            if (arguments.length > 6 && typeof arguments[6] != "boolean") throw new a("`loose`, if provided, must be a boolean");
            var l = arguments.length > 3 ? arguments[3] : null, u = arguments.length > 4 ? arguments[4] : null, c = arguments.length > 5 ? arguments[5] : null, d = arguments.length > 6 ? arguments[6] : !1, h = !!r && r(i, o);
            if (t) t(i, o, {
                configurable: c === null && h ? h.configurable : !c,
                enumerable: l === null && h ? h.enumerable : !l,
                value: s,
                writable: u === null && h ? h.writable : !u
            });
            else if (d || !l && !u && !c) i[o] = s;
            else throw new e("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");
        }, Tu;
    }
    var Eu, Pp;
    function kl() {
        if (Pp) return Eu;
        Pp = 1;
        var t = Ro(), e = function() {
            return !!t;
        };
        return e.hasArrayLengthDefineBug = function() {
            if (!t) return null;
            try {
                return t([], "length", {
                    value: 1
                }).length !== 1;
            } catch  {
                return !0;
            }
        }, Eu = e, Eu;
    }
    var _u, Bp;
    function Sm() {
        if (Bp) return _u;
        Bp = 1;
        var t = LC(), e = typeof Symbol == "function" && typeof Symbol("foo") == "symbol", a = Object.prototype.toString, r = Array.prototype.concat, n = wm(), i = function(u) {
            return typeof u == "function" && a.call(u) === "[object Function]";
        }, o = kl()(), s = function(u, c, d, h) {
            if (c in u) {
                if (h === !0) {
                    if (u[c] === d) return;
                } else if (!i(h) || !h()) return;
            }
            o ? n(u, c, d, !0) : n(u, c, d);
        }, l = function(u, c) {
            var d = arguments.length > 2 ? arguments[2] : {}, h = t(c);
            e && (h = r.call(h, Object.getOwnPropertySymbols(c)));
            for(var m = 0; m < h.length; m += 1)s(u, h[m], c[h[m]], d[h[m]]);
        };
        return l.supportsDescriptors = !!o, _u = l, _u;
    }
    var Pu = {
        exports: {}
    }, Bu, Mp;
    function Bb() {
        return Mp || (Mp = 1, Bu = Object), Bu;
    }
    var Mu, Rp;
    function zC() {
        return Rp || (Rp = 1, Mu = Error), Mu;
    }
    var Ru, Lp;
    function NC() {
        return Lp || (Lp = 1, Ru = EvalError), Ru;
    }
    var Lu, Ip;
    function Mb() {
        return Ip || (Ip = 1, Lu = RangeError), Lu;
    }
    var Iu, zp;
    function OC() {
        return zp || (zp = 1, Iu = ReferenceError), Iu;
    }
    var zu, Np;
    function HC() {
        return Np || (Np = 1, zu = URIError), zu;
    }
    var Nu, Op;
    function Rb() {
        return Op || (Op = 1, Nu = Math.abs), Nu;
    }
    var Ou, Hp;
    function Cm() {
        return Hp || (Hp = 1, Ou = Math.floor), Ou;
    }
    var Hu, Vp;
    function VC() {
        return Vp || (Vp = 1, Hu = Math.max), Hu;
    }
    var Vu, Wp;
    function WC() {
        return Wp || (Wp = 1, Vu = Math.min), Vu;
    }
    var Wu, Gp;
    function GC() {
        return Gp || (Gp = 1, Wu = Math.pow), Wu;
    }
    var Gu, $p;
    function Lb() {
        return $p || ($p = 1, Gu = function() {
            if (typeof Symbol != "function" || typeof Object.getOwnPropertySymbols != "function") return !1;
            if (typeof Symbol.iterator == "symbol") return !0;
            var e = {}, a = Symbol("test"), r = Object(a);
            if (typeof a == "string" || Object.prototype.toString.call(a) !== "[object Symbol]" || Object.prototype.toString.call(r) !== "[object Symbol]") return !1;
            var n = 42;
            e[a] = n;
            for(var i in e)return !1;
            if (typeof Object.keys == "function" && Object.keys(e).length !== 0 || typeof Object.getOwnPropertyNames == "function" && Object.getOwnPropertyNames(e).length !== 0) return !1;
            var o = Object.getOwnPropertySymbols(e);
            if (o.length !== 1 || o[0] !== a || !Object.prototype.propertyIsEnumerable.call(e, a)) return !1;
            if (typeof Object.getOwnPropertyDescriptor == "function") {
                var s = Object.getOwnPropertyDescriptor(e, a);
                if (s.value !== n || s.enumerable !== !0) return !1;
            }
            return !0;
        }), Gu;
    }
    var $u, Up;
    function Ib() {
        if (Up) return $u;
        Up = 1;
        var t = typeof Symbol < "u" && Symbol, e = Lb();
        return $u = function() {
            return typeof t != "function" || typeof Symbol != "function" || typeof t("foo") != "symbol" || typeof Symbol("bar") != "symbol" ? !1 : e();
        }, $u;
    }
    var Uu, jp;
    function $C() {
        if (jp) return Uu;
        jp = 1;
        var t = "Function.prototype.bind called on incompatible ", e = Object.prototype.toString, a = Math.max, r = "[object Function]", n = function(l, u) {
            for(var c = [], d = 0; d < l.length; d += 1)c[d] = l[d];
            for(var h = 0; h < u.length; h += 1)c[h + l.length] = u[h];
            return c;
        }, i = function(l, u) {
            for(var c = [], d = u, h = 0; d < l.length; d += 1, h += 1)c[h] = l[d];
            return c;
        }, o = function(s, l) {
            for(var u = "", c = 0; c < s.length; c += 1)u += s[c], c + 1 < s.length && (u += l);
            return u;
        };
        return Uu = function(l) {
            var u = this;
            if (typeof u != "function" || e.apply(u) !== r) throw new TypeError(t + u);
            for(var c = i(arguments, 1), d, h = function() {
                if (this instanceof d) {
                    var v = u.apply(this, n(c, arguments));
                    return Object(v) === v ? v : this;
                }
                return u.apply(l, n(c, arguments));
            }, m = a(0, u.length - c.length), f = [], p = 0; p < m; p++)f[p] = "$" + p;
            if (d = Function("binder", "return function (" + o(f, ",") + "){ return binder.apply(this,arguments); }")(h), u.prototype) {
                var g = function() {};
                g.prototype = u.prototype, d.prototype = new g, g.prototype = null;
            }
            return d;
        }, Uu;
    }
    var ju, Yp;
    function Lo() {
        if (Yp) return ju;
        Yp = 1;
        var t = $C();
        return ju = Function.prototype.bind || t, ju;
    }
    var Yu, qp;
    function Am() {
        return qp || (qp = 1, Yu = Function.prototype.call), Yu;
    }
    var qu, Kp;
    function Dm() {
        return Kp || (Kp = 1, qu = Function.prototype.apply), qu;
    }
    var Ku, Xp;
    function UC() {
        return Xp || (Xp = 1, Ku = typeof Reflect < "u" && Reflect && Reflect.apply), Ku;
    }
    var Xu, Jp;
    function zb() {
        if (Jp) return Xu;
        Jp = 1;
        var t = Lo(), e = Dm(), a = Am(), r = UC();
        return Xu = r || t.call(a, e), Xu;
    }
    var Ju, Zp;
    function Tm() {
        if (Zp) return Ju;
        Zp = 1;
        var t = Lo(), e = _t(), a = Am(), r = zb();
        return Ju = function(i) {
            if (i.length < 1 || typeof i[0] != "function") throw new e("a function is required");
            return r(t, a, i);
        }, Ju;
    }
    var Zu, Qp;
    function jC() {
        if (Qp) return Zu;
        Qp = 1;
        var t = Tm(), e = Mi(), a;
        try {
            a = [].__proto__ === Array.prototype;
        } catch (o) {
            if (!o || typeof o != "object" || !("code" in o) || o.code !== "ERR_PROTO_ACCESS") throw o;
        }
        var r = !!a && e && e(Object.prototype, "__proto__"), n = Object, i = n.getPrototypeOf;
        return Zu = r && typeof r.get == "function" ? t([
            r.get
        ]) : typeof i == "function" ? function(s) {
            return i(s == null ? s : n(s));
        } : !1, Zu;
    }
    var Qu, eg;
    function $n() {
        if (eg) return Qu;
        eg = 1;
        var t = Function.prototype.call, e = Object.prototype.hasOwnProperty, a = Lo();
        return Qu = a.call(t, e), Qu;
    }
    var ec, tg;
    function Fr() {
        if (tg) return ec;
        tg = 1;
        var t, e = Bb(), a = zC(), r = NC(), n = Mb(), i = OC(), o = Fl(), s = _t(), l = HC(), u = Rb(), c = Cm(), d = VC(), h = WC(), m = GC(), f = Function, p = function(J) {
            try {
                return f('"use strict"; return (' + J + ").constructor;")();
            } catch  {}
        }, g = Mi(), v = Ro(), b = function() {
            throw new s;
        }, k = g ? function() {
            try {
                return arguments.callee, b;
            } catch  {
                try {
                    return g(arguments, "callee").get;
                } catch  {
                    return b;
                }
            }
        }() : b, S = Ib()(), x = jC(), C = typeof Reflect == "function" && Reflect.getPrototypeOf || e.getPrototypeOf || x, w = Dm(), F = Am(), D = {}, _ = typeof Uint8Array > "u" || !C ? t : C(Uint8Array), A = {
            __proto__: null,
            "%AggregateError%": typeof AggregateError > "u" ? t : AggregateError,
            "%Array%": Array,
            "%ArrayBuffer%": typeof ArrayBuffer > "u" ? t : ArrayBuffer,
            "%ArrayIteratorPrototype%": S && C ? C([][Symbol.iterator]()) : t,
            "%AsyncFromSyncIteratorPrototype%": t,
            "%AsyncFunction%": D,
            "%AsyncGenerator%": D,
            "%AsyncGeneratorFunction%": D,
            "%AsyncIteratorPrototype%": D,
            "%Atomics%": typeof Atomics > "u" ? t : Atomics,
            "%BigInt%": typeof BigInt > "u" ? t : BigInt,
            "%BigInt64Array%": typeof BigInt64Array > "u" ? t : BigInt64Array,
            "%BigUint64Array%": typeof BigUint64Array > "u" ? t : BigUint64Array,
            "%Boolean%": Boolean,
            "%DataView%": typeof DataView > "u" ? t : DataView,
            "%Date%": Date,
            "%decodeURI%": decodeURI,
            "%decodeURIComponent%": decodeURIComponent,
            "%encodeURI%": encodeURI,
            "%encodeURIComponent%": encodeURIComponent,
            "%Error%": a,
            "%eval%": eval,
            "%EvalError%": r,
            "%Float32Array%": typeof Float32Array > "u" ? t : Float32Array,
            "%Float64Array%": typeof Float64Array > "u" ? t : Float64Array,
            "%FinalizationRegistry%": typeof FinalizationRegistry > "u" ? t : FinalizationRegistry,
            "%Function%": f,
            "%GeneratorFunction%": D,
            "%Int8Array%": typeof Int8Array > "u" ? t : Int8Array,
            "%Int16Array%": typeof Int16Array > "u" ? t : Int16Array,
            "%Int32Array%": typeof Int32Array > "u" ? t : Int32Array,
            "%isFinite%": isFinite,
            "%isNaN%": isNaN,
            "%IteratorPrototype%": S && C ? C(C([][Symbol.iterator]())) : t,
            "%JSON%": typeof JSON == "object" ? JSON : t,
            "%Map%": typeof Map > "u" ? t : Map,
            "%MapIteratorPrototype%": typeof Map > "u" || !S || !C ? t : C(new Map()[Symbol.iterator]()),
            "%Math%": Math,
            "%Number%": Number,
            "%Object%": e,
            "%Object.getOwnPropertyDescriptor%": g,
            "%parseFloat%": parseFloat,
            "%parseInt%": parseInt,
            "%Promise%": typeof Promise > "u" ? t : Promise,
            "%Proxy%": typeof Proxy > "u" ? t : Proxy,
            "%RangeError%": n,
            "%ReferenceError%": i,
            "%Reflect%": typeof Reflect > "u" ? t : Reflect,
            "%RegExp%": RegExp,
            "%Set%": typeof Set > "u" ? t : Set,
            "%SetIteratorPrototype%": typeof Set > "u" || !S || !C ? t : C(new Set()[Symbol.iterator]()),
            "%SharedArrayBuffer%": typeof SharedArrayBuffer > "u" ? t : SharedArrayBuffer,
            "%String%": String,
            "%StringIteratorPrototype%": S && C ? C(""[Symbol.iterator]()) : t,
            "%Symbol%": S ? Symbol : t,
            "%SyntaxError%": o,
            "%ThrowTypeError%": k,
            "%TypedArray%": _,
            "%TypeError%": s,
            "%Uint8Array%": typeof Uint8Array > "u" ? t : Uint8Array,
            "%Uint8ClampedArray%": typeof Uint8ClampedArray > "u" ? t : Uint8ClampedArray,
            "%Uint16Array%": typeof Uint16Array > "u" ? t : Uint16Array,
            "%Uint32Array%": typeof Uint32Array > "u" ? t : Uint32Array,
            "%URIError%": l,
            "%WeakMap%": typeof WeakMap > "u" ? t : WeakMap,
            "%WeakRef%": typeof WeakRef > "u" ? t : WeakRef,
            "%WeakSet%": typeof WeakSet > "u" ? t : WeakSet,
            "%Function.prototype.call%": F,
            "%Function.prototype.apply%": w,
            "%Object.defineProperty%": v,
            "%Math.abs%": u,
            "%Math.floor%": c,
            "%Math.max%": d,
            "%Math.min%": h,
            "%Math.pow%": m
        };
        if (C) try {
            null.error;
        } catch (J) {
            var E = C(C(J));
            A["%Error.prototype%"] = E;
        }
        var B = function J(U) {
            var le;
            if (U === "%AsyncFunction%") le = p("async function () {}");
            else if (U === "%GeneratorFunction%") le = p("function* () {}");
            else if (U === "%AsyncGeneratorFunction%") le = p("async function* () {}");
            else if (U === "%AsyncGenerator%") {
                var fe = J("%AsyncGeneratorFunction%");
                fe && (le = fe.prototype);
            } else if (U === "%AsyncIteratorPrototype%") {
                var ee = J("%AsyncGenerator%");
                ee && C && (le = C(ee.prototype));
            }
            return A[U] = le, le;
        }, P = {
            __proto__: null,
            "%ArrayBufferPrototype%": [
                "ArrayBuffer",
                "prototype"
            ],
            "%ArrayPrototype%": [
                "Array",
                "prototype"
            ],
            "%ArrayProto_entries%": [
                "Array",
                "prototype",
                "entries"
            ],
            "%ArrayProto_forEach%": [
                "Array",
                "prototype",
                "forEach"
            ],
            "%ArrayProto_keys%": [
                "Array",
                "prototype",
                "keys"
            ],
            "%ArrayProto_values%": [
                "Array",
                "prototype",
                "values"
            ],
            "%AsyncFunctionPrototype%": [
                "AsyncFunction",
                "prototype"
            ],
            "%AsyncGenerator%": [
                "AsyncGeneratorFunction",
                "prototype"
            ],
            "%AsyncGeneratorPrototype%": [
                "AsyncGeneratorFunction",
                "prototype",
                "prototype"
            ],
            "%BooleanPrototype%": [
                "Boolean",
                "prototype"
            ],
            "%DataViewPrototype%": [
                "DataView",
                "prototype"
            ],
            "%DatePrototype%": [
                "Date",
                "prototype"
            ],
            "%ErrorPrototype%": [
                "Error",
                "prototype"
            ],
            "%EvalErrorPrototype%": [
                "EvalError",
                "prototype"
            ],
            "%Float32ArrayPrototype%": [
                "Float32Array",
                "prototype"
            ],
            "%Float64ArrayPrototype%": [
                "Float64Array",
                "prototype"
            ],
            "%FunctionPrototype%": [
                "Function",
                "prototype"
            ],
            "%Generator%": [
                "GeneratorFunction",
                "prototype"
            ],
            "%GeneratorPrototype%": [
                "GeneratorFunction",
                "prototype",
                "prototype"
            ],
            "%Int8ArrayPrototype%": [
                "Int8Array",
                "prototype"
            ],
            "%Int16ArrayPrototype%": [
                "Int16Array",
                "prototype"
            ],
            "%Int32ArrayPrototype%": [
                "Int32Array",
                "prototype"
            ],
            "%JSONParse%": [
                "JSON",
                "parse"
            ],
            "%JSONStringify%": [
                "JSON",
                "stringify"
            ],
            "%MapPrototype%": [
                "Map",
                "prototype"
            ],
            "%NumberPrototype%": [
                "Number",
                "prototype"
            ],
            "%ObjectPrototype%": [
                "Object",
                "prototype"
            ],
            "%ObjProto_toString%": [
                "Object",
                "prototype",
                "toString"
            ],
            "%ObjProto_valueOf%": [
                "Object",
                "prototype",
                "valueOf"
            ],
            "%PromisePrototype%": [
                "Promise",
                "prototype"
            ],
            "%PromiseProto_then%": [
                "Promise",
                "prototype",
                "then"
            ],
            "%Promise_all%": [
                "Promise",
                "all"
            ],
            "%Promise_reject%": [
                "Promise",
                "reject"
            ],
            "%Promise_resolve%": [
                "Promise",
                "resolve"
            ],
            "%RangeErrorPrototype%": [
                "RangeError",
                "prototype"
            ],
            "%ReferenceErrorPrototype%": [
                "ReferenceError",
                "prototype"
            ],
            "%RegExpPrototype%": [
                "RegExp",
                "prototype"
            ],
            "%SetPrototype%": [
                "Set",
                "prototype"
            ],
            "%SharedArrayBufferPrototype%": [
                "SharedArrayBuffer",
                "prototype"
            ],
            "%StringPrototype%": [
                "String",
                "prototype"
            ],
            "%SymbolPrototype%": [
                "Symbol",
                "prototype"
            ],
            "%SyntaxErrorPrototype%": [
                "SyntaxError",
                "prototype"
            ],
            "%TypedArrayPrototype%": [
                "TypedArray",
                "prototype"
            ],
            "%TypeErrorPrototype%": [
                "TypeError",
                "prototype"
            ],
            "%Uint8ArrayPrototype%": [
                "Uint8Array",
                "prototype"
            ],
            "%Uint8ClampedArrayPrototype%": [
                "Uint8ClampedArray",
                "prototype"
            ],
            "%Uint16ArrayPrototype%": [
                "Uint16Array",
                "prototype"
            ],
            "%Uint32ArrayPrototype%": [
                "Uint32Array",
                "prototype"
            ],
            "%URIErrorPrototype%": [
                "URIError",
                "prototype"
            ],
            "%WeakMapPrototype%": [
                "WeakMap",
                "prototype"
            ],
            "%WeakSetPrototype%": [
                "WeakSet",
                "prototype"
            ]
        }, M = Lo(), R = $n(), z = M.call(F, Array.prototype.concat), N = M.call(w, Array.prototype.splice), H = M.call(F, String.prototype.replace), I = M.call(F, String.prototype.slice), L = M.call(F, RegExp.prototype.exec), G = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g, q = /\\(\\)?/g, X = function(U) {
            var le = I(U, 0, 1), fe = I(U, -1);
            if (le === "%" && fe !== "%") throw new o("invalid intrinsic syntax, expected closing `%`");
            if (fe === "%" && le !== "%") throw new o("invalid intrinsic syntax, expected opening `%`");
            var ee = [];
            return H(U, G, function(ae, se, pe, ke) {
                ee[ee.length] = pe ? H(ke, q, "$1") : se || ae;
            }), ee;
        }, ue = function(U, le) {
            var fe = U, ee;
            if (R(P, fe) && (ee = P[fe], fe = "%" + ee[0] + "%"), R(A, fe)) {
                var ae = A[fe];
                if (ae === D && (ae = B(fe)), typeof ae > "u" && !le) throw new s("intrinsic " + U + " exists, but is not available. Please file an issue!");
                return {
                    alias: ee,
                    name: fe,
                    value: ae
                };
            }
            throw new o("intrinsic " + U + " does not exist!");
        };
        return ec = function(U, le) {
            if (typeof U != "string" || U.length === 0) throw new s("intrinsic name must be a non-empty string");
            if (arguments.length > 1 && typeof le != "boolean") throw new s('"allowMissing" argument must be a boolean');
            if (L(/^%?[^%]*%?$/, U) === null) throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
            var fe = X(U), ee = fe.length > 0 ? fe[0] : "", ae = ue("%" + ee + "%", le), se = ae.name, pe = ae.value, ke = !1, be = ae.alias;
            be && (ee = be[0], N(fe, z([
                0,
                1
            ], be)));
            for(var ne = 1, ge = !0; ne < fe.length; ne += 1){
                var Ve = fe[ne], $e = I(Ve, 0, 1), lt = I(Ve, -1);
                if (($e === '"' || $e === "'" || $e === "`" || lt === '"' || lt === "'" || lt === "`") && $e !== lt) throw new o("property names with quotes must have matching quotes");
                if ((Ve === "constructor" || !ge) && (ke = !0), ee += "." + Ve, se = "%" + ee + "%", R(A, se)) pe = A[se];
                else if (pe != null) {
                    if (!(Ve in pe)) {
                        if (!le) throw new s("base intrinsic for " + U + " exists, but the property is not available.");
                        return;
                    }
                    if (g && ne + 1 >= fe.length) {
                        var bt = g(pe, Ve);
                        ge = !!bt, ge && "get" in bt && !("originalValue" in bt.get) ? pe = bt.get : pe = pe[Ve];
                    } else ge = R(pe, Ve), pe = pe[Ve];
                    ge && !ke && (A[se] = pe);
                }
            }
            return pe;
        }, ec;
    }
    var tc, ag;
    function YC() {
        if (ag) return tc;
        ag = 1;
        var t = Fr(), e = wm(), a = kl()(), r = Mi(), n = _t(), i = t("%Math.floor%");
        return tc = function(s, l) {
            if (typeof s != "function") throw new n("`fn` is not a function");
            if (typeof l != "number" || l < 0 || l > 4294967295 || i(l) !== l) throw new n("`length` must be a positive 32-bit integer");
            var u = arguments.length > 2 && !!arguments[2], c = !0, d = !0;
            if ("length" in s && r) {
                var h = r(s, "length");
                h && !h.configurable && (c = !1), h && !h.writable && (d = !1);
            }
            return (c || d || !u) && (a ? e(s, "length", l, !0, !0) : e(s, "length", l)), s;
        }, tc;
    }
    var ac, rg;
    function qC() {
        if (rg) return ac;
        rg = 1;
        var t = Lo(), e = Dm(), a = zb();
        return ac = function() {
            return a(t, e, arguments);
        }, ac;
    }
    var ng;
    function Em() {
        return ng || (ng = 1, function(t) {
            var e = YC(), a = Ro(), r = Tm(), n = qC();
            t.exports = function(o) {
                var s = r(arguments), l = o.length - (arguments.length - 1);
                return e(s, 1 + (l > 0 ? l : 0), !0);
            }, a ? a(t.exports, "apply", {
                value: n
            }) : t.exports.apply = n;
        }(Pu)), Pu.exports;
    }
    var rc, ig;
    function KC() {
        if (ig) return rc;
        ig = 1;
        var t = Fr(), e = Em(), a = e(t("String.prototype.indexOf"));
        return rc = function(n, i) {
            var o = t(n, !!i);
            return typeof o == "function" && a(n, ".prototype.") > -1 ? e(o) : o;
        }, rc;
    }
    var nc, og;
    function xl() {
        return og || (og = 1, nc = Number.isNaN || function(e) {
            return e !== e;
        }), nc;
    }
    var ic, sg;
    function Nb() {
        if (sg) return ic;
        sg = 1;
        var t = xl();
        return ic = function(a) {
            return (typeof a == "number" || typeof a == "bigint") && !t(a) && a !== 1 / 0 && a !== -1 / 0;
        }, ic;
    }
    var oc, lg;
    function XC() {
        if (lg) return oc;
        lg = 1;
        var t = Rb(), e = Cm(), a = xl(), r = Nb();
        return oc = function(i) {
            if (typeof i != "number" || a(i) || !r(i)) return !1;
            var o = t(i);
            return e(o) === o;
        }, oc;
    }
    var sc, ug;
    function JC() {
        return ug || (ug = 1, sc = 4294967295), sc;
    }
    var lc, cg;
    function ZC() {
        if (cg) return lc;
        cg = 1;
        var t = {
            __proto__: null,
            foo: {}
        }, e = {
            __proto__: t
        }.foo === t.foo && !(t instanceof Object);
        return lc = function() {
            return e;
        }, lc;
    }
    var uc, dg;
    function QC() {
        if (dg) return uc;
        dg = 1;
        var t = Fr(), e = t("%Array.prototype%"), a = Mb(), r = Fl(), n = _t(), i = XC(), o = JC(), s = ZC()(), l = t("%Object.setPrototypeOf%", !0) || (s ? function(u, c) {
            return u.__proto__ = c, u;
        } : null);
        return uc = function(c) {
            if (!i(c) || c < 0) throw new n("Assertion failed: `length` must be an integer Number >= 0");
            if (c > o) throw new a("length is greater than (2**32 - 1)");
            var d = arguments.length > 1 ? arguments[1] : e, h = [];
            if (d !== e) {
                if (!l) throw new r("ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]");
                l(h, d);
            }
            return c !== 0 && (h.length = c), h;
        }, uc;
    }
    var cc, hg;
    function Io() {
        return hg || (hg = 1, cc = function(e) {
            return typeof e == "string" || typeof e == "symbol";
        }), cc;
    }
    var dc, mg;
    function Un() {
        if (mg) return dc;
        mg = 1;
        var t = _t(), e = $n(), a = {
            __proto__: null,
            "[[Configurable]]": !0,
            "[[Enumerable]]": !0,
            "[[Get]]": !0,
            "[[Set]]": !0,
            "[[Value]]": !0,
            "[[Writable]]": !0
        };
        return dc = function(n) {
            if (!n || typeof n != "object") return !1;
            for(var i in n)if (e(n, i) && !a[i]) return !1;
            var o = e(n, "[[Value]]") || e(n, "[[Writable]]"), s = e(n, "[[Get]]") || e(n, "[[Set]]");
            if (o && s) throw new t("Property Descriptors may not be both accessor and data descriptors");
            return !0;
        }, dc;
    }
    var hc, fg;
    function _m() {
        if (fg) return hc;
        fg = 1;
        var t = _t(), e = $n(), a = Un();
        return hc = function(n) {
            if (typeof n > "u") return !1;
            if (!a(n)) throw new t("Assertion failed: `Desc` must be a Property Descriptor");
            return !(!e(n, "[[Get]]") && !e(n, "[[Set]]"));
        }, hc;
    }
    var mc, pg;
    function Ob() {
        return pg || (pg = 1, mc = function(e) {
            return e === null || typeof e != "function" && typeof e != "object";
        }), mc;
    }
    var fc, gg;
    function eA() {
        if (gg) return fc;
        gg = 1;
        var t = Fr(), e = t("%Object.preventExtensions%", !0), a = t("%Object.isExtensible%", !0), r = Ob();
        return fc = e ? function(i) {
            return !r(i) && a(i);
        } : function(i) {
            return !r(i);
        }, fc;
    }
    var pc, vg;
    function Hb() {
        if (vg) return pc;
        vg = 1;
        var t = Function.prototype.toString, e = typeof Reflect == "object" && Reflect !== null && Reflect.apply, a, r;
        if (typeof e == "function" && typeof Object.defineProperty == "function") try {
            a = Object.defineProperty({}, "length", {
                get: function() {
                    throw r;
                }
            }), r = {}, e(function() {
                throw 42;
            }, null, a);
        } catch (b) {
            b !== r && (e = null);
        }
        else e = null;
        var n = /^\s*class\b/, i = function(k) {
            try {
                var S = t.call(k);
                return n.test(S);
            } catch  {
                return !1;
            }
        }, o = function(k) {
            try {
                return i(k) ? !1 : (t.call(k), !0);
            } catch  {
                return !1;
            }
        }, s = Object.prototype.toString, l = "[object Object]", u = "[object Function]", c = "[object GeneratorFunction]", d = "[object HTMLAllCollection]", h = "[object HTML document.all class]", m = "[object HTMLCollection]", f = typeof Symbol == "function" && !!Symbol.toStringTag, p = !(0 in [
            , 
        ]), g = function() {
            return !1;
        };
        if (typeof document == "object") {
            var v = document.all;
            s.call(v) === s.call(document.all) && (g = function(k) {
                if ((p || !k) && (typeof k > "u" || typeof k == "object")) try {
                    var S = s.call(k);
                    return (S === d || S === h || S === m || S === l) && k("") == null;
                } catch  {}
                return !1;
            });
        }
        return pc = e ? function(k) {
            if (g(k)) return !0;
            if (!k || typeof k != "function" && typeof k != "object") return !1;
            try {
                e(k, null, a);
            } catch (S) {
                if (S !== r) return !1;
            }
            return !i(k) && o(k);
        } : function(k) {
            if (g(k)) return !0;
            if (!k || typeof k != "function" && typeof k != "object") return !1;
            if (f) return o(k);
            if (i(k)) return !1;
            var S = s.call(k);
            return S !== u && S !== c && !/^\[object HTML/.test(S) ? !1 : o(k);
        }, pc;
    }
    var gc, yg;
    function Vb() {
        return yg || (yg = 1, gc = Hb()), gc;
    }
    var vc, bg;
    function tA() {
        return bg || (bg = 1, vc = function(e) {
            return !!e;
        }), vc;
    }
    var yc, Fg;
    function nn() {
        return Fg || (Fg = 1, yc = function(e) {
            return !!e && (typeof e == "function" || typeof e == "object");
        }), yc;
    }
    var bc, kg;
    function aA() {
        if (kg) return bc;
        kg = 1;
        var t = $n(), e = _t(), a = Vb(), r = tA(), n = nn();
        return bc = function(o) {
            if (!n(o)) throw new e("ToPropertyDescriptor requires an object");
            var s = {};
            if (t(o, "enumerable") && (s["[[Enumerable]]"] = r(o.enumerable)), t(o, "configurable") && (s["[[Configurable]]"] = r(o.configurable)), t(o, "value") && (s["[[Value]]"] = o.value), t(o, "writable") && (s["[[Writable]]"] = r(o.writable)), t(o, "get")) {
                var l = o.get;
                if (typeof l < "u" && !a(l)) throw new e("getter must be a function");
                s["[[Get]]"] = l;
            }
            if (t(o, "set")) {
                var u = o.set;
                if (typeof u < "u" && !a(u)) throw new e("setter must be a function");
                s["[[Set]]"] = u;
            }
            if ((t(s, "[[Get]]") || t(s, "[[Set]]")) && (t(s, "[[Value]]") || t(s, "[[Writable]]"))) throw new e("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");
            return s;
        }, bc;
    }
    var Fc, xg;
    function Wb() {
        if (xg) return Fc;
        xg = 1;
        var t = xl();
        return Fc = function(a, r) {
            return a === r ? a === 0 ? 1 / a === 1 / r : !0 : t(a) && t(r);
        }, Fc;
    }
    var kc, wg;
    function on() {
        if (wg) return kc;
        wg = 1;
        var t = Fr(), e = Tm(), a = e([
            t("%String.prototype.indexOf%")
        ]);
        return kc = function(n, i) {
            var o = t(n, !!i);
            return typeof o == "function" && a(n, ".prototype.") > -1 ? e([
                o
            ]) : o;
        }, kc;
    }
    var xc, Sg;
    function rA() {
        if (Sg) return xc;
        Sg = 1;
        var t = Fr(), e = t("%Array%"), a = !e.isArray && on()("Object.prototype.toString");
        return xc = e.isArray || function(n) {
            return a(n) === "[object Array]";
        }, xc;
    }
    var wc, Cg;
    function nA() {
        if (Cg) return wc;
        Cg = 1;
        var t = kl(), e = Ro(), a = t.hasArrayLengthDefineBug(), r = a && rA(), n = on(), i = n("Object.prototype.propertyIsEnumerable");
        return wc = function(s, l, u, c, d, h) {
            if (!e) {
                if (!s(h) || !h["[[Configurable]]"] || !h["[[Writable]]"] || d in c && i(c, d) !== !!h["[[Enumerable]]"]) return !1;
                var m = h["[[Value]]"];
                return c[d] = m, l(c[d], m);
            }
            return a && d === "length" && "[[Value]]" in h && r(c) && c.length !== h["[[Value]]"] ? (c.length = h["[[Value]]"], c.length === h["[[Value]]"]) : (e(c, d, u(h)), !0);
        }, wc;
    }
    var Sc, Ag;
    function iA() {
        if (Ag) return Sc;
        Ag = 1;
        var t = Un();
        return Sc = function(a, r) {
            return t(r) && "[[Enumerable]]" in r && "[[Configurable]]" in r && (a.IsAccessorDescriptor(r) || a.IsDataDescriptor(r));
        }, Sc;
    }
    var Cc, Dg;
    function oA() {
        return Dg || (Dg = 1, Cc = function(e) {
            if (typeof e > "u") return e;
            var a = {};
            return "[[Value]]" in e && (a.value = e["[[Value]]"]), "[[Writable]]" in e && (a.writable = !!e["[[Writable]]"]), "[[Get]]" in e && (a.get = e["[[Get]]"]), "[[Set]]" in e && (a.set = e["[[Set]]"]), "[[Enumerable]]" in e && (a.enumerable = !!e["[[Enumerable]]"]), "[[Configurable]]" in e && (a.configurable = !!e["[[Configurable]]"]), a;
        }), Cc;
    }
    var Ac, Tg;
    function sA() {
        if (Tg) return Ac;
        Tg = 1;
        var t = _t(), e = Un(), a = oA();
        return Ac = function(n) {
            if (typeof n < "u" && !e(n)) throw new t("Assertion failed: `Desc` must be a Property Descriptor");
            return a(n);
        }, Ac;
    }
    var Dc, Eg;
    function Gb() {
        if (Eg) return Dc;
        Eg = 1;
        var t = _t(), e = $n(), a = Un();
        return Dc = function(n) {
            if (typeof n > "u") return !1;
            if (!a(n)) throw new t("Assertion failed: `Desc` must be a Property Descriptor");
            return !(!e(n, "[[Value]]") && !e(n, "[[Writable]]"));
        }, Dc;
    }
    var Tc, _g;
    function lA() {
        if (_g) return Tc;
        _g = 1;
        var t = _t(), e = _m(), a = Gb(), r = Un();
        return Tc = function(i) {
            if (typeof i > "u") return !1;
            if (!r(i)) throw new t("Assertion failed: `Desc` must be a Property Descriptor");
            return !e(i) && !a(i);
        }, Tc;
    }
    var Ec, Pg;
    function uA() {
        if (Pg) return Ec;
        Pg = 1;
        var t = nn();
        return Ec = function(a) {
            if (a === null) return "Null";
            if (typeof a > "u") return "Undefined";
            if (t(a)) return "Object";
            if (typeof a == "number") return "Number";
            if (typeof a == "boolean") return "Boolean";
            if (typeof a == "string") return "String";
        }, Ec;
    }
    var _c, Bg;
    function cA() {
        if (Bg) return _c;
        Bg = 1;
        var t = uA();
        return _c = function(a) {
            return typeof a == "symbol" ? "Symbol" : typeof a == "bigint" ? "BigInt" : t(a);
        }, _c;
    }
    var Pc, Mg;
    function dA() {
        if (Mg) return Pc;
        Mg = 1;
        var t = _t(), e = nA(), a = iA(), r = Un(), n = sA(), i = _m(), o = Gb(), s = lA(), l = Io(), u = Wb(), c = cA(), d = nn();
        return Pc = function(m, f, p, g, v) {
            var b = c(m);
            if (typeof m < "u" && !d(m)) throw new t("Assertion failed: O must be undefined or an Object");
            if (!l(f)) throw new t("Assertion failed: P must be a Property Key");
            if (typeof p != "boolean") throw new t("Assertion failed: extensible must be a Boolean");
            if (!r(g)) throw new t("Assertion failed: Desc must be a Property Descriptor");
            if (typeof v < "u" && !r(v)) throw new t("Assertion failed: current must be a Property Descriptor, or undefined");
            if (typeof v > "u") return p ? b === "Undefined" ? !0 : i(g) ? e(o, u, n, m, f, g) : e(o, u, n, m, f, {
                "[[Configurable]]": !!g["[[Configurable]]"],
                "[[Enumerable]]": !!g["[[Enumerable]]"],
                "[[Value]]": g["[[Value]]"],
                "[[Writable]]": !!g["[[Writable]]"]
            }) : !1;
            if (!a({
                IsAccessorDescriptor: i,
                IsDataDescriptor: o
            }, v)) throw new t("`current`, when present, must be a fully populated and valid Property Descriptor");
            if (!v["[[Configurable]]"]) {
                if ("[[Configurable]]" in g && g["[[Configurable]]"] || "[[Enumerable]]" in g && !u(g["[[Enumerable]]"], v["[[Enumerable]]"]) || !s(g) && !u(i(g), i(v))) return !1;
                if (i(v)) {
                    if ("[[Get]]" in g && !u(g["[[Get]]"], v["[[Get]]"]) || "[[Set]]" in g && !u(g["[[Set]]"], v["[[Set]]"])) return !1;
                } else if (!v["[[Writable]]"] && ("[[Writable]]" in g && g["[[Writable]]"] || "[[Value]]" in g && !u(g["[[Value]]"], v["[[Value]]"]))) return !1;
            }
            if (b !== "Undefined") {
                var k, S;
                return o(v) && i(g) ? (k = ("[[Configurable]]" in g ? g : v)["[[Configurable]]"], S = ("[[Enumerable]]" in g ? g : v)["[[Enumerable]]"], e(o, u, n, m, f, {
                    "[[Configurable]]": !!k,
                    "[[Enumerable]]": !!S,
                    "[[Get]]": ("[[Get]]" in g ? g : v)["[[Get]]"],
                    "[[Set]]": ("[[Set]]" in g ? g : v)["[[Set]]"]
                })) : i(v) && o(g) ? (k = ("[[Configurable]]" in g ? g : v)["[[Configurable]]"], S = ("[[Enumerable]]" in g ? g : v)["[[Enumerable]]"], e(o, u, n, m, f, {
                    "[[Configurable]]": !!k,
                    "[[Enumerable]]": !!S,
                    "[[Value]]": ("[[Value]]" in g ? g : v)["[[Value]]"],
                    "[[Writable]]": !!("[[Writable]]" in g ? g : v)["[[Writable]]"]
                })) : e(o, u, n, m, f, g);
            }
            return !0;
        }, Pc;
    }
    var Bc, Rg;
    function hA() {
        if (Rg) return Bc;
        Rg = 1;
        var t = Mi(), e = Fl(), a = _t(), r = Un(), n = _m(), i = eA(), o = Io(), s = aA(), l = Wb(), u = dA(), c = nn();
        return Bc = function(h, m, f) {
            if (!c(h)) throw new a("Assertion failed: O must be an Object");
            if (!o(m)) throw new a("Assertion failed: P must be a Property Key");
            if (!r(f)) throw new a("Assertion failed: Desc must be a Property Descriptor");
            if (!t) {
                if (n(f)) throw new e("This environment does not support accessor property descriptors.");
                var p = !(m in h) && f["[[Writable]]"] && f["[[Enumerable]]"] && f["[[Configurable]]"] && "[[Value]]" in f, g = m in h && (!("[[Configurable]]" in f) || f["[[Configurable]]"]) && (!("[[Enumerable]]" in f) || f["[[Enumerable]]"]) && (!("[[Writable]]" in f) || f["[[Writable]]"]) && "[[Value]]" in f;
                if (p || g) return h[m] = f["[[Value]]"], l(h[m], f["[[Value]]"]);
                throw new e("This environment does not support defining non-writable, non-enumerable, or non-configurable properties");
            }
            var v = t(h, m), b = v && s(v), k = i(h);
            return u(h, m, k, f, b);
        }, Bc;
    }
    var Mc, Lg;
    function mA() {
        if (Lg) return Mc;
        Lg = 1;
        var t = _t(), e = Io(), a = hA(), r = nn();
        return Mc = function(i, o, s) {
            if (!r(i)) throw new t("Assertion failed: Type(O) is not Object");
            if (!e(o)) throw new t("Assertion failed: P is not a Property Key");
            var l = {
                "[[Configurable]]": !0,
                "[[Enumerable]]": !0,
                "[[Value]]": s,
                "[[Writable]]": !0
            };
            return a(i, o, l);
        }, Mc;
    }
    var Rc, Ig;
    function fA() {
        if (Ig) return Rc;
        Ig = 1;
        var t = _t(), e = mA(), a = nn(), r = Io();
        return Rc = function(i, o, s) {
            if (!a(i)) throw new t("Assertion failed: Type(O) is not Object");
            if (!r(o)) throw new t("Assertion failed: P is not a Property Key");
            var l = e(i, o, s);
            if (!l) throw new t("unable to create data property");
        }, Rc;
    }
    const pA = {}, gA = Object.freeze(Object.defineProperty({
        __proto__: null,
        default: pA
    }, Symbol.toStringTag, {
        value: "Module"
    })), vA = xx(gA);
    var Lc, zg;
    function yA() {
        if (zg) return Lc;
        zg = 1;
        var t = typeof Map == "function" && Map.prototype, e = Object.getOwnPropertyDescriptor && t ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null, a = t && e && typeof e.get == "function" ? e.get : null, r = t && Map.prototype.forEach, n = typeof Set == "function" && Set.prototype, i = Object.getOwnPropertyDescriptor && n ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null, o = n && i && typeof i.get == "function" ? i.get : null, s = n && Set.prototype.forEach, l = typeof WeakMap == "function" && WeakMap.prototype, u = l ? WeakMap.prototype.has : null, c = typeof WeakSet == "function" && WeakSet.prototype, d = c ? WeakSet.prototype.has : null, h = typeof WeakRef == "function" && WeakRef.prototype, m = h ? WeakRef.prototype.deref : null, f = Boolean.prototype.valueOf, p = Object.prototype.toString, g = Function.prototype.toString, v = String.prototype.match, b = String.prototype.slice, k = String.prototype.replace, S = String.prototype.toUpperCase, x = String.prototype.toLowerCase, C = RegExp.prototype.test, w = Array.prototype.concat, F = Array.prototype.join, D = Array.prototype.slice, _ = Math.floor, A = typeof BigInt == "function" ? BigInt.prototype.valueOf : null, E = Object.getOwnPropertySymbols, B = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Symbol.prototype.toString : null, P = typeof Symbol == "function" && typeof Symbol.iterator == "object", M = typeof Symbol == "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === P || !0) ? Symbol.toStringTag : null, R = Object.prototype.propertyIsEnumerable, z = (typeof Reflect == "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(Q) {
            return Q.__proto__;
        } : null);
        function N(Q, re) {
            if (Q === 1 / 0 || Q === -1 / 0 || Q !== Q || Q && Q > -1e3 && Q < 1e3 || C.call(/e/, re)) return re;
            var ct = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
            if (typeof Q == "number") {
                var xt = Q < 0 ? -_(-Q) : _(Q);
                if (xt !== Q) {
                    var At = String(xt), Je = b.call(re, At.length + 1);
                    return k.call(At, ct, "$&_") + "." + k.call(k.call(Je, /([0-9]{3})/g, "$&_"), /_$/, "");
                }
            }
            return k.call(re, ct, "$&_");
        }
        var H = vA, I = H.custom, L = pe(I) ? I : null, G = {
            __proto__: null,
            double: '"',
            single: "'"
        }, q = {
            __proto__: null,
            double: /(["\\])/g,
            single: /(['\\])/g
        };
        Lc = function Q(re, ct, xt, At) {
            var Je = ct || {};
            if (ne(Je, "quoteStyle") && !ne(G, Je.quoteStyle)) throw new TypeError('option "quoteStyle" must be "single" or "double"');
            if (ne(Je, "maxStringLength") && (typeof Je.maxStringLength == "number" ? Je.maxStringLength < 0 && Je.maxStringLength !== 1 / 0 : Je.maxStringLength !== null)) throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
            var Or = ne(Je, "customInspect") ? Je.customInspect : !0;
            if (typeof Or != "boolean" && Or !== "symbol") throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");
            if (ne(Je, "indent") && Je.indent !== null && Je.indent !== "	" && !(parseInt(Je.indent, 10) === Je.indent && Je.indent > 0)) throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
            if (ne(Je, "numericSeparator") && typeof Je.numericSeparator != "boolean") throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
            var cn = Je.numericSeparator;
            if (typeof re > "u") return "undefined";
            if (re === null) return "null";
            if (typeof re == "boolean") return re ? "true" : "false";
            if (typeof re == "string") return zf(re, Je);
            if (typeof re == "number") {
                if (re === 0) return 1 / 0 / re > 0 ? "0" : "-0";
                var Oa = String(re);
                return cn ? N(re, Oa) : Oa;
            }
            if (typeof re == "bigint") {
                var Hr = String(re) + "n";
                return cn ? N(re, Hr) : Hr;
            }
            var tu = typeof Je.depth > "u" ? 5 : Je.depth;
            if (typeof xt > "u" && (xt = 0), xt >= tu && tu > 0 && typeof re == "object") return J(re) ? "[Array]" : "[Object]";
            var ii = px(Je, xt);
            if (typeof At > "u") At = [];
            else if ($e(At, re) >= 0) return "[Circular]";
            function sr(oi, is, vx) {
                if (is && (At = D.call(At), At.push(is)), vx) {
                    var jf = {
                        depth: Je.depth
                    };
                    return ne(Je, "quoteStyle") && (jf.quoteStyle = Je.quoteStyle), Q(oi, jf, xt + 1, At);
                }
                return Q(oi, Je, xt + 1, At);
            }
            if (typeof re == "function" && !le(re)) {
                var Of = Ve(re), Hf = rs(re, sr);
                return "[Function" + (Of ? ": " + Of : " (anonymous)") + "]" + (Hf.length > 0 ? " { " + F.call(Hf, ", ") + " }" : "");
            }
            if (pe(re)) {
                var Vf = P ? k.call(String(re), /^(Symbol\(.*\))_[^)]*$/, "$1") : B.call(re);
                return typeof re == "object" && !P ? ji(Vf) : Vf;
            }
            if (hx(re)) {
                for(var Yi = "<" + x.call(String(re.nodeName)), au = re.attributes || [], ns = 0; ns < au.length; ns++)Yi += " " + au[ns].name + "=" + X(ue(au[ns].value), "double", Je);
                return Yi += ">", re.childNodes && re.childNodes.length && (Yi += "..."), Yi += "</" + x.call(String(re.nodeName)) + ">", Yi;
            }
            if (J(re)) {
                if (re.length === 0) return "[]";
                var ru = rs(re, sr);
                return ii && !fx(ru) ? "[" + eu(ru, ii) + "]" : "[ " + F.call(ru, ", ") + " ]";
            }
            if (fe(re)) {
                var nu = rs(re, sr);
                return !("cause" in Error.prototype) && "cause" in re && !R.call(re, "cause") ? "{ [" + String(re) + "] " + F.call(w.call("[cause]: " + sr(re.cause), nu), ", ") + " }" : nu.length === 0 ? "[" + String(re) + "]" : "{ [" + String(re) + "] " + F.call(nu, ", ") + " }";
            }
            if (typeof re == "object" && Or) {
                if (L && typeof re[L] == "function" && H) return H(re, {
                    depth: tu - xt
                });
                if (Or !== "symbol" && typeof re.inspect == "function") return re.inspect();
            }
            if (lt(re)) {
                var Wf = [];
                return r && r.call(re, function(oi, is) {
                    Wf.push(sr(is, re, !0) + " => " + sr(oi, re));
                }), Nf("Map", a.call(re), Wf, ii);
            }
            if (et(re)) {
                var Gf = [];
                return s && s.call(re, function(oi) {
                    Gf.push(sr(oi, re));
                }), Nf("Set", o.call(re), Gf, ii);
            }
            if (bt(re)) return Ql("WeakMap");
            if (kt(re)) return Ql("WeakSet");
            if (Ye(re)) return Ql("WeakRef");
            if (ae(re)) return ji(sr(Number(re)));
            if (ke(re)) return ji(sr(A.call(re)));
            if (se(re)) return ji(f.call(re));
            if (ee(re)) return ji(sr(String(re)));
            if (typeof window < "u" && re === window) return "{ [object Window] }";
            if (typeof globalThis < "u" && re === globalThis || typeof pi < "u" && re === pi) return "{ [object globalThis] }";
            if (!U(re) && !le(re)) {
                var iu = rs(re, sr), $f = z ? z(re) === Object.prototype : re instanceof Object || re.constructor === Object, ou = re instanceof Object ? "" : "null prototype", Uf = !$f && M && Object(re) === re && M in re ? b.call(ge(re), 8, -1) : ou ? "Object" : "", gx = $f || typeof re.constructor != "function" ? "" : re.constructor.name ? re.constructor.name + " " : "", su = gx + (Uf || ou ? "[" + F.call(w.call([], Uf || [], ou || []), ": ") + "] " : "");
                return iu.length === 0 ? su + "{}" : ii ? su + "{" + eu(iu, ii) + "}" : su + "{ " + F.call(iu, ", ") + " }";
            }
            return String(re);
        };
        function X(Q, re, ct) {
            var xt = ct.quoteStyle || re, At = G[xt];
            return At + Q + At;
        }
        function ue(Q) {
            return k.call(String(Q), /"/g, "&quot;");
        }
        function J(Q) {
            return ge(Q) === "[object Array]" && (!M || !(typeof Q == "object" && M in Q));
        }
        function U(Q) {
            return ge(Q) === "[object Date]" && (!M || !(typeof Q == "object" && M in Q));
        }
        function le(Q) {
            return ge(Q) === "[object RegExp]" && (!M || !(typeof Q == "object" && M in Q));
        }
        function fe(Q) {
            return ge(Q) === "[object Error]" && (!M || !(typeof Q == "object" && M in Q));
        }
        function ee(Q) {
            return ge(Q) === "[object String]" && (!M || !(typeof Q == "object" && M in Q));
        }
        function ae(Q) {
            return ge(Q) === "[object Number]" && (!M || !(typeof Q == "object" && M in Q));
        }
        function se(Q) {
            return ge(Q) === "[object Boolean]" && (!M || !(typeof Q == "object" && M in Q));
        }
        function pe(Q) {
            if (P) return Q && typeof Q == "object" && Q instanceof Symbol;
            if (typeof Q == "symbol") return !0;
            if (!Q || typeof Q != "object" || !B) return !1;
            try {
                return B.call(Q), !0;
            } catch  {}
            return !1;
        }
        function ke(Q) {
            if (!Q || typeof Q != "object" || !A) return !1;
            try {
                return A.call(Q), !0;
            } catch  {}
            return !1;
        }
        var be = Object.prototype.hasOwnProperty || function(Q) {
            return Q in this;
        };
        function ne(Q, re) {
            return be.call(Q, re);
        }
        function ge(Q) {
            return p.call(Q);
        }
        function Ve(Q) {
            if (Q.name) return Q.name;
            var re = v.call(g.call(Q), /^function\s*([\w$]+)/);
            return re ? re[1] : null;
        }
        function $e(Q, re) {
            if (Q.indexOf) return Q.indexOf(re);
            for(var ct = 0, xt = Q.length; ct < xt; ct++)if (Q[ct] === re) return ct;
            return -1;
        }
        function lt(Q) {
            if (!a || !Q || typeof Q != "object") return !1;
            try {
                a.call(Q);
                try {
                    o.call(Q);
                } catch  {
                    return !0;
                }
                return Q instanceof Map;
            } catch  {}
            return !1;
        }
        function bt(Q) {
            if (!u || !Q || typeof Q != "object") return !1;
            try {
                u.call(Q, u);
                try {
                    d.call(Q, d);
                } catch  {
                    return !0;
                }
                return Q instanceof WeakMap;
            } catch  {}
            return !1;
        }
        function Ye(Q) {
            if (!m || !Q || typeof Q != "object") return !1;
            try {
                return m.call(Q), !0;
            } catch  {}
            return !1;
        }
        function et(Q) {
            if (!o || !Q || typeof Q != "object") return !1;
            try {
                o.call(Q);
                try {
                    a.call(Q);
                } catch  {
                    return !0;
                }
                return Q instanceof Set;
            } catch  {}
            return !1;
        }
        function kt(Q) {
            if (!d || !Q || typeof Q != "object") return !1;
            try {
                d.call(Q, d);
                try {
                    u.call(Q, u);
                } catch  {
                    return !0;
                }
                return Q instanceof WeakSet;
            } catch  {}
            return !1;
        }
        function hx(Q) {
            return !Q || typeof Q != "object" ? !1 : typeof HTMLElement < "u" && Q instanceof HTMLElement ? !0 : typeof Q.nodeName == "string" && typeof Q.getAttribute == "function";
        }
        function zf(Q, re) {
            if (Q.length > re.maxStringLength) {
                var ct = Q.length - re.maxStringLength, xt = "... " + ct + " more character" + (ct > 1 ? "s" : "");
                return zf(b.call(Q, 0, re.maxStringLength), re) + xt;
            }
            var At = q[re.quoteStyle || "single"];
            At.lastIndex = 0;
            var Je = k.call(k.call(Q, At, "\\$1"), /[\x00-\x1f]/g, mx);
            return X(Je, "single", re);
        }
        function mx(Q) {
            var re = Q.charCodeAt(0), ct = {
                8: "b",
                9: "t",
                10: "n",
                12: "f",
                13: "r"
            }[re];
            return ct ? "\\" + ct : "\\x" + (re < 16 ? "0" : "") + S.call(re.toString(16));
        }
        function ji(Q) {
            return "Object(" + Q + ")";
        }
        function Ql(Q) {
            return Q + " { ? }";
        }
        function Nf(Q, re, ct, xt) {
            var At = xt ? eu(ct, xt) : F.call(ct, ", ");
            return Q + " (" + re + ") {" + At + "}";
        }
        function fx(Q) {
            for(var re = 0; re < Q.length; re++)if ($e(Q[re], `
`) >= 0) return !1;
            return !0;
        }
        function px(Q, re) {
            var ct;
            if (Q.indent === "	") ct = "	";
            else if (typeof Q.indent == "number" && Q.indent > 0) ct = F.call(Array(Q.indent + 1), " ");
            else return null;
            return {
                base: ct,
                prev: F.call(Array(re + 1), ct)
            };
        }
        function eu(Q, re) {
            if (Q.length === 0) return "";
            var ct = `
` + re.prev + re.base;
            return ct + F.call(Q, "," + ct) + `
` + re.prev;
        }
        function rs(Q, re) {
            var ct = J(Q), xt = [];
            if (ct) {
                xt.length = Q.length;
                for(var At = 0; At < Q.length; At++)xt[At] = ne(Q, At) ? re(Q[At], Q) : "";
            }
            var Je = typeof E == "function" ? E(Q) : [], Or;
            if (P) {
                Or = {};
                for(var cn = 0; cn < Je.length; cn++)Or["$" + Je[cn]] = Je[cn];
            }
            for(var Oa in Q)ne(Q, Oa) && (ct && String(Number(Oa)) === Oa && Oa < Q.length || P && Or["$" + Oa] instanceof Symbol || (C.call(/[^\w$]/, Oa) ? xt.push(re(Oa, Q) + ": " + re(Q[Oa], Q)) : xt.push(Oa + ": " + re(Q[Oa], Q))));
            if (typeof E == "function") for(var Hr = 0; Hr < Je.length; Hr++)R.call(Q, Je[Hr]) && xt.push("[" + re(Je[Hr]) + "]: " + re(Q[Je[Hr]], Q));
            return xt;
        }
        return Lc;
    }
    var Ic, Ng;
    function bA() {
        if (Ng) return Ic;
        Ng = 1;
        var t = _t(), e = yA(), a = nn(), r = Io();
        return Ic = function(i, o) {
            if (!a(i)) throw new t("Assertion failed: Type(O) is not Object");
            if (!r(o)) throw new t("Assertion failed: P is not a Property Key, got " + e(o));
            return i[o];
        }, Ic;
    }
    var zc, Og;
    function FA() {
        return Og || (Og = 1, zc = Number.MAX_SAFE_INTEGER || 9007199254740991), zc;
    }
    var Nc, Hg;
    function kA() {
        return Hg || (Hg = 1, Nc = function(e) {
            return e === null || typeof e != "function" && typeof e != "object";
        }), Nc;
    }
    var Oc, Vg;
    function $b() {
        if (Vg) return Oc;
        Vg = 1;
        var t = Lb();
        return Oc = function() {
            return t() && !!Symbol.toStringTag;
        }, Oc;
    }
    var Hc, Wg;
    function xA() {
        if (Wg) return Hc;
        Wg = 1;
        var t = on(), e = t("Date.prototype.getDay"), a = function(s) {
            try {
                return e(s), !0;
            } catch  {
                return !1;
            }
        }, r = t("Object.prototype.toString"), n = "[object Date]", i = $b()();
        return Hc = function(s) {
            return typeof s != "object" || s === null ? !1 : i ? a(s) : r(s) === n;
        }, Hc;
    }
    var us = {
        exports: {}
    }, Vc, Gg;
    function wA() {
        if (Gg) return Vc;
        Gg = 1;
        var t = on(), e = $b()(), a = $n(), r = Mi(), n;
        if (e) {
            var i = t("RegExp.prototype.exec"), o = {}, s = function() {
                throw o;
            }, l = {
                toString: s,
                valueOf: s
            };
            typeof Symbol.toPrimitive == "symbol" && (l[Symbol.toPrimitive] = s), n = function(h) {
                if (!h || typeof h != "object") return !1;
                var m = r(h, "lastIndex"), f = m && a(m, "value");
                if (!f) return !1;
                try {
                    i(h, l);
                } catch (p) {
                    return p === o;
                }
            };
        } else {
            var u = t("Object.prototype.toString"), c = "[object RegExp]";
            n = function(h) {
                return !h || typeof h != "object" && typeof h != "function" ? !1 : u(h) === c;
            };
        }
        return Vc = n, Vc;
    }
    var Wc, $g;
    function Ub() {
        if ($g) return Wc;
        $g = 1;
        var t = on(), e = wA(), a = t("RegExp.prototype.exec"), r = _t();
        return Wc = function(i) {
            if (!e(i)) throw new r("`regex` must be a RegExp");
            return function(s) {
                return a(i, s) !== null;
            };
        }, Wc;
    }
    var Ug;
    function SA() {
        if (Ug) return us.exports;
        Ug = 1;
        var t = on(), e = t("Object.prototype.toString"), a = Ib()(), r = Ub();
        if (a) {
            var n = t("Symbol.prototype.toString"), i = r(/^Symbol\(.*\)$/), o = function(l) {
                return typeof l.valueOf() != "symbol" ? !1 : i(n(l));
            };
            us.exports = function(l) {
                if (typeof l == "symbol") return !0;
                if (!l || typeof l != "object" || e(l) !== "[object Symbol]") return !1;
                try {
                    return o(l);
                } catch  {
                    return !1;
                }
            };
        } else us.exports = function(l) {
            return !1;
        };
        return us.exports;
    }
    var Gc, jg;
    function CA() {
        if (jg) return Gc;
        jg = 1;
        var t = typeof Symbol == "function" && typeof Symbol.iterator == "symbol", e = kA(), a = Hb(), r = xA(), n = SA(), i = function(l, u) {
            if (typeof l > "u" || l === null) throw new TypeError("Cannot call method on " + l);
            if (typeof u != "string" || u !== "number" && u !== "string") throw new TypeError('hint must be "string" or "number"');
            var c = u === "string" ? [
                "toString",
                "valueOf"
            ] : [
                "valueOf",
                "toString"
            ], d, h, m;
            for(m = 0; m < c.length; ++m)if (d = l[c[m]], a(d) && (h = d.call(l), e(h))) return h;
            throw new TypeError("No default value");
        }, o = function(l, u) {
            var c = l[u];
            if (c !== null && typeof c < "u") {
                if (!a(c)) throw new TypeError(c + " returned for property " + String(u) + " of object " + l + " is not a function");
                return c;
            }
        };
        return Gc = function(l) {
            if (e(l)) return l;
            var u = "default";
            arguments.length > 1 && (arguments[1] === String ? u = "string" : arguments[1] === Number && (u = "number"));
            var c;
            if (t && (Symbol.toPrimitive ? c = o(l, Symbol.toPrimitive) : n(l) && (c = Symbol.prototype.valueOf)), typeof c < "u") {
                var d = c.call(l, u);
                if (e(d)) return d;
                throw new TypeError("unable to convert exotic object to primitive");
            }
            return u === "default" && (r(l) || n(l)) && (u = "string"), i(l, u === "default" ? "number" : u);
        }, Gc;
    }
    var $c, Yg;
    function AA() {
        if (Yg) return $c;
        Yg = 1;
        var t = CA();
        return $c = function(a) {
            return arguments.length > 1 ? t(a, arguments[1]) : t(a);
        }, $c;
    }
    var Uc, qg;
    function Pm() {
        if (qg) return Uc;
        qg = 1;
        var t = _t();
        return Uc = function(a) {
            if (a == null) throw new t(arguments.length > 0 && arguments[1] || "Cannot call method on " + a);
            return a;
        }, Uc;
    }
    var jc, Kg;
    function DA() {
        if (Kg) return jc;
        Kg = 1;
        var t = Fr(), e = t("%String%"), a = _t();
        return jc = function(n) {
            if (typeof n == "symbol") throw new a("Cannot convert a Symbol value to a string");
            return e(n);
        }, jc;
    }
    var Yc, Xg;
    function jb() {
        if (Xg) return Yc;
        Xg = 1;
        var t = Pm(), e = DA(), a = on(), r = a("String.prototype.replace"), n = /^\s$/.test("᠎"), i = n ? /^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/ : /^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/, o = n ? /[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/ : /[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+$/;
        return Yc = function() {
            var l = e(t(this));
            return r(r(l, i, ""), o, "");
        }, Yc;
    }
    var qc, Jg;
    function Yb() {
        if (Jg) return qc;
        Jg = 1;
        var t = jb(), e = "​", a = "᠎";
        return qc = function() {
            return String.prototype.trim && e.trim() === e && a.trim() === a && ("_" + a).trim() === "_" + a && (a + "_").trim() === a + "_" ? String.prototype.trim : t;
        }, qc;
    }
    var Kc, Zg;
    function TA() {
        if (Zg) return Kc;
        Zg = 1;
        var t = kl()(), e = wm(), a = Yb();
        return Kc = function() {
            var n = a();
            return String.prototype.trim !== n && (t ? e(String.prototype, "trim", n, !0) : e(String.prototype, "trim", n)), n;
        }, Kc;
    }
    var Xc, Qg;
    function EA() {
        if (Qg) return Xc;
        Qg = 1;
        var t = Em(), e = Sm(), a = Pm(), r = jb(), n = Yb(), i = TA(), o = t(n()), s = function(u) {
            return a(u), o(u);
        };
        return e(s, {
            getPolyfill: n,
            implementation: r,
            shim: i
        }), Xc = s, Xc;
    }
    var Jc, ev;
    function _A() {
        if (ev) return Jc;
        ev = 1;
        var t = Fr(), e = t("%RegExp%"), a = _t(), r = t("%parseInt%"), n = on(), i = Ub(), o = n("String.prototype.slice"), s = i(/^0b[01]+$/i), l = i(/^0o[0-7]+$/i), u = i(/^[-+]0x[0-9a-f]+$/i), c = [
            "",
            "​",
            ""
        ].join(""), d = new e("[" + c + "]", "g"), h = i(d), m = EA();
        return Jc = function f(p) {
            if (typeof p != "string") throw new a("Assertion failed: `argument` is not a String");
            if (s(p)) return +r(o(p, 2), 2);
            if (l(p)) return +r(o(p, 2), 8);
            if (h(p) || u(p)) return NaN;
            var g = m(p);
            return g !== p ? f(g) : +p;
        }, Jc;
    }
    var Zc, tv;
    function PA() {
        if (tv) return Zc;
        tv = 1;
        var t = Fr(), e = _t(), a = t("%Number%"), r = Ob(), n = AA(), i = _A();
        return Zc = function(s) {
            var l = r(s) ? s : n(s, a);
            if (typeof l == "symbol") throw new e("Cannot convert a Symbol value to a number");
            if (typeof l == "bigint") throw new e("Conversion from 'BigInt' to 'number' is not allowed.");
            return typeof l == "string" ? i(l) : +l;
        }, Zc;
    }
    var Qc, av;
    function BA() {
        if (av) return Qc;
        av = 1;
        var t = Cm();
        return Qc = function(a) {
            return typeof a == "bigint" ? a : t(a);
        }, Qc;
    }
    var ed, rv;
    function MA() {
        if (rv) return ed;
        rv = 1;
        var t = BA(), e = _t();
        return ed = function(r) {
            if (typeof r != "number" && typeof r != "bigint") throw new e("argument must be a Number or a BigInt");
            var n = r < 0 ? -t(-r) : t(r);
            return n === 0 ? 0 : n;
        }, ed;
    }
    var td, nv;
    function RA() {
        if (nv) return td;
        nv = 1;
        var t = PA(), e = MA(), a = xl(), r = Nb();
        return td = function(i) {
            var o = t(i);
            return a(o) || o === 0 ? 0 : r(o) ? e(o) : o;
        }, td;
    }
    var ad, iv;
    function LA() {
        if (iv) return ad;
        iv = 1;
        var t = FA(), e = RA();
        return ad = function(r) {
            var n = e(r);
            return n <= 0 ? 0 : n > t ? t : n;
        }, ad;
    }
    var rd, ov;
    function IA() {
        if (ov) return rd;
        ov = 1;
        var t = _t(), e = bA(), a = LA(), r = nn();
        return rd = function(i) {
            if (!r(i)) throw new t("Assertion failed: `obj` must be an Object");
            return a(e(i, "length"));
        }, rd;
    }
    var nd, sv;
    function zA() {
        if (sv) return nd;
        sv = 1;
        var t = Bb(), e = Pm();
        return nd = function(r) {
            return e(r), t(r);
        }, nd;
    }
    var id, lv;
    function NA() {
        return lv || (lv = 1, id = zA()), id;
    }
    var od, uv;
    function OA() {
        if (uv) return od;
        uv = 1;
        var t = Fr(), e = t("%String%"), a = _t();
        return od = function(n) {
            if (typeof n == "symbol") throw new a("Cannot convert a Symbol value to a string");
            return e(n);
        }, od;
    }
    var sd, cv;
    function qb() {
        if (cv) return sd;
        cv = 1;
        var t = KC(), e = QC(), a = fA(), r = Vb(), n = IA(), i = NA(), o = OA(), s = _t(), l = t("Array.prototype.sort");
        return sd = function(c) {
            if (typeof c < "u" && !r(c)) throw new s("`comparefn` must be a function");
            for(var d = i(this), h = n(d), m = e(h), f = 0; f < h;)a(m, o(f), d[f]), f += 1;
            return l(m, c), m;
        }, sd;
    }
    var ld, dv;
    function Kb() {
        if (dv) return ld;
        dv = 1;
        var t = qb();
        return ld = function() {
            return Array.prototype.toSorted || t;
        }, ld;
    }
    var ud, hv;
    function HA() {
        if (hv) return ud;
        hv = 1;
        var t = $n(), e = typeof Symbol == "function" && typeof Symbol.unscopables == "symbol", a = e && Array.prototype[Symbol.unscopables], r = TypeError;
        return ud = function(i) {
            if (typeof i != "string" || !i) throw new r("method must be a non-empty string");
            if (!t(Array.prototype, i)) throw new r("method must be on Array.prototype");
            e && (a[i] = !0);
        }, ud;
    }
    var cd, mv;
    function VA() {
        if (mv) return cd;
        mv = 1;
        var t = Sm(), e = HA(), a = Kb();
        return cd = function() {
            var n = a();
            return t(Array.prototype, {
                toSorted: n
            }, {
                toSorted: function() {
                    return Array.prototype.toSorted !== n;
                }
            }), e("toSorted"), n;
        }, cd;
    }
    var dd, fv;
    function WA() {
        if (fv) return dd;
        fv = 1;
        var t = Sm(), e = Em(), a = qb(), r = Kb(), n = r(), i = VA(), o = e(n);
        return t(o, {
            getPolyfill: r,
            implementation: a,
            shim: i
        }), dd = o, dd;
    }
    var GA = WA();
    $A = Ti(GA);
    let ce;
    ce = ((t)=>(t.ADDED_ON = "added_on", t.AMOUNT_LEFT = "amount_left", t.AUTO_TMM = "auto_tmm", t.AVAILABILITY = "availability", t.AVG_DOWNLOAD_SPEED = "avg_download_speed", t.AVG_UPLOAD_SPEED = "avg_upload_speed", t.BASENAME_CONTENT_PATH = "basename_content_path", t.BASENAME_DOWNLOAD_PATH = "basename_download_path", t.BASENAME_SAVE_PATH = "basename_save_path", t.CATEGORY = "category", t.COMMENT = "comment", t.COMPLETED_ON = "completed_on", t.CONTENT_PATH = "content_path", t.DOWNLOAD_LIMIT = "download_limit", t.DOWNLOAD_PATH = "download_path", t.DOWNLOAD_SPEED = "download_speed", t.DOWNLOADED = "downloaded", t.DOWNLOADED_SESSION = "downloaded_session", t.ETA = "eta", t.FIRST_LAST_PIECE_PRIORITY = "f_l_piece_prio", t.FORCED = "forced", t.GLOBAL_SPEED = "global_speed", t.GLOBAL_VOLUME = "global_volume", t.HAS_METADATA = "has_metadata", t.HASH = "hash", t.INACTIVE_SEEDING_TIME_LIMIT = "inactive_seeding_time_limit", t.INFOHASH_V1 = "infohash_v1", t.INFOHASH_V2 = "infohash_v2", t.LAST_ACTIVITY = "last_activity", t.MAGNET = "magnet", t.PEERS = "peers", t.POPULARITY = "popularity", t.PRIORITY = "priority", t.PRIVATE = "private", t.PROGRESS = "progress", t.RATIO = "ratio", t.RATIO_LIMIT = "ratio_limit", t.REANNOUNCE = "reannounce", t.ROOT_PATH = "root_path", t.SAVE_PATH = "save_path", t.SEEDING_TIME = "seeding_time", t.SEEDING_TIME_LIMIT = "seeding_time_limit", t.SEEDS = "seeds", t.SEEN_COMPLETE = "seen_complete", t.SEQUENTIAL_DOWNLOADS = "seq_dl", t.SIZE = "size", t.STATE = "state", t.SUPER_SEEDING = "super_seeding", t.TAGS = "tags", t.TIME_ACTIVE = "time_active", t.TOTAL_SIZE = "total_size", t.TRACKER = "tracker", t.TRACKERS_COUNT = "trackers_count", t.TRUNCATED_HASH = "truncated_hash", t.UPLOAD_LIMIT = "upload_limit", t.UPLOAD_SPEED = "upload_speed", t.UPLOADED = "uploaded", t.UPLOADED_SESSION = "uploaded_session", t))(ce || {});
    Le = ((t)=>(t.AMOUNT = "amount", t.BOOLEAN = "boolean", t.CHIP = "chip", t.DATA = "data", t.DATETIME = "datetime", t.DURATION = "duration", t.PERCENT = "percent", t.RELATIVE = "relative", t.SPEED = "speed", t.TEXT = "text", t))(Le || {});
    const wa = {
        [ce.ADDED_ON]: {
            active: !0,
            order: 16
        },
        [ce.AMOUNT_LEFT]: {
            active: !1,
            order: 20
        },
        [ce.AUTO_TMM]: {
            active: !1,
            order: 53
        },
        [ce.AVAILABILITY]: {
            active: !0,
            order: 17
        },
        [ce.AVG_DOWNLOAD_SPEED]: {
            active: !1,
            order: 40
        },
        [ce.AVG_UPLOAD_SPEED]: {
            active: !1,
            order: 41
        },
        [ce.BASENAME_CONTENT_PATH]: {
            active: !1,
            order: 43
        },
        [ce.BASENAME_DOWNLOAD_PATH]: {
            active: !1,
            order: 44
        },
        [ce.BASENAME_SAVE_PATH]: {
            active: !1,
            order: 45
        },
        [ce.CATEGORY]: {
            active: !0,
            order: 14
        },
        [ce.COMMENT]: {
            active: !1,
            order: 47
        },
        [ce.COMPLETED_ON]: {
            active: !1,
            order: 19
        },
        [ce.CONTENT_PATH]: {
            active: !1,
            order: 21
        },
        [ce.DOWNLOAD_LIMIT]: {
            active: !1,
            order: 23
        },
        [ce.DOWNLOAD_PATH]: {
            active: !1,
            order: 24
        },
        [ce.DOWNLOAD_SPEED]: {
            active: !0,
            order: 3
        },
        [ce.DOWNLOADED]: {
            active: !0,
            order: 5
        },
        [ce.DOWNLOADED_SESSION]: {
            active: !1,
            order: 22
        },
        [ce.ETA]: {
            active: !0,
            order: 8
        },
        [ce.FIRST_LAST_PIECE_PRIORITY]: {
            active: !1,
            order: 54
        },
        [ce.FORCED]: {
            active: !1,
            order: 55
        },
        [ce.GLOBAL_SPEED]: {
            active: !1,
            order: 34
        },
        [ce.GLOBAL_VOLUME]: {
            active: !1,
            order: 35
        },
        [ce.HASH]: {
            active: !1,
            order: 25
        },
        [ce.HAS_METADATA]: {
            active: !1,
            order: 48
        },
        [ce.INACTIVE_SEEDING_TIME_LIMIT]: {
            active: !1,
            order: 42
        },
        [ce.INFOHASH_V1]: {
            active: !1,
            order: 26
        },
        [ce.INFOHASH_V2]: {
            active: !1,
            order: 27
        },
        [ce.LAST_ACTIVITY]: {
            active: !1,
            order: 18
        },
        [ce.MAGNET]: {
            active: !1,
            order: 56
        },
        [ce.PEERS]: {
            active: !0,
            order: 9
        },
        [ce.POPULARITY]: {
            active: !1,
            order: 50
        },
        [ce.PRIORITY]: {
            active: !1,
            order: 36
        },
        [ce.PRIVATE]: {
            active: !1,
            order: 49
        },
        [ce.PROGRESS]: {
            active: !0,
            order: 2
        },
        [ce.RATIO]: {
            active: !0,
            order: 12
        },
        [ce.RATIO_LIMIT]: {
            active: !1,
            order: 37
        },
        [ce.REANNOUNCE]: {
            active: !1,
            order: 51
        },
        [ce.ROOT_PATH]: {
            active: !1,
            order: 52
        },
        [ce.SAVE_PATH]: {
            active: !1,
            order: 6
        },
        [ce.SEEDING_TIME]: {
            active: !1,
            order: 38
        },
        [ce.SEEDING_TIME_LIMIT]: {
            active: !1,
            order: 39
        },
        [ce.SEEDS]: {
            active: !0,
            order: 10
        },
        [ce.SEEN_COMPLETE]: {
            active: !1,
            order: 28
        },
        [ce.SEQUENTIAL_DOWNLOADS]: {
            active: !1,
            order: 57
        },
        [ce.SIZE]: {
            active: !0,
            order: 1
        },
        [ce.STATE]: {
            active: !0,
            order: 11
        },
        [ce.SUPER_SEEDING]: {
            active: !1,
            order: 58
        },
        [ce.TAGS]: {
            active: !0,
            order: 15
        },
        [ce.TIME_ACTIVE]: {
            active: !1,
            order: 29
        },
        [ce.TOTAL_SIZE]: {
            active: !1,
            order: 30
        },
        [ce.TRACKER]: {
            active: !1,
            order: 13
        },
        [ce.TRACKERS_COUNT]: {
            active: !1,
            order: 31
        },
        [ce.TRUNCATED_HASH]: {
            active: !1,
            order: 46
        },
        [ce.UPLOAD_LIMIT]: {
            active: !1,
            order: 33
        },
        [ce.UPLOAD_SPEED]: {
            active: !0,
            order: 4
        },
        [ce.UPLOADED]: {
            active: !0,
            order: 7
        },
        [ce.UPLOADED_SESSION]: {
            active: !1,
            order: 32
        }
    }, Ki = {
        [ce.ADDED_ON]: {
            props: {
                titleKey: "torrent.properties.added_on",
                value: (t)=>t.added_on
            },
            sortKey: "added_on",
            type: Le.DATETIME
        },
        [ce.AMOUNT_LEFT]: {
            props: {
                titleKey: "torrent.properties.amount_left",
                value: (t)=>t.amount_left
            },
            sortKey: "amount_left",
            type: Le.DATA
        },
        [ce.AUTO_TMM]: {
            props: {
                titleKey: "torrent.properties.auto_tmm",
                value: (t)=>t.auto_tmm
            },
            sortKey: "auto_tmm",
            type: Le.BOOLEAN
        },
        [ce.AVAILABILITY]: {
            props: {
                titleKey: "torrent.properties.availability",
                value: (t)=>t.availability.toString()
            },
            sortKey: "availability",
            type: Le.TEXT
        },
        [ce.AVG_DOWNLOAD_SPEED]: {
            props: {
                titleKey: "torrent.properties.avg_download_speed",
                value: (t)=>t.avgDownloadSpeed
            },
            sortKey: "avgDownloadSpeed",
            type: Le.SPEED
        },
        [ce.AVG_UPLOAD_SPEED]: {
            props: {
                titleKey: "torrent.properties.avg_upload_speed",
                value: (t)=>t.avgUploadSpeed
            },
            sortKey: "avgUploadSpeed",
            type: Le.SPEED
        },
        [ce.BASENAME_CONTENT_PATH]: {
            props: {
                titleKey: "torrent.properties.basename_content_path",
                value: (t)=>t.basename_content_path
            },
            sortKey: "basename_content_path",
            type: Le.TEXT
        },
        [ce.BASENAME_DOWNLOAD_PATH]: {
            props: {
                titleKey: "torrent.properties.basename_download_path",
                emptyValueKey: "common.NA",
                value: (t)=>[
                        t.basename_download_path
                    ],
                color: ()=>"primary",
                enableHashColor: !0
            },
            sortKey: "basename_download_path",
            type: Le.CHIP
        },
        [ce.BASENAME_SAVE_PATH]: {
            props: {
                titleKey: "torrent.properties.basename_save_path",
                emptyValueKey: "common.NA",
                value: (t)=>[
                        t.basename_save_path
                    ],
                color: ()=>"primary",
                enableHashColor: !0
            },
            sortKey: "basename_save_path",
            type: Le.CHIP
        },
        [ce.CATEGORY]: {
            props: {
                titleKey: "torrent.properties.category",
                emptyValueKey: "torrent.properties.empty_category",
                value: (t)=>[
                        t.category
                    ],
                color: ()=>"category",
                enableHashColor: !0
            },
            sortKey: "category",
            type: Le.CHIP
        },
        [ce.COMMENT]: {
            qbitVersion: "5.0.0",
            props: {
                titleKey: "torrent.properties.comment",
                value: (t)=>t.comment
            },
            sortKey: "comment",
            type: Le.TEXT
        },
        [ce.COMPLETED_ON]: {
            props: {
                titleKey: "torrent.properties.completed_on",
                value: (t)=>t.completed_on
            },
            sortKey: "completed_on",
            type: Le.DATETIME
        },
        [ce.CONTENT_PATH]: {
            props: {
                titleKey: "torrent.properties.content_path",
                value: (t)=>t.content_path
            },
            sortKey: "content_path",
            type: Le.TEXT
        },
        [ce.DOWNLOAD_LIMIT]: {
            props: {
                titleKey: "torrent.properties.download_limit",
                value: (t)=>t.dl_limit
            },
            sortKey: "dl_limit",
            type: Le.SPEED
        },
        [ce.DOWNLOAD_PATH]: {
            props: {
                titleKey: "torrent.properties.download_path",
                value: (t)=>t.download_path
            },
            sortKey: "download_path",
            type: Le.TEXT
        },
        [ce.DOWNLOAD_SPEED]: {
            props: {
                titleKey: "torrent.properties.download_speed",
                value: (t)=>t.dlspeed
            },
            sortKey: "dlspeed",
            type: Le.SPEED
        },
        [ce.DOWNLOADED]: {
            props: {
                titleKey: "torrent.properties.downloaded",
                value: (t)=>t.downloaded
            },
            sortKey: "downloaded",
            type: Le.DATA
        },
        [ce.DOWNLOADED_SESSION]: {
            props: {
                titleKey: "torrent.properties.downloaded_session",
                value: (t)=>t.downloaded_session
            },
            sortKey: "downloaded_session",
            type: Le.DATA
        },
        [ce.ETA]: {
            props: {
                titleKey: "torrent.properties.eta",
                value: (t)=>RD(t.eta, t.forced)
            },
            sortKey: "eta",
            type: Le.TEXT
        },
        [ce.FIRST_LAST_PIECE_PRIORITY]: {
            props: {
                titleKey: "torrent.properties.f_l_piece_prio",
                value: (t)=>t.f_l_piece_prio
            },
            sortKey: "f_l_piece_prio",
            type: Le.BOOLEAN
        },
        [ce.FORCED]: {
            props: {
                titleKey: "torrent.properties.forced",
                value: (t)=>t.forced
            },
            sortKey: "forced",
            type: Le.BOOLEAN
        },
        [ce.GLOBAL_SPEED]: {
            props: {
                titleKey: "torrent.properties.global_speed",
                value: (t)=>t.globalSpeed
            },
            sortKey: "globalSpeed",
            type: Le.SPEED
        },
        [ce.GLOBAL_VOLUME]: {
            props: {
                titleKey: "torrent.properties.global_volume",
                value: (t)=>t.globalVolume
            },
            sortKey: "globalVolume",
            type: Le.DATA
        },
        [ce.HASH]: {
            props: {
                titleKey: "torrent.properties.hash",
                value: (t)=>t.hash
            },
            sortKey: "hash",
            type: Le.TEXT
        },
        [ce.HAS_METADATA]: {
            qbitVersion: "5.0.0",
            props: {
                titleKey: "torrent.properties.has_metadata",
                value: (t)=>t.hasMetadata
            },
            sortKey: "hasMetadata",
            type: Le.BOOLEAN
        },
        [ce.INACTIVE_SEEDING_TIME_LIMIT]: {
            props: {
                titleKey: "torrent.properties.inactive_seeding_time_limit",
                unit: "m",
                value: (t)=>t.inactive_seeding_time_limit
            },
            sortKey: "inactive_seeding_time_limit",
            type: Le.DURATION
        },
        [ce.INFOHASH_V1]: {
            props: {
                titleKey: "torrent.properties.infohash_v1",
                value: (t)=>t.infohash_v1
            },
            sortKey: "infohash_v1",
            type: Le.TEXT
        },
        [ce.INFOHASH_V2]: {
            props: {
                titleKey: "torrent.properties.infohash_v2",
                value: (t)=>t.infohash_v2
            },
            sortKey: "infohash_v2",
            type: Le.TEXT
        },
        [ce.LAST_ACTIVITY]: {
            props: {
                titleKey: "torrent.properties.last_activity",
                value: (t)=>t.last_activity
            },
            sortKey: "last_activity",
            type: Le.RELATIVE
        },
        [ce.MAGNET]: {
            props: {
                titleKey: "torrent.properties.magnet",
                value: (t)=>t.magnet
            },
            sortKey: "magnet",
            type: Le.TEXT
        },
        [ce.PEERS]: {
            props: {
                titleKey: "torrent.properties.peers",
                value: (t)=>t.num_leechs,
                total: (t)=>t.available_peers
            },
            sortKey: "num_leechs",
            type: Le.AMOUNT
        },
        [ce.POPULARITY]: {
            qbitVersion: "5.0.0",
            props: {
                titleKey: "torrent.properties.popularity",
                value: (t)=>t.popularity ? t.popularity.toFixed(2).toString() : "???"
            },
            sortKey: "popularity",
            type: Le.TEXT
        },
        [ce.PRIORITY]: {
            props: {
                titleKey: "torrent.properties.priority",
                value: (t)=>t.priority.toString()
            },
            sortKey: "priority",
            type: Le.TEXT
        },
        [ce.PRIVATE]: {
            qbitVersion: "5.0.0",
            props: {
                titleKey: "torrent.properties.private",
                value: (t)=>t.private ?? !1
            },
            sortKey: "private",
            type: Le.BOOLEAN
        },
        [ce.PROGRESS]: {
            props: {
                titleKey: "torrent.properties.progress",
                value: (t)=>t.progress,
                color: (t)=>Vs(t.state)
            },
            sortKey: "progress",
            type: Le.PERCENT
        },
        [ce.RATIO]: {
            props: {
                titleKey: "torrent.properties.ratio",
                value: (t)=>t.ratio.toFixed(2),
                color: (t)=>{
                    const { enableRatioColors: e } = gt(ka());
                    return e.value ? fD(t.ratio) : "";
                }
            },
            sortKey: "ratio",
            type: Le.TEXT
        },
        [ce.RATIO_LIMIT]: {
            props: {
                titleKey: "torrent.properties.ratio_limit",
                value: (t)=>{
                    const { t: e } = qt();
                    return t.ratio_limit === -1 ? e("common.disabled") : t.ratio_limit === -2 ? e("common.global_value") : t.ratio_limit.toString();
                }
            },
            sortKey: "ratio_limit",
            type: Le.TEXT
        },
        [ce.REANNOUNCE]: {
            qbitVersion: "5.0.0",
            props: {
                titleKey: "torrent.properties.reannounce",
                value: (t)=>t.reannounce ? ID(t.reannounce, "s", "mm:ss").toString() : "???"
            },
            sortKey: "reannounce",
            type: Le.TEXT
        },
        [ce.ROOT_PATH]: {
            qbitVersion: "5.1.0",
            props: {
                titleKey: "torrent.properties.root_path",
                value: (t)=>t.rootPath ?? ""
            },
            sortKey: "rootPath",
            type: Le.TEXT
        },
        [ce.SAVE_PATH]: {
            props: {
                titleKey: "torrent.properties.save_path",
                value: (t)=>t.savePath
            },
            sortKey: "savePath",
            type: Le.TEXT
        },
        [ce.SEEDING_TIME]: {
            props: {
                titleKey: "torrent.properties.seeding_time",
                unit: "s",
                value: (t)=>t.seeding_time
            },
            sortKey: "seeding_time",
            type: Le.DURATION
        },
        [ce.SEEDING_TIME_LIMIT]: {
            props: {
                titleKey: "torrent.properties.seeding_time_limit",
                unit: "m",
                value: (t)=>t.seeding_time_limit
            },
            sortKey: "seeding_time_limit",
            type: Le.DURATION
        },
        [ce.SEEDS]: {
            props: {
                titleKey: "torrent.properties.seeds",
                value: (t)=>t.num_seeds,
                total: (t)=>t.available_seeds
            },
            sortKey: "num_seeds",
            type: Le.AMOUNT
        },
        [ce.SEEN_COMPLETE]: {
            props: {
                titleKey: "torrent.properties.seen_complete",
                value: (t)=>t.seen_complete
            },
            sortKey: "seen_complete",
            type: Le.DATETIME
        },
        [ce.SEQUENTIAL_DOWNLOADS]: {
            props: {
                titleKey: "torrent.properties.seq_dl",
                value: (t)=>t.seq_dl
            },
            sortKey: "seq_dl",
            type: Le.BOOLEAN
        },
        [ce.SIZE]: {
            props: {
                titleKey: "torrent.properties.size",
                value: (t)=>t.size
            },
            sortKey: "size",
            type: Le.DATA
        },
        [ce.STATE]: {
            props: {
                titleKey: "torrent.properties.state",
                emptyValueKey: "torrent.state.unknown",
                value: (t)=>{
                    const { getTorrentStateString: e } = qt();
                    return [
                        e(t.state)
                    ];
                },
                color: (t)=>Vs(t.state)
            },
            sortKey: "state",
            type: Le.CHIP
        },
        [ce.SUPER_SEEDING]: {
            props: {
                titleKey: "torrent.properties.super_seeding",
                value: (t)=>t.super_seeding
            },
            sortKey: "super_seeding",
            type: Le.BOOLEAN
        },
        [ce.TAGS]: {
            props: {
                titleKey: "torrent.properties.tags",
                emptyValueKey: "torrent.properties.empty_tags",
                value: (t)=>t.tags,
                color: ()=>"tag",
                enableHashColor: !0
            },
            sortKey: "tags",
            type: Le.CHIP
        },
        [ce.TIME_ACTIVE]: {
            props: {
                titleKey: "torrent.properties.time_active",
                unit: "s",
                value: (t)=>t.time_active
            },
            sortKey: "time_active",
            type: Le.DURATION
        },
        [ce.TOTAL_SIZE]: {
            props: {
                titleKey: "torrent.properties.total_size",
                value: (t)=>t.total_size
            },
            sortKey: "total_size",
            type: Le.DATA
        },
        [ce.TRACKER]: {
            props: {
                titleKey: "torrent.properties.tracker",
                emptyValueKey: "torrent.properties.empty_tracker",
                value: (t)=>[
                        t.trackerDomain
                    ],
                color: ()=>"tracker",
                enableHashColor: !0
            },
            sortKey: "trackerDomain",
            type: Le.CHIP
        },
        [ce.TRACKERS_COUNT]: {
            props: {
                titleKey: "torrent.properties.trackers_count",
                value: (t)=>t.trackers_count.toString()
            },
            sortKey: "trackers_count",
            type: Le.TEXT
        },
        [ce.TRUNCATED_HASH]: {
            props: {
                titleKey: "torrent.properties.truncated_hash",
                value: (t)=>t.truncated_hash
            },
            sortKey: "truncated_hash",
            type: Le.TEXT
        },
        [ce.UPLOAD_LIMIT]: {
            props: {
                titleKey: "torrent.properties.upload_limit",
                value: (t)=>t.up_limit
            },
            sortKey: "up_limit",
            type: Le.SPEED
        },
        [ce.UPLOAD_SPEED]: {
            props: {
                titleKey: "torrent.properties.upload_speed",
                value: (t)=>t.upspeed
            },
            sortKey: "upspeed",
            type: Le.SPEED
        },
        [ce.UPLOADED]: {
            props: {
                titleKey: "torrent.properties.uploaded",
                value: (t)=>t.uploaded
            },
            sortKey: "uploaded",
            type: Le.DATA
        },
        [ce.UPLOADED_SESSION]: {
            props: {
                titleKey: "torrent.properties.uploaded_session",
                value: (t)=>t.uploaded_session
            },
            sortKey: "uploaded_session",
            type: Le.DATA
        }
    };
    lh = ((t)=>(t.LIST = "list", t.GRID = "grid", t.TABLE = "table", t))(lh || {});
    Bm = ((t)=>(t.ARCHIVE = "archive", t.AUDIO = "audio", t.BOOK = "book", t.DOCUMENT = "document", t.EXECUTABLE = "executable", t.IMAGE = "image", t.INFORMATION = "information", t.SCRIPT = "script", t.SUBTITLE = "subtitle", t.VIDEO = "video", t.UNKNOWN = "unknown", t))(Bm || {});
    const UA = {
        archive: "mdi-zip-box-outline",
        audio: "mdi-audio",
        book: "mdi-book-open-blank-variant",
        document: "mdi-file-document",
        executable: "mdi-application-brackets",
        image: "mdi-file-image",
        information: "mdi-information-variant-box",
        script: "mdi-script-text",
        subtitle: "mdi-subtitles",
        video: "mdi-movie",
        unknown: "mdi-file"
    }, jA = {
        "7z": "archive",
        bz2: "archive",
        cab: "archive",
        gz: "archive",
        iso: "archive",
        rar: "archive",
        sfx: "archive",
        tar: "archive",
        tgz: "archive",
        xz: "archive",
        zip: "archive",
        alac: "audio",
        flac: "audio",
        mp3: "audio",
        ogg: "audio",
        wav: "audio",
        wma: "audio",
        cb7: "book",
        cbr: "book",
        cbt: "book",
        cbz: "book",
        epub: "book",
        mobi: "book",
        doc: "document",
        docx: "document",
        htm: "document",
        html: "document",
        pdf: "document",
        rtf: "document",
        txt: "document",
        xhtml: "document",
        apk: "executable",
        app: "executable",
        bin: "executable",
        deb: "executable",
        dmg: "executable",
        exe: "executable",
        jar: "executable",
        msi: "executable",
        avif: "image",
        bmp: "image",
        gif: "image",
        heif: "image",
        jfif: "image",
        jpeg: "image",
        jpg: "image",
        png: "image",
        svg: "image",
        tiff: "image",
        webp: "image",
        nfo: "information",
        bat: "script",
        c: "script",
        cmd: "script",
        com: "script",
        cpp: "script",
        cs: "script",
        css: "script",
        h: "script",
        hpp: "script",
        java: "script",
        js: "script",
        py: "script",
        vbs: "script",
        idx: "subtitle",
        srt: "subtitle",
        sub: "subtitle",
        "3gp": "video",
        avi: "video",
        flv: "video",
        gifv: "video",
        m2ts: "video",
        m4v: "video",
        mkv: "video",
        mov: "video",
        mp4: "video",
        mpeg: "video",
        mpg: "video",
        mts: "video",
        ts: "video",
        wmv: "video"
    };
    let aa, Ea;
    aa = ((t)=>(t[t.INCLUDED = 0] = "INCLUDED", t[t.EXCLUDED = 1] = "EXCLUDED", t[t.DISABLED = 2] = "DISABLED", t))(aa || {});
    Zt = ((t)=>(t[t.CONJUNCTIVE = 0] = "CONJUNCTIVE", t[t.DISJUNCTIVE = 1] = "DISJUNCTIVE", t))(Zt || {});
    Os = ((t)=>(t.COOKIE = "cookie", t.SEARCH_ENGINE_QUERY = "searchEngineQuery", t.TORRENT_PATH = "torrentPath", t.BULK_RENAME_REGEXP = "bulkRenameRegexp", t.BULK_RENAME_TARGET = "bulkRenameTarget", t))(Os || {});
    Ea = ((t)=>(t.LIGHT = "light", t.DARK = "dark", t.SYSTEM = "system", t))(Ea || {});
    bn = ((t)=>(t[t.DEFAULT = 0] = "DEFAULT", t[t.GLOBAL_SPEED = 1] = "GLOBAL_SPEED", t[t.FIRST_TORRENT_STATUS = 2] = "FIRST_TORRENT_STATUS", t[t.CUSTOM = 3] = "CUSTOM", t))(bn || {});
    Ze = ((t)=>(t[t.UNKNOWN = 0] = "UNKNOWN", t[t.ERROR = 1] = "ERROR", t[t.MISSING_FILES = 2] = "MISSING_FILES", t[t.DL_STOPPED = 3] = "DL_STOPPED", t[t.UL_STOPPED = 4] = "UL_STOPPED", t[t.META_DOWNLOAD = 5] = "META_DOWNLOAD", t[t.FORCED_META_DOWNLOAD = 6] = "FORCED_META_DOWNLOAD", t[t.UL_QUEUED = 7] = "UL_QUEUED", t[t.DL_QUEUED = 8] = "DL_QUEUED", t[t.UL_STALLED = 9] = "UL_STALLED", t[t.DL_STALLED = 10] = "DL_STALLED", t[t.UPLOADING = 11] = "UPLOADING", t[t.UL_FORCED = 12] = "UL_FORCED", t[t.DOWNLOADING = 13] = "DOWNLOADING", t[t.DL_FORCED = 14] = "DL_FORCED", t[t.CHECKING_DISK = 15] = "CHECKING_DISK", t[t.CHECKING_RESUME_DATA = 16] = "CHECKING_RESUME_DATA", t[t.MOVING = 17] = "MOVING", t))(Ze || {});
    const YA = {
        15: "🔍",
        16: "🔍",
        14: "📥",
        8: "⏳",
        10: "🕔",
        3: "⏹️",
        13: "📥",
        1: "❌",
        6: "📝",
        5: "📝",
        2: "⚠️",
        17: "🚚",
        12: "📤",
        7: "⏳",
        9: "🌱",
        4: "✅",
        0: "❓",
        11: "📤"
    };
    function qA(t) {
        switch(t){
            case wt.META_DL:
                return 5;
            case wt.FORCED_META_DL:
                return 6;
            case wt.FORCED_DL:
                return 14;
            case wt.DOWNLOADING:
                return 13;
            case wt.STALLED_DL:
            case wt.ALLOCATING:
                return 10;
            case wt.PAUSED_DL:
            case wt.STOPPED_DL:
                return 3;
            case wt.QUEUED_DL:
                return 8;
            case wt.FORCED_UP:
                return 12;
            case wt.UPLOADING:
                return 11;
            case wt.STALLED_UP:
                return 9;
            case wt.PAUSED_UP:
            case wt.STOPPED_UP:
                return 4;
            case wt.QUEUED_UP:
                return 7;
            case wt.CHECKING_DL:
            case wt.CHECKING_UP:
                return 15;
            case wt.CHECKING_RESUME_DATA:
                return 16;
            case wt.MOVING:
                return 17;
            case wt.MISSING_FILES:
                return 2;
            case wt.ERROR:
                return 1;
            case wt.UNKNOWN:
            default:
                return 0;
        }
    }
    var $a = ((t)=>(t[t.UNTRACKED = 0] = "UNTRACKED", t[t.NOT_WORKING = 1] = "NOT_WORKING", t))($a || {});
    pv = "YYYY-MM-DD HH:mm:ss";
    gv = "Y[Y] M[M] D[d] H[h] m[m] s[s]";
    function da(t, e) {
        KA(t) && (t = "100%");
        const a = XA(t);
        return t = e === 360 ? t : Math.min(e, Math.max(0, parseFloat(t))), a && (t = parseInt(String(t * e), 10) / 100), Math.abs(t - e) < 1e-6 ? 1 : (e === 360 ? t = (t < 0 ? t % e + e : t % e) / parseFloat(String(e)) : t = t % e / parseFloat(String(e)), t);
    }
    function cs(t) {
        return Math.min(1, Math.max(0, t));
    }
    function KA(t) {
        return typeof t == "string" && t.indexOf(".") !== -1 && parseFloat(t) === 1;
    }
    function XA(t) {
        return typeof t == "string" && t.indexOf("%") !== -1;
    }
    function Xb(t) {
        return t = parseFloat(t), (isNaN(t) || t < 0 || t > 1) && (t = 1), t;
    }
    function ds(t) {
        return Number(t) <= 1 ? `${Number(t) * 100}%` : t;
    }
    function Fn(t) {
        return t.length === 1 ? "0" + t : String(t);
    }
    function JA(t, e, a) {
        return {
            r: da(t, 255) * 255,
            g: da(e, 255) * 255,
            b: da(a, 255) * 255
        };
    }
    function vv(t, e, a) {
        t = da(t, 255), e = da(e, 255), a = da(a, 255);
        const r = Math.max(t, e, a), n = Math.min(t, e, a);
        let i = 0, o = 0;
        const s = (r + n) / 2;
        if (r === n) o = 0, i = 0;
        else {
            const l = r - n;
            switch(o = s > .5 ? l / (2 - r - n) : l / (r + n), r){
                case t:
                    i = (e - a) / l + (e < a ? 6 : 0);
                    break;
                case e:
                    i = (a - t) / l + 2;
                    break;
                case a:
                    i = (t - e) / l + 4;
                    break;
            }
            i /= 6;
        }
        return {
            h: i,
            s: o,
            l: s
        };
    }
    function hd(t, e, a) {
        return a < 0 && (a += 1), a > 1 && (a -= 1), a < 1 / 6 ? t + (e - t) * (6 * a) : a < 1 / 2 ? e : a < 2 / 3 ? t + (e - t) * (2 / 3 - a) * 6 : t;
    }
    function ZA(t, e, a) {
        let r, n, i;
        if (t = da(t, 360), e = da(e, 100), a = da(a, 100), e === 0) n = a, i = a, r = a;
        else {
            const o = a < .5 ? a * (1 + e) : a + e - a * e, s = 2 * a - o;
            r = hd(s, o, t + 1 / 3), n = hd(s, o, t), i = hd(s, o, t - 1 / 3);
        }
        return {
            r: r * 255,
            g: n * 255,
            b: i * 255
        };
    }
    function yv(t, e, a) {
        t = da(t, 255), e = da(e, 255), a = da(a, 255);
        const r = Math.max(t, e, a), n = Math.min(t, e, a);
        let i = 0;
        const o = r, s = r - n, l = r === 0 ? 0 : s / r;
        if (r === n) i = 0;
        else {
            switch(r){
                case t:
                    i = (e - a) / s + (e < a ? 6 : 0);
                    break;
                case e:
                    i = (a - t) / s + 2;
                    break;
                case a:
                    i = (t - e) / s + 4;
                    break;
            }
            i /= 6;
        }
        return {
            h: i,
            s: l,
            v: o
        };
    }
    function QA(t, e, a) {
        t = da(t, 360) * 6, e = da(e, 100), a = da(a, 100);
        const r = Math.floor(t), n = t - r, i = a * (1 - e), o = a * (1 - n * e), s = a * (1 - (1 - n) * e), l = r % 6, u = [
            a,
            o,
            i,
            i,
            s,
            a
        ][l], c = [
            s,
            a,
            a,
            o,
            i,
            i
        ][l], d = [
            i,
            i,
            s,
            a,
            a,
            o
        ][l];
        return {
            r: u * 255,
            g: c * 255,
            b: d * 255
        };
    }
    function bv(t, e, a, r) {
        const n = [
            Fn(Math.round(t).toString(16)),
            Fn(Math.round(e).toString(16)),
            Fn(Math.round(a).toString(16))
        ];
        return r && n[0].startsWith(n[0].charAt(1)) && n[1].startsWith(n[1].charAt(1)) && n[2].startsWith(n[2].charAt(1)) ? n[0].charAt(0) + n[1].charAt(0) + n[2].charAt(0) : n.join("");
    }
    function eD(t, e, a, r, n) {
        const i = [
            Fn(Math.round(t).toString(16)),
            Fn(Math.round(e).toString(16)),
            Fn(Math.round(a).toString(16)),
            Fn(aD(r))
        ];
        return n && i[0].startsWith(i[0].charAt(1)) && i[1].startsWith(i[1].charAt(1)) && i[2].startsWith(i[2].charAt(1)) && i[3].startsWith(i[3].charAt(1)) ? i[0].charAt(0) + i[1].charAt(0) + i[2].charAt(0) + i[3].charAt(0) : i.join("");
    }
    function tD(t, e, a, r) {
        const n = t / 100, i = e / 100, o = a / 100, s = r / 100, l = 255 * (1 - n) * (1 - s), u = 255 * (1 - i) * (1 - s), c = 255 * (1 - o) * (1 - s);
        return {
            r: l,
            g: u,
            b: c
        };
    }
    function Fv(t, e, a) {
        let r = 1 - t / 255, n = 1 - e / 255, i = 1 - a / 255, o = Math.min(r, n, i);
        return o === 1 ? (r = 0, n = 0, i = 0) : (r = (r - o) / (1 - o) * 100, n = (n - o) / (1 - o) * 100, i = (i - o) / (1 - o) * 100), o *= 100, {
            c: Math.round(r),
            m: Math.round(n),
            y: Math.round(i),
            k: Math.round(o)
        };
    }
    function aD(t) {
        return Math.round(parseFloat(t) * 255).toString(16);
    }
    function kv(t) {
        return Wa(t) / 255;
    }
    function Wa(t) {
        return parseInt(t, 16);
    }
    function rD(t) {
        return {
            r: t >> 16,
            g: (t & 65280) >> 8,
            b: t & 255
        };
    }
    const uh = {
        aliceblue: "#f0f8ff",
        antiquewhite: "#faebd7",
        aqua: "#00ffff",
        aquamarine: "#7fffd4",
        azure: "#f0ffff",
        beige: "#f5f5dc",
        bisque: "#ffe4c4",
        black: "#000000",
        blanchedalmond: "#ffebcd",
        blue: "#0000ff",
        blueviolet: "#8a2be2",
        brown: "#a52a2a",
        burlywood: "#deb887",
        cadetblue: "#5f9ea0",
        chartreuse: "#7fff00",
        chocolate: "#d2691e",
        coral: "#ff7f50",
        cornflowerblue: "#6495ed",
        cornsilk: "#fff8dc",
        crimson: "#dc143c",
        cyan: "#00ffff",
        darkblue: "#00008b",
        darkcyan: "#008b8b",
        darkgoldenrod: "#b8860b",
        darkgray: "#a9a9a9",
        darkgreen: "#006400",
        darkgrey: "#a9a9a9",
        darkkhaki: "#bdb76b",
        darkmagenta: "#8b008b",
        darkolivegreen: "#556b2f",
        darkorange: "#ff8c00",
        darkorchid: "#9932cc",
        darkred: "#8b0000",
        darksalmon: "#e9967a",
        darkseagreen: "#8fbc8f",
        darkslateblue: "#483d8b",
        darkslategray: "#2f4f4f",
        darkslategrey: "#2f4f4f",
        darkturquoise: "#00ced1",
        darkviolet: "#9400d3",
        deeppink: "#ff1493",
        deepskyblue: "#00bfff",
        dimgray: "#696969",
        dimgrey: "#696969",
        dodgerblue: "#1e90ff",
        firebrick: "#b22222",
        floralwhite: "#fffaf0",
        forestgreen: "#228b22",
        fuchsia: "#ff00ff",
        gainsboro: "#dcdcdc",
        ghostwhite: "#f8f8ff",
        goldenrod: "#daa520",
        gold: "#ffd700",
        gray: "#808080",
        green: "#008000",
        greenyellow: "#adff2f",
        grey: "#808080",
        honeydew: "#f0fff0",
        hotpink: "#ff69b4",
        indianred: "#cd5c5c",
        indigo: "#4b0082",
        ivory: "#fffff0",
        khaki: "#f0e68c",
        lavenderblush: "#fff0f5",
        lavender: "#e6e6fa",
        lawngreen: "#7cfc00",
        lemonchiffon: "#fffacd",
        lightblue: "#add8e6",
        lightcoral: "#f08080",
        lightcyan: "#e0ffff",
        lightgoldenrodyellow: "#fafad2",
        lightgray: "#d3d3d3",
        lightgreen: "#90ee90",
        lightgrey: "#d3d3d3",
        lightpink: "#ffb6c1",
        lightsalmon: "#ffa07a",
        lightseagreen: "#20b2aa",
        lightskyblue: "#87cefa",
        lightslategray: "#778899",
        lightslategrey: "#778899",
        lightsteelblue: "#b0c4de",
        lightyellow: "#ffffe0",
        lime: "#00ff00",
        limegreen: "#32cd32",
        linen: "#faf0e6",
        magenta: "#ff00ff",
        maroon: "#800000",
        mediumaquamarine: "#66cdaa",
        mediumblue: "#0000cd",
        mediumorchid: "#ba55d3",
        mediumpurple: "#9370db",
        mediumseagreen: "#3cb371",
        mediumslateblue: "#7b68ee",
        mediumspringgreen: "#00fa9a",
        mediumturquoise: "#48d1cc",
        mediumvioletred: "#c71585",
        midnightblue: "#191970",
        mintcream: "#f5fffa",
        mistyrose: "#ffe4e1",
        moccasin: "#ffe4b5",
        navajowhite: "#ffdead",
        navy: "#000080",
        oldlace: "#fdf5e6",
        olive: "#808000",
        olivedrab: "#6b8e23",
        orange: "#ffa500",
        orangered: "#ff4500",
        orchid: "#da70d6",
        palegoldenrod: "#eee8aa",
        palegreen: "#98fb98",
        paleturquoise: "#afeeee",
        palevioletred: "#db7093",
        papayawhip: "#ffefd5",
        peachpuff: "#ffdab9",
        peru: "#cd853f",
        pink: "#ffc0cb",
        plum: "#dda0dd",
        powderblue: "#b0e0e6",
        purple: "#800080",
        rebeccapurple: "#663399",
        red: "#ff0000",
        rosybrown: "#bc8f8f",
        royalblue: "#4169e1",
        saddlebrown: "#8b4513",
        salmon: "#fa8072",
        sandybrown: "#f4a460",
        seagreen: "#2e8b57",
        seashell: "#fff5ee",
        sienna: "#a0522d",
        silver: "#c0c0c0",
        skyblue: "#87ceeb",
        slateblue: "#6a5acd",
        slategray: "#708090",
        slategrey: "#708090",
        snow: "#fffafa",
        springgreen: "#00ff7f",
        steelblue: "#4682b4",
        tan: "#d2b48c",
        teal: "#008080",
        thistle: "#d8bfd8",
        tomato: "#ff6347",
        turquoise: "#40e0d0",
        violet: "#ee82ee",
        wheat: "#f5deb3",
        white: "#ffffff",
        whitesmoke: "#f5f5f5",
        yellow: "#ffff00",
        yellowgreen: "#9acd32"
    };
    function nD(t) {
        let e = {
            r: 0,
            g: 0,
            b: 0
        }, a = 1, r = null, n = null, i = null, o = !1, s = !1;
        return typeof t == "string" && (t = sD(t)), typeof t == "object" && (Ha(t.r) && Ha(t.g) && Ha(t.b) ? (e = JA(t.r, t.g, t.b), o = !0, s = String(t.r).substr(-1) === "%" ? "prgb" : "rgb") : Ha(t.h) && Ha(t.s) && Ha(t.v) ? (r = ds(t.s), n = ds(t.v), e = QA(t.h, r, n), o = !0, s = "hsv") : Ha(t.h) && Ha(t.s) && Ha(t.l) ? (r = ds(t.s), i = ds(t.l), e = ZA(t.h, r, i), o = !0, s = "hsl") : Ha(t.c) && Ha(t.m) && Ha(t.y) && Ha(t.k) && (e = tD(t.c, t.m, t.y, t.k), o = !0, s = "cmyk"), Object.prototype.hasOwnProperty.call(t, "a") && (a = t.a)), a = Xb(a), {
            ok: o,
            format: t.format || s,
            r: Math.min(255, Math.max(e.r, 0)),
            g: Math.min(255, Math.max(e.g, 0)),
            b: Math.min(255, Math.max(e.b, 0)),
            a
        };
    }
    const iD = "[-\\+]?\\d+%?", oD = "[-\\+]?\\d*\\.\\d+%?", Ur = "(?:" + oD + ")|(?:" + iD + ")", md = "[\\s|\\(]+(" + Ur + ")[,|\\s]+(" + Ur + ")[,|\\s]+(" + Ur + ")\\s*\\)?", hs = "[\\s|\\(]+(" + Ur + ")[,|\\s]+(" + Ur + ")[,|\\s]+(" + Ur + ")[,|\\s]+(" + Ur + ")\\s*\\)?", tr = {
        CSS_UNIT: new RegExp(Ur),
        rgb: new RegExp("rgb" + md),
        rgba: new RegExp("rgba" + hs),
        hsl: new RegExp("hsl" + md),
        hsla: new RegExp("hsla" + hs),
        hsv: new RegExp("hsv" + md),
        hsva: new RegExp("hsva" + hs),
        cmyk: new RegExp("cmyk" + hs),
        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
    };
    function sD(t) {
        if (t = t.trim().toLowerCase(), t.length === 0) return !1;
        let e = !1;
        if (uh[t]) t = uh[t], e = !0;
        else if (t === "transparent") return {
            r: 0,
            g: 0,
            b: 0,
            a: 0,
            format: "name"
        };
        let a = tr.rgb.exec(t);
        return a ? {
            r: a[1],
            g: a[2],
            b: a[3]
        } : (a = tr.rgba.exec(t), a ? {
            r: a[1],
            g: a[2],
            b: a[3],
            a: a[4]
        } : (a = tr.hsl.exec(t), a ? {
            h: a[1],
            s: a[2],
            l: a[3]
        } : (a = tr.hsla.exec(t), a ? {
            h: a[1],
            s: a[2],
            l: a[3],
            a: a[4]
        } : (a = tr.hsv.exec(t), a ? {
            h: a[1],
            s: a[2],
            v: a[3]
        } : (a = tr.hsva.exec(t), a ? {
            h: a[1],
            s: a[2],
            v: a[3],
            a: a[4]
        } : (a = tr.cmyk.exec(t), a ? {
            c: a[1],
            m: a[2],
            y: a[3],
            k: a[4]
        } : (a = tr.hex8.exec(t), a ? {
            r: Wa(a[1]),
            g: Wa(a[2]),
            b: Wa(a[3]),
            a: kv(a[4]),
            format: e ? "name" : "hex8"
        } : (a = tr.hex6.exec(t), a ? {
            r: Wa(a[1]),
            g: Wa(a[2]),
            b: Wa(a[3]),
            format: e ? "name" : "hex"
        } : (a = tr.hex4.exec(t), a ? {
            r: Wa(a[1] + a[1]),
            g: Wa(a[2] + a[2]),
            b: Wa(a[3] + a[3]),
            a: kv(a[4] + a[4]),
            format: e ? "name" : "hex8"
        } : (a = tr.hex3.exec(t), a ? {
            r: Wa(a[1] + a[1]),
            g: Wa(a[2] + a[2]),
            b: Wa(a[3] + a[3]),
            format: e ? "name" : "hex"
        } : !1))))))))));
    }
    function Ha(t) {
        return typeof t == "number" ? !Number.isNaN(t) : tr.CSS_UNIT.test(t);
    }
    Nt = class {
        constructor(e = "", a = {}){
            if (e instanceof Nt) return e;
            typeof e == "number" && (e = rD(e)), this.originalInput = e;
            const r = nD(e);
            this.originalInput = e, this.r = r.r, this.g = r.g, this.b = r.b, this.a = r.a, this.roundA = Math.round(100 * this.a) / 100, this.format = a.format ?? r.format, this.gradientType = a.gradientType, this.r < 1 && (this.r = Math.round(this.r)), this.g < 1 && (this.g = Math.round(this.g)), this.b < 1 && (this.b = Math.round(this.b)), this.isValid = r.ok;
        }
        isDark() {
            return this.getBrightness() < 128;
        }
        isLight() {
            return !this.isDark();
        }
        getBrightness() {
            const e = this.toRgb();
            return (e.r * 299 + e.g * 587 + e.b * 114) / 1e3;
        }
        getLuminance() {
            const e = this.toRgb();
            let a, r, n;
            const i = e.r / 255, o = e.g / 255, s = e.b / 255;
            return i <= .03928 ? a = i / 12.92 : a = Math.pow((i + .055) / 1.055, 2.4), o <= .03928 ? r = o / 12.92 : r = Math.pow((o + .055) / 1.055, 2.4), s <= .03928 ? n = s / 12.92 : n = Math.pow((s + .055) / 1.055, 2.4), .2126 * a + .7152 * r + .0722 * n;
        }
        getAlpha() {
            return this.a;
        }
        setAlpha(e) {
            return this.a = Xb(e), this.roundA = Math.round(100 * this.a) / 100, this;
        }
        isMonochrome() {
            const { s: e } = this.toHsl();
            return e === 0;
        }
        toHsv() {
            const e = yv(this.r, this.g, this.b);
            return {
                h: e.h * 360,
                s: e.s,
                v: e.v,
                a: this.a
            };
        }
        toHsvString() {
            const e = yv(this.r, this.g, this.b), a = Math.round(e.h * 360), r = Math.round(e.s * 100), n = Math.round(e.v * 100);
            return this.a === 1 ? `hsv(${a}, ${r}%, ${n}%)` : `hsva(${a}, ${r}%, ${n}%, ${this.roundA})`;
        }
        toHsl() {
            const e = vv(this.r, this.g, this.b);
            return {
                h: e.h * 360,
                s: e.s,
                l: e.l,
                a: this.a
            };
        }
        toHslString() {
            const e = vv(this.r, this.g, this.b), a = Math.round(e.h * 360), r = Math.round(e.s * 100), n = Math.round(e.l * 100);
            return this.a === 1 ? `hsl(${a}, ${r}%, ${n}%)` : `hsla(${a}, ${r}%, ${n}%, ${this.roundA})`;
        }
        toHex(e = !1) {
            return bv(this.r, this.g, this.b, e);
        }
        toHexString(e = !1) {
            return "#" + this.toHex(e);
        }
        toHex8(e = !1) {
            return eD(this.r, this.g, this.b, this.a, e);
        }
        toHex8String(e = !1) {
            return "#" + this.toHex8(e);
        }
        toHexShortString(e = !1) {
            return this.a === 1 ? this.toHexString(e) : this.toHex8String(e);
        }
        toRgb() {
            return {
                r: Math.round(this.r),
                g: Math.round(this.g),
                b: Math.round(this.b),
                a: this.a
            };
        }
        toRgbString() {
            const e = Math.round(this.r), a = Math.round(this.g), r = Math.round(this.b);
            return this.a === 1 ? `rgb(${e}, ${a}, ${r})` : `rgba(${e}, ${a}, ${r}, ${this.roundA})`;
        }
        toPercentageRgb() {
            const e = (a)=>`${Math.round(da(a, 255) * 100)}%`;
            return {
                r: e(this.r),
                g: e(this.g),
                b: e(this.b),
                a: this.a
            };
        }
        toPercentageRgbString() {
            const e = (a)=>Math.round(da(a, 255) * 100);
            return this.a === 1 ? `rgb(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%)` : `rgba(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%, ${this.roundA})`;
        }
        toCmyk() {
            return {
                ...Fv(this.r, this.g, this.b)
            };
        }
        toCmykString() {
            const { c: e, m: a, y: r, k: n } = Fv(this.r, this.g, this.b);
            return `cmyk(${e}, ${a}, ${r}, ${n})`;
        }
        toName() {
            if (this.a === 0) return "transparent";
            if (this.a < 1) return !1;
            const e = "#" + bv(this.r, this.g, this.b, !1);
            for (const [a, r] of Object.entries(uh))if (e === r) return a;
            return !1;
        }
        toString(e) {
            const a = !!e;
            e = e ?? this.format;
            let r = !1;
            const n = this.a < 1 && this.a >= 0;
            return !a && n && (e.startsWith("hex") || e === "name") ? e === "name" && this.a === 0 ? this.toName() : this.toRgbString() : (e === "rgb" && (r = this.toRgbString()), e === "prgb" && (r = this.toPercentageRgbString()), (e === "hex" || e === "hex6") && (r = this.toHexString()), e === "hex3" && (r = this.toHexString(!0)), e === "hex4" && (r = this.toHex8String(!0)), e === "hex8" && (r = this.toHex8String()), e === "name" && (r = this.toName()), e === "hsl" && (r = this.toHslString()), e === "hsv" && (r = this.toHsvString()), e === "cmyk" && (r = this.toCmykString()), r || this.toHexString());
        }
        toNumber() {
            return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);
        }
        clone() {
            return new Nt(this.toString());
        }
        lighten(e = 10) {
            const a = this.toHsl();
            return a.l += e / 100, a.l = cs(a.l), new Nt(a);
        }
        brighten(e = 10) {
            const a = this.toRgb();
            return a.r = Math.max(0, Math.min(255, a.r - Math.round(255 * -(e / 100)))), a.g = Math.max(0, Math.min(255, a.g - Math.round(255 * -(e / 100)))), a.b = Math.max(0, Math.min(255, a.b - Math.round(255 * -(e / 100)))), new Nt(a);
        }
        darken(e = 10) {
            const a = this.toHsl();
            return a.l -= e / 100, a.l = cs(a.l), new Nt(a);
        }
        tint(e = 10) {
            return this.mix("white", e);
        }
        shade(e = 10) {
            return this.mix("black", e);
        }
        desaturate(e = 10) {
            const a = this.toHsl();
            return a.s -= e / 100, a.s = cs(a.s), new Nt(a);
        }
        saturate(e = 10) {
            const a = this.toHsl();
            return a.s += e / 100, a.s = cs(a.s), new Nt(a);
        }
        greyscale() {
            return this.desaturate(100);
        }
        spin(e) {
            const a = this.toHsl(), r = (a.h + e) % 360;
            return a.h = r < 0 ? 360 + r : r, new Nt(a);
        }
        mix(e, a = 50) {
            const r = this.toRgb(), n = new Nt(e).toRgb(), i = a / 100, o = {
                r: (n.r - r.r) * i + r.r,
                g: (n.g - r.g) * i + r.g,
                b: (n.b - r.b) * i + r.b,
                a: (n.a - r.a) * i + r.a
            };
            return new Nt(o);
        }
        analogous(e = 6, a = 30) {
            const r = this.toHsl(), n = 360 / a, i = [
                this
            ];
            for(r.h = (r.h - (n * e >> 1) + 720) % 360; --e;)r.h = (r.h + n) % 360, i.push(new Nt(r));
            return i;
        }
        complement() {
            const e = this.toHsl();
            return e.h = (e.h + 180) % 360, new Nt(e);
        }
        monochromatic(e = 6) {
            const a = this.toHsv(), { h: r } = a, { s: n } = a;
            let { v: i } = a;
            const o = [], s = 1 / e;
            for(; e--;)o.push(new Nt({
                h: r,
                s: n,
                v: i
            })), i = (i + s) % 1;
            return o;
        }
        splitcomplement() {
            const e = this.toHsl(), { h: a } = e;
            return [
                this,
                new Nt({
                    h: (a + 72) % 360,
                    s: e.s,
                    l: e.l
                }),
                new Nt({
                    h: (a + 216) % 360,
                    s: e.s,
                    l: e.l
                })
            ];
        }
        onBackground(e) {
            const a = this.toRgb(), r = new Nt(e).toRgb(), n = a.a + r.a * (1 - a.a);
            return new Nt({
                r: (a.r * a.a + r.r * r.a * (1 - a.a)) / n,
                g: (a.g * a.a + r.g * r.a * (1 - a.a)) / n,
                b: (a.b * a.a + r.b * r.a * (1 - a.a)) / n,
                a: n
            });
        }
        triad() {
            return this.polyad(3);
        }
        tetrad() {
            return this.polyad(4);
        }
        polyad(e) {
            const a = this.toHsl(), { h: r } = a, n = [
                this
            ], i = 360 / e;
            for(let o = 1; o < e; o++)n.push(new Nt({
                h: (r + o * i) % 360,
                s: a.s,
                l: a.l
            }));
            return n;
        }
        equals(e) {
            const a = new Nt(e);
            return this.format === "cmyk" || a.format === "cmyk" ? this.toCmykString() === a.toCmykString() : this.toRgbString() === a.toRgbString();
        }
    };
    function Jb(t = {}) {
        if (t.count !== void 0 && t.count !== null) {
            const i = t.count, o = [];
            for(t.count = void 0; i > o.length;)t.count = null, t.seed && (t.seed += 1), o.push(Jb(t));
            return t.count = i, o;
        }
        const e = lD(t.hue, t.seed), a = uD(e, t), r = cD(e, a, t), n = {
            h: e,
            s: a,
            v: r
        };
        return t.alpha !== void 0 && (n.a = t.alpha), new Nt(n);
    }
    function lD(t, e) {
        const a = hD(t);
        let r = Hs(a, e);
        return r < 0 && (r = 360 + r), r;
    }
    function uD(t, e) {
        if (e.hue === "monochrome") return 0;
        if (e.luminosity === "random") return Hs([
            0,
            100
        ], e.seed);
        const { saturationRange: a } = Zb(t);
        let r = a[0], n = a[1];
        switch(e.luminosity){
            case "bright":
                r = 55;
                break;
            case "dark":
                r = n - 10;
                break;
            case "light":
                n = 55;
                break;
        }
        return Hs([
            r,
            n
        ], e.seed);
    }
    function cD(t, e, a) {
        let r = dD(t, e), n = 100;
        switch(a.luminosity){
            case "dark":
                n = r + 20;
                break;
            case "light":
                r = (n + r) / 2;
                break;
            case "random":
                r = 0, n = 100;
                break;
        }
        return Hs([
            r,
            n
        ], a.seed);
    }
    function dD(t, e) {
        const { lowerBounds: a } = Zb(t);
        for(let r = 0; r < a.length - 1; r++){
            const n = a[r][0], i = a[r][1], o = a[r + 1][0], s = a[r + 1][1];
            if (e >= n && e <= o) {
                const l = (s - i) / (o - n), u = i - l * n;
                return l * e + u;
            }
        }
        return 0;
    }
    function hD(t) {
        const e = parseInt(t, 10);
        if (!Number.isNaN(e) && e < 360 && e > 0) return [
            e,
            e
        ];
        if (typeof t == "string") {
            const a = eF.find((n)=>n.name === t);
            if (a) {
                const n = Qb(a);
                if (n.hueRange) return n.hueRange;
            }
            const r = new Nt(t);
            if (r.isValid) {
                const n = r.toHsv().h;
                return [
                    n,
                    n
                ];
            }
        }
        return [
            0,
            360
        ];
    }
    function Zb(t) {
        t >= 334 && t <= 360 && (t -= 360);
        for (const e of eF){
            const a = Qb(e);
            if (a.hueRange && t >= a.hueRange[0] && t <= a.hueRange[1]) return a;
        }
        throw Error("Color not found");
    }
    function Hs(t, e) {
        if (e === void 0) return Math.floor(t[0] + Math.random() * (t[1] + 1 - t[0]));
        const a = t[1] || 1, r = t[0] || 0;
        e = (e * 9301 + 49297) % 233280;
        const n = e / 233280;
        return Math.floor(r + n * (a - r));
    }
    function Qb(t) {
        const e = t.lowerBounds[0][0], a = t.lowerBounds[t.lowerBounds.length - 1][0], r = t.lowerBounds[t.lowerBounds.length - 1][1], n = t.lowerBounds[0][1];
        return {
            name: t.name,
            hueRange: t.hueRange,
            lowerBounds: t.lowerBounds,
            saturationRange: [
                e,
                a
            ],
            brightnessRange: [
                r,
                n
            ]
        };
    }
    const eF = [
        {
            name: "monochrome",
            hueRange: null,
            lowerBounds: [
                [
                    0,
                    0
                ],
                [
                    100,
                    0
                ]
            ]
        },
        {
            name: "red",
            hueRange: [
                -26,
                18
            ],
            lowerBounds: [
                [
                    20,
                    100
                ],
                [
                    30,
                    92
                ],
                [
                    40,
                    89
                ],
                [
                    50,
                    85
                ],
                [
                    60,
                    78
                ],
                [
                    70,
                    70
                ],
                [
                    80,
                    60
                ],
                [
                    90,
                    55
                ],
                [
                    100,
                    50
                ]
            ]
        },
        {
            name: "orange",
            hueRange: [
                19,
                46
            ],
            lowerBounds: [
                [
                    20,
                    100
                ],
                [
                    30,
                    93
                ],
                [
                    40,
                    88
                ],
                [
                    50,
                    86
                ],
                [
                    60,
                    85
                ],
                [
                    70,
                    70
                ],
                [
                    100,
                    70
                ]
            ]
        },
        {
            name: "yellow",
            hueRange: [
                47,
                62
            ],
            lowerBounds: [
                [
                    25,
                    100
                ],
                [
                    40,
                    94
                ],
                [
                    50,
                    89
                ],
                [
                    60,
                    86
                ],
                [
                    70,
                    84
                ],
                [
                    80,
                    82
                ],
                [
                    90,
                    80
                ],
                [
                    100,
                    75
                ]
            ]
        },
        {
            name: "green",
            hueRange: [
                63,
                178
            ],
            lowerBounds: [
                [
                    30,
                    100
                ],
                [
                    40,
                    90
                ],
                [
                    50,
                    85
                ],
                [
                    60,
                    81
                ],
                [
                    70,
                    74
                ],
                [
                    80,
                    64
                ],
                [
                    90,
                    50
                ],
                [
                    100,
                    40
                ]
            ]
        },
        {
            name: "blue",
            hueRange: [
                179,
                257
            ],
            lowerBounds: [
                [
                    20,
                    100
                ],
                [
                    30,
                    86
                ],
                [
                    40,
                    80
                ],
                [
                    50,
                    74
                ],
                [
                    60,
                    60
                ],
                [
                    70,
                    52
                ],
                [
                    80,
                    44
                ],
                [
                    90,
                    39
                ],
                [
                    100,
                    35
                ]
            ]
        },
        {
            name: "purple",
            hueRange: [
                258,
                282
            ],
            lowerBounds: [
                [
                    20,
                    100
                ],
                [
                    30,
                    87
                ],
                [
                    40,
                    79
                ],
                [
                    50,
                    70
                ],
                [
                    60,
                    65
                ],
                [
                    70,
                    59
                ],
                [
                    80,
                    52
                ],
                [
                    90,
                    45
                ],
                [
                    100,
                    42
                ]
            ]
        },
        {
            name: "pink",
            hueRange: [
                283,
                334
            ],
            lowerBounds: [
                [
                    20,
                    100
                ],
                [
                    30,
                    90
                ],
                [
                    40,
                    86
                ],
                [
                    60,
                    84
                ],
                [
                    80,
                    80
                ],
                [
                    90,
                    75
                ],
                [
                    100,
                    73
                ]
            ]
        }
    ];
    function mD(t) {
        let e = 5381;
        for(let a = 0; a < t.length; a++)e = e * 33 ^ t.charCodeAt(a);
        return e >>> 0;
    }
    nW = function(t, e) {
        const a = Jb({
            seed: mD(t)
        });
        return e ? e(a).toHexString() : a.toHexString();
    };
    fD = function(t) {
        return t < .5 ? "text-ratio-bad" : t < 1 ? "text-ratio-almost" : t < 5 ? "text-ratio-good" : "text-ratio-best";
    };
    function tF(t) {
        return Ze[t].toLowerCase();
    }
    Vs = function(t) {
        return `torrent-${tF(t)}`;
    };
    class si {
        asc;
        desc = (e, a)=>-this.asc(e, a);
        constructor(e){
            this.asc = e;
        }
        compare(e, a, r) {
            return r ? this.asc(e, a) : this.desc(e, a);
        }
    }
    function aF(t, e) {
        if (typeof t != "object" && typeof e != "object" && t === e) return !0;
        if (t === null || e === null || typeof t != "object" || typeof e != "object") return !1;
        const a = Object.keys(t), r = Object.keys(e);
        if (a.length !== r.length) return !1;
        for (const n of a)if (!Object.prototype.hasOwnProperty.call(e, n) || !aF(t[n], e[n])) return !1;
        return !0;
    }
    Te = {
        numeric: new si((t, e)=>t - e),
        invertedNumeric: new si((t, e)=>e - t),
        text: new si((t, e)=>t.localeCompare(e)),
        textWithNumbers: new si((t, e)=>{
            const a = /(\d+)/, r = t.split(a), n = e.split(a);
            for(let i = 0; i < Math.min(r.length, n.length); i++)if (i % 2 === 1) {
                const o = +r[i] - +n[i];
                if (o !== 0) return o;
            } else if (r[i] !== n[i]) return r[i].localeCompare(n[i]);
            return r.length - n.length;
        }),
        boolean: new si((t, e)=>t === e ? 0 : t ? 1 : -1),
        arrayText: new si((t, e)=>{
            for(let a = 0; a < Math.min(t.length, e.length); a++){
                const r = t[a].localeCompare(e[a]);
                if (r) return r;
            }
            return t.length - e.length;
        })
    };
    function rF(t, e) {
        if (t >= 10 ** e) return Math.floor(t).toString();
        const a = t.toFixed(e);
        if (a.length < Math.floor(Math.log10(t)) + 1) return a;
        {
            const r = a.substring(0, e + 1);
            return r.endsWith(".") ? r.slice(0, -1) : r;
        }
    }
    pD = function(t) {
        return `${rF(t * 100, 3)} %`;
    };
    const ch = [
        "",
        "k",
        "M",
        "G",
        "T",
        "P",
        "E",
        "Z",
        "Y"
    ];
    Mm = function(t, e, a) {
        const r = e ? 1024 : 1e3;
        if (!t || t === 0) return "0";
        let n = 1;
        for(; t >= r ** n && n < ch.length;)n++;
        return rF(t / r ** (n - 1), a ?? (n > 1 ? 3 : 1));
    };
    Rm = function(t, e) {
        const a = e ? 1024 : 1e3;
        let r = 1;
        for(; t >= a ** r && r < ch.length;)r++;
        return `${ch[r - 1]}${e && r > 1 ? "i" : ""}B`;
    };
    gD = function(t, e, a) {
        return `${Mm(t, e, a)} ${Rm(t, e)}`;
    };
    var ws = {
        exports: {}
    }, vD = ws.exports, xv;
    function yD() {
        return xv || (xv = 1, function(t, e) {
            (function(a, r) {
                t.exports = r();
            })(vD, function() {
                var a = 1e3, r = 6e4, n = 36e5, i = "millisecond", o = "second", s = "minute", l = "hour", u = "day", c = "week", d = "month", h = "quarter", m = "year", f = "date", p = "Invalid Date", g = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, v = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, b = {
                    name: "en",
                    weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
                    months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
                    ordinal: function(P) {
                        var M = [
                            "th",
                            "st",
                            "nd",
                            "rd"
                        ], R = P % 100;
                        return "[" + P + (M[(R - 20) % 10] || M[R] || M[0]) + "]";
                    }
                }, k = function(P, M, R) {
                    var z = String(P);
                    return !z || z.length >= M ? P : "" + Array(M + 1 - z.length).join(R) + P;
                }, S = {
                    s: k,
                    z: function(P) {
                        var M = -P.utcOffset(), R = Math.abs(M), z = Math.floor(R / 60), N = R % 60;
                        return (M <= 0 ? "+" : "-") + k(z, 2, "0") + ":" + k(N, 2, "0");
                    },
                    m: function P(M, R) {
                        if (M.date() < R.date()) return -P(R, M);
                        var z = 12 * (R.year() - M.year()) + (R.month() - M.month()), N = M.clone().add(z, d), H = R - N < 0, I = M.clone().add(z + (H ? -1 : 1), d);
                        return +(-(z + (R - N) / (H ? N - I : I - N)) || 0);
                    },
                    a: function(P) {
                        return P < 0 ? Math.ceil(P) || 0 : Math.floor(P);
                    },
                    p: function(P) {
                        return {
                            M: d,
                            y: m,
                            w: c,
                            d: u,
                            D: f,
                            h: l,
                            m: s,
                            s: o,
                            ms: i,
                            Q: h
                        }[P] || String(P || "").toLowerCase().replace(/s$/, "");
                    },
                    u: function(P) {
                        return P === void 0;
                    }
                }, x = "en", C = {};
                C[x] = b;
                var w = "$isDayjsObject", F = function(P) {
                    return P instanceof E || !(!P || !P[w]);
                }, D = function P(M, R, z) {
                    var N;
                    if (!M) return x;
                    if (typeof M == "string") {
                        var H = M.toLowerCase();
                        C[H] && (N = H), R && (C[H] = R, N = H);
                        var I = M.split("-");
                        if (!N && I.length > 1) return P(I[0]);
                    } else {
                        var L = M.name;
                        C[L] = M, N = L;
                    }
                    return !z && N && (x = N), N || !z && x;
                }, _ = function(P, M) {
                    if (F(P)) return P.clone();
                    var R = typeof M == "object" ? M : {};
                    return R.date = P, R.args = arguments, new E(R);
                }, A = S;
                A.l = D, A.i = F, A.w = function(P, M) {
                    return _(P, {
                        locale: M.$L,
                        utc: M.$u,
                        x: M.$x,
                        $offset: M.$offset
                    });
                };
                var E = function() {
                    function P(R) {
                        this.$L = D(R.locale, null, !0), this.parse(R), this.$x = this.$x || R.x || {}, this[w] = !0;
                    }
                    var M = P.prototype;
                    return M.parse = function(R) {
                        this.$d = function(z) {
                            var N = z.date, H = z.utc;
                            if (N === null) return new Date(NaN);
                            if (A.u(N)) return new Date;
                            if (N instanceof Date) return new Date(N);
                            if (typeof N == "string" && !/Z$/i.test(N)) {
                                var I = N.match(g);
                                if (I) {
                                    var L = I[2] - 1 || 0, G = (I[7] || "0").substring(0, 3);
                                    return H ? new Date(Date.UTC(I[1], L, I[3] || 1, I[4] || 0, I[5] || 0, I[6] || 0, G)) : new Date(I[1], L, I[3] || 1, I[4] || 0, I[5] || 0, I[6] || 0, G);
                                }
                            }
                            return new Date(N);
                        }(R), this.init();
                    }, M.init = function() {
                        var R = this.$d;
                        this.$y = R.getFullYear(), this.$M = R.getMonth(), this.$D = R.getDate(), this.$W = R.getDay(), this.$H = R.getHours(), this.$m = R.getMinutes(), this.$s = R.getSeconds(), this.$ms = R.getMilliseconds();
                    }, M.$utils = function() {
                        return A;
                    }, M.isValid = function() {
                        return this.$d.toString() !== p;
                    }, M.isSame = function(R, z) {
                        var N = _(R);
                        return this.startOf(z) <= N && N <= this.endOf(z);
                    }, M.isAfter = function(R, z) {
                        return _(R) < this.startOf(z);
                    }, M.isBefore = function(R, z) {
                        return this.endOf(z) < _(R);
                    }, M.$g = function(R, z, N) {
                        return A.u(R) ? this[z] : this.set(N, R);
                    }, M.unix = function() {
                        return Math.floor(this.valueOf() / 1e3);
                    }, M.valueOf = function() {
                        return this.$d.getTime();
                    }, M.startOf = function(R, z) {
                        var N = this, H = !!A.u(z) || z, I = A.p(R), L = function(fe, ee) {
                            var ae = A.w(N.$u ? Date.UTC(N.$y, ee, fe) : new Date(N.$y, ee, fe), N);
                            return H ? ae : ae.endOf(u);
                        }, G = function(fe, ee) {
                            return A.w(N.toDate()[fe].apply(N.toDate("s"), (H ? [
                                0,
                                0,
                                0,
                                0
                            ] : [
                                23,
                                59,
                                59,
                                999
                            ]).slice(ee)), N);
                        }, q = this.$W, X = this.$M, ue = this.$D, J = "set" + (this.$u ? "UTC" : "");
                        switch(I){
                            case m:
                                return H ? L(1, 0) : L(31, 11);
                            case d:
                                return H ? L(1, X) : L(0, X + 1);
                            case c:
                                var U = this.$locale().weekStart || 0, le = (q < U ? q + 7 : q) - U;
                                return L(H ? ue - le : ue + (6 - le), X);
                            case u:
                            case f:
                                return G(J + "Hours", 0);
                            case l:
                                return G(J + "Minutes", 1);
                            case s:
                                return G(J + "Seconds", 2);
                            case o:
                                return G(J + "Milliseconds", 3);
                            default:
                                return this.clone();
                        }
                    }, M.endOf = function(R) {
                        return this.startOf(R, !1);
                    }, M.$set = function(R, z) {
                        var N, H = A.p(R), I = "set" + (this.$u ? "UTC" : ""), L = (N = {}, N[u] = I + "Date", N[f] = I + "Date", N[d] = I + "Month", N[m] = I + "FullYear", N[l] = I + "Hours", N[s] = I + "Minutes", N[o] = I + "Seconds", N[i] = I + "Milliseconds", N)[H], G = H === u ? this.$D + (z - this.$W) : z;
                        if (H === d || H === m) {
                            var q = this.clone().set(f, 1);
                            q.$d[L](G), q.init(), this.$d = q.set(f, Math.min(this.$D, q.daysInMonth())).$d;
                        } else L && this.$d[L](G);
                        return this.init(), this;
                    }, M.set = function(R, z) {
                        return this.clone().$set(R, z);
                    }, M.get = function(R) {
                        return this[A.p(R)]();
                    }, M.add = function(R, z) {
                        var N, H = this;
                        R = Number(R);
                        var I = A.p(z), L = function(X) {
                            var ue = _(H);
                            return A.w(ue.date(ue.date() + Math.round(X * R)), H);
                        };
                        if (I === d) return this.set(d, this.$M + R);
                        if (I === m) return this.set(m, this.$y + R);
                        if (I === u) return L(1);
                        if (I === c) return L(7);
                        var G = (N = {}, N[s] = r, N[l] = n, N[o] = a, N)[I] || 1, q = this.$d.getTime() + R * G;
                        return A.w(q, this);
                    }, M.subtract = function(R, z) {
                        return this.add(-1 * R, z);
                    }, M.format = function(R) {
                        var z = this, N = this.$locale();
                        if (!this.isValid()) return N.invalidDate || p;
                        var H = R || "YYYY-MM-DDTHH:mm:ssZ", I = A.z(this), L = this.$H, G = this.$m, q = this.$M, X = N.weekdays, ue = N.months, J = N.meridiem, U = function(ee, ae, se, pe) {
                            return ee && (ee[ae] || ee(z, H)) || se[ae].slice(0, pe);
                        }, le = function(ee) {
                            return A.s(L % 12 || 12, ee, "0");
                        }, fe = J || function(ee, ae, se) {
                            var pe = ee < 12 ? "AM" : "PM";
                            return se ? pe.toLowerCase() : pe;
                        };
                        return H.replace(v, function(ee, ae) {
                            return ae || function(se) {
                                switch(se){
                                    case "YY":
                                        return String(z.$y).slice(-2);
                                    case "YYYY":
                                        return A.s(z.$y, 4, "0");
                                    case "M":
                                        return q + 1;
                                    case "MM":
                                        return A.s(q + 1, 2, "0");
                                    case "MMM":
                                        return U(N.monthsShort, q, ue, 3);
                                    case "MMMM":
                                        return U(ue, q);
                                    case "D":
                                        return z.$D;
                                    case "DD":
                                        return A.s(z.$D, 2, "0");
                                    case "d":
                                        return String(z.$W);
                                    case "dd":
                                        return U(N.weekdaysMin, z.$W, X, 2);
                                    case "ddd":
                                        return U(N.weekdaysShort, z.$W, X, 3);
                                    case "dddd":
                                        return X[z.$W];
                                    case "H":
                                        return String(L);
                                    case "HH":
                                        return A.s(L, 2, "0");
                                    case "h":
                                        return le(1);
                                    case "hh":
                                        return le(2);
                                    case "a":
                                        return fe(L, G, !0);
                                    case "A":
                                        return fe(L, G, !1);
                                    case "m":
                                        return String(G);
                                    case "mm":
                                        return A.s(G, 2, "0");
                                    case "s":
                                        return String(z.$s);
                                    case "ss":
                                        return A.s(z.$s, 2, "0");
                                    case "SSS":
                                        return A.s(z.$ms, 3, "0");
                                    case "Z":
                                        return I;
                                }
                                return null;
                            }(ee) || I.replace(":", "");
                        });
                    }, M.utcOffset = function() {
                        return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
                    }, M.diff = function(R, z, N) {
                        var H, I = this, L = A.p(z), G = _(R), q = (G.utcOffset() - this.utcOffset()) * r, X = this - G, ue = function() {
                            return A.m(I, G);
                        };
                        switch(L){
                            case m:
                                H = ue() / 12;
                                break;
                            case d:
                                H = ue();
                                break;
                            case h:
                                H = ue() / 3;
                                break;
                            case c:
                                H = (X - q) / 6048e5;
                                break;
                            case u:
                                H = (X - q) / 864e5;
                                break;
                            case l:
                                H = X / n;
                                break;
                            case s:
                                H = X / r;
                                break;
                            case o:
                                H = X / a;
                                break;
                            default:
                                H = X;
                        }
                        return N ? H : A.a(H);
                    }, M.daysInMonth = function() {
                        return this.endOf(d).$D;
                    }, M.$locale = function() {
                        return C[this.$L];
                    }, M.locale = function(R, z) {
                        if (!R) return this.$L;
                        var N = this.clone(), H = D(R, z, !0);
                        return H && (N.$L = H), N;
                    }, M.clone = function() {
                        return A.w(this.$d, this);
                    }, M.toDate = function() {
                        return new Date(this.valueOf());
                    }, M.toJSON = function() {
                        return this.isValid() ? this.toISOString() : null;
                    }, M.toISOString = function() {
                        return this.$d.toISOString();
                    }, M.toString = function() {
                        return this.$d.toUTCString();
                    }, P;
                }(), B = E.prototype;
                return _.prototype = B, [
                    [
                        "$ms",
                        i
                    ],
                    [
                        "$s",
                        o
                    ],
                    [
                        "$m",
                        s
                    ],
                    [
                        "$H",
                        l
                    ],
                    [
                        "$W",
                        u
                    ],
                    [
                        "$M",
                        d
                    ],
                    [
                        "$y",
                        m
                    ],
                    [
                        "$D",
                        f
                    ]
                ].forEach(function(P) {
                    B[P[1]] = function(M) {
                        return this.$g(M, P[0], P[1]);
                    };
                }), _.extend = function(P, M) {
                    return P.$i || (P(M, E, _), P.$i = !0), _;
                }, _.locale = D, _.isDayjs = F, _.unix = function(P) {
                    return _(1e3 * P);
                }, _.en = C[x], _.Ls = C, _.p = {}, _;
            });
        }(ws)), ws.exports;
    }
    var bD = yD();
    jn = Ti(bD);
    var Ss = {
        exports: {}
    }, FD = Ss.exports, wv;
    function kD() {
        return wv || (wv = 1, function(t, e) {
            (function(a, r) {
                t.exports = r();
            })(FD, function() {
                var a, r, n = 1e3, i = 6e4, o = 36e5, s = 864e5, l = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, u = 31536e6, c = 2628e6, d = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/, h = {
                    years: u,
                    months: c,
                    days: s,
                    hours: o,
                    minutes: i,
                    seconds: n,
                    milliseconds: 1,
                    weeks: 6048e5
                }, m = function(C) {
                    return C instanceof S;
                }, f = function(C, w, F) {
                    return new S(C, F, w.$l);
                }, p = function(C) {
                    return r.p(C) + "s";
                }, g = function(C) {
                    return C < 0;
                }, v = function(C) {
                    return g(C) ? Math.ceil(C) : Math.floor(C);
                }, b = function(C) {
                    return Math.abs(C);
                }, k = function(C, w) {
                    return C ? g(C) ? {
                        negative: !0,
                        format: "" + b(C) + w
                    } : {
                        negative: !1,
                        format: "" + C + w
                    } : {
                        negative: !1,
                        format: ""
                    };
                }, S = function() {
                    function C(F, D, _) {
                        var A = this;
                        if (this.$d = {}, this.$l = _, F === void 0 && (this.$ms = 0, this.parseFromMilliseconds()), D) return f(F * h[p(D)], this);
                        if (typeof F == "number") return this.$ms = F, this.parseFromMilliseconds(), this;
                        if (typeof F == "object") return Object.keys(F).forEach(function(P) {
                            A.$d[p(P)] = F[P];
                        }), this.calMilliseconds(), this;
                        if (typeof F == "string") {
                            var E = F.match(d);
                            if (E) {
                                var B = E.slice(2).map(function(P) {
                                    return P != null ? Number(P) : 0;
                                });
                                return this.$d.years = B[0], this.$d.months = B[1], this.$d.weeks = B[2], this.$d.days = B[3], this.$d.hours = B[4], this.$d.minutes = B[5], this.$d.seconds = B[6], this.calMilliseconds(), this;
                            }
                        }
                        return this;
                    }
                    var w = C.prototype;
                    return w.calMilliseconds = function() {
                        var F = this;
                        this.$ms = Object.keys(this.$d).reduce(function(D, _) {
                            return D + (F.$d[_] || 0) * h[_];
                        }, 0);
                    }, w.parseFromMilliseconds = function() {
                        var F = this.$ms;
                        this.$d.years = v(F / u), F %= u, this.$d.months = v(F / c), F %= c, this.$d.days = v(F / s), F %= s, this.$d.hours = v(F / o), F %= o, this.$d.minutes = v(F / i), F %= i, this.$d.seconds = v(F / n), F %= n, this.$d.milliseconds = F;
                    }, w.toISOString = function() {
                        var F = k(this.$d.years, "Y"), D = k(this.$d.months, "M"), _ = +this.$d.days || 0;
                        this.$d.weeks && (_ += 7 * this.$d.weeks);
                        var A = k(_, "D"), E = k(this.$d.hours, "H"), B = k(this.$d.minutes, "M"), P = this.$d.seconds || 0;
                        this.$d.milliseconds && (P += this.$d.milliseconds / 1e3, P = Math.round(1e3 * P) / 1e3);
                        var M = k(P, "S"), R = F.negative || D.negative || A.negative || E.negative || B.negative || M.negative, z = E.format || B.format || M.format ? "T" : "", N = (R ? "-" : "") + "P" + F.format + D.format + A.format + z + E.format + B.format + M.format;
                        return N === "P" || N === "-P" ? "P0D" : N;
                    }, w.toJSON = function() {
                        return this.toISOString();
                    }, w.format = function(F) {
                        var D = F || "YYYY-MM-DDTHH:mm:ss", _ = {
                            Y: this.$d.years,
                            YY: r.s(this.$d.years, 2, "0"),
                            YYYY: r.s(this.$d.years, 4, "0"),
                            M: this.$d.months,
                            MM: r.s(this.$d.months, 2, "0"),
                            D: this.$d.days,
                            DD: r.s(this.$d.days, 2, "0"),
                            H: this.$d.hours,
                            HH: r.s(this.$d.hours, 2, "0"),
                            m: this.$d.minutes,
                            mm: r.s(this.$d.minutes, 2, "0"),
                            s: this.$d.seconds,
                            ss: r.s(this.$d.seconds, 2, "0"),
                            SSS: r.s(this.$d.milliseconds, 3, "0")
                        };
                        return D.replace(l, function(A, E) {
                            return E || String(_[A]);
                        });
                    }, w.as = function(F) {
                        return this.$ms / h[p(F)];
                    }, w.get = function(F) {
                        var D = this.$ms, _ = p(F);
                        return _ === "milliseconds" ? D %= 1e3 : D = _ === "weeks" ? v(D / h[_]) : this.$d[_], D || 0;
                    }, w.add = function(F, D, _) {
                        var A;
                        return A = D ? F * h[p(D)] : m(F) ? F.$ms : f(F, this).$ms, f(this.$ms + A * (_ ? -1 : 1), this);
                    }, w.subtract = function(F, D) {
                        return this.add(F, D, !0);
                    }, w.locale = function(F) {
                        var D = this.clone();
                        return D.$l = F, D;
                    }, w.clone = function() {
                        return f(this.$ms, this);
                    }, w.humanize = function(F) {
                        return a().add(this.$ms, "ms").locale(this.$l).fromNow(!F);
                    }, w.valueOf = function() {
                        return this.asMilliseconds();
                    }, w.milliseconds = function() {
                        return this.get("milliseconds");
                    }, w.asMilliseconds = function() {
                        return this.as("milliseconds");
                    }, w.seconds = function() {
                        return this.get("seconds");
                    }, w.asSeconds = function() {
                        return this.as("seconds");
                    }, w.minutes = function() {
                        return this.get("minutes");
                    }, w.asMinutes = function() {
                        return this.as("minutes");
                    }, w.hours = function() {
                        return this.get("hours");
                    }, w.asHours = function() {
                        return this.as("hours");
                    }, w.days = function() {
                        return this.get("days");
                    }, w.asDays = function() {
                        return this.as("days");
                    }, w.weeks = function() {
                        return this.get("weeks");
                    }, w.asWeeks = function() {
                        return this.as("weeks");
                    }, w.months = function() {
                        return this.get("months");
                    }, w.asMonths = function() {
                        return this.as("months");
                    }, w.years = function() {
                        return this.get("years");
                    }, w.asYears = function() {
                        return this.as("years");
                    }, C;
                }(), x = function(C, w, F) {
                    return C.add(w.years() * F, "y").add(w.months() * F, "M").add(w.days() * F, "d").add(w.hours() * F, "h").add(w.minutes() * F, "m").add(w.seconds() * F, "s").add(w.milliseconds() * F, "ms");
                };
                return function(C, w, F) {
                    a = F, r = F().$utils(), F.duration = function(A, E) {
                        var B = F.locale();
                        return f(A, {
                            $l: B
                        }, E);
                    }, F.isDuration = m;
                    var D = w.prototype.add, _ = w.prototype.subtract;
                    w.prototype.add = function(A, E) {
                        return m(A) ? x(this, A, 1) : D.bind(this)(A, E);
                    }, w.prototype.subtract = function(A, E) {
                        return m(A) ? x(this, A, -1) : _.bind(this)(A, E);
                    };
                };
            });
        }(Ss)), Ss.exports;
    }
    var xD = kD();
    const wD = Ti(xD);
    var Cs = {
        exports: {}
    }, SD = Cs.exports, Sv;
    function CD() {
        return Sv || (Sv = 1, function(t, e) {
            (function(a, r) {
                t.exports = r();
            })(SD, function() {
                return function(a, r, n) {
                    a = a || {};
                    var i = r.prototype, o = {
                        future: "in %s",
                        past: "%s ago",
                        s: "a few seconds",
                        m: "a minute",
                        mm: "%d minutes",
                        h: "an hour",
                        hh: "%d hours",
                        d: "a day",
                        dd: "%d days",
                        M: "a month",
                        MM: "%d months",
                        y: "a year",
                        yy: "%d years"
                    };
                    function s(u, c, d, h) {
                        return i.fromToBase(u, c, d, h);
                    }
                    n.en.relativeTime = o, i.fromToBase = function(u, c, d, h, m) {
                        for(var f, p, g, v = d.$locale().relativeTime || o, b = a.thresholds || [
                            {
                                l: "s",
                                r: 44,
                                d: "second"
                            },
                            {
                                l: "m",
                                r: 89
                            },
                            {
                                l: "mm",
                                r: 44,
                                d: "minute"
                            },
                            {
                                l: "h",
                                r: 89
                            },
                            {
                                l: "hh",
                                r: 21,
                                d: "hour"
                            },
                            {
                                l: "d",
                                r: 35
                            },
                            {
                                l: "dd",
                                r: 25,
                                d: "day"
                            },
                            {
                                l: "M",
                                r: 45
                            },
                            {
                                l: "MM",
                                r: 10,
                                d: "month"
                            },
                            {
                                l: "y",
                                r: 17
                            },
                            {
                                l: "yy",
                                d: "year"
                            }
                        ], k = b.length, S = 0; S < k; S += 1){
                            var x = b[S];
                            x.d && (f = h ? n(u).diff(d, x.d, !0) : d.diff(u, x.d, !0));
                            var C = (a.rounding || Math.round)(Math.abs(f));
                            if (g = f > 0, C <= x.r || !x.r) {
                                C <= 1 && S > 0 && (x = b[S - 1]);
                                var w = v[x.l];
                                m && (C = m("" + C)), p = typeof w == "string" ? w.replace("%d", C) : w(C, c, x.l, g);
                                break;
                            }
                        }
                        if (c) return p;
                        var F = g ? v.future : v.past;
                        return typeof F == "function" ? F(p) : F.replace("%s", p);
                    }, i.to = function(u, c) {
                        return s(u, c, this, !0);
                    }, i.from = function(u, c) {
                        return s(u, c, this);
                    };
                    var l = function(u) {
                        return u.$u ? n.utc() : n();
                    };
                    i.toNow = function(u) {
                        return this.to(l(this), u);
                    }, i.fromNow = function(u) {
                        return this.from(l(this), u);
                    };
                };
            });
        }(Cs)), Cs.exports;
    }
    var AD = CD();
    const DD = Ti(AD);
    var As = {
        exports: {}
    }, TD = As.exports, Cv;
    function ED() {
        return Cv || (Cv = 1, function(t, e) {
            (function(a, r) {
                t.exports = r();
            })(TD, function() {
                return function(a, r, n) {
                    n.updateLocale = function(i, o) {
                        var s = n.Ls[i];
                        if (s) return (o ? Object.keys(o) : []).forEach(function(l) {
                            s[l] = o[l];
                        }), s;
                    };
                };
            });
        }(As)), As.exports;
    }
    var _D = ED();
    const PD = Ti(_D), BD = {
        thresholds: [
            {
                l: "s",
                r: 1
            },
            {
                l: "ss",
                r: 59,
                d: "second"
            },
            {
                l: "m",
                r: 1
            },
            {
                l: "mm",
                r: 59,
                d: "minute"
            },
            {
                l: "h",
                r: 1
            },
            {
                l: "hh",
                r: 23,
                d: "hour"
            },
            {
                l: "d",
                r: 1
            },
            {
                l: "dd",
                r: 29,
                d: "day"
            },
            {
                l: "M",
                r: 1
            },
            {
                l: "MM",
                r: 11,
                d: "month"
            },
            {
                l: "y",
                r: 1
            },
            {
                l: "yy",
                d: "year"
            }
        ],
        rounding: Math.floor
    };
    jn.extend(wD);
    jn.extend(DD, BD);
    jn.extend(PD);
    jn.updateLocale("en", {
        relativeTime: {
            future: "in %s",
            past: "%s ago",
            s: "a few seconds",
            ss: "%d seconds",
            m: "a minute",
            mm: "%d minutes",
            h: "an hour",
            hh: "%d hours",
            d: "a day",
            dd: "%d days",
            M: "a month",
            MM: "%d months",
            y: "a year",
            yy: "%d years"
        }
    });
    const Ws = 864e4, MD = "∞";
    RD = function(t, e = !1) {
        if (t >= Ws || e && t === 0) return MD;
        const r = 60, n = r * 60, i = n * 24, s = [
            i * 365,
            i,
            n,
            r,
            1
        ], l = "ydhms";
        let u = 0, c = 0;
        const d = [];
        for(; c < 2 && u !== s.length;){
            const h = s[u];
            if (t < h) {
                u++;
                continue;
            }
            const m = Math.floor(t / h);
            d.push(m + l[u]), t %= h, u++, c++;
        }
        return d.length ? d.join(" ") : "0" + l[s.length - 1];
    };
    function LD(t, e) {
        return jn(t).format(e);
    }
    iW = function(t, e) {
        return LD(t * 1e3, e);
    };
    ID = function(t, e, a) {
        return jn.duration(t, e).format(a);
    };
    function ms(t, e) {
        let a = 0;
        for(; a < t.length;)t[a] === e ? t.splice(a, 1) : ++a;
        return t;
    }
    fd = function(t) {
        if (!t) return "";
        const e = t.replace(/\\/g, "/");
        return e.indexOf("/") === -1 ? "" : e.split("/").reverse()[0];
    };
    zD = function(t) {
        if (!t) return [
            "",
            ""
        ];
        const e = t.replace(/\\/g, "/");
        if (!e.includes(".", 1)) return [
            e,
            ""
        ];
        const a = e.split("."), r = a.pop();
        return [
            a.join("."),
            r.toLocaleLowerCase()
        ];
    };
    ND = function(t) {
        return t.startsWith(".") && (t = t.slice(1)), jA[t.toLocaleLowerCase()] || Bm.UNKNOWN;
    };
    OD = function(t) {
        return UA[t || Bm.UNKNOWN];
    };
    oW = function(t) {
        return OD(ND(zD(t.toLocaleLowerCase())[1]));
    };
    nF = function(t, e) {
        return e && (t *= 8), Mm(t, !1);
    };
    iF = function(t, e) {
        return e && (t *= 8), `${Rm(t, !1).slice(0, -1)}${e ? "bps" : "B/s"}`;
    };
    to = function(t, e) {
        return `${nF(t, e)} ${iF(t, e)}`;
    };
    let HD;
    sW = window.navigator.userAgent.toLowerCase().includes("windows");
    HD = window.navigator.userAgent.toLowerCase().includes("mac");
    lW = function(t) {
        return HD ? t.metaKey : t.ctrlKey;
    };
    uW = function(t) {
        window.open(t, "_blank", "noreferrer");
    };
    cW = function(t, e) {
        const a = window.URL.createObjectURL(e), r = Object.assign(document.createElement("a"), {
            href: a,
            download: t,
            style: {
                opacity: "0"
            }
        });
        document.body.appendChild(r), r.click(), r.remove();
    };
    function Av(t) {
        const e = t.match(/:\/\/(www[0-9]?\.)?(.[^/:]+)/i);
        return e != null && e.length > 2 && typeof e[2] == "string" && e[2].length > 0 ? e[2] : "";
    }
    function VD(t) {
        const e = t.match(/:\/\/([^\/]+\.)?([^\/.]+)\.[^\/.:]+/i);
        return e != null && e.length > 2 && typeof e[2] == "string" && e[2].length > 0 ? e[2] : "";
    }
    const oF = ()=>new RegExp(/(?:(?<protocol>https?|udp):\/\/)?(?<host>[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}|\d{1,3}(?:\.\d{1,3}){3}|\[[a-fA-F0-9:]+])(?::(?<port>\d+))?(?<path>\/\S*)?/gi);
    dW = function(t) {
        const e = t.match(oF());
        let a = [];
        return e ? e.forEach(function(r) {
            let n;
            a.length === 0 ? n = t.toString().split(r) : (n = a[a.length - 1].toString().split(r), a.pop()), n.splice(1, 0, r), a = [
                ...a,
                ...n
            ];
        }) : a[0] = t, a = a.filter((r)=>r !== ""), a;
    };
    hW = function(t) {
        return oF().test(t);
    };
    mW = function(t, e = [
        "http:",
        "https:",
        "udp:"
    ]) {
        try {
            const a = new URL(t);
            return e.includes(a.protocol);
        } catch  {
            return !1;
        }
    };
    fW = function(t) {
        t = t.toUpperCase();
        const a = [
            ...t
        ].map((i)=>127397 + i.charCodeAt(0)), r = String.fromCodePoint(...a), n = `https://cdn.jsdelivr.net/npm/twemoji/2/svg/${a[0].toString(16)}-${a[1].toString(16)}.svg`;
        return {
            char: r,
            url: n
        };
    };
    var WD = [
        {
            name: "Aegean Airlines",
            iataCode: "A3"
        },
        {
            name: "Aeroflot",
            iataCode: "SU"
        },
        {
            name: "Aerolineas Argentinas",
            iataCode: "AR"
        },
        {
            name: "Aeromexico",
            iataCode: "AM"
        },
        {
            name: "Air Algerie",
            iataCode: "AH"
        },
        {
            name: "Air Arabia",
            iataCode: "G9"
        },
        {
            name: "Air Canada",
            iataCode: "AC"
        },
        {
            name: "Air China",
            iataCode: "CA"
        },
        {
            name: "Air Europa",
            iataCode: "UX"
        },
        {
            name: "Air France",
            iataCode: "AF"
        },
        {
            name: "Air India",
            iataCode: "AI"
        },
        {
            name: "Air Mauritius",
            iataCode: "MK"
        },
        {
            name: "Air New Zealand",
            iataCode: "NZ"
        },
        {
            name: "Air Niugini",
            iataCode: "PX"
        },
        {
            name: "Air Tahiti",
            iataCode: "VT"
        },
        {
            name: "Air Tahiti Nui",
            iataCode: "TN"
        },
        {
            name: "Air Transat",
            iataCode: "TS"
        },
        {
            name: "AirAsia X",
            iataCode: "D7"
        },
        {
            name: "AirAsia",
            iataCode: "AK"
        },
        {
            name: "Aircalin",
            iataCode: "SB"
        },
        {
            name: "Alaska Airlines",
            iataCode: "AS"
        },
        {
            name: "Alitalia",
            iataCode: "AZ"
        },
        {
            name: "All Nippon Airways",
            iataCode: "NH"
        },
        {
            name: "Allegiant Air",
            iataCode: "G4"
        },
        {
            name: "American Airlines",
            iataCode: "AA"
        },
        {
            name: "Asiana Airlines",
            iataCode: "OZ"
        },
        {
            name: "Avianca",
            iataCode: "AV"
        },
        {
            name: "Azul Linhas Aereas Brasileiras",
            iataCode: "AD"
        },
        {
            name: "Azur Air",
            iataCode: "ZF"
        },
        {
            name: "Beijing Capital Airlines",
            iataCode: "JD"
        },
        {
            name: "Boliviana de Aviacion",
            iataCode: "OB"
        },
        {
            name: "British Airways",
            iataCode: "BA"
        },
        {
            name: "Cathay Pacific",
            iataCode: "CX"
        },
        {
            name: "Cebu Pacific Air",
            iataCode: "5J"
        },
        {
            name: "China Airlines",
            iataCode: "CI"
        },
        {
            name: "China Eastern Airlines",
            iataCode: "MU"
        },
        {
            name: "China Southern Airlines",
            iataCode: "CZ"
        },
        {
            name: "Condor",
            iataCode: "DE"
        },
        {
            name: "Copa Airlines",
            iataCode: "CM"
        },
        {
            name: "Delta Air Lines",
            iataCode: "DL"
        },
        {
            name: "Easyfly",
            iataCode: "VE"
        },
        {
            name: "EasyJet",
            iataCode: "U2"
        },
        {
            name: "EcoJet",
            iataCode: "8J"
        },
        {
            name: "Egyptair",
            iataCode: "MS"
        },
        {
            name: "El Al",
            iataCode: "LY"
        },
        {
            name: "Emirates Airlines",
            iataCode: "EK"
        },
        {
            name: "Ethiopian Airlines",
            iataCode: "ET"
        },
        {
            name: "Etihad Airways",
            iataCode: "EY"
        },
        {
            name: "EVA Air",
            iataCode: "BR"
        },
        {
            name: "Fiji Airways",
            iataCode: "FJ"
        },
        {
            name: "Finnair",
            iataCode: "AY"
        },
        {
            name: "Flybondi",
            iataCode: "FO"
        },
        {
            name: "Flydubai",
            iataCode: "FZ"
        },
        {
            name: "FlySafair",
            iataCode: "FA"
        },
        {
            name: "Frontier Airlines",
            iataCode: "F9"
        },
        {
            name: "Garuda Indonesia",
            iataCode: "GA"
        },
        {
            name: "Go First",
            iataCode: "G8"
        },
        {
            name: "Gol Linhas Aereas Inteligentes",
            iataCode: "G3"
        },
        {
            name: "Hainan Airlines",
            iataCode: "HU"
        },
        {
            name: "Hawaiian Airlines",
            iataCode: "HA"
        },
        {
            name: "IndiGo Airlines",
            iataCode: "6E"
        },
        {
            name: "Japan Airlines",
            iataCode: "JL"
        },
        {
            name: "Jeju Air",
            iataCode: "7C"
        },
        {
            name: "Jet2",
            iataCode: "LS"
        },
        {
            name: "JetBlue Airways",
            iataCode: "B6"
        },
        {
            name: "JetSMART",
            iataCode: "JA"
        },
        {
            name: "Juneyao Airlines",
            iataCode: "HO"
        },
        {
            name: "Kenya Airways",
            iataCode: "KQ"
        },
        {
            name: "KLM Royal Dutch Airlines",
            iataCode: "KL"
        },
        {
            name: "Korean Air",
            iataCode: "KE"
        },
        {
            name: "Kulula.com",
            iataCode: "MN"
        },
        {
            name: "LATAM Airlines",
            iataCode: "LA"
        },
        {
            name: "Lion Air",
            iataCode: "JT"
        },
        {
            name: "LOT Polish Airlines",
            iataCode: "LO"
        },
        {
            name: "Lufthansa",
            iataCode: "LH"
        },
        {
            name: "Libyan Airlines",
            iataCode: "LN"
        },
        {
            name: "Linea Aerea Amaszonas",
            iataCode: "Z8"
        },
        {
            name: "Malaysia Airlines",
            iataCode: "MH"
        },
        {
            name: "Nordwind Airlines",
            iataCode: "N4"
        },
        {
            name: "Norwegian Air Shuttle",
            iataCode: "DY"
        },
        {
            name: "Oman Air",
            iataCode: "WY"
        },
        {
            name: "Pakistan International Airlines",
            iataCode: "PK"
        },
        {
            name: "Pegasus Airlines",
            iataCode: "PC"
        },
        {
            name: "Philippine Airlines",
            iataCode: "PR"
        },
        {
            name: "Qantas Group",
            iataCode: "QF"
        },
        {
            name: "Qatar Airways",
            iataCode: "QR"
        },
        {
            name: "Republic Airways",
            iataCode: "YX"
        },
        {
            name: "Royal Air Maroc",
            iataCode: "AT"
        },
        {
            name: "Ryanair",
            iataCode: "FR"
        },
        {
            name: "S7 Airlines",
            iataCode: "S7"
        },
        {
            name: "SAS",
            iataCode: "SK"
        },
        {
            name: "Satena",
            iataCode: "9R"
        },
        {
            name: "Saudia",
            iataCode: "SV"
        },
        {
            name: "Shandong Airlines",
            iataCode: "SC"
        },
        {
            name: "Sichuan Airlines",
            iataCode: "3U"
        },
        {
            name: "Singapore Airlines",
            iataCode: "SQ"
        },
        {
            name: "Sky Airline",
            iataCode: "H2"
        },
        {
            name: "SkyWest Airlines",
            iataCode: "OO"
        },
        {
            name: "South African Airways",
            iataCode: "SA"
        },
        {
            name: "Southwest Airlines",
            iataCode: "WN"
        },
        {
            name: "SpiceJet",
            iataCode: "SG"
        },
        {
            name: "Spirit Airlines",
            iataCode: "NK"
        },
        {
            name: "Spring Airlines",
            iataCode: "9S"
        },
        {
            name: "SriLankan Airlines",
            iataCode: "UL"
        },
        {
            name: "Star Peru",
            iataCode: "2I"
        },
        {
            name: "Sun Country Airlines",
            iataCode: "SY"
        },
        {
            name: "SunExpress",
            iataCode: "XQ"
        },
        {
            name: "TAP Air Portugal",
            iataCode: "TP"
        },
        {
            name: "Thai AirAsia",
            iataCode: "FD"
        },
        {
            name: "Thai Airways",
            iataCode: "TG"
        },
        {
            name: "TUI Airways",
            iataCode: "BY"
        },
        {
            name: "Tunisair",
            iataCode: "TU"
        },
        {
            name: "Turkish Airlines",
            iataCode: "TK"
        },
        {
            name: "Ukraine International",
            iataCode: "PS"
        },
        {
            name: "United Airlines",
            iataCode: "UA"
        },
        {
            name: "Ural Airlines",
            iataCode: "U6"
        },
        {
            name: "VietJet Air",
            iataCode: "VJ"
        },
        {
            name: "Vietnam Airlines",
            iataCode: "VN"
        },
        {
            name: "Virgin Atlantic Airways",
            iataCode: "VS"
        },
        {
            name: "Virgin Australia",
            iataCode: "VA"
        },
        {
            name: "VivaAerobus",
            iataCode: "VB"
        },
        {
            name: "VOEPASS Linhas Aereas",
            iataCode: "2Z"
        },
        {
            name: "Volaris",
            iataCode: "Y4"
        },
        {
            name: "WestJet",
            iataCode: "WS"
        },
        {
            name: "Wingo",
            iataCode: "P5"
        },
        {
            name: "Wizz Air",
            iataCode: "W6"
        }
    ], GD = [
        {
            name: "Aerospatiale/BAC Concorde",
            iataTypeCode: "SSC"
        },
        {
            name: "Airbus A300",
            iataTypeCode: "AB3"
        },
        {
            name: "Airbus A310",
            iataTypeCode: "310"
        },
        {
            name: "Airbus A310-200",
            iataTypeCode: "312"
        },
        {
            name: "Airbus A310-300",
            iataTypeCode: "313"
        },
        {
            name: "Airbus A318",
            iataTypeCode: "318"
        },
        {
            name: "Airbus A319",
            iataTypeCode: "319"
        },
        {
            name: "Airbus A319neo",
            iataTypeCode: "31N"
        },
        {
            name: "Airbus A320",
            iataTypeCode: "320"
        },
        {
            name: "Airbus A320neo",
            iataTypeCode: "32N"
        },
        {
            name: "Airbus A321",
            iataTypeCode: "321"
        },
        {
            name: "Airbus A321neo",
            iataTypeCode: "32Q"
        },
        {
            name: "Airbus A330",
            iataTypeCode: "330"
        },
        {
            name: "Airbus A330-200",
            iataTypeCode: "332"
        },
        {
            name: "Airbus A330-300",
            iataTypeCode: "333"
        },
        {
            name: "Airbus A330-800neo",
            iataTypeCode: "338"
        },
        {
            name: "Airbus A330-900neo",
            iataTypeCode: "339"
        },
        {
            name: "Airbus A340",
            iataTypeCode: "340"
        },
        {
            name: "Airbus A340-200",
            iataTypeCode: "342"
        },
        {
            name: "Airbus A340-300",
            iataTypeCode: "343"
        },
        {
            name: "Airbus A340-500",
            iataTypeCode: "345"
        },
        {
            name: "Airbus A340-600",
            iataTypeCode: "346"
        },
        {
            name: "Airbus A350",
            iataTypeCode: "350"
        },
        {
            name: "Airbus A350-900",
            iataTypeCode: "359"
        },
        {
            name: "Airbus A350-1000",
            iataTypeCode: "351"
        },
        {
            name: "Airbus A380",
            iataTypeCode: "380"
        },
        {
            name: "Airbus A380-800",
            iataTypeCode: "388"
        },
        {
            name: "Antonov An-12",
            iataTypeCode: "ANF"
        },
        {
            name: "Antonov An-24",
            iataTypeCode: "AN4"
        },
        {
            name: "Antonov An-26",
            iataTypeCode: "A26"
        },
        {
            name: "Antonov An-28",
            iataTypeCode: "A28"
        },
        {
            name: "Antonov An-30",
            iataTypeCode: "A30"
        },
        {
            name: "Antonov An-32",
            iataTypeCode: "A32"
        },
        {
            name: "Antonov An-72",
            iataTypeCode: "AN7"
        },
        {
            name: "Antonov An-124 Ruslan",
            iataTypeCode: "A4F"
        },
        {
            name: "Antonov An-140",
            iataTypeCode: "A40"
        },
        {
            name: "Antonov An-148",
            iataTypeCode: "A81"
        },
        {
            name: "Antonov An-158",
            iataTypeCode: "A58"
        },
        {
            name: "Antonov An-225 Mriya",
            iataTypeCode: "A5F"
        },
        {
            name: "Boeing 707",
            iataTypeCode: "703"
        },
        {
            name: "Boeing 717",
            iataTypeCode: "717"
        },
        {
            name: "Boeing 720B",
            iataTypeCode: "B72"
        },
        {
            name: "Boeing 727",
            iataTypeCode: "727"
        },
        {
            name: "Boeing 727-100",
            iataTypeCode: "721"
        },
        {
            name: "Boeing 727-200",
            iataTypeCode: "722"
        },
        {
            name: "Boeing 737 MAX 7",
            iataTypeCode: "7M7"
        },
        {
            name: "Boeing 737 MAX 8",
            iataTypeCode: "7M8"
        },
        {
            name: "Boeing 737 MAX 9",
            iataTypeCode: "7M9"
        },
        {
            name: "Boeing 737 MAX 10",
            iataTypeCode: "7MJ"
        },
        {
            name: "Boeing 737",
            iataTypeCode: "737"
        },
        {
            name: "Boeing 737-100",
            iataTypeCode: "731"
        },
        {
            name: "Boeing 737-200",
            iataTypeCode: "732"
        },
        {
            name: "Boeing 737-300",
            iataTypeCode: "733"
        },
        {
            name: "Boeing 737-400",
            iataTypeCode: "734"
        },
        {
            name: "Boeing 737-500",
            iataTypeCode: "735"
        },
        {
            name: "Boeing 737-600",
            iataTypeCode: "736"
        },
        {
            name: "Boeing 737-700",
            iataTypeCode: "73G"
        },
        {
            name: "Boeing 737-800",
            iataTypeCode: "738"
        },
        {
            name: "Boeing 737-900",
            iataTypeCode: "739"
        },
        {
            name: "Boeing 747",
            iataTypeCode: "747"
        },
        {
            name: "Boeing 747-100",
            iataTypeCode: "741"
        },
        {
            name: "Boeing 747-200",
            iataTypeCode: "742"
        },
        {
            name: "Boeing 747-300",
            iataTypeCode: "743"
        },
        {
            name: "Boeing 747-400",
            iataTypeCode: "744"
        },
        {
            name: "Boeing 747-400D",
            iataTypeCode: "74J"
        },
        {
            name: "Boeing 747-8",
            iataTypeCode: "748"
        },
        {
            name: "Boeing 747SP",
            iataTypeCode: "74L"
        },
        {
            name: "Boeing 747SR",
            iataTypeCode: "74R"
        },
        {
            name: "Boeing 757",
            iataTypeCode: "757"
        },
        {
            name: "Boeing 757-200",
            iataTypeCode: "752"
        },
        {
            name: "Boeing 757-300",
            iataTypeCode: "753"
        },
        {
            name: "Boeing 767",
            iataTypeCode: "767"
        },
        {
            name: "Boeing 767-200",
            iataTypeCode: "762"
        },
        {
            name: "Boeing 767-300",
            iataTypeCode: "763"
        },
        {
            name: "Boeing 767-400",
            iataTypeCode: "764"
        },
        {
            name: "Boeing 777",
            iataTypeCode: "777"
        },
        {
            name: "Boeing 777-200",
            iataTypeCode: "772"
        },
        {
            name: "Boeing 777-200LR",
            iataTypeCode: "77L"
        },
        {
            name: "Boeing 777-300",
            iataTypeCode: "773"
        },
        {
            name: "Boeing 777-300ER",
            iataTypeCode: "77W"
        },
        {
            name: "Boeing 787",
            iataTypeCode: "787"
        },
        {
            name: "Boeing 787-8",
            iataTypeCode: "788"
        },
        {
            name: "Boeing 787-9",
            iataTypeCode: "789"
        },
        {
            name: "Boeing 787-10",
            iataTypeCode: "781"
        },
        {
            name: "Canadair Challenger",
            iataTypeCode: "CCJ"
        },
        {
            name: "Canadair CL-44",
            iataTypeCode: "CL4"
        },
        {
            name: "Canadair Regional Jet 100",
            iataTypeCode: "CR1"
        },
        {
            name: "Canadair Regional Jet 200",
            iataTypeCode: "CR2"
        },
        {
            name: "Canadair Regional Jet 700",
            iataTypeCode: "CR7"
        },
        {
            name: "Canadair Regional Jet 705",
            iataTypeCode: "CRA"
        },
        {
            name: "Canadair Regional Jet 900",
            iataTypeCode: "CR9"
        },
        {
            name: "Canadair Regional Jet 1000",
            iataTypeCode: "CRK"
        },
        {
            name: "De Havilland Canada DHC-2 Beaver",
            iataTypeCode: "DHP"
        },
        {
            name: "De Havilland Canada DHC-2 Turbo-Beaver",
            iataTypeCode: "DHR"
        },
        {
            name: "De Havilland Canada DHC-3 Otter",
            iataTypeCode: "DHL"
        },
        {
            name: "De Havilland Canada DHC-4 Caribou",
            iataTypeCode: "DHC"
        },
        {
            name: "De Havilland Canada DHC-6 Twin Otter",
            iataTypeCode: "DHT"
        },
        {
            name: "De Havilland Canada DHC-7 Dash 7",
            iataTypeCode: "DH7"
        },
        {
            name: "De Havilland Canada DHC-8-100 Dash 8 / 8Q",
            iataTypeCode: "DH1"
        },
        {
            name: "De Havilland Canada DHC-8-200 Dash 8 / 8Q",
            iataTypeCode: "DH2"
        },
        {
            name: "De Havilland Canada DHC-8-300 Dash 8 / 8Q",
            iataTypeCode: "DH3"
        },
        {
            name: "De Havilland Canada DHC-8-400 Dash 8Q",
            iataTypeCode: "DH4"
        },
        {
            name: "De Havilland DH.104 Dove",
            iataTypeCode: "DHD"
        },
        {
            name: "De Havilland DH.114 Heron",
            iataTypeCode: "DHH"
        },
        {
            name: "Douglas DC-3",
            iataTypeCode: "D3F"
        },
        {
            name: "Douglas DC-6",
            iataTypeCode: "D6F"
        },
        {
            name: "Douglas DC-8-50",
            iataTypeCode: "D8T"
        },
        {
            name: "Douglas DC-8-62",
            iataTypeCode: "D8L"
        },
        {
            name: "Douglas DC-8-72",
            iataTypeCode: "D8Q"
        },
        {
            name: "Douglas DC-9-10",
            iataTypeCode: "D91"
        },
        {
            name: "Douglas DC-9-20",
            iataTypeCode: "D92"
        },
        {
            name: "Douglas DC-9-30",
            iataTypeCode: "D93"
        },
        {
            name: "Douglas DC-9-40",
            iataTypeCode: "D94"
        },
        {
            name: "Douglas DC-9-50",
            iataTypeCode: "D95"
        },
        {
            name: "Douglas DC-10",
            iataTypeCode: "D10"
        },
        {
            name: "Douglas DC-10-10",
            iataTypeCode: "D1X"
        },
        {
            name: "Douglas DC-10-30",
            iataTypeCode: "D1Y"
        },
        {
            name: "Embraer 170",
            iataTypeCode: "E70"
        },
        {
            name: "Embraer 175",
            iataTypeCode: "E75"
        },
        {
            name: "Embraer 190",
            iataTypeCode: "E90"
        },
        {
            name: "Embraer 195",
            iataTypeCode: "E95"
        },
        {
            name: "Embraer E190-E2",
            iataTypeCode: "290"
        },
        {
            name: "Embraer E195-E2",
            iataTypeCode: "295"
        },
        {
            name: "Embraer EMB.110 Bandeirante",
            iataTypeCode: "EMB"
        },
        {
            name: "Embraer EMB.120 Brasilia",
            iataTypeCode: "EM2"
        },
        {
            name: "Embraer Legacy 600",
            iataTypeCode: "ER3"
        },
        {
            name: "Embraer Phenom 100",
            iataTypeCode: "EP1"
        },
        {
            name: "Embraer Phenom 300",
            iataTypeCode: "EP3"
        },
        {
            name: "Embraer RJ135",
            iataTypeCode: "ER3"
        },
        {
            name: "Embraer RJ140",
            iataTypeCode: "ERD"
        },
        {
            name: "Embraer RJ145 Amazon",
            iataTypeCode: "ER4"
        },
        {
            name: "Ilyushin IL18",
            iataTypeCode: "IL8"
        },
        {
            name: "Ilyushin IL62",
            iataTypeCode: "IL6"
        },
        {
            name: "Ilyushin IL76",
            iataTypeCode: "IL7"
        },
        {
            name: "Ilyushin IL86",
            iataTypeCode: "ILW"
        },
        {
            name: "Ilyushin IL96-300",
            iataTypeCode: "I93"
        },
        {
            name: "Ilyushin IL114",
            iataTypeCode: "I14"
        },
        {
            name: "Lockheed L-182 / 282 / 382 (L-100) Hercules",
            iataTypeCode: "LOH"
        },
        {
            name: "Lockheed L-188 Electra",
            iataTypeCode: "LOE"
        },
        {
            name: "Lockheed L-1011 Tristar",
            iataTypeCode: "L10"
        },
        {
            name: "Lockheed L-1049 Super Constellation",
            iataTypeCode: "L49"
        },
        {
            name: "McDonnell Douglas MD11",
            iataTypeCode: "M11"
        },
        {
            name: "McDonnell Douglas MD80",
            iataTypeCode: "M80"
        },
        {
            name: "McDonnell Douglas MD81",
            iataTypeCode: "M81"
        },
        {
            name: "McDonnell Douglas MD82",
            iataTypeCode: "M82"
        },
        {
            name: "McDonnell Douglas MD83",
            iataTypeCode: "M83"
        },
        {
            name: "McDonnell Douglas MD87",
            iataTypeCode: "M87"
        },
        {
            name: "McDonnell Douglas MD88",
            iataTypeCode: "M88"
        },
        {
            name: "McDonnell Douglas MD90",
            iataTypeCode: "M90"
        },
        {
            name: "Sukhoi Superjet 100-95",
            iataTypeCode: "SU9"
        },
        {
            name: "Tupolev Tu-134",
            iataTypeCode: "TU3"
        },
        {
            name: "Tupolev Tu-154",
            iataTypeCode: "TU5"
        },
        {
            name: "Tupolev Tu-204",
            iataTypeCode: "T20"
        },
        {
            name: "Yakovlev Yak-40",
            iataTypeCode: "YK4"
        },
        {
            name: "Yakovlev Yak-42",
            iataTypeCode: "YK2"
        }
    ], $D = [
        {
            name: "Adelaide International Airport",
            iataCode: "ADL"
        },
        {
            name: "Adolfo Suarez Madrid-Barajas Airport",
            iataCode: "MAD"
        },
        {
            name: "Aeroparque Jorge Newbery Airport",
            iataCode: "AEP"
        },
        {
            name: "Afonso Pena International Airport",
            iataCode: "CWB"
        },
        {
            name: "Alfonso Bonilla Aragon International Airport",
            iataCode: "CLO"
        },
        {
            name: "Amsterdam Airport Schiphol",
            iataCode: "AMS"
        },
        {
            name: "Arturo Merino Benitez International Airport",
            iataCode: "SCL"
        },
        {
            name: "Auckland International Airport",
            iataCode: "AKL"
        },
        {
            name: "Beijing Capital International Airport",
            iataCode: "PEK"
        },
        {
            name: "Belem Val de Cans International Airport",
            iataCode: "BEL"
        },
        {
            name: "Belo Horizonte Tancredo Neves International Airport",
            iataCode: "CNF"
        },
        {
            name: "Berlin-Tegel Airport",
            iataCode: "TXL"
        },
        {
            name: "Bole International Airport",
            iataCode: "ADD"
        },
        {
            name: "Brasilia-Presidente Juscelino Kubitschek International Airport",
            iataCode: "BSB"
        },
        {
            name: "Brisbane International Airport",
            iataCode: "BNE"
        },
        {
            name: "Brussels Airport",
            iataCode: "BRU"
        },
        {
            name: "Cairns Airport",
            iataCode: "CNS"
        },
        {
            name: "Cairo International Airport",
            iataCode: "CAI"
        },
        {
            name: "Canberra Airport",
            iataCode: "CBR"
        },
        {
            name: "Capetown International Airport",
            iataCode: "CPT"
        },
        {
            name: "Charles de Gaulle International Airport",
            iataCode: "CDG"
        },
        {
            name: "Charlotte Douglas International Airport",
            iataCode: "CLT"
        },
        {
            name: "Chengdu Shuangliu International Airport",
            iataCode: "CTU"
        },
        {
            name: "Chhatrapati Shivaji International Airport",
            iataCode: "BOM"
        },
        {
            name: "Chicago O'Hare International Airport",
            iataCode: "ORD"
        },
        {
            name: "Chongqing Jiangbei International Airport",
            iataCode: "CKG"
        },
        {
            name: "Christchurch International Airport",
            iataCode: "CHC"
        },
        {
            name: "Copenhagen Kastrup Airport",
            iataCode: "CPH"
        },
        {
            name: "Dallas Fort Worth International Airport",
            iataCode: "DFW"
        },
        {
            name: "Daniel K. Inouye International Airport",
            iataCode: "HNL"
        },
        {
            name: "Denver International Airport",
            iataCode: "DEN"
        },
        {
            name: "Don Mueang International Airport",
            iataCode: "DMK"
        },
        {
            name: "Dubai International Airport",
            iataCode: "DXB"
        },
        {
            name: "Dublin Airport",
            iataCode: "DUB"
        },
        {
            name: "Dusseldorf Airport",
            iataCode: "DUS"
        },
        {
            name: "El Dorado International Airport",
            iataCode: "BOG"
        },
        {
            name: "Eleftherios Venizelos International Airport",
            iataCode: "ATH"
        },
        {
            name: "Faa'a International Airport",
            iataCode: "PPT"
        },
        {
            name: "Fort Lauderdale Hollywood International Airport",
            iataCode: "FLL"
        },
        {
            name: "Fortaleza Pinto Martins International Airport",
            iataCode: "FOR"
        },
        {
            name: "Frankfurt am Main Airport",
            iataCode: "FRA"
        },
        {
            name: "George Bush Intercontinental Houston Airport",
            iataCode: "IAH"
        },
        {
            name: "Gold Coast Airport",
            iataCode: "OOL"
        },
        {
            name: "Guarulhos - Governador Andre Franco Montoro International Airport",
            iataCode: "GRU"
        },
        {
            name: "Hartsfield-Jackson Atlanta International Airport",
            iataCode: "ATL"
        },
        {
            name: "Helsinki Vantaa Airport",
            iataCode: "HEL"
        },
        {
            name: "Hobart International Airport",
            iataCode: "HBA"
        },
        {
            name: "Hong Kong International Airport",
            iataCode: "HKG"
        },
        {
            name: "Houari Boumediene Airport",
            iataCode: "ALG"
        },
        {
            name: "Hurgada International Airport",
            iataCode: "HRG"
        },
        {
            name: "Incheon International Airport",
            iataCode: "ICN"
        },
        {
            name: "Indira Gandhi International Airport",
            iataCode: "DEL"
        },
        {
            name: "Istanbul Airport",
            iataCode: "IST"
        },
        {
            name: "Jacksons International Airport",
            iataCode: "POM"
        },
        {
            name: "Jeju International Airport",
            iataCode: "CJU"
        },
        {
            name: "John F Kennedy International Airport",
            iataCode: "JFK"
        },
        {
            name: "Jorge Chavez International Airport",
            iataCode: "LIM"
        },
        {
            name: "Jose Maria Cordova International Airport",
            iataCode: "MDE"
        },
        {
            name: "Josep Tarradellas Barcelona-El Prat Airport",
            iataCode: "BCN"
        },
        {
            name: "Kahului Airport",
            iataCode: "OGG"
        },
        {
            name: "King Abdulaziz International Airport",
            iataCode: "JED"
        },
        {
            name: "Kuala Lumpur International Airport",
            iataCode: "KUL"
        },
        {
            name: "Kunming Changshui International Airport",
            iataCode: "KMG"
        },
        {
            name: "La Tontouta International Airport",
            iataCode: "NOU"
        },
        {
            name: "Leonardo da Vinci-Fiumicino Airport",
            iataCode: "FCO"
        },
        {
            name: "London Heathrow Airport",
            iataCode: "LHR"
        },
        {
            name: "Los Angeles International Airport",
            iataCode: "LAX"
        },
        {
            name: "McCarran International Airport",
            iataCode: "LAS"
        },
        {
            name: "Melbourne International Airport",
            iataCode: "MEL"
        },
        {
            name: "Mexico City International Airport",
            iataCode: "MEX"
        },
        {
            name: "Miami International Airport",
            iataCode: "MIA"
        },
        {
            name: "Ministro Pistarini International Airport",
            iataCode: "EZE"
        },
        {
            name: "Minneapolis-St Paul International/Wold-Chamberlain Airport",
            iataCode: "MSP"
        },
        {
            name: "Mohammed V International Airport",
            iataCode: "CMN"
        },
        {
            name: "Moscow Domodedovo Airport",
            iataCode: "DME"
        },
        {
            name: "Munich Airport",
            iataCode: "MUC"
        },
        {
            name: "Murtala Muhammed International Airport",
            iataCode: "LOS"
        },
        {
            name: "Nadi International Airport",
            iataCode: "NAN"
        },
        {
            name: "Nairobi Jomo Kenyatta International Airport",
            iataCode: "NBO"
        },
        {
            name: "Narita International Airport",
            iataCode: "NRT"
        },
        {
            name: "Newark Liberty International Airport",
            iataCode: "EWR"
        },
        {
            name: "Ninoy Aquino International Airport",
            iataCode: "MNL"
        },
        {
            name: "Noumea Magenta Airport",
            iataCode: "GEA"
        },
        {
            name: "O. R. Tambo International Airport",
            iataCode: "JNB"
        },
        {
            name: "Orlando International Airport",
            iataCode: "MCO"
        },
        {
            name: "Oslo Lufthavn",
            iataCode: "OSL"
        },
        {
            name: "Perth Airport",
            iataCode: "PER"
        },
        {
            name: "Phoenix Sky Harbor International Airport",
            iataCode: "PHX"
        },
        {
            name: "Recife Guararapes-Gilberto Freyre International Airport",
            iataCode: "REC"
        },
        {
            name: "Rio de Janeiro Galeao International Airport",
            iataCode: "GIG"
        },
        {
            name: "Salgado Filho International Airport",
            iataCode: "POA"
        },
        {
            name: "Salvador Deputado Luis Eduardo Magalhaes International Airport",
            iataCode: "SSA"
        },
        {
            name: "San Francisco International Airport",
            iataCode: "SFO"
        },
        {
            name: "Santos Dumont Airport",
            iataCode: "SDU"
        },
        {
            name: "Sao Paulo-Congonhas Airport",
            iataCode: "CGH"
        },
        {
            name: "Seattle Tacoma International Airport",
            iataCode: "SEA"
        },
        {
            name: "Shanghai Hongqiao International Airport",
            iataCode: "SHA"
        },
        {
            name: "Shanghai Pudong International Airport",
            iataCode: "PVG"
        },
        {
            name: "Shenzhen Bao'an International Airport",
            iataCode: "SZX"
        },
        {
            name: "Sheremetyevo International Airport",
            iataCode: "SVO"
        },
        {
            name: "Singapore Changi Airport",
            iataCode: "SIN"
        },
        {
            name: "Soekarno-Hatta International Airport",
            iataCode: "CGK"
        },
        {
            name: 'Stockholm-Arlanda Airport"',
            iataCode: "ARN"
        },
        {
            name: "Suvarnabhumi Airport",
            iataCode: "BKK"
        },
        {
            name: "Sydney Kingsford Smith International Airport",
            iataCode: "SYD"
        },
        {
            name: "Taiwan Taoyuan International Airport",
            iataCode: "TPE"
        },
        {
            name: "Tan Son Nhat International Airport",
            iataCode: "SGN"
        },
        {
            name: "Tokyo Haneda International Airport",
            iataCode: "HND"
        },
        {
            name: "Toronto Pearson International Airport",
            iataCode: "YYZ"
        },
        {
            name: "Tunis Carthage International Airport",
            iataCode: "TUN"
        },
        {
            name: "Vancouver International Airport",
            iataCode: "YVR"
        },
        {
            name: "Vienna International Airport",
            iataCode: "VIE"
        },
        {
            name: "Viracopos International Airport",
            iataCode: "VCP"
        },
        {
            name: "Vnukovo International Airport",
            iataCode: "VKO"
        },
        {
            name: "Wellington International Airport",
            iataCode: "WLG"
        },
        {
            name: "Xi'an Xianyang International Airport",
            iataCode: "XIY"
        },
        {
            name: "Zhukovsky International Airport",
            iataCode: "ZIA"
        },
        {
            name: "Zurich Airport",
            iataCode: "ZRH"
        }
    ], UD = {
        airline: WD,
        airplane: GD,
        airport: $D
    }, jD = UD, YD = [
        "American black bear",
        "Asian black bear",
        "Brown bear",
        "Giant panda",
        "Polar bear",
        "Sloth bear",
        "Spectacled bear",
        "Sun bear"
    ], qD = [
        "Abert's Towhee",
        "Acadian Flycatcher",
        "Acorn Woodpecker",
        "Alder Flycatcher",
        "Aleutian Tern",
        "Allen's Hummingbird",
        "Altamira Oriole",
        "American Avocet",
        "American Bittern",
        "American Black Duck",
        "American Coot",
        "American Crow",
        "American Dipper",
        "American Golden-Plover",
        "American Goldfinch",
        "American Kestrel",
        "American Oystercatcher",
        "American Pipit",
        "American Redstart",
        "American Robin",
        "American Tree Sparrow",
        "American White Pelican",
        "American Wigeon",
        "American Woodcock",
        "Ancient Murrelet",
        "Anhinga",
        "Anna's Hummingbird",
        "Antillean Nighthawk",
        "Antillean Palm Swift",
        "Aplomado Falcon",
        "Arctic Loon",
        "Arctic Tern",
        "Arctic Warbler",
        "Ash-throated Flycatcher",
        "Ashy Storm-Petrel",
        "Asian Brown Flycatcher",
        "Atlantic Puffin",
        "Audubon's Oriole",
        "Audubon's Shearwater",
        "Aztec Thrush",
        "Azure Gallinule",
        "Bachman's Sparrow",
        "Bachman's Warbler",
        "Bahama Mockingbird",
        "Bahama Swallow",
        "Bahama Woodstar",
        "Baikal Teal",
        "Baird's Sandpiper",
        "Baird's Sparrow",
        "Bald Eagle",
        "Baltimore Oriole",
        "Bananaquit",
        "Band-rumped Storm-Petrel",
        "Band-tailed Gull",
        "Band-tailed Pigeon",
        "Bank Swallow",
        "Bar-tailed Godwit",
        "Barn Owl",
        "Barn Swallow",
        "Barnacle Goose",
        "Barred Owl",
        "Barrow's Goldeneye",
        "Bay-breasted Warbler",
        "Bean Goose",
        "Bell's Vireo",
        "Belted Kingfisher",
        "Bendire's Thrasher",
        "Berylline Hummingbird",
        "Bewick's Wren",
        "Bicknell's Thrush",
        "Black Catbird",
        "Black Guillemot",
        "Black Noddy",
        "Black Oystercatcher",
        "Black Phoebe",
        "Black Rail",
        "Black Rosy-Finch",
        "Black Scoter",
        "Black Skimmer",
        "Black Storm-Petrel",
        "Black Swift",
        "Black Tern",
        "Black Turnstone",
        "Black Vulture",
        "Black-and-white Warbler",
        "Black-backed Wagtail",
        "Black-backed Woodpecker",
        "Black-bellied Plover",
        "Black-bellied Whistling-Duck",
        "Black-billed Cuckoo",
        "Black-billed Magpie",
        "Black-browed Albatross",
        "Black-capped Chickadee",
        "Black-capped Gnatcatcher",
        "Black-capped Petrel",
        "Black-capped Vireo",
        "Black-chinned Hummingbird",
        "Black-chinned Sparrow",
        "Black-crowned Night-Heron",
        "Black-faced Grassquit",
        "Black-footed Albatross",
        "Black-headed Grosbeak",
        "Black-headed Gull",
        "Black-legged Kittiwake",
        "Black-necked Stilt",
        "Black-tailed Gnatcatcher",
        "Black-tailed Godwit",
        "Black-tailed Gull",
        "Black-throated Blue Warbler",
        "Black-throated Gray Warbler",
        "Black-throated Green Warbler",
        "Black-throated Sparrow",
        "Black-vented Oriole",
        "Black-vented Shearwater",
        "Black-whiskered Vireo",
        "Black-winged Stilt",
        "Blackburnian Warbler",
        "Blackpoll Warbler",
        "Blue Bunting",
        "Blue Grosbeak",
        "Blue Grouse",
        "Blue Jay",
        "Blue Mockingbird",
        "Blue-footed Booby",
        "Blue-gray Gnatcatcher",
        "Blue-headed Vireo",
        "Blue-throated Hummingbird",
        "Blue-winged Teal",
        "Blue-winged Warbler",
        "Bluethroat",
        "Boat-tailed Grackle",
        "Bobolink",
        "Bohemian Waxwing",
        "Bonaparte's Gull",
        "Boreal Chickadee",
        "Boreal Owl",
        "Botteri's Sparrow",
        "Brambling",
        "Brandt's Cormorant",
        "Brant",
        "Brewer's Blackbird",
        "Brewer's Sparrow",
        "Bridled Tern",
        "Bridled Titmouse",
        "Bristle-thighed Curlew",
        "Broad-billed Hummingbird",
        "Broad-billed Sandpiper",
        "Broad-tailed Hummingbird",
        "Broad-winged Hawk",
        "Bronzed Cowbird",
        "Brown Booby",
        "Brown Creeper",
        "Brown Jay",
        "Brown Noddy",
        "Brown Pelican",
        "Brown Shrike",
        "Brown Thrasher",
        "Brown-capped Rosy-Finch",
        "Brown-chested Martin",
        "Brown-crested Flycatcher",
        "Brown-headed Cowbird",
        "Brown-headed Nuthatch",
        "Budgerigar",
        "Buff-bellied Hummingbird",
        "Buff-breasted Flycatcher",
        "Buff-breasted Sandpiper",
        "Buff-collared Nightjar",
        "Bufflehead",
        "Buller's Shearwater",
        "Bullock's Oriole",
        "Bumblebee Hummingbird",
        "Burrowing Owl",
        "Bushtit",
        "Cactus Wren",
        "California Condor",
        "California Gnatcatcher",
        "California Gull",
        "California Quail",
        "California Thrasher",
        "California Towhee",
        "Calliope Hummingbird",
        "Canada Goose",
        "Canada Warbler",
        "Canvasback",
        "Canyon Towhee",
        "Canyon Wren",
        "Cape May Warbler",
        "Caribbean Elaenia",
        "Carolina Chickadee",
        "Carolina Parakeet",
        "Carolina Wren",
        "Caspian Tern",
        "Cassin's Auklet",
        "Cassin's Finch",
        "Cassin's Kingbird",
        "Cassin's Sparrow",
        "Cassin's Vireo",
        "Cattle Egret",
        "Cave Swallow",
        "Cedar Waxwing",
        "Cerulean Warbler",
        "Chestnut-backed Chickadee",
        "Chestnut-collared Longspur",
        "Chestnut-sided Warbler",
        "Chihuahuan Raven",
        "Chimney Swift",
        "Chinese Egret",
        "Chipping Sparrow",
        "Chuck-will's-widow",
        "Chukar",
        "Cinnamon Hummingbird",
        "Cinnamon Teal",
        "Citrine Wagtail",
        "Clapper Rail",
        "Clark's Grebe",
        "Clark's Nutcracker",
        "Clay-colored Robin",
        "Clay-colored Sparrow",
        "Cliff Swallow",
        "Colima Warbler",
        "Collared Forest-Falcon",
        "Collared Plover",
        "Common Black-Hawk",
        "Common Chaffinch",
        "Common Crane",
        "Common Cuckoo",
        "Common Eider",
        "Common Goldeneye",
        "Common Grackle",
        "Common Greenshank",
        "Common Ground-Dove",
        "Common House-Martin",
        "Common Loon",
        "Common Merganser",
        "Common Moorhen",
        "Common Murre",
        "Common Nighthawk",
        "Common Pauraque",
        "Common Pochard",
        "Common Poorwill",
        "Common Raven",
        "Common Redpoll",
        "Common Ringed Plover",
        "Common Rosefinch",
        "Common Sandpiper",
        "Common Snipe",
        "Common Swift",
        "Common Tern",
        "Common Yellowthroat",
        "Connecticut Warbler",
        "Cook's Petrel",
        "Cooper's Hawk",
        "Cordilleran Flycatcher",
        "Corn Crake",
        "Cory's Shearwater",
        "Costa's Hummingbird",
        "Couch's Kingbird",
        "Crane Hawk",
        "Craveri's Murrelet",
        "Crescent-chested Warbler",
        "Crested Auklet",
        "Crested Caracara",
        "Crested Myna",
        "Crimson-collared Grosbeak",
        "Crissal Thrasher",
        "Cuban Martin",
        "Curlew Sandpiper",
        "Curve-billed Thrasher",
        "Dark-eyed Junco",
        "Dickcissel",
        "Double-crested Cormorant",
        "Double-striped Thick-knee",
        "Dovekie",
        "Downy Woodpecker",
        "Dunlin",
        "Dusky Flycatcher",
        "Dusky Thrush",
        "Dusky Warbler",
        "Dusky-capped Flycatcher",
        "Eared Grebe",
        "Eared Trogon",
        "Eastern Bluebird",
        "Eastern Kingbird",
        "Eastern Meadowlark",
        "Eastern Phoebe",
        "Eastern Screech-Owl",
        "Eastern Towhee",
        "Eastern Wood-Pewee",
        "Elegant Tern",
        "Elegant Trogon",
        "Elf Owl",
        "Emperor Goose",
        "Eskimo Curlew",
        "Eurasian Blackbird",
        "Eurasian Bullfinch",
        "Eurasian Collared-Dove",
        "Eurasian Coot",
        "Eurasian Curlew",
        "Eurasian Dotterel",
        "Eurasian Hobby",
        "Eurasian Jackdaw",
        "Eurasian Kestrel",
        "Eurasian Oystercatcher",
        "Eurasian Siskin",
        "Eurasian Tree Sparrow",
        "Eurasian Wigeon",
        "Eurasian Woodcock",
        "Eurasian Wryneck",
        "European Golden-Plover",
        "European Starling",
        "European Storm-Petrel",
        "European Turtle-Dove",
        "Evening Grosbeak",
        "Eyebrowed Thrush",
        "Falcated Duck",
        "Fan-tailed Warbler",
        "Far Eastern Curlew",
        "Ferruginous Hawk",
        "Ferruginous Pygmy-Owl",
        "Field Sparrow",
        "Fieldfare",
        "Fish Crow",
        "Five-striped Sparrow",
        "Flame-colored Tanager",
        "Flammulated Owl",
        "Flesh-footed Shearwater",
        "Florida Scrub-Jay",
        "Fork-tailed Flycatcher",
        "Fork-tailed Storm-Petrel",
        "Fork-tailed Swift",
        "Forster's Tern",
        "Fox Sparrow",
        "Franklin's Gull",
        "Fulvous Whistling-Duck",
        "Gadwall",
        "Gambel's Quail",
        "Garganey",
        "Gila Woodpecker",
        "Gilded Flicker",
        "Glaucous Gull",
        "Glaucous-winged Gull",
        "Glossy Ibis",
        "Golden Eagle",
        "Golden-cheeked Warbler",
        "Golden-crowned Kinglet",
        "Golden-crowned Sparrow",
        "Golden-crowned Warbler",
        "Golden-fronted Woodpecker",
        "Golden-winged Warbler",
        "Grace's Warbler",
        "Grasshopper Sparrow",
        "Gray Bunting",
        "Gray Catbird",
        "Gray Flycatcher",
        "Gray Hawk",
        "Gray Jay",
        "Gray Kingbird",
        "Gray Partridge",
        "Gray Silky-flycatcher",
        "Gray Vireo",
        "Gray Wagtail",
        "Gray-breasted Martin",
        "Gray-cheeked Thrush",
        "Gray-crowned Rosy-Finch",
        "Gray-crowned Yellowthroat",
        "Gray-headed Chickadee",
        "Gray-spotted Flycatcher",
        "Gray-tailed Tattler",
        "Great Auk",
        "Great Black-backed Gull",
        "Great Blue Heron",
        "Great Cormorant",
        "Great Crested Flycatcher",
        "Great Egret",
        "Great Frigatebird",
        "Great Gray Owl",
        "Great Horned Owl",
        "Great Kiskadee",
        "Great Knot",
        "Great Skua",
        "Great Spotted Woodpecker",
        "Great-tailed Grackle",
        "Greater Flamingo",
        "Greater Pewee",
        "Greater Prairie-chicken",
        "Greater Roadrunner",
        "Greater Scaup",
        "Greater Shearwater",
        "Greater White-fronted Goose",
        "Greater Yellowlegs",
        "Green Heron",
        "Green Jay",
        "Green Kingfisher",
        "Green Sandpiper",
        "Green Violet-ear",
        "Green-breasted Mango",
        "Green-tailed Towhee",
        "Green-winged Teal",
        "Greenish Elaenia",
        "Groove-billed Ani",
        "Gull-billed Tern",
        "Gyrfalcon",
        "Hairy Woodpecker",
        "Hammond's Flycatcher",
        "Harlequin Duck",
        "Harris's Hawk",
        "Harris's Sparrow",
        "Hawfinch",
        "Heermann's Gull",
        "Henslow's Sparrow",
        "Hepatic Tanager",
        "Herald Petrel",
        "Hermit Thrush",
        "Hermit Warbler",
        "Herring Gull",
        "Himalayan Snowcock",
        "Hoary Redpoll",
        "Hooded Merganser",
        "Hooded Oriole",
        "Hooded Warbler",
        "Hook-billed Kite",
        "Hoopoe",
        "Horned Grebe",
        "Horned Lark",
        "Horned Puffin",
        "House Finch",
        "House Sparrow",
        "House Wren",
        "Hudsonian Godwit",
        "Hutton's Vireo",
        "Iceland Gull",
        "Inca Dove",
        "Indigo Bunting",
        "Island Scrub-Jay",
        "Ivory Gull",
        "Ivory-billed Woodpecker",
        "Jabiru",
        "Jack Snipe",
        "Jungle Nightjar",
        "Juniper Titmouse",
        "Kentucky Warbler",
        "Key West Quail-Dove",
        "Killdeer",
        "King Eider",
        "King Rail",
        "Kirtland's Warbler",
        "Kittlitz's Murrelet",
        "La Sagra's Flycatcher",
        "Labrador Duck",
        "Ladder-backed Woodpecker",
        "Lanceolated Warbler",
        "Lapland Longspur",
        "Large-billed Tern",
        "Lark Bunting",
        "Lark Sparrow",
        "Laughing Gull",
        "Lawrence's Goldfinch",
        "Laysan Albatross",
        "Lazuli Bunting",
        "Le Conte's Sparrow",
        "Le Conte's Thrasher",
        "Leach's Storm-Petrel",
        "Least Auklet",
        "Least Bittern",
        "Least Flycatcher",
        "Least Grebe",
        "Least Sandpiper",
        "Least Storm-Petrel",
        "Least Tern",
        "Lesser Black-backed Gull",
        "Lesser Frigatebird",
        "Lesser Goldfinch",
        "Lesser Nighthawk",
        "Lesser Prairie-chicken",
        "Lesser Scaup",
        "Lesser White-fronted Goose",
        "Lesser Yellowlegs",
        "Lewis's Woodpecker",
        "Limpkin",
        "Lincoln's Sparrow",
        "Little Blue Heron",
        "Little Bunting",
        "Little Curlew",
        "Little Egret",
        "Little Gull",
        "Little Ringed Plover",
        "Little Shearwater",
        "Little Stint",
        "Loggerhead Kingbird",
        "Loggerhead Shrike",
        "Long-billed Curlew",
        "Long-billed Dowitcher",
        "Long-billed Murrelet",
        "Long-billed Thrasher",
        "Long-eared Owl",
        "Long-tailed Jaeger",
        "Long-toed Stint",
        "Louisiana Waterthrush",
        "Lucifer Hummingbird",
        "Lucy's Warbler",
        "MacGillivray's Warbler",
        "Magnificent Frigatebird",
        "Magnificent Hummingbird",
        "Magnolia Warbler",
        "Mallard",
        "Mangrove Cuckoo",
        "Manx Shearwater",
        "Marbled Godwit",
        "Marbled Murrelet",
        "Marsh Sandpiper",
        "Marsh Wren",
        "Masked Booby",
        "Masked Duck",
        "Masked Tityra",
        "McCown's Longspur",
        "McKay's Bunting",
        "Merlin",
        "Mew Gull",
        "Mexican Chickadee",
        "Mexican Jay",
        "Middendorff's Grasshopper-Warbler",
        "Mississippi Kite",
        "Mongolian Plover",
        "Monk Parakeet",
        "Montezuma Quail",
        "Mottled Duck",
        "Mottled Owl",
        "Mottled Petrel",
        "Mountain Bluebird",
        "Mountain Chickadee",
        "Mountain Plover",
        "Mountain Quail",
        "Mourning Dove",
        "Mourning Warbler",
        "Mugimaki Flycatcher",
        "Murphy's Petrel",
        "Muscovy Duck",
        "Mute Swan",
        "Narcissus Flycatcher",
        "Nashville Warbler",
        "Nelson's Sharp-tailed Sparrow",
        "Neotropic Cormorant",
        "Northern Beardless-Tyrannulet",
        "Northern Bobwhite",
        "Northern Cardinal",
        "Northern Flicker",
        "Northern Fulmar",
        "Northern Gannet",
        "Northern Goshawk",
        "Northern Harrier",
        "Northern Hawk Owl",
        "Northern Jacana",
        "Northern Lapwing",
        "Northern Mockingbird",
        "Northern Parula",
        "Northern Pintail",
        "Northern Pygmy-Owl",
        "Northern Rough-winged Swallow",
        "Northern Saw-whet Owl",
        "Northern Shoveler",
        "Northern Shrike",
        "Northern Waterthrush",
        "Northern Wheatear",
        "Northwestern Crow",
        "Nuttall's Woodpecker",
        "Nutting's Flycatcher",
        "Oak Titmouse",
        "Oldsquaw",
        "Olive Sparrow",
        "Olive Warbler",
        "Olive-backed Pipit",
        "Olive-sided Flycatcher",
        "Orange-crowned Warbler",
        "Orchard Oriole",
        "Oriental Cuckoo",
        "Oriental Greenfinch",
        "Oriental Pratincole",
        "Oriental Scops-Owl",
        "Oriental Turtle-Dove",
        "Osprey",
        "Ovenbird",
        "Pacific Golden-Plover",
        "Pacific Loon",
        "Pacific-slope Flycatcher",
        "Paint-billed Crake",
        "Painted Bunting",
        "Painted Redstart",
        "Pallas's Bunting",
        "Palm Warbler",
        "Parakeet Auklet",
        "Parasitic Jaeger",
        "Passenger Pigeon",
        "Pechora Pipit",
        "Pectoral Sandpiper",
        "Pelagic Cormorant",
        "Peregrine Falcon",
        "Phainopepla",
        "Philadelphia Vireo",
        "Pied-billed Grebe",
        "Pigeon Guillemot",
        "Pileated Woodpecker",
        "Pin-tailed Snipe",
        "Pine Bunting",
        "Pine Grosbeak",
        "Pine Siskin",
        "Pine Warbler",
        "Pink-footed Goose",
        "Pink-footed Shearwater",
        "Pinyon Jay",
        "Piping Plover",
        "Plain Chachalaca",
        "Plain-capped Starthroat",
        "Plumbeous Vireo",
        "Pomarine Jaeger",
        "Prairie Falcon",
        "Prairie Warbler",
        "Prothonotary Warbler",
        "Purple Finch",
        "Purple Gallinule",
        "Purple Martin",
        "Purple Sandpiper",
        "Pygmy Nuthatch",
        "Pyrrhuloxia",
        "Razorbill",
        "Red Crossbill",
        "Red Knot",
        "Red Phalarope",
        "Red-bellied Woodpecker",
        "Red-billed Pigeon",
        "Red-billed Tropicbird",
        "Red-breasted Flycatcher",
        "Red-breasted Merganser",
        "Red-breasted Nuthatch",
        "Red-breasted Sapsucker",
        "Red-cockaded Woodpecker",
        "Red-crowned Parrot",
        "Red-eyed Vireo",
        "Red-faced Cormorant",
        "Red-faced Warbler",
        "Red-flanked Bluetail",
        "Red-footed Booby",
        "Red-headed Woodpecker",
        "Red-legged Kittiwake",
        "Red-naped Sapsucker",
        "Red-necked Grebe",
        "Red-necked Phalarope",
        "Red-necked Stint",
        "Red-shouldered Hawk",
        "Red-tailed Hawk",
        "Red-tailed Tropicbird",
        "Red-throated Loon",
        "Red-throated Pipit",
        "Red-whiskered Bulbul",
        "Red-winged Blackbird",
        "Reddish Egret",
        "Redhead",
        "Redwing",
        "Reed Bunting",
        "Rhinoceros Auklet",
        "Ring-billed Gull",
        "Ring-necked Duck",
        "Ring-necked Pheasant",
        "Ringed Kingfisher",
        "Roadside Hawk",
        "Rock Dove",
        "Rock Ptarmigan",
        "Rock Sandpiper",
        "Rock Wren",
        "Rose-breasted Grosbeak",
        "Rose-throated Becard",
        "Roseate Spoonbill",
        "Roseate Tern",
        "Ross's Goose",
        "Ross's Gull",
        "Rough-legged Hawk",
        "Royal Tern",
        "Ruby-crowned Kinglet",
        "Ruby-throated Hummingbird",
        "Ruddy Duck",
        "Ruddy Ground-Dove",
        "Ruddy Quail-Dove",
        "Ruddy Turnstone",
        "Ruff",
        "Ruffed Grouse",
        "Rufous Hummingbird",
        "Rufous-backed Robin",
        "Rufous-capped Warbler",
        "Rufous-crowned Sparrow",
        "Rufous-winged Sparrow",
        "Rustic Bunting",
        "Rusty Blackbird",
        "Sabine's Gull",
        "Sage Grouse",
        "Sage Sparrow",
        "Sage Thrasher",
        "Saltmarsh Sharp-tailed Sparrow",
        "Sanderling",
        "Sandhill Crane",
        "Sandwich Tern",
        "Savannah Sparrow",
        "Say's Phoebe",
        "Scaled Quail",
        "Scaly-naped Pigeon",
        "Scarlet Ibis",
        "Scarlet Tanager",
        "Scissor-tailed Flycatcher",
        "Scott's Oriole",
        "Seaside Sparrow",
        "Sedge Wren",
        "Semipalmated Plover",
        "Semipalmated Sandpiper",
        "Sharp-shinned Hawk",
        "Sharp-tailed Grouse",
        "Sharp-tailed Sandpiper",
        "Shiny Cowbird",
        "Short-billed Dowitcher",
        "Short-eared Owl",
        "Short-tailed Albatross",
        "Short-tailed Hawk",
        "Short-tailed Shearwater",
        "Shy Albatross",
        "Siberian Accentor",
        "Siberian Blue Robin",
        "Siberian Flycatcher",
        "Siberian Rubythroat",
        "Sky Lark",
        "Slate-throated Redstart",
        "Slaty-backed Gull",
        "Slender-billed Curlew",
        "Smew",
        "Smith's Longspur",
        "Smooth-billed Ani",
        "Snail Kite",
        "Snow Bunting",
        "Snow Goose",
        "Snowy Egret",
        "Snowy Owl",
        "Snowy Plover",
        "Solitary Sandpiper",
        "Song Sparrow",
        "Sooty Shearwater",
        "Sooty Tern",
        "Sora",
        "South Polar Skua",
        "Southern Martin",
        "Spectacled Eider",
        "Spoonbill Sandpiper",
        "Spot-billed Duck",
        "Spot-breasted Oriole",
        "Spotted Dove",
        "Spotted Owl",
        "Spotted Rail",
        "Spotted Redshank",
        "Spotted Sandpiper",
        "Spotted Towhee",
        "Sprague's Pipit",
        "Spruce Grouse",
        "Stejneger's Petrel",
        "Steller's Eider",
        "Steller's Jay",
        "Steller's Sea-Eagle",
        "Stilt Sandpiper",
        "Stonechat",
        "Streak-backed Oriole",
        "Streaked Shearwater",
        "Strickland's Woodpecker",
        "Stripe-headed Tanager",
        "Sulphur-bellied Flycatcher",
        "Summer Tanager",
        "Surf Scoter",
        "Surfbird",
        "Swainson's Hawk",
        "Swainson's Thrush",
        "Swainson's Warbler",
        "Swallow-tailed Kite",
        "Swamp Sparrow",
        "Tamaulipas Crow",
        "Tawny-shouldered Blackbird",
        "Temminck's Stint",
        "Tennessee Warbler",
        "Terek Sandpiper",
        "Thayer's Gull",
        "Thick-billed Kingbird",
        "Thick-billed Murre",
        "Thick-billed Parrot",
        "Thick-billed Vireo",
        "Three-toed Woodpecker",
        "Townsend's Solitaire",
        "Townsend's Warbler",
        "Tree Pipit",
        "Tree Swallow",
        "Tricolored Blackbird",
        "Tricolored Heron",
        "Tropical Kingbird",
        "Tropical Parula",
        "Trumpeter Swan",
        "Tufted Duck",
        "Tufted Flycatcher",
        "Tufted Puffin",
        "Tufted Titmouse",
        "Tundra Swan",
        "Turkey Vulture",
        "Upland Sandpiper",
        "Varied Bunting",
        "Varied Thrush",
        "Variegated Flycatcher",
        "Vaux's Swift",
        "Veery",
        "Verdin",
        "Vermilion Flycatcher",
        "Vesper Sparrow",
        "Violet-crowned Hummingbird",
        "Violet-green Swallow",
        "Virginia Rail",
        "Virginia's Warbler",
        "Wandering Albatross",
        "Wandering Tattler",
        "Warbling Vireo",
        "Wedge-rumped Storm-Petrel",
        "Wedge-tailed Shearwater",
        "Western Bluebird",
        "Western Grebe",
        "Western Gull",
        "Western Kingbird",
        "Western Meadowlark",
        "Western Reef-Heron",
        "Western Sandpiper",
        "Western Screech-Owl",
        "Western Scrub-Jay",
        "Western Tanager",
        "Western Wood-Pewee",
        "Whimbrel",
        "Whip-poor-will",
        "Whiskered Auklet",
        "Whiskered Screech-Owl",
        "Whiskered Tern",
        "White Ibis",
        "White Wagtail",
        "White-breasted Nuthatch",
        "White-cheeked Pintail",
        "White-chinned Petrel",
        "White-collared Seedeater",
        "White-collared Swift",
        "White-crowned Pigeon",
        "White-crowned Sparrow",
        "White-eared Hummingbird",
        "White-eyed Vireo",
        "White-faced Ibis",
        "White-faced Storm-Petrel",
        "White-headed Woodpecker",
        "White-rumped Sandpiper",
        "White-tailed Eagle",
        "White-tailed Hawk",
        "White-tailed Kite",
        "White-tailed Ptarmigan",
        "White-tailed Tropicbird",
        "White-throated Needletail",
        "White-throated Robin",
        "White-throated Sparrow",
        "White-throated Swift",
        "White-tipped Dove",
        "White-winged Crossbill",
        "White-winged Dove",
        "White-winged Parakeet",
        "White-winged Scoter",
        "White-winged Tern",
        "Whooper Swan",
        "Whooping Crane",
        "Wild Turkey",
        "Willet",
        "Williamson's Sapsucker",
        "Willow Flycatcher",
        "Willow Ptarmigan",
        "Wilson's Phalarope",
        "Wilson's Plover",
        "Wilson's Storm-Petrel",
        "Wilson's Warbler",
        "Winter Wren",
        "Wood Duck",
        "Wood Sandpiper",
        "Wood Stork",
        "Wood Thrush",
        "Wood Warbler",
        "Worm-eating Warbler",
        "Worthen's Sparrow",
        "Wrentit",
        "Xantus's Hummingbird",
        "Xantus's Murrelet",
        "Yellow Bittern",
        "Yellow Grosbeak",
        "Yellow Rail",
        "Yellow Wagtail",
        "Yellow Warbler",
        "Yellow-bellied Flycatcher",
        "Yellow-bellied Sapsucker",
        "Yellow-billed Cuckoo",
        "Yellow-billed Loon",
        "Yellow-billed Magpie",
        "Yellow-breasted Bunting",
        "Yellow-breasted Chat",
        "Yellow-crowned Night-Heron",
        "Yellow-eyed Junco",
        "Yellow-faced Grassquit",
        "Yellow-footed Gull",
        "Yellow-green Vireo",
        "Yellow-headed Blackbird",
        "Yellow-legged Gull",
        "Yellow-nosed Albatross",
        "Yellow-rumped Warbler",
        "Yellow-throated Vireo",
        "Yellow-throated Warbler",
        "Yucatan Vireo",
        "Zenaida Dove",
        "Zone-tailed Hawk"
    ], KD = [
        "Abyssinian",
        "American Bobtail",
        "American Curl",
        "American Shorthair",
        "American Wirehair",
        "Balinese",
        "Bengal",
        "Birman",
        "Bombay",
        "British Shorthair",
        "Burmese",
        "Chartreux",
        "Chausie",
        "Cornish Rex",
        "Devon Rex",
        "Donskoy",
        "Egyptian Mau",
        "Exotic Shorthair",
        "Havana",
        "Highlander",
        "Himalayan",
        "Japanese Bobtail",
        "Korat",
        "Kurilian Bobtail",
        "LaPerm",
        "Maine Coon",
        "Manx",
        "Minskin",
        "Munchkin",
        "Nebelung",
        "Norwegian Forest Cat",
        "Ocicat",
        "Ojos Azules",
        "Oriental",
        "Persian",
        "Peterbald",
        "Pixiebob",
        "Ragdoll",
        "Russian Blue",
        "Savannah",
        "Scottish Fold",
        "Selkirk Rex",
        "Serengeti",
        "Siamese",
        "Siberian",
        "Singapura",
        "Snowshoe",
        "Sokoke",
        "Somali",
        "Sphynx",
        "Thai",
        "Tonkinese",
        "Toyger",
        "Turkish Angora",
        "Turkish Van"
    ], XD = [
        "Amazon River Dolphin",
        "Arnoux's Beaked Whale",
        "Atlantic Humpbacked Dolphin",
        "Atlantic Spotted Dolphin",
        "Atlantic White-Sided Dolphin",
        "Australian Snubfin Dolphin",
        "Australian humpback Dolphin",
        "Blue Whale",
        "Bottlenose Dolphin",
        "Bryde’s whale",
        "Burrunan Dolphin",
        "Chilean Dolphin",
        "Chinese River Dolphin",
        "Chinese White Dolphin",
        "Clymene Dolphin",
        "Commerson’s Dolphin",
        "Costero",
        "Dusky Dolphin",
        "False Killer Whale",
        "Fin Whale",
        "Fraser’s Dolphin",
        "Ganges River Dolphin",
        "Guiana Dolphin",
        "Heaviside’s Dolphin",
        "Hector’s Dolphin",
        "Hourglass Dolphin",
        "Humpback whale",
        "Indo-Pacific Bottlenose Dolphin",
        "Indo-Pacific Hump-backed Dolphin",
        "Irrawaddy Dolphin",
        "Killer Whale (Orca)",
        "La Plata Dolphin",
        "Long-Beaked Common Dolphin",
        "Long-finned Pilot Whale",
        "Longman's Beaked Whale",
        "Melon-headed Whale",
        "Northern Rightwhale Dolphin",
        "Omura’s whale",
        "Pacific White-Sided Dolphin",
        "Pantropical Spotted Dolphin",
        "Peale’s Dolphin",
        "Pygmy Killer Whale",
        "Risso’s Dolphin",
        "Rough-Toothed Dolphin",
        "Sei Whale",
        "Short-Beaked Common Dolphin",
        "Short-finned Pilot Whale",
        "Southern Bottlenose Whale",
        "Southern Rightwhale Dolphin",
        "Sperm Whale",
        "Spinner Dolphin",
        "Striped Dolphin",
        "Tucuxi",
        "White-Beaked Dolphin"
    ], JD = [
        "Aberdeen Angus",
        "Abergele",
        "Abigar",
        "Abondance",
        "Abyssinian Shorthorned Zebu",
        "Aceh",
        "Achham",
        "Adamawa",
        "Adaptaur",
        "Afar",
        "Africangus",
        "Afrikaner",
        "Agerolese",
        "Alambadi",
        "Alatau",
        "Albanian",
        "Albera",
        "Alderney",
        "Alentejana",
        "Aleutian wild cattle",
        "Aliad Dinka",
        "Alistana-Sanabresa",
        "Allmogekor",
        "Alur",
        "American",
        "American Angus",
        "American Beef Friesian",
        "American Brown Swiss",
        "American Milking Devon",
        "American White Park",
        "Amerifax",
        "Amrit Mahal",
        "Amsterdam Island cattle",
        "Anatolian Black",
        "Andalusian Black",
        "Andalusian Blond",
        "Andalusian Grey",
        "Angeln",
        "Angoni",
        "Ankina",
        "Ankole",
        "Ankole-Watusi",
        "Aracena",
        "Arado",
        "Argentine Criollo",
        "Argentine Friesian",
        "Armorican",
        "Arouquesa",
        "Arsi",
        "Asturian Mountain",
        "Asturian Valley",
        "Aubrac",
        "Aulie-Ata",
        "Aure et Saint-Girons",
        "Australian Braford",
        "Australian Brangus",
        "Australian Charbray",
        "Australian Friesian Sahiwal",
        "Australian Lowline",
        "Australian Milking Zebu",
        "Australian Shorthorn",
        "Austrian Simmental",
        "Austrian Yellow",
        "Avileña-Negra Ibérica",
        "Avétonou",
        "Aweil Dinka",
        "Ayrshire",
        "Azaouak",
        "Azebuado",
        "Azerbaijan Zebu",
        "Azores",
        "Bachaur cattle",
        "Baherie cattle",
        "Bakosi cattle",
        "Balancer",
        "Baoule",
        "Bargur cattle",
        "Barrosã",
        "Barzona",
        "Bazadaise",
        "Beef Freisian",
        "Beefalo",
        "Beefmaker",
        "Beefmaster",
        "Begayt",
        "Belgian Blue",
        "Belgian Red",
        "Belgian Red Pied",
        "Belgian White-and-Red",
        "Belmont Red",
        "Belted Galloway",
        "Bernese",
        "Berrenda cattle",
        "Betizu",
        "Bianca Modenese",
        "Blaarkop",
        "Black Angus",
        "Black Baldy",
        "Black Hereford",
        "Blanca Cacereña",
        "Blanco Orejinegro BON",
        "Blonde d'Aquitaine",
        "Blue Albion",
        "Blue Grey",
        "Bohuskulla",
        "Bonsmara",
        "Boran",
        "Boškarin",
        "Braford",
        "Brahman",
        "Brahmousin",
        "Brangus",
        "Braunvieh",
        "Brava",
        "Breed",
        "British Friesian",
        "British White",
        "Brown Carpathian",
        "Brown Caucasian",
        "Brown Swiss",
        "Bue Lingo",
        "Burlina",
        "Bushuyev",
        "Butana cattle",
        "Buša cattle",
        "Cachena",
        "Caldelana",
        "Camargue",
        "Campbell Island cattle",
        "Canadian Speckle Park",
        "Canadienne",
        "Canaria",
        "Canchim",
        "Caracu",
        "Carinthian Blondvieh",
        "Carora",
        "Charbray",
        "Charolais",
        "Chateaubriand",
        "Chiangus",
        "Chianina",
        "Chillingham cattle",
        "Chinese Black Pied",
        "Cholistani",
        "Coloursided White Back",
        "Commercial",
        "Corriente",
        "Corsican cattle",
        "Costeño con Cuernos",
        "Crioulo Lageano",
        "Cárdena Andaluza",
        "Dajal",
        "Dangi cattle",
        "Danish Black-Pied",
        "Danish Jersey",
        "Danish Red",
        "Deep Red cattle",
        "Deoni",
        "Devon",
        "Dexter cattle",
        "Dhanni",
        "Doayo cattle",
        "Doela",
        "Drakensberger",
        "Droughtmaster",
        "Dulong'",
        "Dutch Belted",
        "Dutch Friesian",
        "Dwarf Lulu",
        "Dølafe",
        "East Anatolian Red",
        "Eastern Finncattle",
        "Eastern Red Polled",
        "Enderby Island cattle",
        "English Longhorn",
        "Ennstaler Bergscheck",
        "Estonian Holstein",
        "Estonian Native",
        "Estonian Red cattle",
        "Finncattle",
        "Finnish Ayrshire",
        "Finnish Holstein-Friesian",
        "Fjäll",
        "Fleckvieh",
        "Florida Cracker cattle",
        "Fogera",
        "French Simmental",
        "Fribourgeoise",
        "Friesian Red and White",
        "Fulani Sudanese",
        "Fēng Cattle",
        "Galician Blond",
        "Galloway cattle",
        "Gangatiri",
        "Gaolao",
        "Garvonesa",
        "Gascon cattle",
        "Gelbvieh",
        "Georgian Mountain cattle",
        "German Angus",
        "German Black Pied Dairy",
        "German Black Pied cattle",
        "German Red Pied",
        "Gir",
        "Glan cattle",
        "Gloucester",
        "Gobra",
        "Greek Shorthorn",
        "Greek Steppe",
        "Greyman cattle",
        "Gudali",
        "Guernsey cattle",
        "Guzerá",
        "Hallikar4",
        "Hanwoo",
        "Hariana cattle",
        "Hartón del Valle",
        "Harzer Rotvieh",
        "Hays Converter",
        "Heck cattle",
        "Hereford",
        "Herens",
        "Highland cattle",
        "Hinterwald",
        "Holando-Argentino",
        "Holstein Friesian cattle",
        "Horro",
        "Hungarian Grey",
        "Huáng Cattle",
        "Hybridmaster",
        "Iberian cattle",
        "Icelandic",
        "Illawarra cattle",
        "Improved Red and White",
        "Indo-Brazilian",
        "Irish Moiled",
        "Israeli Holstein",
        "Israeli Red",
        "Istoben cattle",
        "Istrian cattle",
        "Jamaica Black",
        "Jamaica Hope",
        "Jamaica Red",
        "Japanese Brown",
        "Jarmelista",
        "Javari cattle",
        "Jersey cattle",
        "Jutland cattle",
        "Kabin Buri cattle",
        "Kalmyk cattle",
        "Kamphaeng Saen cattle",
        "Kangayam",
        "Kankrej",
        "Karan Swiss",
        "Kasaragod Dwarf cattle",
        "Kathiawadi",
        "Kazakh Whiteheaded",
        "Kenana cattle",
        "Kenkatha cattle",
        "Kerry cattle",
        "Kherigarh",
        "Khillari cattle",
        "Kholomogory",
        "Korat Wagyu",
        "Kostroma cattle",
        "Krishna Valley cattle",
        "Kurgan cattle",
        "Kuri",
        "La Reina cattle",
        "Lakenvelder cattle",
        "Lampurger",
        "Latvian Blue",
        "Latvian Brown",
        "Latvian Danish Red",
        "Lebedyn",
        "Levantina",
        "Limia cattle",
        "Limousin",
        "Limpurger",
        "Lincoln Red",
        "Lineback",
        "Lithuanian Black-and-White",
        "Lithuanian Light Grey",
        "Lithuanian Red",
        "Lithuanian White-Backed",
        "Lohani cattle",
        "Lourdais",
        "Lucerna cattle",
        "Luing",
        "Madagascar Zebu",
        "Madura",
        "Maine-Anjou",
        "Malnad Gidda",
        "Malvi",
        "Mandalong Special",
        "Mantequera Leonesa",
        "Maramureş Brown",
        "Marchigiana",
        "Maremmana",
        "Marinhoa",
        "Maronesa",
        "Masai",
        "Mashona",
        "Menorquina",
        "Mertolenga",
        "Meuse-Rhine-Issel",
        "Mewati",
        "Milking Shorthorn",
        "Minhota",
        "Mirandesa",
        "Mirkadim",
        "Mocăniţă",
        "Mollie",
        "Monchina",
        "Mongolian",
        "Montbéliarde",
        "Morucha",
        "Murboden",
        "Murnau-Werdenfels",
        "Murray Grey",
        "Muturu",
        "N'Dama",
        "Nagori",
        "Negra Andaluza",
        "Nelore",
        "Nguni",
        "Nimari",
        "Normande",
        "North Bengal Grey",
        "Northern Finncattle",
        "Northern Shorthorn",
        "Norwegian Red",
        "Ongole",
        "Original Simmental",
        "Pajuna",
        "Palmera",
        "Pantaneiro",
        "Parda Alpina",
        "Parthenaise",
        "Pasiega",
        "Pembroke",
        "Philippine Native",
        "Pie Rouge des Plaines",
        "Piedmontese cattle",
        "Pineywoods",
        "Pinzgauer",
        "Pirenaica",
        "Podolac",
        "Podolica",
        "Polish Black-and-White",
        "Polish Red",
        "Poll Shorthorn",
        "Polled Hereford",
        "Polled Shorthorn",
        "Ponwar",
        "Preta",
        "Pulikulam",
        "Punganur",
        "Pustertaler Sprinzen",
        "Qinchaun",
        "Queensland Miniature Boran",
        "RX3",
        "Ramo Grande",
        "Randall",
        "Raramuri Criollo",
        "Rathi",
        "Raya",
        "Red Angus",
        "Red Brangus",
        "Red Chittagong",
        "Red Fulani",
        "Red Gorbatov",
        "Red Holstein",
        "Red Kandhari",
        "Red Mingrelian",
        "Red Poll",
        "Red Polled Østland",
        "Red Sindhi",
        "Retinta",
        "Riggit Galloway",
        "Ringamåla",
        "Rohjan",
        "Romagnola",
        "Romanian Bălţata",
        "Romanian Steppe Gray",
        "Romosinuano",
        "Russian Black Pied",
        "Rätisches Grauvieh",
        "Sahiwal",
        "Salers",
        "Salorn",
        "Sanga",
        "Sanhe",
        "Santa Cruz",
        "Santa Gertrudis",
        "Sayaguesa",
        "Schwyz",
        "Selembu",
        "Senepol",
        "Serbian Pied",
        "Serbian Steppe",
        "Sheko",
        "Shetland",
        "Shorthorn",
        "Siboney de Cuba",
        "Simbrah",
        "Simford",
        "Simmental",
        "Siri",
        "South Devon",
        "Spanish Fighting Bull",
        "Speckle Park",
        "Square Meater",
        "Sussex",
        "Swedish Friesian",
        "Swedish Polled",
        "Swedish Red Pied",
        "Swedish Red Polled",
        "Swedish Red-and-White",
        "Tabapuã",
        "Tarentaise",
        "Tasmanian Grey",
        "Tauros",
        "Telemark",
        "Texas Longhorn",
        "Texon",
        "Thai Black",
        "Thai Fighting Bull",
        "Thai Friesian",
        "Thai Milking Zebu",
        "Tharparkar",
        "Tswana",
        "Tudanca",
        "Tuli",
        "Tulim",
        "Turkish Grey Steppe",
        "Tux-Zillertal",
        "Tyrol Grey",
        "Ukrainian Grey",
        "Umblachery",
        "Valdostana Castana",
        "Valdostana Pezzata Nera",
        "Valdostana Pezzata Rossa",
        "Vaynol",
        "Vechur8",
        "Vestland Fjord",
        "Vestland Red Polled",
        "Vianesa",
        "Volinian Beef",
        "Vorderwald",
        "Vosgienne",
        "Väneko",
        "Waguli",
        "Wagyu",
        "Wangus",
        "Welsh Black",
        "Western Finncattle",
        "White Cáceres",
        "White Fulani",
        "White Lamphun",
        "White Park",
        "Whitebred Shorthorn",
        "Xingjiang Brown",
        "Yakutian",
        "Yanbian",
        "Yanhuang",
        "Yurino",
        "Zebu",
        "Évolène cattle",
        "Żubroń"
    ], ZD = [
        "African Slender-snouted Crocodile",
        "Alligator mississippiensis",
        "American Crocodile",
        "Australian Freshwater Crocodile",
        "Black Caiman",
        "Broad-snouted Caiman",
        "Chinese Alligator",
        "Cuban Crocodile",
        "Cuvier’s Dwarf Caiman",
        "Dwarf Crocodile",
        "Gharial",
        "Morelet’s Crocodile",
        "Mugger Crocodile",
        "New Guinea Freshwater Crocodile",
        "Nile Crocodile",
        "Orinoco Crocodile",
        "Philippine Crocodile",
        "Saltwater Crocodile",
        "Schneider’s Smooth-fronted Caiman",
        "Siamese Crocodile",
        "Spectacled Caiman",
        "Tomistoma",
        "West African Crocodile",
        "Yacare Caiman"
    ], QD = [
        "Affenpinscher",
        "Afghan Hound",
        "Aidi",
        "Airedale Terrier",
        "Akbash",
        "Akita",
        "Alano Español",
        "Alapaha Blue Blood Bulldog",
        "Alaskan Husky",
        "Alaskan Klee Kai",
        "Alaskan Malamute",
        "Alopekis",
        "Alpine Dachsbracke",
        "American Bulldog",
        "American Bully",
        "American Cocker Spaniel",
        "American English Coonhound",
        "American Foxhound",
        "American Hairless Terrier",
        "American Pit Bull Terrier",
        "American Staffordshire Terrier",
        "American Water Spaniel",
        "Andalusian Hound",
        "Anglo-Français de Petite Vénerie",
        "Appenzeller Sennenhund",
        "Ariegeois",
        "Armant",
        "Armenian Gampr dog",
        "Artois Hound",
        "Australian Cattle Dog",
        "Australian Kelpie",
        "Australian Shepherd",
        "Australian Stumpy Tail Cattle Dog",
        "Australian Terrier",
        "Austrian Black and Tan Hound",
        "Austrian Pinscher",
        "Azawakh",
        "Bakharwal dog",
        "Banjara Hound",
        "Barbado da Terceira",
        "Barbet",
        "Basenji",
        "Basque Shepherd Dog",
        "Basset Artésien Normand",
        "Basset Bleu de Gascogne",
        "Basset Fauve de Bretagne",
        "Basset Hound",
        "Bavarian Mountain Hound",
        "Beagle",
        "Beagle-Harrier",
        "Bearded Collie",
        "Beauceron",
        "Bedlington Terrier",
        "Belgian Shepherd",
        "Bergamasco Shepherd",
        "Berger Picard",
        "Bernese Mountain Dog",
        "Bhotia",
        "Bichon Frisé",
        "Billy",
        "Black Mouth Cur",
        "Black Norwegian Elkhound",
        "Black Russian Terrier",
        "Black and Tan Coonhound",
        "Bloodhound",
        "Blue Lacy",
        "Blue Picardy Spaniel",
        "Bluetick Coonhound",
        "Boerboel",
        "Bohemian Shepherd",
        "Bolognese",
        "Border Collie",
        "Border Terrier",
        "Borzoi",
        "Bosnian Coarse-haired Hound",
        "Boston Terrier",
        "Bouvier des Ardennes",
        "Bouvier des Flandres",
        "Boxer",
        "Boykin Spaniel",
        "Bracco Italiano",
        "Braque Francais",
        "Braque Saint-Germain",
        "Braque d'Auvergne",
        "Braque de l'Ariège",
        "Braque du Bourbonnais",
        "Briard",
        "Briquet Griffon Vendéen",
        "Brittany",
        "Broholmer",
        "Bruno Jura Hound",
        "Brussels Griffon",
        "Bucovina Shepherd Dog",
        "Bull Arab",
        "Bull Terrier",
        "Bulldog",
        "Bullmastiff",
        "Bully Kutta",
        "Burgos Pointer",
        "Cairn Terrier",
        "Campeiro Bulldog",
        "Can de Chira",
        "Canaan Dog",
        "Canadian Eskimo Dog",
        "Cane Corso",
        "Cane Paratore",
        "Cane di Oropa",
        "Cantabrian Water Dog",
        "Cardigan Welsh Corgi",
        "Carea Castellano Manchego",
        "Carolina Dog",
        "Carpathian Shepherd Dog",
        "Catahoula Leopard Dog",
        "Catalan Sheepdog",
        "Caucasian Shepherd Dog",
        "Cavalier King Charles Spaniel",
        "Central Asian Shepherd Dog",
        "Cesky Fousek",
        "Cesky Terrier",
        "Chesapeake Bay Retriever",
        "Chien Français Blanc et Noir",
        "Chien Français Blanc et Orange",
        "Chien Français Tricolore",
        "Chihuahua",
        "Chilean Terrier",
        "Chinese Chongqing Dog",
        "Chinese Crested Dog",
        "Chinook",
        "Chippiparai",
        "Chongqing dog",
        "Chortai",
        "Chow Chow",
        "Cimarrón Uruguayo",
        "Cirneco dell'Etna",
        "Clumber Spaniel",
        "Colombian fino hound",
        "Coton de Tulear",
        "Cretan Hound",
        "Croatian Sheepdog",
        "Curly-Coated Retriever",
        "Cursinu",
        "Czechoslovakian Wolfdog",
        "Cão Fila de São Miguel",
        "Cão da Serra de Aires",
        "Cão de Castro Laboreiro",
        "Cão de Gado Transmontano",
        "Dachshund",
        "Dalmatian",
        "Dandie Dinmont Terrier",
        "Danish-Swedish Farmdog",
        "Denmark Feist",
        "Dingo",
        "Doberman Pinscher",
        "Dogo Argentino",
        "Dogo Guatemalteco",
        "Dogo Sardesco",
        "Dogue Brasileiro",
        "Dogue de Bordeaux",
        "Drentse Patrijshond",
        "Drever",
        "Dunker",
        "Dutch Shepherd",
        "Dutch Smoushond",
        "East European Shepherd",
        "East Siberian Laika",
        "English Cocker Spaniel",
        "English Foxhound",
        "English Mastiff",
        "English Setter",
        "English Shepherd",
        "English Springer Spaniel",
        "English Toy Terrier",
        "Entlebucher Mountain Dog",
        "Estonian Hound",
        "Estrela Mountain Dog",
        "Eurasier",
        "Field Spaniel",
        "Fila Brasileiro",
        "Finnish Hound",
        "Finnish Lapphund",
        "Finnish Spitz",
        "Flat-Coated Retriever",
        "French Bulldog",
        "French Spaniel",
        "Galgo Español",
        "Galician Shepherd Dog",
        "Garafian Shepherd",
        "Gascon Saintongeois",
        "Georgian Shepherd",
        "German Hound",
        "German Longhaired Pointer",
        "German Pinscher",
        "German Roughhaired Pointer",
        "German Shepherd Dog",
        "German Shorthaired Pointer",
        "German Spaniel",
        "German Spitz",
        "German Wirehaired Pointer",
        "Giant Schnauzer",
        "Glen of Imaal Terrier",
        "Golden Retriever",
        "Gordon Setter",
        "Gończy Polski",
        "Grand Anglo-Français Blanc et Noir",
        "Grand Anglo-Français Blanc et Orange",
        "Grand Anglo-Français Tricolore",
        "Grand Basset Griffon Vendéen",
        "Grand Bleu de Gascogne",
        "Grand Griffon Vendéen",
        "Great Dane",
        "Greater Swiss Mountain Dog",
        "Greek Harehound",
        "Greek Shepherd",
        "Greenland Dog",
        "Greyhound",
        "Griffon Bleu de Gascogne",
        "Griffon Fauve de Bretagne",
        "Griffon Nivernais",
        "Gull Dong",
        "Gull Terrier",
        "Hamiltonstövare",
        "Hanover Hound",
        "Harrier",
        "Havanese",
        "Hierran Wolfdog",
        "Hokkaido",
        "Hovawart",
        "Huntaway",
        "Hygen Hound",
        "Hällefors Elkhound",
        "Ibizan Hound",
        "Icelandic Sheepdog",
        "Indian Spitz",
        "Indian pariah dog",
        "Irish Red and White Setter",
        "Irish Setter",
        "Irish Terrier",
        "Irish Water Spaniel",
        "Irish Wolfhound",
        "Istrian Coarse-haired Hound",
        "Istrian Shorthaired Hound",
        "Italian Greyhound",
        "Jack Russell Terrier",
        "Jagdterrier",
        "Japanese Chin",
        "Japanese Spitz",
        "Japanese Terrier",
        "Jindo",
        "Jonangi",
        "Kai Ken",
        "Kaikadi",
        "Kangal Shepherd Dog",
        "Kanni",
        "Karakachan dog",
        "Karelian Bear Dog",
        "Kars",
        "Karst Shepherd",
        "Keeshond",
        "Kerry Beagle",
        "Kerry Blue Terrier",
        "King Charles Spaniel",
        "King Shepherd",
        "Kintamani",
        "Kishu",
        "Kokoni",
        "Kombai",
        "Komondor",
        "Kooikerhondje",
        "Koolie",
        "Koyun dog",
        "Kromfohrländer",
        "Kuchi",
        "Kuvasz",
        "Labrador Retriever",
        "Lagotto Romagnolo",
        "Lakeland Terrier",
        "Lancashire Heeler",
        "Landseer",
        "Lapponian Herder",
        "Large Münsterländer",
        "Leonberger",
        "Levriero Sardo",
        "Lhasa Apso",
        "Lithuanian Hound",
        "Lupo Italiano",
        "Löwchen",
        "Mackenzie River Husky",
        "Magyar agár",
        "Mahratta Greyhound",
        "Maltese",
        "Manchester Terrier",
        "Maremmano-Abruzzese Sheepdog",
        "McNab dog",
        "Miniature American Shepherd",
        "Miniature Bull Terrier",
        "Miniature Fox Terrier",
        "Miniature Pinscher",
        "Miniature Schnauzer",
        "Molossus of Epirus",
        "Montenegrin Mountain Hound",
        "Mountain Cur",
        "Mountain Feist",
        "Mucuchies",
        "Mudhol Hound",
        "Mudi",
        "Neapolitan Mastiff",
        "New Guinea Singing Dog",
        "New Zealand Heading Dog",
        "Newfoundland",
        "Norfolk Terrier",
        "Norrbottenspets",
        "Northern Inuit Dog",
        "Norwegian Buhund",
        "Norwegian Elkhound",
        "Norwegian Lundehund",
        "Norwich Terrier",
        "Nova Scotia Duck Tolling Retriever",
        "Old Croatian Sighthound",
        "Old Danish Pointer",
        "Old English Sheepdog",
        "Old English Terrier",
        "Olde English Bulldogge",
        "Otterhound",
        "Pachon Navarro",
        "Paisley Terrier",
        "Pampas Deerhound",
        "Papillon",
        "Parson Russell Terrier",
        "Pastore della Lessinia e del Lagorai",
        "Patagonian Sheepdog",
        "Patterdale Terrier",
        "Pekingese",
        "Pembroke Welsh Corgi",
        "Perro Majorero",
        "Perro de Pastor Mallorquin",
        "Perro de Presa Canario",
        "Perro de Presa Mallorquin",
        "Peruvian Inca Orchid",
        "Petit Basset Griffon Vendéen",
        "Petit Bleu de Gascogne",
        "Phalène",
        "Pharaoh Hound",
        "Phu Quoc Ridgeback",
        "Picardy Spaniel",
        "Plott Hound",
        "Plummer Terrier",
        "Podenco Canario",
        "Podenco Valenciano",
        "Pointer",
        "Poitevin",
        "Polish Greyhound",
        "Polish Hound",
        "Polish Lowland Sheepdog",
        "Polish Tatra Sheepdog",
        "Pomeranian",
        "Pont-Audemer Spaniel",
        "Poodle",
        "Porcelaine",
        "Portuguese Podengo",
        "Portuguese Pointer",
        "Portuguese Water Dog",
        "Posavac Hound",
        "Pražský Krysařík",
        "Pshdar Dog",
        "Pudelpointer",
        "Pug",
        "Puli",
        "Pumi",
        "Pungsan Dog",
        "Pyrenean Mastiff",
        "Pyrenean Mountain Dog",
        "Pyrenean Sheepdog",
        "Rafeiro do Alentejo",
        "Rajapalayam",
        "Rampur Greyhound",
        "Rat Terrier",
        "Ratonero Bodeguero Andaluz",
        "Ratonero Mallorquin",
        "Ratonero Murciano de Huerta",
        "Ratonero Valenciano",
        "Redbone Coonhound",
        "Rhodesian Ridgeback",
        "Romanian Mioritic Shepherd Dog",
        "Romanian Raven Shepherd Dog",
        "Rottweiler",
        "Rough Collie",
        "Russian Spaniel",
        "Russian Toy",
        "Russo-European Laika",
        "Saarloos Wolfdog",
        "Sabueso Español",
        "Saint Bernard",
        "Saint Hubert Jura Hound",
        "Saint-Usuge Spaniel",
        "Saluki",
        "Samoyed",
        "Sapsali",
        "Sarabi dog",
        "Sardinian Shepherd Dog",
        "Schapendoes",
        "Schillerstövare",
        "Schipperke",
        "Schweizer Laufhund",
        "Schweizerischer Niederlaufhund",
        "Scottish Deerhound",
        "Scottish Terrier",
        "Sealyham Terrier",
        "Segugio Italiano",
        "Segugio Maremmano",
        "Segugio dell'Appennino",
        "Seppala Siberian Sleddog",
        "Serbian Hound",
        "Serbian Tricolour Hound",
        "Serrano Bulldog",
        "Shar Pei",
        "Shetland Sheepdog",
        "Shiba Inu",
        "Shih Tzu",
        "Shikoku",
        "Shiloh Shepherd",
        "Siberian Husky",
        "Silken Windhound",
        "Silky Terrier",
        "Sinhala Hound",
        "Skye Terrier",
        "Sloughi",
        "Slovakian Wirehaired Pointer",
        "Slovenský Cuvac",
        "Slovenský Kopov",
        "Smalandstövare",
        "Small Greek domestic dog",
        "Small Münsterländer",
        "Smooth Collie",
        "Smooth Fox Terrier",
        "Soft-Coated Wheaten Terrier",
        "South Russian Ovcharka",
        "Spanish Mastiff",
        "Spanish Water Dog",
        "Spinone Italiano",
        "Sporting Lucas Terrier",
        "Stabyhoun",
        "Staffordshire Bull Terrier",
        "Standard Schnauzer",
        "Stephens Stock",
        "Styrian Coarse-haired Hound",
        "Sussex Spaniel",
        "Swedish Elkhound",
        "Swedish Lapphund",
        "Swedish Vallhund",
        "Swedish White Elkhound",
        "Taigan",
        "Taiwan Dog",
        "Tamaskan Dog",
        "Teddy Roosevelt Terrier",
        "Telomian",
        "Tenterfield Terrier",
        "Terrier Brasileiro",
        "Thai Bangkaew Dog",
        "Thai Ridgeback",
        "Tibetan Mastiff",
        "Tibetan Spaniel",
        "Tibetan Terrier",
        "Tornjak",
        "Tosa",
        "Toy Fox Terrier",
        "Toy Manchester Terrier",
        "Transylvanian Hound",
        "Treeing Cur",
        "Treeing Feist",
        "Treeing Tennessee Brindle",
        "Treeing Walker Coonhound",
        "Trigg Hound",
        "Tyrolean Hound",
        "Vikhan",
        "Villano de Las Encartaciones",
        "Villanuco de Las Encartaciones",
        "Vizsla",
        "Volpino Italiano",
        "Weimaraner",
        "Welsh Sheepdog",
        "Welsh Springer Spaniel",
        "Welsh Terrier",
        "West Highland White Terrier",
        "West Siberian Laika",
        "Westphalian Dachsbracke",
        "Wetterhoun",
        "Whippet",
        "White Shepherd",
        "White Swiss Shepherd Dog",
        "Wire Fox Terrier",
        "Wirehaired Pointing Griffon",
        "Wirehaired Vizsla",
        "Xiasi Dog",
        "Xoloitzcuintli",
        "Yakutian Laika",
        "Yorkshire Terrier",
        "Šarplaninac"
    ], e2 = [
        "Alaska pollock",
        "Albacore",
        "Amur catfish",
        "Araucanian herring",
        "Argentine hake",
        "Asari",
        "Asian swamp eel",
        "Atlantic cod",
        "Atlantic herring",
        "Atlantic horse mackerel",
        "Atlantic mackerel",
        "Atlantic menhaden",
        "Atlantic salmon",
        "Bigeye scad",
        "Bigeye tuna",
        "Bighead carp",
        "Black carp",
        "Blood cockle",
        "Blue swimming crab",
        "Blue whiting",
        "Bombay-duck",
        "Bonga shad",
        "California pilchard",
        "Cape horse mackerel",
        "Capelin",
        "Catla",
        "Channel catfish",
        "Chilean jack mackerel",
        "Chinese perch",
        "Chinese softshell turtle",
        "Chub mackerel",
        "Chum salmon",
        "Common carp",
        "Crucian carp",
        "Daggertooth pike conger",
        "European anchovy",
        "European pilchard",
        "European sprat",
        "Filipino Venus",
        "Gazami crab",
        "Goldstripe sardinella",
        "Grass carp",
        "Gulf menhaden",
        "Haddock",
        "Hilsa shad",
        "Indian mackerel",
        "Indian oil sardine",
        "Iridescent shark",
        "Japanese anchovy",
        "Japanese cockle",
        "Japanese common catfish",
        "Japanese flying squid",
        "Japanese jack mackerel",
        "Japanese littleneck",
        "Japanese pilchard",
        "Jumbo flying squid",
        "Kawakawa",
        "Korean bullhead",
        "Largehead hairtail",
        "Longtail tuna",
        "Madeiran sardinella",
        "Mandarin fish",
        "Milkfish",
        "Mrigal carp",
        "Narrow-barred Spanish mackerel",
        "Nile perch",
        "Nile tilapia",
        "North Pacific hake",
        "Northern snakehead",
        "Pacific anchoveta",
        "Pacific cod",
        "Pacific herring",
        "Pacific sand lance",
        "Pacific sandlance",
        "Pacific saury",
        "Pacific thread herring",
        "Peruvian anchoveta",
        "Pink salmon",
        "Pollock",
        "Pond loach",
        "Rainbow trout",
        "Rohu",
        "Round sardinella",
        "Short mackerel",
        "Silver carp",
        "Silver cyprinid",
        "Skipjack tuna",
        "Southern African anchovy",
        "Southern rough shrimp",
        "Whiteleg shrimp",
        "Wuchang bream",
        "Yellow croaker",
        "Yellowfin tuna",
        "Yellowhead catfish",
        "Yellowstripe scad"
    ], t2 = [
        "Abaco Barb",
        "Abtenauer",
        "Abyssinian",
        "Aegidienberger",
        "Akhal-Teke",
        "Albanian Horse",
        "Altai Horse",
        "Altèr Real",
        "American Albino",
        "American Cream Draft",
        "American Indian Horse",
        "American Paint Horse",
        "American Quarter Horse",
        "American Saddlebred",
        "American Warmblood",
        "Andalusian Horse",
        "Andravida Horse",
        "Anglo-Arabian",
        "Anglo-Arabo-Sardo",
        "Anglo-Kabarda",
        "Appaloosa",
        "AraAppaloosa",
        "Arabian Horse",
        "Ardennes Horse",
        "Arenberg-Nordkirchen",
        "Argentine Criollo",
        "Asian wild Horse",
        "Assateague Horse",
        "Asturcón",
        "Augeron",
        "Australian Brumby",
        "Australian Draught Horse",
        "Australian Stock Horse",
        "Austrian Warmblood",
        "Auvergne Horse",
        "Auxois",
        "Azerbaijan Horse",
        "Azteca Horse",
        "Baise Horse",
        "Bale",
        "Balearic Horse",
        "Balikun Horse",
        "Baluchi Horse",
        "Banker Horse",
        "Barb Horse",
        "Bardigiano",
        "Bashkir Curly",
        "Basque Mountain Horse",
        "Bavarian Warmblood",
        "Belgian Half-blood",
        "Belgian Horse",
        "Belgian Warmblood",
        "Bhutia Horse",
        "Black Forest Horse",
        "Blazer Horse",
        "Boerperd",
        "Borana",
        "Boulonnais Horse",
        "Brabant",
        "Brandenburger",
        "Brazilian Sport Horse",
        "Breton Horse",
        "Brumby",
        "Budyonny Horse",
        "Burguete Horse",
        "Burmese Horse",
        "Byelorussian Harness Horse",
        "Calabrese Horse",
        "Camargue Horse",
        "Camarillo White Horse",
        "Campeiro",
        "Campolina",
        "Canadian Horse",
        "Canadian Pacer",
        "Carolina Marsh Tacky",
        "Carthusian Horse",
        "Caspian Horse",
        "Castilian Horse",
        "Castillonnais",
        "Catria Horse",
        "Cavallo Romano della Maremma Laziale",
        "Cerbat Mustang",
        "Chickasaw Horse",
        "Chilean Corralero",
        "Choctaw Horse",
        "Cleveland Bay",
        "Clydesdale Horse",
        "Cob",
        "Coldblood Trotter",
        "Colonial Spanish Horse",
        "Colorado Ranger",
        "Comtois Horse",
        "Corsican Horse",
        "Costa Rican Saddle Horse",
        "Cretan Horse",
        "Criollo Horse",
        "Croatian Coldblood",
        "Cuban Criollo",
        "Cumberland Island Horse",
        "Curly Horse",
        "Czech Warmblood",
        "Daliboz",
        "Danish Warmblood",
        "Danube Delta Horse",
        "Dole Gudbrandsdal",
        "Don",
        "Dongola Horse",
        "Draft Trotter",
        "Dutch Harness Horse",
        "Dutch Heavy Draft",
        "Dutch Warmblood",
        "Dzungarian Horse",
        "East Bulgarian",
        "East Friesian Horse",
        "Estonian Draft",
        "Estonian Horse",
        "Falabella",
        "Faroese",
        "Finnhorse",
        "Fjord Horse",
        "Fleuve",
        "Florida Cracker Horse",
        "Foutanké",
        "Frederiksborg Horse",
        "Freiberger",
        "French Trotter",
        "Friesian Cross",
        "Friesian Horse",
        "Friesian Sporthorse",
        "Furioso-North Star",
        "Galiceño",
        "Galician Pony",
        "Gelderland Horse",
        "Georgian Grande Horse",
        "German Warmblood",
        "Giara Horse",
        "Gidran",
        "Groningen Horse",
        "Gypsy Horse",
        "Hackney Horse",
        "Haflinger",
        "Hanoverian Horse",
        "Heck Horse",
        "Heihe Horse",
        "Henson Horse",
        "Hequ Horse",
        "Hirzai",
        "Hispano-Bretón",
        "Holsteiner Horse",
        "Horro",
        "Hungarian Warmblood",
        "Icelandic Horse",
        "Iomud",
        "Irish Draught",
        "Irish Sport Horse sometimes called Irish Hunter",
        "Italian Heavy Draft",
        "Italian Trotter",
        "Jaca Navarra",
        "Jeju Horse",
        "Jutland Horse",
        "Kabarda Horse",
        "Kafa",
        "Kaimanawa Horses",
        "Kalmyk Horse",
        "Karabair",
        "Karabakh Horse",
        "Karachai Horse",
        "Karossier",
        "Kathiawari",
        "Kazakh Horse",
        "Kentucky Mountain Saddle Horse",
        "Kiger Mustang",
        "Kinsky Horse",
        "Kisber Felver",
        "Kiso Horse",
        "Kladruber",
        "Knabstrupper",
        "Konik",
        "Kundudo",
        "Kustanair",
        "Kyrgyz Horse",
        "Latvian Horse",
        "Lipizzan",
        "Lithuanian Heavy Draught",
        "Lokai",
        "Losino Horse",
        "Lusitano",
        "Lyngshest",
        "M'Bayar",
        "M'Par",
        "Mallorquín",
        "Malopolski",
        "Mangalarga",
        "Mangalarga Marchador",
        "Maremmano",
        "Marismeño Horse",
        "Marsh Tacky",
        "Marwari Horse",
        "Mecklenburger",
        "Menorquín",
        "Messara Horse",
        "Metis Trotter",
        "Mezőhegyesi Sport Horse",
        "Međimurje Horse",
        "Miniature Horse",
        "Misaki Horse",
        "Missouri Fox Trotter",
        "Monchina",
        "Mongolian Horse",
        "Mongolian Wild Horse",
        "Monterufolino",
        "Morab",
        "Morgan Horse",
        "Mountain Pleasure Horse",
        "Moyle Horse",
        "Murakoz Horse",
        "Murgese",
        "Mustang Horse",
        "Mérens Horse",
        "Namib Desert Horse",
        "Nangchen Horse",
        "National Show Horse",
        "Nez Perce Horse",
        "Nivernais Horse",
        "Nokota Horse",
        "Noma",
        "Nonius Horse",
        "Nooitgedachter",
        "Nordlandshest",
        "Noriker Horse",
        "Norman Cob",
        "North American Single-Footer Horse",
        "North Swedish Horse",
        "Norwegian Coldblood Trotter",
        "Norwegian Fjord",
        "Novokirghiz",
        "Oberlander Horse",
        "Ogaden",
        "Oldenburg Horse",
        "Orlov trotter",
        "Ostfriesen",
        "Paint",
        "Pampa Horse",
        "Paso Fino",
        "Pentro Horse",
        "Percheron",
        "Persano Horse",
        "Peruvian Paso",
        "Pintabian",
        "Pleven Horse",
        "Poitevin Horse",
        "Posavac Horse",
        "Pottok",
        "Pryor Mountain Mustang",
        "Przewalski's Horse",
        "Pura Raza Española",
        "Purosangue Orientale",
        "Qatgani",
        "Quarab",
        "Quarter Horse",
        "Racking Horse",
        "Retuerta Horse",
        "Rhenish German Coldblood",
        "Rhinelander Horse",
        "Riwoche Horse",
        "Rocky Mountain Horse",
        "Romanian Sporthorse",
        "Rottaler",
        "Russian Don",
        "Russian Heavy Draft",
        "Russian Trotter",
        "Saddlebred",
        "Salerno Horse",
        "Samolaco Horse",
        "San Fratello Horse",
        "Sarcidano Horse",
        "Sardinian Anglo-Arab",
        "Schleswig Coldblood",
        "Schwarzwälder Kaltblut",
        "Selale",
        "Sella Italiano",
        "Selle Français",
        "Shagya Arabian",
        "Shan Horse",
        "Shire Horse",
        "Siciliano Indigeno",
        "Silesian Horse",
        "Sokolsky Horse",
        "Sorraia",
        "South German Coldblood",
        "Soviet Heavy Draft",
        "Spanish Anglo-Arab",
        "Spanish Barb",
        "Spanish Jennet Horse",
        "Spanish Mustang",
        "Spanish Tarpan",
        "Spanish-Norman Horse",
        "Spiti Horse",
        "Spotted Saddle Horse",
        "Standardbred Horse",
        "Suffolk Punch",
        "Swedish Ardennes",
        "Swedish Warmblood",
        "Swedish coldblood trotter",
        "Swiss Warmblood",
        "Taishū Horse",
        "Takhi",
        "Tawleed",
        "Tchernomor",
        "Tennessee Walking Horse",
        "Tersk Horse",
        "Thoroughbred",
        "Tiger Horse",
        "Tinker Horse",
        "Tolfetano",
        "Tori Horse",
        "Trait Du Nord",
        "Trakehner",
        "Tsushima",
        "Tuigpaard",
        "Ukrainian Riding Horse",
        "Unmol Horse",
        "Uzunyayla",
        "Ventasso Horse",
        "Virginia Highlander",
        "Vlaamperd",
        "Vladimir Heavy Draft",
        "Vyatka",
        "Waler",
        "Waler Horse",
        "Walkaloosa",
        "Warlander",
        "Warmblood",
        "Welsh Cob",
        "Westphalian Horse",
        "Wielkopolski",
        "Württemberger",
        "Xilingol Horse",
        "Yakutian Horse",
        "Yili Horse",
        "Yonaguni Horse",
        "Zaniskari",
        "Zhemaichu",
        "Zweibrücker",
        "Žemaitukas"
    ], a2 = [
        "Acacia-ants",
        "Acorn-plum gall",
        "Aerial yellowjacket",
        "Africanized honey bee",
        "Allegheny mound ant",
        "Almond stone wasp",
        "Ant",
        "Arboreal ant",
        "Argentine ant",
        "Asian paper wasp",
        "Baldfaced hornet",
        "Bee",
        "Bigheaded ant",
        "Black and yellow mud dauber",
        "Black carpenter ant",
        "Black imported fire ant",
        "Blue horntail woodwasp",
        "Blue orchard bee",
        "Braconid wasp",
        "Bumble bee",
        "Carpenter ant",
        "Carpenter wasp",
        "Chalcid wasp",
        "Cicada killer",
        "Citrus blackfly parasitoid",
        "Common paper wasp",
        "Crazy ant",
        "Cuckoo wasp",
        "Cynipid gall wasp",
        "Eastern Carpenter bee",
        "Eastern yellowjacket",
        "Elm sawfly",
        "Encyrtid wasp",
        "Erythrina gall wasp",
        "Eulophid wasp",
        "European hornet",
        "European imported fire ant",
        "False honey ant",
        "Fire ant",
        "Forest bachac",
        "Forest yellowjacket",
        "German yellowjacket",
        "Ghost ant",
        "Giant ichneumon wasp",
        "Giant resin bee",
        "Giant wood wasp",
        "Golden northern bumble bee",
        "Golden paper wasp",
        "Gouty oak gall",
        "Grass Carrying Wasp",
        "Great black wasp",
        "Great golden digger wasp",
        "Hackberry nipple gall parasitoid",
        "Honey bee",
        "Horned oak gall",
        "Horse guard wasp",
        "Hunting wasp",
        "Ichneumonid wasp",
        "Keyhole wasp",
        "Knopper gall",
        "Large garden bumble bee",
        "Large oak-apple gall",
        "Leafcutting bee",
        "Little fire ant",
        "Little yellow ant",
        "Long-horned bees",
        "Long-legged ant",
        "Macao paper wasp",
        "Mallow bee",
        "Marble gall",
        "Mossyrose gall wasp",
        "Mud-daubers",
        "Multiflora rose seed chalcid",
        "Oak apple gall wasp",
        "Oak rough bulletgall wasp",
        "Oak saucer gall",
        "Oak shoot sawfly",
        "Odorous house ant",
        "Orange-tailed bumble bee",
        "Orangetailed potter wasp",
        "Oriental chestnut gall wasp",
        "Paper wasp",
        "Pavement ant",
        "Pigeon tremex",
        "Pip gall wasp",
        "Prairie yellowjacket",
        "Pteromalid wasp",
        "Pyramid ant",
        "Raspberry Horntail",
        "Red ant",
        "Red carpenter ant",
        "Red harvester ant",
        "Red imported fire ant",
        "Red wasp",
        "Red wood ant",
        "Red-tailed wasp",
        "Reddish carpenter ant",
        "Rough harvester ant",
        "Sawfly parasitic wasp",
        "Scale parasitoid",
        "Silky ant",
        "Sirex woodwasp",
        "Siricid woodwasp",
        "Smaller yellow ant",
        "Southeastern blueberry bee",
        "Southern fire ant",
        "Southern yellowjacket",
        "Sphecid wasp",
        "Stony gall",
        "Sweat bee",
        "Texas leafcutting ant",
        "Tiphiid wasp",
        "Torymid wasp",
        "Tramp ant",
        "Valentine ant",
        "Velvet ant",
        "Vespid wasp",
        "Weevil parasitoid",
        "Western harvester ant",
        "Western paper wasp",
        "Western thatching ant",
        "Western yellowjacket",
        "White-horned horntail",
        "Willow shoot sawfly",
        "Woodwasp",
        "Wool sower gall maker",
        "Yellow Crazy Ant",
        "Yellow and black potter wasp",
        "Yellow-horned horntail"
    ], r2 = [
        "Asiatic Lion",
        "Barbary Lion",
        "Cape lion",
        "Masai Lion",
        "Northeast Congo Lion",
        "Transvaal lion",
        "West African Lion"
    ], n2 = [
        "Ace",
        "Archie",
        "Bailey",
        "Bandit",
        "Bella",
        "Bentley",
        "Bruno",
        "Buddy",
        "Charlie",
        "Coco",
        "Cookie",
        "Cooper",
        "Daisy",
        "Dixie",
        "Finn",
        "Ginger",
        "Gracie",
        "Gus",
        "Hank",
        "Jack",
        "Jax",
        "Joey",
        "Kobe",
        "Leo",
        "Lola",
        "Louie",
        "Lucy",
        "Maggie",
        "Max",
        "Mia",
        "Milo",
        "Molly",
        "Murphey",
        "Nala",
        "Nova",
        "Ollie",
        "Oreo",
        "Rosie",
        "Scout",
        "Stella",
        "Teddy",
        "Tuffy"
    ], i2 = [
        "American",
        "American Chinchilla",
        "American Fuzzy Lop",
        "American Sable",
        "Argente Brun",
        "Belgian Hare",
        "Beveren",
        "Blanc de Hotot",
        "Britannia Petite",
        "Californian",
        "Champagne D’Argent",
        "Checkered Giant",
        "Cinnamon",
        "Crème D’Argent",
        "Dutch",
        "Dwarf Hotot",
        "English Angora",
        "English Lop",
        "English Spot",
        "Flemish Giant",
        "Florida White",
        "French Angora",
        "French Lop",
        "Giant Angora",
        "Giant Chinchilla",
        "Harlequin",
        "Havana",
        "Himalayan",
        "Holland Lop",
        "Jersey Wooly",
        "Lilac",
        "Lionhead",
        "Mini Lop",
        "Mini Rex",
        "Mini Satin",
        "Netherland Dwarf",
        "New Zealand",
        "Palomino",
        "Polish",
        "Rex",
        "Rhinelander",
        "Satin",
        "Satin Angora",
        "Silver",
        "Silver Fox",
        "Silver Marten",
        "Standard Chinchilla",
        "Tan",
        "Thrianta"
    ], o2 = [
        "Abrocoma",
        "Abrocoma schistacea",
        "Aconaemys",
        "Aconaemys porteri",
        "African brush-tailed porcupine",
        "Andean mountain cavy",
        "Argentine tuco-tuco",
        "Ashy chinchilla rat",
        "Asiatic brush-tailed porcupine",
        "Atherurus",
        "Azara's agouti",
        "Azara's tuco-tuco",
        "Bahia porcupine",
        "Bathyergus",
        "Bathyergus janetta",
        "Bathyergus suillus",
        "Bennett's chinchilla rat",
        "Bicolored-spined porcupine",
        "Black agouti",
        "Black dwarf porcupine",
        "Black-rumped agouti",
        "Black-tailed hairy dwarf porcupine",
        "Bolivian chinchilla rat",
        "Bolivian tuco-tuco",
        "Bonetto's tuco-tuco",
        "Brandt's yellow-toothed cavy",
        "Brazilian guinea pig",
        "Brazilian porcupine",
        "Brazilian tuco-tuco",
        "Bridge's degu",
        "Brown hairy dwarf porcupine",
        "Budin's chinchilla rat, A. budini",
        "Cape porcupine",
        "Catamarca tuco-tuco",
        "Cavia",
        "Central American agouti",
        "Chacoan tuco-tuco",
        "Chilean rock rat",
        "Chinchilla",
        "Coendou",
        "Coiban agouti",
        "Colburn's tuco-tuco",
        "Collared tuco-tuco",
        "Common degu",
        "Common yellow-toothed cavy",
        "Conover's tuco-tuco",
        "Coruro",
        "Crested agouti",
        "Crested porcupine",
        "Cryptomys",
        "Cryptomys bocagei",
        "Cryptomys damarensis",
        "Cryptomys foxi",
        "Cryptomys hottentotus",
        "Cryptomys mechowi",
        "Cryptomys ochraceocinereus",
        "Cryptomys zechi",
        "Ctenomys",
        "Cuniculus",
        "Cuscomys",
        "Cuscomys ashanika",
        "Dactylomys",
        "Dactylomys boliviensis",
        "Dactylomys dactylinus",
        "Dactylomys peruanus",
        "Dasyprocta",
        "Domestic guinea pig",
        "Emily's tuco-tuco",
        "Erethizon",
        "Famatina chinchilla rat",
        "Frosted hairy dwarf porcupine",
        "Fukomys",
        "Fukomys amatus",
        "Fukomys anselli",
        "Fukomys bocagei",
        "Fukomys damarensis",
        "Fukomys darlingi",
        "Fukomys foxi",
        "Fukomys ilariae",
        "Fukomys kafuensis",
        "Fukomys mechowii",
        "Fukomys micklemi",
        "Fukomys occlusus",
        "Fukomys ochraceocinereus",
        "Fukomys whytei",
        "Fukomys zechi",
        "Furtive tuco-tuco",
        "Galea",
        "Georychus",
        "Georychus capensis",
        "Golden viscacha-rat",
        "Goya tuco-tuco",
        "Greater guinea pig",
        "Green acouchi",
        "Haig's tuco-tuco",
        "Heliophobius",
        "Heliophobius argenteocinereus",
        "Heterocephalus",
        "Heterocephalus glaber",
        "Highland tuco-tuco",
        "Hystrix",
        "Indian porcupine",
        "Isla Mocha degu",
        "Kalinowski agouti",
        "Kannabateomys",
        "Kannabateomys amblyonyx",
        "Lagidium",
        "Lagostomus",
        "Lewis' tuco-tuco",
        "Long-tailed chinchilla",
        "Long-tailed porcupine",
        "Los Chalchaleros' viscacha-rat",
        "Lowland paca",
        "Magellanic tuco-tuco",
        "Malayan porcupine",
        "Maule tuco-tuco",
        "Mendoza tuco-tuco",
        "Mexican agouti",
        "Mexican hairy dwarf porcupine",
        "Microcavia",
        "Montane guinea pig",
        "Moon-toothed degu",
        "Mottled tuco-tuco",
        "Mountain degu",
        "Mountain paca",
        "Mountain viscacha-rat",
        "Myoprocta",
        "Natterer's tuco-tuco",
        "North American porcupine",
        "Northern viscacha",
        "Octodon",
        "Octodontomys",
        "Octomys",
        "Olallamys",
        "Olallamys albicauda",
        "Olallamys edax",
        "Orinoco agouti",
        "Paraguaian hairy dwarf porcupine",
        "Pearson's tuco-tuco",
        "Peruvian tuco-tuco",
        "Philippine porcupine",
        "Pipanacoctomys",
        "Plains viscacha",
        "Plains viscacha-rat",
        "Porteous' tuco-tuco",
        "Punta de Vacas chinchilla rat",
        "Red acouchi",
        "Red-rumped agouti",
        "Reddish tuco-tuco",
        "Rio Negro tuco-tuco",
        "Robust tuco-tuco",
        "Roosmalen's dwarf porcupine",
        "Rothschild's porcupine",
        "Ruatan Island agouti",
        "Sage's rock rat",
        "Salinoctomys",
        "Salta tuco-tuco",
        "San Luis tuco-tuco",
        "Santa Catarina's guinea pig",
        "Shiny guinea pig",
        "Shipton's mountain cavy",
        "Short-tailed chinchilla",
        "Silky tuco-tuco",
        "Social tuco-tuco",
        "Southern mountain cavy",
        "Southern tuco-tuco",
        "Southern viscacha",
        "Spalacopus",
        "Spix's yellow-toothed cavy",
        "Steinbach's tuco-tuco",
        "Streaked dwarf porcupine",
        "Strong tuco-tuco",
        "Stump-tailed porcupine",
        "Sumatran porcupine",
        "Sunda porcupine",
        "Talas tuco-tuco",
        "Tawny tuco-tuco",
        "Thick-spined porcupine",
        "Tiny tuco-tuco",
        "Trichys",
        "Tucuman tuco-tuco",
        "Tympanoctomys",
        "Uspallata chinchilla rat",
        "White-toothed tuco-tuco",
        "Wolffsohn's viscacha"
    ], s2 = [
        "Abaco Island boa",
        "Aesculapian snake",
        "African beaked snake",
        "African puff adder",
        "African rock python",
        "African twig snake",
        "African wolf snake",
        "Amazon tree boa",
        "Amazonian palm viper",
        "American Vine Snake",
        "American copperhead",
        "Amethystine python",
        "Anaconda",
        "Andaman cat snake",
        "Andaman cobra",
        "Angolan python",
        "Annulated sea snake",
        "Arabian cobra",
        "Arafura file snake",
        "Arizona black rattlesnake",
        "Arizona coral snake",
        "Aruba rattlesnake",
        "Asian Vine Snake, Whip Snake",
        "Asian cobra",
        "Asian keelback",
        "Asian pipe snake",
        "Asp",
        "Asp viper",
        "Assam keelback",
        "Australian copperhead",
        "Australian scrub python",
        "Baird's rat snake",
        "Baja California lyresnake",
        "Ball Python",
        "Ball python",
        "Bamboo pitviper",
        "Bamboo viper",
        "Banded Flying Snake",
        "Banded cat-eyed snake",
        "Banded krait",
        "Banded pitviper",
        "Banded water cobra",
        "Barbour's pit viper",
        "Barred wolf snake",
        "Beaked sea snake",
        "Beauty rat snake",
        "Beddome's cat snake",
        "Beddome's coral snake",
        "Bimini racer",
        "Bird snake",
        "Bismarck ringed python",
        "Black headed python",
        "Black krait",
        "Black mamba",
        "Black rat snake",
        "Black snake",
        "Black tree cobra",
        "Black-banded trinket snake",
        "Black-headed snake",
        "Black-necked cobra",
        "Black-necked spitting cobra",
        "Black-speckled palm-pitviper",
        "Black-striped keelback",
        "Black-tailed horned pit viper",
        "Blanding's tree snake",
        "Blind snake",
        "Blonde hognose snake",
        "Blood python",
        "Blue krait",
        "Blunt-headed tree snake",
        "Bluntnose viper",
        "Boa",
        "Boa constrictor",
        "Bocourt's water snake",
        "Boelen python",
        "Boiga",
        "Bolivian anaconda",
        "Boomslang",
        "Bornean pitviper",
        "Borneo short-tailed python",
        "Brahminy blind snake",
        "Brazilian coral snake",
        "Brazilian mud Viper",
        "Brazilian smooth snake",
        "Bredl's python",
        "Brongersma's pitviper",
        "Brown snake",
        "Brown spotted pitviper[4]",
        "Brown tree snake",
        "Brown water python",
        "Brown white-lipped python",
        "Buff striped keelback",
        "Bull snake",
        "Burmese keelback",
        "Burmese krait",
        "Burmese python",
        "Burrowing cobra",
        "Burrowing viper",
        "Bush viper",
        "Bushmaster",
        "Buttermilk racer",
        "Calabar python",
        "California kingsnake",
        "Canebrake",
        "Cantil",
        "Cantor's pitviper",
        "Cape cobra",
        "Cape coral snake",
        "Cape gopher snake",
        "Carpet viper",
        "Cascabel",
        "Caspian cobra",
        "Cat snake",
        "Cat-eyed night snake",
        "Cat-eyed snake",
        "Central American lyre snake",
        "Central ranges taipan",
        "Centralian carpet python",
        "Ceylon krait",
        "Chappell Island tiger snake",
        "Checkered garter snake",
        "Checkered keelback",
        "Chicken snake",
        "Chihuahuan ridge-nosed rattlesnake",
        "Children's python",
        "Chinese tree viper",
        "Coachwhip snake",
        "Coastal carpet python",
        "Coastal taipan",
        "Cobra",
        "Collett's snake",
        "Colorado desert sidewinder",
        "Common adder",
        "Common cobra",
        "Common garter snake",
        "Common ground snake",
        "Common keelback",
        "Common lancehead",
        "Common tiger snake",
        "Common worm snake",
        "Congo snake",
        "Congo water cobra",
        "Copperhead",
        "Coral snake",
        "Corn snake",
        "Coronado Island rattlesnake",
        "Cottonmouth",
        "Crossed viper",
        "Crowned snake",
        "Cuban boa",
        "Cuban wood snake",
        "Cyclades blunt-nosed viper",
        "Dauan Island water python",
        "De Schauensee's anaconda",
        "Death Adder",
        "Desert death adder",
        "Desert kingsnake",
        "Desert woma python",
        "Diamond python",
        "Dog-toothed cat snake",
        "Down's tiger snake",
        "Dubois's sea snake",
        "Dumeril's boa",
        "Durango rock rattlesnake",
        "Dusky pigmy rattlesnake",
        "Dusty hognose snake",
        "Dwarf beaked snake",
        "Dwarf boa",
        "Dwarf pipe snake",
        "Dwarf sand adder",
        "Eastern brown snake",
        "Eastern coral snake",
        "Eastern diamondback rattlesnake",
        "Eastern green mamba",
        "Eastern hognose snake",
        "Eastern lyre snake",
        "Eastern mud snake",
        "Eastern racer",
        "Eastern tiger snake",
        "Eastern water cobra",
        "Eastern yellowbelly sad racer",
        "Egg-eater",
        "Egyptian asp",
        "Egyptian cobra",
        "Elegant pitviper",
        "Emerald tree boa",
        "Equatorial spitting cobra",
        "European asp",
        "European smooth snake",
        "Eyelash palm-pitviper",
        "Eyelash pit viper",
        "Eyelash viper",
        "False cobra",
        "False horned viper",
        "False water cobra",
        "Fan-Si-Pan horned pitviper",
        "Fea's viper",
        "Fer-de-lance",
        "Fierce snake",
        "Fifty pacer",
        "Fishing snake",
        "Flat-nosed pitviper",
        "Flinders python",
        "Flying snake",
        "Forest cobra",
        "Forest flame snake",
        "Forsten's cat snake",
        "Fox snake, three species of Pantherophis",
        "Gaboon viper",
        "Garter snake",
        "Giant Malagasy hognose snake",
        "Godman's pit viper",
        "Gold tree cobra",
        "Gold-ringed cat snake",
        "Golden tree snake",
        "Grand Canyon rattlesnake",
        "Grass snake",
        "Gray cat snake",
        "Great Basin rattlesnake",
        "Great Lakes bush viper",
        "Great Plains rat snake",
        "Green anaconda",
        "Green cat-eyed snake",
        "Green mamba",
        "Green palm viper",
        "Green rat snake",
        "Green snake",
        "Green tree pit viper",
        "Green tree python",
        "Grey Lora",
        "Grey-banded kingsnake",
        "Ground snake",
        "Guatemalan palm viper",
        "Guatemalan tree viper",
        "Habu",
        "Habu pit viper",
        "Hagen's pitviper",
        "Hairy bush viper",
        "Halmahera python",
        "Hardwicke's sea snake",
        "Harlequin coral snake",
        "High Woods coral snake",
        "Hill keelback",
        "Himalayan keelback",
        "Hogg Island boa",
        "Hognose snake",
        "Hognosed viper",
        "Honduran palm viper",
        "Hook Nosed Sea Snake",
        "Hopi rattlesnake",
        "Horned adder",
        "Horned desert viper",
        "Horned viper",
        "Horseshoe pitviper",
        "Hundred pacer",
        "Hutton's tree viper",
        "Ikaheka snake",
        "Indian cobra",
        "Indian flying snake",
        "Indian krait",
        "Indian python",
        "Indian tree viper",
        "Indigo snake",
        "Indochinese spitting cobra",
        "Indonesian water python",
        "Inland carpet python",
        "Inland taipan",
        "Jamaican Tree Snake",
        "Jamaican boa",
        "Jan's hognose snake",
        "Japanese forest rat snake",
        "Japanese rat snake",
        "Japanese striped snake",
        "Javan spitting cobra",
        "Jerdon's pitviper",
        "Jumping viper",
        "Jungle carpet python",
        "Kanburian pit viper",
        "Kaulback's lance-headed pitviper",
        "Kayaudi dwarf reticulated python",
        "Kaznakov's viper",
        "Keelback",
        "Kham Plateau pitviper",
        "Khasi Hills keelback",
        "King Island tiger snake",
        "King brown",
        "King cobra",
        "King rat snake",
        "King snake",
        "Krait",
        "Krefft's tiger snake",
        "Lance-headed rattlesnake",
        "Lancehead",
        "Large shield snake",
        "Large-eyed pitviper",
        "Large-scaled tree viper",
        "Leaf viper",
        "Leaf-nosed viper",
        "Lesser black krait",
        "Levant viper",
        "Long-nosed adder",
        "Long-nosed tree snake",
        "Long-nosed viper",
        "Long-nosed whip snake",
        "Long-tailed rattlesnake",
        "Longnosed worm snake",
        "Lora",
        "Lyre snake",
        "Machete savane",
        "Macklot's python",
        "Madagascar ground boa",
        "Madagascar tree boa",
        "Malabar rock pitviper",
        "Malayan krait",
        "Malayan long-glanded coral snake",
        "Malayan pit viper",
        "Malcolm's tree viper",
        "Mamba",
        "Mamushi",
        "Manchurian Black Water Snake",
        "Mandalay cobra",
        "Mandarin rat snake",
        "Mangrove pit viper",
        "Mangrove snake",
        "Mangshan pitviper",
        "Many-banded krait",
        "Many-banded tree snake",
        "Many-horned adder",
        "Many-spotted cat snake",
        "Massasauga rattlesnake",
        "McMahon's viper",
        "Mexican black kingsnake",
        "Mexican green rattlesnake",
        "Mexican hognose snake",
        "Mexican palm-pitviper",
        "Mexican parrot snake",
        "Mexican racer",
        "Mexican vine snake",
        "Mexican west coast rattlesnake",
        "Midget faded rattlesnake",
        "Milk snake",
        "Moccasin snake",
        "Modest keelback",
        "Mojave desert sidewinder",
        "Mojave rattlesnake",
        "Mole viper",
        "Mollucan python",
        "Moluccan flying snake",
        "Montpellier snake",
        "Motuo bamboo pitviper",
        "Mountain adder",
        "Mozambique spitting cobra",
        "Mud adder",
        "Mud snake",
        "Mussurana",
        "Namaqua dwarf adder",
        "Namib dwarf sand adder",
        "Narrowhead Garter Snake",
        "New Guinea carpet python",
        "Nichell snake",
        "Nicobar Island keelback",
        "Nicobar bamboo pitviper",
        "Night snake",
        "Nightingale adder",
        "Nilgiri keelback",
        "Nitsche's bush viper",
        "Nitsche's tree viper",
        "North Philippine cobra",
        "North eastern king snake",
        "Northeastern hill krait",
        "Northern black-tailed rattlesnake",
        "Northern tree snake",
        "Northern water snake",
        "Northern white-lipped python",
        "Northwestern carpet python",
        "Nose-horned viper",
        "Nubian spitting cobra",
        "Oaxacan small-headed rattlesnake",
        "Oenpelli python",
        "Olive python",
        "Olive sea snake",
        "Orange-collared keelback",
        "Ornate flying snake",
        "Palestine viper",
        "Pallas' viper",
        "Palm viper",
        "Papuan python",
        "Paradise flying snake",
        "Parrot snake",
        "Patchnose snake",
        "Paupan taipan",
        "Pelagic sea snake",
        "Peninsula tiger snake",
        "Peringuey's adder",
        "Perrotet's shieldtail snake",
        "Persian rat snake",
        "Philippine cobra",
        "Philippine pitviper",
        "Pine snake",
        "Pipe snake",
        "Pit viper",
        "Pointed-scaled pit viper[5]",
        "Pope's tree viper",
        "Portuguese viper",
        "Prairie kingsnake",
        "Puerto Rican boa",
        "Puff adder",
        "Pygmy python",
        "Python",
        "Queen snake",
        "Racer",
        "Raddysnake",
        "Rainbow boa",
        "Rat snake",
        "Rattler",
        "Rattlesnake",
        "Red blood python",
        "Red diamond rattlesnake",
        "Red spitting cobra",
        "Red-backed rat snake",
        "Red-bellied black snake",
        "Red-headed krait",
        "Red-necked keelback",
        "Red-tailed bamboo pitviper",
        "Red-tailed boa",
        "Red-tailed pipe snake",
        "Reticulated python",
        "Rhinoceros viper",
        "Rhombic night adder",
        "Ribbon snake",
        "Rinkhals",
        "Rinkhals cobra",
        "River jack",
        "Rosy boa",
        "Rough green snake",
        "Rough-scaled bush viper",
        "Rough-scaled python",
        "Rough-scaled tree viper",
        "Royal python",
        "Rubber boa",
        "Rufous beaked snake",
        "Rungwe tree viper",
        "San Francisco garter snake",
        "Sand adder",
        "Sand boa",
        "Savu python",
        "Saw-scaled viper",
        "Scarlet kingsnake",
        "Schlegel's viper",
        "Schultze's pitviper",
        "Sea snake",
        "Sedge viper",
        "Selayer reticulated python",
        "Sharp-nosed viper",
        "Shield-nosed cobra",
        "Shield-tailed snake",
        "Siamese palm viper",
        "Side-striped palm-pitviper",
        "Sidewinder",
        "Sikkim keelback",
        "Sinai desert cobra",
        "Sind krait",
        "Small-eyed snake",
        "Smooth green snake",
        "Smooth snake",
        "Snorkel viper",
        "Snouted cobra",
        "Sonoran sidewinder",
        "South American hognose snake",
        "South eastern corn snake",
        "Southern Indonesian spitting cobra",
        "Southern Pacific rattlesnake",
        "Southern Philippine cobra",
        "Southern black racer",
        "Southern white-lipped python",
        "Southwestern black spitting cobra",
        "Southwestern blackhead snake",
        "Southwestern carpet python",
        "Southwestern speckled rattlesnake",
        "Speckle-bellied keelback",
        "Speckled kingsnake",
        "Spectacled cobra",
        "Spiny bush viper",
        "Spitting cobra",
        "Spotted python",
        "Sri Lankan pit viper",
        "Stejneger's bamboo pitviper",
        "Stiletto snake",
        "Stimson's python",
        "Stoke's sea snake",
        "Storm water cobra",
        "Striped snake",
        "Sumatran short-tailed python",
        "Sumatran tree viper",
        "Sunbeam snake",
        "Taipan",
        "Taiwan cobra",
        "Tan racer",
        "Tancitaran dusky rattlesnake",
        "Tanimbar python",
        "Tasmanian tiger snake",
        "Tawny cat snake",
        "Temple pit viper",
        "Temple viper",
        "Tentacled snake",
        "Texas Coral Snake",
        "Texas blind snake",
        "Texas garter snake",
        "Texas lyre snake",
        "Texas night snake",
        "Thai cobra",
        "Three-lined ground snake",
        "Tibetan bamboo pitviper",
        "Tic polonga",
        "Tiger pit viper",
        "Tiger rattlesnake",
        "Tiger snake",
        "Tigre snake",
        "Timber rattlesnake",
        "Timor python",
        "Titanboa",
        "Tree boa",
        "Tree snake",
        "Tree viper",
        "Trinket snake",
        "Tropical rattlesnake",
        "Twig snake",
        "Twin Headed King Snake",
        "Twin-Barred tree snake",
        "Twin-spotted rat snake",
        "Twin-spotted rattlesnake",
        "Undulated pit viper",
        "Uracoan rattlesnake",
        "Ursini's viper",
        "Urutu",
        "Vine snake",
        "Viper",
        "Viper Adder",
        "Vipera ammodytes",
        "Wagler's pit viper",
        "Wart snake",
        "Water adder",
        "Water moccasin",
        "Water snake",
        "West Indian racer",
        "Western blind snake",
        "Western carpet python",
        "Western coral snake",
        "Western diamondback rattlesnake",
        "Western green mamba",
        "Western ground snake",
        "Western hog-nosed viper",
        "Western mud snake",
        "Western tiger snake",
        "Western woma python",
        "Wetar Island python",
        "Whip snake",
        "White-lipped keelback",
        "White-lipped python",
        "White-lipped tree viper",
        "Wirot's pit viper",
        "Wolf snake",
        "Woma python",
        "Worm snake",
        "Wutu",
        "Wynaad keelback",
        "Yarara",
        "Yellow anaconda",
        "Yellow-banded sea snake",
        "Yellow-bellied sea snake",
        "Yellow-lined palm viper",
        "Yellow-lipped sea snake",
        "Yellow-striped rat snake",
        "Yunnan keelback",
        "Zebra snake",
        "Zebra spitting cobra"
    ], l2 = [
        "bat",
        "bear",
        "bee",
        "bird",
        "butterfly",
        "cat",
        "cow",
        "crocodile",
        "deer",
        "dog",
        "dolphin",
        "eagle",
        "elephant",
        "fish",
        "flamingo",
        "fox",
        "frog",
        "gecko",
        "giraffe",
        "gorilla",
        "hamster",
        "hippopotamus",
        "horse",
        "kangaroo",
        "koala",
        "lion",
        "monkey",
        "ostrich",
        "panda",
        "parrot",
        "peacock",
        "penguin",
        "polar bear",
        "rabbit",
        "rhinoceros",
        "sea lion",
        "shark",
        "snake",
        "squirrel",
        "tiger",
        "turtle",
        "whale",
        "wolf",
        "zebra"
    ], u2 = {
        bear: YD,
        bird: qD,
        cat: KD,
        cetacean: XD,
        cow: JD,
        crocodilia: ZD,
        dog: QD,
        fish: e2,
        horse: t2,
        insect: a2,
        lion: r2,
        pet_name: n2,
        rabbit: i2,
        rodent: o2,
        snake: s2,
        type: l2
    }, c2 = u2, d2 = [
        "{{person.name}}",
        "{{company.name}}"
    ], h2 = [
        "Redhold",
        "Treeflex",
        "Trippledex",
        "Kanlam",
        "Bigtax",
        "Daltfresh",
        "Toughjoyfax",
        "Mat Lam Tam",
        "Otcom",
        "Tres-Zap",
        "Y-Solowarm",
        "Tresom",
        "Voltsillam",
        "Biodex",
        "Greenlam",
        "Viva",
        "Matsoft",
        "Temp",
        "Zoolab",
        "Subin",
        "Rank",
        "Job",
        "Stringtough",
        "Tin",
        "It",
        "Home Ing",
        "Zamit",
        "Sonsing",
        "Konklab",
        "Alpha",
        "Latlux",
        "Voyatouch",
        "Alphazap",
        "Holdlamis",
        "Zaam-Dox",
        "Sub-Ex",
        "Quo Lux",
        "Bamity",
        "Ventosanzap",
        "Lotstring",
        "Hatity",
        "Tempsoft",
        "Overhold",
        "Fixflex",
        "Konklux",
        "Zontrax",
        "Tampflex",
        "Span",
        "Namfix",
        "Transcof",
        "Stim",
        "Fix San",
        "Sonair",
        "Stronghold",
        "Fintone",
        "Y-find",
        "Opela",
        "Lotlux",
        "Ronstring",
        "Zathin",
        "Duobam",
        "Keylex"
    ], m2 = [
        "0.#.#",
        "0.##",
        "#.##",
        "#.#",
        "#.#.#"
    ], f2 = {
        author: d2,
        name: h2,
        version: m2
    }, p2 = f2, g2 = [
        "A.A. Milne",
        "Agatha Christie",
        "Alan Moore and Dave Gibbons",
        "Albert Camus",
        "Aldous Huxley",
        "Alexander Pope",
        "Alexandre Dumas",
        "Alice Walker",
        "Andrew Lang",
        "Anne Frank",
        "Anthony Burgess",
        "Anthony Trollope",
        "Antoine de Saint-Exupéry",
        "Anton Chekhov",
        "Anton Pavlovich Chekhov",
        "Arthur Conan Doyle",
        "Arthur Schopenhauer",
        "Aylmer Maude",
        "Ayn Rand",
        "Beatrix Potter",
        "Benjamin Disraeli",
        "Benjamin Jowett",
        "Bernard Shaw",
        "Bertrand Russell",
        "Bhagavanlal Indrajit",
        "Boris Pasternak",
        "Bram Stoker",
        "Brian Evenson",
        "C.E. Brock",
        "C.S. Lewis",
        "Carson McCallers",
        "Charles Dickens",
        "Charles E. Derbyshire",
        "Charlotte Brontë",
        "Charlotte Perkins Gilman",
        "Chinua Achebe",
        "Clifford R. Adams",
        "Constance Garnett",
        "Cormac McCarthy",
        "D.H. Lawrence",
        "Dan Brown",
        "Daniel Defoe",
        "Dante Alighieri",
        "Dashiell Hammett",
        "David Widger",
        "David Wyllie",
        "Dean Koontz",
        "Don DeLillo",
        "E.M. Forster",
        "Edgar Allan Poe",
        "Edgar Rice Burroughs",
        "Elizabeth Cleghorn Gaskell",
        "Elizabeth Von Arnim",
        "Emily Brontë",
        "Erich Remarque",
        "Ernest Hemingway",
        "Evelyn Waugh",
        "F. Scott Fitzgerald",
        "Ford Madox Ford",
        "Frances Hodgson Burnett",
        "Frank Herbert",
        "Frank T. Merrill",
        "Franz Kafka",
        "Friedrich Wilhelm Nietzsche",
        "Fyodor Dostoyevsky",
        "G.K. Chesterton",
        "Gabriel Garcia Marquez",
        "Geoffrey Chaucer",
        "George Eliot",
        "George Grossmith",
        "George Orwell",
        "George R. R. Martin",
        "George Saunders",
        "Grady Ward",
        "Graham Greene",
        "Gustave Doré",
        "Gustave Flaubert",
        "Guy de Maupassant",
        "Günter Grass",
        "H.G. Wells",
        "H.P. Lovecraft",
        "Harper Lee",
        "Harriet Beecher Stowe",
        "Haruki Murakami",
        "Henrik Ibsen",
        "Henry David Thoreau",
        "Henry Fielding",
        "Henry James",
        "Henry Miller",
        "Henry Morley",
        "Herman Melville",
        "Hermann Broch",
        "Homer",
        "Honoré de Balzac",
        "Ian McEwan",
        "Isabel Florence Hapgood",
        "Italo Calvino",
        "J.D. Salinger",
        "J.K. Rowling",
        "J.M. Barrie",
        "J.R.R. Tolkien",
        "Jack Kerouac",
        "Jack London",
        "Jacob Grimm",
        "Jacqueline Crooks",
        "James Baldwin",
        "James Dickey",
        "James Ellroy",
        "James Joyce",
        "James Patterson",
        "Jane Austen",
        "Johann Wolfgang von Goethe",
        "John Bunyan",
        "John Camden Hotten",
        "John Dos Passos",
        "John Green",
        "John Grisham",
        "John Kennedy Toole",
        "John Milton",
        "John Ormsby",
        "John Steinbeck",
        "John Updike",
        "Jonathan Franzen",
        "Jonathan Swift",
        "Joseph Conrad",
        "Joseph Heller",
        "José Rizal",
        "Judy Blume",
        "Jules Verne",
        "Junot Diaz",
        "Karl Marx",
        "Kazuo Ishiguro",
        "Ken Follett",
        "Ken Kesey",
        "Kenneth Grahame",
        "Khaled Hosseini",
        "Kingsley Amis",
        "Kurt Vonnegut",
        "L. Frank Baum",
        "L.M. Montgomery",
        "Laurence Sterne",
        "Leo Tolstoy",
        "Lewis Carroll",
        "Louisa May Alcott",
        "Louise Maude",
        "Malcolm Lowry",
        "Marcel Proust",
        "Margaret Atwood",
        "Margaret Mitchell",
        "Marilynne Robinson",
        "Mark Twain",
        "Martin Amis",
        "Mary Shelley",
        "Michael Chabon",
        "Miguel de Cervantes",
        "Mikhail Bulgakov",
        "Muriel Spark",
        "Nancy Mitford",
        "Nathanael West",
        "Nathaniel Hawthorne",
        "Neil Gaiman",
        "Niccolo Machiavelli",
        "Norman Mailer",
        "Oscar Levy",
        "Oscar Wilde",
        "P.G. Wodehouse",
        "Paulo Coelho",
        "Peter Carey",
        "Philip Pullman",
        "Philip Roth",
        "Plato",
        "R.L. Stine",
        "Rachel Kushner",
        "Ralph Ellison",
        "Ray Bradbury",
        "Raymond Chandler",
        "Richard Wagner",
        "Richard Wright",
        "Richard Yates",
        "Roald Dahl",
        "Robert Graves",
        "Robert Louis Stevenson",
        "Robert Penn Warren",
        "Rudyard Kipling",
        "Salman Rushdie",
        "Samuel Beckett",
        "Samuel Butler",
        "Samuel Richardson",
        "Saul Bellow",
        "Shivaram Parashuram Bhide",
        "Sir Arthur Conan Doyle",
        "Sir Richard Francis Burton",
        "Stendhal",
        "Stephen Hawking",
        "Stephen King",
        "Sun Tzu",
        "Suzanne Collins",
        "T. Smollett",
        "T.S. Eliot",
        "Theodore Alois Buckley",
        "Theodore Dreiser",
        "Thomas Hardy",
        "Thomas Love Peacock",
        "Thomas Mann",
        "Toni Morrison",
        "Truman Capote",
        "V.S. Naipaul",
        "Vance Packard",
        "Vatsyayana",
        "Victor Hugo",
        "Virgil",
        "Virginia Woolf",
        "Vladimir Nabokov",
        "Voltaire",
        "W.G. Sebald",
        "W.K. Marriott",
        "Walker Percy",
        "Walt Whitman",
        "Walter Scott",
        "Wilhelm Grimm",
        "Wilkie Collins",
        "William Faulkner",
        "William Gibson",
        "William Golding",
        "William Makepeace Thackeray",
        "William Shakespeare",
        "Zadie Smith"
    ], v2 = [
        "Audiobook",
        "Ebook",
        "Hardcover",
        "Paperback"
    ], y2 = [
        "Adventure",
        "Biography",
        "Business",
        "Children's Literature",
        "Classic",
        "Comedy",
        "Comic",
        "Detective",
        "Drama",
        "Fantasy",
        "Graphic Novel",
        "Historical Fiction",
        "Horror",
        "Memoir",
        "Mystery",
        "Mythology",
        "Philosophy",
        "Poetry",
        "Psychology",
        "Religion",
        "Romance",
        "Science Fiction",
        "Thriller",
        "Western",
        "Young Adult"
    ], b2 = [
        "Academic Press",
        "Ace Books",
        "Addison-Wesley",
        "Adis International",
        "Airiti Press",
        "Allen Ltd",
        "Andrews McMeel Publishing",
        "Anova Books",
        "Anvil Press Poetry",
        "Applewood Books",
        "Apress",
        "Athabasca University Press",
        "Atheneum Books",
        "Atheneum Publishers",
        "Atlantic Books",
        "Atlas Press",
        "BBC Books",
        "Ballantine Books",
        "Banner of Truth Trust",
        "Bantam Books",
        "Bantam Spectra",
        "Barrie & Jenkins",
        "Basic Books",
        "Belknap Press",
        "Bella Books",
        "Bellevue Literary Press",
        "Berg Publishers",
        "Berkley Books",
        "Bison Books",
        "Black Dog Publishing",
        "Black Library",
        "Black Sparrow Books",
        "Blackie and Son Limited",
        "Blackstaff Press",
        "Blackwell Publishing",
        "Bloodaxe Books",
        "Bloomsbury Publishing Plc",
        "Blue Ribbon Books",
        "Book League of America",
        "Book Works",
        "Booktrope",
        "Borgo Press",
        "Bowes & Bowes",
        "Boydell & Brewer",
        "Breslov Research Institute",
        "Brill",
        "Brimstone Press",
        "Broadview Press",
        "Burns & Oates",
        "Butterworth-Heinemann",
        "Caister Academic Press",
        "Cambridge University Press",
        "Candlewick Press",
        "Canongate Books",
        "Carcanet Press",
        "Carlton Books",
        "Carlton Publishing Group",
        "Carnegie Mellon University Press",
        "Casemate Publishers",
        "Cengage Learning",
        "Central European University Press",
        "Chambers Harrap",
        "Charles Scribner's Sons",
        "Chatto and Windus",
        "Chick Publications",
        "Chronicle Books",
        "Churchill Livingstone",
        "Cisco Press",
        "City Lights Publishers",
        "Cloverdale Corporation",
        "D. Appleton & Company",
        "D. Reidel",
        "DAW Books",
        "Da Capo Press",
        "Daedalus Publishing",
        "Dalkey Archive Press",
        "Darakwon Press",
        "David & Charles",
        "Dedalus Books",
        "Del Rey Books",
        "E. P. Dutton",
        "ECW Press",
        "Earthscan",
        "Edupedia Publications",
        "Eel Pie Publishing",
        "Eerdmans Publishing",
        "Ellora's Cave",
        "Elsevier",
        "Emerald Group Publishing",
        "Etruscan Press",
        "FabJob",
        "Faber and Faber",
        "Fairview Press",
        "Farrar, Straus & Giroux",
        "Fearless Books",
        "Felony & Mayhem Press",
        "Firebrand Books",
        "Flame Tree Publishing",
        "Focal Press",
        "G-Unit Books",
        "G. P. Putnam's Sons",
        "Gaspereau Press",
        "Gay Men's Press",
        "Gefen Publishing House",
        "George H. Doran Company",
        "George Newnes",
        "George Routledge & Sons",
        "Godwit Press",
        "Golden Cockerel Press",
        "HMSO",
        "Hachette Book Group USA",
        "Hackett Publishing Company",
        "Hamish Hamilton",
        "Happy House",
        "Harcourt Assessment",
        "Harcourt Trade Publishers",
        "Harlequin Enterprises Ltd",
        "Harper & Brothers",
        "Harper & Row",
        "HarperCollins",
        "HarperPrism",
        "HarperTrophy",
        "Harry N. Abrams, Inc.",
        "Harvard University Press",
        "Harvest House",
        "Harvill Press at Random House",
        "Hawthorne Books",
        "Hay House",
        "Haynes Manuals",
        "Heyday Books",
        "Hodder & Stoughton",
        "Hodder Headline",
        "Hogarth Press",
        "Holland Park Press",
        "Holt McDougal",
        "Horizon Scientific Press",
        "Ian Allan Publishing",
        "Ignatius Press",
        "Imperial War Museum",
        "Indiana University Press",
        "J. M. Dent",
        "Jaico Publishing House",
        "Jarrolds Publishing",
        "John Blake Publishing",
        "Karadi Tales",
        "Kensington Books",
        "Kessinger Publishing",
        "Kodansha",
        "Kogan Page",
        "Koren Publishers Jerusalem",
        "Ladybird Books",
        "Leaf Books",
        "Leafwood Publishers",
        "Left Book Club",
        "Legend Books",
        "Lethe Press",
        "Libertas Academica",
        "Liberty Fund",
        "Library of America",
        "Lion Hudson",
        "Macmillan Publishers",
        "Mainstream Publishing",
        "Manchester University Press",
        "Mandrake Press",
        "Mandrake of Oxford",
        "Manning Publications",
        "Manor House Publishing",
        "Mapin Publishing",
        "Marion Boyars Publishers",
        "Mark Batty Publisher",
        "Marshall Cavendish",
        "Marshall Pickering",
        "Martinus Nijhoff Publishers",
        "Mascot Books",
        "Matthias Media",
        "McClelland and Stewart",
        "McFarland & Company",
        "McGraw Hill Financial",
        "McGraw-Hill Education",
        "Medknow Publications",
        "Naiad Press",
        "Nauka",
        "NavPress",
        "New Directions Publishing",
        "New English Library",
        "New Holland Publishers",
        "New Village Press",
        "Newnes",
        "No Starch Press",
        "Nonesuch Press",
        "O'Reilly Media",
        "Oberon Books",
        "Open Court Publishing Company",
        "Open University Press",
        "Orchard Books",
        "Orion Books",
        "Packt Publishing",
        "Palgrave Macmillan",
        "Pan Books",
        "Pantheon Books at Random House",
        "Papadakis Publisher",
        "Parachute Publishing",
        "Parragon",
        "Pathfinder Press",
        "Paulist Press",
        "Pavilion Books",
        "Peace Hill Press",
        "Pecan Grove Press",
        "Pen and Sword Books",
        "Penguin Books",
        "Random House",
        "Reed Elsevier",
        "Reed Publishing",
        "SAGE Publications",
        "Salt Publishing",
        "Sams Publishing",
        "Schocken Books",
        "Scholastic Press",
        "Seagull Books",
        "Secker & Warburg",
        "Shambhala Publications",
        "Shire Books",
        "Shoemaker & Hoard Publishers",
        "Shuter & Shooter Publishers",
        "Sidgwick & Jackson",
        "Signet Books",
        "Simon & Schuster",
        "St. Martin's Press",
        "T & T Clark",
        "Tachyon Publications",
        "Tammi",
        "Target Books",
        "Tarpaulin Sky Press",
        "Tartarus Press",
        "Tate Publishing & Enterprises",
        "Taunton Press",
        "Taylor & Francis",
        "Ten Speed Press",
        "UCL Press",
        "Unfinished Monument Press",
        "United States Government Publishing Office",
        "University of Akron Press",
        "University of Alaska Press",
        "University of California Press",
        "University of Chicago Press",
        "University of Michigan Press",
        "University of Minnesota Press",
        "University of Nebraska Press",
        "Velazquez Press",
        "Verso Books",
        "Victor Gollancz Ltd",
        "Viking Press",
        "Vintage Books",
        "Vintage Books at Random House",
        "Virago Press",
        "Virgin Publishing",
        "Voyager Books",
        "Zed Books",
        "Ziff Davis Media",
        "Zondervan"
    ], F2 = [
        "A Song of Ice and Fire",
        "Anna Karenina",
        "Colonel Race",
        "Discworld",
        "Dune",
        "Harry Potter",
        "Hercule Poirot",
        "His Dark Materials",
        "Jane Austen Murder Mysteries",
        "Little Women",
        "Outlander",
        "Percy Jackson",
        "Sherlock Holmes",
        "The Arc of a Scythe",
        "The Bartimaeus Trilogy",
        "The Border Trilogy",
        "The Chronicles of Narnia",
        "The Dark Tower",
        "The Dresden Files",
        "The Eighth Life",
        "The Foundation Series",
        "The Hitchhiker's Guide to the Galaxy",
        "The Hunger Games",
        "The Infinity Cycle",
        "The Inheritance Cycle",
        "The Lord of the Rings",
        "The Maze Runner",
        "The Prison Healer",
        "The Red Rising Saga",
        "The Southern Reach",
        "The Wheel of Time",
        "Thursday Next Series",
        "Twilight",
        "War and Peace"
    ], k2 = [
        "1984",
        "20,000 Leagues Under the Sea",
        "A Bend in the River",
        "A Brief History of Time",
        "A Clockwork Orange",
        "A Confederacy of Dunces",
        "A Doll's House",
        "A Handful of Dust",
        "A Modest Proposal",
        "A Passage to India",
        "A Portrait of the Artist as a Young Man",
        "A Room with a View",
        "A Study in Scarlet",
        "A Tale of Two Cities",
        "A Wrinkle in Time",
        "Absalom, Absalom!",
        "Adventures of Huckleberry Finn",
        "Alice's Adventures in Wonderland",
        "All Quiet on the Western Front",
        "All the King's Men",
        "American Pastoral",
        "An American Tragedy",
        "And Then There Were None",
        "Animal Farm",
        "Anna Karenina",
        "Anne of Green Gables",
        "Are You There God? It's Me, Margaret",
        "As I Lay Dying",
        "Atlas Shrugged",
        "Atonement",
        "Austerlitz",
        "Beloved",
        "Beyond Good and Evil",
        "Bible",
        "Bleak House",
        "Blood Meridian",
        "Brave New World",
        "Brideshead Revisited",
        "Candide",
        "Carmilla",
        "Catch-22",
        "Charlie and the Chocolate Factory",
        "Charlotte's Web",
        "Clarissa",
        "Cranford",
        "Crime and Punishment",
        "Dao De Jing: A Minimalist Translation",
        "David Copperfield",
        "Deliverance",
        "Don Quixote",
        "Dora",
        "Dr. Zhivago",
        "Dracula",
        "Dubliners",
        "Dune",
        "East of Eden",
        "Emma",
        "Fahrenheit 451",
        "Faust",
        "For Whom the Bell Tolls",
        "Frankenstein",
        "Freakonomics",
        "Go Tell It on the Mountain",
        "Gone with the Wind",
        "Great Expectations",
        "Grimms' Fairy Tales",
        "Gulliver's Travels",
        "Hamlet",
        "Harry Potter and the Sorcerer's Stone",
        "Heart of Darkness",
        "Herzog",
        "His Dark Materials",
        "Hitting the line",
        "Housekeeping",
        "I, Claudius",
        "If on a Winter's Night a Traveler",
        "In Cold Blood",
        "In Search of Lost Time",
        "Invisible Man",
        "It",
        "Jane Eyre",
        "Josefine Mutzenbacher",
        "Jude the Obscure",
        "L.A. Confidential",
        "Leaves of Grass",
        "Les Miserables",
        "Life of Pi",
        "Little Women",
        "Lolita",
        "Long Walk to Freedom",
        "Lord Jim",
        "Lord of the Flies",
        "Lucky Jim",
        "Madame Bovary",
        "Malone Dies",
        "Meditations",
        "Men Without Women",
        "Metamorphosis",
        "Middlemarch",
        "Midnight's Children",
        "Moby Dick",
        "Money",
        "Mrs. Dalloway",
        "My Bondage and My Freedom",
        "My Life",
        "Native Son",
        "Neuromancer",
        "Never Let Me Go",
        "Nightmare Abbey",
        "Nineteen Eighty Four",
        "Nostromo",
        "Notes from the Underground",
        "Of Mice and Men",
        "Oliver Twist",
        "On the Duty of Civil Disobedience",
        "On the Road",
        "One Flew Over the Cuckoo's Nest",
        "One Hundred Years of Solitude",
        "One Thousand and One Nights",
        "Oscar and Lucinda",
        "Pale Fire",
        "Paradise Lost",
        "Peter Pan",
        "Portnoy's Complaint",
        "Pride and Prejudice",
        "Rabbit, Run",
        "Republic",
        "Revolutionary Road",
        "Robinson Crusoe",
        "Romeo and Juliet",
        "Ruth Fielding in Alaska",
        "Scoop",
        "Second Treatise of Government",
        "Slaughterhouse Five",
        "Stories of Anton Chekhov",
        "Sybil",
        "Tess of the d'Urbervilles",
        "The Adventures of Augie March",
        "The Adventures of Huckleberry Finn",
        "The Adventures of Sherlock Holmes",
        "The Adventures of Tom Sawyer",
        "The Aeneid",
        "The Alchemist",
        "The Ambassadors",
        "The Art of War",
        "The Big Sleep",
        "The Black Sheep",
        "The Blue Castle",
        "The Brief Wondrous Life of Oscar Wao",
        "The Brothers Karamazov",
        "The Call of the Wild",
        "The Canterbury Tales",
        "The Catcher in the Rye",
        "The Color Purple",
        "The Complete Works of Edgar Allen Poe",
        "The Corrections",
        "The Count of Monte Cristo",
        "The Day of the Locust",
        "The Diary of a Nobody",
        "The Diary of a Young Girl",
        "The Divine Comedy",
        "The Enchanted April",
        "The Fountainhead",
        "The Golden Bowl",
        "The Golden Notebook",
        "The Good Soldier",
        "The Grapes of Wrath",
        "The Great Gatsby",
        "The Handmaid's Tale",
        "The Heart is a Lonely Hunter",
        "The Heart of the Matter",
        "The Hobbit",
        "The Hound of the Baskervilles",
        "The Idiot",
        "The Iliad",
        "The King in Yellow",
        "The Kite Runner",
        "The Lion, the Witch, and the Wardrobe",
        "The Little Prince",
        "The Lord of the Rings",
        "The Magic Mountain",
        "The Maltese Falcon",
        "The Master and Margarita",
        "The Moviegoer",
        "The Naked and the Dead",
        "The Odyssey",
        "The Old Man and the Sea",
        "The Pickwick Papers",
        "The Picture of Dorian Gray",
        "The Pilgrim's Progress",
        "The Pillars of the Earth",
        "The Plague",
        "The Portrait of a Lady",
        "The Prime of Miss Jean Brodie",
        "The Prince",
        "The Problems of Philosophy",
        "The Prophet",
        "The Pursuit of Love",
        "The Rainbow",
        "The Red and the Black",
        "The Remains of the Day",
        "The Republic",
        "The Scarlet Letter",
        "The Sleepwalkers",
        "The Sound and the Fury",
        "The Stand",
        "The Strange Case of Dr. Jekyll and Mr. Hyde",
        "The Stranger",
        "The Sun Also Rises",
        "The Thirty-Nine Steps",
        "The Three Musketeers",
        "The Time Machine",
        "The Tin Drum",
        "The Trial",
        "The War of the Worlds",
        "The Waste Land",
        "The Way We Live Now",
        "The Wind in the Willows",
        "The Woman in White",
        "The Wonderful Wizard of Oz",
        "The Works of Edgar Allan Poe",
        "The Yellow Wallpaper",
        "Things Fall Apart",
        "Tinker, Tailor, Soldier, Spy",
        "To Kill a Mockingbird",
        "To the Lighthouse",
        "Tom Jones",
        "Treasure Island",
        "Tristram Shandy",
        "Tropic of Cancer",
        "U.S.A. Trilogy",
        "Ulysses",
        "Uncle Tom's Cabin",
        "Under the Volcano",
        "Underworld",
        "Vanity Fair",
        "Walden",
        "War and Peace",
        "Watchmen",
        "Winnie-the-Pooh",
        "Wuthering Heights"
    ], x2 = {
        author: g2,
        format: v2,
        genre: y2,
        publisher: b2,
        series: F2,
        title: k2
    }, w2 = x2, S2 = [
        "###-###-####",
        "(###) ###-####",
        "1-###-###-####",
        "###.###.####"
    ], C2 = {
        formats: S2
    }, A2 = C2, D2 = [
        "azure",
        "black",
        "blue",
        "cyan",
        "fuchsia",
        "gold",
        "green",
        "grey",
        "indigo",
        "ivory",
        "lavender",
        "lime",
        "magenta",
        "maroon",
        "mint green",
        "olive",
        "orange",
        "orchid",
        "pink",
        "plum",
        "purple",
        "red",
        "salmon",
        "silver",
        "sky blue",
        "tan",
        "teal",
        "turquoise",
        "violet",
        "white",
        "yellow"
    ], T2 = {
        human: D2
    }, E2 = T2, _2 = [
        "Automotive",
        "Baby",
        "Beauty",
        "Books",
        "Clothing",
        "Computers",
        "Electronics",
        "Games",
        "Garden",
        "Grocery",
        "Health",
        "Home",
        "Industrial",
        "Jewelry",
        "Kids",
        "Movies",
        "Music",
        "Outdoors",
        "Shoes",
        "Sports",
        "Tools",
        "Toys"
    ], P2 = [
        "Discover the {{animal.type}}-like agility of our {{commerce.product}}, perfect for {{word.adjective}} users",
        "Discover the {{word.adjective}} new {{commerce.product}} with an exciting mix of {{commerce.productMaterial}} ingredients",
        "Ergonomic {{commerce.product}} made with {{commerce.productMaterial}} for all-day {{word.adjective}} support",
        "Experience the {{color.human}} brilliance of our {{commerce.product}}, perfect for {{word.adjective}} environments",
        "Featuring {{science.chemical_element.name}}-enhanced technology, our {{commerce.product}} offers unparalleled {{word.adjective}} performance",
        "Innovative {{commerce.product}} featuring {{word.adjective}} technology and {{commerce.productMaterial}} construction",
        "Introducing the {{location.country}}-inspired {{commerce.product}}, blending {{word.adjective}} style with local craftsmanship",
        "New {{color.human}} {{commerce.product}} with ergonomic design for {{word.adjective}} comfort",
        'New {{commerce.product}} model with {{number.int({"min": 1, "max": 100})}} GB RAM, {{number.int({"min": 1, "max": 1000})}} GB storage, and {{word.adjective}} features',
        "Our {{animal.type}}-friendly {{commerce.product}} ensures {{word.adjective}} comfort for your pets",
        "Our {{food.adjective}}-inspired {{commerce.product}} brings a taste of luxury to your {{word.adjective}} lifestyle",
        "Professional-grade {{commerce.product}} perfect for {{word.adjective}} training and recreational use",
        "Savor the {{food.adjective}} essence in our {{commerce.product}}, designed for {{word.adjective}} culinary adventures",
        "Stylish {{commerce.product}} designed to make you stand out with {{word.adjective}} looks",
        "The sleek and {{word.adjective}} {{commerce.product}} comes with {{color.human}} LED lighting for smart functionality",
        "The {{color.human}} {{commerce.product}} combines {{location.country}} aesthetics with {{science.chemical_element.name}}-based durability",
        "The {{company.catchPhrase}} {{commerce.product}} offers reliable performance and {{word.adjective}} design",
        "The {{person.firstName}} {{commerce.product}} is the latest in a series of {{word.adjective}} products from {{company.name}}",
        "{{commerce.productAdjective}} {{commerce.product}} designed with {{commerce.productMaterial}} for {{word.adjective}} performance",
        "{{company.name}}'s most advanced {{commerce.product}} technology increases {{word.adjective}} capabilities"
    ], B2 = {
        adjective: [
            "Awesome",
            "Bespoke",
            "Electronic",
            "Elegant",
            "Ergonomic",
            "Fantastic",
            "Fresh",
            "Frozen",
            "Generic",
            "Gorgeous",
            "Handcrafted",
            "Handmade",
            "Incredible",
            "Intelligent",
            "Licensed",
            "Luxurious",
            "Modern",
            "Oriental",
            "Practical",
            "Recycled",
            "Refined",
            "Rustic",
            "Sleek",
            "Small",
            "Soft",
            "Tasty",
            "Unbranded"
        ],
        material: [
            "Aluminum",
            "Bamboo",
            "Bronze",
            "Ceramic",
            "Concrete",
            "Cotton",
            "Gold",
            "Granite",
            "Marble",
            "Metal",
            "Plastic",
            "Rubber",
            "Silk",
            "Steel",
            "Wooden"
        ],
        product: [
            "Bacon",
            "Ball",
            "Bike",
            "Car",
            "Chair",
            "Cheese",
            "Chicken",
            "Chips",
            "Computer",
            "Fish",
            "Gloves",
            "Hat",
            "Keyboard",
            "Mouse",
            "Pants",
            "Pizza",
            "Salad",
            "Sausages",
            "Shirt",
            "Shoes",
            "Soap",
            "Table",
            "Towels",
            "Tuna"
        ]
    }, M2 = {
        department: _2,
        product_description: P2,
        product_name: B2
    }, R2 = M2, L2 = [
        "AI-driven",
        "Adaptive",
        "Advanced",
        "Automated",
        "Balanced",
        "Business-focused",
        "Centralized",
        "Compatible",
        "Configurable",
        "Cross-platform",
        "Customer-focused",
        "Customizable",
        "Decentralized",
        "Devolved",
        "Digitized",
        "Distributed",
        "Diverse",
        "Enhanced",
        "Ergonomic",
        "Exclusive",
        "Expanded",
        "Extended",
        "Face to face",
        "Focused",
        "Front-line",
        "Fully-configurable",
        "Fundamental",
        "Future-proofed",
        "Grass-roots",
        "Horizontal",
        "Immersive",
        "Implemented",
        "Innovative",
        "Integrated",
        "Intuitive",
        "Managed",
        "Monitored",
        "Multi-tiered",
        "Networked",
        "Open-architected",
        "Open-source",
        "Operative",
        "Optimized",
        "Optional",
        "Organic",
        "Organized",
        "Persevering",
        "Persistent",
        "Phased",
        "Polarised",
        "Proactive",
        "Profit-focused",
        "Profound",
        "Programmable",
        "Progressive",
        "Public-key",
        "Quality-focused",
        "Reactive",
        "Realigned",
        "Reduced",
        "Reverse-engineered",
        "Robust",
        "Seamless",
        "Secured",
        "Self-enabling",
        "Sharable",
        "Smart",
        "Stand-alone",
        "Streamlined",
        "Sustainable",
        "Synchronised",
        "Team-oriented",
        "Total",
        "Triple-buffered",
        "Universal",
        "Upgradable",
        "User-centric",
        "User-friendly",
        "Versatile",
        "Virtual",
        "Visionary"
    ], I2 = [
        "24/7",
        "AI-driven",
        "B2B",
        "B2C",
        "back-end",
        "best-of-breed",
        "bleeding-edge",
        "collaborative",
        "compelling",
        "cross-media",
        "cross-platform",
        "customized",
        "cutting-edge",
        "decentralized",
        "distributed",
        "dynamic",
        "efficient",
        "end-to-end",
        "enterprise",
        "extensible",
        "frictionless",
        "front-end",
        "generative",
        "global",
        "granular",
        "holistic",
        "immersive",
        "impactful",
        "innovative",
        "integrated",
        "interactive",
        "intuitive",
        "killer",
        "leading-edge",
        "magnetic",
        "mission-critical",
        "next-generation",
        "one-to-one",
        "open-source",
        "out-of-the-box",
        "plug-and-play",
        "proactive",
        "quantum",
        "real-time",
        "revolutionary",
        "rich",
        "robust",
        "scalable",
        "seamless",
        "smart",
        "sticky",
        "strategic",
        "sustainable",
        "synergistic",
        "transparent",
        "turn-key",
        "ubiquitous",
        "user-centric",
        "value-added",
        "vertical",
        "viral",
        "virtual",
        "visionary",
        "world-class"
    ], z2 = [
        "AI",
        "ROI",
        "applications",
        "architectures",
        "blockchains",
        "channels",
        "communities",
        "content",
        "convergence",
        "deliverables",
        "e-commerce",
        "experiences",
        "functionalities",
        "infrastructures",
        "initiatives",
        "interfaces",
        "large language models",
        "lifetime value",
        "markets",
        "methodologies",
        "metrics",
        "mindshare",
        "models",
        "networks",
        "niches",
        "paradigms",
        "partnerships",
        "platforms",
        "relationships",
        "schemas",
        "smart contracts",
        "solutions",
        "supply-chains",
        "synergies",
        "systems",
        "technologies",
        "users",
        "web services"
    ], N2 = [
        "aggregate",
        "architect",
        "benchmark",
        "brand",
        "collaborate",
        "cultivate",
        "deliver",
        "deploy",
        "disintermediate",
        "drive",
        "embrace",
        "empower",
        "enable",
        "engage",
        "engineer",
        "enhance",
        "evolve",
        "expedite",
        "exploit",
        "extend",
        "facilitate",
        "gamify",
        "generate",
        "grow",
        "harness",
        "implement",
        "incentivize",
        "incubate",
        "innovate",
        "integrate",
        "iterate",
        "leverage",
        "maximize",
        "mesh",
        "monetize",
        "optimize",
        "orchestrate",
        "productize",
        "redefine",
        "reinvent",
        "repurpose",
        "revolutionize",
        "scale",
        "seize",
        "simplify",
        "strategize",
        "streamline",
        "syndicate",
        "synthesize",
        "target",
        "transform",
        "transition",
        "unleash",
        "utilize",
        "visualize",
        "whiteboard"
    ], O2 = [
        "24 hour",
        "24/7",
        "AI-powered",
        "actuating",
        "analyzing",
        "asymmetric",
        "asynchronous",
        "attitude-oriented",
        "bifurcated",
        "bottom-line",
        "clear-thinking",
        "client-driven",
        "client-server",
        "cloud-native",
        "coherent",
        "cohesive",
        "composite",
        "content-based",
        "context-sensitive",
        "contextually-based",
        "data-driven",
        "dedicated",
        "demand-driven",
        "directional",
        "discrete",
        "disintermediate",
        "dynamic",
        "eco-centric",
        "empowering",
        "encompassing",
        "executive",
        "explicit",
        "exuding",
        "fault-tolerant",
        "fresh-thinking",
        "full-range",
        "global",
        "heuristic",
        "high-level",
        "holistic",
        "homogeneous",
        "human-resource",
        "hybrid",
        "immersive",
        "impactful",
        "incremental",
        "intangible",
        "interactive",
        "intermediate",
        "leading edge",
        "local",
        "logistical",
        "maximized",
        "methodical",
        "mission-critical",
        "mobile",
        "modular",
        "motivating",
        "national",
        "needs-based",
        "neutral",
        "next generation",
        "optimal",
        "optimizing",
        "radical",
        "real-time",
        "reciprocal",
        "regional",
        "resilient",
        "responsive",
        "scalable",
        "secondary",
        "stable",
        "static",
        "sustainable",
        "system-worthy",
        "systematic",
        "systemic",
        "tangible",
        "tertiary",
        "transitional",
        "uniform",
        "user-facing",
        "value-added",
        "well-modulated",
        "zero administration",
        "zero defect",
        "zero tolerance",
        "zero trust"
    ], H2 = [
        "Group",
        "Inc",
        "LLC",
        "and Sons"
    ], V2 = [
        "{{person.last_name.generic}} - {{person.last_name.generic}}",
        "{{person.last_name.generic}} {{company.legal_entity_type}}",
        "{{person.last_name.generic}}, {{person.last_name.generic}} and {{person.last_name.generic}}"
    ], W2 = [
        "ability",
        "access",
        "adapter",
        "algorithm",
        "alliance",
        "analyzer",
        "application",
        "approach",
        "architecture",
        "archive",
        "array",
        "artificial intelligence",
        "attitude",
        "benchmark",
        "budgetary management",
        "capability",
        "capacity",
        "challenge",
        "circuit",
        "collaboration",
        "complexity",
        "concept",
        "conglomeration",
        "contingency",
        "core",
        "customer loyalty",
        "data-warehouse",
        "database",
        "definition",
        "emulation",
        "encoding",
        "encryption",
        "firmware",
        "flexibility",
        "focus group",
        "forecast",
        "frame",
        "framework",
        "function",
        "functionalities",
        "generative AI",
        "hardware",
        "help-desk",
        "hierarchy",
        "hub",
        "implementation",
        "infrastructure",
        "initiative",
        "installation",
        "instruction set",
        "interface",
        "internet solution",
        "intranet",
        "knowledge base",
        "knowledge user",
        "leverage",
        "local area network",
        "matrices",
        "matrix",
        "methodology",
        "microservice",
        "middleware",
        "migration",
        "model",
        "moderator",
        "monitoring",
        "moratorium",
        "neural-net",
        "open architecture",
        "orchestration",
        "paradigm",
        "parallelism",
        "policy",
        "portal",
        "pricing structure",
        "process improvement",
        "product",
        "productivity",
        "project",
        "projection",
        "protocol",
        "service-desk",
        "software",
        "solution",
        "standardization",
        "strategy",
        "structure",
        "success",
        "support",
        "synergy",
        "system engine",
        "task-force",
        "throughput",
        "time-frame",
        "toolset",
        "utilisation",
        "website",
        "workforce"
    ], G2 = {
        adjective: L2,
        buzz_adjective: I2,
        buzz_noun: z2,
        buzz_verb: N2,
        descriptor: O2,
        legal_entity_type: H2,
        name_pattern: V2,
        noun: W2
    }, $2 = G2, U2 = [
        "avatar",
        "category",
        "comment",
        "createdAt",
        "email",
        "group",
        "id",
        "name",
        "password",
        "phone",
        "status",
        "title",
        "token",
        "updatedAt"
    ], j2 = {
        column: U2
    }, Y2 = j2, q2 = {
        wide: [
            "April",
            "August",
            "December",
            "February",
            "January",
            "July",
            "June",
            "March",
            "May",
            "November",
            "October",
            "September"
        ],
        abbr: [
            "Apr",
            "Aug",
            "Dec",
            "Feb",
            "Jan",
            "Jul",
            "Jun",
            "Mar",
            "May",
            "Nov",
            "Oct",
            "Sep"
        ]
    }, K2 = {
        wide: [
            "Friday",
            "Monday",
            "Saturday",
            "Sunday",
            "Thursday",
            "Tuesday",
            "Wednesday"
        ],
        abbr: [
            "Fri",
            "Mon",
            "Sat",
            "Sun",
            "Thu",
            "Tue",
            "Wed"
        ]
    }, X2 = {
        month: q2,
        weekday: K2
    }, J2 = X2, Z2 = [
        "Auto Loan",
        "Checking",
        "Credit Card",
        "Home Loan",
        "Investment",
        "Money Market",
        "Personal Loan",
        "Savings"
    ], Q2 = [
        "34##-######-####L",
        "37##-######-####L"
    ], eT = [
        "30[0-5]#-######-###L",
        "36##-######-###L",
        "54##-####-####-###L"
    ], tT = [
        "6011-####-####-###L",
        "64[4-9]#-####-####-###L",
        "65##-####-####-###L"
    ], aT = [
        "3528-####-####-###L",
        "3529-####-####-###L",
        "35[3-8]#-####-####-###L"
    ], rT = [
        "2[221-720]-####-####-###L",
        "5[1-5]##-####-####-###L"
    ], nT = [
        "4###########L",
        "4###-####-####-###L"
    ], iT = {
        american_express: Q2,
        diners_club: eT,
        discover: tT,
        jcb: aT,
        mastercard: rT,
        visa: nT
    }, oT = iT, sT = [
        {
            name: "UAE Dirham",
            code: "AED",
            symbol: "",
            numericCode: "784"
        },
        {
            name: "Afghani",
            code: "AFN",
            symbol: "؋",
            numericCode: "971"
        },
        {
            name: "Lek",
            code: "ALL",
            symbol: "Lek",
            numericCode: "008"
        },
        {
            name: "Armenian Dram",
            code: "AMD",
            symbol: "",
            numericCode: "051"
        },
        {
            name: "Netherlands Antillian Guilder",
            code: "ANG",
            symbol: "ƒ",
            numericCode: "532"
        },
        {
            name: "Kwanza",
            code: "AOA",
            symbol: "",
            numericCode: "973"
        },
        {
            name: "Argentine Peso",
            code: "ARS",
            symbol: "$",
            numericCode: "032"
        },
        {
            name: "Australian Dollar",
            code: "AUD",
            symbol: "$",
            numericCode: "036"
        },
        {
            name: "Aruban Guilder",
            code: "AWG",
            symbol: "ƒ",
            numericCode: "533"
        },
        {
            name: "Azerbaijanian Manat",
            code: "AZN",
            symbol: "ман",
            numericCode: "944"
        },
        {
            name: "Convertible Marks",
            code: "BAM",
            symbol: "KM",
            numericCode: "977"
        },
        {
            name: "Barbados Dollar",
            code: "BBD",
            symbol: "$",
            numericCode: "052"
        },
        {
            name: "Taka",
            code: "BDT",
            symbol: "",
            numericCode: "050"
        },
        {
            name: "Bulgarian Lev",
            code: "BGN",
            symbol: "лв",
            numericCode: "975"
        },
        {
            name: "Bahraini Dinar",
            code: "BHD",
            symbol: "",
            numericCode: "048"
        },
        {
            name: "Burundi Franc",
            code: "BIF",
            symbol: "",
            numericCode: "108"
        },
        {
            name: "Bermudian Dollar (customarily known as Bermuda Dollar)",
            code: "BMD",
            symbol: "$",
            numericCode: "060"
        },
        {
            name: "Brunei Dollar",
            code: "BND",
            symbol: "$",
            numericCode: "096"
        },
        {
            name: "Boliviano boliviano",
            code: "BOB",
            symbol: "Bs",
            numericCode: "068"
        },
        {
            name: "Brazilian Real",
            code: "BRL",
            symbol: "R$",
            numericCode: "986"
        },
        {
            name: "Bahamian Dollar",
            code: "BSD",
            symbol: "$",
            numericCode: "044"
        },
        {
            name: "Pula",
            code: "BWP",
            symbol: "P",
            numericCode: "072"
        },
        {
            name: "Belarusian Ruble",
            code: "BYN",
            symbol: "Rbl",
            numericCode: "933"
        },
        {
            name: "Belize Dollar",
            code: "BZD",
            symbol: "BZ$",
            numericCode: "084"
        },
        {
            name: "Canadian Dollar",
            code: "CAD",
            symbol: "$",
            numericCode: "124"
        },
        {
            name: "Congolese Franc",
            code: "CDF",
            symbol: "",
            numericCode: "976"
        },
        {
            name: "Swiss Franc",
            code: "CHF",
            symbol: "CHF",
            numericCode: "756"
        },
        {
            name: "Chilean Peso",
            code: "CLP",
            symbol: "$",
            numericCode: "152"
        },
        {
            name: "Yuan Renminbi",
            code: "CNY",
            symbol: "¥",
            numericCode: "156"
        },
        {
            name: "Colombian Peso",
            code: "COP",
            symbol: "$",
            numericCode: "170"
        },
        {
            name: "Costa Rican Colon",
            code: "CRC",
            symbol: "₡",
            numericCode: "188"
        },
        {
            name: "Cuban Peso",
            code: "CUP",
            symbol: "₱",
            numericCode: "192"
        },
        {
            name: "Cape Verde Escudo",
            code: "CVE",
            symbol: "",
            numericCode: "132"
        },
        {
            name: "Czech Koruna",
            code: "CZK",
            symbol: "Kč",
            numericCode: "203"
        },
        {
            name: "Djibouti Franc",
            code: "DJF",
            symbol: "",
            numericCode: "262"
        },
        {
            name: "Danish Krone",
            code: "DKK",
            symbol: "kr",
            numericCode: "208"
        },
        {
            name: "Dominican Peso",
            code: "DOP",
            symbol: "RD$",
            numericCode: "214"
        },
        {
            name: "Algerian Dinar",
            code: "DZD",
            symbol: "",
            numericCode: "012"
        },
        {
            name: "Egyptian Pound",
            code: "EGP",
            symbol: "£",
            numericCode: "818"
        },
        {
            name: "Nakfa",
            code: "ERN",
            symbol: "",
            numericCode: "232"
        },
        {
            name: "Ethiopian Birr",
            code: "ETB",
            symbol: "",
            numericCode: "230"
        },
        {
            name: "Euro",
            code: "EUR",
            symbol: "€",
            numericCode: "978"
        },
        {
            name: "Fiji Dollar",
            code: "FJD",
            symbol: "$",
            numericCode: "242"
        },
        {
            name: "Falkland Islands Pound",
            code: "FKP",
            symbol: "£",
            numericCode: "238"
        },
        {
            name: "Pound Sterling",
            code: "GBP",
            symbol: "£",
            numericCode: "826"
        },
        {
            name: "Lari",
            code: "GEL",
            symbol: "",
            numericCode: "981"
        },
        {
            name: "Cedi",
            code: "GHS",
            symbol: "",
            numericCode: "936"
        },
        {
            name: "Gibraltar Pound",
            code: "GIP",
            symbol: "£",
            numericCode: "292"
        },
        {
            name: "Dalasi",
            code: "GMD",
            symbol: "",
            numericCode: "270"
        },
        {
            name: "Guinea Franc",
            code: "GNF",
            symbol: "",
            numericCode: "324"
        },
        {
            name: "Quetzal",
            code: "GTQ",
            symbol: "Q",
            numericCode: "320"
        },
        {
            name: "Guyana Dollar",
            code: "GYD",
            symbol: "$",
            numericCode: "328"
        },
        {
            name: "Hong Kong Dollar",
            code: "HKD",
            symbol: "$",
            numericCode: "344"
        },
        {
            name: "Lempira",
            code: "HNL",
            symbol: "L",
            numericCode: "340"
        },
        {
            name: "Gourde",
            code: "HTG",
            symbol: "",
            numericCode: "332"
        },
        {
            name: "Forint",
            code: "HUF",
            symbol: "Ft",
            numericCode: "348"
        },
        {
            name: "Rupiah",
            code: "IDR",
            symbol: "Rp",
            numericCode: "360"
        },
        {
            name: "New Israeli Sheqel",
            code: "ILS",
            symbol: "₪",
            numericCode: "376"
        },
        {
            name: "Bhutanese Ngultrum",
            code: "BTN",
            symbol: "Nu",
            numericCode: "064"
        },
        {
            name: "Indian Rupee",
            code: "INR",
            symbol: "₹",
            numericCode: "356"
        },
        {
            name: "Iraqi Dinar",
            code: "IQD",
            symbol: "",
            numericCode: "368"
        },
        {
            name: "Iranian Rial",
            code: "IRR",
            symbol: "﷼",
            numericCode: "364"
        },
        {
            name: "Iceland Krona",
            code: "ISK",
            symbol: "kr",
            numericCode: "352"
        },
        {
            name: "Jamaican Dollar",
            code: "JMD",
            symbol: "J$",
            numericCode: "388"
        },
        {
            name: "Jordanian Dinar",
            code: "JOD",
            symbol: "",
            numericCode: "400"
        },
        {
            name: "Yen",
            code: "JPY",
            symbol: "¥",
            numericCode: "392"
        },
        {
            name: "Kenyan Shilling",
            code: "KES",
            symbol: "",
            numericCode: "404"
        },
        {
            name: "Som",
            code: "KGS",
            symbol: "лв",
            numericCode: "417"
        },
        {
            name: "Riel",
            code: "KHR",
            symbol: "៛",
            numericCode: "116"
        },
        {
            name: "Comoro Franc",
            code: "KMF",
            symbol: "",
            numericCode: "174"
        },
        {
            name: "North Korean Won",
            code: "KPW",
            symbol: "₩",
            numericCode: "408"
        },
        {
            name: "Won",
            code: "KRW",
            symbol: "₩",
            numericCode: "410"
        },
        {
            name: "Kuwaiti Dinar",
            code: "KWD",
            symbol: "",
            numericCode: "414"
        },
        {
            name: "Cayman Islands Dollar",
            code: "KYD",
            symbol: "$",
            numericCode: "136"
        },
        {
            name: "Tenge",
            code: "KZT",
            symbol: "лв",
            numericCode: "398"
        },
        {
            name: "Kip",
            code: "LAK",
            symbol: "₭",
            numericCode: "418"
        },
        {
            name: "Lebanese Pound",
            code: "LBP",
            symbol: "£",
            numericCode: "422"
        },
        {
            name: "Sri Lanka Rupee",
            code: "LKR",
            symbol: "₨",
            numericCode: "144"
        },
        {
            name: "Liberian Dollar",
            code: "LRD",
            symbol: "$",
            numericCode: "430"
        },
        {
            name: "Libyan Dinar",
            code: "LYD",
            symbol: "",
            numericCode: "434"
        },
        {
            name: "Moroccan Dirham",
            code: "MAD",
            symbol: "",
            numericCode: "504"
        },
        {
            name: "Moldovan Leu",
            code: "MDL",
            symbol: "",
            numericCode: "498"
        },
        {
            name: "Malagasy Ariary",
            code: "MGA",
            symbol: "",
            numericCode: "969"
        },
        {
            name: "Denar",
            code: "MKD",
            symbol: "ден",
            numericCode: "807"
        },
        {
            name: "Kyat",
            code: "MMK",
            symbol: "",
            numericCode: "104"
        },
        {
            name: "Tugrik",
            code: "MNT",
            symbol: "₮",
            numericCode: "496"
        },
        {
            name: "Pataca",
            code: "MOP",
            symbol: "",
            numericCode: "446"
        },
        {
            name: "Ouguiya",
            code: "MRU",
            symbol: "",
            numericCode: "929"
        },
        {
            name: "Mauritius Rupee",
            code: "MUR",
            symbol: "₨",
            numericCode: "480"
        },
        {
            name: "Rufiyaa",
            code: "MVR",
            symbol: "",
            numericCode: "462"
        },
        {
            name: "Kwacha",
            code: "MWK",
            symbol: "",
            numericCode: "454"
        },
        {
            name: "Mexican Peso",
            code: "MXN",
            symbol: "$",
            numericCode: "484"
        },
        {
            name: "Malaysian Ringgit",
            code: "MYR",
            symbol: "RM",
            numericCode: "458"
        },
        {
            name: "Metical",
            code: "MZN",
            symbol: "MT",
            numericCode: "943"
        },
        {
            name: "Naira",
            code: "NGN",
            symbol: "₦",
            numericCode: "566"
        },
        {
            name: "Cordoba Oro",
            code: "NIO",
            symbol: "C$",
            numericCode: "558"
        },
        {
            name: "Norwegian Krone",
            code: "NOK",
            symbol: "kr",
            numericCode: "578"
        },
        {
            name: "Nepalese Rupee",
            code: "NPR",
            symbol: "₨",
            numericCode: "524"
        },
        {
            name: "New Zealand Dollar",
            code: "NZD",
            symbol: "$",
            numericCode: "554"
        },
        {
            name: "Rial Omani",
            code: "OMR",
            symbol: "﷼",
            numericCode: "512"
        },
        {
            name: "Balboa",
            code: "PAB",
            symbol: "B/.",
            numericCode: "590"
        },
        {
            name: "Nuevo Sol",
            code: "PEN",
            symbol: "S/.",
            numericCode: "604"
        },
        {
            name: "Kina",
            code: "PGK",
            symbol: "",
            numericCode: "598"
        },
        {
            name: "Philippine Peso",
            code: "PHP",
            symbol: "Php",
            numericCode: "608"
        },
        {
            name: "Pakistan Rupee",
            code: "PKR",
            symbol: "₨",
            numericCode: "586"
        },
        {
            name: "Zloty",
            code: "PLN",
            symbol: "zł",
            numericCode: "985"
        },
        {
            name: "Guarani",
            code: "PYG",
            symbol: "Gs",
            numericCode: "600"
        },
        {
            name: "Qatari Rial",
            code: "QAR",
            symbol: "﷼",
            numericCode: "634"
        },
        {
            name: "New Leu",
            code: "RON",
            symbol: "lei",
            numericCode: "946"
        },
        {
            name: "Serbian Dinar",
            code: "RSD",
            symbol: "Дин.",
            numericCode: "941"
        },
        {
            name: "Russian Ruble",
            code: "RUB",
            symbol: "руб",
            numericCode: "643"
        },
        {
            name: "Rwanda Franc",
            code: "RWF",
            symbol: "",
            numericCode: "646"
        },
        {
            name: "Saudi Riyal",
            code: "SAR",
            symbol: "﷼",
            numericCode: "682"
        },
        {
            name: "Solomon Islands Dollar",
            code: "SBD",
            symbol: "$",
            numericCode: "090"
        },
        {
            name: "Seychelles Rupee",
            code: "SCR",
            symbol: "₨",
            numericCode: "690"
        },
        {
            name: "Sudanese Pound",
            code: "SDG",
            symbol: "",
            numericCode: "938"
        },
        {
            name: "Swedish Krona",
            code: "SEK",
            symbol: "kr",
            numericCode: "752"
        },
        {
            name: "Singapore Dollar",
            code: "SGD",
            symbol: "$",
            numericCode: "702"
        },
        {
            name: "Saint Helena Pound",
            code: "SHP",
            symbol: "£",
            numericCode: "654"
        },
        {
            name: "Leone",
            code: "SLE",
            symbol: "",
            numericCode: "925"
        },
        {
            name: "Somali Shilling",
            code: "SOS",
            symbol: "S",
            numericCode: "706"
        },
        {
            name: "Surinam Dollar",
            code: "SRD",
            symbol: "$",
            numericCode: "968"
        },
        {
            name: "South Sudanese pound",
            code: "SSP",
            symbol: "",
            numericCode: "728"
        },
        {
            name: "Dobra",
            code: "STN",
            symbol: "Db",
            numericCode: "930"
        },
        {
            name: "Syrian Pound",
            code: "SYP",
            symbol: "£",
            numericCode: "760"
        },
        {
            name: "Lilangeni",
            code: "SZL",
            symbol: "",
            numericCode: "748"
        },
        {
            name: "Baht",
            code: "THB",
            symbol: "฿",
            numericCode: "764"
        },
        {
            name: "Somoni",
            code: "TJS",
            symbol: "",
            numericCode: "972"
        },
        {
            name: "Manat",
            code: "TMT",
            symbol: "",
            numericCode: "934"
        },
        {
            name: "Tunisian Dinar",
            code: "TND",
            symbol: "",
            numericCode: "788"
        },
        {
            name: "Pa'anga",
            code: "TOP",
            symbol: "",
            numericCode: "776"
        },
        {
            name: "Turkish Lira",
            code: "TRY",
            symbol: "₺",
            numericCode: "949"
        },
        {
            name: "Trinidad and Tobago Dollar",
            code: "TTD",
            symbol: "TT$",
            numericCode: "780"
        },
        {
            name: "New Taiwan Dollar",
            code: "TWD",
            symbol: "NT$",
            numericCode: "901"
        },
        {
            name: "Tanzanian Shilling",
            code: "TZS",
            symbol: "",
            numericCode: "834"
        },
        {
            name: "Hryvnia",
            code: "UAH",
            symbol: "₴",
            numericCode: "980"
        },
        {
            name: "Uganda Shilling",
            code: "UGX",
            symbol: "",
            numericCode: "800"
        },
        {
            name: "US Dollar",
            code: "USD",
            symbol: "$",
            numericCode: "840"
        },
        {
            name: "Peso Uruguayo",
            code: "UYU",
            symbol: "$U",
            numericCode: "858"
        },
        {
            name: "Uzbekistan Sum",
            code: "UZS",
            symbol: "лв",
            numericCode: "860"
        },
        {
            name: "Venezuelan bolívar",
            code: "VES",
            symbol: "Bs",
            numericCode: "928"
        },
        {
            name: "Dong",
            code: "VND",
            symbol: "₫",
            numericCode: "704"
        },
        {
            name: "Vatu",
            code: "VUV",
            symbol: "",
            numericCode: "548"
        },
        {
            name: "Tala",
            code: "WST",
            symbol: "",
            numericCode: "882"
        },
        {
            name: "CFA Franc BEAC",
            code: "XAF",
            symbol: "",
            numericCode: "950"
        },
        {
            name: "East Caribbean Dollar",
            code: "XCD",
            symbol: "$",
            numericCode: "951"
        },
        {
            name: "CFA Franc BCEAO",
            code: "XOF",
            symbol: "",
            numericCode: "952"
        },
        {
            name: "CFP Franc",
            code: "XPF",
            symbol: "",
            numericCode: "953"
        },
        {
            name: "Yemeni Rial",
            code: "YER",
            symbol: "﷼",
            numericCode: "886"
        },
        {
            name: "Rand",
            code: "ZAR",
            symbol: "R",
            numericCode: "710"
        },
        {
            name: "Lesotho Loti",
            code: "LSL",
            symbol: "",
            numericCode: "426"
        },
        {
            name: "Namibia Dollar",
            code: "NAD",
            symbol: "N$",
            numericCode: "516"
        },
        {
            name: "Zambian Kwacha",
            code: "ZMW",
            symbol: "K",
            numericCode: "967"
        },
        {
            name: "Zimbabwe Dollar",
            code: "ZWL",
            symbol: "",
            numericCode: "932"
        }
    ], lT = [
        "A {{finance.transactionType}} for {{finance.currencyCode}} {{finance.amount}} was made at {{company.name}} via card ending ****{{string.numeric(4)}} on account ***{{string.numeric(4)}}.",
        "A {{finance.transactionType}} of {{finance.currencyCode}} {{finance.amount}} occurred at {{company.name}} using a card ending in ****{{string.numeric(4)}} for account ***{{string.numeric(4)}}.",
        "Payment of {{finance.currencyCode}} {{finance.amount}} for {{finance.transactionType}} at {{company.name}}, processed with card ending ****{{string.numeric(4)}} linked to account ***{{string.numeric(4)}}.",
        "Transaction alert: {{finance.transactionType}} at {{company.name}} using card ending ****{{string.numeric(4)}} for an amount of {{finance.currencyCode}} {{finance.amount}} on account ***{{string.numeric(4)}}.",
        "You made a {{finance.transactionType}} of {{finance.currencyCode}} {{finance.amount}} at {{company.name}} using card ending in ****{{string.numeric(4)}} from account ***{{string.numeric(4)}}.",
        "Your {{finance.transactionType}} of {{finance.currencyCode}} {{finance.amount}} at {{company.name}} was successful. Charged via card ****{{string.numeric(4)}} to account ***{{string.numeric(4)}}.",
        "{{finance.transactionType}} at {{company.name}} with a card ending in ****{{string.numeric(4)}} for {{finance.currencyCode}} {{finance.amount}} from account ***{{string.numeric(4)}}.",
        "{{finance.transactionType}} confirmed at {{company.name}} for {{finance.currencyCode}} {{finance.amount}}, card ending in ****{{string.numeric(4)}} associated with account ***{{string.numeric(4)}}.",
        "{{finance.transactionType}} of {{finance.currencyCode}} {{finance.amount}} at {{company.name}} charged to account ending in {{string.numeric(4)}} using card ending in ****{{string.numeric(4)}}.",
        "{{finance.transactionType}} processed at {{company.name}} for {{finance.currencyCode}} {{finance.amount}}, using card ending ****{{string.numeric(4)}}. Account: ***{{string.numeric(4)}}.",
        "{{finance.transactionType}} transaction at {{company.name}} using card ending with ****{{string.numeric(4)}} for {{finance.currencyCode}} {{finance.amount}} in account ***{{string.numeric(4)}}."
    ], uT = [
        "deposit",
        "invoice",
        "payment",
        "withdrawal"
    ], cT = {
        account_type: Z2,
        credit_card: oT,
        currency: sT,
        transaction_description_pattern: lT,
        transaction_type: uT
    }, dT = cT, hT = [
        "bitter",
        "creamy",
        "crispy",
        "crunchy",
        "delicious",
        "fluffy",
        "fresh",
        "golden",
        "juicy",
        "moist",
        "rich",
        "salty",
        "savory",
        "smoky",
        "sour",
        "spicy",
        "sweet",
        "tangy",
        "tender",
        "zesty"
    ], mT = [
        "A classic pie filled with delicious {{food.meat}} and {{food.adjective}} {{food.ingredient}}, baked in a {{food.adjective}} pastry crust and topped with a golden-brown lattice.",
        "A delightful tart combining {{food.adjective}} {{food.vegetable}} and sweet {{food.fruit}}, set in a buttery pastry shell and finished with a hint of {{food.spice}}.",
        "A heartwarming {{food.ethnic_category}} soup, featuring fresh {{food.ingredient}} and an aromatic blend of traditional spices.",
        "A robust {{food.adjective}} stew featuring {{food.ethnic_category}} flavors, loaded with {{food.adjective}} meat, {{food.adjective}} vegetables, and a {{food.adjective}}, {{food.adjective}} broth.",
        "A simple {{food.fruit}} pie. No fancy stuff. Just pie.",
        "A slow-roasted {{animal.bird}} with a {{food.adjective}}, {{food.adjective}} exterior. Stuffed with {{food.fruit}} and covered in {{food.fruit}} sauce. Sides with {{food.vegetable}} puree and wild {{food.vegetable}}.",
        "A special {{color.human}} {{food.ingredient}} from {{location.country}}. To support the strong flavor it is sided with a tablespoon of {{food.spice}}.",
        "A succulent {{food.meat}} steak, encased in a {{food.adjective}} {{food.spice}} crust, served with a side of {{food.spice}} mashed {{food.vegetable}}.",
        "An exquisite {{food.meat}} roast, infused with the essence of {{food.fruit}}, slow-roasted to bring out its natural flavors and served with a side of creamy {{food.vegetable}}",
        "Baked {{food.ingredient}}-stuffed {{food.meat}}, seasoned with {{food.spice}} and {{food.adjective}} herbs, accompanied by roasted {{food.vegetable}} medley.",
        "Crispy fried {{food.meat}} bites, seasoned with {{food.spice}} and served with a tangy {{food.fruit}} dipping sauce.",
        "Fresh mixed greens tossed with {{food.spice}}-rubbed {{food.meat}}, {{food.vegetable}}, and a light dressing.",
        "Fresh {{food.ingredient}} with a pinch of {{food.spice}}, topped by a caramelized {{food.fruit}} with whipped cream",
        "Grilled {{food.meat}} kebabs, marinated in {{food.ethnic_category}} spices and served with a fresh {{food.vegetable}} and {{food.fruit}} salad.",
        "Hearty {{food.ingredient}} and {{food.meat}} stew, slow-cooked with {{food.spice}} and {{food.vegetable}} for a comforting, flavorful meal.",
        "Juicy {{food.meat}}, grilled to your liking and drizzled with a bold {{food.spice}} sauce, served alongside roasted {{food.vegetable}}.",
        "Our {{food.adjective}} {{food.meat}}, slow-cooked to perfection, accompanied by steamed {{food.vegetable}} and a rich, savory gravy.",
        "Tender {{food.meat}} skewers, glazed with a sweet and tangy {{food.fruit}} sauce, served over a bed of fragrant jasmine rice.",
        "Tenderly braised {{food.meat}} in a rich {{food.spice}} and {{food.vegetable}} sauce, served with a side of creamy {{food.vegetable}}.",
        "Three {{food.ingredient}} with {{food.vegetable}}, {{food.vegetable}}, {{food.vegetable}}, {{food.vegetable}} and {{food.ingredient}}. With a side of baked {{food.fruit}}, and your choice of {{food.ingredient}} or {{food.ingredient}}.",
        '{{number.int({"min":1, "max":99})}}-day aged {{food.meat}} steak, with choice of {{number.int({"min":2, "max":4})}} sides.'
    ], fT = [
        "California maki",
        "Peking duck",
        "Philadelphia maki",
        "arepas",
        "barbecue ribs",
        "bruschette with tomato",
        "bunny chow",
        "caesar salad",
        "caprese salad",
        "cauliflower penne",
        "cheeseburger",
        "chicken fajitas",
        "chicken milanese",
        "chicken parm",
        "chicken wings",
        "chilli con carne",
        "ebiten maki",
        "fettuccine alfredo",
        "fish and chips",
        "french fries with sausages",
        "french toast",
        "hummus",
        "katsu curry",
        "kebab",
        "lasagne",
        "linguine with clams",
        "massaman curry",
        "meatballs with sauce",
        "mushroom risotto",
        "pappardelle alla bolognese",
        "pasta and beans",
        "pasta carbonara",
        "pasta with tomato and basil",
        "pho",
        "pierogi",
        "pizza",
        "poke",
        "pork belly buns",
        "pork sausage roll",
        "poutine",
        "ricotta stuffed ravioli",
        "risotto with seafood",
        "salmon nigiri",
        "scotch eggs",
        "seafood paella",
        "som tam",
        "souvlaki",
        "stinky tofu",
        "sushi",
        "tacos",
        "teriyaki chicken donburi",
        "tiramisù",
        "tuna sashimi",
        "vegetable soup"
    ], pT = [
        "{{food.adjective}} {{food.ethnic_category}} stew",
        "{{food.adjective}} {{food.meat}} with {{food.vegetable}}",
        "{{food.ethnic_category}} {{food.ingredient}} soup",
        "{{food.fruit}} and {{food.fruit}} tart",
        "{{food.fruit}} pie",
        "{{food.fruit}}-glazed {{food.meat}} skewers",
        "{{food.fruit}}-infused {{food.meat}} roast",
        "{{food.ingredient}} and {{food.meat}} pie",
        "{{food.ingredient}}-infused {{food.meat}}",
        "{{food.meat}} steak",
        "{{food.meat}} with {{food.fruit}} sauce",
        "{{food.spice}}-crusted {{food.meat}}",
        "{{food.spice}}-rubbed {{food.meat}} salad",
        "{{food.vegetable}} salad",
        "{{person.first_name.generic}}'s special {{food.ingredient}}"
    ], gT = [
        "Ainu",
        "Albanian",
        "American",
        "Andhra",
        "Anglo-Indian",
        "Arab",
        "Argentine",
        "Armenian",
        "Assyrian",
        "Awadhi",
        "Azerbaijani",
        "Balochi",
        "Bangladeshi",
        "Bashkir",
        "Belarusian",
        "Bengali",
        "Berber",
        "Brazilian",
        "British",
        "Buddhist",
        "Bulgarian",
        "Cajun",
        "Cantonese",
        "Caribbean",
        "Chechen",
        "Chinese",
        "Chinese Islamic",
        "Circassian",
        "Crimean Tatar",
        "Cypriot",
        "Czech",
        "Danish",
        "Egyptian",
        "English",
        "Eritrean",
        "Estonian",
        "Ethiopian",
        "Filipino",
        "French",
        "Georgian",
        "German",
        "Goan",
        "Goan Catholic",
        "Greek",
        "Gujarati",
        "Hyderabad",
        "Indian",
        "Indian Chinese",
        "Indian Singaporean",
        "Indonesian",
        "Inuit",
        "Irish",
        "Italian",
        "Italian-American",
        "Jamaican",
        "Japanese",
        "Jewish - Israeli",
        "Karnataka",
        "Kazakh",
        "Keralite",
        "Korean",
        "Kurdish",
        "Laotian",
        "Latvian",
        "Lebanese",
        "Lithuanian",
        "Louisiana Creole",
        "Maharashtrian",
        "Malay",
        "Malaysian Chinese",
        "Malaysian Indian",
        "Mangalorean",
        "Mediterranean",
        "Mennonite",
        "Mexican",
        "Mordovian",
        "Mughal",
        "Native American",
        "Nepalese",
        "New Mexican",
        "Odia",
        "Pakistani",
        "Parsi",
        "Pashtun",
        "Pennsylvania Dutch",
        "Peranakan",
        "Persian",
        "Peruvian",
        "Polish",
        "Portuguese",
        "Punjabi",
        "Québécois",
        "Rajasthani",
        "Romani",
        "Romanian",
        "Russian",
        "Sami",
        "Serbian",
        "Sindhi",
        "Slovak",
        "Slovenian",
        "Somali",
        "South Indian",
        "Soviet",
        "Spanish",
        "Sri Lankan",
        "Taiwanese",
        "Tamil",
        "Tatar",
        "Texan",
        "Thai",
        "Turkish",
        "Udupi",
        "Ukrainian",
        "Vietnamese",
        "Yamal",
        "Zambian",
        "Zanzibari"
    ], vT = [
        "apple",
        "apricot",
        "aubergine",
        "avocado",
        "banana",
        "berry",
        "blackberry",
        "blood orange",
        "blueberry",
        "bush tomato",
        "butternut pumpkin",
        "cantaloupe",
        "cavalo",
        "cherry",
        "corella pear",
        "cranberry",
        "cumquat",
        "currant",
        "custard apple",
        "custard apples daikon",
        "date",
        "dragonfruit",
        "dried apricot",
        "elderberry",
        "feijoa",
        "fig",
        "fingerlime",
        "goji berry",
        "grape",
        "grapefruit",
        "guava",
        "honeydew melon",
        "incaberry",
        "jarrahdale pumpkin",
        "juniper berry",
        "kiwi fruit",
        "kiwiberry",
        "lemon",
        "lime",
        "longan",
        "loquat",
        "lychee",
        "mandarin",
        "mango",
        "mangosteen",
        "melon",
        "mulberry",
        "nashi pear",
        "nectarine",
        "olive",
        "orange",
        "papaw",
        "papaya",
        "passionfruit",
        "peach",
        "pear",
        "pineapple",
        "plum",
        "pomegranate",
        "prune",
        "rockmelon",
        "snowpea",
        "sprout",
        "starfruit",
        "strawberry",
        "sultana",
        "tangelo",
        "tomato",
        "watermelon"
    ], yT = [
        "achacha",
        "adzuki beans",
        "agar",
        "agave syrup",
        "ajowan seed",
        "albacore tuna",
        "alfalfa",
        "allspice",
        "almond oil",
        "almonds",
        "amaranth",
        "amchur",
        "anchovies",
        "aniseed",
        "annatto seed",
        "apple cider vinegar",
        "apple juice",
        "apple juice concentrate",
        "apples",
        "apricots",
        "arborio rice",
        "arrowroot",
        "artichoke",
        "arugula",
        "asafoetida",
        "asian greens",
        "asian noodles",
        "asparagus",
        "aubergine",
        "avocado",
        "avocado oil",
        "avocado spread",
        "bacon",
        "baking powder",
        "baking soda",
        "balsamic vinegar",
        "bamboo shoots",
        "banana",
        "barberry",
        "barley",
        "barramundi",
        "basil basmati rice",
        "bay leaves",
        "bean shoots",
        "bean sprouts",
        "beans",
        "beef",
        "beef stock",
        "beetroot",
        "berries",
        "besan",
        "black eyed beans",
        "blackberries",
        "blood oranges",
        "blue cheese",
        "blue eye trevalla",
        "blue swimmer crab",
        "blueberries",
        "bocconcini",
        "bok choy",
        "bonito flakes",
        "bonza",
        "borlotti beans",
        "bran",
        "brazil nut",
        "bread",
        "brie",
        "broccoli",
        "broccolini",
        "brown flour",
        "brown mushrooms",
        "brown rice",
        "brown rice vinegar",
        "brussels sprouts",
        "buckwheat",
        "buckwheat flour",
        "buckwheat noodles",
        "bulghur",
        "bush tomato",
        "butter",
        "butter beans",
        "buttermilk",
        "butternut lettuce",
        "butternut pumpkin",
        "cabbage",
        "cacao",
        "cake",
        "calamari",
        "camellia tea oil",
        "camembert",
        "camomile",
        "candle nut",
        "cannellini beans",
        "canola oil",
        "cantaloupe",
        "capers",
        "capsicum",
        "caraway seed",
        "cardamom",
        "carob carrot",
        "carrot",
        "cashews",
        "cassia bark",
        "cauliflower",
        "cavalo",
        "cayenne",
        "celery",
        "celery seed",
        "cheddar",
        "cherries",
        "chestnut",
        "chia seeds",
        "chicken",
        "chicken stock",
        "chickory",
        "chickpea",
        "chilli pepper",
        "chinese cabbage",
        "chinese five spice",
        "chives",
        "choy sum",
        "cinnamon",
        "clams",
        "cloves",
        "cocoa powder",
        "coconut",
        "coconut oil",
        "coconut water",
        "coffee",
        "common cultivated mushrooms",
        "corella pear",
        "coriander leaves",
        "coriander seed",
        "corn oil",
        "corn syrup",
        "corn tortilla",
        "cornichons",
        "cornmeal",
        "cos lettuce",
        "cottage cheese",
        "cous cous",
        "crabs",
        "cranberry",
        "cream",
        "cream cheese",
        "cucumber",
        "cumin",
        "cumquat",
        "currants",
        "curry leaves",
        "curry powder",
        "custard apples",
        "dandelion",
        "dark chocolate",
        "dashi",
        "dates",
        "dill",
        "dragonfruit",
        "dried apricots",
        "dried chinese broccoli",
        "duck",
        "edam",
        "edamame",
        "eggplant",
        "eggs",
        "elderberry",
        "endive",
        "english spinach",
        "enoki mushrooms",
        "extra virgin olive oil",
        "farmed prawns",
        "feijoa",
        "fennel",
        "fennel seeds",
        "fenugreek",
        "feta",
        "figs",
        "file powder",
        "fingerlime",
        "fish sauce",
        "fish stock",
        "flat mushrooms",
        "flathead",
        "flaxseed",
        "flaxseed oil",
        "flounder",
        "flour",
        "freekeh",
        "french eschallots",
        "fresh chillies",
        "fromage blanc",
        "fruit",
        "galangal",
        "garam masala",
        "garlic",
        "goat cheese",
        "goat milk",
        "goji berry",
        "grape seed oil",
        "grapefruit",
        "grapes",
        "green beans",
        "green pepper",
        "green tea",
        "green tea noodles",
        "greenwheat freekeh",
        "gruyere",
        "guava",
        "gula melaka",
        "haloumi",
        "ham",
        "haricot beans",
        "harissa",
        "hazelnut",
        "hijiki",
        "hiramasa kingfish",
        "hokkien noodles",
        "honey",
        "honeydew melon",
        "horseradish",
        "hot smoked salmon",
        "hummus",
        "iceberg lettuce",
        "incaberries",
        "jarrahdale pumpkin",
        "jasmine rice",
        "jelly",
        "jerusalem artichoke",
        "jewfish",
        "jicama",
        "juniper berries",
        "kale",
        "kangaroo",
        "kecap manis",
        "kenchur",
        "kidney beans",
        "kidneys",
        "kiwi berries",
        "kiwi fruit",
        "kohlrabi",
        "kokam",
        "kombu",
        "koshihikari rice",
        "kudzu",
        "kumera",
        "lamb",
        "lavender flowers",
        "leeks",
        "lemon",
        "lemongrass",
        "lentils",
        "lettuce",
        "licorice",
        "lime leaves",
        "limes",
        "liver",
        "lobster",
        "longan",
        "loquats",
        "lotus root",
        "lychees",
        "macadamia nut",
        "macadamia oil",
        "mace",
        "mackerel",
        "mahi mahi",
        "mahlab",
        "malt vinegar",
        "mandarins",
        "mango",
        "mangosteens",
        "maple syrup",
        "margarine",
        "marigold",
        "marjoram",
        "mastic",
        "melon",
        "milk",
        "milk chocolate",
        "mint",
        "miso",
        "molasses",
        "monkfish",
        "morwong",
        "mountain bread",
        "mozzarella",
        "muesli",
        "mulberries",
        "mullet",
        "mung beans",
        "mussels",
        "mustard",
        "mustard seed",
        "nashi pear",
        "nasturtium",
        "nectarines",
        "nori",
        "nutmeg",
        "nutritional yeast",
        "nuts",
        "oat flour",
        "oatmeal",
        "oats",
        "octopus",
        "okra",
        "olive oil",
        "olives",
        "omega spread",
        "onion",
        "oranges",
        "oregano",
        "oyster mushrooms",
        "oyster sauce",
        "oysters",
        "pandanus leaves",
        "papaw",
        "papaya",
        "paprik",
        "parmesan cheese",
        "parrotfish",
        "parsley",
        "parsnip",
        "passionfruit",
        "pasta",
        "peaches",
        "peanuts",
        "pear",
        "pear juice",
        "pears",
        "peas",
        "pecan nut",
        "pecorino",
        "pepitas",
        "peppercorns",
        "peppermint",
        "peppers",
        "persimmon",
        "pine nut",
        "pineapple",
        "pinto beans",
        "pistachio nut",
        "plums",
        "polenta",
        "pomegranate",
        "poppy seed",
        "porcini mushrooms",
        "pork",
        "potato flour",
        "potatoes",
        "provolone",
        "prunes",
        "pumpkin",
        "pumpkin seed",
        "purple carrot",
        "purple rice",
        "quark",
        "quince",
        "quinoa",
        "radicchio",
        "radish",
        "raisin",
        "raspberry",
        "red cabbage",
        "red lentils",
        "red pepper",
        "red wine",
        "red wine vinegar",
        "redfish",
        "rhubarb",
        "rice flour",
        "rice noodles",
        "rice paper",
        "rice syrup",
        "ricemilk",
        "ricotta",
        "rockmelon",
        "rose water",
        "rosemary",
        "rye",
        "rye bread",
        "safflower oil",
        "saffron",
        "sage",
        "sake",
        "salmon",
        "sardines",
        "sausages",
        "scallops",
        "sea salt",
        "semolina",
        "sesame oil",
        "sesame seeds",
        "shark",
        "shiitake mushrooms",
        "silverbeet",
        "slivered almonds",
        "smoked trout",
        "snapper",
        "snowpea sprouts",
        "snowpeas",
        "soba",
        "sour dough bread",
        "soy",
        "soy beans",
        "soy flour",
        "soy milk",
        "soy sauce",
        "soymilk",
        "spearmint",
        "spelt",
        "spelt bread",
        "spinach",
        "spring onions",
        "sprouts",
        "squash",
        "squid",
        "star anise",
        "star fruit",
        "starfruit",
        "stevia",
        "strawberries",
        "sugar",
        "sultanas",
        "sun-dried tomatoes",
        "sunflower oil",
        "sunflower seeds",
        "sweet chilli sauce",
        "sweet potato",
        "swiss chard",
        "swordfish",
        "szechuan pepperberry",
        "tabasco",
        "tahini",
        "taleggio cheese",
        "tamari",
        "tamarillo",
        "tangelo",
        "tapioca",
        "tapioca flour",
        "tarragon",
        "tea",
        "tea oil",
        "tempeh",
        "thyme",
        "tinned",
        "tofu",
        "tom yum",
        "tomatoes",
        "trout",
        "tuna",
        "turkey",
        "turmeric",
        "turnips",
        "unbleached flour",
        "vanilla beans",
        "vegetable oil",
        "vegetable spaghetti",
        "vegetable stock",
        "vermicelli noodles",
        "vinegar",
        "wakame",
        "walnut",
        "warehou",
        "wasabi",
        "water",
        "watercress",
        "watermelon",
        "wattleseed",
        "wheat",
        "wheatgrass juice",
        "white bread",
        "white flour",
        "white rice",
        "white wine",
        "white wine vinegar",
        "whiting wild rice",
        "wholegrain bread",
        "wholemeal",
        "wholewheat flour",
        "william pear",
        "yeast",
        "yellow papaw",
        "yellowtail kingfish",
        "yoghurt",
        "yogurt",
        "zucchini"
    ], bT = [
        "beef",
        "chicken",
        "crocodile",
        "duck",
        "emu",
        "goose",
        "kangaroo",
        "lamb",
        "ostrich",
        "pigeon",
        "pork",
        "quail",
        "rabbit",
        "salmon",
        "turkey",
        "venison"
    ], FT = [
        "achiote seed",
        "ajwain seed",
        "ajwan seed",
        "allspice",
        "amchoor",
        "anise",
        "anise star",
        "aniseed",
        "annatto seed",
        "arrowroot",
        "asafoetida",
        "baharat",
        "balti masala",
        "balti stir fry mix",
        "basil",
        "bay leaves",
        "bbq",
        "caraway seed",
        "cardamom",
        "cassia",
        "cayenne pepper",
        "celery",
        "chamomile",
        "chervil",
        "chilli",
        "chilli pepper",
        "chillies",
        "china star",
        "chives",
        "cinnamon",
        "cloves",
        "colombo",
        "coriander",
        "cumin",
        "curly leaf parsley",
        "curry",
        "dhansak",
        "dill",
        "fennel seed",
        "fenugreek",
        "fines herbes",
        "five spice",
        "french lavender",
        "galangal",
        "garam masala",
        "garlic",
        "german chamomile",
        "ginger",
        "green cardamom",
        "herbes de provence",
        "jalfrezi",
        "jerk",
        "kaffir leaves",
        "korma",
        "lavender",
        "lemon grass",
        "lemon pepper",
        "lime leaves",
        "liquorice root",
        "mace",
        "mango",
        "marjoram",
        "methi",
        "mint",
        "mustard",
        "nutmeg",
        "onion seed",
        "orange zest",
        "oregano",
        "paprika",
        "parsley",
        "pepper",
        "peppercorns",
        "pimento",
        "piri piri",
        "poppy seed",
        "pot marjoram",
        "poudre de colombo",
        "ras-el-hanout",
        "rice paper",
        "rogan josh",
        "rose baie",
        "rosemary",
        "saffron",
        "sage",
        "sesame seed",
        "spearmint",
        "sumac",
        "sweet basil",
        "sweet laurel",
        "tagine",
        "tandoori masala",
        "tarragon",
        "thyme",
        "tikka masala",
        "turmeric",
        "vanilla",
        "zahtar"
    ], kT = [
        "artichoke",
        "arugula",
        "asian greens",
        "asparagus",
        "bean shoots",
        "bean sprouts",
        "beans",
        "beetroot",
        "bok choy",
        "broccoli",
        "broccolini",
        "brussels sprouts",
        "butternut lettuce",
        "cabbage",
        "capers",
        "carob carrot",
        "carrot",
        "cauliflower",
        "celery",
        "chilli pepper",
        "chinese cabbage",
        "chives",
        "cornichons",
        "cos lettuce",
        "cucumber",
        "dried chinese broccoli",
        "eggplant",
        "endive",
        "english spinach",
        "french eschallots",
        "fresh chillies",
        "garlic",
        "green beans",
        "green pepper",
        "hijiki",
        "iceberg lettuce",
        "jerusalem artichoke",
        "jicama",
        "kale",
        "kohlrabi",
        "leeks",
        "lettuce",
        "okra",
        "onion",
        "parsnip",
        "peas",
        "peppers",
        "potatoes",
        "pumpkin",
        "purple carrot",
        "radicchio",
        "radish",
        "raspberry",
        "red cabbage",
        "red pepper",
        "rhubarb",
        "snowpea sprouts",
        "spinach",
        "squash",
        "sun dried tomatoes",
        "sweet potato",
        "swiss chard",
        "turnips",
        "zucchini"
    ], xT = {
        adjective: hT,
        description_pattern: mT,
        dish: fT,
        dish_pattern: pT,
        ethnic_category: gT,
        fruit: vT,
        ingredient: yT,
        meat: bT,
        spice: FT,
        vegetable: kT
    }, wT = xT, ST = [
        "1080p",
        "auxiliary",
        "back-end",
        "bluetooth",
        "cross-platform",
        "digital",
        "haptic",
        "mobile",
        "multi-byte",
        "neural",
        "online",
        "open-source",
        "optical",
        "primary",
        "redundant",
        "solid state",
        "virtual",
        "wireless"
    ], CT = [
        "backing up",
        "bypassing",
        "calculating",
        "compressing",
        "connecting",
        "copying",
        "generating",
        "hacking",
        "indexing",
        "navigating",
        "overriding",
        "parsing",
        "programming",
        "quantifying",
        "synthesizing",
        "transmitting"
    ], AT = [
        "alarm",
        "application",
        "array",
        "bandwidth",
        "bus",
        "capacitor",
        "card",
        "circuit",
        "driver",
        "feed",
        "firewall",
        "hard drive",
        "interface",
        "matrix",
        "microchip",
        "monitor",
        "panel",
        "pixel",
        "port",
        "program",
        "protocol",
        "sensor",
        "system",
        "transmitter"
    ], DT = [
        "I'll {{verb}} the {{adjective}} {{abbreviation}} {{noun}}, that should {{noun}} the {{abbreviation}} {{noun}}!",
        "If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!",
        "The {{abbreviation}} {{noun}} is down, {{verb}} the {{adjective}} {{noun}} so we can {{verb}} the {{abbreviation}} {{noun}}!",
        "Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!",
        "Use the {{adjective}} {{abbreviation}} {{noun}}, then you can {{verb}} the {{adjective}} {{noun}}!",
        "We need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!",
        "You can't {{verb}} the {{noun}} without {{ingverb}} the {{adjective}} {{abbreviation}} {{noun}}!",
        "{{ingverb}} the {{noun}} won't do anything, we need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!"
    ], TT = [
        "back up",
        "bypass",
        "calculate",
        "compress",
        "connect",
        "copy",
        "generate",
        "hack",
        "index",
        "input",
        "navigate",
        "override",
        "parse",
        "program",
        "quantify",
        "reboot",
        "synthesize",
        "transmit"
    ], ET = {
        adjective: ST,
        ingverb: CT,
        noun: AT,
        phrase: DT,
        verb: TT
    }, _T = ET, PT = [
        "com",
        "biz",
        "info",
        "name",
        "net",
        "org"
    ], BT = [
        "example.org",
        "example.com",
        "example.net"
    ], MT = [
        "gmail.com",
        "yahoo.com",
        "hotmail.com"
    ], RT = {
        domain_suffix: PT,
        example_email: BT,
        free_email: MT
    }, LT = RT, IT = [
        "#####",
        "####",
        "###"
    ], zT = [
        "Abilene",
        "Akron",
        "Alafaya",
        "Alameda",
        "Albany",
        "Albuquerque",
        "Alexandria",
        "Alhambra",
        "Aliso Viejo",
        "Allen",
        "Allentown",
        "Aloha",
        "Alpharetta",
        "Altadena",
        "Altamonte Springs",
        "Altoona",
        "Amarillo",
        "Ames",
        "Anaheim",
        "Anchorage",
        "Anderson",
        "Ankeny",
        "Ann Arbor",
        "Annandale",
        "Antelope",
        "Antioch",
        "Apex",
        "Apopka",
        "Apple Valley",
        "Appleton",
        "Arcadia",
        "Arden-Arcade",
        "Arecibo",
        "Arlington",
        "Arlington Heights",
        "Arvada",
        "Ashburn",
        "Asheville",
        "Aspen Hill",
        "Atascocita",
        "Athens-Clarke County",
        "Atlanta",
        "Attleboro",
        "Auburn",
        "Augusta-Richmond County",
        "Aurora",
        "Austin",
        "Avondale",
        "Azusa",
        "Bakersfield",
        "Baldwin Park",
        "Baltimore",
        "Barnstable Town",
        "Bartlett",
        "Baton Rouge",
        "Battle Creek",
        "Bayamon",
        "Bayonne",
        "Baytown",
        "Beaumont",
        "Beavercreek",
        "Beaverton",
        "Bedford",
        "Bel Air South",
        "Bell Gardens",
        "Belleville",
        "Bellevue",
        "Bellflower",
        "Bellingham",
        "Bend",
        "Bentonville",
        "Berkeley",
        "Berwyn",
        "Bethesda",
        "Bethlehem",
        "Billings",
        "Biloxi",
        "Binghamton",
        "Birmingham",
        "Bismarck",
        "Blacksburg",
        "Blaine",
        "Bloomington",
        "Blue Springs",
        "Boca Raton",
        "Boise City",
        "Bolingbrook",
        "Bonita Springs",
        "Bossier City",
        "Boston",
        "Bothell",
        "Boulder",
        "Bountiful",
        "Bowie",
        "Bowling Green",
        "Boynton Beach",
        "Bozeman",
        "Bradenton",
        "Brandon",
        "Brentwood",
        "Bridgeport",
        "Bristol",
        "Brockton",
        "Broken Arrow",
        "Brookhaven",
        "Brookline",
        "Brooklyn Park",
        "Broomfield",
        "Brownsville",
        "Bryan",
        "Buckeye",
        "Buena Park",
        "Buffalo",
        "Buffalo Grove",
        "Burbank",
        "Burien",
        "Burke",
        "Burleson",
        "Burlington",
        "Burnsville",
        "Caguas",
        "Caldwell",
        "Camarillo",
        "Cambridge",
        "Camden",
        "Canton",
        "Cape Coral",
        "Carlsbad",
        "Carmel",
        "Carmichael",
        "Carolina",
        "Carrollton",
        "Carson",
        "Carson City",
        "Cary",
        "Casa Grande",
        "Casas Adobes",
        "Casper",
        "Castle Rock",
        "Castro Valley",
        "Catalina Foothills",
        "Cathedral City",
        "Catonsville",
        "Cedar Hill",
        "Cedar Park",
        "Cedar Rapids",
        "Centennial",
        "Centreville",
        "Ceres",
        "Cerritos",
        "Champaign",
        "Chandler",
        "Chapel Hill",
        "Charleston",
        "Charlotte",
        "Charlottesville",
        "Chattanooga",
        "Cheektowaga",
        "Chesapeake",
        "Chesterfield",
        "Cheyenne",
        "Chicago",
        "Chico",
        "Chicopee",
        "Chino",
        "Chino Hills",
        "Chula Vista",
        "Cicero",
        "Cincinnati",
        "Citrus Heights",
        "Clarksville",
        "Clearwater",
        "Cleveland",
        "Cleveland Heights",
        "Clifton",
        "Clovis",
        "Coachella",
        "Coconut Creek",
        "Coeur d'Alene",
        "College Station",
        "Collierville",
        "Colorado Springs",
        "Colton",
        "Columbia",
        "Columbus",
        "Commerce City",
        "Compton",
        "Concord",
        "Conroe",
        "Conway",
        "Coon Rapids",
        "Coral Gables",
        "Coral Springs",
        "Corona",
        "Corpus Christi",
        "Corvallis",
        "Costa Mesa",
        "Council Bluffs",
        "Country Club",
        "Covina",
        "Cranston",
        "Cupertino",
        "Cutler Bay",
        "Cuyahoga Falls",
        "Cypress",
        "Dale City",
        "Dallas",
        "Daly City",
        "Danbury",
        "Danville",
        "Davenport",
        "Davie",
        "Davis",
        "Dayton",
        "Daytona Beach",
        "DeKalb",
        "DeSoto",
        "Dearborn",
        "Dearborn Heights",
        "Decatur",
        "Deerfield Beach",
        "Delano",
        "Delray Beach",
        "Deltona",
        "Denton",
        "Denver",
        "Des Moines",
        "Des Plaines",
        "Detroit",
        "Diamond Bar",
        "Doral",
        "Dothan",
        "Downers Grove",
        "Downey",
        "Draper",
        "Dublin",
        "Dubuque",
        "Duluth",
        "Dundalk",
        "Dunwoody",
        "Durham",
        "Eagan",
        "East Hartford",
        "East Honolulu",
        "East Lansing",
        "East Los Angeles",
        "East Orange",
        "East Providence",
        "Eastvale",
        "Eau Claire",
        "Eden Prairie",
        "Edina",
        "Edinburg",
        "Edmond",
        "El Cajon",
        "El Centro",
        "El Dorado Hills",
        "El Monte",
        "El Paso",
        "Elgin",
        "Elizabeth",
        "Elk Grove",
        "Elkhart",
        "Ellicott City",
        "Elmhurst",
        "Elyria",
        "Encinitas",
        "Enid",
        "Enterprise",
        "Erie",
        "Escondido",
        "Euclid",
        "Eugene",
        "Euless",
        "Evanston",
        "Evansville",
        "Everett",
        "Fairfield",
        "Fall River",
        "Fargo",
        "Farmington",
        "Farmington Hills",
        "Fayetteville",
        "Federal Way",
        "Findlay",
        "Fishers",
        "Flagstaff",
        "Flint",
        "Florence-Graham",
        "Florin",
        "Florissant",
        "Flower Mound",
        "Folsom",
        "Fond du Lac",
        "Fontana",
        "Fort Collins",
        "Fort Lauderdale",
        "Fort Myers",
        "Fort Pierce",
        "Fort Smith",
        "Fort Wayne",
        "Fort Worth",
        "Fountain Valley",
        "Fountainebleau",
        "Framingham",
        "Franklin",
        "Frederick",
        "Freeport",
        "Fremont",
        "Fresno",
        "Frisco",
        "Fullerton",
        "Gainesville",
        "Gaithersburg",
        "Galveston",
        "Garden Grove",
        "Gardena",
        "Garland",
        "Gary",
        "Gastonia",
        "Georgetown",
        "Germantown",
        "Gilbert",
        "Gilroy",
        "Glen Burnie",
        "Glendale",
        "Glendora",
        "Glenview",
        "Goodyear",
        "Grand Forks",
        "Grand Island",
        "Grand Junction",
        "Grand Prairie",
        "Grand Rapids",
        "Grapevine",
        "Great Falls",
        "Greeley",
        "Green Bay",
        "Greensboro",
        "Greenville",
        "Greenwood",
        "Gresham",
        "Guaynabo",
        "Gulfport",
        "Hacienda Heights",
        "Hackensack",
        "Haltom City",
        "Hamilton",
        "Hammond",
        "Hampton",
        "Hanford",
        "Harlingen",
        "Harrisburg",
        "Harrisonburg",
        "Hartford",
        "Hattiesburg",
        "Haverhill",
        "Hawthorne",
        "Hayward",
        "Hemet",
        "Hempstead",
        "Henderson",
        "Hendersonville",
        "Hesperia",
        "Hialeah",
        "Hicksville",
        "High Point",
        "Highland",
        "Highlands Ranch",
        "Hillsboro",
        "Hilo",
        "Hoboken",
        "Hoffman Estates",
        "Hollywood",
        "Homestead",
        "Honolulu",
        "Hoover",
        "Houston",
        "Huntersville",
        "Huntington",
        "Huntington Beach",
        "Huntington Park",
        "Huntsville",
        "Hutchinson",
        "Idaho Falls",
        "Independence",
        "Indianapolis",
        "Indio",
        "Inglewood",
        "Iowa City",
        "Irondequoit",
        "Irvine",
        "Irving",
        "Jackson",
        "Jacksonville",
        "Janesville",
        "Jefferson City",
        "Jeffersonville",
        "Jersey City",
        "Johns Creek",
        "Johnson City",
        "Joliet",
        "Jonesboro",
        "Joplin",
        "Jupiter",
        "Jurupa Valley",
        "Kalamazoo",
        "Kannapolis",
        "Kansas City",
        "Kearny",
        "Keller",
        "Kendale Lakes",
        "Kendall",
        "Kenner",
        "Kennewick",
        "Kenosha",
        "Kent",
        "Kentwood",
        "Kettering",
        "Killeen",
        "Kingsport",
        "Kirkland",
        "Kissimmee",
        "Knoxville",
        "Kokomo",
        "La Crosse",
        "La Habra",
        "La Mesa",
        "La Mirada",
        "Lacey",
        "Lafayette",
        "Laguna Niguel",
        "Lake Charles",
        "Lake Elsinore",
        "Lake Forest",
        "Lake Havasu City",
        "Lake Ridge",
        "Lakeland",
        "Lakeville",
        "Lakewood",
        "Lancaster",
        "Lansing",
        "Laredo",
        "Largo",
        "Las Cruces",
        "Las Vegas",
        "Lauderhill",
        "Lawrence",
        "Lawton",
        "Layton",
        "League City",
        "Lee's Summit",
        "Leesburg",
        "Lehi",
        "Lehigh Acres",
        "Lenexa",
        "Levittown",
        "Lewisville",
        "Lexington-Fayette",
        "Lincoln",
        "Linden",
        "Little Rock",
        "Littleton",
        "Livermore",
        "Livonia",
        "Lodi",
        "Logan",
        "Lombard",
        "Lompoc",
        "Long Beach",
        "Longmont",
        "Longview",
        "Lorain",
        "Los Angeles",
        "Louisville/Jefferson County",
        "Loveland",
        "Lowell",
        "Lubbock",
        "Lynchburg",
        "Lynn",
        "Lynwood",
        "Macon-Bibb County",
        "Madera",
        "Madison",
        "Malden",
        "Manchester",
        "Manhattan",
        "Mansfield",
        "Manteca",
        "Maple Grove",
        "Margate",
        "Maricopa",
        "Marietta",
        "Marysville",
        "Mayaguez",
        "McAllen",
        "McKinney",
        "McLean",
        "Medford",
        "Melbourne",
        "Memphis",
        "Menifee",
        "Mentor",
        "Merced",
        "Meriden",
        "Meridian",
        "Mesa",
        "Mesquite",
        "Metairie",
        "Methuen Town",
        "Miami",
        "Miami Beach",
        "Miami Gardens",
        "Middletown",
        "Midland",
        "Midwest City",
        "Milford",
        "Millcreek",
        "Milpitas",
        "Milwaukee",
        "Minneapolis",
        "Minnetonka",
        "Minot",
        "Miramar",
        "Mishawaka",
        "Mission",
        "Mission Viejo",
        "Missoula",
        "Missouri City",
        "Mobile",
        "Modesto",
        "Moline",
        "Monroe",
        "Montebello",
        "Monterey Park",
        "Montgomery",
        "Moore",
        "Moreno Valley",
        "Morgan Hill",
        "Mount Pleasant",
        "Mount Prospect",
        "Mount Vernon",
        "Mountain View",
        "Muncie",
        "Murfreesboro",
        "Murray",
        "Murrieta",
        "Nampa",
        "Napa",
        "Naperville",
        "Nashua",
        "Nashville-Davidson",
        "National City",
        "New Bedford",
        "New Braunfels",
        "New Britain",
        "New Brunswick",
        "New Haven",
        "New Orleans",
        "New Rochelle",
        "New York",
        "Newark",
        "Newport Beach",
        "Newport News",
        "Newton",
        "Niagara Falls",
        "Noblesville",
        "Norfolk",
        "Normal",
        "Norman",
        "North Bethesda",
        "North Charleston",
        "North Highlands",
        "North Las Vegas",
        "North Lauderdale",
        "North Little Rock",
        "North Miami",
        "North Miami Beach",
        "North Port",
        "North Richland Hills",
        "Norwalk",
        "Novato",
        "Novi",
        "O'Fallon",
        "Oak Lawn",
        "Oak Park",
        "Oakland",
        "Oakland Park",
        "Ocala",
        "Oceanside",
        "Odessa",
        "Ogden",
        "Oklahoma City",
        "Olathe",
        "Olympia",
        "Omaha",
        "Ontario",
        "Orange",
        "Orem",
        "Orland Park",
        "Orlando",
        "Oro Valley",
        "Oshkosh",
        "Overland Park",
        "Owensboro",
        "Oxnard",
        "Palatine",
        "Palm Bay",
        "Palm Beach Gardens",
        "Palm Coast",
        "Palm Desert",
        "Palm Harbor",
        "Palm Springs",
        "Palmdale",
        "Palo Alto",
        "Paradise",
        "Paramount",
        "Parker",
        "Parma",
        "Pasadena",
        "Pasco",
        "Passaic",
        "Paterson",
        "Pawtucket",
        "Peabody",
        "Pearl City",
        "Pearland",
        "Pembroke Pines",
        "Pensacola",
        "Peoria",
        "Perris",
        "Perth Amboy",
        "Petaluma",
        "Pflugerville",
        "Pharr",
        "Philadelphia",
        "Phoenix",
        "Pico Rivera",
        "Pine Bluff",
        "Pine Hills",
        "Pinellas Park",
        "Pittsburg",
        "Pittsburgh",
        "Pittsfield",
        "Placentia",
        "Plainfield",
        "Plano",
        "Plantation",
        "Pleasanton",
        "Plymouth",
        "Pocatello",
        "Poinciana",
        "Pomona",
        "Pompano Beach",
        "Ponce",
        "Pontiac",
        "Port Arthur",
        "Port Charlotte",
        "Port Orange",
        "Port St. Lucie",
        "Portage",
        "Porterville",
        "Portland",
        "Portsmouth",
        "Potomac",
        "Poway",
        "Providence",
        "Provo",
        "Pueblo",
        "Quincy",
        "Racine",
        "Raleigh",
        "Rancho Cordova",
        "Rancho Cucamonga",
        "Rancho Palos Verdes",
        "Rancho Santa Margarita",
        "Rapid City",
        "Reading",
        "Redding",
        "Redlands",
        "Redmond",
        "Redondo Beach",
        "Redwood City",
        "Reno",
        "Renton",
        "Reston",
        "Revere",
        "Rialto",
        "Richardson",
        "Richland",
        "Richmond",
        "Rio Rancho",
        "Riverside",
        "Riverton",
        "Riverview",
        "Roanoke",
        "Rochester",
        "Rochester Hills",
        "Rock Hill",
        "Rockford",
        "Rocklin",
        "Rockville",
        "Rockwall",
        "Rocky Mount",
        "Rogers",
        "Rohnert Park",
        "Rosemead",
        "Roseville",
        "Roswell",
        "Round Rock",
        "Rowland Heights",
        "Rowlett",
        "Royal Oak",
        "Sacramento",
        "Saginaw",
        "Salem",
        "Salina",
        "Salinas",
        "Salt Lake City",
        "Sammamish",
        "San Angelo",
        "San Antonio",
        "San Bernardino",
        "San Bruno",
        "San Buenaventura (Ventura)",
        "San Clemente",
        "San Diego",
        "San Francisco",
        "San Jacinto",
        "San Jose",
        "San Juan",
        "San Leandro",
        "San Luis Obispo",
        "San Marcos",
        "San Mateo",
        "San Rafael",
        "San Ramon",
        "San Tan Valley",
        "Sandy",
        "Sandy Springs",
        "Sanford",
        "Santa Ana",
        "Santa Barbara",
        "Santa Clara",
        "Santa Clarita",
        "Santa Cruz",
        "Santa Fe",
        "Santa Maria",
        "Santa Monica",
        "Santa Rosa",
        "Santee",
        "Sarasota",
        "Savannah",
        "Sayreville",
        "Schaumburg",
        "Schenectady",
        "Scottsdale",
        "Scranton",
        "Seattle",
        "Severn",
        "Shawnee",
        "Sheboygan",
        "Shoreline",
        "Shreveport",
        "Sierra Vista",
        "Silver Spring",
        "Simi Valley",
        "Sioux City",
        "Sioux Falls",
        "Skokie",
        "Smyrna",
        "Somerville",
        "South Bend",
        "South Gate",
        "South Hill",
        "South Jordan",
        "South San Francisco",
        "South Valley",
        "South Whittier",
        "Southaven",
        "Southfield",
        "Sparks",
        "Spokane",
        "Spokane Valley",
        "Spring",
        "Spring Hill",
        "Spring Valley",
        "Springdale",
        "Springfield",
        "St. Charles",
        "St. Clair Shores",
        "St. Cloud",
        "St. George",
        "St. Joseph",
        "St. Louis",
        "St. Louis Park",
        "St. Paul",
        "St. Peters",
        "St. Petersburg",
        "Stamford",
        "State College",
        "Sterling Heights",
        "Stillwater",
        "Stockton",
        "Stratford",
        "Strongsville",
        "Suffolk",
        "Sugar Land",
        "Summerville",
        "Sunnyvale",
        "Sunrise",
        "Sunrise Manor",
        "Surprise",
        "Syracuse",
        "Tacoma",
        "Tallahassee",
        "Tamarac",
        "Tamiami",
        "Tampa",
        "Taunton",
        "Taylor",
        "Taylorsville",
        "Temecula",
        "Tempe",
        "Temple",
        "Terre Haute",
        "Texas City",
        "The Hammocks",
        "The Villages",
        "The Woodlands",
        "Thornton",
        "Thousand Oaks",
        "Tigard",
        "Tinley Park",
        "Titusville",
        "Toledo",
        "Toms River",
        "Tonawanda",
        "Topeka",
        "Torrance",
        "Town 'n' Country",
        "Towson",
        "Tracy",
        "Trenton",
        "Troy",
        "Trujillo Alto",
        "Tuckahoe",
        "Tucson",
        "Tulare",
        "Tulsa",
        "Turlock",
        "Tuscaloosa",
        "Tustin",
        "Twin Falls",
        "Tyler",
        "Union City",
        "University",
        "Upland",
        "Urbana",
        "Urbandale",
        "Utica",
        "Vacaville",
        "Valdosta",
        "Vallejo",
        "Vancouver",
        "Victoria",
        "Victorville",
        "Vineland",
        "Virginia Beach",
        "Visalia",
        "Vista",
        "Waco",
        "Waipahu",
        "Waldorf",
        "Walnut Creek",
        "Waltham",
        "Warner Robins",
        "Warren",
        "Warwick",
        "Washington",
        "Waterbury",
        "Waterloo",
        "Watsonville",
        "Waukegan",
        "Waukesha",
        "Wauwatosa",
        "Wellington",
        "Wesley Chapel",
        "West Allis",
        "West Babylon",
        "West Covina",
        "West Des Moines",
        "West Hartford",
        "West Haven",
        "West Jordan",
        "West Lafayette",
        "West New York",
        "West Palm Beach",
        "West Sacramento",
        "West Seneca",
        "West Valley City",
        "Westfield",
        "Westland",
        "Westminster",
        "Weston",
        "Weymouth Town",
        "Wheaton",
        "White Plains",
        "Whittier",
        "Wichita",
        "Wichita Falls",
        "Wilmington",
        "Wilson",
        "Winston-Salem",
        "Woodbury",
        "Woodland",
        "Worcester",
        "Wylie",
        "Wyoming",
        "Yakima",
        "Yonkers",
        "Yorba Linda",
        "York",
        "Youngstown",
        "Yuba City",
        "Yucaipa",
        "Yuma"
    ], NT = [
        "{{location.city_prefix}} {{person.first_name.generic}}{{location.city_suffix}}",
        "{{location.city_prefix}} {{person.first_name.generic}}",
        "{{person.first_name.generic}}{{location.city_suffix}}",
        "{{person.last_name.generic}}{{location.city_suffix}}",
        "{{location.city_name}}"
    ], OT = [
        "North",
        "East",
        "West",
        "South",
        "New",
        "Lake",
        "Port",
        "Fort"
    ], HT = [
        "town",
        "ton",
        "land",
        "ville",
        "berg",
        "burgh",
        "boro",
        "borough",
        "bury",
        "view",
        "port",
        "mouth",
        "stad",
        "stead",
        "furt",
        "chester",
        "cester",
        "fort",
        "field",
        "haven",
        "side",
        "shire",
        "worth"
    ], VT = [
        "Africa",
        "Antarctica",
        "Asia",
        "Australia",
        "Europe",
        "North America",
        "South America"
    ], WT = [
        "Afghanistan",
        "Aland Islands",
        "Albania",
        "Algeria",
        "American Samoa",
        "Andorra",
        "Angola",
        "Anguilla",
        "Antarctica",
        "Antigua and Barbuda",
        "Argentina",
        "Armenia",
        "Aruba",
        "Australia",
        "Austria",
        "Azerbaijan",
        "Bahamas",
        "Bahrain",
        "Bangladesh",
        "Barbados",
        "Belarus",
        "Belgium",
        "Belize",
        "Benin",
        "Bermuda",
        "Bhutan",
        "Bolivia",
        "Bonaire, Sint Eustatius and Saba",
        "Bosnia and Herzegovina",
        "Botswana",
        "Bouvet Island",
        "Brazil",
        "British Indian Ocean Territory (Chagos Archipelago)",
        "Brunei Darussalam",
        "Bulgaria",
        "Burkina Faso",
        "Burundi",
        "Cambodia",
        "Cameroon",
        "Canada",
        "Cape Verde",
        "Cayman Islands",
        "Central African Republic",
        "Chad",
        "Chile",
        "China",
        "Christmas Island",
        "Cocos (Keeling) Islands",
        "Colombia",
        "Comoros",
        "Congo",
        "Cook Islands",
        "Costa Rica",
        "Cote d'Ivoire",
        "Croatia",
        "Cuba",
        "Curacao",
        "Cyprus",
        "Czechia",
        "Democratic Republic of the Congo",
        "Denmark",
        "Djibouti",
        "Dominica",
        "Dominican Republic",
        "Ecuador",
        "Egypt",
        "El Salvador",
        "Equatorial Guinea",
        "Eritrea",
        "Estonia",
        "Eswatini",
        "Ethiopia",
        "Faroe Islands",
        "Falkland Islands (Malvinas)",
        "Fiji",
        "Finland",
        "France",
        "French Guiana",
        "French Polynesia",
        "French Southern Territories",
        "Gabon",
        "Gambia",
        "Georgia",
        "Germany",
        "Ghana",
        "Gibraltar",
        "Greece",
        "Greenland",
        "Grenada",
        "Guadeloupe",
        "Guam",
        "Guatemala",
        "Guernsey",
        "Guinea",
        "Guinea-Bissau",
        "Guyana",
        "Haiti",
        "Heard Island and McDonald Islands",
        "Holy See (Vatican City State)",
        "Honduras",
        "Hong Kong",
        "Hungary",
        "Iceland",
        "India",
        "Indonesia",
        "Iran",
        "Iraq",
        "Ireland",
        "Isle of Man",
        "Israel",
        "Italy",
        "Jamaica",
        "Japan",
        "Jersey",
        "Jordan",
        "Kazakhstan",
        "Kenya",
        "Kiribati",
        "Democratic People's Republic of Korea",
        "Republic of Korea",
        "Kuwait",
        "Kyrgyz Republic",
        "Lao People's Democratic Republic",
        "Latvia",
        "Lebanon",
        "Lesotho",
        "Liberia",
        "Libyan Arab Jamahiriya",
        "Liechtenstein",
        "Lithuania",
        "Luxembourg",
        "Macao",
        "Madagascar",
        "Malawi",
        "Malaysia",
        "Maldives",
        "Mali",
        "Malta",
        "Marshall Islands",
        "Martinique",
        "Mauritania",
        "Mauritius",
        "Mayotte",
        "Mexico",
        "Micronesia",
        "Moldova",
        "Monaco",
        "Mongolia",
        "Montenegro",
        "Montserrat",
        "Morocco",
        "Mozambique",
        "Myanmar",
        "Namibia",
        "Nauru",
        "Nepal",
        "Netherlands",
        "New Caledonia",
        "New Zealand",
        "Nicaragua",
        "Niger",
        "Nigeria",
        "Niue",
        "Norfolk Island",
        "North Macedonia",
        "Northern Mariana Islands",
        "Norway",
        "Oman",
        "Pakistan",
        "Palau",
        "Palestine",
        "Panama",
        "Papua New Guinea",
        "Paraguay",
        "Peru",
        "Philippines",
        "Pitcairn Islands",
        "Poland",
        "Portugal",
        "Puerto Rico",
        "Qatar",
        "Reunion",
        "Romania",
        "Russian Federation",
        "Rwanda",
        "Saint Barthelemy",
        "Saint Helena",
        "Saint Kitts and Nevis",
        "Saint Lucia",
        "Saint Martin",
        "Saint Pierre and Miquelon",
        "Saint Vincent and the Grenadines",
        "Samoa",
        "San Marino",
        "Sao Tome and Principe",
        "Saudi Arabia",
        "Senegal",
        "Serbia",
        "Seychelles",
        "Sierra Leone",
        "Singapore",
        "Sint Maarten",
        "Slovakia",
        "Slovenia",
        "Solomon Islands",
        "Somalia",
        "South Africa",
        "South Georgia and the South Sandwich Islands",
        "South Sudan",
        "Spain",
        "Sri Lanka",
        "Sudan",
        "Suriname",
        "Svalbard & Jan Mayen Islands",
        "Sweden",
        "Switzerland",
        "Syrian Arab Republic",
        "Taiwan",
        "Tajikistan",
        "Tanzania",
        "Thailand",
        "Timor-Leste",
        "Togo",
        "Tokelau",
        "Tonga",
        "Trinidad and Tobago",
        "Tunisia",
        "Turkey",
        "Turkmenistan",
        "Turks and Caicos Islands",
        "Tuvalu",
        "Uganda",
        "Ukraine",
        "United Arab Emirates",
        "United Kingdom",
        "United States of America",
        "United States Minor Outlying Islands",
        "Uruguay",
        "Uzbekistan",
        "Vanuatu",
        "Venezuela",
        "Vietnam",
        "Virgin Islands, British",
        "Virgin Islands, U.S.",
        "Wallis and Futuna",
        "Western Sahara",
        "Yemen",
        "Zambia",
        "Zimbabwe"
    ], GT = [
        "Adams County",
        "Calhoun County",
        "Carroll County",
        "Clark County",
        "Clay County",
        "Crawford County",
        "Douglas County",
        "Fayette County",
        "Franklin County",
        "Grant County",
        "Greene County",
        "Hamilton County",
        "Hancock County",
        "Henry County",
        "Jackson County",
        "Jefferson County",
        "Johnson County",
        "Lake County",
        "Lawrence County",
        "Lee County",
        "Lincoln County",
        "Logan County",
        "Madison County",
        "Marion County",
        "Marshall County",
        "Monroe County",
        "Montgomery County",
        "Morgan County",
        "Perry County",
        "Pike County",
        "Polk County",
        "Scott County",
        "Union County",
        "Warren County",
        "Washington County",
        "Wayne County",
        "Avon",
        "Bedfordshire",
        "Berkshire",
        "Borders",
        "Buckinghamshire",
        "Cambridgeshire",
        "Central",
        "Cheshire",
        "Cleveland",
        "Clwyd",
        "Cornwall",
        "County Antrim",
        "County Armagh",
        "County Down",
        "County Fermanagh",
        "County Londonderry",
        "County Tyrone",
        "Cumbria",
        "Derbyshire",
        "Devon",
        "Dorset",
        "Dumfries and Galloway",
        "Durham",
        "Dyfed",
        "East Sussex",
        "Essex",
        "Fife",
        "Gloucestershire",
        "Grampian",
        "Greater Manchester",
        "Gwent",
        "Gwynedd County",
        "Hampshire",
        "Herefordshire",
        "Hertfordshire",
        "Highlands and Islands",
        "Humberside",
        "Isle of Wight",
        "Kent",
        "Lancashire",
        "Leicestershire",
        "Lincolnshire",
        "Lothian",
        "Merseyside",
        "Mid Glamorgan",
        "Norfolk",
        "North Yorkshire",
        "Northamptonshire",
        "Northumberland",
        "Nottinghamshire",
        "Oxfordshire",
        "Powys",
        "Rutland",
        "Shropshire",
        "Somerset",
        "South Glamorgan",
        "South Yorkshire",
        "Staffordshire",
        "Strathclyde",
        "Suffolk",
        "Surrey",
        "Tayside",
        "Tyne and Wear",
        "Warwickshire",
        "West Glamorgan",
        "West Midlands",
        "West Sussex",
        "West Yorkshire",
        "Wiltshire",
        "Worcestershire"
    ], $T = {
        cardinal: [
            "North",
            "East",
            "South",
            "West"
        ],
        cardinal_abbr: [
            "N",
            "E",
            "S",
            "W"
        ],
        ordinal: [
            "Northeast",
            "Northwest",
            "Southeast",
            "Southwest"
        ],
        ordinal_abbr: [
            "NE",
            "NW",
            "SE",
            "SW"
        ]
    }, UT = [
        {
            name: "Afrikaans",
            alpha2: "af",
            alpha3: "afr"
        },
        {
            name: "Azerbaijani",
            alpha2: "az",
            alpha3: "aze"
        },
        {
            name: "Maldivian",
            alpha2: "dv",
            alpha3: "div"
        },
        {
            name: "Farsi/Persian",
            alpha2: "fa",
            alpha3: "fas"
        },
        {
            name: "Latvian",
            alpha2: "lv",
            alpha3: "lav"
        },
        {
            name: "Indonesian",
            alpha2: "id",
            alpha3: "ind"
        },
        {
            name: "Nepali",
            alpha2: "ne",
            alpha3: "nep"
        },
        {
            name: "Thai",
            alpha2: "th",
            alpha3: "tha"
        },
        {
            name: "Uzbek",
            alpha2: "uz",
            alpha3: "uzb"
        },
        {
            name: "Yoruba",
            alpha2: "yo",
            alpha3: "yor"
        },
        {
            name: "Pashto",
            alpha2: "ps",
            alpha3: "pus"
        },
        {
            name: "English",
            alpha2: "en",
            alpha3: "eng"
        },
        {
            name: "Urdu",
            alpha2: "ur",
            alpha3: "urd"
        },
        {
            name: "German",
            alpha2: "de",
            alpha3: "deu"
        },
        {
            name: "French",
            alpha2: "fr",
            alpha3: "fra"
        },
        {
            name: "Spanish",
            alpha2: "es",
            alpha3: "spa"
        },
        {
            name: "Italian",
            alpha2: "it",
            alpha3: "ita"
        },
        {
            name: "Dutch",
            alpha2: "nl",
            alpha3: "nld"
        },
        {
            name: "Russian",
            alpha2: "ru",
            alpha3: "rus"
        },
        {
            name: "Portuguese",
            alpha2: "pt",
            alpha3: "por"
        },
        {
            name: "Polish",
            alpha2: "pl",
            alpha3: "pol"
        },
        {
            name: "Arabic",
            alpha2: "ar",
            alpha3: "ara"
        },
        {
            name: "Japanese",
            alpha2: "ja",
            alpha3: "jpn"
        },
        {
            name: "Chinese",
            alpha2: "zh",
            alpha3: "zho"
        },
        {
            name: "Hindi",
            alpha2: "hi",
            alpha3: "hin"
        },
        {
            name: "Bengali",
            alpha2: "bn",
            alpha3: "ben"
        },
        {
            name: "Gujarati",
            alpha2: "gu",
            alpha3: "guj"
        },
        {
            name: "Tamil",
            alpha2: "ta",
            alpha3: "tam"
        },
        {
            name: "Telugu",
            alpha2: "te",
            alpha3: "tel"
        },
        {
            name: "Punjabi",
            alpha2: "pa",
            alpha3: "pan"
        },
        {
            name: "Vietnamese",
            alpha2: "vi",
            alpha3: "vie"
        },
        {
            name: "Korean",
            alpha2: "ko",
            alpha3: "kor"
        },
        {
            name: "Turkish",
            alpha2: "tr",
            alpha3: "tur"
        },
        {
            name: "Swedish",
            alpha2: "sv",
            alpha3: "swe"
        },
        {
            name: "Greek",
            alpha2: "el",
            alpha3: "ell"
        },
        {
            name: "Czech",
            alpha2: "cs",
            alpha3: "ces"
        },
        {
            name: "Hungarian",
            alpha2: "hu",
            alpha3: "hun"
        },
        {
            name: "Romanian",
            alpha2: "ro",
            alpha3: "ron"
        },
        {
            name: "Ukrainian",
            alpha2: "uk",
            alpha3: "ukr"
        },
        {
            name: "Norwegian",
            alpha2: "no",
            alpha3: "nor"
        },
        {
            name: "Serbian",
            alpha2: "sr",
            alpha3: "srp"
        },
        {
            name: "Croatian",
            alpha2: "hr",
            alpha3: "hrv"
        },
        {
            name: "Slovak",
            alpha2: "sk",
            alpha3: "slk"
        },
        {
            name: "Slovenian",
            alpha2: "sl",
            alpha3: "slv"
        },
        {
            name: "Icelandic",
            alpha2: "is",
            alpha3: "isl"
        },
        {
            name: "Finnish",
            alpha2: "fi",
            alpha3: "fin"
        },
        {
            name: "Danish",
            alpha2: "da",
            alpha3: "dan"
        },
        {
            name: "Swahili",
            alpha2: "sw",
            alpha3: "swa"
        },
        {
            name: "Bashkir",
            alpha2: "ba",
            alpha3: "bak"
        },
        {
            name: "Basque",
            alpha2: "eu",
            alpha3: "eus"
        },
        {
            name: "Catalan",
            alpha2: "ca",
            alpha3: "cat"
        },
        {
            name: "Galician",
            alpha2: "gl",
            alpha3: "glg"
        },
        {
            name: "Esperanto",
            alpha2: "eo",
            alpha3: "epo"
        },
        {
            name: "Fijian",
            alpha2: "fj",
            alpha3: "fij"
        },
        {
            name: "Malagasy",
            alpha2: "mg",
            alpha3: "mlg"
        },
        {
            name: "Maltese",
            alpha2: "mt",
            alpha3: "mlt"
        },
        {
            name: "Albanian",
            alpha2: "sq",
            alpha3: "sqi"
        },
        {
            name: "Armenian",
            alpha2: "hy",
            alpha3: "hye"
        },
        {
            name: "Georgian",
            alpha2: "ka",
            alpha3: "kat"
        },
        {
            name: "Macedonian",
            alpha2: "mk",
            alpha3: "mkd"
        },
        {
            name: "Kazakh",
            alpha2: "kk",
            alpha3: "kaz"
        },
        {
            name: "Haitian Creole",
            alpha2: "ht",
            alpha3: "hat"
        },
        {
            name: "Mongolian",
            alpha2: "mn",
            alpha3: "mon"
        },
        {
            name: "Kyrgyz",
            alpha2: "ky",
            alpha3: "kir"
        },
        {
            name: "Finnish",
            alpha2: "fi",
            alpha3: "fin"
        },
        {
            name: "Tagalog",
            alpha2: "tl",
            alpha3: "tgl"
        },
        {
            name: "Malay",
            alpha2: "ms",
            alpha3: "msa"
        },
        {
            name: "Tajik",
            alpha2: "tg",
            alpha3: "tgk"
        },
        {
            name: "Swati",
            alpha2: "ss",
            alpha3: "ssw"
        },
        {
            name: "Tatar",
            alpha2: "tt",
            alpha3: "tat"
        },
        {
            name: "Zulu",
            alpha2: "zu",
            alpha3: "zul"
        }
    ], jT = [
        "#####",
        "#####-####"
    ], YT = [
        "Apt. ###",
        "Suite ###"
    ], qT = [
        "Alabama",
        "Alaska",
        "Arizona",
        "Arkansas",
        "California",
        "Colorado",
        "Connecticut",
        "Delaware",
        "Florida",
        "Georgia",
        "Hawaii",
        "Idaho",
        "Illinois",
        "Indiana",
        "Iowa",
        "Kansas",
        "Kentucky",
        "Louisiana",
        "Maine",
        "Maryland",
        "Massachusetts",
        "Michigan",
        "Minnesota",
        "Mississippi",
        "Missouri",
        "Montana",
        "Nebraska",
        "Nevada",
        "New Hampshire",
        "New Jersey",
        "New Mexico",
        "New York",
        "North Carolina",
        "North Dakota",
        "Ohio",
        "Oklahoma",
        "Oregon",
        "Pennsylvania",
        "Rhode Island",
        "South Carolina",
        "South Dakota",
        "Tennessee",
        "Texas",
        "Utah",
        "Vermont",
        "Virginia",
        "Washington",
        "West Virginia",
        "Wisconsin",
        "Wyoming"
    ], KT = [
        "AL",
        "AK",
        "AZ",
        "AR",
        "CA",
        "CO",
        "CT",
        "DE",
        "FL",
        "GA",
        "HI",
        "ID",
        "IL",
        "IN",
        "IA",
        "KS",
        "KY",
        "LA",
        "ME",
        "MD",
        "MA",
        "MI",
        "MN",
        "MS",
        "MO",
        "MT",
        "NE",
        "NV",
        "NH",
        "NJ",
        "NM",
        "NY",
        "NC",
        "ND",
        "OH",
        "OK",
        "OR",
        "PA",
        "RI",
        "SC",
        "SD",
        "TN",
        "TX",
        "UT",
        "VT",
        "VA",
        "WA",
        "WV",
        "WI",
        "WY"
    ], XT = {
        normal: "{{location.buildingNumber}} {{location.street}}",
        full: "{{location.buildingNumber}} {{location.street}} {{location.secondaryAddress}}"
    }, JT = [
        "10th Street",
        "11th Street",
        "12th Street",
        "13th Street",
        "14th Street",
        "15th Street",
        "16th Street",
        "1st Avenue",
        "1st Street",
        "2nd Avenue",
        "2nd Street",
        "3rd Avenue",
        "3rd Street",
        "4th Avenue",
        "4th Street",
        "5th Avenue",
        "5th Street",
        "6th Avenue",
        "6th Street",
        "7th Avenue",
        "7th Street",
        "8th Avenue",
        "8th Street",
        "9th Street",
        "A Street",
        "Abbey Road",
        "Adams Avenue",
        "Adams Street",
        "Airport Road",
        "Albany Road",
        "Albert Road",
        "Albion Street",
        "Alexandra Road",
        "Alfred Street",
        "Alma Street",
        "Ash Close",
        "Ash Grove",
        "Ash Road",
        "Ash Street",
        "Aspen Close",
        "Atlantic Avenue",
        "Avenue Road",
        "Back Lane",
        "Baker Street",
        "Balmoral Road",
        "Barn Close",
        "Barton Road",
        "Bath Road",
        "Bath Street",
        "Bay Street",
        "Beach Road",
        "Bedford Road",
        "Beech Close",
        "Beech Drive",
        "Beech Grove",
        "Beech Road",
        "Beechwood Avenue",
        "Bell Lane",
        "Belmont Road",
        "Birch Avenue",
        "Birch Close",
        "Birch Grove",
        "Birch Road",
        "Blind Lane",
        "Bluebell Close",
        "Boundary Road",
        "Bramble Close",
        "Bramley Close",
        "Bridge Road",
        "Bridge Street",
        "Broad Lane",
        "Broad Street",
        "Broadway",
        "Broadway Avenue",
        "Broadway Street",
        "Brook Lane",
        "Brook Road",
        "Brook Street",
        "Brookside",
        "Buckingham Road",
        "Cambridge Street",
        "Canal Street",
        "Castle Close",
        "Castle Lane",
        "Castle Road",
        "Castle Street",
        "Cavendish Road",
        "Cedar Avenue",
        "Cedar Close",
        "Cedar Grove",
        "Cedar Road",
        "Cedar Street",
        "Cemetery Road",
        "Center Avenue",
        "Center Road",
        "Center Street",
        "Central Avenue",
        "Central Street",
        "Chapel Close",
        "Chapel Hill",
        "Chapel Road",
        "Chapel Street",
        "Charles Street",
        "Cherry Close",
        "Cherry Street",
        "Cherry Tree Close",
        "Chester Road",
        "Chestnut Close",
        "Chestnut Drive",
        "Chestnut Grove",
        "Chestnut Street",
        "Church Avenue",
        "Church Close",
        "Church Hill",
        "Church Lane",
        "Church Path",
        "Church Road",
        "Church Street",
        "Church View",
        "Church Walk",
        "Claremont Road",
        "Clarence Road",
        "Clarence Street",
        "Clarendon Road",
        "Clark Street",
        "Clay Lane",
        "Cleveland Street",
        "Cliff Road",
        "Clifton Road",
        "Clinton Street",
        "College Avenue",
        "College Street",
        "Columbia Avenue",
        "Commerce Street",
        "Commercial Road",
        "Commercial Street",
        "Common Lane",
        "Coronation Avenue",
        "Coronation Road",
        "County Line Road",
        "County Road",
        "Court Street",
        "Cow Lane",
        "Crescent Road",
        "Cromwell Road",
        "Cross Lane",
        "Cross Street",
        "Crown Street",
        "Cumberland Street",
        "Dale Street",
        "Dark Lane",
        "Davis Street",
        "Depot Street",
        "Derby Road",
        "Derwent Close",
        "Devonshire Road",
        "Division Street",
        "Douglas Road",
        "Duke Street",
        "E 10th Street",
        "E 11th Street",
        "E 12th Street",
        "E 14th Street",
        "E 1st Street",
        "E 2nd Street",
        "E 3rd Street",
        "E 4th Avenue",
        "E 4th Street",
        "E 5th Street",
        "E 6th Avenue",
        "E 6th Street",
        "E 7th Street",
        "E 8th Street",
        "E 9th Street",
        "E Bridge Street",
        "E Broad Street",
        "E Broadway",
        "E Broadway Street",
        "E Cedar Street",
        "E Center Street",
        "E Central Avenue",
        "E Church Street",
        "E Elm Street",
        "E Franklin Street",
        "E Front Street",
        "E Grand Avenue",
        "E High Street",
        "E Jackson Street",
        "E Jefferson Street",
        "E Main",
        "E Main Street",
        "E Maple Street",
        "E Market Street",
        "E North Street",
        "E Oak Street",
        "E Park Avenue",
        "E Pine Street",
        "E River Road",
        "E South Street",
        "E State Street",
        "E Union Street",
        "E Walnut Street",
        "E Washington Avenue",
        "E Washington Street",
        "E Water Street",
        "East Avenue",
        "East Road",
        "East Street",
        "Edward Street",
        "Elm Close",
        "Elm Grove",
        "Elm Road",
        "Elm Street",
        "Euclid Avenue",
        "Fairfield Road",
        "Farm Close",
        "Ferry Road",
        "Field Close",
        "Field Lane",
        "First Avenue",
        "First Street",
        "Fore Street",
        "Forest Avenue",
        "Forest Road",
        "Fourth Avenue",
        "Franklin Avenue",
        "Franklin Road",
        "Franklin Street",
        "Front Street",
        "Frontage Road",
        "Garden Close",
        "Garden Street",
        "George Street",
        "Gladstone Road",
        "Glebe Close",
        "Gloucester Road",
        "Gordon Road",
        "Gordon Street",
        "Grand Avenue",
        "Grange Avenue",
        "Grange Close",
        "Grange Road",
        "Grant Street",
        "Green Close",
        "Green Lane",
        "Green Street",
        "Greenville Road",
        "Greenway",
        "Greenwood Road",
        "Grove Lane",
        "Grove Road",
        "Grove Street",
        "Hall Lane",
        "Hall Street",
        "Harrison Avenue",
        "Harrison Street",
        "Hawthorn Avenue",
        "Hawthorn Close",
        "Hazel Close",
        "Hazel Grove",
        "Heath Road",
        "Heather Close",
        "Henry Street",
        "Heron Close",
        "Hickory Street",
        "High Road",
        "High Street",
        "Highfield Avenue",
        "Highfield Close",
        "Highfield Road",
        "Highland Avenue",
        "Hill Road",
        "Hill Street",
        "Hillside",
        "Hillside Avenue",
        "Hillside Close",
        "Hillside Road",
        "Holly Close",
        "Honeysuckle Close",
        "Howard Road",
        "Howard Street",
        "Jackson Avenue",
        "Jackson Street",
        "James Street",
        "Jefferson Avenue",
        "Jefferson Street",
        "Johnson Street",
        "Jubilee Close",
        "Juniper Close",
        "Kent Road",
        "Kestrel Close",
        "King Street",
        "King's Road",
        "Kingfisher Close",
        "Kings Highway",
        "Kingsway",
        "Laburnum Grove",
        "Lafayette Street",
        "Lake Avenue",
        "Lake Drive",
        "Lake Road",
        "Lake Street",
        "Lancaster Road",
        "Lansdowne Road",
        "Larch Close",
        "Laurel Close",
        "Lawrence Street",
        "Lee Street",
        "Liberty Street",
        "Lime Grove",
        "Lincoln Avenue",
        "Lincoln Highway",
        "Lincoln Road",
        "Lincoln Street",
        "Locust Street",
        "Lodge Close",
        "Lodge Lane",
        "London Road",
        "Long Lane",
        "Low Road",
        "Madison Avenue",
        "Madison Street",
        "Main",
        "Main Avenue",
        "Main Road",
        "Main Street",
        "Main Street E",
        "Main Street N",
        "Main Street S",
        "Main Street W",
        "Manchester Road",
        "Manor Close",
        "Manor Drive",
        "Manor Gardens",
        "Manor Road",
        "Manor Way",
        "Maple Avenue",
        "Maple Close",
        "Maple Drive",
        "Maple Road",
        "Maple Street",
        "Market Place",
        "Market Square",
        "Market Street",
        "Marlborough Road",
        "Marsh Lane",
        "Martin Luther King Boulevard",
        "Martin Luther King Drive",
        "Martin Luther King Jr Boulevard",
        "Mary Street",
        "Mayfield Road",
        "Meadow Close",
        "Meadow Drive",
        "Meadow Lane",
        "Meadow View",
        "Meadow Way",
        "Memorial Drive",
        "Middle Street",
        "Mill Close",
        "Mill Lane",
        "Mill Road",
        "Mill Street",
        "Milton Road",
        "Milton Street",
        "Monroe Street",
        "Moor Lane",
        "Moss Lane",
        "Mount Pleasant",
        "Mount Street",
        "Mulberry Street",
        "N 1st Street",
        "N 2nd Street",
        "N 3rd Street",
        "N 4th Street",
        "N 5th Street",
        "N 6th Street",
        "N 7th Street",
        "N 8th Street",
        "N 9th Street",
        "N Bridge Street",
        "N Broad Street",
        "N Broadway",
        "N Broadway Street",
        "N Cedar Street",
        "N Center Street",
        "N Central Avenue",
        "N Chestnut Street",
        "N Church Street",
        "N College Street",
        "N Court Street",
        "N Division Street",
        "N East Street",
        "N Elm Street",
        "N Franklin Street",
        "N Front Street",
        "N Harrison Street",
        "N High Street",
        "N Jackson Street",
        "N Jefferson Street",
        "N Lincoln Street",
        "N Locust Street",
        "N Main",
        "N Main Avenue",
        "N Main Street",
        "N Maple Street",
        "N Market Street",
        "N Monroe Street",
        "N Oak Street",
        "N Park Street",
        "N Pearl Street",
        "N Pine Street",
        "N Poplar Street",
        "N Railroad Street",
        "N State Street",
        "N Union Street",
        "N Walnut Street",
        "N Washington Avenue",
        "N Washington Street",
        "N Water Street",
        "Nelson Road",
        "Nelson Street",
        "New Lane",
        "New Road",
        "New Street",
        "Newton Road",
        "Nightingale Close",
        "Norfolk Road",
        "North Avenue",
        "North Lane",
        "North Road",
        "North Street",
        "Northfield Road",
        "Oak Avenue",
        "Oak Drive",
        "Oak Lane",
        "Oak Road",
        "Oak Street",
        "Oakfield Road",
        "Oaklands",
        "Old Lane",
        "Old Military Road",
        "Old Road",
        "Old State Road",
        "Orchard Drive",
        "Orchard Lane",
        "Orchard Road",
        "Orchard Street",
        "Oxford Road",
        "Oxford Street",
        "Park Avenue",
        "Park Crescent",
        "Park Drive",
        "Park Lane",
        "Park Place",
        "Park Road",
        "Park Street",
        "Park View",
        "Parkside",
        "Pearl Street",
        "Pennsylvania Avenue",
        "Pine Close",
        "Pine Grove",
        "Pine Street",
        "Pinfold Lane",
        "Pleasant Street",
        "Poplar Avenue",
        "Poplar Close",
        "Poplar Road",
        "Poplar Street",
        "Post Road",
        "Pound Lane",
        "Princes Street",
        "Princess Street",
        "Priory Close",
        "Priory Road",
        "Prospect Avenue",
        "Prospect Place",
        "Prospect Road",
        "Prospect Street",
        "Quarry Lane",
        "Quarry Road",
        "Queen's Road",
        "Railroad Avenue",
        "Railroad Street",
        "Railway Street",
        "Rectory Close",
        "Rectory Lane",
        "Richmond Close",
        "Richmond Road",
        "Ridge Road",
        "River Road",
        "River Street",
        "Riverside",
        "Riverside Avenue",
        "Riverside Drive",
        "Roman Road",
        "Roman Way",
        "Rowan Close",
        "Russell Street",
        "S 10th Street",
        "S 14th Street",
        "S 1st Avenue",
        "S 1st Street",
        "S 2nd Street",
        "S 3rd Street",
        "S 4th Street",
        "S 5th Street",
        "S 6th Street",
        "S 7th Street",
        "S 8th Street",
        "S 9th Street",
        "S Bridge Street",
        "S Broad Street",
        "S Broadway",
        "S Broadway Street",
        "S Center Street",
        "S Central Avenue",
        "S Chestnut Street",
        "S Church Street",
        "S College Street",
        "S Division Street",
        "S East Street",
        "S Elm Street",
        "S Franklin Street",
        "S Front Street",
        "S Grand Avenue",
        "S High Street",
        "S Jackson Street",
        "S Jefferson Street",
        "S Lincoln Street",
        "S Main",
        "S Main Avenue",
        "S Main Street",
        "S Maple Street",
        "S Market Street",
        "S Mill Street",
        "S Monroe Street",
        "S Oak Street",
        "S Park Street",
        "S Pine Street",
        "S Railroad Street",
        "S State Street",
        "S Union Street",
        "S Walnut Street",
        "S Washington Avenue",
        "S Washington Street",
        "S Water Street",
        "S West Street",
        "Salisbury Road",
        "Sandringham Road",
        "Sandy Lane",
        "School Close",
        "School Lane",
        "School Road",
        "School Street",
        "Second Avenue",
        "Silver Street",
        "Skyline Drive",
        "Smith Street",
        "Somerset Road",
        "South Avenue",
        "South Drive",
        "South Road",
        "South Street",
        "South View",
        "Spring Gardens",
        "Spring Street",
        "Springfield Close",
        "Springfield Road",
        "Spruce Street",
        "St Andrew's Road",
        "St Andrews Close",
        "St George's Road",
        "St John's Road",
        "St Mary's Close",
        "St Mary's Road",
        "Stanley Road",
        "Stanley Street",
        "State Avenue",
        "State Line Road",
        "State Road",
        "State Street",
        "Station Road",
        "Station Street",
        "Stoney Lane",
        "Sycamore Avenue",
        "Sycamore Close",
        "Sycamore Drive",
        "Sycamore Street",
        "Talbot Road",
        "Tennyson Road",
        "The Avenue",
        "The Beeches",
        "The Causeway",
        "The Chase",
        "The Coppice",
        "The Copse",
        "The Crescent",
        "The Croft",
        "The Dell",
        "The Drive",
        "The Fairway",
        "The Glebe",
        "The Grange",
        "The Green",
        "The Grove",
        "The Hawthorns",
        "The Lane",
        "The Laurels",
        "The Limes",
        "The Maltings",
        "The Meadows",
        "The Mews",
        "The Mount",
        "The Oaks",
        "The Orchard",
        "The Oval",
        "The Paddock",
        "The Paddocks",
        "The Poplars",
        "The Ridgeway",
        "The Ridings",
        "The Rise",
        "The Sidings",
        "The Spinney",
        "The Square",
        "The Willows",
        "The Woodlands",
        "Third Avenue",
        "Third Street",
        "Tower Road",
        "Trinity Road",
        "Tudor Close",
        "Union Avenue",
        "Union Street",
        "University Avenue",
        "University Drive",
        "Valley Road",
        "Veterans Memorial Drive",
        "Veterans Memorial Highway",
        "Vicarage Close",
        "Vicarage Lane",
        "Vicarage Road",
        "Victoria Place",
        "Victoria Road",
        "Victoria Street",
        "Vine Street",
        "W 10th Street",
        "W 11th Street",
        "W 12th Street",
        "W 14th Street",
        "W 1st Street",
        "W 2nd Street",
        "W 3rd Street",
        "W 4th Avenue",
        "W 4th Street",
        "W 5th Street",
        "W 6th Avenue",
        "W 6th Street",
        "W 7th Street",
        "W 8th Street",
        "W 9th Street",
        "W Bridge Street",
        "W Broad Street",
        "W Broadway",
        "W Broadway Avenue",
        "W Broadway Street",
        "W Center Street",
        "W Central Avenue",
        "W Chestnut Street",
        "W Church Street",
        "W Division Street",
        "W Elm Street",
        "W Franklin Street",
        "W Front Street",
        "W Grand Avenue",
        "W High Street",
        "W Jackson Street",
        "W Jefferson Street",
        "W Lake Street",
        "W Main",
        "W Main Street",
        "W Maple Street",
        "W Market Street",
        "W Monroe Street",
        "W North Street",
        "W Oak Street",
        "W Park Street",
        "W Pine Street",
        "W River Road",
        "W South Street",
        "W State Street",
        "W Union Street",
        "W Walnut Street",
        "W Washington Avenue",
        "W Washington Street",
        "Walnut Close",
        "Walnut Street",
        "Warren Close",
        "Warren Road",
        "Washington Avenue",
        "Washington Boulevard",
        "Washington Road",
        "Washington Street",
        "Water Lane",
        "Water Street",
        "Waterloo Road",
        "Waterside",
        "Watery Lane",
        "Waverley Road",
        "Well Lane",
        "Wellington Road",
        "Wellington Street",
        "West Avenue",
        "West End",
        "West Lane",
        "West Road",
        "West Street",
        "West View",
        "Western Avenue",
        "Western Road",
        "Westfield Road",
        "Westgate",
        "William Street",
        "Willow Close",
        "Willow Drive",
        "Willow Grove",
        "Willow Road",
        "Willow Street",
        "Windermere Road",
        "Windmill Close",
        "Windmill Lane",
        "Windsor Avenue",
        "Windsor Close",
        "Windsor Drive",
        "Wood Lane",
        "Wood Street",
        "Woodland Close",
        "Woodland Road",
        "Woodlands",
        "Woodlands Avenue",
        "Woodlands Close",
        "Woodlands Road",
        "Woodside",
        "Woodside Road",
        "Wren Close",
        "Yew Tree Close",
        "York Road",
        "York Street"
    ], ZT = [
        "{{person.first_name.generic}} {{location.street_suffix}}",
        "{{person.last_name.generic}} {{location.street_suffix}}",
        "{{location.street_name}}"
    ], QT = [
        "Alley",
        "Avenue",
        "Branch",
        "Bridge",
        "Brook",
        "Brooks",
        "Burg",
        "Burgs",
        "Bypass",
        "Camp",
        "Canyon",
        "Cape",
        "Causeway",
        "Center",
        "Centers",
        "Circle",
        "Circles",
        "Cliff",
        "Cliffs",
        "Club",
        "Common",
        "Corner",
        "Corners",
        "Course",
        "Court",
        "Courts",
        "Cove",
        "Coves",
        "Creek",
        "Crescent",
        "Crest",
        "Crossing",
        "Crossroad",
        "Curve",
        "Dale",
        "Dam",
        "Divide",
        "Drive",
        "Drives",
        "Estate",
        "Estates",
        "Expressway",
        "Extension",
        "Extensions",
        "Fall",
        "Falls",
        "Ferry",
        "Field",
        "Fields",
        "Flat",
        "Flats",
        "Ford",
        "Fords",
        "Forest",
        "Forge",
        "Forges",
        "Fork",
        "Forks",
        "Fort",
        "Freeway",
        "Garden",
        "Gardens",
        "Gateway",
        "Glen",
        "Glens",
        "Green",
        "Greens",
        "Grove",
        "Groves",
        "Harbor",
        "Harbors",
        "Haven",
        "Heights",
        "Highway",
        "Hill",
        "Hills",
        "Hollow",
        "Inlet",
        "Island",
        "Islands",
        "Isle",
        "Junction",
        "Junctions",
        "Key",
        "Keys",
        "Knoll",
        "Knolls",
        "Lake",
        "Lakes",
        "Land",
        "Landing",
        "Lane",
        "Light",
        "Lights",
        "Loaf",
        "Lock",
        "Locks",
        "Lodge",
        "Loop",
        "Mall",
        "Manor",
        "Manors",
        "Meadow",
        "Meadows",
        "Mews",
        "Mill",
        "Mills",
        "Mission",
        "Motorway",
        "Mount",
        "Mountain",
        "Mountains",
        "Neck",
        "Orchard",
        "Oval",
        "Overpass",
        "Park",
        "Parks",
        "Parkway",
        "Parkways",
        "Pass",
        "Passage",
        "Path",
        "Pike",
        "Pine",
        "Pines",
        "Place",
        "Plain",
        "Plains",
        "Plaza",
        "Point",
        "Points",
        "Port",
        "Ports",
        "Prairie",
        "Radial",
        "Ramp",
        "Ranch",
        "Rapid",
        "Rapids",
        "Rest",
        "Ridge",
        "Ridges",
        "River",
        "Road",
        "Roads",
        "Route",
        "Row",
        "Rue",
        "Run",
        "Shoal",
        "Shoals",
        "Shore",
        "Shores",
        "Skyway",
        "Spring",
        "Springs",
        "Spur",
        "Spurs",
        "Square",
        "Squares",
        "Station",
        "Stravenue",
        "Stream",
        "Street",
        "Streets",
        "Summit",
        "Terrace",
        "Throughway",
        "Trace",
        "Track",
        "Trafficway",
        "Trail",
        "Tunnel",
        "Turnpike",
        "Underpass",
        "Union",
        "Unions",
        "Valley",
        "Valleys",
        "Via",
        "Viaduct",
        "View",
        "Views",
        "Village",
        "Villages",
        "Ville",
        "Vista",
        "Walk",
        "Walks",
        "Wall",
        "Way",
        "Ways",
        "Well",
        "Wells"
    ], eE = {
        building_number: IT,
        city_name: zT,
        city_pattern: NT,
        city_prefix: OT,
        city_suffix: HT,
        continent: VT,
        country: WT,
        county: GT,
        direction: $T,
        language: UT,
        postcode: jT,
        secondary_address: YT,
        state: qT,
        state_abbr: KT,
        street_address: XT,
        street_name: JT,
        street_pattern: ZT,
        street_suffix: QT
    }, tE = eE, aE = [
        "a",
        "ab",
        "abbas",
        "abduco",
        "abeo",
        "abscido",
        "absconditus",
        "absens",
        "absorbeo",
        "absque",
        "abstergo",
        "absum",
        "abundans",
        "abutor",
        "accedo",
        "accendo",
        "acceptus",
        "accommodo",
        "accusamus",
        "accusantium",
        "accusator",
        "acer",
        "acerbitas",
        "acervus",
        "acidus",
        "acies",
        "acquiro",
        "acsi",
        "ad",
        "adamo",
        "adaugeo",
        "addo",
        "adduco",
        "ademptio",
        "adeo",
        "adeptio",
        "adfectus",
        "adfero",
        "adficio",
        "adflicto",
        "adhaero",
        "adhuc",
        "adicio",
        "adimpleo",
        "adinventitias",
        "adipisci",
        "adipiscor",
        "adiuvo",
        "administratio",
        "admiratio",
        "admitto",
        "admoneo",
        "admoveo",
        "adnuo",
        "adopto",
        "adsidue",
        "adstringo",
        "adsuesco",
        "adsum",
        "adulatio",
        "adulescens",
        "aduro",
        "advenio",
        "adversus",
        "advoco",
        "aedificium",
        "aeger",
        "aegre",
        "aegrotatio",
        "aegrus",
        "aeneus",
        "aequitas",
        "aequus",
        "aer",
        "aestas",
        "aestivus",
        "aestus",
        "aetas",
        "aeternus",
        "ager",
        "aggero",
        "aggredior",
        "agnitio",
        "agnosco",
        "ago",
        "ait",
        "aiunt",
        "alias",
        "alienus",
        "alii",
        "alioqui",
        "aliqua",
        "aliquam",
        "aliquid",
        "alius",
        "allatus",
        "alo",
        "alter",
        "altus",
        "alveus",
        "amaritudo",
        "ambitus",
        "ambulo",
        "amet",
        "amicitia",
        "amiculum",
        "amissio",
        "amita",
        "amitto",
        "amo",
        "amor",
        "amoveo",
        "amplexus",
        "amplitudo",
        "amplus",
        "ancilla",
        "angelus",
        "angulus",
        "angustus",
        "animadverto",
        "animi",
        "animus",
        "annus",
        "anser",
        "ante",
        "antea",
        "antepono",
        "antiquus",
        "aperiam",
        "aperio",
        "aperte",
        "apostolus",
        "apparatus",
        "appello",
        "appono",
        "appositus",
        "approbo",
        "apto",
        "aptus",
        "apud",
        "aqua",
        "ara",
        "aranea",
        "arbitro",
        "arbor",
        "arbustum",
        "arca",
        "arceo",
        "arcesso",
        "architecto",
        "arcus",
        "argentum",
        "argumentum",
        "arguo",
        "arma",
        "armarium",
        "aro",
        "ars",
        "articulus",
        "artificiose",
        "arto",
        "arx",
        "ascisco",
        "ascit",
        "asper",
        "asperiores",
        "aspernatur",
        "aspicio",
        "asporto",
        "assentator",
        "assumenda",
        "astrum",
        "at",
        "atavus",
        "ater",
        "atque",
        "atqui",
        "atrocitas",
        "atrox",
        "attero",
        "attollo",
        "attonbitus",
        "auctor",
        "auctus",
        "audacia",
        "audax",
        "audentia",
        "audeo",
        "audio",
        "auditor",
        "aufero",
        "aureus",
        "aurum",
        "aut",
        "autem",
        "autus",
        "auxilium",
        "avaritia",
        "avarus",
        "aveho",
        "averto",
        "baiulus",
        "balbus",
        "barba",
        "bardus",
        "basium",
        "beatae",
        "beatus",
        "bellicus",
        "bellum",
        "bene",
        "beneficium",
        "benevolentia",
        "benigne",
        "bestia",
        "bibo",
        "bis",
        "blandior",
        "blanditiis",
        "bonus",
        "bos",
        "brevis",
        "cado",
        "caecus",
        "caelestis",
        "caelum",
        "calamitas",
        "calcar",
        "calco",
        "calculus",
        "callide",
        "campana",
        "candidus",
        "canis",
        "canonicus",
        "canto",
        "capillus",
        "capio",
        "capitulus",
        "capto",
        "caput",
        "carbo",
        "carcer",
        "careo",
        "caries",
        "cariosus",
        "caritas",
        "carmen",
        "carpo",
        "carus",
        "casso",
        "caste",
        "casus",
        "catena",
        "caterva",
        "cattus",
        "cauda",
        "causa",
        "caute",
        "caveo",
        "cavus",
        "cedo",
        "celebrer",
        "celer",
        "celo",
        "cena",
        "cenaculum",
        "ceno",
        "censura",
        "centum",
        "cerno",
        "cernuus",
        "certe",
        "certus",
        "cervus",
        "cetera",
        "charisma",
        "chirographum",
        "cibo",
        "cibus",
        "cicuta",
        "cilicium",
        "cimentarius",
        "ciminatio",
        "cinis",
        "circumvenio",
        "cito",
        "civis",
        "civitas",
        "clam",
        "clamo",
        "claro",
        "clarus",
        "claudeo",
        "claustrum",
        "clementia",
        "clibanus",
        "coadunatio",
        "coaegresco",
        "coepi",
        "coerceo",
        "cogito",
        "cognatus",
        "cognomen",
        "cogo",
        "cohaero",
        "cohibeo",
        "cohors",
        "colligo",
        "collum",
        "colo",
        "color",
        "coma",
        "combibo",
        "comburo",
        "comedo",
        "comes",
        "cometes",
        "comis",
        "comitatus",
        "commemoro",
        "comminor",
        "commodi",
        "commodo",
        "communis",
        "comparo",
        "compello",
        "complectus",
        "compono",
        "comprehendo",
        "comptus",
        "conatus",
        "concedo",
        "concido",
        "conculco",
        "condico",
        "conduco",
        "confero",
        "confido",
        "conforto",
        "confugo",
        "congregatio",
        "conicio",
        "coniecto",
        "conitor",
        "coniuratio",
        "conor",
        "conqueror",
        "conscendo",
        "consectetur",
        "consequatur",
        "consequuntur",
        "conservo",
        "considero",
        "conspergo",
        "constans",
        "consuasor",
        "contabesco",
        "contego",
        "contigo",
        "contra",
        "conturbo",
        "conventus",
        "convoco",
        "copia",
        "copiose",
        "cornu",
        "corona",
        "corporis",
        "corpus",
        "correptius",
        "corrigo",
        "corroboro",
        "corrumpo",
        "corrupti",
        "coruscus",
        "cotidie",
        "crapula",
        "cras",
        "crastinus",
        "creator",
        "creber",
        "crebro",
        "credo",
        "creo",
        "creptio",
        "crepusculum",
        "cresco",
        "creta",
        "cribro",
        "crinis",
        "cruciamentum",
        "crudelis",
        "cruentus",
        "crur",
        "crustulum",
        "crux",
        "cubicularis",
        "cubitum",
        "cubo",
        "cui",
        "cuius",
        "culpa",
        "culpo",
        "cultellus",
        "cultura",
        "cum",
        "cumque",
        "cunabula",
        "cunae",
        "cunctatio",
        "cupiditas",
        "cupiditate",
        "cupio",
        "cuppedia",
        "cupressus",
        "cur",
        "cura",
        "curatio",
        "curia",
        "curiositas",
        "curis",
        "curo",
        "curriculum",
        "currus",
        "cursim",
        "curso",
        "cursus",
        "curto",
        "curtus",
        "curvo",
        "custodia",
        "damnatio",
        "damno",
        "dapifer",
        "debeo",
        "debilito",
        "debitis",
        "decens",
        "decerno",
        "decet",
        "decimus",
        "decipio",
        "decor",
        "decretum",
        "decumbo",
        "dedecor",
        "dedico",
        "deduco",
        "defaeco",
        "defendo",
        "defero",
        "defessus",
        "defetiscor",
        "deficio",
        "defleo",
        "defluo",
        "defungo",
        "degenero",
        "degero",
        "degusto",
        "deinde",
        "delectatio",
        "delectus",
        "delego",
        "deleniti",
        "deleo",
        "delibero",
        "delicate",
        "delinquo",
        "deludo",
        "demens",
        "demergo",
        "demitto",
        "demo",
        "demonstro",
        "demoror",
        "demulceo",
        "demum",
        "denego",
        "denique",
        "dens",
        "denuncio",
        "denuo",
        "deorsum",
        "depereo",
        "depono",
        "depopulo",
        "deporto",
        "depraedor",
        "deprecator",
        "deprimo",
        "depromo",
        "depulso",
        "deputo",
        "derelinquo",
        "derideo",
        "deripio",
        "deserunt",
        "desidero",
        "desino",
        "desipio",
        "desolo",
        "desparatus",
        "despecto",
        "dicta",
        "dignissimos",
        "distinctio",
        "dolor",
        "dolore",
        "dolorem",
        "doloremque",
        "dolores",
        "doloribus",
        "dolorum",
        "ducimus",
        "ea",
        "eaque",
        "earum",
        "eius",
        "eligendi",
        "enim",
        "eos",
        "error",
        "esse",
        "est",
        "et",
        "eum",
        "eveniet",
        "ex",
        "excepturi",
        "exercitationem",
        "expedita",
        "explicabo",
        "facere",
        "facilis",
        "fuga",
        "fugiat",
        "fugit",
        "harum",
        "hic",
        "id",
        "illo",
        "illum",
        "impedit",
        "in",
        "incidunt",
        "infit",
        "inflammatio",
        "inventore",
        "ipsa",
        "ipsam",
        "ipsum",
        "iste",
        "itaque",
        "iure",
        "iusto",
        "labore",
        "laboriosam",
        "laborum",
        "laudantium",
        "libero",
        "magnam",
        "magni",
        "maiores",
        "maxime",
        "minima",
        "minus",
        "modi",
        "molestiae",
        "molestias",
        "mollitia",
        "nam",
        "natus",
        "necessitatibus",
        "nemo",
        "neque",
        "nesciunt",
        "nihil",
        "nisi",
        "nobis",
        "non",
        "nostrum",
        "nulla",
        "numquam",
        "occaecati",
        "ocer",
        "odio",
        "odit",
        "officia",
        "officiis",
        "omnis",
        "optio",
        "paens",
        "pariatur",
        "patior",
        "patria",
        "patrocinor",
        "patruus",
        "pauci",
        "paulatim",
        "pauper",
        "pax",
        "peccatus",
        "pecco",
        "pecto",
        "pectus",
        "pecus",
        "peior",
        "pel",
        "perferendis",
        "perspiciatis",
        "placeat",
        "porro",
        "possimus",
        "praesentium",
        "provident",
        "quae",
        "quaerat",
        "quam",
        "quas",
        "quasi",
        "qui",
        "quia",
        "quibusdam",
        "quidem",
        "quis",
        "quisquam",
        "quo",
        "quod",
        "quos",
        "ratione",
        "recusandae",
        "reiciendis",
        "rem",
        "repellat",
        "repellendus",
        "reprehenderit",
        "repudiandae",
        "rerum",
        "saepe",
        "sapiente",
        "sed",
        "sequi",
        "similique",
        "sint",
        "sit",
        "socius",
        "sodalitas",
        "sol",
        "soleo",
        "solio",
        "solitudo",
        "solium",
        "sollers",
        "sollicito",
        "solum",
        "solus",
        "soluta",
        "solutio",
        "solvo",
        "somniculosus",
        "somnus",
        "sonitus",
        "sono",
        "sophismata",
        "sopor",
        "sordeo",
        "sortitus",
        "spargo",
        "speciosus",
        "spectaculum",
        "speculum",
        "sperno",
        "spero",
        "spes",
        "spiculum",
        "spiritus",
        "spoliatio",
        "sponte",
        "stabilis",
        "statim",
        "statua",
        "stella",
        "stillicidium",
        "stipes",
        "stips",
        "sto",
        "strenuus",
        "strues",
        "studio",
        "stultus",
        "suadeo",
        "suasoria",
        "sub",
        "subito",
        "subiungo",
        "sublime",
        "subnecto",
        "subseco",
        "substantia",
        "subvenio",
        "succedo",
        "succurro",
        "sufficio",
        "suffoco",
        "suffragium",
        "suggero",
        "sui",
        "sulum",
        "sum",
        "summa",
        "summisse",
        "summopere",
        "sumo",
        "sumptus",
        "sunt",
        "supellex",
        "super",
        "suppellex",
        "supplanto",
        "suppono",
        "supra",
        "surculus",
        "surgo",
        "sursum",
        "suscipio",
        "suscipit",
        "suspendo",
        "sustineo",
        "suus",
        "synagoga",
        "tabella",
        "tabernus",
        "tabesco",
        "tabgo",
        "tabula",
        "taceo",
        "tactus",
        "taedium",
        "talio",
        "talis",
        "talus",
        "tam",
        "tamdiu",
        "tamen",
        "tametsi",
        "tamisium",
        "tamquam",
        "tandem",
        "tantillus",
        "tantum",
        "tardus",
        "tego",
        "temeritas",
        "temperantia",
        "templum",
        "tempora",
        "tempore",
        "temporibus",
        "temptatio",
        "tempus",
        "tenax",
        "tendo",
        "teneo",
        "tener",
        "tenetur",
        "tenuis",
        "tenus",
        "tepesco",
        "tepidus",
        "ter",
        "terebro",
        "teres",
        "terga",
        "tergeo",
        "tergiversatio",
        "tergo",
        "tergum",
        "termes",
        "terminatio",
        "tero",
        "terra",
        "terreo",
        "territo",
        "terror",
        "tersus",
        "tertius",
        "testimonium",
        "texo",
        "textilis",
        "textor",
        "textus",
        "thalassinus",
        "theatrum",
        "theca",
        "thema",
        "theologus",
        "thermae",
        "thesaurus",
        "thesis",
        "thorax",
        "thymbra",
        "thymum",
        "tibi",
        "timidus",
        "timor",
        "titulus",
        "tolero",
        "tollo",
        "tondeo",
        "tonsor",
        "torqueo",
        "torrens",
        "tot",
        "totam",
        "totidem",
        "toties",
        "totus",
        "tracto",
        "trado",
        "traho",
        "trans",
        "tredecim",
        "tremo",
        "trepide",
        "tres",
        "tribuo",
        "tricesimus",
        "triduana",
        "tripudio",
        "tristis",
        "triumphus",
        "trucido",
        "truculenter",
        "tubineus",
        "tui",
        "tum",
        "tumultus",
        "tunc",
        "turba",
        "turbo",
        "turpis",
        "tutamen",
        "tutis",
        "tyrannus",
        "uberrime",
        "ubi",
        "ulciscor",
        "ullam",
        "ullus",
        "ulterius",
        "ultio",
        "ultra",
        "umbra",
        "umerus",
        "umquam",
        "una",
        "unde",
        "undique",
        "universe",
        "unus",
        "urbanus",
        "urbs",
        "uredo",
        "usitas",
        "usque",
        "ustilo",
        "ustulo",
        "usus",
        "ut",
        "uter",
        "uterque",
        "utilis",
        "utique",
        "utor",
        "utpote",
        "utrimque",
        "utroque",
        "utrum",
        "uxor",
        "vaco",
        "vacuus",
        "vado",
        "vae",
        "valde",
        "valens",
        "valeo",
        "valetudo",
        "validus",
        "vallum",
        "vapulus",
        "varietas",
        "varius",
        "vehemens",
        "vel",
        "velit",
        "velociter",
        "velum",
        "velut",
        "venia",
        "veniam",
        "venio",
        "ventito",
        "ventosus",
        "ventus",
        "venustas",
        "ver",
        "verbera",
        "verbum",
        "vere",
        "verecundia",
        "vereor",
        "vergo",
        "veritas",
        "veritatis",
        "vero",
        "versus",
        "verto",
        "verumtamen",
        "verus",
        "vesco",
        "vesica",
        "vesper",
        "vespillo",
        "vester",
        "vestigium",
        "vestrum",
        "vetus",
        "via",
        "vicinus",
        "vicissitudo",
        "victoria",
        "victus",
        "videlicet",
        "video",
        "viduo",
        "vigilo",
        "vigor",
        "vilicus",
        "vilis",
        "vilitas",
        "villa",
        "vinco",
        "vinculum",
        "vindico",
        "vinitor",
        "vinum",
        "vir",
        "virga",
        "virgo",
        "viridis",
        "viriliter",
        "virtus",
        "vis",
        "viscus",
        "vita",
        "vitae",
        "vitiosus",
        "vitium",
        "vito",
        "vivo",
        "vix",
        "vobis",
        "vociferor",
        "voco",
        "volaticus",
        "volo",
        "volubilis",
        "voluntarius",
        "volup",
        "voluptas",
        "voluptate",
        "voluptatem",
        "voluptates",
        "voluptatibus",
        "voluptatum",
        "volutabrum",
        "volva",
        "vomer",
        "vomica",
        "vomito",
        "vorago",
        "vorax",
        "voro",
        "vos",
        "votum",
        "voveo",
        "vox",
        "vulariter",
        "vulgaris",
        "vulgivagus",
        "vulgo",
        "vulgus",
        "vulnero",
        "vulnus",
        "vulpes",
        "vulticulus",
        "xiphias"
    ], rE = {
        word: aE
    }, nE = rE, iE = {
        title: "English",
        code: "en",
        language: "en",
        endonym: "English",
        dir: "ltr",
        script: "Latn"
    }, oE = iE, sE = [
        '"Awaken, My Love!"',
        "(What's The Story) Morning Glory?",
        "- Tragedy +",
        "13 Reasons Why (Season 3)",
        "21st Century Breakdown",
        "30 De Febrero",
        "432 Hz Deep Healing",
        "5-Star",
        "528 Hz Meditation Music",
        "54+1",
        "8 Mile",
        "808s & Heartbreak",
        "9 To 5 And Odd Jobs",
        "A Beautiful Lie",
        "A Day At The Races",
        "A Day Without Rain",
        "A Fever You Can't Sweat Out",
        "A Gangsta's Pain",
        "A Gift & A Curse",
        "A Hard Day's Night",
        "A Head Full Of Dreams",
        "A Kind Of Magic",
        "A Million Ways To Murder",
        "A Moment Apart",
        "A Song For Every Moon",
        "A Thousand Suns",
        "A Winter Romance",
        "ABBA",
        "AI YoungBoy",
        "AJ Tracey",
        "Act One",
        "After Hours",
        "Agent Provocateur",
        "All About You",
        "All I Know So Far: Setlist",
        "All Or Nothing",
        "All Out",
        "All Over The Place",
        "All Stand Together",
        "All The Lost Souls",
        "All The Things I Never Said",
        "All Things Must Pass",
        "Alleen",
        "Alright, Still",
        "Alta Suciedad",
        "America",
        "American Heartbreak",
        "American Teen",
        "And Justice For None",
        "Animal Songs",
        "Another Friday Night",
        "Anything Goes",
        "Ao Vivo Em São Paulo",
        "Ao Vivo No Ibirapuera",
        "Apricot Princess",
        "Aqui E Agora (Ao Vivo)",
        "Arcane League Of Legends",
        "Ardipithecus",
        "Aretha Now",
        "Around The Fur",
        "Arrival",
        "Artist 2.0",
        "As She Pleases",
        "Ascend",
        "Ashlyn",
        "Astro Lounge",
        "At Night, Alone.",
        "At. Long. Last. ASAP",
        "Atlas",
        "Audioslave",
        "Aura",
        "Austin",
        "Awake",
        "Away From The Sun",
        "Ayayay!",
        "Baby On Baby",
        "Back For Everything",
        "Back From The Edge",
        "Back In Black",
        "Back To Black",
        "Back To The Game",
        "Bad",
        "Bahía Ducati",
        "Baila",
        "Barbie The Album",
        "Battleground",
        "Bayou Country",
        "Bcos U Will Never B Free",
        "Be",
        "Be Here Now",
        "Beautiful Mind",
        "Beautiful Thugger Girls",
        "Beautiful Trauma",
        "Beauty And The Beast",
        "Beggars Banquet",
        "Being Funny In A Foreign Language",
        "Berlin Lebt",
        "Berry Is On Top",
        "Best White Noise For Baby Sleep - Loopable With No Fade",
        "Big Baby DRAM",
        "Bigger, Better, Faster, More!",
        "Billy Talent II",
        "Black Star Elephant",
        "Blackout",
        "Blank Face LP",
        "Bleach",
        "Blizzard Of Ozz",
        "Blonde",
        "Blood Sugar Sex Magik",
        "Bloom",
        "Blowin' Your Mind!",
        "Blu Celeste",
        "Blue",
        "Blue Banisters",
        "Blue Hawaii",
        "Blue Neighbourhood",
        "Bluebird Days",
        "Bobby Tarantino",
        "Bobby Tarantino II",
        "Bon Iver",
        "Born Pink",
        "Born To Run",
        "Brand New Eyes",
        "Break The Cycle",
        "Breakfast In America",
        "Breakthrough",
        "Brett Young",
        "Bridge Over Troubled Water",
        "Bright: The Album",
        "Brol",
        "Buds",
        "Buena Vista Social Club",
        "Built On Glass",
        "Bury Me At Makeout Creek",
        "Busyhead",
        "By The Way",
        "CB6",
        "CNCO",
        "California Sunrise",
        "Californication",
        "Call Me Irresponsible",
        "Calm",
        "Camino Palmero",
        "Camp",
        "Caracal",
        "Carbon Fiber Hits",
        "Carnival",
        "Carry On",
        "Cartel De Santa",
        "Certified Lover Boy",
        "Chaaama",
        "Chama Meu Nome",
        "Chapter 1: Snake Oil",
        "Chapter 2: Swamp Savant",
        "Chapter One",
        "Charlie's Angels",
        "Cherry Bomb",
        "Chief",
        "Chocolate Factory",
        "Chosen",
        "Chris Brown",
        "Christina Aguilera",
        "Chromatica",
        "Church",
        "City Of Evil",
        "Clandestino",
        "Clouds",
        "Coco",
        "Collision Course",
        "Colour Vision",
        "Combat Rock",
        "Come Around Sundown",
        "Come Away With Me",
        "Come Home The Kids Miss You",
        "Come What(ever) May",
        "Commando",
        "Common Sense",
        "Communion",
        "Conditions",
        "Confident",
        "Confrontation",
        "Control The Streets, Volume 2",
        "Corinne Bailey Rae",
        "Costello Music",
        "Cottonwood",
        "Covers, Vol. 2",
        "Cozy Tapes Vol. 2: Too Cozy",
        "Crash Talk",
        "Crazy Love",
        "Crazysexycool",
        "Crowded House",
        "Cruisin' With Junior H",
        "Culture",
        "Current Mood",
        "DS2",
        "Dale",
        "Danger Days: The True Lives Of The Fabulous Killjoys",
        "Dangerous Woman",
        "Dangerous: The Double Album",
        "Dark Horse",
        "Day69",
        "Daydream",
        "De Fiesta",
        "De Viaje",
        "DeAnn",
        "Death Race For Love",
        "Delirium",
        "Delta",
        "Demidevil",
        "Depression Cherry",
        "Descendants",
        "Desgenerados Mixtape",
        "Destin",
        "Destiny Fulfilled",
        "Desvelado",
        "Detroit 2",
        "Dex Meets Dexter",
        "Dharma",
        "Die A Legend",
        "Different World",
        "Dig Your Roots",
        "Digital Druglord",
        "Dirt",
        "Disclaimer I / II",
        "Discovery",
        "Disraeli Gears",
        "Disumano",
        "Dizzy Up The Girl",
        "Don't Play That Song",
        "Donda",
        "Donde Quiero Estar",
        "Doo-Wops & Hooligans",
        "Down The Way",
        "Dr. Feelgood",
        "Dream Your Life Away",
        "Dreaming Out Loud",
        "Drip Harder",
        "Drive",
        "Drones",
        "Dropped Outta College",
        "Drowning",
        "Dua Warna Cinta",
        "Dulce Beat",
        "Dusty In Memphis",
        "Dutty Rock",
        "Dying To Live",
        "ENR",
        "East Atlanta Love Letter",
        "Editorial",
        "Edna",
        "El Abayarde",
        "El Amor En Los Tiempos Del Perreo",
        "El Camino",
        "El Comienzo",
        "El Dorado",
        "El Karma",
        "El Mal Querer",
        "El Malo",
        "El Trabajo Es La Suerte",
        "El Viaje De Copperpot",
        "Electric Ladyland",
        "Emotion",
        "En Tus Planes",
        "Endless Summer Vacation",
        "Enter The Wu-Tang (36 Chambers)",
        "Equals (=)",
        "Estrella",
        "Euphoria",
        "Europop",
        "Evermore",
        "Every Kingdom",
        "Everyday Life",
        "Evolve",
        "Expectations",
        "Face Yourself",
        "Facelift",
        "Fallin'",
        "Fancy You",
        "Fantasía",
        "Favourite Worst Nightmare",
        "Fear Of The Dark",
        "Fearless",
        "Feel Something",
        "Feels Like Home",
        "Femme Fatale",
        "Ferxxocalipsis",
        "Fifty Shades Darker",
        "Fifty Shades Freed",
        "Fifty Shades Of Grey",
        "Final (Vol.1)",
        "Finding Beauty In Negative Spaces",
        "Fine Line",
        "First Impressions Of Earth",
        "First Steps",
        "Five Seconds Flat",
        "Folklore",
        "For Emma, Forever Ago",
        "Forajido EP 1",
        "Forever",
        "Forever Young",
        "Formula Of Love: O+T=<3",
        "Free 6lack",
        "Freudian",
        "Frozen II",
        "Full Moon Fever",
        "Funhouse",
        "Funk Wav Bounces Vol.1",
        "Future History",
        "FutureSex/LoveSounds",
        "Fuzzybrain",
        "Gallery",
        "Gangsta's Paradise",
        "Gemini",
        "Gemini Rights",
        "Generationwhy",
        "Get A Grip",
        "Get Up",
        "Gettin' Old",
        "Girl",
        "Gladiator",
        "Glisten",
        "Globalization",
        "Gloria",
        "Glory Days",
        "God's Project",
        "Gold Skies",
        "Golden",
        "Good Evening",
        "Good Thing",
        "Goodbye Yellow Brick Road",
        "Gossip Columns",
        "Got Your Six",
        "Graceland",
        "Graduation",
        "Grand Champ",
        "Grandson, Vol. 1",
        "Green River",
        "Guerra",
        "Ha*Ash Primera Fila - Hecho Realidad",
        "Haiz",
        "Hamilton",
        "Happy Endings",
        "Harry Styles",
        "Hasta La Raíz",
        "Hatful Of Hollow",
        "Head In The Clouds",
        "Heard It In A Past Life",
        "Heart Shaped World",
        "Heartbeat City",
        "Heartbreak On A Full Moon / Cuffing Season - 12 Days Of Christmas",
        "Heaven Or Hell",
        "Heaven knows",
        "Hellbilly Deluxe",
        "Hellboy",
        "Help!",
        "Her Loss",
        "Here Comes The Cowboy",
        "Hey World",
        "High School Musical",
        "High Tide In The Snake's Nest",
        "Historias De Un Capricornio",
        "Hndrxx",
        "Hombres G (Devuélveme A Mi Chica)",
        "Homerun",
        "Homework",
        "Hot Fuss",
        "Hot Pink",
        "Hot Sauce / Hello Future",
        "Hot Space",
        "Hotel Diablo",
        "Houses Of The Holy",
        "How Big, How Blue, How Beautiful",
        "How I'm Feeling",
        "How To Be Human",
        "How To Save A Life",
        "How To: Friend, Love, Freefall",
        "Hozier",
        "Human",
        "Huncho Jack, Jack Huncho",
        "Hunter Hayes",
        "Hysteria",
        "I Am...Sasha Fierce",
        "I Can't Handle Change",
        "I Met You When I Was 18. (The Playlist)",
        "I Never Liked You",
        "I Never Loved A Man The Way I Love You",
        "I See You",
        "I Think You Think Too Much Of Me",
        "I Used To Know Her",
        "I Used To Think I Could Fly",
        "I'm Comin' Over",
        "Ich & Keine Maske",
        "If You Can Believe Your Eyes & Ears",
        "Il Ballo Della Vita",
        "Ill Communication",
        "Imagination & The Misfit Kid",
        "Imagine",
        "Immortalized",
        "In A Perfect World...",
        "In Colour",
        "In My Own Words",
        "In Rainbows",
        "In Return",
        "In The Lonely Hour",
        "Infest",
        "Innuendo",
        "Inter Shibuya - La Mafia",
        "Interstellar",
        "Is This It",
        "It Was Written",
        "It's Not Me, It's You",
        "It's Only Me",
        "Ivory",
        "JackBoys",
        "Jamie",
        "Jazz",
        "Jibrail & Iblis",
        "Jordi",
        "Jordin Sparks",
        "Jose",
        "Just As I Am",
        "Just Cause Y'all Waited 2",
        "Just Like You",
        "Justified",
        "K-12 / After School",
        "K.I.D.S.",
        "K.O.",
        "K.O.B. Live",
        "KG0516",
        "KOD",
        "Kane Brown",
        "Kid A",
        "Kid Krow",
        "Kids See Ghosts",
        "Kids in Love",
        "Kinks (You Really Got Me)",
        "Know-It-All",
        "Konvicted",
        "Kring",
        "LANY",
        "LM5",
        "La Criatura",
        "La Flaca",
        "La Melodia De La Calle",
        "La Revolucion",
        "Lady Lady",
        "Lady Wood",
        "Langit Mong Bughaw",
        "Las Que No Iban A Salir",
        "Last Day Of Summer",
        "Last Year Was Complicated",
        "Layers",
        "Layover",
        "Lazarus",
        "Led Zeppelin",
        "Left Of The Middle",
        "Leftoverture",
        "Legends Never Die",
        "Let's Skip To The Wedding",
        "Let's Talk About Love",
        "Licensed To Ill",
        "Life In Cartoon Motion",
        "Life Thru A Lens",
        "Lifelines",
        "Like..?",
        "Lil Big Pac",
        "Lil Boat",
        "Lil Boat 2",
        "Lil Boat 3.5",
        "Lil Kiwi",
        "Lil Pump",
        "Limon Y Sal",
        "Listen Without Prejudice",
        "Little Voice",
        "Live On Red Barn Radio I & II",
        "Lo Que Andábamos Buscando",
        "Lofi Fruits Music 2021",
        "London Calling",
        "Los Campeones Del Pueblo",
        "Los Extraterrestres",
        "Los Favoritos 2",
        "Lost",
        "Lost In Love",
        "Loud",
        "Love Sick",
        "Love Story",
        "Love Stuff",
        "Love Yourself: Tear",
        "Lover",
        "Luca Brasi 2: Gangsta Grillz",
        "Lust For Life",
        "Luv Is Rage",
        "M!ssundaztood",
        "Ma Fleur",
        "Made In Lagos",
        "Mafia Bidness",
        "Magazines Or Novels",
        "Mainstream Sellout",
        "Majestic",
        "Make It Big",
        "Make Yourself",
        "Making Mirrors",
        "Mamma Mia! Here We Go Again",
        "Man Of The Woods",
        "Manic",
        "Me And My Gang",
        "Meduza",
        "Meet The Orphans",
        "Meet The Woo",
        "Melim",
        "Mellon Collie And The Infinite Sadness",
        "Melly vs. Melvin",
        "Memories...Do Not Open",
        "Menagerie",
        "Midnights",
        "Minecraft - Volume Alpha",
        "Minutes To Midnight",
        "Mix Pa Llorar En Tu Cuarto",
        "Modo Avión",
        "Monkey Business",
        "Mono.",
        "Montana",
        "Montevallo",
        "Moosetape",
        "Morning View",
        "Motivan2",
        "Moving Pictures",
        "Mr. Davis",
        "Mr. Misunderstood",
        "Mulan",
        "Mura Masa",
        "Music From The Edge Of Heaven",
        "Music Of The Sun",
        "My House",
        "My Kinda Party",
        "My Krazy Life",
        "My Liver Will Handle What My Heart Can't",
        "My Moment",
        "My Own Lane",
        "My Turn",
        "My Worlds",
        "Na Praia (Ao Vivo)",
        "Nakamura",
        "Nation Of Two",
        "Navegando",
        "Need You Now",
        "Neon Future III",
        "Neotheater",
        "Never Trust A Happy Song",
        "New English",
        "News Of The World",
        "Nicole",
        "Night & Day",
        "Nimmerland",
        "Nimrod",
        "Nine Track Mind",
        "No Angel",
        "No Me Pidas Perdón",
        "No More Drama",
        "No Protection",
        "No Strings Attached",
        "No Time To Die",
        "Nobody Is Listening",
        "Non Stop Erotic Cabaret",
        "Non-Fiction",
        "Northsbest",
        "Nostalgia",
        "Nostalgia, Ultra",
        "Notes On A Conditional Form",
        "Now Or Never",
        "O Embaixador (Ao Vivo)",
        "O My Heart",
        "OK Computer",
        "Ocean",
        "Ocean Avenue",
        "Ocean Eyes",
        "Odisea",
        "Oh My My",
        "Oh, What A Life",
        "On The 6",
        "One In A Million",
        "One More Light",
        "One Of These Nights",
        "Open Up And Say...Ahh!",
        "Ordinary Man",
        "Origins",
        "Out Of The Blue",
        "Over It",
        "OzuTochi",
        "PTSD",
        "Pa Las Baby's Y Belikeada",
        "Pa Que Hablen",
        "Pa' Luego Es Tarde",
        "Pa' Otro La 'O",
        "Pablo Honey",
        "Pain Is Love",
        "Pain Is Temporary",
        "Painting Pictures",
        "Palmen Aus Plastik 2",
        "Para Mi Ex",
        "Para Siempre",
        "Partners In Crime",
        "Pawn Shop",
        "Pegasus / Neon Shark VS Pegasus",
        "Pet Sounds",
        "Piece By Piece",
        "Pier Pressure",
        "Pineapple Sunrise",
        "Piseiro 2020 Ao Vivo",
        "Planet Pit",
        "Plans",
        "Play Deep",
        "Playa Saturno",
        "Por Primera Vez",
        "Por Vida",
        "Positions",
        "Post Human: Survival Horror",
        "Poster Girl",
        "Prazer, Eu Sou Ferrugem (Ao Vivo)",
        "Pretty Girls Like Trap Music",
        "Pretty. Odd.",
        "Prince Royce",
        "Prisma",
        "Prometo",
        "Providence",
        "Puberty 2",
        "Punisher",
        "Purgatory",
        "Purple Rain",
        "Que Bendición",
        "Queen Of The Clouds",
        "Quiero Volver",
        "R&G (Rhythm & Gangsta): The Masterpiece",
        "Raise!",
        "Ransom 2",
        "Rapunzel",
        "Rare",
        "Re Mida",
        "Ready To Die",
        "Realer",
        "Rebelde",
        "Reclassified",
        "Recovery",
        "Recuerden Mi Estilo",
        "Reggatta De Blanc",
        "Regulate… G Funk Era",
        "Reik",
        "Reise, Reise",
        "Relapse",
        "Relaxing Piano Lullabies And Natural Sleep Aid For Baby Sleep Music",
        "Religiously. The Album.",
        "Replay",
        "Results May Vary",
        "Revenge",
        "Revolve",
        "Revolver",
        "Ricky Martin",
        "Rien 100 Rien",
        "Ripcord",
        "Rise And Fall, Rage And Grace",
        "Rise Of An Empire",
        "Robin Hood: Prince Of Thieves",
        "Rock N Roll Jesus",
        "Romance",
        "Romances",
        "Ronan",
        "Royal Blood",
        "Rumours",
        "Sad Boyz 4 Life II",
        "San Lucas",
        "Santana World",
        "Saturation III",
        "Sauce Boyz",
        "Savage Mode",
        "Saxobeats",
        "Scarlet",
        "Schwarzes Herz",
        "Seal The Deal & Let's Boogie",
        "Section.80",
        "Segundo Romance",
        "Sehnsucht",
        "Shake The Snow Globe",
        "Shang-Chi And The Legend Of The Ten Rings: The Album",
        "Sheer Heart Attack",
        "Shiesty Season",
        "Shock Value",
        "Shoot For The Stars, Aim For The Moon",
        "Signed Sealed And Delivered",
        "Signos",
        "Silent Alarm",
        "Simplemente Gracias",
        "Sin Bandera",
        "Sing Me A Lullaby, My Sweet Temptation",
        "Sinner",
        "Sirio",
        "Sit Still, Look Pretty",
        "Skin",
        "Slowhand",
        "Smash",
        "Smithereens",
        "Snow Cougar",
        "Social Cues",
        "Some Girls",
        "Song Hits From Holiday Inn",
        "Songs For Dads",
        "Songs For The Deaf",
        "Songs For You, Truths For Me",
        "Songs In The Key Of Life",
        "Souled Out",
        "Sounds Of Silence",
        "Soy Como Quiero Ser",
        "Speak Now",
        "Speak Your Mind",
        "Speakerboxxx/The Love Below",
        "Spider-Man: Into The Spider-Verse",
        "Split Decision",
        "Square Up",
        "SremmLife",
        "Starboy",
        "Stay +",
        "Stay Dangerous",
        "Staying At Tamara's",
        "Steppenwolf",
        "Stick Season",
        "Still Bill",
        "Straight Outta Compton",
        "Strange Trails",
        "Stronger",
        "Suavemente",
        "Sublime",
        "Suck It and See",
        "Sucker",
        "Sueños",
        "Sugar",
        "Summer Forever",
        "Summer,",
        "Sunset Season",
        "Sunshine On Leith",
        "Surfer Rosa",
        "Sweet Talker",
        "SweetSexySavage",
        "System Of A Down",
        "TA13OO",
        "Talk That Talk",
        "Talking Heads: 77",
        "Tangled Up",
        "Tango In The Night",
        "Taxi Driver",
        "Taylor Swift",
        "Tell Me It's Real",
        "Ten",
        "Ten Summoner's Tales",
        "Terra Sem Cep (Ao Vivo)",
        "Terral",
        "Testing",
        "Tha Carter III",
        "Thank Me Later",
        "That's Christmas To Me",
        "The Academy",
        "The Adventures Of Bobby Ray",
        "The Album",
        "The Andy Williams Christmas Album",
        "The Aviary",
        "The Balcony",
        "The Battle Of Los Angeles",
        "The Beatles (White Album)",
        "The Beginning",
        "The Better Life",
        "The Big Day",
        "The Book",
        "The Breakfast Club",
        "The Cars",
        "The Colour And The Shape",
        "The Death Of Peace Of Mind",
        "The Diary Of Alicia Keys",
        "The Documentary",
        "The Emancipation Of Mimi",
        "The Eminem Show",
        "The End Of Everything",
        "The Final Countdown",
        "The Forever Story",
        "The Foundation",
        "The Goat",
        "The Golden Child",
        "The Good Parts",
        "The Greatest Showman: Reimagined",
        "The Green Trip",
        "The Hardest Love",
        "The Head And The Heart",
        "The Human Condition",
        "The Infamous",
        "The Lady Killer",
        "The Last Don II",
        "The Lion King",
        "The Lockdown Sessions",
        "The London Sessions",
        "The Lord Of The Rings: The Fellowship Of The Ring",
        "The Lost Boy",
        "The Magic Of Christmas / The Christmas Song",
        "The Marshall Mathers LP",
        "The Martin Garrix Collection",
        "The Melodic Blue",
        "The Mockingbird & The Crow",
        "The Pains Of Growing",
        "The Papercut Chronicles",
        "The Perfect Luv Tape",
        "The Pinkprint",
        "The Predator",
        "The Queen Is Dead",
        "The ReVe Festival: Finale",
        "The Rise And Fall Of Ziggy Stardust And The Spiders From Mars",
        "The Rising Tied",
        "The River",
        "The Stone Roses",
        "The Story Of Us",
        "The Stranger",
        "The Sufferer & The Witness",
        "The Sun's Tirade",
        "The Temptations Sing Smokey",
        "The Time Of Our Lives",
        "The Way It Is",
        "The Wonderful World Of Sam Cooke",
        "The Writing's On The Wall",
        "The Young And The Hopeless",
        "Therapy",
        "Therapy Session",
        "There Is More (Live)",
        "There Is Nothing Left To Lose",
        "These Things Happen",
        "Third Eye Blind",
        "This Is Me...Then",
        "This Unruly Mess I've Made",
        "Threat to Survival",
        "Thrill Of The Chase",
        "Time",
        "Timelezz",
        "To Let A Good Thing Die",
        "To Pimp A Butterfly",
        "Toast To Our Differences",
        "Todos Os Cantos, Vol. 1 (Ao Vivo)",
        "Too Hard",
        "Torches X",
        "Total Xanarchy",
        "Toto IV",
        "Toulouse Street",
        "Tourist History",
        "Toxicity",
        "Tragic Kingdom",
        "Tranquility Base Hotel & Casino",
        "Traumazine",
        "Traveler",
        "Tres Hombres",
        "Trip At Knight",
        "Tron: Legacy",
        "True Blue",
        "True Colors",
        "Trustfall",
        "Tu Veneno Mortal",
        "Tudo Em Paz",
        "Ubuntu",
        "Ugly Is Beautiful",
        "Ultra 2021",
        "Una Mattina",
        "Unbroken",
        "Uncovered",
        "Under Pressure",
        "Unsponsored Content",
        "Unstoppable",
        "Unwritten",
        "Urban Flora",
        "Urban Hymns",
        "Use Your Illusion I",
        "Veneer",
        "Versions Of Me",
        "Vibes",
        "Vice Versa",
        "Vices & Virtues",
        "Victory",
        "Vida",
        "Viejo Marihuano",
        "Visualízate",
        "Walk Away",
        "Walk Me Home...",
        "Watch The Throne",
        "Wave",
        "We Broke The Rules",
        "We Love You Tecca",
        "We Love You Tecca 2",
        "Weezer (Green Album)",
        "Welcome To The Madhouse",
        "Westlife",
        "What A Time To Be Alive",
        "What Do You Think About The Car?",
        "What Is Love?",
        "What Makes You Country",
        "What Separates Me From You",
        "What You See Is What You Get / What You See Ain't Always What You Get",
        "When It's Dark Out",
        "When We All Fall Asleep, Where Do We Go?",
        "Where The Light Is",
        "While The World Was Burning",
        "White Pony",
        "Whitney",
        "Who Really Cares",
        "Who You Are",
        "Who's Next",
        "Wide Open",
        "Wilder Mind",
        "Wildfire",
        "Willy And The Poor Boys",
        "Wings / You Never Walk Alone",
        "Wish",
        "Wish You Were Here",
        "Without Warning",
        "Wonder",
        "X&Y",
        "XOXO",
        "Y Que Quede Claro",
        "YBN: The Mixtape",
        "Yo Creo",
        "You Will Regret",
        "Youngblood",
        "Younger Now",
        "Youth"
    ], lE = [
        "$NOT",
        "$uicideboy$",
        "(G)I-DLE",
        "*NSYNC",
        "2 Chainz",
        "21 Savage",
        "6LACK",
        "? & The Mysterians",
        "A Boogie Wit da Hoodie",
        "A Taste of Honey",
        "A Tribe Called Quest",
        "A-Ha",
        "ABBA",
        "AC/DC",
        "AJ Tracey",
        "ATEEZ",
        "Ace of Base",
        "Adele",
        "Ado",
        "Aerosmith",
        "Agust D",
        "Aitana",
        "Al Dexter & his Troopers",
        "Al Green",
        "Al Jolson",
        "Al Martino",
        "Alan Jackson",
        "Alannah Myles",
        "Alec Benjamin",
        "Alejandro Sanz",
        "Alesso",
        "Alfredo Olivas",
        "Ali Gatie",
        "Alice In Chains",
        "Alina Baraz",
        "All Time Low",
        "All-4-One",
        "All-American Rejects",
        "Alok",
        "America",
        "American Quartet",
        "Amii Stewart",
        "Amitabh Bhattacharya",
        "Ana Castela",
        "Anderson .Paak",
        "Andy Grammer",
        "Angus & Julia Stone",
        "Anirudh Ravichander",
        "Anita Ward",
        "Anitta",
        "Anton Karas",
        "Anuel AA",
        "Arcade Fire",
        "Archie Bell & The Drells",
        "Archies",
        "Aretha Franklin",
        "Arizona Zervas",
        "Armin van Buuren",
        "Arthur Conley",
        "Artie Shaw",
        "Asake",
        "Asees Kaur",
        "Association",
        "Atif Aslam",
        "Audioslave",
        "Aventura",
        "Avril Lavigne",
        "Aya Nakamura",
        "B J Thomas",
        "B.o.B",
        "BLACKPINK",
        "BONES",
        "BROCKHAMPTON",
        "BTS",
        "Baby Keem",
        "Bachman-Turner Overdrive",
        "Backstreet Boys",
        "Bad Bunny",
        "Badshah",
        "Bailey Zimmerman",
        "Banda El Recodo",
        "Barbra Streisand",
        "Barry White",
        "Bazzi",
        "Bebe Rexha",
        "Becky G",
        "Becky Hill",
        "Bee Gees",
        "Ben Bernie",
        "Ben Howard",
        "Ben Selvin",
        "Berlin",
        "Bessie Smith",
        "Bethel Music",
        "Bette Midler",
        "Beyonce",
        "Bibi Blocksberg",
        "Bibi und Tina",
        "BigXthaPlug",
        "Bill Doggett",
        "Bill Haley & his Comets",
        "Bill Withers",
        "Billy Davis Jr",
        "Billy Joel",
        "Billy Paul",
        "Billy Preston",
        "Billy Swan",
        "Birdy",
        "Bizarrap",
        "Blake Shelton",
        "Blur",
        "Bob Marley & The Wailers",
        "Bob Seger",
        "Bobby Darin",
        "Bobby Lewis",
        "Bobby McFerrin",
        "Bobby Vinton",
        "Boney M.",
        "Bonez MC",
        "Bonnie Tyler",
        "Booba",
        "Boston",
        "BoyWithUke",
        "Boyce Avenue",
        "Bradley Cooper",
        "Bread",
        "Brent Faiyaz",
        "Brett Young",
        "Bring Me The Horizon",
        "Britney Spears",
        "Brooks & Dunn",
        "Bruce Channel",
        "Bruno & Marrone",
        "Bryan Adams",
        "Bryce Vine",
        "Buddy Holly",
        "Burna Boy",
        "C. Tangana",
        "CKay",
        "CRO",
        "Camilo",
        "Capital Bra",
        "Captain & Tennille",
        "Cardi B",
        "Carin Leon",
        "Carlos Vives",
        "Carly Simon",
        "Carpenters",
        "Cavetown",
        "Celine Dion",
        "Central Cee",
        "Chaka Khan",
        "Champs",
        "Charlie Rich",
        "Chayanne",
        "Cheat Codes",
        "Cher",
        "Chic",
        "Chicago",
        "Chris Brown",
        "Chris Isaak",
        "Chris Young",
        "Christina Aguilera",
        "Christina Perri",
        "Christopher Cross",
        "Chuck Berry",
        "Ciara",
        "Cigarettes After Sex",
        "Cliff Edwards (Ukelele Ike)",
        "Cody Johnson",
        "Colbie Caillat",
        "Colby O'Donis",
        "Cole Swindell",
        "Coleman Hawkins",
        "Contours",
        "Coolio",
        "Count Basie",
        "Cris Mj",
        "Culture Club",
        "Cyndi Lauper",
        "D-Block Europe",
        "DAY6",
        "DJ Khaled",
        "DJ Luian",
        "DJ Nelson",
        "DMX",
        "DNCE",
        "DaVido",
        "Dadju",
        "Daft Punk",
        "Dan + Shay",
        "Daniel Powter",
        "Danny Ocean",
        "Darius Rucker",
        "Dave",
        "David Bowie",
        "David Guetta",
        "Daya",
        "Dean Martin",
        "Deee-Lite",
        "Deep Purple",
        "Deftones",
        "Demi Lovato",
        "Dennis Lloyd",
        "Denzel Curry",
        "Dermot Kennedy",
        "Desiigner",
        "Devo",
        "Dewa 19",
        "Dexys Midnight Runners",
        "Diddy",
        "Dido",
        "Die drei !!!",
        "Diego & Victor Hugo",
        "Diljit Dosanjh",
        "Dimitri Vegas & Like Mike",
        "Dinah Shore",
        "Dionne Warwick",
        "Dire Straits",
        "Disclosure",
        "Dixie Cups",
        "Doja Cat",
        "Dolly Parton",
        "Don Diablo",
        "Don Henley",
        "Don McLean",
        "Don Omar",
        "Donna Summer",
        "Donovan",
        "Dr. Dre",
        "Drake",
        "Dreamville",
        "Dua Lipa",
        "EMF",
        "ENHYPEN",
        "Earth, Wind & Fire",
        "Ed Sheeran",
        "Eddie Cantor",
        "Eddie Cochran",
        "Eddy Howard",
        "Edgar Winter Group",
        "Edwin Hawkins Singers",
        "Edwin Starr",
        "El Alfa",
        "Eladio Carrion",
        "Electric Light Orchestra",
        "Elevation Worship",
        "Ella Henderson",
        "Ellie Goulding",
        "Elton John",
        "Elvis Presley",
        "Empire of the Sun",
        "En Vogue",
        "Enrique Iglesias",
        "Eslabon Armado",
        "Ethel Waters",
        "Etta James",
        "Evanescence",
        "Exile",
        "Extreme",
        "Faith Hill",
        "Fall Out Boy",
        "Fanny Brice",
        "Farruko",
        "Fats Domino",
        "Fats Waller",
        "Feid",
        "Felix Jaehn",
        "Fergie",
        "Fetty Wap",
        "Fiersa Besari",
        "Fifth Harmony",
        "Fine Young Cannibals",
        "Five Finger Death Punch",
        "Fleetwood Mac",
        "Flo-Rida",
        "Florence + The Machine",
        "Flume",
        "Foo Fighters",
        "Foreigner",
        "Foster The People",
        "Four Aces",
        "Frank Ocean",
        "Frank Sinatra",
        "Frankie Avalon",
        "Frankie Valli",
        "Fred Astaire",
        "Freda Payne",
        "Freddie Dredd",
        "Freddy Fender",
        "French Montana",
        "Fuerza Regida",
        "Fujii Kaze",
        "Future",
        "G-Eazy",
        "Garfunkel and Oates",
        "Gary Lewis & The Playboys",
        "Gary Numan",
        "Gene Autry",
        "Gene Chandler",
        "Gene Vincent",
        "George Michael",
        "George Strait",
        "Gera MX",
        "Ghost",
        "Ghostemane",
        "Gigi D'Agostino",
        "Gladys Knight & The Pips",
        "Glass Animals",
        "Glee Cast",
        "Gloria Gaynor",
        "Godsmack",
        "Gorillaz",
        "Gotye",
        "Grand Funk Railroad",
        "Green Day",
        "Grouplove",
        "Grupo Firme",
        "Grupo Marca Registrada",
        "Gryffin",
        "Gucci Mane",
        "Guess Who",
        "Gunna",
        "Gusttavo Lima",
        "Guy Mitchell",
        "Gwen Stefani",
        "Gzuz",
        "H.E.R.",
        "HARDY",
        "Hailee Steinfeld",
        "Halsey",
        "Hans Zimmer",
        "Harris Jayaraj",
        "Harry Chapin",
        "Harry James",
        "Harry Nilsson",
        "Harry Styles",
        "Hayley Williams",
        "Herb Alpert",
        "Herman's Hermits",
        "Hillsong UNITED",
        "Hillsong Worship",
        "Hollywood Undead",
        "Honey Cone",
        "Hoobastank",
        "Hues Corporation",
        "I Prevail",
        "ITZY",
        "IVE",
        "Ice Cube",
        "Ice Spice",
        "Iggy Azalea",
        "Imagine Dragons",
        "Incubus",
        "Internet Money",
        "Isaac Hayes",
        "J Geils Band",
        "J. Cole",
        "JAY-Z",
        "JJ Lin",
        "JP Saxe",
        "JVKE",
        "Jack Harlow",
        "Jack Johnson",
        "Jackie Wilson",
        "Jacquees",
        "James Arthur",
        "James Brown",
        "James TW",
        "James Taylor",
        "Jamie Foxx",
        "Janet Jackson",
        "Janis Joplin",
        "Jason Aldean",
        "Jason Mraz",
        "Jay Chou",
        "Jay Sean",
        "Jay Wheeler",
        "Jaymes Young",
        "Jean Knight",
        "Jeezy",
        "Jennifer Lopez",
        "Jennifer Warnes",
        "Jeremih",
        "Jeremy Zucker",
        "Jerry Lee Lewis",
        "Jerry Murad's Harmonicats",
        "Jess Glynne",
        "Jessie J",
        "Jewel",
        "Jimi Hendrix",
        "Jimin",
        "Jimmie Rodgers",
        "Jimmy Dean",
        "Jo Stafford",
        "Joan Jett & The Blackhearts",
        "Joao Gilberto",
        "Joel Corry",
        "John Fred & The Playboy Band",
        "John Legend",
        "John Mayer",
        "John Williams",
        "Johnnie Ray",
        "Johnnie Taylor",
        "Johnny Cash",
        "Johnny Horton",
        "Johnny Mathis",
        "Johnny Mercer",
        "Johnny Nash",
        "Joji",
        "Jon Bellion",
        "Jonas Blue",
        "Jonas Brothers",
        "Joni James",
        "Jorja Smith",
        "Juan Gabriel",
        "Juan Luis Guerra 4.40",
        "Juanes",
        "Juice Newton",
        "Julia Michaels",
        "Justin Bieber",
        "Justin Quiles",
        "KALEO",
        "KAROL G",
        "KAYTRANADA",
        "KK",
        "KSI",
        "KYLE",
        "Kacey Musgraves",
        "Kane Brown",
        "Kanye West",
        "Karan Aujla",
        "Kate Smith",
        "Katy Perry",
        "Kay Kyser",
        "Ke$ha",
        "Kehlani",
        "Kelly Clarkson",
        "Kenny Chesney",
        "Kenny Loggins",
        "Kenny Rogers",
        "Kenshi Yonezu",
        "Kenya Grace",
        "Kevin Gates",
        "Key Glock",
        "Khalid",
        "Kim Carnes",
        "Kim Petras",
        "Kimbra",
        "Kina",
        "King Gnu",
        "Kings of Leon",
        "Kingsmen",
        "Kitty Kallen",
        "Kodak Black",
        "Kodaline",
        "Kollegah",
        "Kool & The Gang",
        "Kungs",
        "Kygo",
        "Kylie Minogue",
        "LE SSERAFIM",
        "LISA",
        "LMFAO",
        "LUDMILLA",
        "La Adictiva Banda San José de Mesillas",
        "La Oreja de Van Gogh",
        "Labrinth",
        "Lady Antebellum",
        "Lady GaGa",
        "Lainey Wilson",
        "Lana Del Rey",
        "Latto",
        "Lauryn Hill",
        "Lauv",
        "League of Legends",
        "Lee Brice",
        "Leon Bridges",
        "Leona Lewis",
        "Lesley Gore",
        "Leslie Odom Jr.",
        "Liam Payne",
        "Lifehouse",
        "Lil Baby",
        "Lil Dicky",
        "Lil Durk",
        "Lil Mosey",
        "Lil Nas X",
        "Lil Pump",
        "Lil Skies",
        "Lil Tjay",
        "Lil Uzi Vert",
        "Lil Yachty",
        "Lil' Kim",
        "Lil' Wayne",
        "Lin-Manuel Miranda",
        "Linkin Park",
        "Lionel Richie",
        "Lipps Inc",
        "Lisa Loeb",
        "Little Peggy March",
        "Little Richard",
        "Lofi Fruits Music",
        "Lord Huron",
        "Los Del Rio",
        "Los Dos Carnales",
        "Los Lobos",
        "Los Temerarios",
        "Los Tigres Del Norte",
        "Los Tucanes De Tijuana",
        "Lou Reed",
        "Loud Luxury",
        "Louis Jordan",
        "Louis Tomlinson",
        "Love Unlimited",
        "Lovin' Spoonful",
        "Luan Santana",
        "Luciano",
        "Luis Miguel",
        "Luis R Conriquez",
        "Lulu",
        "Lunay",
        "Lupe Fiasco",
        "M",
        "MAX",
        "MC Hammer",
        "MC Ryan SP",
        "MKTO",
        "Mabel",
        "Machine Gun Kelly",
        "Madison Beer",
        "Madonna",
        "Mahalini",
        "Major Lazer",
        "Mambo Kingz",
        "Maneskin",
        "Marco Antonio Solís",
        "Margaret Whiting",
        "Maria Becerra",
        "Mario",
        "Mario Lanza",
        "Mark Ronson",
        "Maroon 5",
        "Marshmello",
        "Martin Garrix",
        "Mary Ford",
        "Mary J Blige",
        "Mary J. Blige",
        "Mary Wells",
        "Matoma",
        "Mau y Ricky",
        "Meek Mill",
        "Megadeth",
        "Melanie",
        "Melanie Martinez",
        "Melendi",
        "Men At Work",
        "Metro Boomin",
        "Michael Bublé",
        "Michael Jackson",
        "Michael McDonald",
        "Michael Sembello",
        "Miguel",
        "Mike Posner",
        "Miley Cyrus",
        "Milky Chance",
        "Minnie Riperton",
        "Miracle Tones",
        "Miranda Lambert",
        "Mohit Chauhan",
        "Mon Laferte",
        "Moneybagg Yo",
        "Monsta X",
        "Mora",
        "Morad",
        "Morat",
        "Mother Mother",
        "Motley Crue",
        "Ms. Lauryn Hill",
        "Mumford & Sons",
        "Muse",
        "Mya",
        "Myke Towers",
        "NCT 127",
        "NCT DREAM",
        "NEFFEX",
        "Nadin Amizah",
        "Nancy Sinatra",
        "Nat King Cole",
        "Nate Smith",
        "Natti Natasha",
        "Nayer",
        "Neil Diamond",
        "Neil Sedaka",
        "Nekfeu",
        "Nelly",
        "New Vaudeville Band",
        "Next",
        "Nickelback",
        "Nicki Minaj",
        "Nicki Nicole",
        "Nicky Jam",
        "Nina Simone",
        "Ninho",
        "Nipsey Hussle",
        "Nirvana",
        "Niska",
        "No Doubt",
        "Norah Jones",
        "Normani",
        "OMI",
        "ONE OK ROCK",
        "Oasis",
        "Official HIGE DANdism",
        "Offset",
        "Old Dominion",
        "Oliver Heldens",
        "Olivia Rodrigo",
        "Omah Lay",
        "One Direction",
        "Otis Redding",
        "OutKast",
        "Owl City",
        "P Diddy",
        "P!nk",
        "PLK",
        "PNL",
        "Pamungkas",
        "Passenger",
        "Pat Boone",
        "Patsy Cline",
        "Patti LaBelle",
        "Patti Page",
        "Paul & Paula",
        "Paul Revere & the Raiders",
        "Paul Robeson",
        "Paul Russell",
        "Paul Whiteman",
        "Paula Abdul",
        "Peaches & Herb",
        "Pearl Jam",
        "Pee Wee Hunt",
        "Pee Wee King",
        "Pentatonix",
        "Percy Faith",
        "Percy Sledge",
        "Peso Pluma",
        "Peter Cetera",
        "Peter Gabriel",
        "Peter, Paul & Mary",
        "Pharrell Williams",
        "Pierce The Veil",
        "Pineapple StormTv",
        "Pink Floyd",
        "Pink Sweat$",
        "Piso 21",
        "Pitbull",
        "Plan B",
        "Player",
        "Polo G",
        "Pop Smoke",
        "Portugal. The Man",
        "Pouya",
        "Prince",
        "Prince Royce",
        "Pusha T",
        "Quality Control",
        "Queen",
        "Quinn XCII",
        "R. Kelly",
        "RAF Camora",
        "RAYE",
        "REM",
        "REO Speedwagon",
        "Radiohead",
        "Rag'n'Bone Man",
        "Rage Against The Machine",
        "Rahat Fateh Ali Khan",
        "Rainbow Kitten Surprise",
        "Rammstein",
        "Rauw Alejandro",
        "Ray Charles",
        "Ray Parker Jr",
        "Ray Stevens",
        "Red Foley",
        "Red Hot Chili Peppers",
        "Red Velvet",
        "Regard",
        "Regina Belle",
        "Reik",
        "Rels B",
        "Rema",
        "Ricardo Arjona",
        "Rich The Kid",
        "Rick Astley",
        "Rick Dees & his Cast of Idiots",
        "Rick Ross",
        "Rick Springfield",
        "Ricky Martin",
        "Ricky Nelson",
        "Rihanna",
        "Rita Ora",
        "Ritchie Valens",
        "Rizky Febian",
        "Rob Thomas",
        "Roberta Flack",
        "Robin Schulz",
        "Robin Thicke",
        "Rod Stewart",
        "Rod Wave",
        "Roddy Ricch",
        "Roger Miller",
        "Romeo Santos",
        "Rosemary Clooney",
        "Roxette",
        "Roy Acuff",
        "Roy Orbison",
        "Rudimental",
        "Ruel",
        "Ruth B.",
        "Ryan Lewis",
        "SCH",
        "SEVENTEEN",
        "SWV",
        "Sabaton",
        "Sabrina Carpenter",
        "Sachet Tandon",
        "Sachin-Jigar",
        "Sade",
        "Sam Cooke",
        "Sam Feldt",
        "Sam Hunt",
        "Sam Smith",
        "Sam The Sham & The Pharaohs",
        "Sammy Davis Jr",
        "Sammy Kaye",
        "Santana",
        "Sasha Alex Sloan",
        "Savage Garden",
        "Saweetie",
        "Scorpions",
        "Sean Kingston",
        "Sean Paul",
        "Sebastian Yatra",
        "Sech",
        "Seeb",
        "Sezen Aksu",
        "Sfera Ebbasta",
        "Shaggy",
        "Shania Twain",
        "Shawn Mendes",
        "Sheena Easton",
        "Shinedown",
        "Shubh",
        "Sia",
        "Sid Sriram",
        "Sidhu Moose Wala",
        "Silk",
        "Silver Convention",
        "Simon & Garfunkel",
        "Sinead O'Connor",
        "Sir Mix-a-Lot",
        "Sister Sledge",
        "Ski Mask The Slump God",
        "Skillet",
        "Skrillex",
        "Sleeping At Last",
        "Smokey Robinson",
        "Snoop Dogg",
        "Snow Patrol",
        "Soda Stereo",
        "Sonu Nigam",
        "Sophie Ellis-Bextor",
        "Spencer Davis Group",
        "Spice Girls",
        "Stan Getz",
        "Starland Vocal Band",
        "Stephen Sanchez",
        "Steve Aoki",
        "Steve Lacy",
        "Steve Winwood",
        "Stevie B",
        "Sting",
        "Stormzy",
        "Strawberry Alarm Clock",
        "Stray Kids",
        "Stromae",
        "Sublime",
        "Sum 41",
        "Summer Walker",
        "Supertramp",
        "Survivor",
        "Swedish House Mafia",
        "System Of A Down",
        "T-Pain",
        "T.I.",
        "TAEYEON",
        "TKKG",
        "TLC",
        "TOMORROW X TOGETHER",
        "TOTO",
        "TWICE",
        "Tag Team",
        "Tainy",
        "Tammi Terrell",
        "Tanishk Bagchi",
        "Tate McRae",
        "Taylor Swift",
        "Tears For Fears",
        "Tems",
        "Tennessee Ernie Ford",
        "Terence Trent D'Arby",
        "Teresa Brewer",
        "Terry Jacks",
        "The Ames Brothers",
        "The Animals",
        "The B52s",
        "The Bangles",
        "The Beatles",
        "The Black Eyed Peas",
        "The Black Keys",
        "The Box Tops",
        "The Chainsmokers",
        "The Chiffons",
        "The Chordettes",
        "The Clash",
        "The Coasters",
        "The Commodores",
        "The Cowsills",
        "The Cranberries",
        "The Crew-Cuts",
        "The Cure",
        "The Detroit Spinners",
        "The Diamonds",
        "The Doobie Brothers",
        "The Doors",
        "The Drifters",
        "The Emotions",
        "The Eurythmics",
        "The Fireballs",
        "The Flamingos",
        "The Foundations",
        "The Four Seasons",
        "The Fray",
        "The Game",
        "The Go Gos",
        "The Goo Goo Dolls",
        "The Head And The Heart",
        "The Hollies",
        "The Ink Spots",
        "The Isley Brothers",
        "The Jackson 5",
        "The Kid LAROI",
        "The Killers",
        "The Kingston Trio",
        "The Kooks",
        "The Lemon Pipers",
        "The Living Tombstone",
        "The Lumineers",
        "The Mamas & The Papas",
        "The Marvelettes",
        "The McCoys",
        "The Mills Brothers",
        "The Miracles",
        "The Monkees",
        "The Moody Blues",
        "The National",
        "The Neighbourhood",
        "The Notorious B.I.G.",
        "The O'Jays",
        "The Offspring",
        "The Osmonds",
        "The Partridge Family",
        "The Penguins",
        "The Pet Shop Boys",
        "The Platters",
        "The Righteous Brothers",
        "The Rolling Stones",
        "The Ronettes",
        "The Score",
        "The Script",
        "The Seekers",
        "The Shangri-Las",
        "The Smashing Pumpkins",
        "The Staple Singers",
        "The Strokes",
        "The Supremes",
        "The Temptations",
        "The Turtles",
        "The Vamps",
        "The Verve",
        "The Village People",
        "The Weavers",
        "The White Stripes",
        "The Young Rascals",
        "The Zombies",
        "Thelma Houston",
        "Thomas Rhett",
        "Three Days Grace",
        "Three Dog Night",
        "Three Man Down",
        "Timbaland",
        "Timmy Trumpet",
        "Toby Keith",
        "Tom Jones",
        "Tom Petty and the Heartbreakers",
        "Tommy Dorsey",
        "Tommy Edwards",
        "Tommy James & the Shondells",
        "Tone Loc",
        "Toni Braxton",
        "Topic",
        "Tory Lanez",
        "Tove Lo",
        "Trevor Daniel",
        "Trey Songz",
        "Trippie Redd",
        "Trueno",
        "Tulsi Kumar",
        "Tulus",
        "Twenty One Pilots",
        "Two Feet",
        "Ty Dolla $ign",
        "Tyga",
        "Tyler Hubbard",
        "U2",
        "UB40",
        "UZI",
        "Ufo361",
        "Upchurch",
        "V",
        "Vampire Weekend",
        "Van McCoy",
        "Van Morrison",
        "Vance Joy",
        "Vanessa Carlton",
        "Vanessa Williams",
        "Vera Lynn",
        "Vernon Dalhart",
        "Vicente Fernandez",
        "Vishal-Shekhar",
        "Volbeat",
        "WILLOW",
        "Wale",
        "Wallows",
        "Weezer",
        "Wham!",
        "Whitney Houston",
        "Why Don't We",
        "Wilbert Harrison",
        "Wilson Phillips",
        "Wiz Khalifa",
        "Woody Guthrie",
        "Wyclef Jean",
        "XXXTENTACION",
        "Xavi",
        "YG",
        "YNW Melly",
        "YOASOBI",
        "Yandel",
        "Years & Years",
        "Yeat",
        "Yo Gotti",
        "Young Dolph",
        "Young Miko",
        "Young Thug",
        "YoungBoy Never Broke Again",
        "Yung Gravy",
        "Yuuri",
        "Yuvan Shankar Raja",
        "ZAYN",
        "ZZ Top",
        "Zac Brown Band",
        "Zach Bryan",
        "Zara Larsson",
        "aespa",
        "benny blanco",
        "blink-182",
        "d4vd",
        "deadmau5",
        "girl in red",
        "gnash",
        "iann dior",
        "will.i.am"
    ], uE = [
        "Acid House",
        "Acid Jazz",
        "Acid Rock",
        "Acoustic",
        "Acoustic Blues",
        "Afro-Pop",
        "Afrobeat",
        "Alt-Rock",
        "Alternative",
        "Ambient",
        "American Trad Rock",
        "Americana",
        "Anime",
        "Arena Rock",
        "Art-Rock",
        "Avant-Garde",
        "Avant-Punk",
        "Baladas y Boleros",
        "Barbershop",
        "Baroque",
        "Bebop",
        "Big Band",
        "Black Metal",
        "Blue Note",
        "Bluegrass",
        "Blues",
        "Boogaloo",
        "Bop",
        "Bossa Nova",
        "Bounce",
        "Brazilian Funk",
        "Breakbeat",
        "Britpop",
        "CCM",
        "Cajun",
        "Cantopop",
        "Celtic",
        "Celtic Folk",
        "Chamber Music",
        "Chant",
        "Chanukah",
        "Chicago Blues",
        "Chicago House",
        "Chicano",
        "Children’s Music",
        "Chill",
        "Choral",
        "Christian",
        "Christmas",
        "Classical",
        "Club",
        "College Rock",
        "Conjunto",
        "Cool Jazz",
        "Country",
        "Crunk",
        "Dance",
        "Dancehall",
        "Death Metal",
        "Deep House",
        "Delta Blues",
        "Detroit Techno",
        "Dirty South",
        "Disco",
        "Disney",
        "Dixieland",
        "Doo-wop",
        "Downtempo",
        "Dream Pop",
        "Drill",
        "Drinking Songs",
        "Drone",
        "Drum'n'bass",
        "Dub",
        "Dubstep",
        "EDM",
        "Early Music",
        "East Coast Rap",
        "Easter",
        "Easy Listening",
        "Eclectic",
        "Electric Blues",
        "Electro",
        "Electronic",
        "Electronica",
        "Emo",
        "Enka",
        "Environmental",
        "Ethio-jazz",
        "Experimental",
        "Experimental Rock",
        "Flamenco",
        "Folk",
        "Folk-Rock",
        "Forro",
        "French Pop",
        "Funk",
        "Fusion",
        "Gangsta Rap",
        "Garage",
        "German Folk",
        "German Pop",
        "Glam Rock",
        "Gospel",
        "Goth",
        "Grime",
        "Grindcore",
        "Groove",
        "Grunge",
        "Hair Metal",
        "Halloween",
        "Happy",
        "Hard Bop",
        "Hard Dance",
        "Hard Rock",
        "Hardcore",
        "Hardcore Punk",
        "Hardcore Rap",
        "Hardstyle",
        "Healing",
        "Heavy Metal",
        "High Classical",
        "Hip Hop",
        "Holiday",
        "Honky Tonk",
        "House",
        "IDM",
        "Impressionist",
        "Indie",
        "Industrial",
        "Instrumental",
        "J-Dance",
        "J-Idol",
        "J-Pop",
        "J-Punk",
        "J-Rock",
        "J-Ska",
        "J-Synth",
        "Jackin House",
        "Jam Bands",
        "Japanese Pop",
        "Jazz",
        "Jungle",
        "K-Pop",
        "Karaoke",
        "Kayokyoku",
        "Kids",
        "Kitsch",
        "Klezmer",
        "Krautrock",
        "Latin",
        "Latin Jazz",
        "Latin Rap",
        "Local",
        "Lounge",
        "Lullabies",
        "MPB",
        "Mainstream Jazz",
        "Malay",
        "Mandopop",
        "March",
        "Mariachi",
        "Mawwal",
        "Medieval",
        "Meditation",
        "Metal",
        "Metalcore",
        "Minimal Techno",
        "Minimalism",
        "Modern",
        "Motown",
        "Mugham",
        "Musicals",
        "Musique Concrète",
        "Nature",
        "Neo-Soul",
        "Nerdcore",
        "New Acoustic",
        "New Age",
        "New Mex",
        "New Wave",
        "No Wave",
        "Noise",
        "Nordic",
        "Novelty",
        "OPM",
        "Oi!",
        "Old School Rap",
        "Opera",
        "Orchestral",
        "Original Score",
        "Outlaw Country",
        "Pagode",
        "Party",
        "Piano",
        "Polka",
        "Pop",
        "Pop Film",
        "Pop Latino",
        "Post Dubstep",
        "Power Pop",
        "Praise & Worship",
        "Progressive House",
        "Progressive Rock",
        "Proto-punk",
        "Psych Rock",
        "Psychedelic",
        "Punk",
        "Punk Rock",
        "Qawwali",
        "Quiet Storm",
        "R&B",
        "Ragtime",
        "Rainy Day",
        "Rap",
        "Reggae",
        "Reggaeton",
        "Regional Mexicano",
        "Relaxation",
        "Renaissance",
        "Retro",
        "Rock",
        "Rockabilly",
        "Rocksteady",
        "Romance",
        "Romantic",
        "Roots Reggae",
        "Roots Rock",
        "SKA",
        "Sad",
        "Salsa",
        "Samba",
        "Second Line",
        "Sertanejo",
        "Shaabi",
        "Shoegaze",
        "Sleep",
        "Smooth Jazz",
        "Soft Rock",
        "Soul",
        "Soundtrack",
        "Southern Gospel",
        "Southern Rock",
        "Space Rock",
        "Stage And Screen",
        "Steampunk",
        "Summer",
        "Surf",
        "Swamp Pop",
        "Swing",
        "Synth Pop",
        "Tango",
        "Techno",
        "Teen Pop",
        "Tejano",
        "Tex-Mex",
        "Thanksgiving",
        "Traditional",
        "Trance",
        "Trip Hop",
        "Tropical",
        "Underground Rap",
        "Urban",
        "Urban Cowboy",
        "West Coast Rap",
        "Western Swing",
        "World",
        "Worldbeat",
        "Zydeco"
    ], cE = [
        "(Everything I Do) I Do it For You",
        "(Ghost) Riders in the Sky",
        "(I Can't Get No) Satisfaction",
        "(I've Got a Gal In) Kalamazoo",
        "(I've Had) the Time of My Life",
        "(It's No) Sin",
        "(Just Like) Starting Over",
        "(Let Me Be Your) Teddy Bear",
        "(Put Another Nickel In) Music! Music! Music!",
        "(Sexual) Healing",
        "(Sittin' On) the Dock of the Bay",
        "(They Long to Be) Close to You",
        "(You Keep Me) Hangin' On",
        "(You're My) Soul & Inspiration",
        "(Your Love Keeps Lifting Me) Higher & Higher",
        "12th Street Rag",
        "1999",
        "19th Nervous Breakdown",
        "50 Ways to Leave Your Lover",
        "9 to 5",
        "96 Tears",
        "A Boy Named Sue",
        "A Hard Day's Night",
        "A String of Pearls",
        "A Thousand Miles",
        "A Tree in the Meadow",
        "A Whiter Shade of Pale",
        "A Whole New World (Aladdin's Theme)",
        "A Woman in Love",
        "A-Tisket A-Tasket",
        "ABC",
        "Abracadabra",
        "Ac-cent-tchu-ate the Positive",
        "Addicted to Love",
        "After You've Gone",
        "Afternoon Delight",
        "Again",
        "Against All Odds (Take a Look At Me Now)",
        "Ain't Misbehavin'",
        "Ain't No Mountain High Enough",
        "Ain't No Sunshine",
        "Ain't That a Shame",
        "Airplanes",
        "All Along the Watchtower",
        "All I Have to Do is Dream",
        "All I Wanna Do",
        "All My Lovin' (You're Never Gonna Get It)",
        "All Night Long (All Night)",
        "All Out of Love",
        "All Shook Up",
        "All You Need is Love",
        "Alone",
        "Alone Again (Naturally)",
        "Always On My Mind",
        "American Pie",
        "American Woman",
        "Angie",
        "Another Brick in the Wall (part 2)",
        "Another Day in Paradise",
        "Another Night",
        "Another One Bites the Dust",
        "Apologize",
        "April Showers",
        "Aquarius/Let The Sunshine In",
        "Are You Lonesome Tonight?",
        "Arthur's Theme (Best That You Can Do)",
        "As Time Goes By",
        "At Last",
        "At the Hop",
        "Auf Wiederseh'n Sweetheart",
        "Baby Baby",
        "Baby Come Back",
        "Baby Got Back",
        "Baby Love",
        "Baby One More Time",
        "Bad Day",
        "Bad Girls",
        "Bad Moon Rising",
        "Bad Romance",
        "Bad, Bad Leroy Brown",
        "Baker Street",
        "Ball of Confusion (That's What the World is Today)",
        "Ballad of the Green Berets",
        "Ballerina",
        "Band On the Run",
        "Band of Gold",
        "Battle of New Orleans",
        "Be Bop a Lula",
        "Be My Baby",
        "Be My Love",
        "Beat It",
        "Beautiful Day",
        "Beauty & the Beast",
        "Because I Love You (The Postman Song)",
        "Because You Loved Me",
        "Because of You",
        "Before The Next Teardrop Falls",
        "Begin the Beguine",
        "Behind Closed Doors",
        "Being With You",
        "Believe",
        "Ben",
        "Bennie & the Jets",
        "Besame Mucho",
        "Best of My Love",
        "Bette Davis Eyes",
        "Big Bad John",
        "Big Girls Don't Cry",
        "Billie Jean",
        "Bitter Sweet Symphony",
        "Black Or White",
        "Black Velvet",
        "Blaze of Glory",
        "Bleeding Love",
        "Blue Suede Shoes",
        "Blue Tango",
        "Blueberry Hill",
        "Blurred Lines",
        "Body & Soul",
        "Bohemian Rhapsody",
        "Boogie Oogie Oogie",
        "Boogie Woogie Bugle Boy",
        "Boom Boom Pow",
        "Born in the USA",
        "Born to Be Wild",
        "Born to Run",
        "Boulevard of Broken Dreams",
        "Brand New Key",
        "Brandy (You're A Fine Girl)",
        "Breaking Up is Hard to Do",
        "Breathe",
        "Bridge Over Troubled Water",
        "Brother Louie",
        "Brother, Can You Spare a Dime?",
        "Brown Eyed Girl",
        "Brown Sugar",
        "Build Me Up Buttercup",
        "Burn",
        "Buttons & Bows",
        "Bye Bye Love",
        "Bye Bye, Blackbird",
        "Bye, Bye, Bye",
        "Caldonia Boogie (What Makes Your Big Head So Hard)",
        "California Dreamin'",
        "California Girls",
        "Call Me",
        "Call Me Maybe",
        "Can You Feel the Love Tonight",
        "Can't Buy Me Love",
        "Can't Get Enough of Your Love, Babe",
        "Can't Help Falling in Love",
        "Candle in the Wind '97",
        "Candy Man",
        "Car Wash",
        "Careless Whisper",
        "Cars",
        "Cat's in the Cradle",
        "Cathy's Clown",
        "Celebration",
        "Centerfold",
        "Chain of Fools",
        "Chances Are",
        "Change the World",
        "Chapel of Love",
        "Chattanooga Choo Choo",
        "Chattanoogie Shoe-Shine Boy",
        "Check On It",
        "Cheek to Cheek",
        "Cherish",
        "Cherry Pink & Apple Blossom White",
        "Cold, Cold Heart",
        "Colors of the Wind",
        "Come On Eileen",
        "Come On-a My House",
        "Come Together",
        "Coming Up",
        "Cracklin' Rosie",
        "Crazy",
        "Crazy For You",
        "Crazy Little Thing Called Love",
        "Crazy in Love",
        "Creep",
        "Crimson & Clover",
        "Crocodile Rock",
        "Cry",
        "Cry Like a Baby",
        "Crying",
        "Da Doo Ron Ron (When He Walked Me Home)",
        "Dance to the Music",
        "Dancing Queen",
        "Dancing in the Dark",
        "Dancing in the Street",
        "Dardanella",
        "Daydream Believer",
        "December 1963 (Oh What a Night)",
        "Delicado",
        "Dilemma",
        "Disco Duck",
        "Disco Lady",
        "Disturbia",
        "Dizzy",
        "Do That to Me One More Time",
        "Do Wah Diddy Diddy",
        "Do Ya Think I'm Sexy?",
        "Do You Love Me?",
        "Don't Be Cruel",
        "Don't Fence Me In",
        "Don't Go Breaking My Heart",
        "Don't Leave Me This Way",
        "Don't Let the Stars Get in Your Eyes",
        "Don't Let the Sun Go Down On Me",
        "Don't Speak",
        "Don't Stop 'Til You Get Enough",
        "Don't Worry Be Happy",
        "Don't You (Forget About Me)",
        "Don't You Want Me",
        "Doo Wop (That Thing)",
        "Down",
        "Down Hearted Blues",
        "Down Under",
        "Downtown",
        "Dreamlover",
        "Dreams",
        "Drop it Like It's Hot",
        "Drops of Jupiter (Tell Me)",
        "Duke of Earl",
        "E.T.",
        "Earth Angel",
        "Ebony & Ivory",
        "Eight Days a Week",
        "Empire State Of Mind",
        "End of the Road",
        "Endless Love",
        "Escape (The Pina Colada Song)",
        "Eve of Destruction",
        "Every Breath You Take",
        "Every Little Thing She Does is Magic",
        "Everybody Loves Somebody",
        "Everybody Wants to Rule the World",
        "Everyday People",
        "Eye of the Tiger",
        "Faith",
        "Fallin'",
        "Fame",
        "Family Affair",
        "Fantasy",
        "Fast Car",
        "Feel Good Inc",
        "Feel Like Making Love",
        "Fire & Rain",
        "Firework",
        "Flashdance. What a Feeling",
        "Fly Robin Fly",
        "Foolish Games",
        "Footloose",
        "For What It's Worth (Stop, Hey What's That Sound)",
        "Fortunate Son",
        "Frankenstein",
        "Freak Me",
        "Freebird",
        "Frenesi",
        "Funkytown",
        "Gangsta's Paradise",
        "Georgia On My Mind",
        "Georgy Girl",
        "Get Back",
        "Get Down Tonight",
        "Get Off of My Cloud",
        "Ghostbusters",
        "Gimme Some Lovin'",
        "Girls Just Wanna Have Fun",
        "Give Me Everything",
        "Gives You Hell",
        "Glamorous",
        "Glory of Love",
        "Go Your Own Way",
        "God Bless America",
        "God Bless the Child",
        "Gold Digger",
        "Gonna Make You Sweat (Everybody Dance Now)",
        "Good Lovin'",
        "Good Times",
        "Good Vibrations",
        "Goodbye Yellow Brick Road",
        "Goodnight, Irene",
        "Got to Give it Up",
        "Grease",
        "Great Balls of Fire",
        "Greatest Love of All",
        "Green Onions",
        "Green River",
        "Green Tambourine",
        "Grenade",
        "Groove is in the Heart",
        "Groovin'",
        "Gypsies, Tramps & Thieves",
        "Hair",
        "Hang On Sloopy",
        "Hanging by a Moment",
        "Hanky Panky",
        "Happy Days Are Here Again",
        "Happy Together",
        "Harbour Lights",
        "Hard to Say I'm Sorry",
        "Harper Valley PTA",
        "Have You Ever Really Loved a Woman?",
        "He'll Have to Go",
        "He's So Fine",
        "He's a Rebel",
        "Heart of Glass",
        "Heart of Gold",
        "Heartbreak Hotel",
        "Hello Dolly",
        "Hello, I Love You, Won't You Tell Me Your Name?",
        "Help Me, Rhonda",
        "Help!",
        "Here Without You",
        "Here in My Heart",
        "Hero",
        "Hey Baby",
        "Hey Jude",
        "Hey Paula",
        "Hey There",
        "Hey There Delilah",
        "Hey Ya!",
        "Higher Love",
        "Hips don't lie",
        "Hit the Road, Jack",
        "Hold On",
        "Hollaback Girl",
        "Honey",
        "Honky Tonk",
        "Honky Tonk Woman",
        "Horse With No Name",
        "Hot Child In The City",
        "Hot Stuff",
        "Hotel California",
        "Hound Dog",
        "House of the Rising Sun",
        "How Deep is Your Love?",
        "How Do I Live?",
        "How Do You Mend a Broken Heart",
        "How High the Moon",
        "How Much is That Doggy in the Window?",
        "How Will I Know",
        "How You Remind Me",
        "How to Save a Life",
        "Hungry Heart",
        "Hurt So Good",
        "I Believe I Can Fly",
        "I Can Dream, Can't I?",
        "I Can Help",
        "I Can See Clearly Now",
        "I Can't Get Next to You",
        "I Can't Get Started",
        "I Can't Go For That (No Can Do)",
        "I Can't Help Myself (Sugar Pie, Honey Bunch)",
        "I Can't Stop Loving You",
        "I Don't Want to Miss a Thing",
        "I Fall to Pieces",
        "I Feel Fine",
        "I Feel For You",
        "I Feel Love",
        "I Get Around",
        "I Got You (I Feel Good)",
        "I Got You Babe",
        "I Gotta Feeling",
        "I Heard it Through the Grapevine",
        "I Honestly Love You",
        "I Just Called to Say I Love You",
        "I Just Wanna Be Your Everything",
        "I Kissed A Girl",
        "I Love Rock 'n' Roll",
        "I Need You Now",
        "I Only Have Eyes For You",
        "I Shot the Sheriff",
        "I Still Haven't Found What I'm Looking For",
        "I Swear",
        "I Think I Love You",
        "I Walk the Line",
        "I Wanna Dance With Somebody (Who Loves Me)",
        "I Wanna Love You",
        "I Want You Back",
        "I Want to Hold Your Hand",
        "I Want to Know What Love Is",
        "I Went to Your Wedding",
        "I Will Always Love You",
        "I Will Follow Him",
        "I Will Survive",
        "I Write the Songs",
        "I'll Be Missing You",
        "I'll Be There",
        "I'll Make Love to You",
        "I'll Never Smile Again",
        "I'll Take You There",
        "I'll Walk Alone",
        "I'll be seeing you",
        "I'm Looking Over a Four Leaf Clover",
        "I'm So Lonesome I Could Cry",
        "I'm Sorry",
        "I'm Walking Behind You",
        "I'm Your Boogie Man",
        "I'm Yours",
        "I'm a Believer",
        "I've Heard That Song Before",
        "If (They Made Me a King)",
        "If I Didn't Care",
        "If You Don't Know Me By Now",
        "If You Leave Me Now",
        "Imagine",
        "In Da Club",
        "In the End",
        "In the Ghetto",
        "In the Mood",
        "In the Summertime",
        "In the Year 2525 (Exordium & Terminus)",
        "Incense & Peppermints",
        "Indian Reservation (The Lament Of The Cherokee Reservation Indian)",
        "Instant Karma",
        "Iris",
        "Ironic",
        "Irreplaceable",
        "It Had to Be You",
        "It's All in the Game",
        "It's My Party",
        "It's Now Or Never",
        "It's Still Rock 'n' Roll to Me",
        "It's Too Late",
        "Jack & Diane",
        "Jailhouse Rock",
        "Jessie's Girl",
        "Jive Talkin'",
        "Johnny B Goode",
        "Joy to the World",
        "Judy in Disguise (With Glasses)",
        "Jump",
        "Jumpin' Jack Flash",
        "Just Dance",
        "Just My Imagination (Running Away With Me)",
        "Just the Way You Are",
        "Kansas City",
        "Karma Chameleon",
        "Keep On Loving You",
        "Killing Me Softly With His Song",
        "King of the Road",
        "Kiss",
        "Kiss & Say Goodbye",
        "Kiss From a Rose",
        "Kiss Me",
        "Kiss On My List",
        "Kiss You All Over",
        "Knock On Wood",
        "Knock Three Times",
        "Kokomo",
        "Kryptonite",
        "Kung Fu Fighting",
        "La Bamba",
        "Lady",
        "Lady Marmalade (Voulez-Vous Coucher Aver Moi Ce Soir?)",
        "Last Train to Clarksville",
        "Layla",
        "Le Freak",
        "Leader of the Pack",
        "Lean On Me",
        "Leaving, on a Jet Plane",
        "Let Me Call You Sweetheart",
        "Let Me Love You",
        "Let it Be",
        "Let it Snow! Let it Snow! Let it Snow!",
        "Let's Dance",
        "Let's Get it On",
        "Let's Groove",
        "Let's Hear it For the Boy",
        "Let's Stay Together",
        "Light My Fire",
        "Lights",
        "Like a Prayer",
        "Like a Rolling Stone",
        "Like a Virgin",
        "Little Darlin'",
        "Little Things Mean a Lot",
        "Live & Let Die",
        "Livin' La Vida Loca",
        "Livin' On a Prayer",
        "Living For the City",
        "Locked Out Of Heaven",
        "Lola",
        "Lonely Boy",
        "Long Cool Woman in a Black Dress",
        "Long Tall Sally",
        "Look Away",
        "Lookin' Out My Back Door",
        "Lose Yourself",
        "Losing My Religion",
        "Louie Louie",
        "Love Child",
        "Love Hangover",
        "Love In This Club",
        "Love Is Blue (L'Amour Est Bleu)",
        "Love Letters in the Sand",
        "Love Me Do",
        "Love Me Tender",
        "Love Shack",
        "Love Theme From 'A Star is Born' (Evergreen)",
        "Love Train",
        "Love Will Keep Us Together",
        "Love is a Many Splendoured Thing",
        "Love to Love You Baby",
        "Love's Theme",
        "Loving You",
        "Low",
        "Macarena",
        "Mack the Knife",
        "Maggie May",
        "Magic",
        "Magic Carpet Ride",
        "Make Love to Me",
        "Make it With You",
        "Makin' Whoopee",
        "Mama Told Me Not to Come",
        "Man in the Mirror",
        "Manana (Is Soon Enough For Me)",
        "Maneater",
        "Maniac",
        "Maybellene",
        "Me & Bobby McGee",
        "Me & Mrs Jones",
        "Memories Are Made of This",
        "Mercy Mercy Me (The Ecology)",
        "Mickey",
        "Midnight Train to Georgia",
        "Minnie the Moocher",
        "Miss You",
        "Miss You Much",
        "Mister Sandman",
        "Mmmbop",
        "Mona Lisa",
        "Monday Monday",
        "Money For Nothing",
        "Mony Mony",
        "Mood Indigo",
        "Moonlight Cocktail",
        "Moonlight Serenade",
        "More Than Words",
        "More Than a Feeling",
        "Morning Train (Nine to Five)",
        "Mr Big Stuff",
        "Mr Brightside",
        "Mr Tambourine Man",
        "Mrs Brown You've Got a Lovely Daughter",
        "Mrs Robinson",
        "Mule Train",
        "Music",
        "My Blue Heaven",
        "My Boyfriend's Back",
        "My Eyes Adored You",
        "My Girl",
        "My Guy",
        "My Heart Will Go On",
        "My Life",
        "My Love",
        "My Man",
        "My Prayer",
        "My Sharona",
        "My Sweet Lord",
        "Na Na Hey Hey (Kiss Him Goodbye)",
        "Nature Boy",
        "Near You",
        "Need You Now",
        "Need You Tonight",
        "Never Gonna Give You Up",
        "Night & Day",
        "Night Fever",
        "Nights in White Satin",
        "No One",
        "No Scrubs",
        "Nobody Does it Better",
        "Nothin' on You",
        "Nothing Compares 2 U",
        "Nothing's Gonna Stop Us Now",
        "Ode To Billie Joe",
        "Oh Happy Day",
        "Oh My Papa (O Mein Papa)",
        "Oh, Pretty Woman",
        "Ol' Man River",
        "Ole Buttermilk Sky",
        "On Bended Knee",
        "On My Own",
        "On the Atchison, Topeka & the Santa Fe",
        "One",
        "One Bad Apple",
        "One More Try",
        "One O'Clock Jump",
        "One Sweet Day",
        "One of These Nights",
        "One of Us",
        "Only The Lonely (Know The Way I Feel)",
        "Only You (And You Alone)",
        "Open Arms",
        "Over There",
        "Over the Rainbow",
        "Paint it Black",
        "Papa Don't Preach",
        "Papa Was a Rolling Stone",
        "Papa's Got a Brand New Bag",
        "Paper Doll",
        "Paper Planes",
        "Paperback Writer",
        "Party Rock Anthem",
        "Peg o' My Heart",
        "Peggy Sue",
        "Pennies From Heaven",
        "Penny Lane",
        "People",
        "People Got to Be Free",
        "Personality",
        "Philadelphia Freedom",
        "Physical",
        "Piano Man",
        "Pick Up the Pieces",
        "Pistol Packin' Mama",
        "Play That Funky Music",
        "Please Mr Postman",
        "Poker Face",
        "Pon De Replay",
        "Pony Time",
        "Pop Muzik",
        "Prisoner of Love",
        "Private Eyes",
        "Promiscuous",
        "Proud Mary",
        "Purple Haze",
        "Purple Rain",
        "Puttin' on the Ritz",
        "Que sera sera (Whatever will be will be)",
        "Queen of Hearts",
        "Rag Doll",
        "Rag Mop",
        "Rags to Riches",
        "Raindrops Keep Falling On My Head",
        "Rapture",
        "Ray of Light",
        "Reach Out (I'll Be There)",
        "Red Red Wine",
        "Rehab",
        "Respect",
        "Return to Sender",
        "Reunited",
        "Revolution",
        "Rhapsody in Blue",
        "Rhinestone Cowboy",
        "Rich Girl",
        "Riders On the Storm",
        "Right Back Where We Started From",
        "Ring My Bell",
        "Ring of Fire",
        "Rock Around the Clock",
        "Rock With You",
        "Rock Your Baby",
        "Rock the Boat",
        "Rock the Casbah",
        "Roll Over Beethoven",
        "Roll With It",
        "Rolling In The Deep",
        "Rosanna",
        "Roses Are Red",
        "Royals",
        "Ruby Tuesday",
        "Rudolph, the Red-Nosed Reindeer",
        "Rum & Coca-Cola",
        "Runaround Sue",
        "Runaway",
        "Running Scared",
        "Rush Rush",
        "Sailing",
        "Save the Best For Last",
        "Save the Last Dance For Me",
        "Say It Right",
        "Say My Name",
        "Say Say Say",
        "Say You, Say Me",
        "School's Out",
        "Seasons in the Sun",
        "Secret Love",
        "Sentimental Journey",
        "Sexyback",
        "Sh-Boom (Life Could Be a Dream)",
        "Shadow Dancing",
        "Shake Down",
        "Shake You Down",
        "She Drives Me Crazy",
        "She Loves You",
        "She's a Lady",
        "Shining Star",
        "Shop Around",
        "Shout",
        "Silly Love Songs",
        "Since U Been Gone",
        "Sing, Sing, Sing (With A Swing)",
        "Singing The Blues",
        "Single Ladies (Put A Ring On It)",
        "Sir Duke",
        "Sixteen Tons",
        "Sledgehammer",
        "Sleep Walk",
        "Sleepy Lagoon",
        "Slow Poke",
        "Smells Like Teen Spirit",
        "Smoke Gets in Your Eyes",
        "Smoke On the Water",
        "Smoke! Smoke! Smoke! (That Cigarette)",
        "Smooth",
        "So Much in Love",
        "Soldier Boy",
        "Some Enchanted Evening",
        "Some of These Days",
        "Somebody That I Used to Know",
        "Somebody to Love",
        "Someday",
        "Somethin' Stupid",
        "Something",
        "Soul Man",
        "Spanish Harlem",
        "Spill the Wine",
        "Spinning Wheel",
        "Spirit in the Sky",
        "St George & the Dragonette",
        "St Louis Blues",
        "Stagger Lee",
        "Stairway to Heaven",
        "Stand By Me",
        "Stardust",
        "Stars & Stripes Forever",
        "Stay (I Missed You)",
        "Stayin' Alive",
        "Stop! in the Name of Love",
        "Stormy Weather (Keeps Rainin' All the Time)",
        "Straight Up",
        "Strange Fruit",
        "Stranger On the Shore",
        "Strangers in the Night",
        "Strawberry Fields Forever",
        "Streets of Philadelphia",
        "Stronger",
        "Stuck On You",
        "Sugar Shack",
        "Sugar Sugar",
        "Summer in the City",
        "Summertime Blues",
        "Sunday, Monday or Always",
        "Sunshine Superman",
        "Sunshine of Your Love",
        "Superstar",
        "Superstition",
        "Surfin' USA",
        "Suspicious Minds",
        "Swanee",
        "Sweet Caroline (Good Times Never Seemed So Good)",
        "Sweet Child O' Mine",
        "Sweet Dreams (Are Made of This)",
        "Sweet Georgia Brown",
        "Sweet Home Alabama",
        "Sweet Soul Music",
        "Swinging On a Star",
        "T For Texas (Blue Yodel No 1)",
        "TSOP (The Sound of Philadelphia)",
        "Take Me Home, Country Roads",
        "Take My Breath Away",
        "Take On Me",
        "Take The 'A' Train",
        "Take a Bow",
        "Tammy",
        "Tangerine",
        "Tears in Heaven",
        "Tears of a Clown",
        "Temperature",
        "Tennessee Waltz",
        "Tequila",
        "Tha Crossroads",
        "Thank You (Falettinme be Mice Elf Again)",
        "That Lucky Old Sun (Just Rolls Around Heaven All Day)",
        "That Old Black Magic",
        "That'll Be the Day",
        "That's Amore",
        "That's What Friends Are For",
        "That's the Way (I Like It)",
        "That's the Way Love Goes",
        "The Boy is Mine",
        "The Boys of Summer",
        "The Christmas Song (Chestnuts Roasting On An Open Fire)",
        "The End of the World",
        "The First Time Ever I Saw Your Face",
        "The Girl From Ipanema",
        "The Glow-Worm",
        "The Great Pretender",
        "The Gypsy",
        "The Hustle",
        "The Joker",
        "The Last Dance",
        "The Letter",
        "The Loco-Motion",
        "The Long & Winding Road",
        "The Love You Save",
        "The Morning After",
        "The Power of Love",
        "The Prisoner's Song",
        "The Reason",
        "The Rose",
        "The Sign",
        "The Song From Moulin Rouge (Where Is Your Heart)",
        "The Sounds of Silence",
        "The Streak",
        "The Sweet Escape",
        "The Thing",
        "The Tide is High",
        "The Tracks of My Tears",
        "The Twist",
        "The Wanderer",
        "The Way We Were",
        "The Way You Look Tonight",
        "The Way You Move",
        "Theme From 'A Summer Place'",
        "Theme From 'Greatest American Hero' (Believe It Or Not)",
        "Theme From 'Shaft'",
        "There goes my baby",
        "These Boots Are Made For Walking",
        "Third Man Theme",
        "This Diamond Ring",
        "This Guy's in Love With You",
        "This Land is Your Land",
        "This Love",
        "This Ole House",
        "This Used to Be My Playground",
        "Three Coins in the Fountain",
        "Three Times a Lady",
        "Thrift Shop",
        "Thriller",
        "Ticket to Ride",
        "Tie a Yellow Ribbon 'round the Old Oak Tree",
        "Tiger Rag",
        "Tighten Up",
        "Tik-Toc",
        "Till I Waltz Again With You",
        "Till The End of Time",
        "Time After Time",
        "Time of the Season",
        "To Sir, with Love",
        "Tom Dooley",
        "Tonight's the Night (Gonna Be Alright)",
        "Too Close",
        "Too Young",
        "Tossing & Turning",
        "Total Eclipse of the Heart",
        "Touch Me",
        "Toxic",
        "Travellin' Band",
        "Travellin' Man",
        "Truly Madly Deeply",
        "Turn! Turn! Turn! (To Everything There is a Season)",
        "Tutti Frutti",
        "Twist & Shout",
        "Two Hearts",
        "U Can't Touch This",
        "U Got it Bad",
        "Umbrella",
        "Un-Break My Heart",
        "Unbelievable",
        "Unchained Melody",
        "Uncle Albert (Admiral Halsey)",
        "Under the Boardwalk",
        "Under the Bridge",
        "Unforgettable",
        "Up Around the Bend",
        "Up Up & Away",
        "Up Where We Belong",
        "Upside Down",
        "Use Somebody",
        "Vaya Con Dios (may God Be With You)",
        "Venus",
        "Vision of Love",
        "Viva La Vida",
        "Vogue",
        "Volare",
        "Wabash Cannonball",
        "Waiting For a Girl Like You",
        "Wake Me Up Before You Go Go",
        "Wake Up Little Susie",
        "Walk Don't Run",
        "Walk Like a Man",
        "Walk Like an Egyptian",
        "Walk On By",
        "Walk On the Wild Side",
        "Walk This Way",
        "Wannabe",
        "Want Ads",
        "Wanted",
        "War",
        "Waterfalls",
        "Wayward Wind",
        "We Are Family",
        "We Are Young",
        "We Are the Champions",
        "We Are the World",
        "We Belong Together",
        "We Built This City",
        "We Can Work it Out",
        "We Didn't Start the Fire",
        "We Found Love",
        "We Got The Beat",
        "We Will Rock You",
        "We've Only Just Begun",
        "Weak",
        "Wedding Bell Blues",
        "West End Blues",
        "West End Girls",
        "What Goes Around Comes Around",
        "What a Fool Believes",
        "What'd I Say",
        "What's Going On?",
        "What's Love Got to Do With It?",
        "Whatcha Say",
        "Wheel of Fortune",
        "When Doves Cry",
        "When You Wish Upon a Star",
        "When a Man Loves a Woman",
        "Where Did Our Love Go",
        "Where is the Love?",
        "Whip It",
        "Whispering",
        "White Christmas",
        "White Rabbit",
        "Whole Lotta Love",
        "Whole Lotta Shakin' Goin' On",
        "Whoomp! (There it Is)",
        "Why Do Fools Fall in Love?",
        "Why Don't You Believe Me?",
        "Wichita Lineman",
        "Wicked Game",
        "Wild Thing",
        "Wild Wild West",
        "Will It Go Round In Circles",
        "Will You Love Me Tomorrow",
        "Winchester Cathedral",
        "Wind Beneath My Wings",
        "Wipe Out",
        "Wishing Well",
        "With Or Without You",
        "Without Me",
        "Without You",
        "Woman",
        "Won't Get Fooled Again",
        "Wooly Bully",
        "Working My Way Back to You",
        "YMCA",
        "Yakety Yak",
        "Yeah!",
        "Yellow Rose of Texas",
        "Yesterday",
        "You Ain't Seen Nothin' Yet",
        "You Always Hurt the One You Love",
        "You Are the Sunshine of My Life",
        "You Belong With Me",
        "You Belong to Me",
        "You Can't Hurry Love",
        "You Don't Bring Me Flowers",
        "You Don't Have to Be a Star (To Be in My Show)",
        "You Light Up My Life",
        "You Make Me Feel Brand New",
        "You Make Me Feel Like Dancing",
        "You Really Got Me",
        "You Send Me",
        "You Sexy Thing",
        "You Were Meant for Me",
        "You make Me Wanna",
        "You'll Never Know",
        "You're Beautiful",
        "You're So Vain",
        "You're Still the One",
        "You're the One That I Want",
        "You've Got a Friend",
        "You've Lost That Lovin' Feelin'",
        "Your Cheatin' Heart",
        "Your Song"
    ], dE = {
        album: sE,
        artist: lE,
        genre: uE,
        song_name: cE
    }, hE = dE, mE = [
        "activist",
        "artist",
        "author",
        "blogger",
        "business owner",
        "coach",
        "creator",
        "designer",
        "developer",
        "dreamer",
        "educator",
        "engineer",
        "entrepreneur",
        "environmentalist",
        "film lover",
        "filmmaker",
        "foodie",
        "founder",
        "friend",
        "gamer",
        "geek",
        "grad",
        "inventor",
        "leader",
        "model",
        "musician",
        "nerd",
        "parent",
        "patriot",
        "person",
        "philosopher",
        "photographer",
        "public speaker",
        "scientist",
        "singer",
        "streamer",
        "student",
        "teacher",
        "traveler",
        "veteran",
        "writer"
    ], fE = [
        "{{person.bio_part}}",
        "{{person.bio_part}}, {{person.bio_part}}",
        "{{person.bio_part}}, {{person.bio_part}}, {{person.bio_part}}",
        "{{person.bio_part}}, {{person.bio_part}}, {{person.bio_part}} {{internet.emoji}}",
        "{{word.noun}} {{person.bio_supporter}}",
        "{{word.noun}} {{person.bio_supporter}}  {{internet.emoji}}",
        "{{word.noun}} {{person.bio_supporter}}, {{person.bio_part}}",
        "{{word.noun}} {{person.bio_supporter}}, {{person.bio_part}} {{internet.emoji}}"
    ], pE = [
        "advocate",
        "devotee",
        "enthusiast",
        "fan",
        "junkie",
        "lover",
        "supporter"
    ], gE = {
        generic: [
            "Aaliyah",
            "Aaron",
            "Abagail",
            "Abbey",
            "Abbie",
            "Abbigail",
            "Abby",
            "Abdiel",
            "Abdul",
            "Abdullah",
            "Abe",
            "Abel",
            "Abelardo",
            "Abigail",
            "Abigale",
            "Abigayle",
            "Abner",
            "Abraham",
            "Ada",
            "Adah",
            "Adalberto",
            "Adaline",
            "Adam",
            "Adan",
            "Addie",
            "Addison",
            "Adela",
            "Adelbert",
            "Adele",
            "Adelia",
            "Adeline",
            "Adell",
            "Adella",
            "Adelle",
            "Aditya",
            "Adolf",
            "Adolfo",
            "Adolph",
            "Adolphus",
            "Adonis",
            "Adrain",
            "Adrian",
            "Adriana",
            "Adrianna",
            "Adriel",
            "Adrien",
            "Adrienne",
            "Afton",
            "Aglae",
            "Agnes",
            "Agustin",
            "Agustina",
            "Ahmad",
            "Ahmed",
            "Aida",
            "Aidan",
            "Aiden",
            "Aileen",
            "Aimee",
            "Aisha",
            "Aiyana",
            "Akeem",
            "Al",
            "Alaina",
            "Alan",
            "Alana",
            "Alanis",
            "Alanna",
            "Alayna",
            "Alba",
            "Albert",
            "Alberta",
            "Albertha",
            "Alberto",
            "Albin",
            "Albina",
            "Alda",
            "Alden",
            "Alec",
            "Aleen",
            "Alejandra",
            "Alejandrin",
            "Alek",
            "Alena",
            "Alene",
            "Alessandra",
            "Alessandro",
            "Alessia",
            "Aletha",
            "Alex",
            "Alexa",
            "Alexander",
            "Alexandra",
            "Alexandre",
            "Alexandrea",
            "Alexandria",
            "Alexandrine",
            "Alexandro",
            "Alexane",
            "Alexanne",
            "Alexie",
            "Alexis",
            "Alexys",
            "Alexzander",
            "Alf",
            "Alfonso",
            "Alfonzo",
            "Alford",
            "Alfred",
            "Alfreda",
            "Alfredo",
            "Ali",
            "Alia",
            "Alice",
            "Alicia",
            "Alisa",
            "Alisha",
            "Alison",
            "Alivia",
            "Aliya",
            "Aliyah",
            "Aliza",
            "Alize",
            "Allan",
            "Allen",
            "Allene",
            "Allie",
            "Allison",
            "Ally",
            "Alphonso",
            "Alta",
            "Althea",
            "Alva",
            "Alvah",
            "Alvena",
            "Alvera",
            "Alverta",
            "Alvina",
            "Alvis",
            "Alyce",
            "Alycia",
            "Alysa",
            "Alysha",
            "Alyson",
            "Alysson",
            "Amalia",
            "Amanda",
            "Amani",
            "Amara",
            "Amari",
            "Amaya",
            "Amber",
            "Ambrose",
            "Amelia",
            "Amelie",
            "Amely",
            "America",
            "Americo",
            "Amie",
            "Amina",
            "Amir",
            "Amira",
            "Amiya",
            "Amos",
            "Amparo",
            "Amy",
            "Amya",
            "Ana",
            "Anabel",
            "Anabelle",
            "Anahi",
            "Anais",
            "Anastacio",
            "Anastasia",
            "Anderson",
            "Andre",
            "Andreane",
            "Andreanne",
            "Andres",
            "Andrew",
            "Andy",
            "Angel",
            "Angela",
            "Angelica",
            "Angelina",
            "Angeline",
            "Angelita",
            "Angelo",
            "Angie",
            "Angus",
            "Anibal",
            "Anika",
            "Anissa",
            "Anita",
            "Aniya",
            "Aniyah",
            "Anjali",
            "Anna",
            "Annabel",
            "Annabell",
            "Annabelle",
            "Annalise",
            "Annamae",
            "Annamarie",
            "Anne",
            "Annetta",
            "Annette",
            "Annie",
            "Ansel",
            "Ansley",
            "Anthony",
            "Antoinette",
            "Antone",
            "Antonetta",
            "Antonette",
            "Antonia",
            "Antonietta",
            "Antonina",
            "Antonio",
            "Antwan",
            "Antwon",
            "Anya",
            "April",
            "Ara",
            "Araceli",
            "Aracely",
            "Arch",
            "Archibald",
            "Ardella",
            "Arden",
            "Ardith",
            "Arely",
            "Ari",
            "Ariane",
            "Arianna",
            "Aric",
            "Ariel",
            "Arielle",
            "Arjun",
            "Arlene",
            "Arlie",
            "Arlo",
            "Armand",
            "Armando",
            "Armani",
            "Arnaldo",
            "Arne",
            "Arno",
            "Arnold",
            "Arnoldo",
            "Arnulfo",
            "Aron",
            "Art",
            "Arthur",
            "Arturo",
            "Arvel",
            "Arvid",
            "Arvilla",
            "Aryanna",
            "Asa",
            "Asha",
            "Ashlee",
            "Ashleigh",
            "Ashley",
            "Ashly",
            "Ashlynn",
            "Ashton",
            "Ashtyn",
            "Asia",
            "Assunta",
            "Astrid",
            "Athena",
            "Aubree",
            "Aubrey",
            "Audie",
            "Audra",
            "Audreanne",
            "Audrey",
            "August",
            "Augusta",
            "Augustine",
            "Augustus",
            "Aurelia",
            "Aurelie",
            "Aurelio",
            "Aurore",
            "Austen",
            "Austin",
            "Austyn",
            "Autumn",
            "Ava",
            "Avery",
            "Avis",
            "Axel",
            "Ayana",
            "Ayden",
            "Ayla",
            "Aylin",
            "Baby",
            "Bailee",
            "Bailey",
            "Barbara",
            "Barney",
            "Baron",
            "Barrett",
            "Barry",
            "Bart",
            "Bartholome",
            "Barton",
            "Baylee",
            "Beatrice",
            "Beau",
            "Beaulah",
            "Bell",
            "Bella",
            "Belle",
            "Ben",
            "Benedict",
            "Benjamin",
            "Bennett",
            "Bennie",
            "Benny",
            "Benton",
            "Berenice",
            "Bernadette",
            "Bernadine",
            "Bernard",
            "Bernardo",
            "Berneice",
            "Bernhard",
            "Bernice",
            "Bernie",
            "Berniece",
            "Bernita",
            "Berry",
            "Bert",
            "Berta",
            "Bertha",
            "Bertram",
            "Bertrand",
            "Beryl",
            "Bessie",
            "Beth",
            "Bethany",
            "Bethel",
            "Betsy",
            "Bette",
            "Bettie",
            "Betty",
            "Bettye",
            "Beulah",
            "Beverly",
            "Bianka",
            "Bill",
            "Billie",
            "Billy",
            "Birdie",
            "Blair",
            "Blaise",
            "Blake",
            "Blanca",
            "Blanche",
            "Blaze",
            "Bo",
            "Bobbie",
            "Bobby",
            "Bonita",
            "Bonnie",
            "Boris",
            "Boyd",
            "Brad",
            "Braden",
            "Bradford",
            "Bradley",
            "Bradly",
            "Brady",
            "Braeden",
            "Brain",
            "Brandi",
            "Brando",
            "Brandon",
            "Brandt",
            "Brandy",
            "Brandyn",
            "Brannon",
            "Branson",
            "Brant",
            "Braulio",
            "Braxton",
            "Brayan",
            "Breana",
            "Breanna",
            "Breanne",
            "Brenda",
            "Brendan",
            "Brenden",
            "Brendon",
            "Brenna",
            "Brennan",
            "Brennon",
            "Brent",
            "Bret",
            "Brett",
            "Bria",
            "Brian",
            "Briana",
            "Brianne",
            "Brice",
            "Bridget",
            "Bridgette",
            "Bridie",
            "Brielle",
            "Brigitte",
            "Brionna",
            "Brisa",
            "Britney",
            "Brittany",
            "Brock",
            "Broderick",
            "Brody",
            "Brook",
            "Brooke",
            "Brooklyn",
            "Brooks",
            "Brown",
            "Bruce",
            "Bryana",
            "Bryce",
            "Brycen",
            "Bryon",
            "Buck",
            "Bud",
            "Buddy",
            "Buford",
            "Bulah",
            "Burdette",
            "Burley",
            "Burnice",
            "Buster",
            "Cade",
            "Caden",
            "Caesar",
            "Caitlyn",
            "Cale",
            "Caleb",
            "Caleigh",
            "Cali",
            "Calista",
            "Callie",
            "Camden",
            "Cameron",
            "Camila",
            "Camilla",
            "Camille",
            "Camren",
            "Camron",
            "Camryn",
            "Camylle",
            "Candace",
            "Candelario",
            "Candice",
            "Candida",
            "Candido",
            "Cara",
            "Carey",
            "Carissa",
            "Carlee",
            "Carleton",
            "Carley",
            "Carli",
            "Carlie",
            "Carlo",
            "Carlos",
            "Carlotta",
            "Carmel",
            "Carmela",
            "Carmella",
            "Carmelo",
            "Carmen",
            "Carmine",
            "Carol",
            "Carolanne",
            "Carole",
            "Carolina",
            "Caroline",
            "Carolyn",
            "Carolyne",
            "Carrie",
            "Carroll",
            "Carson",
            "Carter",
            "Cary",
            "Casandra",
            "Casey",
            "Casimer",
            "Casimir",
            "Casper",
            "Cassandra",
            "Cassandre",
            "Cassidy",
            "Cassie",
            "Catalina",
            "Caterina",
            "Catharine",
            "Catherine",
            "Cathrine",
            "Cathryn",
            "Cathy",
            "Cayla",
            "Ceasar",
            "Cecelia",
            "Cecil",
            "Cecile",
            "Cecilia",
            "Cedrick",
            "Celestine",
            "Celestino",
            "Celia",
            "Celine",
            "Cesar",
            "Chad",
            "Chadd",
            "Chadrick",
            "Chaim",
            "Chance",
            "Chandler",
            "Chanel",
            "Chanelle",
            "Charity",
            "Charlene",
            "Charles",
            "Charley",
            "Charlie",
            "Charlotte",
            "Chase",
            "Chasity",
            "Chauncey",
            "Chaya",
            "Chaz",
            "Chelsea",
            "Chelsey",
            "Chelsie",
            "Chesley",
            "Chester",
            "Chet",
            "Cheyanne",
            "Cheyenne",
            "Chloe",
            "Chris",
            "Christ",
            "Christa",
            "Christelle",
            "Christian",
            "Christiana",
            "Christina",
            "Christine",
            "Christop",
            "Christophe",
            "Christopher",
            "Christy",
            "Chyna",
            "Ciara",
            "Cicero",
            "Cielo",
            "Cierra",
            "Cindy",
            "Citlalli",
            "Clair",
            "Claire",
            "Clara",
            "Clarabelle",
            "Clare",
            "Clarissa",
            "Clark",
            "Claud",
            "Claude",
            "Claudia",
            "Claudie",
            "Claudine",
            "Clay",
            "Clemens",
            "Clement",
            "Clementina",
            "Clementine",
            "Clemmie",
            "Cleo",
            "Cleora",
            "Cleta",
            "Cletus",
            "Cleve",
            "Cleveland",
            "Clifford",
            "Clifton",
            "Clint",
            "Clinton",
            "Clotilde",
            "Clovis",
            "Cloyd",
            "Clyde",
            "Coby",
            "Cody",
            "Colby",
            "Cole",
            "Coleman",
            "Colin",
            "Colleen",
            "Collin",
            "Colt",
            "Colten",
            "Colton",
            "Columbus",
            "Concepcion",
            "Conner",
            "Connie",
            "Connor",
            "Conor",
            "Conrad",
            "Constance",
            "Constantin",
            "Consuelo",
            "Cooper",
            "Cora",
            "Coralie",
            "Corbin",
            "Cordelia",
            "Cordell",
            "Cordia",
            "Cordie",
            "Corene",
            "Corine",
            "Cornelius",
            "Cornell",
            "Corrine",
            "Cortez",
            "Cortney",
            "Cory",
            "Coty",
            "Courtney",
            "Coy",
            "Craig",
            "Crawford",
            "Creola",
            "Cristal",
            "Cristian",
            "Cristina",
            "Cristobal",
            "Cristopher",
            "Cruz",
            "Crystal",
            "Crystel",
            "Cullen",
            "Curt",
            "Curtis",
            "Cydney",
            "Cynthia",
            "Cyril",
            "Cyrus",
            "D'angelo",
            "Dagmar",
            "Dahlia",
            "Daija",
            "Daisha",
            "Daisy",
            "Dakota",
            "Dale",
            "Dallas",
            "Dallin",
            "Dalton",
            "Damaris",
            "Dameon",
            "Damian",
            "Damien",
            "Damion",
            "Damon",
            "Dan",
            "Dana",
            "Dandre",
            "Dane",
            "Dangelo",
            "Danial",
            "Daniela",
            "Daniella",
            "Danielle",
            "Danika",
            "Dannie",
            "Danny",
            "Dante",
            "Danyka",
            "Daphne",
            "Daphnee",
            "Daphney",
            "Darby",
            "Daren",
            "Darian",
            "Dariana",
            "Darien",
            "Dario",
            "Darion",
            "Darius",
            "Darlene",
            "Daron",
            "Darrel",
            "Darrell",
            "Darren",
            "Darrick",
            "Darrin",
            "Darrion",
            "Darron",
            "Darryl",
            "Darwin",
            "Daryl",
            "Dashawn",
            "Dasia",
            "Dave",
            "David",
            "Davin",
            "Davion",
            "Davon",
            "Davonte",
            "Dawn",
            "Dawson",
            "Dax",
            "Dayana",
            "Dayna",
            "Dayne",
            "Dayton",
            "Dean",
            "Deangelo",
            "Deanna",
            "Deborah",
            "Declan",
            "Dedric",
            "Dedrick",
            "Dee",
            "Deion",
            "Deja",
            "Dejah",
            "Dejon",
            "Dejuan",
            "Delaney",
            "Delbert",
            "Delfina",
            "Delia",
            "Delilah",
            "Dell",
            "Della",
            "Delmer",
            "Delores",
            "Delpha",
            "Delphia",
            "Delphine",
            "Delta",
            "Demarco",
            "Demarcus",
            "Demario",
            "Demetris",
            "Demetrius",
            "Demond",
            "Dena",
            "Denis",
            "Dennis",
            "Deon",
            "Deondre",
            "Deontae",
            "Deonte",
            "Dereck",
            "Derek",
            "Derick",
            "Deron",
            "Derrick",
            "Deshaun",
            "Deshawn",
            "Desiree",
            "Desmond",
            "Dessie",
            "Destany",
            "Destin",
            "Destinee",
            "Destiney",
            "Destini",
            "Destiny",
            "Devan",
            "Devante",
            "Deven",
            "Devin",
            "Devon",
            "Devonte",
            "Devyn",
            "Dewayne",
            "Dewitt",
            "Dexter",
            "Diamond",
            "Diana",
            "Dianna",
            "Diego",
            "Dillan",
            "Dillon",
            "Dimitri",
            "Dina",
            "Dino",
            "Dion",
            "Dixie",
            "Dock",
            "Dolly",
            "Dolores",
            "Domenic",
            "Domenica",
            "Domenick",
            "Domenico",
            "Domingo",
            "Dominic",
            "Dominique",
            "Don",
            "Donald",
            "Donato",
            "Donavon",
            "Donna",
            "Donnell",
            "Donnie",
            "Donny",
            "Dora",
            "Dorcas",
            "Dorian",
            "Doris",
            "Dorothea",
            "Dorothy",
            "Dorris",
            "Dortha",
            "Dorthy",
            "Doug",
            "Douglas",
            "Dovie",
            "Doyle",
            "Drake",
            "Drew",
            "Duane",
            "Dudley",
            "Dulce",
            "Duncan",
            "Durward",
            "Dustin",
            "Dusty",
            "Dwight",
            "Dylan",
            "Earl",
            "Earlene",
            "Earline",
            "Earnest",
            "Earnestine",
            "Easter",
            "Easton",
            "Ebba",
            "Ebony",
            "Ed",
            "Eda",
            "Edd",
            "Eddie",
            "Eden",
            "Edgar",
            "Edgardo",
            "Edison",
            "Edmond",
            "Edmund",
            "Edna",
            "Eduardo",
            "Edward",
            "Edwardo",
            "Edwin",
            "Edwina",
            "Edyth",
            "Edythe",
            "Effie",
            "Efrain",
            "Efren",
            "Eileen",
            "Einar",
            "Eino",
            "Eladio",
            "Elaina",
            "Elbert",
            "Elda",
            "Eldon",
            "Eldora",
            "Eldred",
            "Eldridge",
            "Eleanora",
            "Eleanore",
            "Eleazar",
            "Electa",
            "Elena",
            "Elenor",
            "Elenora",
            "Eleonore",
            "Elfrieda",
            "Eli",
            "Elian",
            "Eliane",
            "Elias",
            "Eliezer",
            "Elijah",
            "Elinor",
            "Elinore",
            "Elisa",
            "Elisabeth",
            "Elise",
            "Eliseo",
            "Elisha",
            "Elissa",
            "Eliza",
            "Elizabeth",
            "Ella",
            "Ellen",
            "Ellie",
            "Elliot",
            "Elliott",
            "Ellis",
            "Ellsworth",
            "Elmer",
            "Elmira",
            "Elmo",
            "Elmore",
            "Elna",
            "Elnora",
            "Elody",
            "Eloisa",
            "Eloise",
            "Elouise",
            "Eloy",
            "Elroy",
            "Elsa",
            "Else",
            "Elsie",
            "Elta",
            "Elton",
            "Elva",
            "Elvera",
            "Elvie",
            "Elvis",
            "Elwin",
            "Elwyn",
            "Elyse",
            "Elyssa",
            "Elza",
            "Emanuel",
            "Emelia",
            "Emelie",
            "Emely",
            "Emerald",
            "Emerson",
            "Emery",
            "Emie",
            "Emil",
            "Emile",
            "Emilia",
            "Emiliano",
            "Emilie",
            "Emilio",
            "Emily",
            "Emma",
            "Emmalee",
            "Emmanuel",
            "Emmanuelle",
            "Emmet",
            "Emmett",
            "Emmie",
            "Emmitt",
            "Emmy",
            "Emory",
            "Ena",
            "Enid",
            "Enoch",
            "Enola",
            "Enos",
            "Enrico",
            "Enrique",
            "Ephraim",
            "Era",
            "Eriberto",
            "Eric",
            "Erica",
            "Erich",
            "Erick",
            "Ericka",
            "Erik",
            "Erika",
            "Erin",
            "Erling",
            "Erna",
            "Ernest",
            "Ernestina",
            "Ernestine",
            "Ernesto",
            "Ernie",
            "Ervin",
            "Erwin",
            "Eryn",
            "Esmeralda",
            "Esperanza",
            "Esta",
            "Esteban",
            "Estefania",
            "Estel",
            "Estell",
            "Estella",
            "Estelle",
            "Estevan",
            "Esther",
            "Estrella",
            "Etha",
            "Ethan",
            "Ethel",
            "Ethelyn",
            "Ethyl",
            "Ettie",
            "Eudora",
            "Eugene",
            "Eugenia",
            "Eula",
            "Eulah",
            "Eulalia",
            "Euna",
            "Eunice",
            "Eusebio",
            "Eva",
            "Evalyn",
            "Evan",
            "Evangeline",
            "Evans",
            "Eve",
            "Eveline",
            "Evelyn",
            "Everardo",
            "Everett",
            "Everette",
            "Evert",
            "Evie",
            "Ewald",
            "Ewell",
            "Ezekiel",
            "Ezequiel",
            "Ezra",
            "Fabian",
            "Fabiola",
            "Fae",
            "Fannie",
            "Fanny",
            "Fatima",
            "Faustino",
            "Fausto",
            "Favian",
            "Fay",
            "Faye",
            "Federico",
            "Felicia",
            "Felicita",
            "Felicity",
            "Felipa",
            "Felipe",
            "Felix",
            "Felton",
            "Fermin",
            "Fern",
            "Fernando",
            "Ferne",
            "Fidel",
            "Filiberto",
            "Filomena",
            "Finn",
            "Fiona",
            "Flavie",
            "Flavio",
            "Fleta",
            "Fletcher",
            "Flo",
            "Florence",
            "Florencio",
            "Florian",
            "Florida",
            "Florine",
            "Flossie",
            "Floy",
            "Floyd",
            "Ford",
            "Forest",
            "Forrest",
            "Foster",
            "Frances",
            "Francesca",
            "Francesco",
            "Francis",
            "Francisca",
            "Francisco",
            "Franco",
            "Frank",
            "Frankie",
            "Franz",
            "Fred",
            "Freda",
            "Freddie",
            "Freddy",
            "Frederic",
            "Frederick",
            "Frederik",
            "Frederique",
            "Fredrick",
            "Fredy",
            "Freeda",
            "Freeman",
            "Freida",
            "Frida",
            "Frieda",
            "Friedrich",
            "Fritz",
            "Furman",
            "Gabe",
            "Gabriel",
            "Gabriella",
            "Gabrielle",
            "Gaetano",
            "Gage",
            "Gail",
            "Gardner",
            "Garett",
            "Garfield",
            "Garland",
            "Garnet",
            "Garnett",
            "Garret",
            "Garrett",
            "Garrick",
            "Garrison",
            "Garry",
            "Garth",
            "Gaston",
            "Gavin",
            "Gayle",
            "Gene",
            "General",
            "Genesis",
            "Genevieve",
            "Gennaro",
            "Genoveva",
            "Geo",
            "Geoffrey",
            "George",
            "Georgette",
            "Georgiana",
            "Georgianna",
            "Geovanni",
            "Geovanny",
            "Geovany",
            "Gerald",
            "Geraldine",
            "Gerard",
            "Gerardo",
            "Gerda",
            "Gerhard",
            "Germaine",
            "German",
            "Gerry",
            "Gerson",
            "Gertrude",
            "Gia",
            "Gianni",
            "Gideon",
            "Gilbert",
            "Gilberto",
            "Gilda",
            "Giles",
            "Gillian",
            "Gina",
            "Gino",
            "Giovani",
            "Giovanna",
            "Giovanni",
            "Giovanny",
            "Gisselle",
            "Giuseppe",
            "Gladyce",
            "Gladys",
            "Glen",
            "Glenda",
            "Glenna",
            "Glennie",
            "Gloria",
            "Godfrey",
            "Golda",
            "Golden",
            "Gonzalo",
            "Gordon",
            "Grace",
            "Gracie",
            "Graciela",
            "Grady",
            "Graham",
            "Grant",
            "Granville",
            "Grayce",
            "Grayson",
            "Green",
            "Greg",
            "Gregg",
            "Gregoria",
            "Gregorio",
            "Gregory",
            "Greta",
            "Gretchen",
            "Greyson",
            "Griffin",
            "Grover",
            "Guadalupe",
            "Gudrun",
            "Guido",
            "Guillermo",
            "Guiseppe",
            "Gunnar",
            "Gunner",
            "Gus",
            "Gussie",
            "Gust",
            "Gustave",
            "Guy",
            "Gwen",
            "Gwendolyn",
            "Hadley",
            "Hailee",
            "Hailey",
            "Hailie",
            "Hal",
            "Haleigh",
            "Haley",
            "Halie",
            "Halle",
            "Hallie",
            "Hank",
            "Hanna",
            "Hannah",
            "Hans",
            "Hardy",
            "Harley",
            "Harmon",
            "Harmony",
            "Harold",
            "Harrison",
            "Harry",
            "Harvey",
            "Haskell",
            "Hassan",
            "Hassie",
            "Hattie",
            "Haven",
            "Hayden",
            "Haylee",
            "Hayley",
            "Haylie",
            "Hazel",
            "Hazle",
            "Heath",
            "Heather",
            "Heaven",
            "Heber",
            "Hector",
            "Heidi",
            "Helen",
            "Helena",
            "Helene",
            "Helga",
            "Hellen",
            "Helmer",
            "Heloise",
            "Henderson",
            "Henri",
            "Henriette",
            "Henry",
            "Herbert",
            "Herman",
            "Hermann",
            "Hermina",
            "Herminia",
            "Herminio",
            "Hershel",
            "Herta",
            "Hertha",
            "Hester",
            "Hettie",
            "Hilario",
            "Hilbert",
            "Hilda",
            "Hildegard",
            "Hillard",
            "Hillary",
            "Hilma",
            "Hilton",
            "Hipolito",
            "Hiram",
            "Hobart",
            "Holden",
            "Hollie",
            "Hollis",
            "Holly",
            "Hope",
            "Horace",
            "Horacio",
            "Hortense",
            "Hosea",
            "Houston",
            "Howard",
            "Howell",
            "Hoyt",
            "Hubert",
            "Hudson",
            "Hugh",
            "Hulda",
            "Humberto",
            "Hunter",
            "Hyman",
            "Ian",
            "Ibrahim",
            "Icie",
            "Ida",
            "Idell",
            "Idella",
            "Ignacio",
            "Ignatius",
            "Ike",
            "Ila",
            "Ilene",
            "Iliana",
            "Ima",
            "Imani",
            "Imelda",
            "Immanuel",
            "Imogene",
            "Ines",
            "Irma",
            "Irving",
            "Irwin",
            "Isaac",
            "Isabel",
            "Isabell",
            "Isabella",
            "Isabelle",
            "Isac",
            "Isadore",
            "Isai",
            "Isaiah",
            "Isaias",
            "Isidro",
            "Ismael",
            "Isobel",
            "Isom",
            "Israel",
            "Issac",
            "Itzel",
            "Iva",
            "Ivah",
            "Ivory",
            "Ivy",
            "Izabella",
            "Izaiah",
            "Jabari",
            "Jace",
            "Jacey",
            "Jacinthe",
            "Jacinto",
            "Jack",
            "Jackeline",
            "Jackie",
            "Jacklyn",
            "Jackson",
            "Jacky",
            "Jaclyn",
            "Jacquelyn",
            "Jacques",
            "Jacynthe",
            "Jada",
            "Jade",
            "Jaden",
            "Jadon",
            "Jadyn",
            "Jaeden",
            "Jaida",
            "Jaiden",
            "Jailyn",
            "Jaime",
            "Jairo",
            "Jakayla",
            "Jake",
            "Jakob",
            "Jaleel",
            "Jalen",
            "Jalon",
            "Jalyn",
            "Jamaal",
            "Jamal",
            "Jamar",
            "Jamarcus",
            "Jamel",
            "Jameson",
            "Jamey",
            "Jamie",
            "Jamil",
            "Jamir",
            "Jamison",
            "Jammie",
            "Jan",
            "Jana",
            "Janae",
            "Jane",
            "Janelle",
            "Janessa",
            "Janet",
            "Janice",
            "Janick",
            "Janie",
            "Janis",
            "Janiya",
            "Jannie",
            "Jany",
            "Jaquan",
            "Jaquelin",
            "Jaqueline",
            "Jared",
            "Jaren",
            "Jarod",
            "Jaron",
            "Jarred",
            "Jarrell",
            "Jarret",
            "Jarrett",
            "Jarrod",
            "Jarvis",
            "Jasen",
            "Jasmin",
            "Jason",
            "Jasper",
            "Jaunita",
            "Javier",
            "Javon",
            "Javonte",
            "Jay",
            "Jayce",
            "Jaycee",
            "Jayda",
            "Jayde",
            "Jayden",
            "Jaydon",
            "Jaylan",
            "Jaylen",
            "Jaylin",
            "Jaylon",
            "Jayme",
            "Jayne",
            "Jayson",
            "Jazlyn",
            "Jazmin",
            "Jazmyn",
            "Jazmyne",
            "Jean",
            "Jeanette",
            "Jeanie",
            "Jeanne",
            "Jed",
            "Jedediah",
            "Jedidiah",
            "Jeff",
            "Jefferey",
            "Jeffery",
            "Jeffrey",
            "Jeffry",
            "Jena",
            "Jenifer",
            "Jennie",
            "Jennifer",
            "Jennings",
            "Jennyfer",
            "Jensen",
            "Jerad",
            "Jerald",
            "Jeramie",
            "Jeramy",
            "Jerel",
            "Jeremie",
            "Jeremy",
            "Jermain",
            "Jermaine",
            "Jermey",
            "Jerod",
            "Jerome",
            "Jeromy",
            "Jerrell",
            "Jerrod",
            "Jerrold",
            "Jerry",
            "Jess",
            "Jesse",
            "Jessica",
            "Jessie",
            "Jessika",
            "Jessy",
            "Jessyca",
            "Jesus",
            "Jett",
            "Jettie",
            "Jevon",
            "Jewel",
            "Jewell",
            "Jillian",
            "Jimmie",
            "Jimmy",
            "Jo",
            "Joan",
            "Joana",
            "Joanie",
            "Joanne",
            "Joannie",
            "Joanny",
            "Joany",
            "Joaquin",
            "Jocelyn",
            "Jodie",
            "Jody",
            "Joe",
            "Joel",
            "Joelle",
            "Joesph",
            "Joey",
            "Johan",
            "Johann",
            "Johanna",
            "Johathan",
            "John",
            "Johnathan",
            "Johnathon",
            "Johnnie",
            "Johnny",
            "Johnpaul",
            "Johnson",
            "Jolie",
            "Jon",
            "Jonas",
            "Jonatan",
            "Jonathan",
            "Jonathon",
            "Jordan",
            "Jordane",
            "Jordi",
            "Jordon",
            "Jordy",
            "Jordyn",
            "Jorge",
            "Jose",
            "Josefa",
            "Josefina",
            "Joseph",
            "Josephine",
            "Josh",
            "Joshua",
            "Joshuah",
            "Josiah",
            "Josiane",
            "Josianne",
            "Josie",
            "Josue",
            "Jovan",
            "Jovani",
            "Jovanny",
            "Jovany",
            "Joy",
            "Joyce",
            "Juana",
            "Juanita",
            "Judah",
            "Judd",
            "Jude",
            "Judge",
            "Judson",
            "Judy",
            "Jules",
            "Julia",
            "Julian",
            "Juliana",
            "Julianne",
            "Julie",
            "Julien",
            "Juliet",
            "Julio",
            "Julius",
            "June",
            "Junior",
            "Junius",
            "Justen",
            "Justice",
            "Justina",
            "Justine",
            "Juston",
            "Justus",
            "Justyn",
            "Juvenal",
            "Juwan",
            "Kacey",
            "Kaci",
            "Kacie",
            "Kade",
            "Kaden",
            "Kadin",
            "Kaela",
            "Kaelyn",
            "Kaia",
            "Kailee",
            "Kailey",
            "Kailyn",
            "Kaitlin",
            "Kaitlyn",
            "Kale",
            "Kaleb",
            "Kaleigh",
            "Kaley",
            "Kali",
            "Kallie",
            "Kameron",
            "Kamille",
            "Kamren",
            "Kamron",
            "Kamryn",
            "Kane",
            "Kara",
            "Kareem",
            "Karelle",
            "Karen",
            "Kari",
            "Kariane",
            "Karianne",
            "Karina",
            "Karine",
            "Karl",
            "Karlee",
            "Karley",
            "Karli",
            "Karlie",
            "Karolann",
            "Karson",
            "Kasandra",
            "Kasey",
            "Kassandra",
            "Katarina",
            "Katelin",
            "Katelyn",
            "Katelynn",
            "Katharina",
            "Katherine",
            "Katheryn",
            "Kathleen",
            "Kathlyn",
            "Kathryn",
            "Kathryne",
            "Katlyn",
            "Katlynn",
            "Katrina",
            "Katrine",
            "Kattie",
            "Kavon",
            "Kay",
            "Kaya",
            "Kaycee",
            "Kayden",
            "Kayla",
            "Kaylah",
            "Kaylee",
            "Kayleigh",
            "Kayley",
            "Kayli",
            "Kaylie",
            "Kaylin",
            "Keagan",
            "Keanu",
            "Keara",
            "Keaton",
            "Keegan",
            "Keeley",
            "Keely",
            "Keenan",
            "Keira",
            "Keith",
            "Kellen",
            "Kelley",
            "Kelli",
            "Kellie",
            "Kelly",
            "Kelsi",
            "Kelsie",
            "Kelton",
            "Kelvin",
            "Ken",
            "Kendall",
            "Kendra",
            "Kendrick",
            "Kenna",
            "Kennedi",
            "Kennedy",
            "Kenneth",
            "Kennith",
            "Kenny",
            "Kenton",
            "Kenya",
            "Kenyatta",
            "Kenyon",
            "Keon",
            "Keshaun",
            "Keshawn",
            "Keven",
            "Kevin",
            "Kevon",
            "Keyon",
            "Keyshawn",
            "Khalid",
            "Khalil",
            "Kian",
            "Kiana",
            "Kianna",
            "Kiara",
            "Kiarra",
            "Kiel",
            "Kiera",
            "Kieran",
            "Kiley",
            "Kim",
            "Kimberly",
            "King",
            "Kip",
            "Kira",
            "Kirk",
            "Kirsten",
            "Kirstin",
            "Kitty",
            "Kobe",
            "Koby",
            "Kody",
            "Kolby",
            "Kole",
            "Korbin",
            "Korey",
            "Kory",
            "Kraig",
            "Kris",
            "Krista",
            "Kristian",
            "Kristin",
            "Kristina",
            "Kristofer",
            "Kristoffer",
            "Kristopher",
            "Kristy",
            "Krystal",
            "Krystel",
            "Krystina",
            "Kurt",
            "Kurtis",
            "Kyla",
            "Kyle",
            "Kylee",
            "Kyleigh",
            "Kyler",
            "Kylie",
            "Kyra",
            "Lacey",
            "Lacy",
            "Ladarius",
            "Lafayette",
            "Laila",
            "Laisha",
            "Lamar",
            "Lambert",
            "Lamont",
            "Lance",
            "Landen",
            "Lane",
            "Laney",
            "Larissa",
            "Laron",
            "Larry",
            "Larue",
            "Laura",
            "Laurel",
            "Lauren",
            "Laurence",
            "Lauretta",
            "Lauriane",
            "Laurianne",
            "Laurie",
            "Laurine",
            "Laury",
            "Lauryn",
            "Lavada",
            "Lavern",
            "Laverna",
            "Laverne",
            "Lavina",
            "Lavinia",
            "Lavon",
            "Lavonne",
            "Lawrence",
            "Lawson",
            "Layla",
            "Layne",
            "Lazaro",
            "Lea",
            "Leann",
            "Leanna",
            "Leanne",
            "Leatha",
            "Leda",
            "Lee",
            "Leif",
            "Leila",
            "Leilani",
            "Lela",
            "Lelah",
            "Leland",
            "Lelia",
            "Lempi",
            "Lemuel",
            "Lenna",
            "Lennie",
            "Lenny",
            "Lenora",
            "Lenore",
            "Leo",
            "Leola",
            "Leon",
            "Leonard",
            "Leonardo",
            "Leone",
            "Leonel",
            "Leonie",
            "Leonor",
            "Leonora",
            "Leopold",
            "Leopoldo",
            "Leora",
            "Lera",
            "Lesley",
            "Leslie",
            "Lesly",
            "Lessie",
            "Lester",
            "Leta",
            "Letha",
            "Letitia",
            "Levi",
            "Lew",
            "Lewis",
            "Lexi",
            "Lexie",
            "Lexus",
            "Lia",
            "Liam",
            "Liana",
            "Libbie",
            "Libby",
            "Lila",
            "Lilian",
            "Liliana",
            "Liliane",
            "Lilla",
            "Lillian",
            "Lilliana",
            "Lillie",
            "Lilly",
            "Lily",
            "Lilyan",
            "Lina",
            "Lincoln",
            "Linda",
            "Lindsay",
            "Lindsey",
            "Linnea",
            "Linnie",
            "Linwood",
            "Lionel",
            "Lisa",
            "Lisandro",
            "Lisette",
            "Litzy",
            "Liza",
            "Lizeth",
            "Lizzie",
            "Llewellyn",
            "Lloyd",
            "Logan",
            "Lois",
            "Lola",
            "Lolita",
            "Loma",
            "Lon",
            "London",
            "Lonie",
            "Lonnie",
            "Lonny",
            "Lonzo",
            "Lora",
            "Loraine",
            "Loren",
            "Lorena",
            "Lorenz",
            "Lorenza",
            "Lorenzo",
            "Lori",
            "Lorine",
            "Lorna",
            "Lottie",
            "Lou",
            "Louie",
            "Louisa",
            "Lourdes",
            "Louvenia",
            "Lowell",
            "Loy",
            "Loyal",
            "Loyce",
            "Lucas",
            "Luciano",
            "Lucie",
            "Lucienne",
            "Lucile",
            "Lucinda",
            "Lucio",
            "Lucious",
            "Lucius",
            "Lucy",
            "Ludie",
            "Ludwig",
            "Lue",
            "Luella",
            "Luigi",
            "Luis",
            "Luisa",
            "Lukas",
            "Lula",
            "Lulu",
            "Luna",
            "Lupe",
            "Lura",
            "Lurline",
            "Luther",
            "Luz",
            "Lyda",
            "Lydia",
            "Lyla",
            "Lynn",
            "Lyric",
            "Lysanne",
            "Mabel",
            "Mabelle",
            "Mable",
            "Mac",
            "Macey",
            "Maci",
            "Macie",
            "Mack",
            "Mackenzie",
            "Macy",
            "Madaline",
            "Madalyn",
            "Maddison",
            "Madeline",
            "Madelyn",
            "Madelynn",
            "Madge",
            "Madie",
            "Madilyn",
            "Madisen",
            "Madison",
            "Madisyn",
            "Madonna",
            "Madyson",
            "Mae",
            "Maegan",
            "Maeve",
            "Mafalda",
            "Magali",
            "Magdalen",
            "Magdalena",
            "Maggie",
            "Magnolia",
            "Magnus",
            "Maia",
            "Maida",
            "Maiya",
            "Major",
            "Makayla",
            "Makenna",
            "Makenzie",
            "Malachi",
            "Malcolm",
            "Malika",
            "Malinda",
            "Mallie",
            "Mallory",
            "Malvina",
            "Mandy",
            "Manley",
            "Manuel",
            "Manuela",
            "Mara",
            "Marc",
            "Marcel",
            "Marcelina",
            "Marcelino",
            "Marcella",
            "Marcelle",
            "Marcellus",
            "Marcelo",
            "Marcia",
            "Marco",
            "Marcos",
            "Marcus",
            "Margaret",
            "Margarete",
            "Margarett",
            "Margaretta",
            "Margarette",
            "Margarita",
            "Marge",
            "Margie",
            "Margot",
            "Margret",
            "Marguerite",
            "Maria",
            "Mariah",
            "Mariam",
            "Marian",
            "Mariana",
            "Mariane",
            "Marianna",
            "Marianne",
            "Mariano",
            "Maribel",
            "Marie",
            "Mariela",
            "Marielle",
            "Marietta",
            "Marilie",
            "Marilou",
            "Marilyne",
            "Marina",
            "Mario",
            "Marion",
            "Marisa",
            "Marisol",
            "Maritza",
            "Marjolaine",
            "Marjorie",
            "Marjory",
            "Mark",
            "Markus",
            "Marlee",
            "Marlen",
            "Marlene",
            "Marley",
            "Marlin",
            "Marlon",
            "Marques",
            "Marquis",
            "Marquise",
            "Marshall",
            "Marta",
            "Martin",
            "Martina",
            "Martine",
            "Marty",
            "Marvin",
            "Mary",
            "Maryam",
            "Maryjane",
            "Maryse",
            "Mason",
            "Mateo",
            "Mathew",
            "Mathias",
            "Mathilde",
            "Matilda",
            "Matilde",
            "Matt",
            "Matteo",
            "Mattie",
            "Maud",
            "Maude",
            "Maudie",
            "Maureen",
            "Maurice",
            "Mauricio",
            "Maurine",
            "Maverick",
            "Mavis",
            "Max",
            "Maxie",
            "Maxime",
            "Maximilian",
            "Maximillia",
            "Maximillian",
            "Maximo",
            "Maximus",
            "Maxine",
            "Maxwell",
            "May",
            "Maya",
            "Maybell",
            "Maybelle",
            "Maye",
            "Maymie",
            "Maynard",
            "Mayra",
            "Mazie",
            "Mckayla",
            "Mckenna",
            "Mckenzie",
            "Meagan",
            "Meaghan",
            "Meda",
            "Megane",
            "Meggie",
            "Meghan",
            "Mekhi",
            "Melany",
            "Melba",
            "Melisa",
            "Melissa",
            "Mellie",
            "Melody",
            "Melvin",
            "Melvina",
            "Melyna",
            "Melyssa",
            "Mercedes",
            "Meredith",
            "Merl",
            "Merle",
            "Merlin",
            "Merritt",
            "Mertie",
            "Mervin",
            "Meta",
            "Mia",
            "Micaela",
            "Micah",
            "Michael",
            "Michaela",
            "Michale",
            "Micheal",
            "Michel",
            "Michele",
            "Michelle",
            "Miguel",
            "Mikayla",
            "Mike",
            "Mikel",
            "Milan",
            "Miles",
            "Milford",
            "Miller",
            "Millie",
            "Milo",
            "Milton",
            "Mina",
            "Minerva",
            "Minnie",
            "Miracle",
            "Mireille",
            "Mireya",
            "Misael",
            "Missouri",
            "Misty",
            "Mitchel",
            "Mitchell",
            "Mittie",
            "Modesta",
            "Modesto",
            "Mohamed",
            "Mohammad",
            "Mohammed",
            "Moises",
            "Mollie",
            "Molly",
            "Mona",
            "Monica",
            "Monique",
            "Monroe",
            "Monserrat",
            "Monserrate",
            "Montana",
            "Monte",
            "Monty",
            "Morgan",
            "Moriah",
            "Morris",
            "Mortimer",
            "Morton",
            "Mose",
            "Moses",
            "Moshe",
            "Mossie",
            "Mozell",
            "Mozelle",
            "Muhammad",
            "Muriel",
            "Murl",
            "Murphy",
            "Murray",
            "Mustafa",
            "Mya",
            "Myah",
            "Mylene",
            "Myles",
            "Myra",
            "Myriam",
            "Myrl",
            "Myrna",
            "Myron",
            "Myrtice",
            "Myrtie",
            "Myrtis",
            "Myrtle",
            "Nadia",
            "Nakia",
            "Name",
            "Nannie",
            "Naomi",
            "Naomie",
            "Napoleon",
            "Narciso",
            "Nash",
            "Nasir",
            "Nat",
            "Natalia",
            "Natalie",
            "Natasha",
            "Nathan",
            "Nathanael",
            "Nathanial",
            "Nathaniel",
            "Nathen",
            "Nayeli",
            "Neal",
            "Ned",
            "Nedra",
            "Neha",
            "Neil",
            "Nelda",
            "Nella",
            "Nelle",
            "Nellie",
            "Nels",
            "Nelson",
            "Neoma",
            "Nestor",
            "Nettie",
            "Neva",
            "Newell",
            "Newton",
            "Nia",
            "Nicholas",
            "Nicholaus",
            "Nichole",
            "Nick",
            "Nicklaus",
            "Nickolas",
            "Nico",
            "Nicola",
            "Nicolas",
            "Nicole",
            "Nicolette",
            "Nigel",
            "Nikita",
            "Nikki",
            "Nikko",
            "Niko",
            "Nikolas",
            "Nils",
            "Nina",
            "Noah",
            "Noble",
            "Noe",
            "Noel",
            "Noelia",
            "Noemi",
            "Noemie",
            "Noemy",
            "Nola",
            "Nolan",
            "Nona",
            "Nora",
            "Norbert",
            "Norberto",
            "Norene",
            "Norma",
            "Norris",
            "Norval",
            "Norwood",
            "Nova",
            "Novella",
            "Nya",
            "Nyah",
            "Nyasia",
            "Obie",
            "Oceane",
            "Ocie",
            "Octavia",
            "Oda",
            "Odell",
            "Odessa",
            "Odie",
            "Ofelia",
            "Okey",
            "Ola",
            "Olaf",
            "Ole",
            "Olen",
            "Oleta",
            "Olga",
            "Olin",
            "Oliver",
            "Ollie",
            "Oma",
            "Omari",
            "Omer",
            "Ona",
            "Onie",
            "Opal",
            "Ophelia",
            "Ora",
            "Oral",
            "Oran",
            "Oren",
            "Orie",
            "Orin",
            "Orion",
            "Orland",
            "Orlando",
            "Orlo",
            "Orpha",
            "Orrin",
            "Orval",
            "Orville",
            "Osbaldo",
            "Osborne",
            "Oscar",
            "Osvaldo",
            "Oswald",
            "Oswaldo",
            "Otha",
            "Otho",
            "Otilia",
            "Otis",
            "Ottilie",
            "Ottis",
            "Otto",
            "Ova",
            "Owen",
            "Ozella",
            "Pablo",
            "Paige",
            "Palma",
            "Pamela",
            "Pansy",
            "Paolo",
            "Paris",
            "Parker",
            "Pascale",
            "Pasquale",
            "Pat",
            "Patience",
            "Patricia",
            "Patrick",
            "Patsy",
            "Pattie",
            "Paul",
            "Paula",
            "Pauline",
            "Paxton",
            "Payton",
            "Pearl",
            "Pearlie",
            "Pearline",
            "Pedro",
            "Peggie",
            "Penelope",
            "Percival",
            "Percy",
            "Perry",
            "Pete",
            "Peter",
            "Petra",
            "Peyton",
            "Philip",
            "Phoebe",
            "Phyllis",
            "Pierce",
            "Pierre",
            "Pietro",
            "Pink",
            "Pinkie",
            "Piper",
            "Polly",
            "Porter",
            "Precious",
            "Presley",
            "Preston",
            "Price",
            "Prince",
            "Princess",
            "Priscilla",
            "Providenci",
            "Prudence",
            "Queen",
            "Queenie",
            "Quentin",
            "Quincy",
            "Quinn",
            "Quinten",
            "Quinton",
            "Rachael",
            "Rachel",
            "Rachelle",
            "Rae",
            "Raegan",
            "Rafael",
            "Rafaela",
            "Raheem",
            "Rahsaan",
            "Rahul",
            "Raina",
            "Raleigh",
            "Ralph",
            "Ramiro",
            "Ramon",
            "Ramona",
            "Randal",
            "Randall",
            "Randi",
            "Randy",
            "Ransom",
            "Raoul",
            "Raphael",
            "Raphaelle",
            "Raquel",
            "Rashad",
            "Rashawn",
            "Rasheed",
            "Raul",
            "Raven",
            "Ray",
            "Raymond",
            "Raymundo",
            "Reagan",
            "Reanna",
            "Reba",
            "Rebeca",
            "Rebecca",
            "Rebeka",
            "Rebekah",
            "Reece",
            "Reed",
            "Reese",
            "Regan",
            "Reggie",
            "Reginald",
            "Reid",
            "Reilly",
            "Reina",
            "Reinhold",
            "Remington",
            "Rene",
            "Renee",
            "Ressie",
            "Reta",
            "Retha",
            "Retta",
            "Reuben",
            "Reva",
            "Rex",
            "Rey",
            "Reyes",
            "Reymundo",
            "Reyna",
            "Reynold",
            "Rhea",
            "Rhett",
            "Rhianna",
            "Rhiannon",
            "Rhoda",
            "Ricardo",
            "Richard",
            "Richie",
            "Richmond",
            "Rick",
            "Rickey",
            "Rickie",
            "Ricky",
            "Rico",
            "Rigoberto",
            "Riley",
            "Rita",
            "River",
            "Robb",
            "Robbie",
            "Robert",
            "Roberta",
            "Roberto",
            "Robin",
            "Robyn",
            "Rocio",
            "Rocky",
            "Rod",
            "Roderick",
            "Rodger",
            "Rodolfo",
            "Rodrick",
            "Rodrigo",
            "Roel",
            "Rogelio",
            "Roger",
            "Rogers",
            "Rolando",
            "Rollin",
            "Roma",
            "Romaine",
            "Roman",
            "Ron",
            "Ronaldo",
            "Ronny",
            "Roosevelt",
            "Rory",
            "Rosa",
            "Rosalee",
            "Rosalia",
            "Rosalind",
            "Rosalinda",
            "Rosalyn",
            "Rosamond",
            "Rosanna",
            "Rosario",
            "Roscoe",
            "Rose",
            "Rosella",
            "Roselyn",
            "Rosemarie",
            "Rosemary",
            "Rosendo",
            "Rosetta",
            "Rosie",
            "Rosina",
            "Roslyn",
            "Ross",
            "Rossie",
            "Rowan",
            "Rowena",
            "Rowland",
            "Roxane",
            "Roxanne",
            "Roy",
            "Royal",
            "Royce",
            "Rozella",
            "Ruben",
            "Rubie",
            "Ruby",
            "Rubye",
            "Rudolph",
            "Rudy",
            "Rupert",
            "Russ",
            "Russel",
            "Russell",
            "Rusty",
            "Ruth",
            "Ruthe",
            "Ruthie",
            "Ryan",
            "Ryann",
            "Ryder",
            "Rylan",
            "Rylee",
            "Ryleigh",
            "Ryley",
            "Sabina",
            "Sabrina",
            "Sabryna",
            "Sadie",
            "Sadye",
            "Sage",
            "Saige",
            "Sallie",
            "Sally",
            "Salma",
            "Salvador",
            "Salvatore",
            "Sam",
            "Samanta",
            "Samantha",
            "Samara",
            "Samir",
            "Sammie",
            "Sammy",
            "Samson",
            "Sandra",
            "Sandrine",
            "Sandy",
            "Sanford",
            "Santa",
            "Santiago",
            "Santina",
            "Santino",
            "Santos",
            "Sarah",
            "Sarai",
            "Sarina",
            "Sasha",
            "Saul",
            "Savanah",
            "Savanna",
            "Savannah",
            "Savion",
            "Scarlett",
            "Schuyler",
            "Scot",
            "Scottie",
            "Scotty",
            "Seamus",
            "Sean",
            "Sebastian",
            "Sedrick",
            "Selena",
            "Selina",
            "Selmer",
            "Serena",
            "Serenity",
            "Seth",
            "Shad",
            "Shaina",
            "Shakira",
            "Shana",
            "Shane",
            "Shanel",
            "Shanelle",
            "Shania",
            "Shanie",
            "Shaniya",
            "Shanna",
            "Shannon",
            "Shanny",
            "Shanon",
            "Shany",
            "Sharon",
            "Shaun",
            "Shawn",
            "Shawna",
            "Shaylee",
            "Shayna",
            "Shayne",
            "Shea",
            "Sheila",
            "Sheldon",
            "Shemar",
            "Sheridan",
            "Sherman",
            "Sherwood",
            "Shirley",
            "Shyann",
            "Shyanne",
            "Sibyl",
            "Sid",
            "Sidney",
            "Sienna",
            "Sierra",
            "Sigmund",
            "Sigrid",
            "Sigurd",
            "Silas",
            "Sim",
            "Simeon",
            "Simone",
            "Sincere",
            "Sister",
            "Skye",
            "Skyla",
            "Skylar",
            "Sofia",
            "Soledad",
            "Solon",
            "Sonia",
            "Sonny",
            "Sonya",
            "Sophia",
            "Sophie",
            "Spencer",
            "Stacey",
            "Stacy",
            "Stan",
            "Stanford",
            "Stanley",
            "Stanton",
            "Stefan",
            "Stefanie",
            "Stella",
            "Stephan",
            "Stephania",
            "Stephanie",
            "Stephany",
            "Stephen",
            "Stephon",
            "Sterling",
            "Steve",
            "Stevie",
            "Stewart",
            "Stone",
            "Stuart",
            "Summer",
            "Sunny",
            "Susan",
            "Susana",
            "Susanna",
            "Susie",
            "Suzanne",
            "Sven",
            "Syble",
            "Sydnee",
            "Sydney",
            "Sydni",
            "Sydnie",
            "Sylvan",
            "Sylvester",
            "Sylvia",
            "Tabitha",
            "Tad",
            "Talia",
            "Talon",
            "Tamara",
            "Tamia",
            "Tania",
            "Tanner",
            "Tanya",
            "Tara",
            "Taryn",
            "Tate",
            "Tatum",
            "Tatyana",
            "Taurean",
            "Tavares",
            "Taya",
            "Taylor",
            "Teagan",
            "Ted",
            "Telly",
            "Terence",
            "Teresa",
            "Terrance",
            "Terrell",
            "Terrence",
            "Terrill",
            "Terry",
            "Tess",
            "Tessie",
            "Tevin",
            "Thad",
            "Thaddeus",
            "Thalia",
            "Thea",
            "Thelma",
            "Theo",
            "Theodora",
            "Theodore",
            "Theresa",
            "Therese",
            "Theresia",
            "Theron",
            "Thomas",
            "Thora",
            "Thurman",
            "Tia",
            "Tiana",
            "Tianna",
            "Tiara",
            "Tierra",
            "Tiffany",
            "Tillman",
            "Timmothy",
            "Timmy",
            "Timothy",
            "Tina",
            "Tito",
            "Titus",
            "Tobin",
            "Toby",
            "Tod",
            "Tom",
            "Tomas",
            "Tomasa",
            "Tommie",
            "Toney",
            "Toni",
            "Tony",
            "Torey",
            "Torrance",
            "Torrey",
            "Toy",
            "Trace",
            "Tracey",
            "Tracy",
            "Travis",
            "Travon",
            "Tre",
            "Tremaine",
            "Tremayne",
            "Trent",
            "Trenton",
            "Tressa",
            "Tressie",
            "Treva",
            "Trever",
            "Trevion",
            "Trevor",
            "Trey",
            "Trinity",
            "Trisha",
            "Tristian",
            "Tristin",
            "Triston",
            "Troy",
            "Trudie",
            "Trycia",
            "Trystan",
            "Turner",
            "Twila",
            "Tyler",
            "Tyra",
            "Tyree",
            "Tyreek",
            "Tyrel",
            "Tyrell",
            "Tyrese",
            "Tyrique",
            "Tyshawn",
            "Tyson",
            "Ubaldo",
            "Ulices",
            "Ulises",
            "Una",
            "Unique",
            "Urban",
            "Uriah",
            "Uriel",
            "Ursula",
            "Vada",
            "Valentin",
            "Valentina",
            "Valentine",
            "Valerie",
            "Vallie",
            "Van",
            "Vance",
            "Vanessa",
            "Vaughn",
            "Veda",
            "Velda",
            "Vella",
            "Velma",
            "Velva",
            "Vena",
            "Verda",
            "Verdie",
            "Vergie",
            "Verla",
            "Verlie",
            "Vern",
            "Verna",
            "Verner",
            "Vernice",
            "Vernie",
            "Vernon",
            "Verona",
            "Veronica",
            "Vesta",
            "Vicenta",
            "Vicente",
            "Vickie",
            "Vicky",
            "Victor",
            "Victoria",
            "Vida",
            "Vidal",
            "Vilma",
            "Vince",
            "Vincent",
            "Vincenza",
            "Vincenzo",
            "Vinnie",
            "Viola",
            "Violet",
            "Violette",
            "Virgie",
            "Virgil",
            "Virginia",
            "Virginie",
            "Vita",
            "Vito",
            "Viva",
            "Vivian",
            "Viviane",
            "Vivianne",
            "Vivien",
            "Vivienne",
            "Vladimir",
            "Wade",
            "Waino",
            "Waldo",
            "Walker",
            "Wallace",
            "Walter",
            "Walton",
            "Wanda",
            "Ward",
            "Warren",
            "Watson",
            "Wava",
            "Waylon",
            "Wayne",
            "Webster",
            "Weldon",
            "Wellington",
            "Wendell",
            "Wendy",
            "Werner",
            "Westley",
            "Weston",
            "Whitney",
            "Wilber",
            "Wilbert",
            "Wilburn",
            "Wiley",
            "Wilford",
            "Wilfred",
            "Wilfredo",
            "Wilfrid",
            "Wilhelm",
            "Wilhelmine",
            "Will",
            "Willa",
            "Willard",
            "William",
            "Willie",
            "Willis",
            "Willow",
            "Willy",
            "Wilma",
            "Wilmer",
            "Wilson",
            "Wilton",
            "Winfield",
            "Winifred",
            "Winnifred",
            "Winona",
            "Winston",
            "Woodrow",
            "Wyatt",
            "Wyman",
            "Xander",
            "Xavier",
            "Xzavier",
            "Yadira",
            "Yasmeen",
            "Yasmin",
            "Yasmine",
            "Yazmin",
            "Yesenia",
            "Yessenia",
            "Yolanda",
            "Yoshiko",
            "Yvette",
            "Yvonne",
            "Zachariah",
            "Zachary",
            "Zachery",
            "Zack",
            "Zackary",
            "Zackery",
            "Zakary",
            "Zander",
            "Zane",
            "Zaria",
            "Zechariah",
            "Zelda",
            "Zella",
            "Zelma",
            "Zena",
            "Zetta",
            "Zion",
            "Zita",
            "Zoe",
            "Zoey",
            "Zoie",
            "Zoila",
            "Zola",
            "Zora",
            "Zula"
        ],
        female: [
            "Ada",
            "Adrienne",
            "Agnes",
            "Alberta",
            "Alexandra",
            "Alexis",
            "Alice",
            "Alicia",
            "Alison",
            "Allison",
            "Alma",
            "Alyssa",
            "Amanda",
            "Amber",
            "Amelia",
            "Amy",
            "Ana",
            "Andrea",
            "Angel",
            "Angela",
            "Angelica",
            "Angelina",
            "Angie",
            "Anita",
            "Ann",
            "Anna",
            "Anne",
            "Annette",
            "Annie",
            "Antoinette",
            "Antonia",
            "April",
            "Arlene",
            "Ashley",
            "Audrey",
            "Barbara",
            "Beatrice",
            "Becky",
            "Belinda",
            "Bernadette",
            "Bernice",
            "Bertha",
            "Bessie",
            "Beth",
            "Bethany",
            "Betsy",
            "Betty",
            "Beulah",
            "Beverly",
            "Billie",
            "Blanca",
            "Blanche",
            "Bobbie",
            "Bonnie",
            "Brandi",
            "Brandy",
            "Brenda",
            "Bridget",
            "Brittany",
            "Brooke",
            "Camille",
            "Candace",
            "Candice",
            "Carla",
            "Carmen",
            "Carol",
            "Carole",
            "Caroline",
            "Carolyn",
            "Carrie",
            "Casey",
            "Cassandra",
            "Catherine",
            "Cathy",
            "Cecelia",
            "Cecilia",
            "Celia",
            "Charlene",
            "Charlotte",
            "Chelsea",
            "Cheryl",
            "Christie",
            "Christina",
            "Christine",
            "Christy",
            "Cindy",
            "Claire",
            "Clara",
            "Claudia",
            "Colleen",
            "Connie",
            "Constance",
            "Cora",
            "Courtney",
            "Cristina",
            "Crystal",
            "Cynthia",
            "Daisy",
            "Dana",
            "Danielle",
            "Darla",
            "Darlene",
            "Dawn",
            "Deanna",
            "Debbie",
            "Deborah",
            "Debra",
            "Delia",
            "Della",
            "Delores",
            "Denise",
            "Desiree",
            "Diana",
            "Diane",
            "Dianna",
            "Dianne",
            "Dixie",
            "Dolores",
            "Donna",
            "Dora",
            "Doreen",
            "Doris",
            "Dorothy",
            "Ebony",
            "Edith",
            "Edna",
            "Eileen",
            "Elaine",
            "Eleanor",
            "Elena",
            "Elisa",
            "Elizabeth",
            "Ella",
            "Ellen",
            "Eloise",
            "Elsa",
            "Elsie",
            "Elvira",
            "Emily",
            "Emma",
            "Erica",
            "Erika",
            "Erin",
            "Erma",
            "Ernestine",
            "Essie",
            "Estelle",
            "Esther",
            "Ethel",
            "Eula",
            "Eunice",
            "Eva",
            "Evelyn",
            "Faith",
            "Fannie",
            "Faye",
            "Felicia",
            "Flora",
            "Florence",
            "Frances",
            "Francis",
            "Freda",
            "Gail",
            "Gayle",
            "Geneva",
            "Genevieve",
            "Georgia",
            "Geraldine",
            "Gertrude",
            "Gina",
            "Ginger",
            "Gladys",
            "Glenda",
            "Gloria",
            "Grace",
            "Gretchen",
            "Guadalupe",
            "Gwen",
            "Gwendolyn",
            "Hannah",
            "Harriet",
            "Hattie",
            "Hazel",
            "Heather",
            "Heidi",
            "Helen",
            "Henrietta",
            "Hilda",
            "Holly",
            "Hope",
            "Ida",
            "Inez",
            "Irene",
            "Iris",
            "Irma",
            "Isabel",
            "Jackie",
            "Jacqueline",
            "Jacquelyn",
            "Jaime",
            "Jamie",
            "Jan",
            "Jana",
            "Jane",
            "Janet",
            "Janice",
            "Janie",
            "Janis",
            "Jasmine",
            "Jean",
            "Jeanette",
            "Jeanne",
            "Jeannette",
            "Jeannie",
            "Jenna",
            "Jennie",
            "Jennifer",
            "Jenny",
            "Jessica",
            "Jessie",
            "Jill",
            "Jo",
            "Joan",
            "Joann",
            "Joanna",
            "Joanne",
            "Jodi",
            "Jody",
            "Johanna",
            "Johnnie",
            "Josefina",
            "Josephine",
            "Joy",
            "Joyce",
            "Juana",
            "Juanita",
            "Judith",
            "Judy",
            "Julia",
            "Julie",
            "June",
            "Kara",
            "Karen",
            "Kari",
            "Karla",
            "Kate",
            "Katherine",
            "Kathleen",
            "Kathryn",
            "Kathy",
            "Katie",
            "Katrina",
            "Kay",
            "Kayla",
            "Kelley",
            "Kelli",
            "Kellie",
            "Kelly",
            "Kendra",
            "Kerry",
            "Kim",
            "Kimberly",
            "Krista",
            "Kristen",
            "Kristi",
            "Kristie",
            "Kristin",
            "Kristina",
            "Kristine",
            "Kristy",
            "Krystal",
            "Lana",
            "Latoya",
            "Laura",
            "Lauren",
            "Laurie",
            "Laverne",
            "Leah",
            "Lee",
            "Leigh",
            "Lela",
            "Lena",
            "Leona",
            "Leslie",
            "Leticia",
            "Lila",
            "Lillian",
            "Lillie",
            "Linda",
            "Lindsay",
            "Lindsey",
            "Lisa",
            "Lois",
            "Lola",
            "Lora",
            "Lorena",
            "Lorene",
            "Loretta",
            "Lori",
            "Lorraine",
            "Louise",
            "Lucia",
            "Lucille",
            "Lucy",
            "Lula",
            "Luz",
            "Lydia",
            "Lynda",
            "Lynette",
            "Lynn",
            "Lynne",
            "Mabel",
            "Mable",
            "Madeline",
            "Mae",
            "Maggie",
            "Mamie",
            "Mandy",
            "Marcella",
            "Marcia",
            "Margaret",
            "Margarita",
            "Margie",
            "Marguerite",
            "Maria",
            "Marian",
            "Marianne",
            "Marie",
            "Marilyn",
            "Marion",
            "Marjorie",
            "Marlene",
            "Marsha",
            "Marta",
            "Martha",
            "Mary",
            "Maryann",
            "Mattie",
            "Maureen",
            "Maxine",
            "May",
            "Megan",
            "Meghan",
            "Melanie",
            "Melba",
            "Melinda",
            "Melissa",
            "Melody",
            "Mercedes",
            "Meredith",
            "Michele",
            "Michelle",
            "Mildred",
            "Mindy",
            "Minnie",
            "Miranda",
            "Miriam",
            "Misty",
            "Molly",
            "Mona",
            "Monica",
            "Monique",
            "Muriel",
            "Myra",
            "Myrtle",
            "Nadine",
            "Nancy",
            "Naomi",
            "Natalie",
            "Natasha",
            "Nellie",
            "Nettie",
            "Nichole",
            "Nicole",
            "Nina",
            "Nora",
            "Norma",
            "Olga",
            "Olive",
            "Olivia",
            "Ollie",
            "Opal",
            "Ora",
            "Pam",
            "Pamela",
            "Pat",
            "Patricia",
            "Patsy",
            "Patti",
            "Patty",
            "Paula",
            "Paulette",
            "Pauline",
            "Pearl",
            "Peggy",
            "Penny",
            "Phyllis",
            "Priscilla",
            "Rachael",
            "Rachel",
            "Ramona",
            "Raquel",
            "Rebecca",
            "Regina",
            "Renee",
            "Rhonda",
            "Rita",
            "Roberta",
            "Robin",
            "Robyn",
            "Rochelle",
            "Rosa",
            "Rosalie",
            "Rose",
            "Rosemarie",
            "Rosemary",
            "Rosie",
            "Roxanne",
            "Ruby",
            "Ruth",
            "Sabrina",
            "Sadie",
            "Sally",
            "Samantha",
            "Sandra",
            "Sandy",
            "Sara",
            "Sarah",
            "Shannon",
            "Shari",
            "Sharon",
            "Shawna",
            "Sheila",
            "Shelia",
            "Shelley",
            "Shelly",
            "Sheri",
            "Sherri",
            "Sherry",
            "Sheryl",
            "Shirley",
            "Silvia",
            "Sonia",
            "Sonja",
            "Sonya",
            "Sophia",
            "Sophie",
            "Stacey",
            "Stacy",
            "Stella",
            "Stephanie",
            "Sue",
            "Susan",
            "Susie",
            "Suzanne",
            "Sylvia",
            "Tabitha",
            "Tamara",
            "Tami",
            "Tammy",
            "Tanya",
            "Tara",
            "Tasha",
            "Teresa",
            "Teri",
            "Terri",
            "Terry",
            "Thelma",
            "Theresa",
            "Tiffany",
            "Tina",
            "Toni",
            "Tonya",
            "Tracey",
            "Traci",
            "Tracy",
            "Tricia",
            "Valerie",
            "Vanessa",
            "Velma",
            "Vera",
            "Verna",
            "Veronica",
            "Vicki",
            "Vickie",
            "Vicky",
            "Victoria",
            "Viola",
            "Violet",
            "Virginia",
            "Vivian",
            "Wanda",
            "Wendy",
            "Whitney",
            "Willie",
            "Wilma",
            "Winifred",
            "Yolanda",
            "Yvette",
            "Yvonne"
        ],
        male: [
            "Aaron",
            "Abel",
            "Abraham",
            "Adam",
            "Adrian",
            "Al",
            "Alan",
            "Albert",
            "Alberto",
            "Alejandro",
            "Alex",
            "Alexander",
            "Alfonso",
            "Alfred",
            "Alfredo",
            "Allan",
            "Allen",
            "Alonzo",
            "Alton",
            "Alvin",
            "Amos",
            "Andre",
            "Andres",
            "Andrew",
            "Andy",
            "Angel",
            "Angelo",
            "Anthony",
            "Antonio",
            "Archie",
            "Armando",
            "Arnold",
            "Arthur",
            "Arturo",
            "Aubrey",
            "Austin",
            "Barry",
            "Ben",
            "Benjamin",
            "Bennie",
            "Benny",
            "Bernard",
            "Bert",
            "Bill",
            "Billy",
            "Blake",
            "Bob",
            "Bobby",
            "Boyd",
            "Brad",
            "Bradford",
            "Bradley",
            "Brandon",
            "Brendan",
            "Brent",
            "Brett",
            "Brian",
            "Bruce",
            "Bryan",
            "Bryant",
            "Byron",
            "Caleb",
            "Calvin",
            "Cameron",
            "Carl",
            "Carlos",
            "Carlton",
            "Carroll",
            "Cary",
            "Casey",
            "Cecil",
            "Cedric",
            "Cesar",
            "Chad",
            "Charles",
            "Charlie",
            "Chester",
            "Chris",
            "Christian",
            "Christopher",
            "Clarence",
            "Clark",
            "Claude",
            "Clay",
            "Clayton",
            "Clifford",
            "Clifton",
            "Clint",
            "Clinton",
            "Clyde",
            "Cody",
            "Colin",
            "Conrad",
            "Corey",
            "Cornelius",
            "Cory",
            "Courtney",
            "Craig",
            "Curtis",
            "Dale",
            "Dallas",
            "Damon",
            "Dan",
            "Dana",
            "Daniel",
            "Danny",
            "Darin",
            "Darnell",
            "Darrel",
            "Darrell",
            "Darren",
            "Darrin",
            "Darryl",
            "Daryl",
            "Dave",
            "David",
            "Dean",
            "Delbert",
            "Dennis",
            "Derek",
            "Derrick",
            "Devin",
            "Dewey",
            "Dexter",
            "Domingo",
            "Dominic",
            "Dominick",
            "Don",
            "Donald",
            "Donnie",
            "Doug",
            "Douglas",
            "Doyle",
            "Drew",
            "Duane",
            "Dustin",
            "Dwayne",
            "Dwight",
            "Earl",
            "Earnest",
            "Ed",
            "Eddie",
            "Edgar",
            "Edmond",
            "Edmund",
            "Eduardo",
            "Edward",
            "Edwin",
            "Elbert",
            "Elias",
            "Elijah",
            "Ellis",
            "Elmer",
            "Emanuel",
            "Emilio",
            "Emmett",
            "Enrique",
            "Eric",
            "Erick",
            "Erik",
            "Ernest",
            "Ernesto",
            "Ervin",
            "Eugene",
            "Evan",
            "Everett",
            "Felipe",
            "Felix",
            "Fernando",
            "Floyd",
            "Forrest",
            "Francis",
            "Francisco",
            "Frank",
            "Frankie",
            "Franklin",
            "Fred",
            "Freddie",
            "Frederick",
            "Fredrick",
            "Gabriel",
            "Garrett",
            "Garry",
            "Gary",
            "Gene",
            "Geoffrey",
            "George",
            "Gerald",
            "Gerard",
            "Gerardo",
            "Gilbert",
            "Gilberto",
            "Glen",
            "Glenn",
            "Gordon",
            "Grady",
            "Grant",
            "Greg",
            "Gregg",
            "Gregory",
            "Guadalupe",
            "Guillermo",
            "Gustavo",
            "Guy",
            "Harold",
            "Harry",
            "Harvey",
            "Hector",
            "Henry",
            "Herbert",
            "Herman",
            "Homer",
            "Horace",
            "Howard",
            "Hubert",
            "Hugh",
            "Hugo",
            "Ian",
            "Ignacio",
            "Ira",
            "Irvin",
            "Irving",
            "Isaac",
            "Ismael",
            "Israel",
            "Ivan",
            "Jack",
            "Jackie",
            "Jacob",
            "Jaime",
            "Jake",
            "James",
            "Jamie",
            "Jan",
            "Jared",
            "Jason",
            "Javier",
            "Jay",
            "Jean",
            "Jeff",
            "Jeffery",
            "Jeffrey",
            "Jerald",
            "Jeremiah",
            "Jeremy",
            "Jermaine",
            "Jerome",
            "Jerry",
            "Jesse",
            "Jessie",
            "Jesus",
            "Jim",
            "Jimmie",
            "Jimmy",
            "Jody",
            "Joe",
            "Joel",
            "Joey",
            "John",
            "Johnathan",
            "Johnnie",
            "Johnny",
            "Jon",
            "Jonathan",
            "Jonathon",
            "Jordan",
            "Jorge",
            "Jose",
            "Joseph",
            "Josh",
            "Joshua",
            "Juan",
            "Julian",
            "Julio",
            "Julius",
            "Justin",
            "Karl",
            "Keith",
            "Kelly",
            "Kelvin",
            "Ken",
            "Kenneth",
            "Kenny",
            "Kent",
            "Kerry",
            "Kevin",
            "Kim",
            "Kirk",
            "Kristopher",
            "Kurt",
            "Kyle",
            "Lamar",
            "Lance",
            "Larry",
            "Laurence",
            "Lawrence",
            "Lee",
            "Leland",
            "Leo",
            "Leon",
            "Leonard",
            "Leroy",
            "Leslie",
            "Lester",
            "Levi",
            "Lewis",
            "Lionel",
            "Lloyd",
            "Lonnie",
            "Loren",
            "Lorenzo",
            "Louis",
            "Lowell",
            "Lucas",
            "Luis",
            "Luke",
            "Luther",
            "Lyle",
            "Lynn",
            "Mack",
            "Malcolm",
            "Manuel",
            "Marc",
            "Marco",
            "Marcos",
            "Marcus",
            "Mario",
            "Marion",
            "Mark",
            "Marlon",
            "Marshall",
            "Martin",
            "Marty",
            "Marvin",
            "Mathew",
            "Matt",
            "Matthew",
            "Maurice",
            "Max",
            "Melvin",
            "Merle",
            "Michael",
            "Micheal",
            "Miguel",
            "Mike",
            "Milton",
            "Mitchell",
            "Morris",
            "Moses",
            "Myron",
            "Nathan",
            "Nathaniel",
            "Neal",
            "Neil",
            "Nelson",
            "Nicholas",
            "Nick",
            "Nicolas",
            "Noah",
            "Noel",
            "Norman",
            "Oliver",
            "Omar",
            "Orlando",
            "Orville",
            "Oscar",
            "Otis",
            "Owen",
            "Pablo",
            "Pat",
            "Patrick",
            "Paul",
            "Pedro",
            "Percy",
            "Perry",
            "Pete",
            "Peter",
            "Phil",
            "Philip",
            "Phillip",
            "Preston",
            "Rafael",
            "Ralph",
            "Ramiro",
            "Ramon",
            "Randal",
            "Randall",
            "Randolph",
            "Randy",
            "Raul",
            "Ray",
            "Raymond",
            "Reginald",
            "Rene",
            "Rex",
            "Ricardo",
            "Richard",
            "Rick",
            "Rickey",
            "Ricky",
            "Robert",
            "Roberto",
            "Robin",
            "Roderick",
            "Rodney",
            "Rodolfo",
            "Rogelio",
            "Roger",
            "Roland",
            "Rolando",
            "Roman",
            "Ron",
            "Ronald",
            "Ronnie",
            "Roosevelt",
            "Ross",
            "Roy",
            "Ruben",
            "Rudolph",
            "Rudy",
            "Rufus",
            "Russell",
            "Ryan",
            "Salvador",
            "Salvatore",
            "Sam",
            "Sammy",
            "Samuel",
            "Santiago",
            "Santos",
            "Saul",
            "Scott",
            "Sean",
            "Sergio",
            "Seth",
            "Shane",
            "Shannon",
            "Shaun",
            "Shawn",
            "Sheldon",
            "Sherman",
            "Sidney",
            "Simon",
            "Spencer",
            "Stanley",
            "Stephen",
            "Steve",
            "Steven",
            "Stewart",
            "Stuart",
            "Sylvester",
            "Taylor",
            "Ted",
            "Terence",
            "Terrance",
            "Terrell",
            "Terrence",
            "Terry",
            "Theodore",
            "Thomas",
            "Tim",
            "Timmy",
            "Timothy",
            "Toby",
            "Todd",
            "Tom",
            "Tomas",
            "Tommie",
            "Tommy",
            "Tony",
            "Tracy",
            "Travis",
            "Trevor",
            "Troy",
            "Tyler",
            "Tyrone",
            "Van",
            "Vernon",
            "Victor",
            "Vincent",
            "Virgil",
            "Wade",
            "Wallace",
            "Walter",
            "Warren",
            "Wayne",
            "Wendell",
            "Wesley",
            "Wilbert",
            "Wilbur",
            "Wilfred",
            "Willard",
            "William",
            "Willie",
            "Willis",
            "Wilson",
            "Winston",
            "Wm",
            "Woodrow",
            "Zachary"
        ]
    }, vE = [
        "Agender",
        "Androgyne",
        "Androgynous",
        "Bigender",
        "Cis female",
        "Cis male",
        "Cis man",
        "Cis woman",
        "Cis",
        "Cisgender female",
        "Cisgender male",
        "Cisgender man",
        "Cisgender woman",
        "Cisgender",
        "Demi-boy",
        "Demi-girl",
        "Demi-man",
        "Demi-woman",
        "Demiflux",
        "Demigender",
        "F2M",
        "FTM",
        "Female to male trans man",
        "Female to male transgender man",
        "Female to male transsexual man",
        "Female to male",
        "Gender fluid",
        "Gender neutral",
        "Gender nonconforming",
        "Gender questioning",
        "Gender variant",
        "Genderflux",
        "Genderqueer",
        "Hermaphrodite",
        "Intersex man",
        "Intersex person",
        "Intersex woman",
        "Intersex",
        "M2F",
        "MTF",
        "Male to female trans woman",
        "Male to female transgender woman",
        "Male to female transsexual woman",
        "Male to female",
        "Man",
        "Multigender",
        "Neither",
        "Neutrois",
        "Non-binary",
        "Omnigender",
        "Other",
        "Pangender",
        "Polygender",
        "T* man",
        "T* woman",
        "Trans female",
        "Trans male",
        "Trans man",
        "Trans person",
        "Trans woman",
        "Trans",
        "Transsexual female",
        "Transsexual male",
        "Transsexual man",
        "Transsexual person",
        "Transsexual woman",
        "Transsexual",
        "Transgender female",
        "Transgender person",
        "Transmasculine",
        "Trigender",
        "Two* person",
        "Two-spirit person",
        "Two-spirit",
        "Woman",
        "Xenogender"
    ], yE = [
        "Solutions",
        "Program",
        "Brand",
        "Security",
        "Research",
        "Marketing",
        "Directives",
        "Implementation",
        "Integration",
        "Functionality",
        "Response",
        "Paradigm",
        "Tactics",
        "Identity",
        "Markets",
        "Group",
        "Division",
        "Applications",
        "Optimization",
        "Operations",
        "Infrastructure",
        "Intranet",
        "Communications",
        "Web",
        "Branding",
        "Quality",
        "Assurance",
        "Mobility",
        "Accounts",
        "Data",
        "Creative",
        "Configuration",
        "Accountability",
        "Interactions",
        "Factors",
        "Usability",
        "Metrics"
    ], bE = [
        "Lead",
        "Senior",
        "Direct",
        "Corporate",
        "Dynamic",
        "Future",
        "Product",
        "National",
        "Regional",
        "District",
        "Central",
        "Global",
        "Customer",
        "Investor",
        "International",
        "Legacy",
        "Forward",
        "Internal",
        "Human",
        "Chief",
        "Principal"
    ], FE = [
        "{{person.jobDescriptor}} {{person.jobArea}} {{person.jobType}}"
    ], kE = [
        "Supervisor",
        "Associate",
        "Executive",
        "Liaison",
        "Officer",
        "Manager",
        "Engineer",
        "Specialist",
        "Director",
        "Coordinator",
        "Administrator",
        "Architect",
        "Analyst",
        "Designer",
        "Planner",
        "Orchestrator",
        "Technician",
        "Developer",
        "Producer",
        "Consultant",
        "Assistant",
        "Facilitator",
        "Agent",
        "Representative",
        "Strategist"
    ], xE = {
        generic: [
            "Abbott",
            "Abernathy",
            "Abshire",
            "Adams",
            "Altenwerth",
            "Anderson",
            "Ankunding",
            "Armstrong",
            "Auer",
            "Aufderhar",
            "Bahringer",
            "Bailey",
            "Balistreri",
            "Barrows",
            "Bartell",
            "Bartoletti",
            "Barton",
            "Bashirian",
            "Batz",
            "Bauch",
            "Baumbach",
            "Bayer",
            "Beahan",
            "Beatty",
            "Bechtelar",
            "Becker",
            "Bednar",
            "Beer",
            "Beier",
            "Berge",
            "Bergnaum",
            "Bergstrom",
            "Bernhard",
            "Bernier",
            "Bins",
            "Blanda",
            "Blick",
            "Block",
            "Bode",
            "Boehm",
            "Bogan",
            "Bogisich",
            "Borer",
            "Bosco",
            "Botsford",
            "Boyer",
            "Boyle",
            "Bradtke",
            "Brakus",
            "Braun",
            "Breitenberg",
            "Brekke",
            "Brown",
            "Bruen",
            "Buckridge",
            "Carroll",
            "Carter",
            "Cartwright",
            "Casper",
            "Cassin",
            "Champlin",
            "Christiansen",
            "Cole",
            "Collier",
            "Collins",
            "Conn",
            "Connelly",
            "Conroy",
            "Considine",
            "Corkery",
            "Cormier",
            "Corwin",
            "Cremin",
            "Crist",
            "Crona",
            "Cronin",
            "Crooks",
            "Cruickshank",
            "Cummerata",
            "Cummings",
            "D'Amore",
            "Dach",
            "Daniel",
            "Dare",
            "Daugherty",
            "Davis",
            "Deckow",
            "Denesik",
            "Dibbert",
            "Dickens",
            "Dicki",
            "Dickinson",
            "Dietrich",
            "Donnelly",
            "Dooley",
            "Douglas",
            "Doyle",
            "DuBuque",
            "Durgan",
            "Ebert",
            "Effertz",
            "Emard",
            "Emmerich",
            "Erdman",
            "Ernser",
            "Fadel",
            "Fahey",
            "Farrell",
            "Fay",
            "Feeney",
            "Feest",
            "Feil",
            "Ferry",
            "Fisher",
            "Flatley",
            "Frami",
            "Franecki",
            "Franey",
            "Friesen",
            "Fritsch",
            "Funk",
            "Gerhold",
            "Gerlach",
            "Gibson",
            "Gislason",
            "Gleason",
            "Gleichner",
            "Glover",
            "Goldner",
            "Goodwin",
            "Gorczany",
            "Gottlieb",
            "Goyette",
            "Grady",
            "Graham",
            "Grant",
            "Green",
            "Greenfelder",
            "Greenholt",
            "Grimes",
            "Gulgowski",
            "Gusikowski",
            "Gutkowski",
            "Gutmann",
            "Haag",
            "Hackett",
            "Hagenes",
            "Hahn",
            "Haley",
            "Halvorson",
            "Hamill",
            "Hammes",
            "Hand",
            "Hane",
            "Hansen",
            "Harber",
            "Harris",
            "Hartmann",
            "Harvey",
            "Hauck",
            "Hayes",
            "Heaney",
            "Heathcote",
            "Hegmann",
            "Heidenreich",
            "Heller",
            "Herman",
            "Hermann",
            "Hermiston",
            "Herzog",
            "Hessel",
            "Hettinger",
            "Hickle",
            "Hilll",
            "Hills",
            "Hilpert",
            "Hintz",
            "Hirthe",
            "Hodkiewicz",
            "Hoeger",
            "Homenick",
            "Hoppe",
            "Howe",
            "Howell",
            "Hudson",
            "Huel",
            "Huels",
            "Hyatt",
            "Jacobi",
            "Jacobs",
            "Jacobson",
            "Jakubowski",
            "Jaskolski",
            "Jast",
            "Jenkins",
            "Jerde",
            "Johns",
            "Johnson",
            "Johnston",
            "Jones",
            "Kassulke",
            "Kautzer",
            "Keebler",
            "Keeling",
            "Kemmer",
            "Kerluke",
            "Kertzmann",
            "Kessler",
            "Kiehn",
            "Kihn",
            "Kilback",
            "King",
            "Kirlin",
            "Klein",
            "Kling",
            "Klocko",
            "Koch",
            "Koelpin",
            "Koepp",
            "Kohler",
            "Konopelski",
            "Koss",
            "Kovacek",
            "Kozey",
            "Krajcik",
            "Kreiger",
            "Kris",
            "Kshlerin",
            "Kub",
            "Kuhic",
            "Kuhlman",
            "Kuhn",
            "Kulas",
            "Kunde",
            "Kunze",
            "Kuphal",
            "Kutch",
            "Kuvalis",
            "Labadie",
            "Lakin",
            "Lang",
            "Langosh",
            "Langworth",
            "Larkin",
            "Larson",
            "Leannon",
            "Lebsack",
            "Ledner",
            "Leffler",
            "Legros",
            "Lehner",
            "Lemke",
            "Lesch",
            "Leuschke",
            "Lind",
            "Lindgren",
            "Littel",
            "Little",
            "Lockman",
            "Lowe",
            "Lubowitz",
            "Lueilwitz",
            "Luettgen",
            "Lynch",
            "MacGyver",
            "Macejkovic",
            "Maggio",
            "Mann",
            "Mante",
            "Marks",
            "Marquardt",
            "Marvin",
            "Mayer",
            "Mayert",
            "McClure",
            "McCullough",
            "McDermott",
            "McGlynn",
            "McKenzie",
            "McLaughlin",
            "Medhurst",
            "Mertz",
            "Metz",
            "Miller",
            "Mills",
            "Mitchell",
            "Moen",
            "Mohr",
            "Monahan",
            "Moore",
            "Morar",
            "Morissette",
            "Mosciski",
            "Mraz",
            "Mueller",
            "Muller",
            "Murazik",
            "Murphy",
            "Murray",
            "Nader",
            "Nicolas",
            "Nienow",
            "Nikolaus",
            "Nitzsche",
            "Nolan",
            "O'Connell",
            "O'Conner",
            "O'Hara",
            "O'Keefe",
            "O'Kon",
            "O'Reilly",
            "Oberbrunner",
            "Okuneva",
            "Olson",
            "Ondricka",
            "Orn",
            "Ortiz",
            "Osinski",
            "Pacocha",
            "Padberg",
            "Pagac",
            "Parisian",
            "Parker",
            "Paucek",
            "Pfannerstill",
            "Pfeffer",
            "Pollich",
            "Pouros",
            "Powlowski",
            "Predovic",
            "Price",
            "Prohaska",
            "Prosacco",
            "Purdy",
            "Quigley",
            "Quitzon",
            "Rath",
            "Ratke",
            "Rau",
            "Raynor",
            "Reichel",
            "Reichert",
            "Reilly",
            "Reinger",
            "Rempel",
            "Renner",
            "Reynolds",
            "Rice",
            "Rippin",
            "Ritchie",
            "Robel",
            "Roberts",
            "Rodriguez",
            "Rogahn",
            "Rohan",
            "Rolfson",
            "Romaguera",
            "Roob",
            "Rosenbaum",
            "Rowe",
            "Ruecker",
            "Runolfsdottir",
            "Runolfsson",
            "Runte",
            "Russel",
            "Rutherford",
            "Ryan",
            "Sanford",
            "Satterfield",
            "Sauer",
            "Sawayn",
            "Schaden",
            "Schaefer",
            "Schamberger",
            "Schiller",
            "Schimmel",
            "Schinner",
            "Schmeler",
            "Schmidt",
            "Schmitt",
            "Schneider",
            "Schoen",
            "Schowalter",
            "Schroeder",
            "Schulist",
            "Schultz",
            "Schumm",
            "Schuppe",
            "Schuster",
            "Senger",
            "Shanahan",
            "Shields",
            "Simonis",
            "Sipes",
            "Skiles",
            "Smith",
            "Smitham",
            "Spencer",
            "Spinka",
            "Sporer",
            "Stamm",
            "Stanton",
            "Stark",
            "Stehr",
            "Steuber",
            "Stiedemann",
            "Stokes",
            "Stoltenberg",
            "Stracke",
            "Streich",
            "Stroman",
            "Strosin",
            "Swaniawski",
            "Swift",
            "Terry",
            "Thiel",
            "Thompson",
            "Tillman",
            "Torp",
            "Torphy",
            "Towne",
            "Toy",
            "Trantow",
            "Tremblay",
            "Treutel",
            "Tromp",
            "Turcotte",
            "Turner",
            "Ullrich",
            "Upton",
            "Vandervort",
            "Veum",
            "Volkman",
            "Von",
            "VonRueden",
            "Waelchi",
            "Walker",
            "Walsh",
            "Walter",
            "Ward",
            "Waters",
            "Watsica",
            "Weber",
            "Wehner",
            "Weimann",
            "Weissnat",
            "Welch",
            "West",
            "White",
            "Wiegand",
            "Wilderman",
            "Wilkinson",
            "Will",
            "Williamson",
            "Willms",
            "Windler",
            "Wintheiser",
            "Wisoky",
            "Wisozk",
            "Witting",
            "Wiza",
            "Wolf",
            "Wolff",
            "Wuckert",
            "Wunsch",
            "Wyman",
            "Yost",
            "Yundt",
            "Zboncak",
            "Zemlak",
            "Ziemann",
            "Zieme",
            "Zulauf"
        ]
    }, wE = {
        generic: [
            {
                value: "{{person.last_name.generic}}",
                weight: 95
            },
            {
                value: "{{person.last_name.generic}}-{{person.last_name.generic}}",
                weight: 5
            }
        ]
    }, SE = {
        generic: [
            "Addison",
            "Alex",
            "Anderson",
            "Angel",
            "Arden",
            "August",
            "Austin",
            "Avery",
            "Bailey",
            "Billie",
            "Blake",
            "Bowie",
            "Brooklyn",
            "Cameron",
            "Charlie",
            "Corey",
            "Dakota",
            "Drew",
            "Elliott",
            "Ellis",
            "Emerson",
            "Finley",
            "Gray",
            "Greer",
            "Harper",
            "Hayden",
            "Jaden",
            "James",
            "Jamie",
            "Jordan",
            "Jules",
            "Kai",
            "Kendall",
            "Kennedy",
            "Kyle",
            "Leslie",
            "Logan",
            "London",
            "Marlowe",
            "Micah",
            "Nico",
            "Noah",
            "North",
            "Parker",
            "Phoenix",
            "Quinn",
            "Reagan",
            "Reese",
            "Reign",
            "Riley",
            "River",
            "Robin",
            "Rory",
            "Rowan",
            "Ryan",
            "Sage",
            "Sasha",
            "Sawyer",
            "Shawn",
            "Shiloh",
            "Skyler",
            "Taylor"
        ],
        female: [
            "Abigail",
            "Adele",
            "Alex",
            "Alice",
            "Alisha",
            "Amber",
            "Amelia",
            "Amora",
            "Anaïs",
            "Angelou",
            "Anika",
            "Anise",
            "Annabel",
            "Anne",
            "Aphrodite",
            "Aretha",
            "Arya",
            "Ashton",
            "Aster",
            "Audrey",
            "Avery",
            "Bailee",
            "Bay",
            "Belle",
            "Beth",
            "Billie",
            "Blair",
            "Blaise",
            "Blake",
            "Blanche",
            "Blue",
            "Bree",
            "Brielle",
            "Brienne",
            "Brooke",
            "Caleen",
            "Candice",
            "Caprice",
            "Carelyn",
            "Caylen",
            "Celine",
            "Cerise",
            "Cia",
            "Claire",
            "Claudia",
            "Clementine",
            "Coral",
            "Coraline",
            "Dahlia",
            "Dakota",
            "Dawn",
            "Della",
            "Demi",
            "Denise",
            "Denver",
            "Devine",
            "Devon",
            "Diana",
            "Dylan",
            "Ebony",
            "Eden",
            "Eleanor",
            "Elein",
            "Elizabeth",
            "Ellen",
            "Elodie",
            "Eloise",
            "Ember",
            "Emma",
            "Erin",
            "Eyre",
            "Faith",
            "Farrah",
            "Fawn",
            "Fayre",
            "Fern",
            "France",
            "Francis",
            "Frida",
            "Genisis",
            "Georgia",
            "Grace",
            "Gwen",
            "Harley",
            "Harper",
            "Hazel",
            "Helen",
            "Hippolyta",
            "Holly",
            "Hope",
            "Imani",
            "Iowa",
            "Ireland",
            "Irene",
            "Iris",
            "Isa",
            "Isla",
            "Ivy",
            "Jade",
            "Jane",
            "Jazz",
            "Jean",
            "Jess",
            "Jett",
            "Jo",
            "Joan",
            "Jolie",
            "Jordan",
            "Josie",
            "Journey",
            "Joy",
            "Jules",
            "Julien",
            "Juliet",
            "Juniper",
            "Justice",
            "Kali",
            "Karma",
            "Kat",
            "Kate",
            "Kennedy",
            "Keva",
            "Kylie",
            "Lake",
            "Lane",
            "Lark",
            "Layla",
            "Lee",
            "Leigh",
            "Leona",
            "Lexi",
            "London",
            "Lou",
            "Louise",
            "Love",
            "Luna",
            "Lux",
            "Lynn",
            "Lyric",
            "Maddie",
            "Mae",
            "Marie",
            "Matilda",
            "Maude",
            "Maybel",
            "Meadow",
            "Medusa",
            "Mercy",
            "Michelle",
            "Mirabel",
            "Monroe",
            "Morgan",
            "Nalia",
            "Naomi",
            "Nova",
            "Olive",
            "Paige",
            "Parker",
            "Pax",
            "Pearl",
            "Penelope",
            "Phoenix",
            "Quinn",
            "Rae",
            "Rain",
            "Raven",
            "Ray",
            "Raye",
            "Rebel",
            "Reese",
            "Reeve",
            "Regan",
            "Riley",
            "River",
            "Robin",
            "Rory",
            "Rose",
            "Royal",
            "Ruth",
            "Rylie",
            "Sage",
            "Sam",
            "Saturn",
            "Scout",
            "Serena",
            "Sky",
            "Skylar",
            "Sofia",
            "Sophia",
            "Storm",
            "Sue",
            "Suzanne",
            "Sydney",
            "Taylen",
            "Taylor",
            "Teagan",
            "Tempest",
            "Tenley",
            "Thea",
            "Trinity",
            "Valerie",
            "Venus",
            "Vera",
            "Violet",
            "Willow",
            "Winter",
            "Xena",
            "Zaylee",
            "Zion",
            "Zoe"
        ],
        male: [
            "Ace",
            "Aiden",
            "Alexander",
            "Ander",
            "Anthony",
            "Asher",
            "August",
            "Aziel",
            "Bear",
            "Beckham",
            "Benjamin",
            "Buddy",
            "Calvin",
            "Carter",
            "Charles",
            "Christopher",
            "Clyde",
            "Cooper",
            "Daniel",
            "David",
            "Dior",
            "Dylan",
            "Elijah",
            "Ellis",
            "Emerson",
            "Ethan",
            "Ezra",
            "Fletcher",
            "Flynn",
            "Gabriel",
            "Grayson",
            "Gus",
            "Hank",
            "Harrison",
            "Hendrix",
            "Henry",
            "Houston",
            "Hudson",
            "Hugh",
            "Isaac",
            "Jack",
            "Jackson",
            "Jacob",
            "Jakobe",
            "James",
            "Jaxon",
            "Jaxtyn",
            "Jayden",
            "John",
            "Joseph",
            "Josiah",
            "Jude",
            "Julian",
            "Karsyn",
            "Kenji",
            "Kobe",
            "Kylo",
            "Lennon",
            "Leo",
            "Levi",
            "Liam",
            "Lincoln",
            "Logan",
            "Louis",
            "Lucas",
            "Lucky",
            "Luke",
            "Mason",
            "Mateo",
            "Matthew",
            "Maverick",
            "Michael",
            "Monroe",
            "Nixon",
            "Ocean",
            "Oliver",
            "Otis",
            "Otto",
            "Owen",
            "Ozzy",
            "Parker",
            "Rocky",
            "Samuel",
            "Sebastian",
            "Sonny",
            "Teddy",
            "Theo",
            "Theodore",
            "Thomas",
            "Truett",
            "Walter",
            "Warren",
            "Watson",
            "William",
            "Wison",
            "Wyatt",
            "Ziggy",
            "Zyair"
        ]
    }, CE = [
        {
            value: "{{person.firstName}} {{person.lastName}}",
            weight: 49
        },
        {
            value: "{{person.prefix}} {{person.firstName}} {{person.lastName}}",
            weight: 7
        },
        {
            value: "{{person.firstName}} {{person.lastName}} {{person.suffix}}",
            weight: 7
        },
        {
            value: "{{person.prefix}} {{person.firstName}} {{person.lastName}} {{person.suffix}}",
            weight: 1
        }
    ], AE = {
        generic: [
            "Dr.",
            "Miss",
            "Mr.",
            "Mrs.",
            "Ms."
        ],
        female: [
            "Dr.",
            "Miss",
            "Mrs.",
            "Ms."
        ],
        male: [
            "Dr.",
            "Mr."
        ]
    }, DE = [
        "female",
        "male"
    ], TE = [
        "Jr.",
        "Sr.",
        "I",
        "II",
        "III",
        "IV",
        "V",
        "MD",
        "DDS",
        "PhD",
        "DVM"
    ], EE = [
        "Aquarius",
        "Pisces",
        "Aries",
        "Taurus",
        "Gemini",
        "Cancer",
        "Leo",
        "Virgo",
        "Libra",
        "Scorpio",
        "Sagittarius",
        "Capricorn"
    ], _E = {
        bio_part: mE,
        bio_pattern: fE,
        bio_supporter: pE,
        first_name: gE,
        gender: vE,
        job_area: yE,
        job_descriptor: bE,
        job_title_pattern: FE,
        job_type: kE,
        last_name: xE,
        last_name_pattern: wE,
        middle_name: SE,
        name: CE,
        prefix: AE,
        sex: DE,
        suffix: TE,
        western_zodiac_sign: EE
    }, PE = _E, BE = [
        "!##-!##-####",
        "(!##) !##-####",
        "1-!##-!##-####",
        "!##.!##.####",
        "!##-!##-#### x###",
        "(!##) !##-#### x###",
        "1-!##-!##-#### x###",
        "!##.!##.#### x###",
        "!##-!##-#### x####",
        "(!##) !##-#### x####",
        "1-!##-!##-#### x####",
        "!##.!##.#### x####",
        "!##-!##-#### x#####",
        "(!##) !##-#### x#####",
        "1-!##-!##-#### x#####",
        "!##.!##.#### x#####"
    ], ME = [
        "+1!##!######"
    ], RE = [
        "(!##) !##-####"
    ], LE = {
        human: BE,
        international: ME,
        national: RE
    }, IE = LE, zE = {
        format: IE
    }, NE = zE, OE = [
        {
            symbol: "H",
            name: "Hydrogen",
            atomicNumber: 1
        },
        {
            symbol: "He",
            name: "Helium",
            atomicNumber: 2
        },
        {
            symbol: "Li",
            name: "Lithium",
            atomicNumber: 3
        },
        {
            symbol: "Be",
            name: "Beryllium",
            atomicNumber: 4
        },
        {
            symbol: "B",
            name: "Boron",
            atomicNumber: 5
        },
        {
            symbol: "C",
            name: "Carbon",
            atomicNumber: 6
        },
        {
            symbol: "N",
            name: "Nitrogen",
            atomicNumber: 7
        },
        {
            symbol: "O",
            name: "Oxygen",
            atomicNumber: 8
        },
        {
            symbol: "F",
            name: "Fluorine",
            atomicNumber: 9
        },
        {
            symbol: "Ne",
            name: "Neon",
            atomicNumber: 10
        },
        {
            symbol: "Na",
            name: "Sodium",
            atomicNumber: 11
        },
        {
            symbol: "Mg",
            name: "Magnesium",
            atomicNumber: 12
        },
        {
            symbol: "Al",
            name: "Aluminium",
            atomicNumber: 13
        },
        {
            symbol: "Si",
            name: "Silicon",
            atomicNumber: 14
        },
        {
            symbol: "P",
            name: "Phosphorus",
            atomicNumber: 15
        },
        {
            symbol: "S",
            name: "Sulfur",
            atomicNumber: 16
        },
        {
            symbol: "Cl",
            name: "Chlorine",
            atomicNumber: 17
        },
        {
            symbol: "Ar",
            name: "Argon",
            atomicNumber: 18
        },
        {
            symbol: "K",
            name: "Potassium",
            atomicNumber: 19
        },
        {
            symbol: "Ca",
            name: "Calcium",
            atomicNumber: 20
        },
        {
            symbol: "Sc",
            name: "Scandium",
            atomicNumber: 21
        },
        {
            symbol: "Ti",
            name: "Titanium",
            atomicNumber: 22
        },
        {
            symbol: "V",
            name: "Vanadium",
            atomicNumber: 23
        },
        {
            symbol: "Cr",
            name: "Chromium",
            atomicNumber: 24
        },
        {
            symbol: "Mn",
            name: "Manganese",
            atomicNumber: 25
        },
        {
            symbol: "Fe",
            name: "Iron",
            atomicNumber: 26
        },
        {
            symbol: "Co",
            name: "Cobalt",
            atomicNumber: 27
        },
        {
            symbol: "Ni",
            name: "Nickel",
            atomicNumber: 28
        },
        {
            symbol: "Cu",
            name: "Copper",
            atomicNumber: 29
        },
        {
            symbol: "Zn",
            name: "Zinc",
            atomicNumber: 30
        },
        {
            symbol: "Ga",
            name: "Gallium",
            atomicNumber: 31
        },
        {
            symbol: "Ge",
            name: "Germanium",
            atomicNumber: 32
        },
        {
            symbol: "As",
            name: "Arsenic",
            atomicNumber: 33
        },
        {
            symbol: "Se",
            name: "Selenium",
            atomicNumber: 34
        },
        {
            symbol: "Br",
            name: "Bromine",
            atomicNumber: 35
        },
        {
            symbol: "Kr",
            name: "Krypton",
            atomicNumber: 36
        },
        {
            symbol: "Rb",
            name: "Rubidium",
            atomicNumber: 37
        },
        {
            symbol: "Sr",
            name: "Strontium",
            atomicNumber: 38
        },
        {
            symbol: "Y",
            name: "Yttrium",
            atomicNumber: 39
        },
        {
            symbol: "Zr",
            name: "Zirconium",
            atomicNumber: 40
        },
        {
            symbol: "Nb",
            name: "Niobium",
            atomicNumber: 41
        },
        {
            symbol: "Mo",
            name: "Molybdenum",
            atomicNumber: 42
        },
        {
            symbol: "Tc",
            name: "Technetium",
            atomicNumber: 43
        },
        {
            symbol: "Ru",
            name: "Ruthenium",
            atomicNumber: 44
        },
        {
            symbol: "Rh",
            name: "Rhodium",
            atomicNumber: 45
        },
        {
            symbol: "Pd",
            name: "Palladium",
            atomicNumber: 46
        },
        {
            symbol: "Ag",
            name: "Silver",
            atomicNumber: 47
        },
        {
            symbol: "Cd",
            name: "Cadmium",
            atomicNumber: 48
        },
        {
            symbol: "In",
            name: "Indium",
            atomicNumber: 49
        },
        {
            symbol: "Sn",
            name: "Tin",
            atomicNumber: 50
        },
        {
            symbol: "Sb",
            name: "Antimony",
            atomicNumber: 51
        },
        {
            symbol: "Te",
            name: "Tellurium",
            atomicNumber: 52
        },
        {
            symbol: "I",
            name: "Iodine",
            atomicNumber: 53
        },
        {
            symbol: "Xe",
            name: "Xenon",
            atomicNumber: 54
        },
        {
            symbol: "Cs",
            name: "Caesium",
            atomicNumber: 55
        },
        {
            symbol: "Ba",
            name: "Barium",
            atomicNumber: 56
        },
        {
            symbol: "La",
            name: "Lanthanum",
            atomicNumber: 57
        },
        {
            symbol: "Ce",
            name: "Cerium",
            atomicNumber: 58
        },
        {
            symbol: "Pr",
            name: "Praseodymium",
            atomicNumber: 59
        },
        {
            symbol: "Nd",
            name: "Neodymium",
            atomicNumber: 60
        },
        {
            symbol: "Pm",
            name: "Promethium",
            atomicNumber: 61
        },
        {
            symbol: "Sm",
            name: "Samarium",
            atomicNumber: 62
        },
        {
            symbol: "Eu",
            name: "Europium",
            atomicNumber: 63
        },
        {
            symbol: "Gd",
            name: "Gadolinium",
            atomicNumber: 64
        },
        {
            symbol: "Tb",
            name: "Terbium",
            atomicNumber: 65
        },
        {
            symbol: "Dy",
            name: "Dysprosium",
            atomicNumber: 66
        },
        {
            symbol: "Ho",
            name: "Holmium",
            atomicNumber: 67
        },
        {
            symbol: "Er",
            name: "Erbium",
            atomicNumber: 68
        },
        {
            symbol: "Tm",
            name: "Thulium",
            atomicNumber: 69
        },
        {
            symbol: "Yb",
            name: "Ytterbium",
            atomicNumber: 70
        },
        {
            symbol: "Lu",
            name: "Lutetium",
            atomicNumber: 71
        },
        {
            symbol: "Hf",
            name: "Hafnium",
            atomicNumber: 72
        },
        {
            symbol: "Ta",
            name: "Tantalum",
            atomicNumber: 73
        },
        {
            symbol: "W",
            name: "Tungsten",
            atomicNumber: 74
        },
        {
            symbol: "Re",
            name: "Rhenium",
            atomicNumber: 75
        },
        {
            symbol: "Os",
            name: "Osmium",
            atomicNumber: 76
        },
        {
            symbol: "Ir",
            name: "Iridium",
            atomicNumber: 77
        },
        {
            symbol: "Pt",
            name: "Platinum",
            atomicNumber: 78
        },
        {
            symbol: "Au",
            name: "Gold",
            atomicNumber: 79
        },
        {
            symbol: "Hg",
            name: "Mercury",
            atomicNumber: 80
        },
        {
            symbol: "Tl",
            name: "Thallium",
            atomicNumber: 81
        },
        {
            symbol: "Pb",
            name: "Lead",
            atomicNumber: 82
        },
        {
            symbol: "Bi",
            name: "Bismuth",
            atomicNumber: 83
        },
        {
            symbol: "Po",
            name: "Polonium",
            atomicNumber: 84
        },
        {
            symbol: "At",
            name: "Astatine",
            atomicNumber: 85
        },
        {
            symbol: "Rn",
            name: "Radon",
            atomicNumber: 86
        },
        {
            symbol: "Fr",
            name: "Francium",
            atomicNumber: 87
        },
        {
            symbol: "Ra",
            name: "Radium",
            atomicNumber: 88
        },
        {
            symbol: "Ac",
            name: "Actinium",
            atomicNumber: 89
        },
        {
            symbol: "Th",
            name: "Thorium",
            atomicNumber: 90
        },
        {
            symbol: "Pa",
            name: "Protactinium",
            atomicNumber: 91
        },
        {
            symbol: "U",
            name: "Uranium",
            atomicNumber: 92
        },
        {
            symbol: "Np",
            name: "Neptunium",
            atomicNumber: 93
        },
        {
            symbol: "Pu",
            name: "Plutonium",
            atomicNumber: 94
        },
        {
            symbol: "Am",
            name: "Americium",
            atomicNumber: 95
        },
        {
            symbol: "Cm",
            name: "Curium",
            atomicNumber: 96
        },
        {
            symbol: "Bk",
            name: "Berkelium",
            atomicNumber: 97
        },
        {
            symbol: "Cf",
            name: "Californium",
            atomicNumber: 98
        },
        {
            symbol: "Es",
            name: "Einsteinium",
            atomicNumber: 99
        },
        {
            symbol: "Fm",
            name: "Fermium",
            atomicNumber: 100
        },
        {
            symbol: "Md",
            name: "Mendelevium",
            atomicNumber: 101
        },
        {
            symbol: "No",
            name: "Nobelium",
            atomicNumber: 102
        },
        {
            symbol: "Lr",
            name: "Lawrencium",
            atomicNumber: 103
        },
        {
            symbol: "Rf",
            name: "Rutherfordium",
            atomicNumber: 104
        },
        {
            symbol: "Db",
            name: "Dubnium",
            atomicNumber: 105
        },
        {
            symbol: "Sg",
            name: "Seaborgium",
            atomicNumber: 106
        },
        {
            symbol: "Bh",
            name: "Bohrium",
            atomicNumber: 107
        },
        {
            symbol: "Hs",
            name: "Hassium",
            atomicNumber: 108
        },
        {
            symbol: "Mt",
            name: "Meitnerium",
            atomicNumber: 109
        },
        {
            symbol: "Ds",
            name: "Darmstadtium",
            atomicNumber: 110
        },
        {
            symbol: "Rg",
            name: "Roentgenium",
            atomicNumber: 111
        },
        {
            symbol: "Cn",
            name: "Copernicium",
            atomicNumber: 112
        },
        {
            symbol: "Nh",
            name: "Nihonium",
            atomicNumber: 113
        },
        {
            symbol: "Fl",
            name: "Flerovium",
            atomicNumber: 114
        },
        {
            symbol: "Mc",
            name: "Moscovium",
            atomicNumber: 115
        },
        {
            symbol: "Lv",
            name: "Livermorium",
            atomicNumber: 116
        },
        {
            symbol: "Ts",
            name: "Tennessine",
            atomicNumber: 117
        },
        {
            symbol: "Og",
            name: "Oganesson",
            atomicNumber: 118
        }
    ], HE = [
        {
            name: "meter",
            symbol: "m"
        },
        {
            name: "second",
            symbol: "s"
        },
        {
            name: "mole",
            symbol: "mol"
        },
        {
            name: "ampere",
            symbol: "A"
        },
        {
            name: "kelvin",
            symbol: "K"
        },
        {
            name: "candela",
            symbol: "cd"
        },
        {
            name: "kilogram",
            symbol: "kg"
        },
        {
            name: "radian",
            symbol: "rad"
        },
        {
            name: "hertz",
            symbol: "Hz"
        },
        {
            name: "newton",
            symbol: "N"
        },
        {
            name: "pascal",
            symbol: "Pa"
        },
        {
            name: "joule",
            symbol: "J"
        },
        {
            name: "watt",
            symbol: "W"
        },
        {
            name: "coulomb",
            symbol: "C"
        },
        {
            name: "volt",
            symbol: "V"
        },
        {
            name: "ohm",
            symbol: "Ω"
        },
        {
            name: "tesla",
            symbol: "T"
        },
        {
            name: "degree Celsius",
            symbol: "°C"
        },
        {
            name: "lumen",
            symbol: "lm"
        },
        {
            name: "becquerel",
            symbol: "Bq"
        },
        {
            name: "gray",
            symbol: "Gy"
        },
        {
            name: "sievert",
            symbol: "Sv"
        },
        {
            name: "steradian",
            symbol: "sr"
        },
        {
            name: "farad",
            symbol: "F"
        },
        {
            name: "siemens",
            symbol: "S"
        },
        {
            name: "weber",
            symbol: "Wb"
        },
        {
            name: "henry",
            symbol: "H"
        },
        {
            name: "lux",
            symbol: "lx"
        },
        {
            name: "katal",
            symbol: "kat"
        }
    ], VE = {
        chemical_element: OE,
        unit: HE
    }, WE = VE, GE = [
        "ants",
        "bats",
        "bears",
        "bees",
        "birds",
        "buffalo",
        "cats",
        "chickens",
        "cattle",
        "dogs",
        "dolphins",
        "ducks",
        "elephants",
        "fishes",
        "foxes",
        "frogs",
        "geese",
        "goats",
        "horses",
        "kangaroos",
        "lions",
        "monkeys",
        "owls",
        "oxen",
        "penguins",
        "people",
        "pigs",
        "rabbits",
        "sheep",
        "tigers",
        "whales",
        "wolves",
        "zebras",
        "banshees",
        "crows",
        "black cats",
        "chimeras",
        "ghosts",
        "conspirators",
        "dragons",
        "dwarves",
        "elves",
        "enchanters",
        "exorcists",
        "sons",
        "foes",
        "giants",
        "gnomes",
        "goblins",
        "gooses",
        "griffins",
        "lycanthropes",
        "nemesis",
        "ogres",
        "oracles",
        "prophets",
        "sorcerors",
        "spiders",
        "spirits",
        "vampires",
        "warlocks",
        "vixens",
        "werewolves",
        "witches",
        "worshipers",
        "zombies",
        "druids"
    ], $E = [
        "{{location.state}} {{team.creature}}"
    ], UE = {
        creature: GE,
        name: $E
    }, jE = UE, YE = [
        "Adventure Road Bicycle",
        "BMX Bicycle",
        "City Bicycle",
        "Cruiser Bicycle",
        "Cyclocross Bicycle",
        "Dual-Sport Bicycle",
        "Fitness Bicycle",
        "Flat-Foot Comfort Bicycle",
        "Folding Bicycle",
        "Hybrid Bicycle",
        "Mountain Bicycle",
        "Recumbent Bicycle",
        "Road Bicycle",
        "Tandem Bicycle",
        "Touring Bicycle",
        "Track/Fixed-Gear Bicycle",
        "Triathlon/Time Trial Bicycle",
        "Tricycle"
    ], qE = [
        "Diesel",
        "Electric",
        "Gasoline",
        "Hybrid"
    ], KE = [
        "Aston Martin",
        "Audi",
        "BMW",
        "BYD",
        "Bentley",
        "Bugatti",
        "Cadillac",
        "Chevrolet",
        "Chrysler",
        "Citroën",
        "Dodge",
        "Ferrari",
        "Fiat",
        "Ford",
        "Honda",
        "Hyundai",
        "Jaguar",
        "Jeep",
        "Kia",
        "Lamborghini",
        "Land Rover",
        "MG",
        "Mahindra & Mahindra",
        "Maruti",
        "Maserati",
        "Mazda",
        "Mercedes Benz",
        "Mini",
        "Mitsubishi",
        "NIO",
        "Nissan",
        "Peugeot",
        "Polestar",
        "Porsche",
        "Renault",
        "Rivian",
        "Rolls Royce",
        "Skoda",
        "Smart",
        "Subaru",
        "Suzuki",
        "Tata",
        "Tesla",
        "Toyota",
        "Vauxhall",
        "Volkswagen",
        "Volvo"
    ], XE = [
        "1",
        "2",
        "911",
        "A4",
        "A8",
        "ATS",
        "Accord",
        "Alpine",
        "Altima",
        "Aventador",
        "Beetle",
        "CTS",
        "CX-9",
        "Camaro",
        "Camry",
        "Challenger",
        "Charger",
        "Civic",
        "Colorado",
        "Corvette",
        "Countach",
        "Cruze",
        "Durango",
        "El Camino",
        "Element",
        "Escalade",
        "Expedition",
        "Explorer",
        "F-150",
        "Fiesta",
        "Focus",
        "Fortwo",
        "Golf",
        "Grand Caravan",
        "Grand Cherokee",
        "Impala",
        "Jetta",
        "Land Cruiser",
        "LeBaron",
        "Malibu",
        "Mercielago",
        "Model 3",
        "Model S",
        "Model T",
        "Model X",
        "Model Y",
        "Mustang",
        "PT Cruiser",
        "Prius",
        "Ranchero",
        "Roadster",
        "Sentra",
        "Silverado",
        "Spyder",
        "Taurus",
        "V90",
        "Volt",
        "Wrangler",
        "XC90",
        "XTS"
    ], JE = [
        "Cargo Van",
        "Convertible",
        "Coupe",
        "Crew Cab Pickup",
        "Extended Cab Pickup",
        "Hatchback",
        "Minivan",
        "Passenger Van",
        "SUV",
        "Sedan",
        "Wagon"
    ], ZE = {
        bicycle_type: YE,
        fuel: qE,
        manufacturer: KE,
        model: XE,
        type: JE
    }, QE = ZE, e_ = [
        "abandoned",
        "able",
        "acceptable",
        "acclaimed",
        "accomplished",
        "accurate",
        "aching",
        "acidic",
        "actual",
        "admired",
        "adolescent",
        "advanced",
        "affectionate",
        "afraid",
        "aged",
        "aggravating",
        "aggressive",
        "agile",
        "agitated",
        "agreeable",
        "ajar",
        "alarmed",
        "alert",
        "alienated",
        "alive",
        "all",
        "altruistic",
        "amazing",
        "ambitious",
        "ample",
        "amused",
        "angelic",
        "anguished",
        "animated",
        "annual",
        "another",
        "antique",
        "any",
        "apprehensive",
        "appropriate",
        "apt",
        "arid",
        "artistic",
        "ashamed",
        "assured",
        "astonishing",
        "athletic",
        "austere",
        "authentic",
        "authorized",
        "avaricious",
        "average",
        "aware",
        "awesome",
        "awful",
        "babyish",
        "back",
        "bad",
        "baggy",
        "bare",
        "basic",
        "beloved",
        "beneficial",
        "best",
        "better",
        "big",
        "biodegradable",
        "bitter",
        "black",
        "black-and-white",
        "blank",
        "blaring",
        "bleak",
        "blind",
        "blond",
        "blue",
        "blushing",
        "bogus",
        "boiling",
        "bony",
        "boring",
        "bossy",
        "both",
        "bouncy",
        "bowed",
        "brave",
        "breakable",
        "bright",
        "brilliant",
        "brisk",
        "broken",
        "brown",
        "bruised",
        "bulky",
        "burdensome",
        "burly",
        "bustling",
        "busy",
        "buttery",
        "buzzing",
        "calculating",
        "candid",
        "carefree",
        "careless",
        "caring",
        "cautious",
        "cavernous",
        "celebrated",
        "charming",
        "cheap",
        "cheerful",
        "chilly",
        "chubby",
        "circular",
        "classic",
        "clean",
        "clear",
        "clear-cut",
        "close",
        "closed",
        "cloudy",
        "clueless",
        "clumsy",
        "cluttered",
        "coarse",
        "colorful",
        "colorless",
        "colossal",
        "comfortable",
        "common",
        "compassionate",
        "competent",
        "complete",
        "complicated",
        "concerned",
        "concrete",
        "confused",
        "considerate",
        "content",
        "cool",
        "cooperative",
        "coordinated",
        "corny",
        "corrupt",
        "courageous",
        "courteous",
        "crafty",
        "crazy",
        "creamy",
        "creative",
        "criminal",
        "critical",
        "crooked",
        "crowded",
        "cruel",
        "crushing",
        "cuddly",
        "cultivated",
        "cumbersome",
        "curly",
        "cute",
        "damaged",
        "damp",
        "dapper",
        "dark",
        "darling",
        "dazzling",
        "dead",
        "deadly",
        "deafening",
        "dearest",
        "decent",
        "decisive",
        "deep",
        "defenseless",
        "defensive",
        "deficient",
        "definite",
        "definitive",
        "delectable",
        "delicious",
        "delirious",
        "dense",
        "dental",
        "dependable",
        "dependent",
        "descriptive",
        "deserted",
        "determined",
        "devoted",
        "different",
        "difficult",
        "digital",
        "diligent",
        "dim",
        "direct",
        "dirty",
        "discrete",
        "disloyal",
        "dismal",
        "distant",
        "distinct",
        "distorted",
        "doting",
        "downright",
        "drab",
        "dramatic",
        "dreary",
        "dual",
        "dull",
        "dutiful",
        "each",
        "early",
        "earnest",
        "easy",
        "ecstatic",
        "edible",
        "educated",
        "elastic",
        "elderly",
        "electric",
        "elegant",
        "elementary",
        "elliptical",
        "eminent",
        "emotional",
        "empty",
        "enchanted",
        "enchanting",
        "energetic",
        "enlightened",
        "enraged",
        "entire",
        "equatorial",
        "essential",
        "esteemed",
        "ethical",
        "everlasting",
        "every",
        "evil",
        "exalted",
        "excellent",
        "excitable",
        "excited",
        "exhausted",
        "exotic",
        "expensive",
        "experienced",
        "expert",
        "extra-large",
        "extroverted",
        "failing",
        "faint",
        "fair",
        "fake",
        "familiar",
        "fantastic",
        "far",
        "far-flung",
        "far-off",
        "faraway",
        "fat",
        "fatal",
        "fatherly",
        "favorable",
        "favorite",
        "fearless",
        "feline",
        "filthy",
        "fine",
        "finished",
        "firm",
        "first",
        "firsthand",
        "fixed",
        "flashy",
        "flawed",
        "flawless",
        "flickering",
        "flimsy",
        "flowery",
        "fluffy",
        "flustered",
        "focused",
        "fond",
        "foolhardy",
        "foolish",
        "forceful",
        "formal",
        "forsaken",
        "fortunate",
        "fragrant",
        "frail",
        "frank",
        "free",
        "french",
        "frequent",
        "friendly",
        "frightened",
        "frilly",
        "frivolous",
        "frizzy",
        "front",
        "frozen",
        "frugal",
        "fruitful",
        "functional",
        "funny",
        "fussy",
        "fuzzy",
        "gaseous",
        "general",
        "gentle",
        "genuine",
        "gifted",
        "gigantic",
        "giving",
        "glaring",
        "glass",
        "gleaming",
        "glittering",
        "gloomy",
        "glorious",
        "glossy",
        "glum",
        "golden",
        "good",
        "good-natured",
        "gorgeous",
        "graceful",
        "gracious",
        "grandiose",
        "granular",
        "grave",
        "gray",
        "great",
        "greedy",
        "grim",
        "grimy",
        "gripping",
        "grizzled",
        "grouchy",
        "grounded",
        "growing",
        "grown",
        "grubby",
        "gruesome",
        "grumpy",
        "guilty",
        "gullible",
        "gummy",
        "hairy",
        "handsome",
        "handy",
        "happy",
        "happy-go-lucky",
        "hard-to-find",
        "harmful",
        "hasty",
        "hateful",
        "haunting",
        "heartfelt",
        "heavenly",
        "heavy",
        "hefty",
        "helpful",
        "helpless",
        "hidden",
        "hoarse",
        "hollow",
        "homely",
        "honorable",
        "honored",
        "hopeful",
        "hospitable",
        "hot",
        "huge",
        "humble",
        "humiliating",
        "hungry",
        "hurtful",
        "husky",
        "icy",
        "ideal",
        "idealistic",
        "idolized",
        "ignorant",
        "ill",
        "ill-fated",
        "illiterate",
        "illustrious",
        "imaginary",
        "imaginative",
        "immaculate",
        "immediate",
        "immense",
        "impartial",
        "impassioned",
        "impeccable",
        "impish",
        "impolite",
        "important",
        "impossible",
        "impractical",
        "impressionable",
        "impressive",
        "improbable",
        "impure",
        "inborn",
        "incomparable",
        "incomplete",
        "inconsequential",
        "indelible",
        "indolent",
        "inexperienced",
        "infamous",
        "infatuated",
        "inferior",
        "infinite",
        "informal",
        "innocent",
        "insecure",
        "insidious",
        "insignificant",
        "insistent",
        "instructive",
        "intelligent",
        "intent",
        "interesting",
        "internal",
        "international",
        "intrepid",
        "ironclad",
        "irresponsible",
        "jagged",
        "jam-packed",
        "jaunty",
        "jealous",
        "jittery",
        "joyful",
        "joyous",
        "jubilant",
        "judicious",
        "juicy",
        "jumbo",
        "junior",
        "juvenile",
        "kaleidoscopic",
        "key",
        "knotty",
        "knowledgeable",
        "known",
        "kooky",
        "kosher",
        "lanky",
        "last",
        "lasting",
        "late",
        "lavish",
        "lawful",
        "lazy",
        "leading",
        "lean",
        "left",
        "legal",
        "light",
        "lighthearted",
        "likable",
        "likely",
        "limited",
        "limp",
        "limping",
        "linear",
        "lined",
        "liquid",
        "little",
        "live",
        "lively",
        "livid",
        "lone",
        "lonely",
        "long",
        "long-term",
        "lost",
        "lovable",
        "lovely",
        "low",
        "lucky",
        "lumbering",
        "lumpy",
        "lustrous",
        "mad",
        "made-up",
        "magnificent",
        "majestic",
        "major",
        "male",
        "mammoth",
        "married",
        "marvelous",
        "massive",
        "mature",
        "meager",
        "mealy",
        "mean",
        "measly",
        "meaty",
        "mediocre",
        "medium",
        "memorable",
        "menacing",
        "merry",
        "messy",
        "metallic",
        "mild",
        "milky",
        "mindless",
        "minor",
        "minty",
        "miserable",
        "miserly",
        "misguided",
        "mixed",
        "moist",
        "monstrous",
        "monthly",
        "monumental",
        "moral",
        "motionless",
        "muddy",
        "muffled",
        "multicolored",
        "mundane",
        "murky",
        "mushy",
        "musty",
        "muted",
        "mysterious",
        "narrow",
        "natural",
        "naughty",
        "nautical",
        "near",
        "neat",
        "necessary",
        "needy",
        "negative",
        "neglected",
        "negligible",
        "neighboring",
        "nervous",
        "new",
        "next",
        "nice",
        "nifty",
        "nimble",
        "nippy",
        "nocturnal",
        "normal",
        "noted",
        "noteworthy",
        "noxious",
        "numb",
        "nutritious",
        "obedient",
        "oblong",
        "obvious",
        "odd",
        "oddball",
        "official",
        "oily",
        "old",
        "old-fashioned",
        "only",
        "optimal",
        "optimistic",
        "orange",
        "orderly",
        "ordinary",
        "ornate",
        "ornery",
        "other",
        "our",
        "outgoing",
        "outlandish",
        "outlying",
        "outrageous",
        "outstanding",
        "oval",
        "overcooked",
        "overdue",
        "palatable",
        "pale",
        "paltry",
        "parallel",
        "parched",
        "partial",
        "passionate",
        "pastel",
        "peaceful",
        "peppery",
        "perfumed",
        "perky",
        "personal",
        "pertinent",
        "pessimistic",
        "petty",
        "phony",
        "physical",
        "pink",
        "pitiful",
        "plain",
        "pleasant",
        "pleased",
        "pleasing",
        "plump",
        "pointed",
        "pointless",
        "polished",
        "polite",
        "political",
        "poor",
        "portly",
        "posh",
        "possible",
        "potable",
        "powerful",
        "powerless",
        "practical",
        "precious",
        "present",
        "prestigious",
        "pretty",
        "pricey",
        "prickly",
        "primary",
        "prime",
        "private",
        "probable",
        "productive",
        "profitable",
        "profuse",
        "proper",
        "proud",
        "prudent",
        "punctual",
        "puny",
        "pure",
        "purple",
        "pushy",
        "putrid",
        "puzzled",
        "qualified",
        "quarrelsome",
        "quarterly",
        "queasy",
        "querulous",
        "questionable",
        "quick",
        "quick-witted",
        "quiet",
        "quintessential",
        "quixotic",
        "radiant",
        "ragged",
        "rapid",
        "rare",
        "raw",
        "realistic",
        "reasonable",
        "recent",
        "reckless",
        "rectangular",
        "red",
        "reflecting",
        "regal",
        "regular",
        "remarkable",
        "remorseful",
        "repentant",
        "respectful",
        "responsible",
        "rewarding",
        "rich",
        "right",
        "rigid",
        "ripe",
        "roasted",
        "robust",
        "rosy",
        "rotating",
        "rotten",
        "rough",
        "round",
        "rowdy",
        "royal",
        "rubbery",
        "ruddy",
        "rundown",
        "runny",
        "rural",
        "rusty",
        "sad",
        "salty",
        "same",
        "sandy",
        "sarcastic",
        "sardonic",
        "scaly",
        "scared",
        "scary",
        "scented",
        "scientific",
        "scornful",
        "scratchy",
        "second",
        "second-hand",
        "secondary",
        "secret",
        "self-assured",
        "self-reliant",
        "selfish",
        "sentimental",
        "separate",
        "serene",
        "serpentine",
        "severe",
        "shabby",
        "shadowy",
        "shady",
        "shallow",
        "shameful",
        "shameless",
        "shimmering",
        "shiny",
        "shocked",
        "shoddy",
        "short",
        "short-term",
        "showy",
        "shrill",
        "shy",
        "sick",
        "silent",
        "silky",
        "silver",
        "similar",
        "simple",
        "simplistic",
        "sinful",
        "sizzling",
        "skeletal",
        "sleepy",
        "slight",
        "slimy",
        "slow",
        "slushy",
        "small",
        "smart",
        "smoggy",
        "smooth",
        "smug",
        "snappy",
        "snarling",
        "sneaky",
        "sniveling",
        "snoopy",
        "sociable",
        "soft",
        "soggy",
        "somber",
        "some",
        "sophisticated",
        "sore",
        "sorrowful",
        "soulful",
        "soupy",
        "sour",
        "spanish",
        "sparkling",
        "sparse",
        "specific",
        "speedy",
        "spherical",
        "spiffy",
        "spirited",
        "spiteful",
        "splendid",
        "spotless",
        "square",
        "squeaky",
        "squiggly",
        "stable",
        "staid",
        "stained",
        "stale",
        "standard",
        "stark",
        "steel",
        "steep",
        "sticky",
        "stiff",
        "stingy",
        "stormy",
        "straight",
        "strange",
        "strict",
        "strident",
        "striking",
        "strong",
        "stunning",
        "stupendous",
        "sturdy",
        "stylish",
        "subdued",
        "submissive",
        "substantial",
        "subtle",
        "suburban",
        "sudden",
        "sugary",
        "sunny",
        "super",
        "superb",
        "superficial",
        "superior",
        "supportive",
        "sure-footed",
        "surprised",
        "svelte",
        "sweet",
        "swift",
        "talkative",
        "tall",
        "tame",
        "tangible",
        "tasty",
        "tattered",
        "taut",
        "tedious",
        "teeming",
        "tempting",
        "tender",
        "tense",
        "tepid",
        "terrible",
        "that",
        "these",
        "thick",
        "thin",
        "thorny",
        "thorough",
        "those",
        "thrifty",
        "tidy",
        "tight",
        "timely",
        "tinted",
        "tiny",
        "tired",
        "torn",
        "total",
        "tough",
        "tragic",
        "trained",
        "triangular",
        "tricky",
        "trim",
        "trivial",
        "troubled",
        "true",
        "trusting",
        "trustworthy",
        "trusty",
        "turbulent",
        "twin",
        "ugly",
        "ultimate",
        "unaware",
        "uncomfortable",
        "uncommon",
        "unconscious",
        "understated",
        "uneven",
        "unfinished",
        "unfit",
        "unfortunate",
        "unhappy",
        "unhealthy",
        "uniform",
        "unimportant",
        "unique",
        "unkempt",
        "unknown",
        "unlawful",
        "unlined",
        "unlucky",
        "unpleasant",
        "unrealistic",
        "unripe",
        "unruly",
        "unselfish",
        "unsightly",
        "unsteady",
        "unsung",
        "untidy",
        "untimely",
        "untried",
        "untrue",
        "unused",
        "unusual",
        "unwelcome",
        "unwieldy",
        "unwilling",
        "unwritten",
        "upbeat",
        "upright",
        "upset",
        "urban",
        "usable",
        "useless",
        "utilized",
        "utter",
        "vague",
        "vain",
        "valuable",
        "variable",
        "vast",
        "velvety",
        "vengeful",
        "vibrant",
        "victorious",
        "violent",
        "vivacious",
        "vivid",
        "voluminous",
        "warlike",
        "warm",
        "warmhearted",
        "warped",
        "wasteful",
        "waterlogged",
        "watery",
        "wavy",
        "wealthy",
        "weary",
        "webbed",
        "wee",
        "weekly",
        "weighty",
        "weird",
        "well-documented",
        "well-groomed",
        "well-lit",
        "well-made",
        "well-off",
        "well-to-do",
        "well-worn",
        "which",
        "whimsical",
        "whirlwind",
        "whispered",
        "white",
        "whole",
        "whopping",
        "wicked",
        "wide",
        "wide-eyed",
        "wiggly",
        "willing",
        "wilted",
        "winding",
        "windy",
        "winged",
        "wise",
        "witty",
        "wobbly",
        "woeful",
        "wonderful",
        "wordy",
        "worldly",
        "worse",
        "worst",
        "worthless",
        "worthwhile",
        "worthy",
        "wrathful",
        "wretched",
        "writhing",
        "wrong",
        "wry",
        "yearly",
        "yellow",
        "yellowish",
        "young",
        "youthful",
        "yummy",
        "zany",
        "zealous",
        "zesty"
    ], t_ = [
        "abnormally",
        "absentmindedly",
        "accidentally",
        "acidly",
        "actually",
        "adventurously",
        "afterwards",
        "almost",
        "always",
        "angrily",
        "annually",
        "anxiously",
        "arrogantly",
        "awkwardly",
        "badly",
        "bashfully",
        "beautifully",
        "bitterly",
        "bleakly",
        "blindly",
        "blissfully",
        "boastfully",
        "boldly",
        "bravely",
        "briefly",
        "brightly",
        "briskly",
        "broadly",
        "busily",
        "calmly",
        "carefully",
        "carelessly",
        "cautiously",
        "certainly",
        "cheerfully",
        "clearly",
        "cleverly",
        "closely",
        "coaxingly",
        "colorfully",
        "commonly",
        "continually",
        "coolly",
        "correctly",
        "courageously",
        "crossly",
        "cruelly",
        "curiously",
        "daily",
        "daintily",
        "dearly",
        "deceivingly",
        "deeply",
        "defiantly",
        "deliberately",
        "delightfully",
        "diligently",
        "dimly",
        "doubtfully",
        "dreamily",
        "easily",
        "elegantly",
        "energetically",
        "enormously",
        "enthusiastically",
        "equally",
        "especially",
        "even",
        "evenly",
        "eventually",
        "exactly",
        "excitedly",
        "extremely",
        "fairly",
        "faithfully",
        "famously",
        "far",
        "fast",
        "fatally",
        "ferociously",
        "fervently",
        "fiercely",
        "fondly",
        "foolishly",
        "fortunately",
        "frankly",
        "frantically",
        "freely",
        "frenetically",
        "frightfully",
        "fully",
        "furiously",
        "generally",
        "generously",
        "gently",
        "gladly",
        "gleefully",
        "gracefully",
        "gratefully",
        "greatly",
        "greedily",
        "happily",
        "hastily",
        "healthily",
        "heavily",
        "helpfully",
        "helplessly",
        "highly",
        "honestly",
        "hopelessly",
        "hourly",
        "hungrily",
        "immediately",
        "innocently",
        "inquisitively",
        "instantly",
        "intensely",
        "intently",
        "interestingly",
        "inwardly",
        "irritably",
        "jaggedly",
        "jealously",
        "joshingly",
        "jovially",
        "joyfully",
        "joyously",
        "jubilantly",
        "judgementally",
        "justly",
        "keenly",
        "kiddingly",
        "kindheartedly",
        "kindly",
        "kissingly",
        "knavishly",
        "knottily",
        "knowingly",
        "knowledgeably",
        "kookily",
        "lazily",
        "less",
        "lightly",
        "likely",
        "limply",
        "lively",
        "loftily",
        "longingly",
        "loosely",
        "loudly",
        "lovingly",
        "loyally",
        "madly",
        "majestically",
        "meaningfully",
        "mechanically",
        "merrily",
        "miserably",
        "mockingly",
        "monthly",
        "more",
        "mortally",
        "mostly",
        "mysteriously",
        "naturally",
        "nearly",
        "neatly",
        "needily",
        "nervously",
        "never",
        "nicely",
        "noisily",
        "not",
        "obediently",
        "obnoxiously",
        "oddly",
        "offensively",
        "officially",
        "often",
        "only",
        "openly",
        "optimistically",
        "overconfidently",
        "owlishly",
        "painfully",
        "partially",
        "patiently",
        "perfectly",
        "physically",
        "playfully",
        "politely",
        "poorly",
        "positively",
        "potentially",
        "powerfully",
        "promptly",
        "properly",
        "punctually",
        "quaintly",
        "quarrelsomely",
        "queasily",
        "questionably",
        "questioningly",
        "quicker",
        "quickly",
        "quietly",
        "quirkily",
        "quizzically",
        "rapidly",
        "rarely",
        "readily",
        "really",
        "reassuringly",
        "recklessly",
        "regularly",
        "reluctantly",
        "repeatedly",
        "reproachfully",
        "restfully",
        "righteously",
        "rightfully",
        "rigidly",
        "roughly",
        "rudely",
        "sadly",
        "safely",
        "scarcely",
        "scarily",
        "searchingly",
        "sedately",
        "seemingly",
        "seldom",
        "selfishly",
        "separately",
        "seriously",
        "shakily",
        "sharply",
        "sheepishly",
        "shrilly",
        "shyly",
        "silently",
        "sleepily",
        "slowly",
        "smoothly",
        "softly",
        "solemnly",
        "solidly",
        "sometimes",
        "soon",
        "speedily",
        "stealthily",
        "sternly",
        "strictly",
        "successfully",
        "suddenly",
        "surprisingly",
        "suspiciously",
        "sweetly",
        "swiftly",
        "sympathetically",
        "tenderly",
        "tensely",
        "terribly",
        "thankfully",
        "thoroughly",
        "thoughtfully",
        "tightly",
        "tomorrow",
        "too",
        "tremendously",
        "triumphantly",
        "truly",
        "truthfully",
        "ultimately",
        "unabashedly",
        "unaccountably",
        "unbearably",
        "unethically",
        "unexpectedly",
        "unfortunately",
        "unimpressively",
        "unnaturally",
        "unnecessarily",
        "upbeat",
        "upliftingly",
        "upright",
        "upside-down",
        "upward",
        "upwardly",
        "urgently",
        "usefully",
        "uselessly",
        "usually",
        "utterly",
        "vacantly",
        "vaguely",
        "vainly",
        "valiantly",
        "vastly",
        "verbally",
        "very",
        "viciously",
        "victoriously",
        "violently",
        "vivaciously",
        "voluntarily",
        "warmly",
        "weakly",
        "wearily",
        "well",
        "wetly",
        "wholly",
        "wildly",
        "willfully",
        "wisely",
        "woefully",
        "wonderfully",
        "worriedly",
        "wrongly",
        "yawningly",
        "yearly",
        "yearningly",
        "yesterday",
        "yieldingly",
        "youthfully"
    ], a_ = [
        "after",
        "although",
        "and",
        "as",
        "because",
        "before",
        "but",
        "consequently",
        "even",
        "finally",
        "for",
        "furthermore",
        "hence",
        "how",
        "however",
        "if",
        "inasmuch",
        "incidentally",
        "indeed",
        "instead",
        "lest",
        "likewise",
        "meanwhile",
        "nor",
        "now",
        "once",
        "or",
        "provided",
        "since",
        "so",
        "supposing",
        "than",
        "that",
        "though",
        "till",
        "unless",
        "until",
        "what",
        "when",
        "whenever",
        "where",
        "whereas",
        "wherever",
        "whether",
        "which",
        "while",
        "who",
        "whoever",
        "whose",
        "why",
        "yet"
    ], r_ = [
        "yuck",
        "oh",
        "phooey",
        "blah",
        "boo",
        "whoa",
        "yowza",
        "huzzah",
        "boohoo",
        "fooey",
        "geez",
        "pfft",
        "ew",
        "ah",
        "yum",
        "brr",
        "hm",
        "yahoo",
        "aha",
        "woot",
        "drat",
        "gah",
        "meh",
        "psst",
        "aw",
        "ugh",
        "yippee",
        "eek",
        "gee",
        "bah",
        "gadzooks",
        "duh",
        "ha",
        "mmm",
        "ouch",
        "phew",
        "ack",
        "uh-huh",
        "gosh",
        "hmph",
        "pish",
        "zowie",
        "er",
        "ick",
        "oof",
        "um"
    ], n_ = [
        "CD",
        "SUV",
        "abacus",
        "academics",
        "accelerator",
        "accompanist",
        "account",
        "accountability",
        "acquaintance",
        "ad",
        "adaptation",
        "address",
        "adrenalin",
        "adult",
        "advancement",
        "advertisement",
        "adviser",
        "affect",
        "affiliate",
        "aftermath",
        "agreement",
        "airbus",
        "aircraft",
        "airline",
        "airmail",
        "airman",
        "airport",
        "alb",
        "alert",
        "allegation",
        "alliance",
        "alligator",
        "allocation",
        "almighty",
        "amendment",
        "amnesty",
        "analogy",
        "angle",
        "annual",
        "antelope",
        "anticodon",
        "apparatus",
        "appliance",
        "approach",
        "apricot",
        "arcade",
        "archaeology",
        "armchair",
        "armoire",
        "asset",
        "assist",
        "atrium",
        "attraction",
        "availability",
        "avalanche",
        "awareness",
        "babushka",
        "backbone",
        "backburn",
        "bakeware",
        "bandwidth",
        "bar",
        "barge",
        "baritone",
        "barracks",
        "baseboard",
        "basket",
        "bathhouse",
        "bathrobe",
        "battle",
        "begonia",
        "behest",
        "bell",
        "bench",
        "bend",
        "beret",
        "best-seller",
        "bid",
        "bidet",
        "bin",
        "birdbath",
        "birdcage",
        "birth",
        "blight",
        "blossom",
        "blowgun",
        "bob",
        "bog",
        "bonfire",
        "bonnet",
        "bookcase",
        "bookend",
        "boulevard",
        "bourgeoisie",
        "bowler",
        "bowling",
        "boyfriend",
        "brace",
        "bracelet",
        "bran",
        "breastplate",
        "brief",
        "brochure",
        "brook",
        "brush",
        "bug",
        "bump",
        "bungalow",
        "cafe",
        "cake",
        "calculus",
        "cannon",
        "cantaloupe",
        "cap",
        "cappelletti",
        "captain",
        "caption",
        "carboxyl",
        "cardboard",
        "carnival",
        "case",
        "casement",
        "cash",
        "casket",
        "cassava",
        "castanet",
        "catalyst",
        "cauliflower",
        "cellar",
        "celsius",
        "cemetery",
        "ceramic",
        "ceramics",
        "certification",
        "chainstay",
        "chairperson",
        "challenge",
        "championship",
        "chap",
        "chapel",
        "character",
        "characterization",
        "charlatan",
        "charm",
        "chasuble",
        "cheese",
        "cheetah",
        "chiffonier",
        "chops",
        "chow",
        "cinder",
        "cinema",
        "circumference",
        "citizen",
        "clamp",
        "clavicle",
        "cleaner",
        "climb",
        "co-producer",
        "coal",
        "coast",
        "cod",
        "coil",
        "coin",
        "coliseum",
        "collaboration",
        "collectivization",
        "colon",
        "colonialism",
        "comestible",
        "commercial",
        "commodity",
        "community",
        "comparison",
        "completion",
        "complication",
        "compromise",
        "concentration",
        "configuration",
        "confusion",
        "conservation",
        "conservative",
        "consistency",
        "contractor",
        "contrail",
        "convection",
        "conversation",
        "cook",
        "coordination",
        "cop-out",
        "cope",
        "cork",
        "cornet",
        "corporation",
        "corral",
        "cosset",
        "costume",
        "couch",
        "council",
        "councilman",
        "countess",
        "courtroom",
        "cow",
        "creator",
        "creature",
        "crest",
        "cricket",
        "crocodile",
        "cross-contamination",
        "cruelty",
        "cuckoo",
        "curl",
        "custody",
        "custom",
        "cutlet",
        "cutover",
        "cycle",
        "daddy",
        "dandelion",
        "dash",
        "daughter",
        "dead",
        "decision",
        "deck",
        "declaration",
        "decongestant",
        "decryption",
        "deduction",
        "deed",
        "deer",
        "defendant",
        "density",
        "department",
        "dependency",
        "deployment",
        "depot",
        "derby",
        "descendant",
        "descent",
        "design",
        "designation",
        "desk",
        "detective",
        "devastation",
        "developing",
        "developmental",
        "devil",
        "diagram",
        "digestive",
        "digit",
        "dime",
        "director",
        "disadvantage",
        "disappointment",
        "disclosure",
        "disconnection",
        "discourse",
        "dish",
        "disk",
        "disposer",
        "distinction",
        "diver",
        "diversity",
        "dividend",
        "divine",
        "doing",
        "doorpost",
        "doubter",
        "draft",
        "draw",
        "dream",
        "dredger",
        "dress",
        "drive",
        "drug",
        "duffel",
        "dulcimer",
        "dusk",
        "duster",
        "dwell",
        "e-mail",
        "earth",
        "ecliptic",
        "ectoderm",
        "edge",
        "editor",
        "effector",
        "eggplant",
        "electronics",
        "elevation",
        "elevator",
        "elver",
        "embarrassment",
        "embossing",
        "emergent",
        "encouragement",
        "entry",
        "epic",
        "equal",
        "essence",
        "eternity",
        "ethyl",
        "euphonium",
        "event",
        "exasperation",
        "excess",
        "executor",
        "exhaust",
        "expansion",
        "expense",
        "experience",
        "exploration",
        "extension",
        "extent",
        "exterior",
        "eyebrow",
        "eyeliner",
        "farm",
        "farmer",
        "fat",
        "fax",
        "feather",
        "fedora",
        "fellow",
        "fen",
        "fencing",
        "ferret",
        "festival",
        "fibre",
        "filter",
        "final",
        "finding",
        "finer",
        "finger",
        "fireplace",
        "fisherman",
        "fishery",
        "fit",
        "flame",
        "flat",
        "fledgling",
        "flight",
        "flint",
        "flood",
        "flu",
        "fog",
        "fold",
        "folklore",
        "follower",
        "following",
        "foodstuffs",
        "footrest",
        "forage",
        "forager",
        "forgery",
        "fork",
        "formamide",
        "formation",
        "formula",
        "fort",
        "fowl",
        "fraudster",
        "freckle",
        "freezing",
        "freight",
        "fuel",
        "fun",
        "fund",
        "fundraising",
        "futon",
        "gallery",
        "galoshes",
        "gastropod",
        "gazebo",
        "gerbil",
        "ghost",
        "giant",
        "gift",
        "giggle",
        "glider",
        "gloom",
        "goat",
        "godfather",
        "godparent",
        "going",
        "goodwill",
        "governance",
        "government",
        "gown",
        "gradient",
        "graffiti",
        "grandpa",
        "grandson",
        "granny",
        "grass",
        "gray",
        "gripper",
        "grouper",
        "guacamole",
        "guard",
        "guidance",
        "guide",
        "gym",
        "gymnast",
        "habit",
        "haircut",
        "halt",
        "hamburger",
        "hammock",
        "handful",
        "handle",
        "handover",
        "harp",
        "haversack",
        "hawk",
        "heartache",
        "heartbeat",
        "heating",
        "hello",
        "help",
        "hepatitis",
        "heroine",
        "hexagon",
        "hierarchy",
        "hippodrome",
        "honesty",
        "hoof",
        "hope",
        "horde",
        "hornet",
        "horst",
        "hose",
        "hospitalization",
        "hovel",
        "hovercraft",
        "hubris",
        "humidity",
        "humor",
        "hundred",
        "hunger",
        "hunt",
        "husband",
        "hutch",
        "hydrant",
        "hydrocarbon",
        "hydrolyse",
        "hydrolyze",
        "hyena",
        "hygienic",
        "hyphenation",
        "ice-cream",
        "icebreaker",
        "igloo",
        "ignorance",
        "illusion",
        "impact",
        "import",
        "importance",
        "impostor",
        "in-joke",
        "incandescence",
        "independence",
        "individual",
        "information",
        "injunction",
        "innovation",
        "insolence",
        "inspection",
        "instance",
        "institute",
        "instruction",
        "instructor",
        "integer",
        "intellect",
        "intent",
        "interchange",
        "interior",
        "intervention",
        "interviewer",
        "invite",
        "iridescence",
        "issue",
        "jacket",
        "jazz",
        "jellyfish",
        "jet",
        "jogging",
        "joy",
        "juggernaut",
        "jump",
        "jungle",
        "junior",
        "jury",
        "kettledrum",
        "kick",
        "kielbasa",
        "kinase",
        "king",
        "kiss",
        "kit",
        "knickers",
        "knight",
        "knitting",
        "knuckle",
        "label",
        "labourer",
        "lace",
        "lady",
        "lamp",
        "language",
        "larva",
        "lashes",
        "laughter",
        "lava",
        "lawmaker",
        "lay",
        "leading",
        "league",
        "legend",
        "legging",
        "legislature",
        "lender",
        "license",
        "lid",
        "lieu",
        "lifestyle",
        "lift",
        "linseed",
        "litter",
        "loaf",
        "lobster",
        "longboat",
        "lotion",
        "lounge",
        "louse",
        "lox",
        "loyalty",
        "luck",
        "lyre",
        "maestro",
        "mainstream",
        "maintainer",
        "majority",
        "makeover",
        "making",
        "mallard",
        "management",
        "manner",
        "mantua",
        "marathon",
        "march",
        "marimba",
        "marketplace",
        "marksman",
        "markup",
        "marten",
        "massage",
        "masterpiece",
        "mathematics",
        "meadow",
        "meal",
        "meander",
        "meatloaf",
        "mechanic",
        "median",
        "membership",
        "mentor",
        "merit",
        "metabolite",
        "metal",
        "middle",
        "midwife",
        "milestone",
        "millet",
        "minion",
        "minister",
        "minor",
        "minority",
        "mixture",
        "mobility",
        "molasses",
        "mom",
        "moment",
        "monasticism",
        "monocle",
        "monster",
        "morbidity",
        "morning",
        "mortise",
        "mountain",
        "mouser",
        "mousse",
        "mozzarella",
        "muscat",
        "mythology",
        "napkin",
        "necklace",
        "nectarine",
        "negotiation",
        "nephew",
        "nerve",
        "netsuke",
        "newsletter",
        "newsprint",
        "newsstand",
        "nightlife",
        "noon",
        "nougat",
        "nucleotidase",
        "nudge",
        "numeracy",
        "numeric",
        "nun",
        "obedience",
        "obesity",
        "object",
        "obligation",
        "ocelot",
        "octave",
        "offset",
        "oil",
        "omelet",
        "onset",
        "opera",
        "operating",
        "optimal",
        "orchid",
        "order",
        "ostrich",
        "other",
        "outlaw",
        "outrun",
        "outset",
        "overcoat",
        "overheard",
        "overload",
        "ownership",
        "pacemaker",
        "packaging",
        "paintwork",
        "palate",
        "pants",
        "pantyhose",
        "papa",
        "parade",
        "parsnip",
        "partridge",
        "passport",
        "pasta",
        "patroller",
        "pear",
        "pearl",
        "pecan",
        "pendant",
        "peninsula",
        "pension",
        "peony",
        "pepper",
        "perfection",
        "permafrost",
        "perp",
        "petal",
        "petticoat",
        "pharmacopoeia",
        "phrase",
        "pick",
        "piglet",
        "pigpen",
        "pigsty",
        "pile",
        "pillbox",
        "pillow",
        "pilot",
        "pine",
        "pinstripe",
        "place",
        "plain",
        "planula",
        "plastic",
        "platter",
        "platypus",
        "pleasure",
        "pliers",
        "plugin",
        "plumber",
        "pneumonia",
        "pocket-watch",
        "poetry",
        "polarisation",
        "polyester",
        "pomelo",
        "pop",
        "poppy",
        "popularity",
        "populist",
        "porter",
        "possession",
        "postbox",
        "precedent",
        "premeditation",
        "premier",
        "premise",
        "premium",
        "pressure",
        "presume",
        "priesthood",
        "printer",
        "privilege",
        "procurement",
        "produce",
        "programme",
        "prohibition",
        "promise",
        "pronoun",
        "providence",
        "provider",
        "provision",
        "publication",
        "publicity",
        "pulse",
        "punctuation",
        "pupil",
        "puppet",
        "puritan",
        "quart",
        "quinoa",
        "quit",
        "railway",
        "range",
        "rationale",
        "ravioli",
        "rawhide",
        "reach",
        "reasoning",
        "reboot",
        "receptor",
        "recommendation",
        "reconsideration",
        "recovery",
        "redesign",
        "relative",
        "release",
        "remark",
        "reorganisation",
        "repeat",
        "replacement",
        "reporter",
        "representation",
        "republican",
        "request",
        "requirement",
        "reservation",
        "resolve",
        "resource",
        "responsibility",
        "restaurant",
        "retention",
        "retrospectivity",
        "reward",
        "ribbon",
        "rim",
        "riser",
        "roadway",
        "role",
        "rosemary",
        "roundabout",
        "rubric",
        "ruin",
        "rule",
        "runway",
        "rust",
        "safe",
        "sailor",
        "saloon",
        "sand",
        "sandbar",
        "sanity",
        "sarong",
        "sauerkraut",
        "saw",
        "scaffold",
        "scale",
        "scarification",
        "scenario",
        "schedule",
        "schnitzel",
        "scholarship",
        "scorn",
        "scorpion",
        "scout",
        "scrap",
        "scratch",
        "seafood",
        "seagull",
        "seal",
        "season",
        "secrecy",
        "secret",
        "section",
        "sediment",
        "self-confidence",
        "sermon",
        "sesame",
        "settler",
        "shadowbox",
        "shark",
        "shipper",
        "shore",
        "shoulder",
        "sideboard",
        "siege",
        "sightseeing",
        "signature",
        "silk",
        "simple",
        "singing",
        "skean",
        "skeleton",
        "skyline",
        "skyscraper",
        "slide",
        "slime",
        "slipper",
        "smog",
        "smoke",
        "sock",
        "soliloquy",
        "solution",
        "solvency",
        "someplace",
        "sonar",
        "sonata",
        "sonnet",
        "soup",
        "soybean",
        "space",
        "spear",
        "spirit",
        "spork",
        "sport",
        "spring",
        "sprinkles",
        "squid",
        "stall",
        "starboard",
        "statue",
        "status",
        "stay",
        "steak",
        "steeple",
        "step",
        "step-mother",
        "sticker",
        "stir-fry",
        "stitcher",
        "stock",
        "stool",
        "story",
        "strait",
        "stranger",
        "strategy",
        "straw",
        "stump",
        "subexpression",
        "submitter",
        "subsidy",
        "substitution",
        "suitcase",
        "summary",
        "summer",
        "sunbeam",
        "sundae",
        "supplier",
        "surface",
        "sushi",
        "suspension",
        "sustenance",
        "swanling",
        "swath",
        "sweatshop",
        "swim",
        "swine",
        "swing",
        "switch",
        "switchboard",
        "swordfish",
        "synergy",
        "t-shirt",
        "tabletop",
        "tackle",
        "tail",
        "tapioca",
        "taro",
        "tarragon",
        "taxicab",
        "teammate",
        "technician",
        "technologist",
        "tectonics",
        "tenant",
        "tenement",
        "tennis",
        "tentacle",
        "teriyaki",
        "term",
        "testimonial",
        "testing",
        "thigh",
        "thongs",
        "thorn",
        "thread",
        "thunderbolt",
        "thyme",
        "tinderbox",
        "toaster",
        "tomatillo",
        "tomb",
        "tomography",
        "tool",
        "tooth",
        "toothbrush",
        "toothpick",
        "topsail",
        "traditionalism",
        "traffic",
        "translation",
        "transom",
        "transparency",
        "trash",
        "travel",
        "tray",
        "trench",
        "tribe",
        "tributary",
        "trick",
        "trolley",
        "tuba",
        "tuber",
        "tune-up",
        "turret",
        "tusk",
        "tuxedo",
        "typeface",
        "typewriter",
        "unblinking",
        "underneath",
        "underpants",
        "understanding",
        "unibody",
        "unique",
        "unit",
        "utilization",
        "valentine",
        "validity",
        "valley",
        "valuable",
        "vanadyl",
        "vein",
        "velocity",
        "venom",
        "version",
        "verve",
        "vestment",
        "veto",
        "viability",
        "vibraphone",
        "vibration",
        "vicinity",
        "video",
        "violin",
        "vision",
        "vista",
        "vol",
        "volleyball",
        "wafer",
        "waist",
        "wallaby",
        "warming",
        "wasabi",
        "waterspout",
        "wear",
        "wedding",
        "whack",
        "whale",
        "wheel",
        "widow",
        "wilderness",
        "willow",
        "window",
        "wombat",
        "word",
        "worth",
        "wriggler",
        "yak",
        "yarmulke",
        "yeast",
        "yin",
        "yogurt",
        "zebra",
        "zen"
    ], i_ = [
        "a",
        "abaft",
        "aboard",
        "about",
        "above",
        "absent",
        "across",
        "afore",
        "after",
        "against",
        "along",
        "alongside",
        "amid",
        "amidst",
        "among",
        "amongst",
        "an",
        "anenst",
        "anti",
        "apropos",
        "apud",
        "around",
        "as",
        "aside",
        "astride",
        "at",
        "athwart",
        "atop",
        "barring",
        "before",
        "behind",
        "below",
        "beneath",
        "beside",
        "besides",
        "between",
        "beyond",
        "but",
        "by",
        "circa",
        "concerning",
        "considering",
        "despite",
        "down",
        "during",
        "except",
        "excepting",
        "excluding",
        "failing",
        "following",
        "for",
        "forenenst",
        "from",
        "given",
        "in",
        "including",
        "inside",
        "into",
        "lest",
        "like",
        "mid",
        "midst",
        "minus",
        "modulo",
        "near",
        "next",
        "notwithstanding",
        "of",
        "off",
        "on",
        "onto",
        "opposite",
        "out",
        "outside",
        "over",
        "pace",
        "past",
        "per",
        "plus",
        "pro",
        "qua",
        "regarding",
        "round",
        "sans",
        "save",
        "since",
        "than",
        "the",
        "through",
        "throughout",
        "till",
        "times",
        "to",
        "toward",
        "towards",
        "under",
        "underneath",
        "unlike",
        "until",
        "unto",
        "up",
        "upon",
        "versus",
        "via",
        "vice",
        "with",
        "within",
        "without",
        "worth"
    ], o_ = [
        "abnegate",
        "abscond",
        "abseil",
        "absolve",
        "accentuate",
        "accept",
        "access",
        "accessorise",
        "accompany",
        "account",
        "accredit",
        "achieve",
        "acknowledge",
        "acquire",
        "adjourn",
        "adjudge",
        "admonish",
        "adumbrate",
        "advocate",
        "afford",
        "airbrush",
        "ameliorate",
        "amend",
        "amount",
        "anaesthetise",
        "analyse",
        "anesthetize",
        "anneal",
        "annex",
        "antagonize",
        "ape",
        "apologise",
        "apostrophize",
        "appertain",
        "appreciate",
        "appropriate",
        "approximate",
        "arbitrate",
        "archive",
        "arraign",
        "arrange",
        "ascertain",
        "ascribe",
        "assail",
        "atomize",
        "attend",
        "attest",
        "attribute",
        "augment",
        "avow",
        "axe",
        "baa",
        "banish",
        "bank",
        "baptise",
        "battle",
        "beard",
        "beep",
        "behold",
        "belabor",
        "bemuse",
        "besmirch",
        "bestride",
        "better",
        "bewail",
        "bicycle",
        "bide",
        "bind",
        "biodegrade",
        "blacken",
        "blaspheme",
        "bleach",
        "blend",
        "blink",
        "bliss",
        "bloom",
        "bludgeon",
        "bobble",
        "boggle",
        "bolster",
        "book",
        "boom",
        "bootleg",
        "border",
        "bore",
        "boss",
        "braid",
        "brand",
        "brandish",
        "break",
        "breed",
        "broadcast",
        "broadside",
        "brood",
        "browse",
        "buck",
        "burgeon",
        "bus",
        "butter",
        "buzzing",
        "camouflage",
        "cannibalise",
        "canter",
        "cap",
        "capitalise",
        "capitalize",
        "capsize",
        "card",
        "carouse",
        "carp",
        "carpool",
        "catalog",
        "catalyze",
        "catch",
        "categorise",
        "cease",
        "celebrate",
        "censor",
        "certify",
        "char",
        "charter",
        "chase",
        "chatter",
        "chime",
        "chip",
        "christen",
        "chromakey",
        "chunder",
        "chunter",
        "cinch",
        "circle",
        "circulate",
        "circumnavigate",
        "clamor",
        "clamour",
        "claw",
        "cleave",
        "clinch",
        "clinking",
        "clone",
        "clonk",
        "coagulate",
        "coexist",
        "coincide",
        "collaborate",
        "colligate",
        "colorize",
        "colour",
        "comb",
        "come",
        "commandeer",
        "commemorate",
        "communicate",
        "compete",
        "conceal",
        "conceptualize",
        "conclude",
        "concrete",
        "condense",
        "cone",
        "confide",
        "confirm",
        "confiscate",
        "confound",
        "confute",
        "congregate",
        "conjecture",
        "connect",
        "consign",
        "construe",
        "contradict",
        "contrast",
        "contravene",
        "controvert",
        "convalesce",
        "converse",
        "convince",
        "convoke",
        "coop",
        "cop",
        "corner",
        "covenant",
        "cow",
        "crackle",
        "cram",
        "crank",
        "creak",
        "creaking",
        "cripple",
        "croon",
        "cross",
        "crumble",
        "crystallize",
        "culminate",
        "culture",
        "curry",
        "curse",
        "customise",
        "cycle",
        "dally",
        "dampen",
        "darn",
        "debit",
        "debut",
        "decide",
        "decode",
        "decouple",
        "decriminalize",
        "deduce",
        "deduct",
        "deflate",
        "deflect",
        "deform",
        "defrag",
        "degenerate",
        "degrease",
        "delete",
        "delight",
        "deliquesce",
        "demob",
        "demobilise",
        "democratize",
        "demonstrate",
        "denitrify",
        "deny",
        "depart",
        "depend",
        "deplore",
        "deploy",
        "deprave",
        "depute",
        "dereference",
        "describe",
        "desecrate",
        "deselect",
        "destock",
        "detain",
        "develop",
        "devise",
        "dial",
        "dicker",
        "digitize",
        "dilate",
        "disapprove",
        "disarm",
        "disbar",
        "discontinue",
        "disgorge",
        "dishearten",
        "dishonor",
        "disinherit",
        "dislocate",
        "dispense",
        "display",
        "dispose",
        "disrespect",
        "dissemble",
        "ditch",
        "divert",
        "dock",
        "doodle",
        "downchange",
        "downshift",
        "dowse",
        "draft",
        "drag",
        "drain",
        "dramatize",
        "drowse",
        "drum",
        "dwell",
        "economise",
        "edge",
        "efface",
        "egg",
        "eke",
        "electrify",
        "embalm",
        "embed",
        "embody",
        "emboss",
        "emerge",
        "emphasise",
        "emphasize",
        "emulsify",
        "encode",
        "endow",
        "enfold",
        "engage",
        "engender",
        "enhance",
        "enlist",
        "enrage",
        "enrich",
        "enroll",
        "entice",
        "entomb",
        "entrench",
        "entwine",
        "equate",
        "essay",
        "etch",
        "eulogise",
        "even",
        "evince",
        "exacerbate",
        "exaggerate",
        "exalt",
        "exempt",
        "exonerate",
        "expatiate",
        "explode",
        "expostulate",
        "extract",
        "extricate",
        "eyeglasses",
        "fabricate",
        "facilitate",
        "factorise",
        "factorize",
        "fail",
        "fall",
        "familiarize",
        "fashion",
        "father",
        "fathom",
        "fax",
        "federate",
        "feminize",
        "fence",
        "fess",
        "fictionalize",
        "fiddle",
        "fidget",
        "fill",
        "flash",
        "fleck",
        "flight",
        "floodlight",
        "floss",
        "fluctuate",
        "fluff",
        "fly",
        "focalise",
        "foot",
        "forearm",
        "forecast",
        "foretell",
        "forgather",
        "forgo",
        "fork",
        "form",
        "forswear",
        "founder",
        "fraternise",
        "fray",
        "frizz",
        "fumigate",
        "function",
        "furlough",
        "fuss",
        "gad",
        "gallivant",
        "galvanize",
        "gape",
        "garage",
        "garrote",
        "gasp",
        "gestate",
        "give",
        "glimmer",
        "glisten",
        "gloat",
        "gloss",
        "glow",
        "gnash",
        "gnaw",
        "goose",
        "govern",
        "grade",
        "graduate",
        "graft",
        "grok",
        "guest",
        "guilt",
        "gulp",
        "gum",
        "gurn",
        "gust",
        "gut",
        "guzzle",
        "ham",
        "harangue",
        "harvest",
        "hassle",
        "haul",
        "haze",
        "headline",
        "hearten",
        "heighten",
        "highlight",
        "hoick",
        "hold",
        "hole",
        "hollow",
        "holster",
        "home",
        "homeschool",
        "hoot",
        "horn",
        "horse",
        "hotfoot",
        "house",
        "hover",
        "howl",
        "huddle",
        "huff",
        "hunger",
        "hunt",
        "husk",
        "hype",
        "hypothesise",
        "hypothesize",
        "idle",
        "ignite",
        "imagineer",
        "impact",
        "impanel",
        "implode",
        "incinerate",
        "incline",
        "inculcate",
        "industrialize",
        "ingratiate",
        "inhibit",
        "inject",
        "innovate",
        "inscribe",
        "insert",
        "insist",
        "inspect",
        "institute",
        "institutionalize",
        "intend",
        "intermarry",
        "intermesh",
        "intermix",
        "internalise",
        "internalize",
        "internationalize",
        "intrigue",
        "inure",
        "inveigle",
        "inventory",
        "investigate",
        "irk",
        "iterate",
        "jaywalk",
        "jell",
        "jeopardise",
        "jiggle",
        "jive",
        "joint",
        "jot",
        "jut",
        "keel",
        "knife",
        "knit",
        "know",
        "kowtow",
        "lack",
        "lampoon",
        "large",
        "leap",
        "lecture",
        "legitimize",
        "lend",
        "libel",
        "liberalize",
        "license",
        "ligate",
        "list",
        "lobotomise",
        "lock",
        "log",
        "loose",
        "low",
        "lowball",
        "machine",
        "magnetize",
        "major",
        "make",
        "malfunction",
        "manage",
        "manipulate",
        "maroon",
        "masculinize",
        "mash",
        "mask",
        "masquerade",
        "massage",
        "masticate",
        "materialise",
        "matter",
        "maul",
        "memorise",
        "merge",
        "mesh",
        "metabolise",
        "microblog",
        "microchip",
        "micromanage",
        "militate",
        "mill",
        "minister",
        "minor",
        "misappropriate",
        "miscalculate",
        "misfire",
        "misjudge",
        "miskey",
        "mismatch",
        "mispronounce",
        "misread",
        "misreport",
        "misspend",
        "mob",
        "mobilise",
        "mobilize",
        "moisten",
        "mooch",
        "moor",
        "moralise",
        "mortar",
        "mosh",
        "mothball",
        "motivate",
        "motor",
        "mould",
        "mount",
        "muddy",
        "mummify",
        "mutate",
        "mystify",
        "nab",
        "narrate",
        "narrowcast",
        "nasalise",
        "nauseate",
        "navigate",
        "neaten",
        "neck",
        "neglect",
        "norm",
        "notarize",
        "object",
        "obscure",
        "observe",
        "obsess",
        "obstruct",
        "obtrude",
        "offend",
        "offset",
        "option",
        "orchestrate",
        "orient",
        "orientate",
        "outbid",
        "outdo",
        "outfit",
        "outflank",
        "outfox",
        "outnumber",
        "outrank",
        "outrun",
        "outsource",
        "overburden",
        "overcharge",
        "overcook",
        "overdub",
        "overfeed",
        "overload",
        "overplay",
        "overproduce",
        "overreact",
        "override",
        "overspend",
        "overstay",
        "overtrain",
        "overvalue",
        "overwork",
        "own",
        "oxidise",
        "oxidize",
        "oxygenate",
        "pace",
        "pack",
        "pale",
        "pant",
        "paralyse",
        "parody",
        "part",
        "pause",
        "pave",
        "penalise",
        "persecute",
        "personalise",
        "perspire",
        "pertain",
        "peter",
        "pike",
        "pillory",
        "pinion",
        "pip",
        "pity",
        "pivot",
        "pixellate",
        "plagiarise",
        "plait",
        "plan",
        "please",
        "pluck",
        "ponder",
        "popularize",
        "portray",
        "prance",
        "preclude",
        "preheat",
        "prejudge",
        "preregister",
        "presell",
        "preside",
        "pretend",
        "print",
        "prioritize",
        "probate",
        "probe",
        "proceed",
        "procrastinate",
        "profane",
        "progress",
        "proliferate",
        "proofread",
        "propound",
        "proselytise",
        "provision",
        "pry",
        "publicize",
        "puff",
        "pull",
        "pulp",
        "pulverize",
        "purse",
        "put",
        "putrefy",
        "quadruple",
        "quaff",
        "quantify",
        "quarrel",
        "quash",
        "quaver",
        "question",
        "quiet",
        "quintuple",
        "quip",
        "quit",
        "rag",
        "rally",
        "ramp",
        "randomize",
        "rationalise",
        "rationalize",
        "ravage",
        "ravel",
        "react",
        "readies",
        "readjust",
        "readmit",
        "ready",
        "reapply",
        "rear",
        "reassemble",
        "rebel",
        "reboot",
        "reborn",
        "rebound",
        "rebuff",
        "rebuild",
        "rebuke",
        "recede",
        "reckon",
        "reclassify",
        "recompense",
        "reconstitute",
        "record",
        "recount",
        "redact",
        "redevelop",
        "redound",
        "redraw",
        "redress",
        "reel",
        "refer",
        "reference",
        "refine",
        "reflate",
        "refute",
        "regulate",
        "reiterate",
        "rejigger",
        "rejoin",
        "rekindle",
        "relaunch",
        "relieve",
        "remand",
        "remark",
        "reopen",
        "reorient",
        "replicate",
        "repossess",
        "represent",
        "reprimand",
        "reproach",
        "reprove",
        "repurpose",
        "requite",
        "reschedule",
        "resort",
        "respray",
        "restructure",
        "retool",
        "retract",
        "revere",
        "revitalise",
        "revoke",
        "reword",
        "rewrite",
        "ride",
        "ridge",
        "rim",
        "ring",
        "rise",
        "rival",
        "roger",
        "rosin",
        "rot",
        "rout",
        "row",
        "rue",
        "rule",
        "safeguard",
        "sashay",
        "sate",
        "satirise",
        "satirize",
        "satisfy",
        "saturate",
        "savour",
        "scale",
        "scamper",
        "scar",
        "scare",
        "scarper",
        "scent",
        "schematise",
        "scheme",
        "schlep",
        "scoff",
        "scoop",
        "scope",
        "scotch",
        "scowl",
        "scrabble",
        "scram",
        "scramble",
        "scrape",
        "screw",
        "scruple",
        "scrutinise",
        "scuffle",
        "scuttle",
        "search",
        "secularize",
        "see",
        "segregate",
        "sell",
        "sense",
        "sensitize",
        "sequester",
        "serenade",
        "serialize",
        "serve",
        "service",
        "settle",
        "sew",
        "shaft",
        "sham",
        "shampoo",
        "shanghai",
        "shear",
        "sheathe",
        "shell",
        "shinny",
        "shirk",
        "shoot",
        "shoulder",
        "shout",
        "shovel",
        "showboat",
        "shred",
        "shrill",
        "shudder",
        "shush",
        "sidetrack",
        "sign",
        "silt",
        "sin",
        "singe",
        "sit",
        "sizzle",
        "skateboard",
        "ski",
        "slake",
        "slap",
        "slather",
        "sleet",
        "slink",
        "slip",
        "slope",
        "slump",
        "smarten",
        "smuggle",
        "snack",
        "sneak",
        "sniff",
        "snoop",
        "snow",
        "snowplow",
        "snuggle",
        "soap",
        "solace",
        "solder",
        "solicit",
        "source",
        "spark",
        "spattering",
        "spectacles",
        "spectate",
        "spellcheck",
        "spew",
        "spice",
        "spirit",
        "splash",
        "splay",
        "split",
        "splosh",
        "splurge",
        "spook",
        "square",
        "squirm",
        "stabilise",
        "stable",
        "stack",
        "stage",
        "stake",
        "starch",
        "state",
        "statement",
        "stiffen",
        "stigmatize",
        "sting",
        "stint",
        "stoop",
        "store",
        "storyboard",
        "stratify",
        "structure",
        "stuff",
        "stunt",
        "substantiate",
        "subtract",
        "suckle",
        "suffice",
        "suffocate",
        "summarise",
        "sun",
        "sunbathe",
        "sunder",
        "sup",
        "surge",
        "surprise",
        "swat",
        "swathe",
        "sway",
        "swear",
        "swelter",
        "swerve",
        "swill",
        "swing",
        "symbolise",
        "synthesise",
        "syringe",
        "table",
        "tabulate",
        "tag",
        "tame",
        "tank",
        "tankful",
        "tarry",
        "task",
        "taxicab",
        "team",
        "telescope",
        "tenant",
        "terraform",
        "terrorise",
        "testify",
        "think",
        "throbbing",
        "thump",
        "tighten",
        "toady",
        "toe",
        "tough",
        "tousle",
        "traduce",
        "train",
        "transcend",
        "transplant",
        "trash",
        "treasure",
        "treble",
        "trek",
        "trial",
        "tromp",
        "trouser",
        "trust",
        "tune",
        "tut",
        "twine",
        "twist",
        "typify",
        "unbalance",
        "uncork",
        "uncover",
        "underachieve",
        "undergo",
        "underplay",
        "unearth",
        "unfreeze",
        "unfurl",
        "unlearn",
        "unscramble",
        "unzip",
        "uproot",
        "upsell",
        "usher",
        "vacation",
        "vamoose",
        "vanish",
        "vary",
        "veg",
        "venture",
        "verify",
        "vet",
        "veto",
        "volunteer",
        "vulgarise",
        "waft",
        "wallop",
        "waltz",
        "warp",
        "wash",
        "waver",
        "weary",
        "weatherize",
        "wedge",
        "weep",
        "weight",
        "welcome",
        "westernise",
        "westernize",
        "while",
        "whine",
        "whisper",
        "whistle",
        "whitewash",
        "whup",
        "wilt",
        "wing",
        "wire",
        "wisecrack",
        "wolf",
        "wound",
        "wring",
        "writ",
        "yak",
        "yawn",
        "yearn",
        "yuppify"
    ], s_ = {
        adjective: e_,
        adverb: t_,
        conjunction: a_,
        interjection: r_,
        noun: n_,
        preposition: i_,
        verb: o_
    }, l_ = s_, u_ = {
        airline: jD,
        animal: c2,
        app: p2,
        book: w2,
        cell_phone: A2,
        color: E2,
        commerce: R2,
        company: $2,
        database: Y2,
        date: J2,
        finance: dT,
        food: wT,
        hacker: _T,
        internet: LT,
        location: tE,
        lorem: nE,
        metadata: oE,
        music: hE,
        person: PE,
        phone_number: NE,
        science: WE,
        team: jE,
        vehicle: QE,
        word: l_
    }, c_ = u_, He = class extends Error {
    };
    function d_(t) {
        let e = Object.getPrototypeOf(t);
        do {
            for (let a of Object.getOwnPropertyNames(e))typeof t[a] == "function" && a !== "constructor" && (t[a] = t[a].bind(t));
            e = Object.getPrototypeOf(e);
        }while (e !== Object.prototype);
    }
    var Ri = class {
        constructor(e){
            this.faker = e, d_(this);
        }
    }, Wt = class extends Ri {
        constructor(e){
            super(e), this.faker = e;
        }
    }, sF = ((t)=>(t.Narrowbody = "narrowbody", t.Regional = "regional", t.Widebody = "widebody", t))(sF || {}), h_ = [
        "0",
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7",
        "8",
        "9"
    ], m_ = [
        "0",
        "O",
        "1",
        "I",
        "L"
    ], f_ = {
        regional: 20,
        narrowbody: 35,
        widebody: 60
    }, p_ = {
        regional: [
            "A",
            "B",
            "C",
            "D"
        ],
        narrowbody: [
            "A",
            "B",
            "C",
            "D",
            "E",
            "F"
        ],
        widebody: [
            "A",
            "B",
            "C",
            "D",
            "E",
            "F",
            "G",
            "H",
            "J",
            "K"
        ]
    }, g_ = class extends Wt {
        airport() {
            return this.faker.helpers.arrayElement(this.faker.definitions.airline.airport);
        }
        airline() {
            return this.faker.helpers.arrayElement(this.faker.definitions.airline.airline);
        }
        airplane() {
            return this.faker.helpers.arrayElement(this.faker.definitions.airline.airplane);
        }
        recordLocator(e = {}) {
            let { allowNumerics: a = !1, allowVisuallySimilarCharacters: r = !1 } = e, n = [];
            return a || n.push(...h_), r || n.push(...m_), this.faker.string.alphanumeric({
                length: 6,
                casing: "upper",
                exclude: n
            });
        }
        seat(e = {}) {
            let { aircraftType: a = "narrowbody" } = e, r = f_[a], n = p_[a], i = this.faker.number.int({
                min: 1,
                max: r
            }), o = this.faker.helpers.arrayElement(n);
            return `${i}${o}`;
        }
        aircraftType() {
            return this.faker.helpers.enumValue(sF);
        }
        flightNumber(e = {}) {
            let { length: a = {
                min: 1,
                max: 4
            }, addLeadingZeros: r = !1 } = e, n = this.faker.string.numeric({
                length: a,
                allowLeadingZeros: !1
            });
            return r ? n.padStart(4, "0") : n;
        }
    }, lF = ((t)=>(t.SRGB = "sRGB", t.DisplayP3 = "display-p3", t.REC2020 = "rec2020", t.A98RGB = "a98-rgb", t.ProphotoRGB = "prophoto-rgb", t))(lF || {}), uF = ((t)=>(t.RGB = "rgb", t.RGBA = "rgba", t.HSL = "hsl", t.HSLA = "hsla", t.HWB = "hwb", t.CMYK = "cmyk", t.LAB = "lab", t.LCH = "lch", t.COLOR = "color", t))(uF || {});
    function v_(t, e) {
        let { prefix: a, casing: r } = e;
        switch(r){
            case "upper":
                {
                    t = t.toUpperCase();
                    break;
                }
            case "lower":
                {
                    t = t.toLowerCase();
                    break;
                }
        }
        return a && (t = a + t), t;
    }
    function cF(t) {
        return t.map((e)=>{
            if (e % 1 !== 0) {
                let a = new ArrayBuffer(4);
                new DataView(a).setFloat32(0, e);
                let r = new Uint8Array(a);
                return cF([
                    ...r
                ]).replaceAll(" ", "");
            }
            return (e >>> 0).toString(2).padStart(8, "0");
        }).join(" ");
    }
    function Va(t) {
        return Math.round(t * 100);
    }
    function y_(t, e = "rgb", a = "sRGB") {
        switch(e){
            case "rgba":
                return `rgba(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]})`;
            case "color":
                return `color(${a} ${t[0]} ${t[1]} ${t[2]})`;
            case "cmyk":
                return `cmyk(${Va(t[0])}%, ${Va(t[1])}%, ${Va(t[2])}%, ${Va(t[3])}%)`;
            case "hsl":
                return `hsl(${t[0]}deg ${Va(t[1])}% ${Va(t[2])}%)`;
            case "hsla":
                return `hsl(${t[0]}deg ${Va(t[1])}% ${Va(t[2])}% / ${Va(t[3])})`;
            case "hwb":
                return `hwb(${t[0]} ${Va(t[1])}% ${Va(t[2])}%)`;
            case "lab":
                return `lab(${Va(t[0])}% ${t[1]} ${t[2]})`;
            case "lch":
                return `lch(${Va(t[0])}% ${t[1]} ${t[2]})`;
            case "rgb":
                return `rgb(${t[0]}, ${t[1]}, ${t[2]})`;
        }
    }
    function dn(t, e, a = "rgb", r = "sRGB") {
        switch(e){
            case "css":
                return y_(t, a, r);
            case "binary":
                return cF(t);
            case "decimal":
                return t;
        }
    }
    var b_ = class extends Wt {
        human() {
            return this.faker.helpers.arrayElement(this.faker.definitions.color.human);
        }
        space() {
            return this.faker.helpers.arrayElement(this.faker.definitions.color.space);
        }
        cssSupportedFunction() {
            return this.faker.helpers.enumValue(uF);
        }
        cssSupportedSpace() {
            return this.faker.helpers.enumValue(lF);
        }
        rgb(e = {}) {
            let { format: a = "hex", includeAlpha: r = !1, prefix: n = "#", casing: i = "lower" } = e, o, s = "rgb";
            return a === "hex" ? (o = this.faker.string.hexadecimal({
                length: r ? 8 : 6,
                prefix: ""
            }), o = v_(o, {
                prefix: n,
                casing: i
            }), o) : (o = Array.from({
                length: 3
            }, ()=>this.faker.number.int(255)), r && (o.push(this.faker.number.float({
                multipleOf: .01
            })), s = "rgba"), dn(o, a, s));
        }
        cmyk(e = {}) {
            let { format: a = "decimal" } = e, r = Array.from({
                length: 4
            }, ()=>this.faker.number.float({
                    multipleOf: .01
                }));
            return dn(r, a, "cmyk");
        }
        hsl(e = {}) {
            let { format: a = "decimal", includeAlpha: r = !1 } = e, n = [
                this.faker.number.int(360)
            ];
            for(let i = 0; i < (e?.includeAlpha ? 3 : 2); i++)n.push(this.faker.number.float({
                multipleOf: .01
            }));
            return dn(n, a, r ? "hsla" : "hsl");
        }
        hwb(e = {}) {
            let { format: a = "decimal" } = e, r = [
                this.faker.number.int(360)
            ];
            for(let n = 0; n < 2; n++)r.push(this.faker.number.float({
                multipleOf: .01
            }));
            return dn(r, a, "hwb");
        }
        lab(e = {}) {
            let { format: a = "decimal" } = e, r = [
                this.faker.number.float({
                    multipleOf: 1e-6
                })
            ];
            for(let n = 0; n < 2; n++)r.push(this.faker.number.float({
                min: -100,
                max: 100,
                multipleOf: 1e-4
            }));
            return dn(r, a, "lab");
        }
        lch(e = {}) {
            let { format: a = "decimal" } = e, r = [
                this.faker.number.float({
                    multipleOf: 1e-6
                })
            ];
            for(let n = 0; n < 2; n++)r.push(this.faker.number.float({
                max: 230,
                multipleOf: .1
            }));
            return dn(r, a, "lch");
        }
        colorByCSSColorSpace(e = {}) {
            let { format: a = "decimal", space: r = "sRGB" } = e, n = Array.from({
                length: 3
            }, ()=>this.faker.number.float({
                    multipleOf: 1e-4
                }));
            return dn(n, a, "color", r);
        }
    }, dF = ((t)=>(t.Legacy = "legacy", t.Segwit = "segwit", t.Bech32 = "bech32", t.Taproot = "taproot", t))(dF || {}), F_ = ((t)=>(t.Mainnet = "mainnet", t.Testnet = "testnet", t))(F_ || {}), k_ = {
        legacy: {
            prefix: {
                mainnet: "1",
                testnet: "m"
            },
            length: {
                min: 26,
                max: 34
            },
            casing: "mixed",
            exclude: "0OIl"
        },
        segwit: {
            prefix: {
                mainnet: "3",
                testnet: "2"
            },
            length: {
                min: 26,
                max: 34
            },
            casing: "mixed",
            exclude: "0OIl"
        },
        bech32: {
            prefix: {
                mainnet: "bc1",
                testnet: "tb1"
            },
            length: {
                min: 42,
                max: 42
            },
            casing: "lower",
            exclude: "1bBiIoO"
        },
        taproot: {
            prefix: {
                mainnet: "bc1p",
                testnet: "tb1p"
            },
            length: {
                min: 62,
                max: 62
            },
            casing: "lower",
            exclude: "1bBiIoO"
        }
    }, hF = typeof Buffer > "u" || !mF("base64") ? (t)=>{
        let e = new TextEncoder().encode(t), a = Array.from(e, (r)=>String.fromCodePoint(r)).join("");
        return btoa(a);
    } : (t)=>Buffer.from(t).toString("base64"), Dv = typeof Buffer > "u" || !mF("base64url") ? (t)=>hF(t).replaceAll("+", "-").replaceAll("/", "_").replaceAll(/=+$/g, "") : (t)=>Buffer.from(t).toString("base64url");
    function mF(t) {
        try {
            return typeof Buffer.from("test").toString(t) == "string";
        } catch  {
            return !1;
        }
    }
    function Tn(t) {
        let { deprecated: e, since: a, until: r, proposed: n } = t, i = `[@faker-js/faker]: ${e} is deprecated`;
        a && (i += ` since v${a}`), r && (i += ` and will be removed in v${r}`), n && (i += `. Please use ${n} instead`), console.warn(`${i}.`);
    }
    var x_ = Object.fromEntries([
        [
            "А",
            "A"
        ],
        [
            "а",
            "a"
        ],
        [
            "Б",
            "B"
        ],
        [
            "б",
            "b"
        ],
        [
            "В",
            "V"
        ],
        [
            "в",
            "v"
        ],
        [
            "Г",
            "G"
        ],
        [
            "г",
            "g"
        ],
        [
            "Д",
            "D"
        ],
        [
            "д",
            "d"
        ],
        [
            "ъе",
            "ye"
        ],
        [
            "Ъе",
            "Ye"
        ],
        [
            "ъЕ",
            "yE"
        ],
        [
            "ЪЕ",
            "YE"
        ],
        [
            "Е",
            "E"
        ],
        [
            "е",
            "e"
        ],
        [
            "Ё",
            "Yo"
        ],
        [
            "ё",
            "yo"
        ],
        [
            "Ж",
            "Zh"
        ],
        [
            "ж",
            "zh"
        ],
        [
            "З",
            "Z"
        ],
        [
            "з",
            "z"
        ],
        [
            "И",
            "I"
        ],
        [
            "и",
            "i"
        ],
        [
            "ый",
            "iy"
        ],
        [
            "Ый",
            "Iy"
        ],
        [
            "ЫЙ",
            "IY"
        ],
        [
            "ыЙ",
            "iY"
        ],
        [
            "Й",
            "Y"
        ],
        [
            "й",
            "y"
        ],
        [
            "К",
            "K"
        ],
        [
            "к",
            "k"
        ],
        [
            "Л",
            "L"
        ],
        [
            "л",
            "l"
        ],
        [
            "М",
            "M"
        ],
        [
            "м",
            "m"
        ],
        [
            "Н",
            "N"
        ],
        [
            "н",
            "n"
        ],
        [
            "О",
            "O"
        ],
        [
            "о",
            "o"
        ],
        [
            "П",
            "P"
        ],
        [
            "п",
            "p"
        ],
        [
            "Р",
            "R"
        ],
        [
            "р",
            "r"
        ],
        [
            "С",
            "S"
        ],
        [
            "с",
            "s"
        ],
        [
            "Т",
            "T"
        ],
        [
            "т",
            "t"
        ],
        [
            "У",
            "U"
        ],
        [
            "у",
            "u"
        ],
        [
            "Ф",
            "F"
        ],
        [
            "ф",
            "f"
        ],
        [
            "Х",
            "Kh"
        ],
        [
            "х",
            "kh"
        ],
        [
            "Ц",
            "Ts"
        ],
        [
            "ц",
            "ts"
        ],
        [
            "Ч",
            "Ch"
        ],
        [
            "ч",
            "ch"
        ],
        [
            "Ш",
            "Sh"
        ],
        [
            "ш",
            "sh"
        ],
        [
            "Щ",
            "Sch"
        ],
        [
            "щ",
            "sch"
        ],
        [
            "Ъ",
            ""
        ],
        [
            "ъ",
            ""
        ],
        [
            "Ы",
            "Y"
        ],
        [
            "ы",
            "y"
        ],
        [
            "Ь",
            ""
        ],
        [
            "ь",
            ""
        ],
        [
            "Э",
            "E"
        ],
        [
            "э",
            "e"
        ],
        [
            "Ю",
            "Yu"
        ],
        [
            "ю",
            "yu"
        ],
        [
            "Я",
            "Ya"
        ],
        [
            "я",
            "ya"
        ]
    ]), w_ = Object.fromEntries([
        [
            "α",
            "a"
        ],
        [
            "β",
            "v"
        ],
        [
            "γ",
            "g"
        ],
        [
            "δ",
            "d"
        ],
        [
            "ε",
            "e"
        ],
        [
            "ζ",
            "z"
        ],
        [
            "η",
            "i"
        ],
        [
            "θ",
            "th"
        ],
        [
            "ι",
            "i"
        ],
        [
            "κ",
            "k"
        ],
        [
            "λ",
            "l"
        ],
        [
            "μ",
            "m"
        ],
        [
            "ν",
            "n"
        ],
        [
            "ξ",
            "ks"
        ],
        [
            "ο",
            "o"
        ],
        [
            "π",
            "p"
        ],
        [
            "ρ",
            "r"
        ],
        [
            "σ",
            "s"
        ],
        [
            "τ",
            "t"
        ],
        [
            "υ",
            "y"
        ],
        [
            "φ",
            "f"
        ],
        [
            "χ",
            "x"
        ],
        [
            "ψ",
            "ps"
        ],
        [
            "ω",
            "o"
        ],
        [
            "ά",
            "a"
        ],
        [
            "έ",
            "e"
        ],
        [
            "ί",
            "i"
        ],
        [
            "ό",
            "o"
        ],
        [
            "ύ",
            "y"
        ],
        [
            "ή",
            "i"
        ],
        [
            "ώ",
            "o"
        ],
        [
            "ς",
            "s"
        ],
        [
            "ϊ",
            "i"
        ],
        [
            "ΰ",
            "y"
        ],
        [
            "ϋ",
            "y"
        ],
        [
            "ΐ",
            "i"
        ],
        [
            "Α",
            "A"
        ],
        [
            "Β",
            "B"
        ],
        [
            "Γ",
            "G"
        ],
        [
            "Δ",
            "D"
        ],
        [
            "Ε",
            "E"
        ],
        [
            "Ζ",
            "Z"
        ],
        [
            "Η",
            "I"
        ],
        [
            "Θ",
            "TH"
        ],
        [
            "Ι",
            "I"
        ],
        [
            "Κ",
            "K"
        ],
        [
            "Λ",
            "L"
        ],
        [
            "Μ",
            "M"
        ],
        [
            "Ν",
            "N"
        ],
        [
            "Ξ",
            "KS"
        ],
        [
            "Ο",
            "O"
        ],
        [
            "Π",
            "P"
        ],
        [
            "Ρ",
            "R"
        ],
        [
            "Σ",
            "S"
        ],
        [
            "Τ",
            "T"
        ],
        [
            "Υ",
            "Y"
        ],
        [
            "Φ",
            "F"
        ],
        [
            "Χ",
            "X"
        ],
        [
            "Ψ",
            "PS"
        ],
        [
            "Ω",
            "O"
        ],
        [
            "Ά",
            "A"
        ],
        [
            "Έ",
            "E"
        ],
        [
            "Ί",
            "I"
        ],
        [
            "Ό",
            "O"
        ],
        [
            "Ύ",
            "Y"
        ],
        [
            "Ή",
            "I"
        ],
        [
            "Ώ",
            "O"
        ],
        [
            "Ϊ",
            "I"
        ],
        [
            "Ϋ",
            "Y"
        ]
    ]), S_ = Object.fromEntries([
        [
            "ء",
            "e"
        ],
        [
            "آ",
            "a"
        ],
        [
            "أ",
            "a"
        ],
        [
            "ؤ",
            "w"
        ],
        [
            "إ",
            "i"
        ],
        [
            "ئ",
            "y"
        ],
        [
            "ا",
            "a"
        ],
        [
            "ب",
            "b"
        ],
        [
            "ة",
            "t"
        ],
        [
            "ت",
            "t"
        ],
        [
            "ث",
            "th"
        ],
        [
            "ج",
            "j"
        ],
        [
            "ح",
            "h"
        ],
        [
            "خ",
            "kh"
        ],
        [
            "د",
            "d"
        ],
        [
            "ذ",
            "dh"
        ],
        [
            "ر",
            "r"
        ],
        [
            "ز",
            "z"
        ],
        [
            "س",
            "s"
        ],
        [
            "ش",
            "sh"
        ],
        [
            "ص",
            "s"
        ],
        [
            "ض",
            "d"
        ],
        [
            "ط",
            "t"
        ],
        [
            "ظ",
            "z"
        ],
        [
            "ع",
            "e"
        ],
        [
            "غ",
            "gh"
        ],
        [
            "ـ",
            "_"
        ],
        [
            "ف",
            "f"
        ],
        [
            "ق",
            "q"
        ],
        [
            "ك",
            "k"
        ],
        [
            "ل",
            "l"
        ],
        [
            "م",
            "m"
        ],
        [
            "ن",
            "n"
        ],
        [
            "ه",
            "h"
        ],
        [
            "و",
            "w"
        ],
        [
            "ى",
            "a"
        ],
        [
            "ي",
            "y"
        ],
        [
            "َ‎",
            "a"
        ],
        [
            "ُ",
            "u"
        ],
        [
            "ِ‎",
            "i"
        ]
    ]), C_ = Object.fromEntries([
        [
            "ա",
            "a"
        ],
        [
            "Ա",
            "A"
        ],
        [
            "բ",
            "b"
        ],
        [
            "Բ",
            "B"
        ],
        [
            "գ",
            "g"
        ],
        [
            "Գ",
            "G"
        ],
        [
            "դ",
            "d"
        ],
        [
            "Դ",
            "D"
        ],
        [
            "ե",
            "ye"
        ],
        [
            "Ե",
            "Ye"
        ],
        [
            "զ",
            "z"
        ],
        [
            "Զ",
            "Z"
        ],
        [
            "է",
            "e"
        ],
        [
            "Է",
            "E"
        ],
        [
            "ը",
            "y"
        ],
        [
            "Ը",
            "Y"
        ],
        [
            "թ",
            "t"
        ],
        [
            "Թ",
            "T"
        ],
        [
            "ժ",
            "zh"
        ],
        [
            "Ժ",
            "Zh"
        ],
        [
            "ի",
            "i"
        ],
        [
            "Ի",
            "I"
        ],
        [
            "լ",
            "l"
        ],
        [
            "Լ",
            "L"
        ],
        [
            "խ",
            "kh"
        ],
        [
            "Խ",
            "Kh"
        ],
        [
            "ծ",
            "ts"
        ],
        [
            "Ծ",
            "Ts"
        ],
        [
            "կ",
            "k"
        ],
        [
            "Կ",
            "K"
        ],
        [
            "հ",
            "h"
        ],
        [
            "Հ",
            "H"
        ],
        [
            "ձ",
            "dz"
        ],
        [
            "Ձ",
            "Dz"
        ],
        [
            "ղ",
            "gh"
        ],
        [
            "Ղ",
            "Gh"
        ],
        [
            "ճ",
            "tch"
        ],
        [
            "Ճ",
            "Tch"
        ],
        [
            "մ",
            "m"
        ],
        [
            "Մ",
            "M"
        ],
        [
            "յ",
            "y"
        ],
        [
            "Յ",
            "Y"
        ],
        [
            "ն",
            "n"
        ],
        [
            "Ն",
            "N"
        ],
        [
            "շ",
            "sh"
        ],
        [
            "Շ",
            "Sh"
        ],
        [
            "ո",
            "vo"
        ],
        [
            "Ո",
            "Vo"
        ],
        [
            "չ",
            "ch"
        ],
        [
            "Չ",
            "Ch"
        ],
        [
            "պ",
            "p"
        ],
        [
            "Պ",
            "P"
        ],
        [
            "ջ",
            "j"
        ],
        [
            "Ջ",
            "J"
        ],
        [
            "ռ",
            "r"
        ],
        [
            "Ռ",
            "R"
        ],
        [
            "ս",
            "s"
        ],
        [
            "Ս",
            "S"
        ],
        [
            "վ",
            "v"
        ],
        [
            "Վ",
            "V"
        ],
        [
            "տ",
            "t"
        ],
        [
            "Տ",
            "T"
        ],
        [
            "ր",
            "r"
        ],
        [
            "Ր",
            "R"
        ],
        [
            "ց",
            "c"
        ],
        [
            "Ց",
            "C"
        ],
        [
            "ու",
            "u"
        ],
        [
            "ՈՒ",
            "U"
        ],
        [
            "Ու",
            "U"
        ],
        [
            "փ",
            "p"
        ],
        [
            "Փ",
            "P"
        ],
        [
            "ք",
            "q"
        ],
        [
            "Ք",
            "Q"
        ],
        [
            "օ",
            "o"
        ],
        [
            "Օ",
            "O"
        ],
        [
            "ֆ",
            "f"
        ],
        [
            "Ֆ",
            "F"
        ],
        [
            "և",
            "yev"
        ]
    ]), A_ = Object.fromEntries([
        [
            "چ",
            "ch"
        ],
        [
            "ک",
            "k"
        ],
        [
            "گ",
            "g"
        ],
        [
            "پ",
            "p"
        ],
        [
            "ژ",
            "zh"
        ],
        [
            "ی",
            "y"
        ]
    ]), D_ = Object.fromEntries([
        [
            "א",
            "a"
        ],
        [
            "ב",
            "b"
        ],
        [
            "ג",
            "g"
        ],
        [
            "ד",
            "d"
        ],
        [
            "ה",
            "h"
        ],
        [
            "ו",
            "v"
        ],
        [
            "ז",
            "z"
        ],
        [
            "ח",
            "ch"
        ],
        [
            "ט",
            "t"
        ],
        [
            "י",
            "y"
        ],
        [
            "כ",
            "k"
        ],
        [
            "ך",
            "kh"
        ],
        [
            "ל",
            "l"
        ],
        [
            "ם",
            "m"
        ],
        [
            "מ",
            "m"
        ],
        [
            "ן",
            "n"
        ],
        [
            "נ",
            "n"
        ],
        [
            "ס",
            "s"
        ],
        [
            "ע",
            "a"
        ],
        [
            "פ",
            "f"
        ],
        [
            "ף",
            "ph"
        ],
        [
            "צ",
            "ts"
        ],
        [
            "ץ",
            "ts"
        ],
        [
            "ק",
            "k"
        ],
        [
            "ר",
            "r"
        ],
        [
            "ש",
            "sh"
        ],
        [
            "ת",
            "t"
        ],
        [
            "ו",
            "v"
        ]
    ]), Tv = {
        ...x_,
        ...w_,
        ...S_,
        ...A_,
        ...C_,
        ...D_
    }, T_ = ((t)=>(t.Any = "any", t.Loopback = "loopback", t.PrivateA = "private-a", t.PrivateB = "private-b", t.PrivateC = "private-c", t.TestNet1 = "test-net-1", t.TestNet2 = "test-net-2", t.TestNet3 = "test-net-3", t.LinkLocal = "link-local", t.Multicast = "multicast", t))(T_ || {}), E_ = {
        any: "0.0.0.0/0",
        loopback: "127.0.0.0/8",
        "private-a": "10.0.0.0/8",
        "private-b": "172.16.0.0/12",
        "private-c": "192.168.0.0/16",
        "test-net-1": "192.0.2.0/24",
        "test-net-2": "198.51.100.0/24",
        "test-net-3": "203.0.113.0/24",
        "link-local": "169.254.0.0/16",
        multicast: "224.0.0.0/4"
    };
    function Ev(t) {
        return /^[a-z][a-z-]*[a-z]$/i.exec(t) !== null;
    }
    function _v(t, e) {
        let a = t.helpers.slugify(e);
        if (Ev(a)) return a;
        let r = t.helpers.slugify(t.lorem.word());
        return Ev(r) ? r : t.string.alpha({
            casing: "lower",
            length: t.number.int({
                min: 4,
                max: 8
            })
        });
    }
    function pd(t, e) {
        return Math.floor((t.number.int(256) + e) / 2).toString(16).padStart(2, "0");
    }
    var __ = class extends Wt {
        email(e = {}) {
            let { firstName: a, lastName: r, provider: n = this.faker.helpers.arrayElement(this.faker.definitions.internet.free_email), allowSpecialCharacters: i = !1 } = e, o = this.username({
                firstName: a,
                lastName: r
            });
            if (o = o.replaceAll(/[^A-Za-z0-9._+-]+/g, ""), o = o.substring(0, 50), i) {
                let s = [
                    ..."._-"
                ], l = [
                    ...".!#$%&'*+-/=?^_`{|}~"
                ];
                o = o.replace(this.faker.helpers.arrayElement(s), this.faker.helpers.arrayElement(l));
            }
            return o = o.replaceAll(/\.{2,}/g, "."), o = o.replace(/^\./, ""), o = o.replace(/\.$/, ""), `${o}@${n}`;
        }
        exampleEmail(e = {}) {
            let { firstName: a, lastName: r, allowSpecialCharacters: n = !1 } = e, i = this.faker.helpers.arrayElement(this.faker.definitions.internet.example_email);
            return this.email({
                firstName: a,
                lastName: r,
                provider: i,
                allowSpecialCharacters: n
            });
        }
        userName(e = {}) {
            return Tn({
                deprecated: "faker.internet.userName()",
                proposed: "faker.internet.username()",
                since: "9.1.0",
                until: "10.0.0"
            }), this.username(e);
        }
        username(e = {}) {
            let { firstName: a = this.faker.person.firstName(), lastName: r = this.faker.person.lastName(), lastName: n } = e, i = this.faker.helpers.arrayElement([
                ".",
                "_"
            ]), o = this.faker.number.int(99), s = [
                ()=>`${a}${i}${r}${o}`,
                ()=>`${a}${i}${r}`
            ];
            n || s.push(()=>`${a}${o}`);
            let l = this.faker.helpers.arrayElement(s)();
            return l = l.normalize("NFKD").replaceAll(/[\u0300-\u036F]/g, ""), l = [
                ...l
            ].map((u)=>{
                if (Tv[u]) return Tv[u];
                let c = u.codePointAt(0) ?? Number.NaN;
                return c < 128 ? u : c.toString(36);
            }).join(""), l = l.toString().replaceAll("'", ""), l = l.replaceAll(" ", ""), l;
        }
        displayName(e = {}) {
            let { firstName: a = this.faker.person.firstName(), lastName: r = this.faker.person.lastName() } = e, n = this.faker.helpers.arrayElement([
                ".",
                "_"
            ]), i = this.faker.number.int(99), o = [
                ()=>`${a}${i}`,
                ()=>`${a}${n}${r}`,
                ()=>`${a}${n}${r}${i}`
            ], s = this.faker.helpers.arrayElement(o)();
            return s = s.toString().replaceAll("'", ""), s = s.replaceAll(" ", ""), s;
        }
        protocol() {
            let e = [
                "http",
                "https"
            ];
            return this.faker.helpers.arrayElement(e);
        }
        httpMethod() {
            let e = [
                "GET",
                "POST",
                "PUT",
                "DELETE",
                "PATCH"
            ];
            return this.faker.helpers.arrayElement(e);
        }
        httpStatusCode(e = {}) {
            let { types: a = Object.keys(this.faker.definitions.internet.http_status_code) } = e, r = this.faker.helpers.arrayElement(a);
            return this.faker.helpers.arrayElement(this.faker.definitions.internet.http_status_code[r]);
        }
        url(e = {}) {
            let { appendSlash: a = this.faker.datatype.boolean(), protocol: r = "https" } = e;
            return `${r}://${this.domainName()}${a ? "/" : ""}`;
        }
        domainName() {
            return `${this.domainWord()}.${this.domainSuffix()}`;
        }
        domainSuffix() {
            return this.faker.helpers.arrayElement(this.faker.definitions.internet.domain_suffix);
        }
        domainWord() {
            let e = _v(this.faker, this.faker.word.adjective()), a = _v(this.faker, this.faker.word.noun());
            return `${e}-${a}`.toLowerCase();
        }
        ip() {
            return this.faker.datatype.boolean() ? this.ipv4() : this.ipv6();
        }
        ipv4(e = {}) {
            let { network: a = "any", cidrBlock: r = E_[a] } = e;
            if (!/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$/.test(r)) throw new He(`Invalid CIDR block provided: ${r}. Must be in the format x.x.x.x/y.`);
            let [n, i] = r.split("/"), o = 4294967295 >>> Number.parseInt(i), [s, l, u, c] = n.split(".").map(Number), d = (s << 24 | l << 16 | u << 8 | c) & ~o, h = this.faker.number.int(o), m = d | h;
            return [
                m >>> 24 & 255,
                m >>> 16 & 255,
                m >>> 8 & 255,
                m & 255
            ].join(".");
        }
        ipv6() {
            return Array.from({
                length: 8
            }, ()=>this.faker.string.hexadecimal({
                    length: 4,
                    casing: "lower",
                    prefix: ""
                })).join(":");
        }
        port() {
            return this.faker.number.int(65535);
        }
        userAgent() {
            return this.faker.helpers.fake(this.faker.definitions.internet.user_agent_pattern);
        }
        color(e = {}) {
            Tn({
                deprecated: "faker.internet.color()",
                proposed: "faker.color.rgb()",
                since: "9.6.0",
                until: "10.0.0"
            });
            let { redBase: a = 0, greenBase: r = 0, blueBase: n = 0 } = e, i = pd(this.faker, a), o = pd(this.faker, r), s = pd(this.faker, n);
            return `#${i}${o}${s}`;
        }
        mac(e = {}) {
            typeof e == "string" && (e = {
                separator: e
            });
            let { separator: a = ":" } = e, r, n = "";
            for([
                ":",
                "-",
                ""
            ].includes(a) || (a = ":"), r = 0; r < 12; r++)n += this.faker.number.hex(15), r % 2 === 1 && r !== 11 && (n += a);
            return n;
        }
        password(e = {}) {
            let a = /[aeiouAEIOU]$/, r = /[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/, n = (u, c, d, h)=>{
                if (h.length >= u) return h;
                c && (d = r.test(h) ? a : r);
                let m = this.faker.number.int(94) + 33, f = String.fromCodePoint(m);
                return c && (f = f.toLowerCase()), d.test(f) ? n(u, c, d, h + f) : n(u, c, d, h);
            }, { length: i = 15, memorable: o = !1, pattern: s = /\w/, prefix: l = "" } = e;
            return n(i, o, s, l);
        }
        emoji(e = {}) {
            let { types: a = Object.keys(this.faker.definitions.internet.emoji) } = e, r = this.faker.helpers.arrayElement(a);
            return this.faker.helpers.arrayElement(this.faker.definitions.internet.emoji[r]);
        }
        jwtAlgorithm() {
            return this.faker.helpers.arrayElement(this.faker.definitions.internet.jwt_algorithm);
        }
        jwt(e = {}) {
            let { refDate: a = this.faker.defaultRefDate() } = e, r = this.faker.date.recent({
                refDate: a
            }), { header: n = {
                alg: this.jwtAlgorithm(),
                typ: "JWT"
            }, payload: i = {
                iat: Math.round(r.valueOf() / 1e3),
                exp: Math.round(this.faker.date.soon({
                    refDate: r
                }).valueOf() / 1e3),
                nbf: Math.round(this.faker.date.anytime({
                    refDate: a
                }).valueOf() / 1e3),
                iss: this.faker.company.name(),
                sub: this.faker.string.uuid(),
                aud: this.faker.string.uuid(),
                jti: this.faker.string.uuid()
            } } = e, o = Dv(JSON.stringify(n)), s = Dv(JSON.stringify(i)), l = this.faker.string.alphanumeric(64);
            return `${o}.${s}.${l}`;
        }
    }, fF = ((t)=>(t.Female = "female", t.Male = "male", t))(fF || {});
    function Xi(t, e, a) {
        let { generic: r, female: n, male: i } = a;
        switch(e){
            case "female":
                return n ?? r;
            case "male":
                return i ?? r;
            default:
                return r ?? t.helpers.arrayElement([
                    n,
                    i
                ]) ?? [];
        }
    }
    var P_ = class extends Wt {
        firstName(e) {
            return this.faker.helpers.arrayElement(Xi(this.faker, e, this.faker.definitions.person.first_name));
        }
        lastName(e) {
            if (this.faker.rawDefinitions.person?.last_name_pattern != null) {
                let a = this.faker.helpers.weightedArrayElement(Xi(this.faker, e, this.faker.rawDefinitions.person.last_name_pattern));
                return this.faker.helpers.fake(a);
            }
            return this.faker.helpers.arrayElement(Xi(this.faker, e, this.faker.definitions.person.last_name));
        }
        middleName(e) {
            return this.faker.helpers.arrayElement(Xi(this.faker, e, this.faker.definitions.person.middle_name));
        }
        fullName(e = {}) {
            let { sex: a = this.faker.helpers.arrayElement([
                "female",
                "male"
            ]), firstName: r = this.firstName(a), lastName: n = this.lastName(a) } = e, i = this.faker.helpers.weightedArrayElement(this.faker.definitions.person.name);
            return this.faker.helpers.mustache(i, {
                "person.prefix": ()=>this.prefix(a),
                "person.firstName": ()=>r,
                "person.middleName": ()=>this.middleName(a),
                "person.lastName": ()=>n,
                "person.suffix": ()=>this.suffix()
            });
        }
        gender() {
            return this.faker.helpers.arrayElement(this.faker.definitions.person.gender);
        }
        sex() {
            return this.faker.helpers.arrayElement(this.faker.definitions.person.sex);
        }
        sexType() {
            return this.faker.helpers.enumValue(fF);
        }
        bio() {
            let { bio_pattern: e } = this.faker.definitions.person;
            return this.faker.helpers.fake(e);
        }
        prefix(e) {
            return this.faker.helpers.arrayElement(Xi(this.faker, e, this.faker.definitions.person.prefix));
        }
        suffix() {
            return this.faker.helpers.arrayElement(this.faker.definitions.person.suffix);
        }
        jobTitle() {
            return this.faker.helpers.fake(this.faker.definitions.person.job_title_pattern);
        }
        jobDescriptor() {
            return this.faker.helpers.arrayElement(this.faker.definitions.person.job_descriptor);
        }
        jobArea() {
            return this.faker.helpers.arrayElement(this.faker.definitions.person.job_area);
        }
        jobType() {
            return this.faker.helpers.arrayElement(this.faker.definitions.person.job_type);
        }
        zodiacSign() {
            return this.faker.helpers.arrayElement(this.faker.definitions.person.western_zodiac_sign);
        }
    }, B_ = 23283064365386963e-26, M_ = 1 / 9007199254740992, { imul: dh, trunc: hh } = Math;
    function Pv(t) {
        return typeof t == "number" ? pF(t) : R_(t);
    }
    function pF(t) {
        let e = Array.from({
            length: 624
        });
        e[0] = t;
        for(let a = 1; a !== 624; ++a){
            let r = e[a - 1] ^ e[a - 1] >>> 30;
            e[a] = hh(dh(1812433253, r) + a);
        }
        return e;
    }
    function R_(t) {
        let e = pF(19650218), a = 1, r = 0;
        for(let n = Math.max(624, t.length); n !== 0; --n){
            let i = e[a - 1] ^ e[a - 1] >>> 30;
            e[a] = hh((e[a] ^ dh(i, 1664525)) + t[r] + r), a++, r++, a >= 624 && (e[0] = e[623], a = 1), r >= t.length && (r = 0);
        }
        for(let n = 623; n !== 0; n--)e[a] = hh((e[a] ^ dh(e[a - 1] ^ e[a - 1] >>> 30, 1566083941)) - a), a++, a >= 624 && (e[0] = e[623], a = 1);
        return e[0] = 2147483648, e;
    }
    function gd(t) {
        for(let a = 0; a !== 227; ++a){
            let r = (t[a] & 2147483648) + (t[a + 1] & 2147483647);
            t[a] = t[a + 397] ^ r >>> 1 ^ -(r & 1) & 2567483615;
        }
        for(let a = 227; a !== 623; ++a){
            let r = (t[a] & 2147483648) + (t[a + 1] & 2147483647);
            t[a] = t[a + 397 - 624] ^ r >>> 1 ^ -(r & 1) & 2567483615;
        }
        let e = (t[623] & 2147483648) + (t[0] & 2147483647);
        return t[623] = t[396] ^ e >>> 1 ^ -(e & 1) & 2567483615, t;
    }
    var L_ = class {
        constructor(e = Math.random() * Number.MAX_SAFE_INTEGER, a = gd(Pv(e)), r = 0){
            this.states = a, this.index = r;
        }
        nextU32() {
            let e = this.states[this.index];
            return e ^= this.states[this.index] >>> 11, e ^= e << 7 & 2636928640, e ^= e << 15 & 4022730752, e ^= e >>> 18, ++this.index >= 624 && (this.states = gd(this.states), this.index = 0), e >>> 0;
        }
        nextF32() {
            return this.nextU32() * B_;
        }
        nextU53() {
            let e = this.nextU32() >>> 5, a = this.nextU32() >>> 6;
            return e * 67108864 + a;
        }
        nextF53() {
            return this.nextU53() * M_;
        }
        seed(e) {
            this.states = gd(Pv(e)), this.index = 0;
        }
    };
    function gF() {
        return Math.ceil(Math.random() * Number.MAX_SAFE_INTEGER);
    }
    function I_(t = gF()) {
        let e = new L_(t);
        return {
            next () {
                return e.nextF53();
            },
            seed (a) {
                e.seed(a);
            }
        };
    }
    var z_ = class extends Ri {
        boolean(e = {}) {
            typeof e == "number" && (e = {
                probability: e
            });
            let { probability: a = .5 } = e;
            return a <= 0 ? !1 : a >= 1 ? !0 : this.faker.number.float() < a;
        }
    };
    function Ar(t, e = "refDate") {
        let a = new Date(t);
        if (Number.isNaN(a.valueOf())) throw new He(`Invalid ${e} date: ${t.toString()}`);
        return a;
    }
    var Gs = ()=>{
        throw new He("You cannot edit the locale data on the faker instance");
    };
    function N_(t) {
        let e = {};
        return new Proxy(t, {
            has () {
                return !0;
            },
            get (a, r) {
                return typeof r == "symbol" || r === "nodeType" ? a[r] : r in e ? e[r] : e[r] = O_(r, a[r]);
            },
            set: Gs,
            deleteProperty: Gs
        });
    }
    function mh(t, ...e) {
        if (t === null) throw new He(`The locale data for '${e.join(".")}' aren't applicable to this locale.
  If you think this is a bug, please report it at: https://github.com/faker-js/faker`);
        if (t === void 0) throw new He(`The locale data for '${e.join(".")}' are missing in this locale.
  If this is a custom Faker instance, please make sure all required locales are used e.g. '[de_AT, de, en, base]'.
  Please contribute the missing data to the project or use a locale/Faker instance that has these data.
  For more information see https://fakerjs.dev/guide/localization.html`);
    }
    function O_(t, e = {}) {
        return new Proxy(e, {
            has (a, r) {
                return a[r] != null;
            },
            get (a, r) {
                let n = a[r];
                return typeof r == "symbol" || r === "nodeType" || mh(n, t, r.toString()), n;
            },
            set: Gs,
            deleteProperty: Gs
        });
    }
    var vF = class extends Ri {
        anytime(e = {}) {
            let { refDate: a = this.faker.defaultRefDate() } = e, r = Ar(a).getTime();
            return this.between({
                from: r - 1e3 * 60 * 60 * 24 * 365,
                to: r + 1e3 * 60 * 60 * 24 * 365
            });
        }
        past(e = {}) {
            let { years: a = 1, refDate: r = this.faker.defaultRefDate() } = e;
            if (a <= 0) throw new He("Years must be greater than 0.");
            let n = Ar(r).getTime();
            return this.between({
                from: n - a * 365 * 24 * 3600 * 1e3,
                to: n - 1e3
            });
        }
        future(e = {}) {
            let { years: a = 1, refDate: r = this.faker.defaultRefDate() } = e;
            if (a <= 0) throw new He("Years must be greater than 0.");
            let n = Ar(r).getTime();
            return this.between({
                from: n + 1e3,
                to: n + a * 365 * 24 * 3600 * 1e3
            });
        }
        between(e) {
            if (e == null || e.from == null || e.to == null) throw new He("Must pass an options object with `from` and `to` values.");
            let { from: a, to: r } = e, n = Ar(a, "from").getTime(), i = Ar(r, "to").getTime();
            if (n > i) throw new He("`from` date must be before `to` date.");
            return new Date(this.faker.number.int({
                min: n,
                max: i
            }));
        }
        betweens(e) {
            if (e == null || e.from == null || e.to == null) throw new He("Must pass an options object with `from` and `to` values.");
            let { from: a, to: r, count: n = 3 } = e;
            return this.faker.helpers.multiple(()=>this.between({
                    from: a,
                    to: r
                }), {
                count: n
            }).sort((i, o)=>i.getTime() - o.getTime());
        }
        recent(e = {}) {
            let { days: a = 1, refDate: r = this.faker.defaultRefDate() } = e;
            if (a <= 0) throw new He("Days must be greater than 0.");
            let n = Ar(r).getTime();
            return this.between({
                from: n - a * 24 * 3600 * 1e3,
                to: n - 1e3
            });
        }
        soon(e = {}) {
            let { days: a = 1, refDate: r = this.faker.defaultRefDate() } = e;
            if (a <= 0) throw new He("Days must be greater than 0.");
            let n = Ar(r).getTime();
            return this.between({
                from: n + 1e3,
                to: n + a * 24 * 3600 * 1e3
            });
        }
        birthdate(e = {}) {
            let { mode: a = "age", min: r = 18, max: n = 80, refDate: i = this.faker.defaultRefDate(), mode: o, min: s, max: l } = e;
            if ([
                s,
                l,
                o
            ].filter((d)=>d != null).length % 3 !== 0) throw new He("The 'min', 'max', and 'mode' options must be set together.");
            let u = Ar(i), c = u.getUTCFullYear();
            switch(a){
                case "age":
                    {
                        let d = new Date(u).setUTCFullYear(c - n - 1) + 864e5, h = new Date(u).setUTCFullYear(c - r);
                        if (d > h) throw new He(`Max age ${n} should be greater than or equal to min age ${r}.`);
                        return this.between({
                            from: d,
                            to: h
                        });
                    }
                case "year":
                    {
                        let d = new Date(Date.UTC(0, 0, 2)).setUTCFullYear(r), h = new Date(Date.UTC(0, 11, 30)).setUTCFullYear(n);
                        if (d > h) throw new He(`Max year ${n} should be greater than or equal to min year ${r}.`);
                        return this.between({
                            from: d,
                            to: h
                        });
                    }
            }
        }
    }, H_ = class extends vF {
        constructor(e){
            super(e), this.faker = e;
        }
        month(e = {}) {
            let { abbreviated: a = !1, context: r = !1 } = e, n = this.faker.definitions.date.month, i;
            a ? i = r && n.abbr_context != null ? "abbr_context" : "abbr" : i = r && n.wide_context != null ? "wide_context" : "wide";
            let o = n[i];
            return mh(o, "date.month", i), this.faker.helpers.arrayElement(o);
        }
        weekday(e = {}) {
            let { abbreviated: a = !1, context: r = !1 } = e, n = this.faker.definitions.date.weekday, i;
            a ? i = r && n.abbr_context != null ? "abbr_context" : "abbr" : i = r && n.wide_context != null ? "wide_context" : "wide";
            let o = n[i];
            return mh(o, "date.weekday", i), this.faker.helpers.arrayElement(o);
        }
        timeZone() {
            return this.faker.helpers.arrayElement(this.faker.definitions.date.time_zone);
        }
    }, V_ = /\.|\(/;
    function W_(t, e, a = [
        e,
        e.rawDefinitions
    ]) {
        if (t.length === 0) throw new He("Eval expression cannot be empty.");
        if (a.length === 0) throw new He("Eval entrypoints cannot be empty.");
        let r = a, n = t;
        do {
            let o;
            n.startsWith("(") ? [o, r] = G_(n, r, t) : [o, r] = U_(n, r), n = n.substring(o), r = r.filter((s)=>s != null).map((s)=>Array.isArray(s) ? e.helpers.arrayElement(s) : s);
        }while (n.length > 0 && r.length > 0);
        if (r.length === 0) throw new He(`Cannot resolve expression '${t}'`);
        let i = r[0];
        return typeof i == "function" ? i() : i;
    }
    function G_(t, e, a) {
        let [r, n] = $_(t), i = t[r + 1];
        switch(i){
            case ".":
            case "(":
            case void 0:
                break;
            default:
                throw new He(`Expected dot ('.'), open parenthesis ('('), or nothing after function call but got '${i}'`);
        }
        return [
            r + (i === "." ? 2 : 1),
            e.map((o)=>typeof o == "function" ? o(...n) : (console.warn(`[@faker-js/faker]: Invoking expressions which are not functions is deprecated since v9.0 and will be removed in v10.0.
Please remove the parentheses or replace the expression with an actual function.
${a}
${" ".repeat(a.length - t.length)}^`), o))
        ];
    }
    function $_(t) {
        let e = t.indexOf(")", 1);
        if (e === -1) throw new He(`Missing closing parenthesis in '${t}'`);
        for(; e !== -1;){
            let r = t.substring(1, e);
            try {
                return [
                    e,
                    JSON.parse(`[${r}]`)
                ];
            } catch  {
                if (!r.includes("'") && !r.includes('"')) try {
                    return [
                        e,
                        JSON.parse(`["${r}"]`)
                    ];
                } catch  {}
            }
            e = t.indexOf(")", e + 1);
        }
        e = t.lastIndexOf(")");
        let a = t.substring(1, e);
        return [
            e,
            [
                a
            ]
        ];
    }
    function U_(t, e) {
        let a = V_.exec(t), r = (a?.[0] ?? "") === ".", n = a?.index ?? t.length, i = t.substring(0, n);
        if (i.length === 0) throw new He(`Expression parts cannot be empty in '${t}'`);
        let o = t[n + 1];
        if (r && (o == null || o === "." || o === "(")) throw new He(`Found dot without property name in '${t}'`);
        return [
            n + (r ? 1 : 0),
            e.map((s)=>j_(s, i))
        ];
    }
    function j_(t, e) {
        switch(typeof t){
            case "function":
                {
                    try {
                        t = t();
                    } catch  {
                        return;
                    }
                    return t?.[e];
                }
            case "object":
                return t?.[e];
            default:
                return;
        }
    }
    function Y_(t) {
        let e = q_(t.replace(/L?$/, "0"));
        return e === 0 ? 0 : 10 - e;
    }
    function q_(t) {
        t = t.replaceAll(/[\s-]/g, "");
        let e = 0, a = !1;
        for(let r = t.length - 1; r >= 0; r--){
            let n = Number.parseInt(t[r]);
            a && (n *= 2, n > 9 && (n = n % 10 + 1)), e += n, a = !a;
        }
        return e % 10;
    }
    function Bv(t, e, a, r) {
        let n = 1;
        if (e) switch(e){
            case "?":
                {
                    n = t.datatype.boolean() ? 0 : 1;
                    break;
                }
            case "*":
                {
                    let i = 1;
                    for(; t.datatype.boolean();)i *= 2;
                    n = t.number.int({
                        min: 0,
                        max: i
                    });
                    break;
                }
            case "+":
                {
                    let i = 1;
                    for(; t.datatype.boolean();)i *= 2;
                    n = t.number.int({
                        min: 1,
                        max: i
                    });
                    break;
                }
            default:
                throw new He("Unknown quantifier symbol provided.");
        }
        else a != null && r != null ? n = t.number.int({
            min: Number.parseInt(a),
            max: Number.parseInt(r)
        }) : a != null && r == null && (n = Number.parseInt(a));
        return n;
    }
    function K_(t, e = "") {
        let a = /(.)\{(\d+),(\d+)\}/, r = /(.)\{(\d+)\}/, n = /\[(\d+)-(\d+)\]/, i, o, s, l, u = a.exec(e);
        for(; u != null;)i = Number.parseInt(u[2]), o = Number.parseInt(u[3]), i > o && (s = o, o = i, i = s), l = t.number.int({
            min: i,
            max: o
        }), e = e.slice(0, u.index) + u[1].repeat(l) + e.slice(u.index + u[0].length), u = a.exec(e);
        for(u = r.exec(e); u != null;)l = Number.parseInt(u[2]), e = e.slice(0, u.index) + u[1].repeat(l) + e.slice(u.index + u[0].length), u = r.exec(e);
        for(u = n.exec(e); u != null;)i = Number.parseInt(u[1]), o = Number.parseInt(u[2]), i > o && (s = o, o = i, i = s), e = e.slice(0, u.index) + t.number.int({
            min: i,
            max: o
        }).toString() + e.slice(u.index + u[0].length), u = n.exec(e);
        return e;
    }
    function yF(t, e = "", a = "#") {
        let r = "";
        for(let n = 0; n < e.length; n++)e.charAt(n) === a ? r += t.number.int(9) : e.charAt(n) === "!" ? r += t.number.int({
            min: 2,
            max: 9
        }) : r += e.charAt(n);
        return r;
    }
    var bF = class extends Ri {
        slugify(e = "") {
            return e.normalize("NFKD").replaceAll(/[\u0300-\u036F]/g, "").replaceAll(" ", "-").replaceAll(/[^\w.-]+/g, "");
        }
        replaceSymbols(e = "") {
            let a = [
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G",
                "H",
                "I",
                "J",
                "K",
                "L",
                "M",
                "N",
                "O",
                "P",
                "Q",
                "R",
                "S",
                "T",
                "U",
                "V",
                "W",
                "X",
                "Y",
                "Z"
            ], r = "";
            for(let n = 0; n < e.length; n++)e.charAt(n) === "#" ? r += this.faker.number.int(9) : e.charAt(n) === "?" ? r += this.arrayElement(a) : e.charAt(n) === "*" ? r += this.faker.datatype.boolean() ? this.arrayElement(a) : this.faker.number.int(9) : r += e.charAt(n);
            return r;
        }
        replaceCreditCardSymbols(e = "6453-####-####-####-###L", a = "#") {
            e = K_(this.faker, e), e = yF(this.faker, e, a);
            let r = Y_(e);
            return e.replace("L", String(r));
        }
        fromRegExp(e) {
            let a = !1;
            e instanceof RegExp && (a = e.flags.includes("i"), e = e.toString(), e = /\/(.+?)\//.exec(e)?.[1] ?? "");
            let r, n, i, o = /([.A-Za-z0-9])(?:\{(\d+)(?:,(\d+)|)\}|(\?|\*|\+))(?![^[]*]|[^{]*})/, s = o.exec(e);
            for(; s != null;){
                let h = s[2], m = s[3], f = s[4];
                i = Bv(this.faker, f, h, m);
                let p;
                s[1] === "." ? p = this.faker.string.alphanumeric(i) : a ? p = this.faker.string.fromCharacters([
                    s[1].toLowerCase(),
                    s[1].toUpperCase()
                ], i) : p = s[1].repeat(i), e = e.slice(0, s.index) + p + e.slice(s.index + s[0].length), s = o.exec(e);
            }
            let l = /(\d-\d|\w-\w|\d|\w|[-!@#$&()`.+,/"])/, u = /\[(\^|)(-|)(.+?)\](?:\{(\d+)(?:,(\d+)|)\}|(\?|\*|\+)|)/;
            for(s = u.exec(e); s != null;){
                let h = s[1] === "^", m = s[2] === "-", f = s[4], p = s[5], g = s[6], v = [], b = s[3], k = l.exec(b);
                for(m && v.push(45); k != null;){
                    if (k[0].includes("-")) {
                        let x = k[0].split("-").map((C)=>C.codePointAt(0) ?? Number.NaN);
                        if (r = x[0], n = x[1], r > n) throw new He("Character range provided is out of order.");
                        for(let C = r; C <= n; C++)if (a && Number.isNaN(Number(String.fromCodePoint(C)))) {
                            let w = String.fromCodePoint(C);
                            v.push(w.toUpperCase().codePointAt(0) ?? Number.NaN, w.toLowerCase().codePointAt(0) ?? Number.NaN);
                        } else v.push(C);
                    } else a && Number.isNaN(Number(k[0])) ? v.push(k[0].toUpperCase().codePointAt(0) ?? Number.NaN, k[0].toLowerCase().codePointAt(0) ?? Number.NaN) : v.push(k[0].codePointAt(0) ?? Number.NaN);
                    b = b.substring(k[0].length), k = l.exec(b);
                }
                if (i = Bv(this.faker, g, f, p), h) {
                    let x = -1;
                    for(let C = 48; C <= 57; C++){
                        if (x = v.indexOf(C), x > -1) {
                            v.splice(x, 1);
                            continue;
                        }
                        v.push(C);
                    }
                    for(let C = 65; C <= 90; C++){
                        if (x = v.indexOf(C), x > -1) {
                            v.splice(x, 1);
                            continue;
                        }
                        v.push(C);
                    }
                    for(let C = 97; C <= 122; C++){
                        if (x = v.indexOf(C), x > -1) {
                            v.splice(x, 1);
                            continue;
                        }
                        v.push(C);
                    }
                }
                let S = this.multiple(()=>String.fromCodePoint(this.arrayElement(v)), {
                    count: i
                }).join("");
                e = e.slice(0, s.index) + S + e.slice(s.index + s[0].length), s = u.exec(e);
            }
            let c = /(.)\{(\d+),(\d+)\}/;
            for(s = c.exec(e); s != null;){
                if (r = Number.parseInt(s[2]), n = Number.parseInt(s[3]), r > n) throw new He("Numbers out of order in {} quantifier.");
                i = this.faker.number.int({
                    min: r,
                    max: n
                }), e = e.slice(0, s.index) + s[1].repeat(i) + e.slice(s.index + s[0].length), s = c.exec(e);
            }
            let d = /(.)\{(\d+)\}/;
            for(s = d.exec(e); s != null;)i = Number.parseInt(s[2]), e = e.slice(0, s.index) + s[1].repeat(i) + e.slice(s.index + s[0].length), s = d.exec(e);
            return e;
        }
        shuffle(e, a = {}) {
            let { inplace: r = !1 } = a;
            r || (e = [
                ...e
            ]);
            for(let n = e.length - 1; n > 0; --n){
                let i = this.faker.number.int(n);
                [e[n], e[i]] = [
                    e[i],
                    e[n]
                ];
            }
            return e;
        }
        uniqueArray(e, a) {
            if (Array.isArray(e)) {
                let n = [
                    ...new Set(e)
                ];
                return this.shuffle(n).splice(0, a);
            }
            let r = new Set;
            try {
                if (typeof e == "function") {
                    let n = 1e3 * a, i = 0;
                    for(; r.size < a && i < n;)r.add(e()), i++;
                }
            } catch  {}
            return [
                ...r
            ];
        }
        mustache(e, a) {
            if (e == null) return "";
            for(let r in a){
                let n = new RegExp(`{{${r}}}`, "g"), i = a[r];
                typeof i == "string" && (i = i.replaceAll("$", "$$$$")), e = e.replace(n, i);
            }
            return e;
        }
        maybe(e, a = {}) {
            if (this.faker.datatype.boolean(a)) return e();
        }
        objectKey(e) {
            let a = Object.keys(e);
            return this.arrayElement(a);
        }
        objectValue(e) {
            let a = this.faker.helpers.objectKey(e);
            return e[a];
        }
        objectEntry(e) {
            let a = this.faker.helpers.objectKey(e);
            return [
                a,
                e[a]
            ];
        }
        arrayElement(e) {
            if (e.length === 0) throw new He("Cannot get value from empty dataset.");
            let a = e.length > 1 ? this.faker.number.int({
                max: e.length - 1
            }) : 0;
            return e[a];
        }
        weightedArrayElement(e) {
            if (e.length === 0) throw new He("weightedArrayElement expects an array with at least one element");
            if (!e.every((i)=>i.weight > 0)) throw new He("weightedArrayElement expects an array of { weight, value } objects where weight is a positive number");
            let a = e.reduce((i, { weight: o })=>i + o, 0), r = this.faker.number.float({
                min: 0,
                max: a
            }), n = 0;
            for (let { weight: i, value: o } of e)if (n += i, r < n) return o;
            return e.at(-1).value;
        }
        arrayElements(e, a) {
            if (e.length === 0) return [];
            let r = this.rangeToNumber(a ?? {
                min: 1,
                max: e.length
            });
            if (r >= e.length) return this.shuffle(e);
            if (r <= 0) return [];
            let n = [
                ...e
            ], i = e.length, o = i - r, s, l;
            for(; i-- > o;)l = this.faker.number.int(i), s = n[l], n[l] = n[i], n[i] = s;
            return n.slice(o);
        }
        enumValue(e) {
            let a = Object.keys(e).filter((n)=>Number.isNaN(Number(n))), r = this.arrayElement(a);
            return e[r];
        }
        rangeToNumber(e) {
            return typeof e == "number" ? e : this.faker.number.int(e);
        }
        multiple(e, a = {}) {
            let r = this.rangeToNumber(a.count ?? 3);
            return r <= 0 ? [] : Array.from({
                length: r
            }, e);
        }
    }, X_ = class extends bF {
        constructor(e){
            super(e), this.faker = e;
        }
        fake(e) {
            e = typeof e == "string" ? e : this.arrayElement(e);
            let a = e.search(/{{[a-z]/), r = e.indexOf("}}", a);
            if (a === -1 || r === -1) return e;
            let n = e.substring(a + 2, r + 2).replace("}}", "").replace("{{", ""), i = W_(n, this.faker), o = String(i), s = e.substring(0, a) + o + e.substring(r + 2);
            return this.fake(s);
        }
    }, J_ = class extends Ri {
        int(e = {}) {
            typeof e == "number" && (e = {
                max: e
            });
            let { min: a = 0, max: r = Number.MAX_SAFE_INTEGER, multipleOf: n = 1 } = e;
            if (!Number.isInteger(n)) throw new He("multipleOf should be an integer.");
            if (n <= 0) throw new He("multipleOf should be greater than 0.");
            let i = Math.ceil(a / n), o = Math.floor(r / n);
            if (i === o) return i * n;
            if (o < i) throw r >= a ? new He(`No suitable integer value between ${a} and ${r} found.`) : new He(`Max ${r} should be greater than min ${a}.`);
            let s = this.faker._randomizer.next(), l = o - i + 1;
            return Math.floor(s * l + i) * n;
        }
        float(e = {}) {
            typeof e == "number" && (e = {
                max: e
            });
            let { min: a = 0, max: r = 1, fractionDigits: n, multipleOf: i, multipleOf: o = n == null ? void 0 : 10 ** -n } = e;
            if (r < a) throw new He(`Max ${r} should be greater than min ${a}.`);
            if (n != null) {
                if (i != null) throw new He("multipleOf and fractionDigits cannot be set at the same time.");
                if (!Number.isInteger(n)) throw new He("fractionDigits should be an integer.");
                if (n < 0) throw new He("fractionDigits should be greater than or equal to 0.");
            }
            if (o != null) {
                if (o <= 0) throw new He("multipleOf should be greater than 0.");
                let s = Math.log10(o), l = o < 1 && Number.isInteger(s) ? 10 ** -s : 1 / o;
                return this.int({
                    min: a * l,
                    max: r * l
                }) / l;
            }
            return this.faker._randomizer.next() * (r - a) + a;
        }
        binary(e = {}) {
            typeof e == "number" && (e = {
                max: e
            });
            let { min: a = 0, max: r = 1 } = e;
            return this.int({
                max: r,
                min: a
            }).toString(2);
        }
        octal(e = {}) {
            typeof e == "number" && (e = {
                max: e
            });
            let { min: a = 0, max: r = 7 } = e;
            return this.int({
                max: r,
                min: a
            }).toString(8);
        }
        hex(e = {}) {
            typeof e == "number" && (e = {
                max: e
            });
            let { min: a = 0, max: r = 15 } = e;
            return this.int({
                max: r,
                min: a
            }).toString(16);
        }
        bigInt(e = {}) {
            (typeof e == "bigint" || typeof e == "number" || typeof e == "string" || typeof e == "boolean") && (e = {
                max: e
            });
            let a = BigInt(e.min ?? 0), r = BigInt(e.max ?? a + BigInt(999999999999999)), n = BigInt(e.multipleOf ?? 1);
            if (r < a) throw new He(`Max ${r} should be larger than min ${a}.`);
            if (n <= BigInt(0)) throw new He("multipleOf should be greater than 0.");
            let i = a / n + (a % n > 0n ? 1n : 0n), o = r / n - (r % n < 0n ? 1n : 0n);
            if (i === o) return i * n;
            if (o < i) throw new He(`No suitable bigint value between ${a} and ${r} found.`);
            let s = o - i + 1n, l = BigInt(this.faker.string.numeric({
                length: s.toString(10).length,
                allowLeadingZeros: !0
            })) % s;
            return (i + l) * n;
        }
        romanNumeral(e = {}) {
            typeof e == "number" && (e = {
                max: e
            });
            let { min: a = 1, max: r = 3999 } = e;
            if (a < 1) throw new He(`Min value ${a} should be 1 or greater.`);
            if (r > 3999) throw new He(`Max value ${r} should be 3999 or less.`);
            let n = this.int({
                min: a,
                max: r
            }), i = [
                [
                    "M",
                    1e3
                ],
                [
                    "CM",
                    900
                ],
                [
                    "D",
                    500
                ],
                [
                    "CD",
                    400
                ],
                [
                    "C",
                    100
                ],
                [
                    "XC",
                    90
                ],
                [
                    "L",
                    50
                ],
                [
                    "XL",
                    40
                ],
                [
                    "X",
                    10
                ],
                [
                    "IX",
                    9
                ],
                [
                    "V",
                    5
                ],
                [
                    "IV",
                    4
                ],
                [
                    "I",
                    1
                ]
            ], o = "";
            for (let [s, l] of i)o += s.repeat(Math.floor(n / l)), n %= l;
            return o;
        }
    }, FF = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
    function Z_(t) {
        let e = t.valueOf(), a = "";
        for(let r = 10; r > 0; r--){
            let n = e % 32;
            a = FF[n] + a, e = (e - n) / 32;
        }
        return a;
    }
    var fs = [
        ..."ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    ], ps = [
        ..."abcdefghijklmnopqrstuvwxyz"
    ], Mv = [
        ..."0123456789"
    ], Q_ = class extends Ri {
        fromCharacters(e, a = 1) {
            if (a = this.faker.helpers.rangeToNumber(a), a <= 0) return "";
            if (typeof e == "string" && (e = [
                ...e
            ]), e.length === 0) throw new He("Unable to generate string: No characters to select from.");
            return this.faker.helpers.multiple(()=>this.faker.helpers.arrayElement(e), {
                count: a
            }).join("");
        }
        alpha(e = {}) {
            typeof e == "number" && (e = {
                length: e
            });
            let a = this.faker.helpers.rangeToNumber(e.length ?? 1);
            if (a <= 0) return "";
            let { casing: r = "mixed" } = e, { exclude: n = [] } = e;
            typeof n == "string" && (n = [
                ...n
            ]);
            let i;
            switch(r){
                case "upper":
                    {
                        i = [
                            ...fs
                        ];
                        break;
                    }
                case "lower":
                    {
                        i = [
                            ...ps
                        ];
                        break;
                    }
                case "mixed":
                    {
                        i = [
                            ...ps,
                            ...fs
                        ];
                        break;
                    }
            }
            return i = i.filter((o)=>!n.includes(o)), this.fromCharacters(i, a);
        }
        alphanumeric(e = {}) {
            typeof e == "number" && (e = {
                length: e
            });
            let a = this.faker.helpers.rangeToNumber(e.length ?? 1);
            if (a <= 0) return "";
            let { casing: r = "mixed" } = e, { exclude: n = [] } = e;
            typeof n == "string" && (n = [
                ...n
            ]);
            let i = [
                ...Mv
            ];
            switch(r){
                case "upper":
                    {
                        i.push(...fs);
                        break;
                    }
                case "lower":
                    {
                        i.push(...ps);
                        break;
                    }
                case "mixed":
                    {
                        i.push(...ps, ...fs);
                        break;
                    }
            }
            return i = i.filter((o)=>!n.includes(o)), this.fromCharacters(i, a);
        }
        binary(e = {}) {
            let { prefix: a = "0b" } = e, r = a;
            return r += this.fromCharacters([
                "0",
                "1"
            ], e.length ?? 1), r;
        }
        octal(e = {}) {
            let { prefix: a = "0o" } = e, r = a;
            return r += this.fromCharacters([
                "0",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7"
            ], e.length ?? 1), r;
        }
        hexadecimal(e = {}) {
            let { casing: a = "mixed", prefix: r = "0x" } = e, n = this.faker.helpers.rangeToNumber(e.length ?? 1);
            if (n <= 0) return r;
            let i = this.fromCharacters([
                "0",
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "a",
                "b",
                "c",
                "d",
                "e",
                "f",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F"
            ], n);
            return a === "upper" ? i = i.toUpperCase() : a === "lower" && (i = i.toLowerCase()), `${r}${i}`;
        }
        numeric(e = {}) {
            typeof e == "number" && (e = {
                length: e
            });
            let a = this.faker.helpers.rangeToNumber(e.length ?? 1);
            if (a <= 0) return "";
            let { allowLeadingZeros: r = !0 } = e, { exclude: n = [] } = e;
            typeof n == "string" && (n = [
                ...n
            ]);
            let i = Mv.filter((s)=>!n.includes(s));
            if (i.length === 0 || i.length === 1 && !r && i[0] === "0") throw new He("Unable to generate numeric string, because all possible digits are excluded.");
            let o = "";
            return !r && !n.includes("0") && (o += this.faker.helpers.arrayElement(i.filter((s)=>s !== "0"))), o += this.fromCharacters(i, a - o.length), o;
        }
        sample(e = 10) {
            e = this.faker.helpers.rangeToNumber(e);
            let a = {
                min: 33,
                max: 125
            }, r = "";
            for(; r.length < e;)r += String.fromCodePoint(this.faker.number.int(a));
            return r;
        }
        uuid() {
            return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replaceAll("x", ()=>this.faker.number.hex({
                    min: 0,
                    max: 15
                })).replaceAll("y", ()=>this.faker.number.hex({
                    min: 8,
                    max: 11
                }));
        }
        ulid(e = {}) {
            let { refDate: a = this.faker.defaultRefDate() } = e, r = Ar(a);
            return Z_(r) + this.fromCharacters(FF, 16);
        }
        nanoid(e = 21) {
            if (e = this.faker.helpers.rangeToNumber(e), e <= 0) return "";
            let a = [
                {
                    value: ()=>this.alphanumeric(1),
                    weight: 62
                },
                {
                    value: ()=>this.faker.helpers.arrayElement([
                            "_",
                            "-"
                        ]),
                    weight: 2
                }
            ], r = "";
            for(; r.length < e;){
                let n = this.faker.helpers.weightedArrayElement(a);
                r += n();
            }
            return r;
        }
        symbol(e = 1) {
            return this.fromCharacters([
                "!",
                '"',
                "#",
                "$",
                "%",
                "&",
                "'",
                "(",
                ")",
                "*",
                "+",
                ",",
                "-",
                ".",
                "/",
                ":",
                ";",
                "<",
                "=",
                ">",
                "?",
                "@",
                "[",
                "\\",
                "]",
                "^",
                "_",
                "`",
                "{",
                "|",
                "}",
                "~"
            ], e);
        }
    }, kF = class {
        _defaultRefDate = ()=>new Date;
        get defaultRefDate() {
            return this._defaultRefDate;
        }
        setDefaultRefDate(e = ()=>new Date) {
            typeof e == "function" ? this._defaultRefDate = e : this._defaultRefDate = ()=>new Date(e);
        }
        _randomizer;
        datatype = new z_(this);
        date = new vF(this);
        helpers = new bF(this);
        number = new J_(this);
        string = new Q_(this);
        constructor(e = {}){
            let { randomizer: a, seed: r } = e;
            a != null && r != null && a.seed(r), this._randomizer = a ?? I_(r);
        }
        seed(e = gF()) {
            return this._randomizer.seed(e), e;
        }
    };
    new kF;
    function eP(t) {
        let e = {};
        for (let a of t)for(let r in a){
            let n = a[r];
            e[r] === void 0 ? e[r] = {
                ...n
            } : e[r] = {
                ...n,
                ...e[r]
            };
        }
        return e;
    }
    var tP = class extends Wt {
        dog() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.dog);
        }
        cat() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.cat);
        }
        snake() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.snake);
        }
        bear() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.bear);
        }
        lion() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.lion);
        }
        cetacean() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.cetacean);
        }
        horse() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.horse);
        }
        bird() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.bird);
        }
        cow() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.cow);
        }
        fish() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.fish);
        }
        crocodilia() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.crocodilia);
        }
        insect() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.insect);
        }
        rabbit() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.rabbit);
        }
        rodent() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.rodent);
        }
        type() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.type);
        }
        petName() {
            return this.faker.helpers.arrayElement(this.faker.definitions.animal.pet_name);
        }
    }, aP = class extends Wt {
        author() {
            return this.faker.helpers.arrayElement(this.faker.definitions.book.author);
        }
        format() {
            return this.faker.helpers.arrayElement(this.faker.definitions.book.format);
        }
        genre() {
            return this.faker.helpers.arrayElement(this.faker.definitions.book.genre);
        }
        publisher() {
            return this.faker.helpers.arrayElement(this.faker.definitions.book.publisher);
        }
        series() {
            return this.faker.helpers.arrayElement(this.faker.definitions.book.series);
        }
        title() {
            return this.faker.helpers.arrayElement(this.faker.definitions.book.title);
        }
    }, rP = {
        0: [
            [
                1999999,
                2
            ],
            [
                2279999,
                3
            ],
            [
                2289999,
                4
            ],
            [
                3689999,
                3
            ],
            [
                3699999,
                4
            ],
            [
                6389999,
                3
            ],
            [
                6397999,
                4
            ],
            [
                6399999,
                7
            ],
            [
                6449999,
                3
            ],
            [
                6459999,
                7
            ],
            [
                6479999,
                3
            ],
            [
                6489999,
                7
            ],
            [
                6549999,
                3
            ],
            [
                6559999,
                4
            ],
            [
                6999999,
                3
            ],
            [
                8499999,
                4
            ],
            [
                8999999,
                5
            ],
            [
                9499999,
                6
            ],
            [
                9999999,
                7
            ]
        ],
        1: [
            [
                99999,
                3
            ],
            [
                299999,
                2
            ],
            [
                349999,
                3
            ],
            [
                399999,
                4
            ],
            [
                499999,
                3
            ],
            [
                699999,
                2
            ],
            [
                999999,
                4
            ],
            [
                3979999,
                3
            ],
            [
                5499999,
                4
            ],
            [
                6499999,
                5
            ],
            [
                6799999,
                4
            ],
            [
                6859999,
                5
            ],
            [
                7139999,
                4
            ],
            [
                7169999,
                3
            ],
            [
                7319999,
                4
            ],
            [
                7399999,
                7
            ],
            [
                7749999,
                5
            ],
            [
                7753999,
                7
            ],
            [
                7763999,
                5
            ],
            [
                7764999,
                7
            ],
            [
                7769999,
                5
            ],
            [
                7782999,
                7
            ],
            [
                7899999,
                5
            ],
            [
                7999999,
                4
            ],
            [
                8004999,
                5
            ],
            [
                8049999,
                5
            ],
            [
                8379999,
                5
            ],
            [
                8384999,
                7
            ],
            [
                8671999,
                5
            ],
            [
                8675999,
                4
            ],
            [
                8697999,
                5
            ],
            [
                9159999,
                6
            ],
            [
                9165059,
                7
            ],
            [
                9168699,
                6
            ],
            [
                9169079,
                7
            ],
            [
                9195999,
                6
            ],
            [
                9196549,
                7
            ],
            [
                9729999,
                6
            ],
            [
                9877999,
                4
            ],
            [
                9911499,
                6
            ],
            [
                9911999,
                7
            ],
            [
                9989899,
                6
            ],
            [
                9999999,
                7
            ]
        ]
    }, nP = class extends Wt {
        department() {
            return this.faker.helpers.arrayElement(this.faker.definitions.commerce.department);
        }
        productName() {
            return `${this.productAdjective()} ${this.productMaterial()} ${this.product()}`;
        }
        price(e = {}) {
            let { dec: a = 2, max: r = 1e3, min: n = 1, symbol: i = "" } = e;
            if (n < 0 || r < 0) return `${i}0`;
            if (n === r) return `${i}${n.toFixed(a)}`;
            let o = this.faker.number.float({
                min: n,
                max: r,
                fractionDigits: a
            });
            if (a === 0) return `${i}${o.toFixed(a)}`;
            let s = o * 10 ** a % 10, l = this.faker.helpers.weightedArrayElement([
                {
                    weight: 5,
                    value: 9
                },
                {
                    weight: 3,
                    value: 5
                },
                {
                    weight: 1,
                    value: 0
                },
                {
                    weight: 1,
                    value: this.faker.number.int({
                        min: 0,
                        max: 9
                    })
                }
            ]), u = (1 / 10) ** a, c = s * u, d = l * u, h = o - c + d;
            return n <= h && h <= r ? `${i}${h.toFixed(a)}` : `${i}${o.toFixed(a)}`;
        }
        productAdjective() {
            return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.adjective);
        }
        productMaterial() {
            return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.material);
        }
        product() {
            return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.product);
        }
        productDescription() {
            return this.faker.helpers.fake(this.faker.definitions.commerce.product_description);
        }
        isbn(e = {}) {
            typeof e == "number" && (e = {
                variant: e
            });
            let { variant: a = 13, separator: r = "-" } = e, n = "978", [i, o] = this.faker.helpers.objectEntry(rP), s = this.faker.string.numeric(8), l = Number.parseInt(s.slice(0, -1)), u = o.find(([p])=>l <= p)?.[1];
            if (!u) throw new He(`Unable to find a registrant length for the group ${i}`);
            let c = s.slice(0, u), d = s.slice(u), h = [
                n,
                i,
                c,
                d
            ];
            a === 10 && h.shift();
            let m = h.join(""), f = 0;
            for(let p = 0; p < a - 1; p++){
                let g = a === 10 ? p + 1 : p % 2 ? 3 : 1;
                f += g * Number.parseInt(m[p]);
            }
            return f = a === 10 ? f % 11 : (10 - f % 10) % 10, h.push(f === 10 ? "X" : f.toString()), h.join(r);
        }
    }, iP = class extends Wt {
        name() {
            return this.faker.helpers.fake(this.faker.definitions.company.name_pattern);
        }
        catchPhrase() {
            return [
                this.catchPhraseAdjective(),
                this.catchPhraseDescriptor(),
                this.catchPhraseNoun()
            ].join(" ");
        }
        buzzPhrase() {
            return [
                this.buzzVerb(),
                this.buzzAdjective(),
                this.buzzNoun()
            ].join(" ");
        }
        catchPhraseAdjective() {
            return this.faker.helpers.arrayElement(this.faker.definitions.company.adjective);
        }
        catchPhraseDescriptor() {
            return this.faker.helpers.arrayElement(this.faker.definitions.company.descriptor);
        }
        catchPhraseNoun() {
            return this.faker.helpers.arrayElement(this.faker.definitions.company.noun);
        }
        buzzAdjective() {
            return this.faker.helpers.arrayElement(this.faker.definitions.company.buzz_adjective);
        }
        buzzVerb() {
            return this.faker.helpers.arrayElement(this.faker.definitions.company.buzz_verb);
        }
        buzzNoun() {
            return this.faker.helpers.arrayElement(this.faker.definitions.company.buzz_noun);
        }
    }, oP = class extends Wt {
        column() {
            return this.faker.helpers.arrayElement(this.faker.definitions.database.column);
        }
        type() {
            return this.faker.helpers.arrayElement(this.faker.definitions.database.type);
        }
        collation() {
            return this.faker.helpers.arrayElement(this.faker.definitions.database.collation);
        }
        engine() {
            return this.faker.helpers.arrayElement(this.faker.definitions.database.engine);
        }
        mongodbObjectId() {
            return this.faker.string.hexadecimal({
                length: 24,
                casing: "lower",
                prefix: ""
            });
        }
    }, sP = {
        alpha: [
            "A",
            "B",
            "C",
            "D",
            "E",
            "F",
            "G",
            "H",
            "I",
            "J",
            "K",
            "L",
            "M",
            "N",
            "O",
            "P",
            "Q",
            "R",
            "S",
            "T",
            "U",
            "V",
            "W",
            "X",
            "Y",
            "Z"
        ],
        formats: [
            {
                country: "AL",
                total: 28,
                bban: [
                    {
                        type: "n",
                        count: 8
                    },
                    {
                        type: "c",
                        count: 16
                    }
                ],
                format: "ALkk bbbs sssx cccc cccc cccc cccc"
            },
            {
                country: "AD",
                total: 24,
                bban: [
                    {
                        type: "n",
                        count: 8
                    },
                    {
                        type: "c",
                        count: 12
                    }
                ],
                format: "ADkk bbbb ssss cccc cccc cccc"
            },
            {
                country: "AT",
                total: 20,
                bban: [
                    {
                        type: "n",
                        count: 5
                    },
                    {
                        type: "n",
                        count: 11
                    }
                ],
                format: "ATkk bbbb bccc cccc cccc"
            },
            {
                country: "AZ",
                total: 28,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 20
                    }
                ],
                format: "AZkk bbbb cccc cccc cccc cccc cccc"
            },
            {
                country: "BH",
                total: 22,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 14
                    }
                ],
                format: "BHkk bbbb cccc cccc cccc cc"
            },
            {
                country: "BE",
                total: 16,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "n",
                        count: 9
                    }
                ],
                format: "BEkk bbbc cccc ccxx"
            },
            {
                country: "BA",
                total: 20,
                bban: [
                    {
                        type: "n",
                        count: 6
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "BAkk bbbs sscc cccc ccxx"
            },
            {
                country: "BR",
                total: 29,
                bban: [
                    {
                        type: "n",
                        count: 13
                    },
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "a",
                        count: 1
                    },
                    {
                        type: "c",
                        count: 1
                    }
                ],
                format: "BRkk bbbb bbbb ssss sccc cccc ccct n"
            },
            {
                country: "BG",
                total: 22,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 6
                    },
                    {
                        type: "c",
                        count: 8
                    }
                ],
                format: "BGkk bbbb ssss ddcc cccc cc"
            },
            {
                country: "CR",
                total: 22,
                bban: [
                    {
                        type: "n",
                        count: 1
                    },
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "n",
                        count: 14
                    }
                ],
                format: "CRkk xbbb cccc cccc cccc cc"
            },
            {
                country: "HR",
                total: 21,
                bban: [
                    {
                        type: "n",
                        count: 7
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "HRkk bbbb bbbc cccc cccc c"
            },
            {
                country: "CY",
                total: 28,
                bban: [
                    {
                        type: "n",
                        count: 8
                    },
                    {
                        type: "c",
                        count: 16
                    }
                ],
                format: "CYkk bbbs ssss cccc cccc cccc cccc"
            },
            {
                country: "CZ",
                total: 24,
                bban: [
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "CZkk bbbb ssss sscc cccc cccc"
            },
            {
                country: "DK",
                total: 18,
                bban: [
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "DKkk bbbb cccc cccc cc"
            },
            {
                country: "DO",
                total: 28,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 20
                    }
                ],
                format: "DOkk bbbb cccc cccc cccc cccc cccc"
            },
            {
                country: "TL",
                total: 23,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "TLkk bbbc cccc cccc cccc cxx"
            },
            {
                country: "EE",
                total: 20,
                bban: [
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 12
                    }
                ],
                format: "EEkk bbss cccc cccc cccx"
            },
            {
                country: "FO",
                total: 18,
                bban: [
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "FOkk bbbb cccc cccc cx"
            },
            {
                country: "FI",
                total: 18,
                bban: [
                    {
                        type: "n",
                        count: 6
                    },
                    {
                        type: "n",
                        count: 8
                    }
                ],
                format: "FIkk bbbb bbcc cccc cx"
            },
            {
                country: "FR",
                total: 27,
                bban: [
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "c",
                        count: 11
                    },
                    {
                        type: "n",
                        count: 2
                    }
                ],
                format: "FRkk bbbb bggg ggcc cccc cccc cxx"
            },
            {
                country: "GE",
                total: 22,
                bban: [
                    {
                        type: "a",
                        count: 2
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "GEkk bbcc cccc cccc cccc cc"
            },
            {
                country: "DE",
                total: 22,
                bban: [
                    {
                        type: "n",
                        count: 8
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "DEkk bbbb bbbb cccc cccc cc"
            },
            {
                country: "GI",
                total: 23,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 15
                    }
                ],
                format: "GIkk bbbb cccc cccc cccc ccc"
            },
            {
                country: "GR",
                total: 27,
                bban: [
                    {
                        type: "n",
                        count: 7
                    },
                    {
                        type: "c",
                        count: 16
                    }
                ],
                format: "GRkk bbbs sssc cccc cccc cccc ccc"
            },
            {
                country: "GL",
                total: 18,
                bban: [
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "GLkk bbbb cccc cccc cc"
            },
            {
                country: "GT",
                total: 28,
                bban: [
                    {
                        type: "c",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 16
                    }
                ],
                format: "GTkk bbbb mmtt cccc cccc cccc cccc"
            },
            {
                country: "HU",
                total: 28,
                bban: [
                    {
                        type: "n",
                        count: 8
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "HUkk bbbs sssk cccc cccc cccc cccx"
            },
            {
                country: "IS",
                total: 26,
                bban: [
                    {
                        type: "n",
                        count: 6
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "ISkk bbbb sscc cccc iiii iiii ii"
            },
            {
                country: "IE",
                total: 22,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 6
                    },
                    {
                        type: "n",
                        count: 8
                    }
                ],
                format: "IEkk aaaa bbbb bbcc cccc cc"
            },
            {
                country: "IL",
                total: 23,
                bban: [
                    {
                        type: "n",
                        count: 6
                    },
                    {
                        type: "n",
                        count: 13
                    }
                ],
                format: "ILkk bbbn nncc cccc cccc ccc"
            },
            {
                country: "IT",
                total: 27,
                bban: [
                    {
                        type: "a",
                        count: 1
                    },
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "c",
                        count: 12
                    }
                ],
                format: "ITkk xaaa aabb bbbc cccc cccc ccc"
            },
            {
                country: "JO",
                total: 30,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 18
                    }
                ],
                format: "JOkk bbbb nnnn cccc cccc cccc cccc cc"
            },
            {
                country: "KZ",
                total: 20,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "c",
                        count: 13
                    }
                ],
                format: "KZkk bbbc cccc cccc cccc"
            },
            {
                country: "XK",
                total: 20,
                bban: [
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 12
                    }
                ],
                format: "XKkk bbbb cccc cccc cccc"
            },
            {
                country: "KW",
                total: 30,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 22
                    }
                ],
                format: "KWkk bbbb cccc cccc cccc cccc cccc cc"
            },
            {
                country: "LV",
                total: 21,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 13
                    }
                ],
                format: "LVkk bbbb cccc cccc cccc c"
            },
            {
                country: "LB",
                total: 28,
                bban: [
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 20
                    }
                ],
                format: "LBkk bbbb cccc cccc cccc cccc cccc"
            },
            {
                country: "LI",
                total: 21,
                bban: [
                    {
                        type: "n",
                        count: 5
                    },
                    {
                        type: "c",
                        count: 12
                    }
                ],
                format: "LIkk bbbb bccc cccc cccc c"
            },
            {
                country: "LT",
                total: 20,
                bban: [
                    {
                        type: "n",
                        count: 5
                    },
                    {
                        type: "n",
                        count: 11
                    }
                ],
                format: "LTkk bbbb bccc cccc cccc"
            },
            {
                country: "LU",
                total: 20,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "c",
                        count: 13
                    }
                ],
                format: "LUkk bbbc cccc cccc cccc"
            },
            {
                country: "MK",
                total: 19,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "c",
                        count: 10
                    },
                    {
                        type: "n",
                        count: 2
                    }
                ],
                format: "MKkk bbbc cccc cccc cxx"
            },
            {
                country: "MT",
                total: 31,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 5
                    },
                    {
                        type: "c",
                        count: 18
                    }
                ],
                format: "MTkk bbbb ssss sccc cccc cccc cccc ccc"
            },
            {
                country: "MR",
                total: 27,
                bban: [
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "n",
                        count: 13
                    }
                ],
                format: "MRkk bbbb bsss sscc cccc cccc cxx"
            },
            {
                country: "MU",
                total: 30,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 15
                    },
                    {
                        type: "a",
                        count: 3
                    }
                ],
                format: "MUkk bbbb bbss cccc cccc cccc 000d dd"
            },
            {
                country: "MC",
                total: 27,
                bban: [
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "c",
                        count: 11
                    },
                    {
                        type: "n",
                        count: 2
                    }
                ],
                format: "MCkk bbbb bsss sscc cccc cccc cxx"
            },
            {
                country: "MD",
                total: 24,
                bban: [
                    {
                        type: "c",
                        count: 2
                    },
                    {
                        type: "c",
                        count: 18
                    }
                ],
                format: "MDkk bbcc cccc cccc cccc cccc"
            },
            {
                country: "ME",
                total: 22,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "n",
                        count: 15
                    }
                ],
                format: "MEkk bbbc cccc cccc cccc xx"
            },
            {
                country: "NL",
                total: 18,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "NLkk bbbb cccc cccc cc"
            },
            {
                country: "NO",
                total: 15,
                bban: [
                    {
                        type: "n",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 7
                    }
                ],
                format: "NOkk bbbb cccc ccx"
            },
            {
                country: "PK",
                total: 24,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "PKkk bbbb cccc cccc cccc cccc"
            },
            {
                country: "PS",
                total: 29,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 9
                    },
                    {
                        type: "n",
                        count: 12
                    }
                ],
                format: "PSkk bbbb xxxx xxxx xccc cccc cccc c"
            },
            {
                country: "PL",
                total: 28,
                bban: [
                    {
                        type: "n",
                        count: 8
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "PLkk bbbs sssx cccc cccc cccc cccc"
            },
            {
                country: "PT",
                total: 25,
                bban: [
                    {
                        type: "n",
                        count: 8
                    },
                    {
                        type: "n",
                        count: 13
                    }
                ],
                format: "PTkk bbbb ssss cccc cccc cccx x"
            },
            {
                country: "QA",
                total: 29,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 21
                    }
                ],
                format: "QAkk bbbb cccc cccc cccc cccc cccc c"
            },
            {
                country: "RO",
                total: 24,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "c",
                        count: 16
                    }
                ],
                format: "ROkk bbbb cccc cccc cccc cccc"
            },
            {
                country: "SM",
                total: 27,
                bban: [
                    {
                        type: "a",
                        count: 1
                    },
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "c",
                        count: 12
                    }
                ],
                format: "SMkk xaaa aabb bbbc cccc cccc ccc"
            },
            {
                country: "SA",
                total: 24,
                bban: [
                    {
                        type: "n",
                        count: 2
                    },
                    {
                        type: "c",
                        count: 18
                    }
                ],
                format: "SAkk bbcc cccc cccc cccc cccc"
            },
            {
                country: "RS",
                total: 22,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "n",
                        count: 15
                    }
                ],
                format: "RSkk bbbc cccc cccc cccc xx"
            },
            {
                country: "SK",
                total: 24,
                bban: [
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "SKkk bbbb ssss sscc cccc cccc"
            },
            {
                country: "SI",
                total: 19,
                bban: [
                    {
                        type: "n",
                        count: 5
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "SIkk bbss sccc cccc cxx"
            },
            {
                country: "ES",
                total: 24,
                bban: [
                    {
                        type: "n",
                        count: 10
                    },
                    {
                        type: "n",
                        count: 10
                    }
                ],
                format: "ESkk bbbb gggg xxcc cccc cccc"
            },
            {
                country: "SE",
                total: 24,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "n",
                        count: 17
                    }
                ],
                format: "SEkk bbbc cccc cccc cccc cccc"
            },
            {
                country: "CH",
                total: 21,
                bban: [
                    {
                        type: "n",
                        count: 5
                    },
                    {
                        type: "c",
                        count: 12
                    }
                ],
                format: "CHkk bbbb bccc cccc cccc c"
            },
            {
                country: "TN",
                total: 24,
                bban: [
                    {
                        type: "n",
                        count: 5
                    },
                    {
                        type: "n",
                        count: 15
                    }
                ],
                format: "TNkk bbss sccc cccc cccc cccc"
            },
            {
                country: "TR",
                total: 26,
                bban: [
                    {
                        type: "n",
                        count: 5
                    },
                    {
                        type: "n",
                        count: 1
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "TRkk bbbb bxcc cccc cccc cccc cc"
            },
            {
                country: "AE",
                total: 23,
                bban: [
                    {
                        type: "n",
                        count: 3
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "AEkk bbbc cccc cccc cccc ccc"
            },
            {
                country: "GB",
                total: 22,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 6
                    },
                    {
                        type: "n",
                        count: 8
                    }
                ],
                format: "GBkk bbbb ssss sscc cccc cc"
            },
            {
                country: "VG",
                total: 24,
                bban: [
                    {
                        type: "a",
                        count: 4
                    },
                    {
                        type: "n",
                        count: 16
                    }
                ],
                format: "VGkk bbbb cccc cccc cccc cccc"
            }
        ],
        iso3166: [
            "AD",
            "AE",
            "AF",
            "AG",
            "AI",
            "AL",
            "AM",
            "AO",
            "AQ",
            "AR",
            "AS",
            "AT",
            "AU",
            "AW",
            "AX",
            "AZ",
            "BA",
            "BB",
            "BD",
            "BE",
            "BF",
            "BG",
            "BH",
            "BI",
            "BJ",
            "BL",
            "BM",
            "BN",
            "BO",
            "BQ",
            "BR",
            "BS",
            "BT",
            "BV",
            "BW",
            "BY",
            "BZ",
            "CA",
            "CC",
            "CD",
            "CF",
            "CG",
            "CH",
            "CI",
            "CK",
            "CL",
            "CM",
            "CN",
            "CO",
            "CR",
            "CU",
            "CV",
            "CW",
            "CX",
            "CY",
            "CZ",
            "DE",
            "DJ",
            "DK",
            "DM",
            "DO",
            "DZ",
            "EC",
            "EE",
            "EG",
            "EH",
            "ER",
            "ES",
            "ET",
            "FI",
            "FJ",
            "FK",
            "FM",
            "FO",
            "FR",
            "GA",
            "GB",
            "GD",
            "GE",
            "GF",
            "GG",
            "GH",
            "GI",
            "GL",
            "GM",
            "GN",
            "GP",
            "GQ",
            "GR",
            "GS",
            "GT",
            "GU",
            "GW",
            "GY",
            "HK",
            "HM",
            "HN",
            "HR",
            "HT",
            "HU",
            "ID",
            "IE",
            "IL",
            "IM",
            "IN",
            "IO",
            "IQ",
            "IR",
            "IS",
            "IT",
            "JE",
            "JM",
            "JO",
            "JP",
            "KE",
            "KG",
            "KH",
            "KI",
            "KM",
            "KN",
            "KP",
            "KR",
            "KW",
            "KY",
            "KZ",
            "LA",
            "LB",
            "LC",
            "LI",
            "LK",
            "LR",
            "LS",
            "LT",
            "LU",
            "LV",
            "LY",
            "MA",
            "MC",
            "MD",
            "ME",
            "MF",
            "MG",
            "MH",
            "MK",
            "ML",
            "MM",
            "MN",
            "MO",
            "MP",
            "MQ",
            "MR",
            "MS",
            "MT",
            "MU",
            "MV",
            "MW",
            "MX",
            "MY",
            "MZ",
            "NA",
            "NC",
            "NE",
            "NF",
            "NG",
            "NI",
            "NL",
            "NO",
            "NP",
            "NR",
            "NU",
            "NZ",
            "OM",
            "PA",
            "PE",
            "PF",
            "PG",
            "PH",
            "PK",
            "PL",
            "PM",
            "PN",
            "PR",
            "PS",
            "PT",
            "PW",
            "PY",
            "QA",
            "RE",
            "RO",
            "RS",
            "RU",
            "RW",
            "SA",
            "SB",
            "SC",
            "SD",
            "SE",
            "SG",
            "SH",
            "SI",
            "SJ",
            "SK",
            "SL",
            "SM",
            "SN",
            "SO",
            "SR",
            "SS",
            "ST",
            "SV",
            "SX",
            "SY",
            "SZ",
            "TC",
            "TD",
            "TF",
            "TG",
            "TH",
            "TJ",
            "TK",
            "TL",
            "TM",
            "TN",
            "TO",
            "TR",
            "TT",
            "TV",
            "TW",
            "TZ",
            "UA",
            "UG",
            "UM",
            "US",
            "UY",
            "UZ",
            "VA",
            "VC",
            "VE",
            "VG",
            "VI",
            "VN",
            "VU",
            "WF",
            "WS",
            "XK",
            "YE",
            "YT",
            "ZA",
            "ZM",
            "ZW"
        ],
        mod97: (t)=>{
            let e = 0;
            for (let a of t)e = (e * 10 + +a) % 97;
            return e;
        },
        pattern10: [
            "01",
            "02",
            "03",
            "04",
            "05",
            "06",
            "07",
            "08",
            "09"
        ],
        pattern100: [
            "001",
            "002",
            "003",
            "004",
            "005",
            "006",
            "007",
            "008",
            "009"
        ],
        toDigitString: (t)=>t.replaceAll(/[A-Z]/gi, (e)=>String((e.toUpperCase().codePointAt(0) ?? Number.NaN) - 55))
    }, Sr = sP;
    function lP(t) {
        let e = "";
        for(let a = 0; a < t.length; a += 4)e += `${t.substring(a, a + 4)} `;
        return e.trimEnd();
    }
    var uP = class extends Wt {
        accountNumber(e = {}) {
            typeof e == "number" && (e = {
                length: e
            });
            let { length: a = 8 } = e;
            return this.faker.string.numeric({
                length: a,
                allowLeadingZeros: !0
            });
        }
        accountName() {
            return [
                this.faker.helpers.arrayElement(this.faker.definitions.finance.account_type),
                "Account"
            ].join(" ");
        }
        routingNumber() {
            let e = this.faker.string.numeric({
                length: 8,
                allowLeadingZeros: !0
            }), a = 0;
            for(let r = 0; r < e.length; r += 3)a += Number(e[r]) * 3, a += Number(e[r + 1]) * 7, a += Number(e[r + 2]) || 0;
            return `${e}${Math.ceil(a / 10) * 10 - a}`;
        }
        maskedNumber(e = {}) {
            Tn({
                deprecated: "faker.finance.maskedNumber()",
                proposed: "faker.finance.iban().replace(/(?<=.{4})\\w(?=.{2})/g, '*') or a similar approach",
                since: "9.3.0",
                until: "10.0.0"
            }), typeof e == "number" && (e = {
                length: e
            });
            let { ellipsis: a = !0, length: r = 4, parens: n = !0 } = e, i = this.faker.string.numeric({
                length: r
            });
            return a && (i = `...${i}`), n && (i = `(${i})`), i;
        }
        amount(e = {}) {
            let { autoFormat: a = !1, dec: r = 2, max: n = 1e3, min: i = 0, symbol: o = "" } = e, s = this.faker.number.float({
                max: n,
                min: i,
                fractionDigits: r
            }), l = a ? s.toLocaleString(void 0, {
                minimumFractionDigits: r
            }) : s.toFixed(r);
            return o + l;
        }
        transactionType() {
            return this.faker.helpers.arrayElement(this.faker.definitions.finance.transaction_type);
        }
        currency() {
            return this.faker.helpers.arrayElement(this.faker.definitions.finance.currency);
        }
        currencyCode() {
            return this.currency().code;
        }
        currencyName() {
            return this.currency().name;
        }
        currencySymbol() {
            let e;
            do e = this.currency().symbol;
            while (e.length === 0);
            return e;
        }
        currencyNumericCode() {
            return this.currency().numericCode;
        }
        bitcoinAddress(e = {}) {
            let { type: a = this.faker.helpers.enumValue(dF), network: r = "mainnet" } = e, n = k_[a], i = n.prefix[r], o = this.faker.number.int(n.length), s = this.faker.string.alphanumeric({
                length: o - i.length,
                casing: n.casing,
                exclude: n.exclude
            });
            return i + s;
        }
        litecoinAddress() {
            let e = this.faker.number.int({
                min: 26,
                max: 33
            });
            return this.faker.string.fromCharacters("LM3") + this.faker.string.fromCharacters("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ", e - 1);
        }
        creditCardNumber(e = {}) {
            typeof e == "string" && (e = {
                issuer: e
            });
            let { issuer: a = "" } = e, r, n = this.faker.definitions.finance.credit_card, i = a.toLowerCase();
            if (i in n) r = this.faker.helpers.arrayElement(n[i]);
            else if (a.includes("#")) r = a;
            else {
                let o = this.faker.helpers.objectValue(n);
                r = this.faker.helpers.arrayElement(o);
            }
            return r = r.replaceAll("/", ""), this.faker.helpers.replaceCreditCardSymbols(r);
        }
        creditCardCVV() {
            return this.faker.string.numeric({
                length: 3,
                allowLeadingZeros: !0
            });
        }
        creditCardIssuer() {
            return this.faker.helpers.objectKey(this.faker.definitions.finance.credit_card);
        }
        pin(e = {}) {
            typeof e == "number" && (e = {
                length: e
            });
            let { length: a = 4 } = e;
            if (a < 1) throw new He("minimum length is 1");
            return this.faker.string.numeric({
                length: a,
                allowLeadingZeros: !0
            });
        }
        ethereumAddress() {
            return this.faker.string.hexadecimal({
                length: 40,
                casing: "lower"
            });
        }
        iban(e = {}) {
            let { countryCode: a, formatted: r = !1 } = e, n = a ? Sr.formats.find((u)=>u.country === a) : this.faker.helpers.arrayElement(Sr.formats);
            if (!n) throw new He(`Country code ${a} not supported.`);
            let i = "", o = 0;
            for (let u of n.bban){
                let c = u.count;
                for(o += u.count; c > 0;)u.type === "a" ? i += this.faker.helpers.arrayElement(Sr.alpha) : u.type === "c" ? this.faker.datatype.boolean(.8) ? i += this.faker.number.int(9) : i += this.faker.helpers.arrayElement(Sr.alpha) : c >= 3 && this.faker.datatype.boolean(.3) ? this.faker.datatype.boolean() ? (i += this.faker.helpers.arrayElement(Sr.pattern100), c -= 2) : (i += this.faker.helpers.arrayElement(Sr.pattern10), c--) : i += this.faker.number.int(9), c--;
                i = i.substring(0, o);
            }
            let s = 98 - Sr.mod97(Sr.toDigitString(`${i}${n.country}00`));
            s < 10 && (s = `0${s}`);
            let l = `${n.country}${s}${i}`;
            return r ? lP(l) : l;
        }
        bic(e = {}) {
            let { includeBranchCode: a = this.faker.datatype.boolean() } = e, r = this.faker.string.alpha({
                length: 4,
                casing: "upper"
            }), n = this.faker.helpers.arrayElement(Sr.iso3166), i = this.faker.string.alphanumeric({
                length: 2,
                casing: "upper"
            }), o = a ? this.faker.datatype.boolean() ? this.faker.string.alphanumeric({
                length: 3,
                casing: "upper"
            }) : "XXX" : "";
            return `${r}${n}${i}${o}`;
        }
        transactionDescription() {
            return this.faker.helpers.fake(this.faker.definitions.finance.transaction_description_pattern);
        }
    };
    function Rv(t) {
        return t.split(" ").map((e)=>e.charAt(0).toUpperCase() + e.slice(1)).join(" ");
    }
    var cP = class extends Wt {
        adjective() {
            return this.faker.helpers.arrayElement(this.faker.definitions.food.adjective);
        }
        description() {
            return this.faker.helpers.fake(this.faker.definitions.food.description_pattern);
        }
        dish() {
            return this.faker.datatype.boolean() ? Rv(this.faker.helpers.fake(this.faker.definitions.food.dish_pattern)) : Rv(this.faker.helpers.arrayElement(this.faker.definitions.food.dish));
        }
        ethnicCategory() {
            return this.faker.helpers.arrayElement(this.faker.definitions.food.ethnic_category);
        }
        fruit() {
            return this.faker.helpers.arrayElement(this.faker.definitions.food.fruit);
        }
        ingredient() {
            return this.faker.helpers.arrayElement(this.faker.definitions.food.ingredient);
        }
        meat() {
            return this.faker.helpers.arrayElement(this.faker.definitions.food.meat);
        }
        spice() {
            return this.faker.helpers.arrayElement(this.faker.definitions.food.spice);
        }
        vegetable() {
            return this.faker.helpers.arrayElement(this.faker.definitions.food.vegetable);
        }
    }, dP = " ", hP = class extends Wt {
        branch() {
            let e = this.faker.hacker.noun().replace(" ", "-"), a = this.faker.hacker.verb().replace(" ", "-");
            return `${e}-${a}`;
        }
        commitEntry(e = {}) {
            let { merge: a = this.faker.datatype.boolean({
                probability: .2
            }), eol: r = "CRLF", refDate: n } = e, i = [
                `commit ${this.faker.git.commitSha()}`
            ];
            a && i.push(`Merge: ${this.commitSha({
                length: 7
            })} ${this.commitSha({
                length: 7
            })}`);
            let o = this.faker.person.firstName(), s = this.faker.person.lastName(), l = this.faker.person.fullName({
                firstName: o,
                lastName: s
            }), u = this.faker.internet.username({
                firstName: o,
                lastName: s
            }), c = this.faker.helpers.arrayElement([
                l,
                u
            ]), d = this.faker.internet.email({
                firstName: o,
                lastName: s
            });
            c = c.replaceAll(/^[.,:;"\\']|[<>\n]|[.,:;"\\']$/g, ""), i.push(`Author: ${c} <${d}>`, `Date: ${this.commitDate({
                refDate: n
            })}`, "", `${dP.repeat(4)}${this.commitMessage()}`, "");
            let h = r === "CRLF" ? `\r
` : `
`;
            return i.join(h);
        }
        commitMessage() {
            return `${this.faker.hacker.verb()} ${this.faker.hacker.adjective()} ${this.faker.hacker.noun()}`;
        }
        commitDate(e = {}) {
            let { refDate: a = this.faker.defaultRefDate() } = e, r = [
                "Sun",
                "Mon",
                "Tue",
                "Wed",
                "Thu",
                "Fri",
                "Sat"
            ], n = [
                "Jan",
                "Feb",
                "Mar",
                "Apr",
                "May",
                "Jun",
                "Jul",
                "Aug",
                "Sep",
                "Oct",
                "Nov",
                "Dec"
            ], i = this.faker.date.recent({
                days: 1,
                refDate: a
            }), o = r[i.getUTCDay()], s = n[i.getUTCMonth()], l = i.getUTCDate(), u = i.getUTCHours().toString().padStart(2, "0"), c = i.getUTCMinutes().toString().padStart(2, "0"), d = i.getUTCSeconds().toString().padStart(2, "0"), h = i.getUTCFullYear(), m = this.faker.number.int({
                min: -11,
                max: 12
            }), f = Math.abs(m).toString().padStart(2, "0"), p = "00", g = m >= 0 ? "+" : "-";
            return `${o} ${s} ${l} ${u}:${c}:${d} ${h} ${g}${f}${p}`;
        }
        commitSha(e = {}) {
            let { length: a = 40 } = e;
            return this.faker.string.hexadecimal({
                length: a,
                casing: "lower",
                prefix: ""
            });
        }
    }, mP = class extends Wt {
        abbreviation() {
            return this.faker.helpers.arrayElement(this.faker.definitions.hacker.abbreviation);
        }
        adjective() {
            return this.faker.helpers.arrayElement(this.faker.definitions.hacker.adjective);
        }
        noun() {
            return this.faker.helpers.arrayElement(this.faker.definitions.hacker.noun);
        }
        verb() {
            return this.faker.helpers.arrayElement(this.faker.definitions.hacker.verb);
        }
        ingverb() {
            return this.faker.helpers.arrayElement(this.faker.definitions.hacker.ingverb);
        }
        phrase() {
            let e = {
                abbreviation: this.abbreviation,
                adjective: this.adjective,
                ingverb: this.ingverb,
                noun: this.noun,
                verb: this.verb
            }, a = this.faker.helpers.arrayElement(this.faker.definitions.hacker.phrase);
            return this.faker.helpers.mustache(a, e);
        }
    }, fP = class extends Wt {
        avatar() {
            return this.faker.helpers.arrayElement([
                this.personPortrait,
                this.avatarGitHub
            ])();
        }
        avatarGitHub() {
            return `https://avatars.githubusercontent.com/u/${this.faker.number.int(1e8)}`;
        }
        personPortrait(e = {}) {
            let { sex: a = this.faker.person.sexType(), size: r = 512 } = e;
            return `https://cdn.jsdelivr.net/gh/faker-js/assets-person-portrait/${a}/${r}/${this.faker.number.int({
                min: 0,
                max: 99
            })}.jpg`;
        }
        avatarLegacy() {
            return Tn({
                deprecated: "faker.image.avatarLegacy()",
                proposed: "faker.image.avatar() or faker.image.personPortrait()",
                since: "9.0.2",
                until: "10.0.0"
            }), `https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/${this.faker.number.int(1249)}.jpg`;
        }
        url(e = {}) {
            let { width: a = this.faker.number.int({
                min: 1,
                max: 3999
            }), height: r = this.faker.number.int({
                min: 1,
                max: 3999
            }) } = e;
            return this.faker.helpers.arrayElement([
                this.urlLoremFlickr,
                ({ width: n, height: i })=>this.urlPicsumPhotos({
                        width: n,
                        height: i,
                        grayscale: !1,
                        blur: 0
                    })
            ])({
                width: a,
                height: r
            });
        }
        urlLoremFlickr(e = {}) {
            let { width: a = this.faker.number.int({
                min: 1,
                max: 3999
            }), height: r = this.faker.number.int({
                min: 1,
                max: 3999
            }), category: n } = e;
            return `https://loremflickr.com/${a}/${r}${n == null ? "" : `/${n}`}?lock=${this.faker.number.int()}`;
        }
        urlPicsumPhotos(e = {}) {
            let { width: a = this.faker.number.int({
                min: 1,
                max: 3999
            }), height: r = this.faker.number.int({
                min: 1,
                max: 3999
            }), grayscale: n = this.faker.datatype.boolean(), blur: i = this.faker.number.int({
                max: 10
            }) } = e, o = `https://picsum.photos/seed/${this.faker.string.alphanumeric({
                length: {
                    min: 5,
                    max: 10
                }
            })}/${a}/${r}`, s = typeof i == "number" && i >= 1 && i <= 10;
            return (n || s) && (o += "?", n && (o += "grayscale"), n && s && (o += "&"), s && (o += `blur=${i}`)), o;
        }
        urlPlaceholder(e = {}) {
            Tn({
                deprecated: "faker.image.urlPlaceholder()",
                proposed: "faker.image.url() or faker.image.dataUri()",
                since: "9.4.0",
                until: "10.0.0"
            });
            let { width: a = this.faker.number.int({
                min: 1,
                max: 3500
            }), height: r = this.faker.number.int({
                min: 1,
                max: 3500
            }), backgroundColor: n = this.faker.color.rgb({
                format: "hex",
                prefix: ""
            }), textColor: i = this.faker.color.rgb({
                format: "hex",
                prefix: ""
            }), format: o = this.faker.helpers.arrayElement([
                "gif",
                "jpeg",
                "jpg",
                "png",
                "webp"
            ]), text: s = this.faker.lorem.words() } = e, l = "https://via.placeholder.com";
            return l += `/${a}`, l += `x${r}`, l += `/${n}`, l += `/${i}`, l += `.${o}`, l += `?text=${encodeURIComponent(s)}`, l;
        }
        dataUri(e = {}) {
            let { width: a = this.faker.number.int({
                min: 1,
                max: 3999
            }), height: r = this.faker.number.int({
                min: 1,
                max: 3999
            }), color: n = this.faker.color.rgb(), type: i = this.faker.helpers.arrayElement([
                "svg-uri",
                "svg-base64"
            ]) } = e, o = `<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full" width="${a}" height="${r}"><rect width="100%" height="100%" fill="${n}"/><text x="${a / 2}" y="${r / 2}" font-size="20" alignment-baseline="middle" text-anchor="middle" fill="white">${a}x${r}</text></svg>`;
            return i === "svg-uri" ? `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(o)}` : `data:image/svg+xml;base64,${hF(o)}`;
        }
    }, pP = class extends Wt {
        zipCode(e = {}) {
            typeof e == "string" && (e = {
                format: e
            });
            let { state: a } = e;
            if (a != null) {
                let n = this.faker.definitions.location.postcode_by_state[a];
                if (n == null) throw new He(`No zip code definition found for state "${a}"`);
                return this.faker.helpers.fake(n);
            }
            let { format: r = this.faker.definitions.location.postcode } = e;
            return typeof r == "string" && (r = [
                r
            ]), r = this.faker.helpers.arrayElement(r), this.faker.helpers.replaceSymbols(r);
        }
        city() {
            return this.faker.helpers.fake(this.faker.definitions.location.city_pattern);
        }
        buildingNumber() {
            return this.faker.helpers.arrayElement(this.faker.definitions.location.building_number).replaceAll(/#+/g, (e)=>this.faker.string.numeric({
                    length: e.length,
                    allowLeadingZeros: !1
                }));
        }
        street() {
            return this.faker.helpers.fake(this.faker.definitions.location.street_pattern);
        }
        streetAddress(e = {}) {
            typeof e == "boolean" && (e = {
                useFullAddress: e
            });
            let { useFullAddress: a } = e, r = this.faker.definitions.location.street_address[a ? "full" : "normal"];
            return this.faker.helpers.fake(r);
        }
        secondaryAddress() {
            return this.faker.helpers.fake(this.faker.definitions.location.secondary_address).replaceAll(/#+/g, (e)=>this.faker.string.numeric({
                    length: e.length,
                    allowLeadingZeros: !1
                }));
        }
        county() {
            return this.faker.helpers.arrayElement(this.faker.definitions.location.county);
        }
        country() {
            return this.faker.helpers.arrayElement(this.faker.definitions.location.country);
        }
        continent() {
            return this.faker.helpers.arrayElement(this.faker.definitions.location.continent);
        }
        countryCode(e = {}) {
            typeof e == "string" && (e = {
                variant: e
            });
            let { variant: a = "alpha-2" } = e, r = (()=>{
                switch(a){
                    case "numeric":
                        return "numeric";
                    case "alpha-3":
                        return "alpha3";
                    case "alpha-2":
                        return "alpha2";
                }
            })();
            return this.faker.helpers.arrayElement(this.faker.definitions.location.country_code)[r];
        }
        state(e = {}) {
            let { abbreviated: a = !1 } = e, r = a ? this.faker.definitions.location.state_abbr : this.faker.definitions.location.state;
            return this.faker.helpers.arrayElement(r);
        }
        latitude(e = {}) {
            let { max: a = 90, min: r = -90, precision: n = 4 } = e;
            return this.faker.number.float({
                min: r,
                max: a,
                fractionDigits: n
            });
        }
        longitude(e = {}) {
            let { max: a = 180, min: r = -180, precision: n = 4 } = e;
            return this.faker.number.float({
                max: a,
                min: r,
                fractionDigits: n
            });
        }
        direction(e = {}) {
            let { abbreviated: a = !1 } = e;
            return a ? this.faker.helpers.arrayElement([
                ...this.faker.definitions.location.direction.cardinal_abbr,
                ...this.faker.definitions.location.direction.ordinal_abbr
            ]) : this.faker.helpers.arrayElement([
                ...this.faker.definitions.location.direction.cardinal,
                ...this.faker.definitions.location.direction.ordinal
            ]);
        }
        cardinalDirection(e = {}) {
            let { abbreviated: a = !1 } = e;
            return a ? this.faker.helpers.arrayElement(this.faker.definitions.location.direction.cardinal_abbr) : this.faker.helpers.arrayElement(this.faker.definitions.location.direction.cardinal);
        }
        ordinalDirection(e = {}) {
            let { abbreviated: a = !1 } = e;
            return a ? this.faker.helpers.arrayElement(this.faker.definitions.location.direction.ordinal_abbr) : this.faker.helpers.arrayElement(this.faker.definitions.location.direction.ordinal);
        }
        nearbyGPSCoordinate(e = {}) {
            let { origin: a, radius: r = 10, isMetric: n = !1 } = e;
            if (a == null) return [
                this.latitude(),
                this.longitude()
            ];
            let i = this.faker.number.float({
                max: 2 * Math.PI,
                fractionDigits: 5
            }), o = n ? r : r * 1.60934, s = this.faker.number.float({
                max: o,
                fractionDigits: 3
            }) * .995, l = 4e4 / 360, u = s / l, c = [
                a[0] + Math.sin(i) * u,
                a[1] + Math.cos(i) * u
            ];
            return c[0] = c[0] % 180, (c[0] < -90 || c[0] > 90) && (c[0] = Math.sign(c[0]) * 180 - c[0], c[1] += 180), c[1] = (c[1] % 360 + 540) % 360 - 180, [
                c[0],
                c[1]
            ];
        }
        timeZone() {
            return this.faker.helpers.arrayElement(this.faker.definitions.location.time_zone);
        }
        language() {
            return this.faker.helpers.arrayElement(this.faker.definitions.location.language);
        }
    };
    function gP(t, e, a = (r)=>r) {
        let r = {};
        for (let n of t){
            let i = e(n);
            r[i] === void 0 && (r[i] = []), r[i].push(a(n));
        }
        return r;
    }
    var vd = {
        fail: ()=>{
            throw new He("No words found that match the given length.");
        },
        closest: (t, e)=>{
            let a = gP(t, (s)=>s.length), r = Object.keys(a).map(Number), n = Math.min(...r), i = Math.max(...r), o = Math.min(e.min - n, i - e.max);
            return t.filter((s)=>s.length === e.min - o || s.length === e.max + o);
        },
        shortest: (t)=>{
            let e = Math.min(...t.map((a)=>a.length));
            return t.filter((a)=>a.length === e);
        },
        longest: (t)=>{
            let e = Math.max(...t.map((a)=>a.length));
            return t.filter((a)=>a.length === e);
        },
        "any-length": (t)=>[
                ...t
            ]
    };
    function Vr(t) {
        let { wordList: e, length: a, strategy: r = "any-length" } = t;
        if (a != null) {
            let n = typeof a == "number" ? (o)=>o.length === a : (o)=>o.length >= a.min && o.length <= a.max, i = e.filter(n);
            return i.length > 0 ? i : typeof a == "number" ? vd[r](e, {
                min: a,
                max: a
            }) : vd[r](e, a);
        } else if (r === "shortest" || r === "longest") return vd[r](e);
        return [
            ...e
        ];
    }
    var vP = class extends Wt {
        word(e = {}) {
            return typeof e == "number" && (e = {
                length: e
            }), this.faker.helpers.arrayElement(Vr({
                ...e,
                wordList: this.faker.definitions.lorem.word
            }));
        }
        words(e = 3) {
            return this.faker.helpers.multiple(()=>this.word(), {
                count: e
            }).join(" ");
        }
        sentence(e = {
            min: 3,
            max: 10
        }) {
            let a = this.words(e);
            return `${a.charAt(0).toUpperCase() + a.substring(1)}.`;
        }
        slug(e = 3) {
            let a = this.words(e);
            return this.faker.helpers.slugify(a);
        }
        sentences(e = {
            min: 2,
            max: 6
        }, a = " ") {
            return this.faker.helpers.multiple(()=>this.sentence(), {
                count: e
            }).join(a);
        }
        paragraph(e = 3) {
            return this.sentences(e);
        }
        paragraphs(e = 3, a = `
`) {
            return this.faker.helpers.multiple(()=>this.paragraph(), {
                count: e
            }).join(a);
        }
        text() {
            let e = [
                "sentence",
                "sentences",
                "paragraph",
                "paragraphs",
                "lines"
            ], a = this.faker.helpers.arrayElement(e);
            return this[a]();
        }
        lines(e = {
            min: 1,
            max: 5
        }) {
            return this.sentences(e, `
`);
        }
    }, yP = class extends Wt {
        album() {
            return this.faker.helpers.arrayElement(this.faker.definitions.music.album);
        }
        artist() {
            return this.faker.helpers.arrayElement(this.faker.definitions.music.artist);
        }
        genre() {
            return this.faker.helpers.arrayElement(this.faker.definitions.music.genre);
        }
        songName() {
            return this.faker.helpers.arrayElement(this.faker.definitions.music.song_name);
        }
    }, bP = class extends Wt {
        number(e = {}) {
            let { style: a = "human" } = e, r = this.faker.definitions.phone_number.format[a];
            if (!r) throw new Error(`No definitions for ${a} in this locale`);
            let n = this.faker.helpers.arrayElement(r);
            return yF(this.faker, n);
        }
        imei() {
            return this.faker.helpers.replaceCreditCardSymbols("##-######-######-L", "#");
        }
    }, FP = class extends Wt {
        chemicalElement() {
            return this.faker.helpers.arrayElement(this.faker.definitions.science.chemical_element);
        }
        unit() {
            return this.faker.helpers.arrayElement(this.faker.definitions.science.unit);
        }
    }, kP = [
        "video",
        "audio",
        "image",
        "text",
        "application"
    ], xP = [
        "application/pdf",
        "audio/mpeg",
        "audio/wav",
        "image/png",
        "image/jpeg",
        "image/gif",
        "video/mp4",
        "video/mpeg",
        "text/html"
    ], wP = [
        "en",
        "wl",
        "ww"
    ], Lv = {
        index: "o",
        slot: "s",
        mac: "x",
        pci: "p"
    }, SP = [
        "SUN",
        "MON",
        "TUE",
        "WED",
        "THU",
        "FRI",
        "SAT"
    ], CP = class extends Wt {
        fileName(e = {}) {
            let { extensionCount: a = 1 } = e, r = this.faker.word.words().toLowerCase().replaceAll(/\W/g, "_"), n = this.faker.helpers.multiple(()=>this.fileExt(), {
                count: a
            }).join(".");
            return n.length === 0 ? r : `${r}.${n}`;
        }
        commonFileName(e) {
            return `${this.fileName({
                extensionCount: 0
            })}.${e || this.commonFileExt()}`;
        }
        mimeType() {
            let e = Object.keys(this.faker.definitions.system.mime_type);
            return this.faker.helpers.arrayElement(e);
        }
        commonFileType() {
            return this.faker.helpers.arrayElement(kP);
        }
        commonFileExt() {
            return this.fileExt(this.faker.helpers.arrayElement(xP));
        }
        fileType() {
            let e = this.faker.definitions.system.mime_type, a = new Set(Object.keys(e).map((r)=>r.split("/")[0]));
            return this.faker.helpers.arrayElement([
                ...a
            ]);
        }
        fileExt(e) {
            let a = this.faker.definitions.system.mime_type;
            if (typeof e == "string") return this.faker.helpers.arrayElement(a[e].extensions);
            let r = new Set(Object.values(a).flatMap(({ extensions: n })=>n));
            return this.faker.helpers.arrayElement([
                ...r
            ]);
        }
        directoryPath() {
            let e = this.faker.definitions.system.directory_path;
            return this.faker.helpers.arrayElement(e);
        }
        filePath() {
            return `${this.directoryPath()}/${this.fileName()}`;
        }
        semver() {
            return [
                this.faker.number.int(9),
                this.faker.number.int(20),
                this.faker.number.int(20)
            ].join(".");
        }
        networkInterface(e = {}) {
            let { interfaceType: a = this.faker.helpers.arrayElement(wP), interfaceSchema: r = this.faker.helpers.objectKey(Lv) } = e, n, i = "";
            switch(r){
                case "index":
                    {
                        n = this.faker.string.numeric();
                        break;
                    }
                case "slot":
                    {
                        n = `${this.faker.string.numeric()}${this.faker.helpers.maybe(()=>`f${this.faker.string.numeric()}`) ?? ""}${this.faker.helpers.maybe(()=>`d${this.faker.string.numeric()}`) ?? ""}`;
                        break;
                    }
                case "mac":
                    {
                        n = this.faker.internet.mac("");
                        break;
                    }
                case "pci":
                    {
                        i = this.faker.helpers.maybe(()=>`P${this.faker.string.numeric()}`) ?? "", n = `${this.faker.string.numeric()}s${this.faker.string.numeric()}${this.faker.helpers.maybe(()=>`f${this.faker.string.numeric()}`) ?? ""}${this.faker.helpers.maybe(()=>`d${this.faker.string.numeric()}`) ?? ""}`;
                        break;
                    }
            }
            return `${i}${a}${Lv[r]}${n}`;
        }
        cron(e = {}) {
            let { includeYear: a = !1, includeNonStandard: r = !1 } = e, n = [
                this.faker.number.int(59),
                "*"
            ], i = [
                this.faker.number.int(23),
                "*"
            ], o = [
                this.faker.number.int({
                    min: 1,
                    max: 31
                }),
                "*",
                "?"
            ], s = [
                this.faker.number.int({
                    min: 1,
                    max: 12
                }),
                "*"
            ], l = [
                this.faker.number.int(6),
                this.faker.helpers.arrayElement(SP),
                "*",
                "?"
            ], u = [
                this.faker.number.int({
                    min: 1970,
                    max: 2099
                }),
                "*"
            ], c = this.faker.helpers.arrayElement(n), d = this.faker.helpers.arrayElement(i), h = this.faker.helpers.arrayElement(o), m = this.faker.helpers.arrayElement(s), f = this.faker.helpers.arrayElement(l), p = this.faker.helpers.arrayElement(u), g = `${c} ${d} ${h} ${m} ${f}`;
            a && (g += ` ${p}`);
            let v = [
                "@annually",
                "@daily",
                "@hourly",
                "@monthly",
                "@reboot",
                "@weekly",
                "@yearly"
            ];
            return !r || this.faker.datatype.boolean() ? g : this.faker.helpers.arrayElement(v);
        }
    }, AP = class extends Wt {
        vehicle() {
            return `${this.manufacturer()} ${this.model()}`;
        }
        manufacturer() {
            return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.manufacturer);
        }
        model() {
            return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.model);
        }
        type() {
            return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.type);
        }
        fuel() {
            return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.fuel);
        }
        vin() {
            let e = [
                "o",
                "i",
                "q",
                "O",
                "I",
                "Q"
            ];
            return `${this.faker.string.alphanumeric({
                length: 10,
                casing: "upper",
                exclude: e
            })}${this.faker.string.alpha({
                length: 1,
                casing: "upper",
                exclude: e
            })}${this.faker.string.alphanumeric({
                length: 1,
                casing: "upper",
                exclude: e
            })}${this.faker.string.numeric({
                length: 5,
                allowLeadingZeros: !0
            })}`;
        }
        color() {
            return this.faker.color.human();
        }
        vrm() {
            return `${this.faker.string.alpha({
                length: 2,
                casing: "upper"
            })}${this.faker.string.numeric({
                length: 2,
                allowLeadingZeros: !0
            })}${this.faker.string.alpha({
                length: 3,
                casing: "upper"
            })}`;
        }
        bicycle() {
            return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.bicycle_type);
        }
    }, DP = class extends Wt {
        adjective(e = {}) {
            return typeof e == "number" && (e = {
                length: e
            }), this.faker.helpers.arrayElement(Vr({
                ...e,
                wordList: this.faker.definitions.word.adjective
            }));
        }
        adverb(e = {}) {
            return typeof e == "number" && (e = {
                length: e
            }), this.faker.helpers.arrayElement(Vr({
                ...e,
                wordList: this.faker.definitions.word.adverb
            }));
        }
        conjunction(e = {}) {
            return typeof e == "number" && (e = {
                length: e
            }), this.faker.helpers.arrayElement(Vr({
                ...e,
                wordList: this.faker.definitions.word.conjunction
            }));
        }
        interjection(e = {}) {
            return typeof e == "number" && (e = {
                length: e
            }), this.faker.helpers.arrayElement(Vr({
                ...e,
                wordList: this.faker.definitions.word.interjection
            }));
        }
        noun(e = {}) {
            return typeof e == "number" && (e = {
                length: e
            }), this.faker.helpers.arrayElement(Vr({
                ...e,
                wordList: this.faker.definitions.word.noun
            }));
        }
        preposition(e = {}) {
            return typeof e == "number" && (e = {
                length: e
            }), this.faker.helpers.arrayElement(Vr({
                ...e,
                wordList: this.faker.definitions.word.preposition
            }));
        }
        verb(e = {}) {
            return typeof e == "number" && (e = {
                length: e
            }), this.faker.helpers.arrayElement(Vr({
                ...e,
                wordList: this.faker.definitions.word.verb
            }));
        }
        sample(e = {}) {
            let a = this.faker.helpers.shuffle([
                this.adjective,
                this.adverb,
                this.conjunction,
                this.interjection,
                this.noun,
                this.preposition,
                this.verb
            ]);
            for (let r of a)try {
                return r(e);
            } catch  {
                continue;
            }
            throw new He("No matching word data available for the current locale");
        }
        words(e = {}) {
            typeof e == "number" && (e = {
                count: e
            });
            let { count: a = {
                min: 1,
                max: 3
            } } = e;
            return this.faker.helpers.multiple(()=>this.sample(), {
                count: a
            }).join(" ");
        }
    }, TP = class extends kF {
        rawDefinitions;
        definitions;
        airline = new g_(this);
        animal = new tP(this);
        book = new aP(this);
        color = new b_(this);
        commerce = new nP(this);
        company = new iP(this);
        database = new oP(this);
        date = new H_(this);
        finance = new uP(this);
        food = new cP(this);
        git = new hP(this);
        hacker = new mP(this);
        helpers = new X_(this);
        image = new fP(this);
        internet = new __(this);
        location = new pP(this);
        lorem = new vP(this);
        music = new yP(this);
        person = new P_(this);
        phone = new bP(this);
        science = new FP(this);
        system = new CP(this);
        vehicle = new AP(this);
        word = new DP(this);
        get address() {
            return Tn({
                deprecated: "faker.address",
                proposed: "faker.location",
                since: "8.0",
                until: "10.0"
            }), this.location;
        }
        get name() {
            return Tn({
                deprecated: "faker.name",
                proposed: "faker.person",
                since: "8.0",
                until: "10.0"
            }), this.person;
        }
        constructor(e){
            super({
                randomizer: e.randomizer,
                seed: e.seed
            });
            let { locale: a } = e;
            if (Array.isArray(a)) {
                if (a.length === 0) throw new He("The locale option must contain at least one locale definition.");
                a = eP(a);
            }
            this.rawDefinitions = a, this.definitions = N_(this.rawDefinitions);
        }
        getMetadata() {
            return this.rawDefinitions.metadata ?? {};
        }
    }, EP = [
        "Academy Color Encoding System (ACES)",
        "Adobe RGB",
        "Adobe Wide Gamut RGB",
        "British Standard Colour (BS)",
        "CIE 1931 XYZ",
        "CIELAB",
        "CIELUV",
        "CIEUVW",
        "CMY",
        "CMYK",
        "DCI-P3",
        "Display-P3",
        "Federal Standard 595C",
        "HKS",
        "HSL",
        "HSLA",
        "HSLuv",
        "HSV",
        "HWB",
        "LCh",
        "LMS",
        "Munsell Color System",
        "Natural Color System (NSC)",
        "Pantone Matching System (PMS)",
        "ProPhoto RGB Color Space",
        "RAL",
        "RG",
        "RGBA",
        "RGK",
        "Rec. 2020",
        "Rec. 2100",
        "Rec. 601",
        "Rec. 709",
        "Uniform Color Spaces (UCSs)",
        "YDbDr",
        "YIQ",
        "YPbPr",
        "sRGB",
        "sYCC",
        "scRGB",
        "xvYCC"
    ], _P = {
        space: EP
    }, PP = _P, BP = [
        "ascii_bin",
        "ascii_general_ci",
        "cp1250_bin",
        "cp1250_general_ci",
        "utf8_bin",
        "utf8_general_ci",
        "utf8_unicode_ci"
    ], MP = [
        "ARCHIVE",
        "BLACKHOLE",
        "CSV",
        "InnoDB",
        "MEMORY",
        "MyISAM"
    ], RP = [
        "bigint",
        "binary",
        "bit",
        "blob",
        "boolean",
        "date",
        "datetime",
        "decimal",
        "double",
        "enum",
        "float",
        "geometry",
        "int",
        "mediumint",
        "point",
        "real",
        "serial",
        "set",
        "smallint",
        "text",
        "time",
        "timestamp",
        "tinyint",
        "varchar"
    ], LP = {
        collation: BP,
        engine: MP,
        type: RP
    }, IP = LP, xF = [
        "Africa/Abidjan",
        "Africa/Accra",
        "Africa/Addis_Ababa",
        "Africa/Algiers",
        "Africa/Asmara",
        "Africa/Bamako",
        "Africa/Bangui",
        "Africa/Banjul",
        "Africa/Bissau",
        "Africa/Blantyre",
        "Africa/Brazzaville",
        "Africa/Bujumbura",
        "Africa/Cairo",
        "Africa/Casablanca",
        "Africa/Ceuta",
        "Africa/Conakry",
        "Africa/Dakar",
        "Africa/Dar_es_Salaam",
        "Africa/Djibouti",
        "Africa/Douala",
        "Africa/El_Aaiun",
        "Africa/Freetown",
        "Africa/Gaborone",
        "Africa/Harare",
        "Africa/Johannesburg",
        "Africa/Juba",
        "Africa/Kampala",
        "Africa/Khartoum",
        "Africa/Kigali",
        "Africa/Kinshasa",
        "Africa/Lagos",
        "Africa/Libreville",
        "Africa/Lome",
        "Africa/Luanda",
        "Africa/Lubumbashi",
        "Africa/Lusaka",
        "Africa/Malabo",
        "Africa/Maputo",
        "Africa/Maseru",
        "Africa/Mbabane",
        "Africa/Mogadishu",
        "Africa/Monrovia",
        "Africa/Nairobi",
        "Africa/Ndjamena",
        "Africa/Niamey",
        "Africa/Nouakchott",
        "Africa/Ouagadougou",
        "Africa/Porto-Novo",
        "Africa/Sao_Tome",
        "Africa/Tripoli",
        "Africa/Tunis",
        "Africa/Windhoek",
        "America/Adak",
        "America/Anchorage",
        "America/Anguilla",
        "America/Antigua",
        "America/Araguaina",
        "America/Argentina/Buenos_Aires",
        "America/Argentina/Catamarca",
        "America/Argentina/Cordoba",
        "America/Argentina/Jujuy",
        "America/Argentina/La_Rioja",
        "America/Argentina/Mendoza",
        "America/Argentina/Rio_Gallegos",
        "America/Argentina/Salta",
        "America/Argentina/San_Juan",
        "America/Argentina/San_Luis",
        "America/Argentina/Tucuman",
        "America/Argentina/Ushuaia",
        "America/Aruba",
        "America/Asuncion",
        "America/Atikokan",
        "America/Bahia",
        "America/Bahia_Banderas",
        "America/Barbados",
        "America/Belem",
        "America/Belize",
        "America/Blanc-Sablon",
        "America/Boa_Vista",
        "America/Bogota",
        "America/Boise",
        "America/Cambridge_Bay",
        "America/Campo_Grande",
        "America/Cancun",
        "America/Caracas",
        "America/Cayenne",
        "America/Cayman",
        "America/Chicago",
        "America/Chihuahua",
        "America/Ciudad_Juarez",
        "America/Costa_Rica",
        "America/Creston",
        "America/Cuiaba",
        "America/Curacao",
        "America/Danmarkshavn",
        "America/Dawson",
        "America/Dawson_Creek",
        "America/Denver",
        "America/Detroit",
        "America/Dominica",
        "America/Edmonton",
        "America/Eirunepe",
        "America/El_Salvador",
        "America/Fort_Nelson",
        "America/Fortaleza",
        "America/Glace_Bay",
        "America/Goose_Bay",
        "America/Grand_Turk",
        "America/Grenada",
        "America/Guadeloupe",
        "America/Guatemala",
        "America/Guayaquil",
        "America/Guyana",
        "America/Halifax",
        "America/Havana",
        "America/Hermosillo",
        "America/Indiana/Indianapolis",
        "America/Indiana/Knox",
        "America/Indiana/Marengo",
        "America/Indiana/Petersburg",
        "America/Indiana/Tell_City",
        "America/Indiana/Vevay",
        "America/Indiana/Vincennes",
        "America/Indiana/Winamac",
        "America/Inuvik",
        "America/Iqaluit",
        "America/Jamaica",
        "America/Juneau",
        "America/Kentucky/Louisville",
        "America/Kentucky/Monticello",
        "America/Kralendijk",
        "America/La_Paz",
        "America/Lima",
        "America/Los_Angeles",
        "America/Lower_Princes",
        "America/Maceio",
        "America/Managua",
        "America/Manaus",
        "America/Marigot",
        "America/Martinique",
        "America/Matamoros",
        "America/Mazatlan",
        "America/Menominee",
        "America/Merida",
        "America/Metlakatla",
        "America/Mexico_City",
        "America/Miquelon",
        "America/Moncton",
        "America/Monterrey",
        "America/Montevideo",
        "America/Montserrat",
        "America/Nassau",
        "America/New_York",
        "America/Nome",
        "America/Noronha",
        "America/North_Dakota/Beulah",
        "America/North_Dakota/Center",
        "America/North_Dakota/New_Salem",
        "America/Nuuk",
        "America/Ojinaga",
        "America/Panama",
        "America/Paramaribo",
        "America/Phoenix",
        "America/Port-au-Prince",
        "America/Port_of_Spain",
        "America/Porto_Velho",
        "America/Puerto_Rico",
        "America/Punta_Arenas",
        "America/Rankin_Inlet",
        "America/Recife",
        "America/Regina",
        "America/Resolute",
        "America/Rio_Branco",
        "America/Santarem",
        "America/Santiago",
        "America/Santo_Domingo",
        "America/Sao_Paulo",
        "America/Scoresbysund",
        "America/Sitka",
        "America/St_Barthelemy",
        "America/St_Johns",
        "America/St_Kitts",
        "America/St_Lucia",
        "America/St_Thomas",
        "America/St_Vincent",
        "America/Swift_Current",
        "America/Tegucigalpa",
        "America/Thule",
        "America/Tijuana",
        "America/Toronto",
        "America/Tortola",
        "America/Vancouver",
        "America/Whitehorse",
        "America/Winnipeg",
        "America/Yakutat",
        "America/Yellowknife",
        "Antarctica/Casey",
        "Antarctica/Davis",
        "Antarctica/DumontDUrville",
        "Antarctica/Macquarie",
        "Antarctica/Mawson",
        "Antarctica/McMurdo",
        "Antarctica/Palmer",
        "Antarctica/Rothera",
        "Antarctica/Syowa",
        "Antarctica/Troll",
        "Antarctica/Vostok",
        "Arctic/Longyearbyen",
        "Asia/Aden",
        "Asia/Almaty",
        "Asia/Amman",
        "Asia/Anadyr",
        "Asia/Aqtau",
        "Asia/Aqtobe",
        "Asia/Ashgabat",
        "Asia/Atyrau",
        "Asia/Baghdad",
        "Asia/Bahrain",
        "Asia/Baku",
        "Asia/Bangkok",
        "Asia/Barnaul",
        "Asia/Beirut",
        "Asia/Bishkek",
        "Asia/Brunei",
        "Asia/Chita",
        "Asia/Choibalsan",
        "Asia/Colombo",
        "Asia/Damascus",
        "Asia/Dhaka",
        "Asia/Dili",
        "Asia/Dubai",
        "Asia/Dushanbe",
        "Asia/Famagusta",
        "Asia/Gaza",
        "Asia/Hebron",
        "Asia/Ho_Chi_Minh",
        "Asia/Hong_Kong",
        "Asia/Hovd",
        "Asia/Irkutsk",
        "Asia/Jakarta",
        "Asia/Jayapura",
        "Asia/Jerusalem",
        "Asia/Kabul",
        "Asia/Kamchatka",
        "Asia/Karachi",
        "Asia/Kathmandu",
        "Asia/Khandyga",
        "Asia/Kolkata",
        "Asia/Krasnoyarsk",
        "Asia/Kuala_Lumpur",
        "Asia/Kuching",
        "Asia/Kuwait",
        "Asia/Macau",
        "Asia/Magadan",
        "Asia/Makassar",
        "Asia/Manila",
        "Asia/Muscat",
        "Asia/Nicosia",
        "Asia/Novokuznetsk",
        "Asia/Novosibirsk",
        "Asia/Omsk",
        "Asia/Oral",
        "Asia/Phnom_Penh",
        "Asia/Pontianak",
        "Asia/Pyongyang",
        "Asia/Qatar",
        "Asia/Qostanay",
        "Asia/Qyzylorda",
        "Asia/Riyadh",
        "Asia/Sakhalin",
        "Asia/Samarkand",
        "Asia/Seoul",
        "Asia/Shanghai",
        "Asia/Singapore",
        "Asia/Srednekolymsk",
        "Asia/Taipei",
        "Asia/Tashkent",
        "Asia/Tbilisi",
        "Asia/Tehran",
        "Asia/Thimphu",
        "Asia/Tokyo",
        "Asia/Tomsk",
        "Asia/Ulaanbaatar",
        "Asia/Urumqi",
        "Asia/Ust-Nera",
        "Asia/Vientiane",
        "Asia/Vladivostok",
        "Asia/Yakutsk",
        "Asia/Yangon",
        "Asia/Yekaterinburg",
        "Asia/Yerevan",
        "Atlantic/Azores",
        "Atlantic/Bermuda",
        "Atlantic/Canary",
        "Atlantic/Cape_Verde",
        "Atlantic/Faroe",
        "Atlantic/Madeira",
        "Atlantic/Reykjavik",
        "Atlantic/South_Georgia",
        "Atlantic/St_Helena",
        "Atlantic/Stanley",
        "Australia/Adelaide",
        "Australia/Brisbane",
        "Australia/Broken_Hill",
        "Australia/Darwin",
        "Australia/Eucla",
        "Australia/Hobart",
        "Australia/Lindeman",
        "Australia/Lord_Howe",
        "Australia/Melbourne",
        "Australia/Perth",
        "Australia/Sydney",
        "Europe/Amsterdam",
        "Europe/Andorra",
        "Europe/Astrakhan",
        "Europe/Athens",
        "Europe/Belgrade",
        "Europe/Berlin",
        "Europe/Bratislava",
        "Europe/Brussels",
        "Europe/Bucharest",
        "Europe/Budapest",
        "Europe/Busingen",
        "Europe/Chisinau",
        "Europe/Copenhagen",
        "Europe/Dublin",
        "Europe/Gibraltar",
        "Europe/Guernsey",
        "Europe/Helsinki",
        "Europe/Isle_of_Man",
        "Europe/Istanbul",
        "Europe/Jersey",
        "Europe/Kaliningrad",
        "Europe/Kirov",
        "Europe/Kyiv",
        "Europe/Lisbon",
        "Europe/Ljubljana",
        "Europe/London",
        "Europe/Luxembourg",
        "Europe/Madrid",
        "Europe/Malta",
        "Europe/Mariehamn",
        "Europe/Minsk",
        "Europe/Monaco",
        "Europe/Moscow",
        "Europe/Oslo",
        "Europe/Paris",
        "Europe/Podgorica",
        "Europe/Prague",
        "Europe/Riga",
        "Europe/Rome",
        "Europe/Samara",
        "Europe/San_Marino",
        "Europe/Sarajevo",
        "Europe/Saratov",
        "Europe/Simferopol",
        "Europe/Skopje",
        "Europe/Sofia",
        "Europe/Stockholm",
        "Europe/Tallinn",
        "Europe/Tirane",
        "Europe/Ulyanovsk",
        "Europe/Vaduz",
        "Europe/Vatican",
        "Europe/Vienna",
        "Europe/Vilnius",
        "Europe/Volgograd",
        "Europe/Warsaw",
        "Europe/Zagreb",
        "Europe/Zurich",
        "Indian/Antananarivo",
        "Indian/Chagos",
        "Indian/Christmas",
        "Indian/Cocos",
        "Indian/Comoro",
        "Indian/Kerguelen",
        "Indian/Mahe",
        "Indian/Maldives",
        "Indian/Mauritius",
        "Indian/Mayotte",
        "Indian/Reunion",
        "Pacific/Apia",
        "Pacific/Auckland",
        "Pacific/Bougainville",
        "Pacific/Chatham",
        "Pacific/Chuuk",
        "Pacific/Easter",
        "Pacific/Efate",
        "Pacific/Fakaofo",
        "Pacific/Fiji",
        "Pacific/Funafuti",
        "Pacific/Galapagos",
        "Pacific/Gambier",
        "Pacific/Guadalcanal",
        "Pacific/Guam",
        "Pacific/Honolulu",
        "Pacific/Kanton",
        "Pacific/Kiritimati",
        "Pacific/Kosrae",
        "Pacific/Kwajalein",
        "Pacific/Majuro",
        "Pacific/Marquesas",
        "Pacific/Midway",
        "Pacific/Nauru",
        "Pacific/Niue",
        "Pacific/Norfolk",
        "Pacific/Noumea",
        "Pacific/Pago_Pago",
        "Pacific/Palau",
        "Pacific/Pitcairn",
        "Pacific/Pohnpei",
        "Pacific/Port_Moresby",
        "Pacific/Rarotonga",
        "Pacific/Saipan",
        "Pacific/Tahiti",
        "Pacific/Tarawa",
        "Pacific/Tongatapu",
        "Pacific/Wake",
        "Pacific/Wallis"
    ], zP = {
        time_zone: xF
    }, NP = zP, OP = [
        "ADP",
        "AGP",
        "AI",
        "API",
        "ASCII",
        "CLI",
        "COM",
        "CSS",
        "DNS",
        "DRAM",
        "EXE",
        "FTP",
        "GB",
        "HDD",
        "HEX",
        "HTTP",
        "IB",
        "IP",
        "JBOD",
        "JSON",
        "OCR",
        "PCI",
        "PNG",
        "RAM",
        "RSS",
        "SAS",
        "SCSI",
        "SDD",
        "SMS",
        "SMTP",
        "SQL",
        "SSD",
        "SSL",
        "TCP",
        "THX",
        "TLS",
        "UDP",
        "USB",
        "UTF8",
        "VGA",
        "XML",
        "XSS"
    ], HP = {
        abbreviation: OP
    }, VP = HP, WP = {
        smiley: [
            "😀",
            "😃",
            "😄",
            "😁",
            "😆",
            "😅",
            "🤣",
            "😂",
            "🙂",
            "🙃",
            "😉",
            "😊",
            "😇",
            "🥰",
            "😍",
            "🤩",
            "😘",
            "😗",
            "☺️",
            "😚",
            "😙",
            "🥲",
            "😋",
            "😛",
            "😜",
            "🤪",
            "😝",
            "🤑",
            "🤗",
            "🤭",
            "🤫",
            "🤔",
            "🤐",
            "🤨",
            "😐",
            "😑",
            "😶",
            "😶‍🌫️",
            "😏",
            "😒",
            "🙄",
            "😬",
            "😮‍💨",
            "🤥",
            "😌",
            "😔",
            "😪",
            "🤤",
            "😴",
            "😷",
            "🤒",
            "🤕",
            "🤢",
            "🤮",
            "🤧",
            "🥵",
            "🥶",
            "🥴",
            "😵",
            "😵‍💫",
            "🤯",
            "🤠",
            "🥳",
            "🥸",
            "😎",
            "🤓",
            "🧐",
            "😕",
            "😟",
            "🙁",
            "☹️",
            "😮",
            "😯",
            "😲",
            "😳",
            "🥺",
            "😦",
            "😧",
            "😨",
            "😰",
            "😥",
            "😢",
            "😭",
            "😱",
            "😖",
            "😣",
            "😞",
            "😓",
            "😩",
            "😫",
            "🥱",
            "😤",
            "😡",
            "😠",
            "🤬",
            "😈",
            "👿",
            "💀",
            "☠️",
            "💩",
            "🤡",
            "👹",
            "👺",
            "👻",
            "👽",
            "👾",
            "🤖",
            "😺",
            "😸",
            "😹",
            "😻",
            "😼",
            "😽",
            "🙀",
            "😿",
            "😾",
            "🙈",
            "🙉",
            "🙊",
            "💋",
            "💌",
            "💘",
            "💝",
            "💖",
            "💗",
            "💓",
            "💞",
            "💕",
            "💟",
            "❣️",
            "💔",
            "❤️‍🔥",
            "❤️‍🩹",
            "❤️",
            "🧡",
            "💛",
            "💚",
            "💙",
            "💜",
            "🤎",
            "🖤",
            "🤍",
            "💯",
            "💢",
            "💥",
            "💫",
            "💦",
            "💨",
            "🕳️",
            "💣",
            "💬",
            "👁️‍🗨️",
            "🗨️",
            "🗯️",
            "💭",
            "💤"
        ],
        body: [
            "👋",
            "👋🏻",
            "👋🏼",
            "👋🏽",
            "👋🏾",
            "👋🏿",
            "🤚",
            "🤚🏻",
            "🤚🏼",
            "🤚🏽",
            "🤚🏾",
            "🤚🏿",
            "🖐️",
            "🖐🏻",
            "🖐🏼",
            "🖐🏽",
            "🖐🏾",
            "🖐🏿",
            "✋",
            "✋🏻",
            "✋🏼",
            "✋🏽",
            "✋🏾",
            "✋🏿",
            "🖖",
            "🖖🏻",
            "🖖🏼",
            "🖖🏽",
            "🖖🏾",
            "🖖🏿",
            "👌",
            "👌🏻",
            "👌🏼",
            "👌🏽",
            "👌🏾",
            "👌🏿",
            "🤌",
            "🤌🏻",
            "🤌🏼",
            "🤌🏽",
            "🤌🏾",
            "🤌🏿",
            "🤏",
            "🤏🏻",
            "🤏🏼",
            "🤏🏽",
            "🤏🏾",
            "🤏🏿",
            "✌️",
            "✌🏻",
            "✌🏼",
            "✌🏽",
            "✌🏾",
            "✌🏿",
            "🤞",
            "🤞🏻",
            "🤞🏼",
            "🤞🏽",
            "🤞🏾",
            "🤞🏿",
            "🤟",
            "🤟🏻",
            "🤟🏼",
            "🤟🏽",
            "🤟🏾",
            "🤟🏿",
            "🤘",
            "🤘🏻",
            "🤘🏼",
            "🤘🏽",
            "🤘🏾",
            "🤘🏿",
            "🤙",
            "🤙🏻",
            "🤙🏼",
            "🤙🏽",
            "🤙🏾",
            "🤙🏿",
            "👈",
            "👈🏻",
            "👈🏼",
            "👈🏽",
            "👈🏾",
            "👈🏿",
            "👉",
            "👉🏻",
            "👉🏼",
            "👉🏽",
            "👉🏾",
            "👉🏿",
            "👆",
            "👆🏻",
            "👆🏼",
            "👆🏽",
            "👆🏾",
            "👆🏿",
            "🖕",
            "🖕🏻",
            "🖕🏼",
            "🖕🏽",
            "🖕🏾",
            "🖕🏿",
            "👇",
            "👇🏻",
            "👇🏼",
            "👇🏽",
            "👇🏾",
            "👇🏿",
            "☝️",
            "☝🏻",
            "☝🏼",
            "☝🏽",
            "☝🏾",
            "☝🏿",
            "👍",
            "👍🏻",
            "👍🏼",
            "👍🏽",
            "👍🏾",
            "👍🏿",
            "👎",
            "👎🏻",
            "👎🏼",
            "👎🏽",
            "👎🏾",
            "👎🏿",
            "✊",
            "✊🏻",
            "✊🏼",
            "✊🏽",
            "✊🏾",
            "✊🏿",
            "👊",
            "👊🏻",
            "👊🏼",
            "👊🏽",
            "👊🏾",
            "👊🏿",
            "🤛",
            "🤛🏻",
            "🤛🏼",
            "🤛🏽",
            "🤛🏾",
            "🤛🏿",
            "🤜",
            "🤜🏻",
            "🤜🏼",
            "🤜🏽",
            "🤜🏾",
            "🤜🏿",
            "👏",
            "👏🏻",
            "👏🏼",
            "👏🏽",
            "👏🏾",
            "👏🏿",
            "🙌",
            "🙌🏻",
            "🙌🏼",
            "🙌🏽",
            "🙌🏾",
            "🙌🏿",
            "👐",
            "👐🏻",
            "👐🏼",
            "👐🏽",
            "👐🏾",
            "👐🏿",
            "🤲",
            "🤲🏻",
            "🤲🏼",
            "🤲🏽",
            "🤲🏾",
            "🤲🏿",
            "🤝",
            "🙏",
            "🙏🏻",
            "🙏🏼",
            "🙏🏽",
            "🙏🏾",
            "🙏🏿",
            "✍️",
            "✍🏻",
            "✍🏼",
            "✍🏽",
            "✍🏾",
            "✍🏿",
            "💅",
            "💅🏻",
            "💅🏼",
            "💅🏽",
            "💅🏾",
            "💅🏿",
            "🤳",
            "🤳🏻",
            "🤳🏼",
            "🤳🏽",
            "🤳🏾",
            "🤳🏿",
            "💪",
            "💪🏻",
            "💪🏼",
            "💪🏽",
            "💪🏾",
            "💪🏿",
            "🦾",
            "🦿",
            "🦵",
            "🦵🏻",
            "🦵🏼",
            "🦵🏽",
            "🦵🏾",
            "🦵🏿",
            "🦶",
            "🦶🏻",
            "🦶🏼",
            "🦶🏽",
            "🦶🏾",
            "🦶🏿",
            "👂",
            "👂🏻",
            "👂🏼",
            "👂🏽",
            "👂🏾",
            "👂🏿",
            "🦻",
            "🦻🏻",
            "🦻🏼",
            "🦻🏽",
            "🦻🏾",
            "🦻🏿",
            "👃",
            "👃🏻",
            "👃🏼",
            "👃🏽",
            "👃🏾",
            "👃🏿",
            "🧠",
            "🫀",
            "🫁",
            "🦷",
            "🦴",
            "👀",
            "👁️",
            "👅",
            "👄"
        ],
        person: [
            "👶",
            "👶🏻",
            "👶🏼",
            "👶🏽",
            "👶🏾",
            "👶🏿",
            "🧒",
            "🧒🏻",
            "🧒🏼",
            "🧒🏽",
            "🧒🏾",
            "🧒🏿",
            "👦",
            "👦🏻",
            "👦🏼",
            "👦🏽",
            "👦🏾",
            "👦🏿",
            "👧",
            "👧🏻",
            "👧🏼",
            "👧🏽",
            "👧🏾",
            "👧🏿",
            "🧑",
            "🧑🏻",
            "🧑🏼",
            "🧑🏽",
            "🧑🏾",
            "🧑🏿",
            "👱",
            "👱🏻",
            "👱🏼",
            "👱🏽",
            "👱🏾",
            "👱🏿",
            "👨",
            "👨🏻",
            "👨🏼",
            "👨🏽",
            "👨🏾",
            "👨🏿",
            "🧔",
            "🧔🏻",
            "🧔🏼",
            "🧔🏽",
            "🧔🏾",
            "🧔🏿",
            "🧔‍♂️",
            "🧔🏻‍♂️",
            "🧔🏼‍♂️",
            "🧔🏽‍♂️",
            "🧔🏾‍♂️",
            "🧔🏿‍♂️",
            "🧔‍♀️",
            "🧔🏻‍♀️",
            "🧔🏼‍♀️",
            "🧔🏽‍♀️",
            "🧔🏾‍♀️",
            "🧔🏿‍♀️",
            "👨‍🦰",
            "👨🏻‍🦰",
            "👨🏼‍🦰",
            "👨🏽‍🦰",
            "👨🏾‍🦰",
            "👨🏿‍🦰",
            "👨‍🦱",
            "👨🏻‍🦱",
            "👨🏼‍🦱",
            "👨🏽‍🦱",
            "👨🏾‍🦱",
            "👨🏿‍🦱",
            "👨‍🦳",
            "👨🏻‍🦳",
            "👨🏼‍🦳",
            "👨🏽‍🦳",
            "👨🏾‍🦳",
            "👨🏿‍🦳",
            "👨‍🦲",
            "👨🏻‍🦲",
            "👨🏼‍🦲",
            "👨🏽‍🦲",
            "👨🏾‍🦲",
            "👨🏿‍🦲",
            "👩",
            "👩🏻",
            "👩🏼",
            "👩🏽",
            "👩🏾",
            "👩🏿",
            "👩‍🦰",
            "👩🏻‍🦰",
            "👩🏼‍🦰",
            "👩🏽‍🦰",
            "👩🏾‍🦰",
            "👩🏿‍🦰",
            "🧑‍🦰",
            "🧑🏻‍🦰",
            "🧑🏼‍🦰",
            "🧑🏽‍🦰",
            "🧑🏾‍🦰",
            "🧑🏿‍🦰",
            "👩‍🦱",
            "👩🏻‍🦱",
            "👩🏼‍🦱",
            "👩🏽‍🦱",
            "👩🏾‍🦱",
            "👩🏿‍🦱",
            "🧑‍🦱",
            "🧑🏻‍🦱",
            "🧑🏼‍🦱",
            "🧑🏽‍🦱",
            "🧑🏾‍🦱",
            "🧑🏿‍🦱",
            "👩‍🦳",
            "👩🏻‍🦳",
            "👩🏼‍🦳",
            "👩🏽‍🦳",
            "👩🏾‍🦳",
            "👩🏿‍🦳",
            "🧑‍🦳",
            "🧑🏻‍🦳",
            "🧑🏼‍🦳",
            "🧑🏽‍🦳",
            "🧑🏾‍🦳",
            "🧑🏿‍🦳",
            "👩‍🦲",
            "👩🏻‍🦲",
            "👩🏼‍🦲",
            "👩🏽‍🦲",
            "👩🏾‍🦲",
            "👩🏿‍🦲",
            "🧑‍🦲",
            "🧑🏻‍🦲",
            "🧑🏼‍🦲",
            "🧑🏽‍🦲",
            "🧑🏾‍🦲",
            "🧑🏿‍🦲",
            "👱‍♀️",
            "👱🏻‍♀️",
            "👱🏼‍♀️",
            "👱🏽‍♀️",
            "👱🏾‍♀️",
            "👱🏿‍♀️",
            "👱‍♂️",
            "👱🏻‍♂️",
            "👱🏼‍♂️",
            "👱🏽‍♂️",
            "👱🏾‍♂️",
            "👱🏿‍♂️",
            "🧓",
            "🧓🏻",
            "🧓🏼",
            "🧓🏽",
            "🧓🏾",
            "🧓🏿",
            "👴",
            "👴🏻",
            "👴🏼",
            "👴🏽",
            "👴🏾",
            "👴🏿",
            "👵",
            "👵🏻",
            "👵🏼",
            "👵🏽",
            "👵🏾",
            "👵🏿",
            "🙍",
            "🙍🏻",
            "🙍🏼",
            "🙍🏽",
            "🙍🏾",
            "🙍🏿",
            "🙍‍♂️",
            "🙍🏻‍♂️",
            "🙍🏼‍♂️",
            "🙍🏽‍♂️",
            "🙍🏾‍♂️",
            "🙍🏿‍♂️",
            "🙍‍♀️",
            "🙍🏻‍♀️",
            "🙍🏼‍♀️",
            "🙍🏽‍♀️",
            "🙍🏾‍♀️",
            "🙍🏿‍♀️",
            "🙎",
            "🙎🏻",
            "🙎🏼",
            "🙎🏽",
            "🙎🏾",
            "🙎🏿",
            "🙎‍♂️",
            "🙎🏻‍♂️",
            "🙎🏼‍♂️",
            "🙎🏽‍♂️",
            "🙎🏾‍♂️",
            "🙎🏿‍♂️",
            "🙎‍♀️",
            "🙎🏻‍♀️",
            "🙎🏼‍♀️",
            "🙎🏽‍♀️",
            "🙎🏾‍♀️",
            "🙎🏿‍♀️",
            "🙅",
            "🙅🏻",
            "🙅🏼",
            "🙅🏽",
            "🙅🏾",
            "🙅🏿",
            "🙅‍♂️",
            "🙅🏻‍♂️",
            "🙅🏼‍♂️",
            "🙅🏽‍♂️",
            "🙅🏾‍♂️",
            "🙅🏿‍♂️",
            "🙅‍♀️",
            "🙅🏻‍♀️",
            "🙅🏼‍♀️",
            "🙅🏽‍♀️",
            "🙅🏾‍♀️",
            "🙅🏿‍♀️",
            "🙆",
            "🙆🏻",
            "🙆🏼",
            "🙆🏽",
            "🙆🏾",
            "🙆🏿",
            "🙆‍♂️",
            "🙆🏻‍♂️",
            "🙆🏼‍♂️",
            "🙆🏽‍♂️",
            "🙆🏾‍♂️",
            "🙆🏿‍♂️",
            "🙆‍♀️",
            "🙆🏻‍♀️",
            "🙆🏼‍♀️",
            "🙆🏽‍♀️",
            "🙆🏾‍♀️",
            "🙆🏿‍♀️",
            "💁",
            "💁🏻",
            "💁🏼",
            "💁🏽",
            "💁🏾",
            "💁🏿",
            "💁‍♂️",
            "💁🏻‍♂️",
            "💁🏼‍♂️",
            "💁🏽‍♂️",
            "💁🏾‍♂️",
            "💁🏿‍♂️",
            "💁‍♀️",
            "💁🏻‍♀️",
            "💁🏼‍♀️",
            "💁🏽‍♀️",
            "💁🏾‍♀️",
            "💁🏿‍♀️",
            "🙋",
            "🙋🏻",
            "🙋🏼",
            "🙋🏽",
            "🙋🏾",
            "🙋🏿",
            "🙋‍♂️",
            "🙋🏻‍♂️",
            "🙋🏼‍♂️",
            "🙋🏽‍♂️",
            "🙋🏾‍♂️",
            "🙋🏿‍♂️",
            "🙋‍♀️",
            "🙋🏻‍♀️",
            "🙋🏼‍♀️",
            "🙋🏽‍♀️",
            "🙋🏾‍♀️",
            "🙋🏿‍♀️",
            "🧏",
            "🧏🏻",
            "🧏🏼",
            "🧏🏽",
            "🧏🏾",
            "🧏🏿",
            "🧏‍♂️",
            "🧏🏻‍♂️",
            "🧏🏼‍♂️",
            "🧏🏽‍♂️",
            "🧏🏾‍♂️",
            "🧏🏿‍♂️",
            "🧏‍♀️",
            "🧏🏻‍♀️",
            "🧏🏼‍♀️",
            "🧏🏽‍♀️",
            "🧏🏾‍♀️",
            "🧏🏿‍♀️",
            "🙇",
            "🙇🏻",
            "🙇🏼",
            "🙇🏽",
            "🙇🏾",
            "🙇🏿",
            "🙇‍♂️",
            "🙇🏻‍♂️",
            "🙇🏼‍♂️",
            "🙇🏽‍♂️",
            "🙇🏾‍♂️",
            "🙇🏿‍♂️",
            "🙇‍♀️",
            "🙇🏻‍♀️",
            "🙇🏼‍♀️",
            "🙇🏽‍♀️",
            "🙇🏾‍♀️",
            "🙇🏿‍♀️",
            "🤦",
            "🤦🏻",
            "🤦🏼",
            "🤦🏽",
            "🤦🏾",
            "🤦🏿",
            "🤦‍♂️",
            "🤦🏻‍♂️",
            "🤦🏼‍♂️",
            "🤦🏽‍♂️",
            "🤦🏾‍♂️",
            "🤦🏿‍♂️",
            "🤦‍♀️",
            "🤦🏻‍♀️",
            "🤦🏼‍♀️",
            "🤦🏽‍♀️",
            "🤦🏾‍♀️",
            "🤦🏿‍♀️",
            "🤷",
            "🤷🏻",
            "🤷🏼",
            "🤷🏽",
            "🤷🏾",
            "🤷🏿",
            "🤷‍♂️",
            "🤷🏻‍♂️",
            "🤷🏼‍♂️",
            "🤷🏽‍♂️",
            "🤷🏾‍♂️",
            "🤷🏿‍♂️",
            "🤷‍♀️",
            "🤷🏻‍♀️",
            "🤷🏼‍♀️",
            "🤷🏽‍♀️",
            "🤷🏾‍♀️",
            "🤷🏿‍♀️",
            "🧑‍⚕️",
            "🧑🏻‍⚕️",
            "🧑🏼‍⚕️",
            "🧑🏽‍⚕️",
            "🧑🏾‍⚕️",
            "🧑🏿‍⚕️",
            "👨‍⚕️",
            "👨🏻‍⚕️",
            "👨🏼‍⚕️",
            "👨🏽‍⚕️",
            "👨🏾‍⚕️",
            "👨🏿‍⚕️",
            "👩‍⚕️",
            "👩🏻‍⚕️",
            "👩🏼‍⚕️",
            "👩🏽‍⚕️",
            "👩🏾‍⚕️",
            "👩🏿‍⚕️",
            "🧑‍🎓",
            "🧑🏻‍🎓",
            "🧑🏼‍🎓",
            "🧑🏽‍🎓",
            "🧑🏾‍🎓",
            "🧑🏿‍🎓",
            "👨‍🎓",
            "👨🏻‍🎓",
            "👨🏼‍🎓",
            "👨🏽‍🎓",
            "👨🏾‍🎓",
            "👨🏿‍🎓",
            "👩‍🎓",
            "👩🏻‍🎓",
            "👩🏼‍🎓",
            "👩🏽‍🎓",
            "👩🏾‍🎓",
            "👩🏿‍🎓",
            "🧑‍🏫",
            "🧑🏻‍🏫",
            "🧑🏼‍🏫",
            "🧑🏽‍🏫",
            "🧑🏾‍🏫",
            "🧑🏿‍🏫",
            "👨‍🏫",
            "👨🏻‍🏫",
            "👨🏼‍🏫",
            "👨🏽‍🏫",
            "👨🏾‍🏫",
            "👨🏿‍🏫",
            "👩‍🏫",
            "👩🏻‍🏫",
            "👩🏼‍🏫",
            "👩🏽‍🏫",
            "👩🏾‍🏫",
            "👩🏿‍🏫",
            "🧑‍⚖️",
            "🧑🏻‍⚖️",
            "🧑🏼‍⚖️",
            "🧑🏽‍⚖️",
            "🧑🏾‍⚖️",
            "🧑🏿‍⚖️",
            "👨‍⚖️",
            "👨🏻‍⚖️",
            "👨🏼‍⚖️",
            "👨🏽‍⚖️",
            "👨🏾‍⚖️",
            "👨🏿‍⚖️",
            "👩‍⚖️",
            "👩🏻‍⚖️",
            "👩🏼‍⚖️",
            "👩🏽‍⚖️",
            "👩🏾‍⚖️",
            "👩🏿‍⚖️",
            "🧑‍🌾",
            "🧑🏻‍🌾",
            "🧑🏼‍🌾",
            "🧑🏽‍🌾",
            "🧑🏾‍🌾",
            "🧑🏿‍🌾",
            "👨‍🌾",
            "👨🏻‍🌾",
            "👨🏼‍🌾",
            "👨🏽‍🌾",
            "👨🏾‍🌾",
            "👨🏿‍🌾",
            "👩‍🌾",
            "👩🏻‍🌾",
            "👩🏼‍🌾",
            "👩🏽‍🌾",
            "👩🏾‍🌾",
            "👩🏿‍🌾",
            "🧑‍🍳",
            "🧑🏻‍🍳",
            "🧑🏼‍🍳",
            "🧑🏽‍🍳",
            "🧑🏾‍🍳",
            "🧑🏿‍🍳",
            "👨‍🍳",
            "👨🏻‍🍳",
            "👨🏼‍🍳",
            "👨🏽‍🍳",
            "👨🏾‍🍳",
            "👨🏿‍🍳",
            "👩‍🍳",
            "👩🏻‍🍳",
            "👩🏼‍🍳",
            "👩🏽‍🍳",
            "👩🏾‍🍳",
            "👩🏿‍🍳",
            "🧑‍🔧",
            "🧑🏻‍🔧",
            "🧑🏼‍🔧",
            "🧑🏽‍🔧",
            "🧑🏾‍🔧",
            "🧑🏿‍🔧",
            "👨‍🔧",
            "👨🏻‍🔧",
            "👨🏼‍🔧",
            "👨🏽‍🔧",
            "👨🏾‍🔧",
            "👨🏿‍🔧",
            "👩‍🔧",
            "👩🏻‍🔧",
            "👩🏼‍🔧",
            "👩🏽‍🔧",
            "👩🏾‍🔧",
            "👩🏿‍🔧",
            "🧑‍🏭",
            "🧑🏻‍🏭",
            "🧑🏼‍🏭",
            "🧑🏽‍🏭",
            "🧑🏾‍🏭",
            "🧑🏿‍🏭",
            "👨‍🏭",
            "👨🏻‍🏭",
            "👨🏼‍🏭",
            "👨🏽‍🏭",
            "👨🏾‍🏭",
            "👨🏿‍🏭",
            "👩‍🏭",
            "👩🏻‍🏭",
            "👩🏼‍🏭",
            "👩🏽‍🏭",
            "👩🏾‍🏭",
            "👩🏿‍🏭",
            "🧑‍💼",
            "🧑🏻‍💼",
            "🧑🏼‍💼",
            "🧑🏽‍💼",
            "🧑🏾‍💼",
            "🧑🏿‍💼",
            "👨‍💼",
            "👨🏻‍💼",
            "👨🏼‍💼",
            "👨🏽‍💼",
            "👨🏾‍💼",
            "👨🏿‍💼",
            "👩‍💼",
            "👩🏻‍💼",
            "👩🏼‍💼",
            "👩🏽‍💼",
            "👩🏾‍💼",
            "👩🏿‍💼",
            "🧑‍🔬",
            "🧑🏻‍🔬",
            "🧑🏼‍🔬",
            "🧑🏽‍🔬",
            "🧑🏾‍🔬",
            "🧑🏿‍🔬",
            "👨‍🔬",
            "👨🏻‍🔬",
            "👨🏼‍🔬",
            "👨🏽‍🔬",
            "👨🏾‍🔬",
            "👨🏿‍🔬",
            "👩‍🔬",
            "👩🏻‍🔬",
            "👩🏼‍🔬",
            "👩🏽‍🔬",
            "👩🏾‍🔬",
            "👩🏿‍🔬",
            "🧑‍💻",
            "🧑🏻‍💻",
            "🧑🏼‍💻",
            "🧑🏽‍💻",
            "🧑🏾‍💻",
            "🧑🏿‍💻",
            "👨‍💻",
            "👨🏻‍💻",
            "👨🏼‍💻",
            "👨🏽‍💻",
            "👨🏾‍💻",
            "👨🏿‍💻",
            "👩‍💻",
            "👩🏻‍💻",
            "👩🏼‍💻",
            "👩🏽‍💻",
            "👩🏾‍💻",
            "👩🏿‍💻",
            "🧑‍🎤",
            "🧑🏻‍🎤",
            "🧑🏼‍🎤",
            "🧑🏽‍🎤",
            "🧑🏾‍🎤",
            "🧑🏿‍🎤",
            "👨‍🎤",
            "👨🏻‍🎤",
            "👨🏼‍🎤",
            "👨🏽‍🎤",
            "👨🏾‍🎤",
            "👨🏿‍🎤",
            "👩‍🎤",
            "👩🏻‍🎤",
            "👩🏼‍🎤",
            "👩🏽‍🎤",
            "👩🏾‍🎤",
            "👩🏿‍🎤",
            "🧑‍🎨",
            "🧑🏻‍🎨",
            "🧑🏼‍🎨",
            "🧑🏽‍🎨",
            "🧑🏾‍🎨",
            "🧑🏿‍🎨",
            "👨‍🎨",
            "👨🏻‍🎨",
            "👨🏼‍🎨",
            "👨🏽‍🎨",
            "👨🏾‍🎨",
            "👨🏿‍🎨",
            "👩‍🎨",
            "👩🏻‍🎨",
            "👩🏼‍🎨",
            "👩🏽‍🎨",
            "👩🏾‍🎨",
            "👩🏿‍🎨",
            "🧑‍✈️",
            "🧑🏻‍✈️",
            "🧑🏼‍✈️",
            "🧑🏽‍✈️",
            "🧑🏾‍✈️",
            "🧑🏿‍✈️",
            "👨‍✈️",
            "👨🏻‍✈️",
            "👨🏼‍✈️",
            "👨🏽‍✈️",
            "👨🏾‍✈️",
            "👨🏿‍✈️",
            "👩‍✈️",
            "👩🏻‍✈️",
            "👩🏼‍✈️",
            "👩🏽‍✈️",
            "👩🏾‍✈️",
            "👩🏿‍✈️",
            "🧑‍🚀",
            "🧑🏻‍🚀",
            "🧑🏼‍🚀",
            "🧑🏽‍🚀",
            "🧑🏾‍🚀",
            "🧑🏿‍🚀",
            "👨‍🚀",
            "👨🏻‍🚀",
            "👨🏼‍🚀",
            "👨🏽‍🚀",
            "👨🏾‍🚀",
            "👨🏿‍🚀",
            "👩‍🚀",
            "👩🏻‍🚀",
            "👩🏼‍🚀",
            "👩🏽‍🚀",
            "👩🏾‍🚀",
            "👩🏿‍🚀",
            "🧑‍🚒",
            "🧑🏻‍🚒",
            "🧑🏼‍🚒",
            "🧑🏽‍🚒",
            "🧑🏾‍🚒",
            "🧑🏿‍🚒",
            "👨‍🚒",
            "👨🏻‍🚒",
            "👨🏼‍🚒",
            "👨🏽‍🚒",
            "👨🏾‍🚒",
            "👨🏿‍🚒",
            "👩‍🚒",
            "👩🏻‍🚒",
            "👩🏼‍🚒",
            "👩🏽‍🚒",
            "👩🏾‍🚒",
            "👩🏿‍🚒",
            "👮",
            "👮🏻",
            "👮🏼",
            "👮🏽",
            "👮🏾",
            "👮🏿",
            "👮‍♂️",
            "👮🏻‍♂️",
            "👮🏼‍♂️",
            "👮🏽‍♂️",
            "👮🏾‍♂️",
            "👮🏿‍♂️",
            "👮‍♀️",
            "👮🏻‍♀️",
            "👮🏼‍♀️",
            "👮🏽‍♀️",
            "👮🏾‍♀️",
            "👮🏿‍♀️",
            "🕵️",
            "🕵🏻",
            "🕵🏼",
            "🕵🏽",
            "🕵🏾",
            "🕵🏿",
            "🕵️‍♂️",
            "🕵🏻‍♂️",
            "🕵🏼‍♂️",
            "🕵🏽‍♂️",
            "🕵🏾‍♂️",
            "🕵🏿‍♂️",
            "🕵️‍♀️",
            "🕵🏻‍♀️",
            "🕵🏼‍♀️",
            "🕵🏽‍♀️",
            "🕵🏾‍♀️",
            "🕵🏿‍♀️",
            "💂",
            "💂🏻",
            "💂🏼",
            "💂🏽",
            "💂🏾",
            "💂🏿",
            "💂‍♂️",
            "💂🏻‍♂️",
            "💂🏼‍♂️",
            "💂🏽‍♂️",
            "💂🏾‍♂️",
            "💂🏿‍♂️",
            "💂‍♀️",
            "💂🏻‍♀️",
            "💂🏼‍♀️",
            "💂🏽‍♀️",
            "💂🏾‍♀️",
            "💂🏿‍♀️",
            "🥷",
            "🥷🏻",
            "🥷🏼",
            "🥷🏽",
            "🥷🏾",
            "🥷🏿",
            "👷",
            "👷🏻",
            "👷🏼",
            "👷🏽",
            "👷🏾",
            "👷🏿",
            "👷‍♂️",
            "👷🏻‍♂️",
            "👷🏼‍♂️",
            "👷🏽‍♂️",
            "👷🏾‍♂️",
            "👷🏿‍♂️",
            "👷‍♀️",
            "👷🏻‍♀️",
            "👷🏼‍♀️",
            "👷🏽‍♀️",
            "👷🏾‍♀️",
            "👷🏿‍♀️",
            "🤴",
            "🤴🏻",
            "🤴🏼",
            "🤴🏽",
            "🤴🏾",
            "🤴🏿",
            "👸",
            "👸🏻",
            "👸🏼",
            "👸🏽",
            "👸🏾",
            "👸🏿",
            "👳",
            "👳🏻",
            "👳🏼",
            "👳🏽",
            "👳🏾",
            "👳🏿",
            "👳‍♂️",
            "👳🏻‍♂️",
            "👳🏼‍♂️",
            "👳🏽‍♂️",
            "👳🏾‍♂️",
            "👳🏿‍♂️",
            "👳‍♀️",
            "👳🏻‍♀️",
            "👳🏼‍♀️",
            "👳🏽‍♀️",
            "👳🏾‍♀️",
            "👳🏿‍♀️",
            "👲",
            "👲🏻",
            "👲🏼",
            "👲🏽",
            "👲🏾",
            "👲🏿",
            "🧕",
            "🧕🏻",
            "🧕🏼",
            "🧕🏽",
            "🧕🏾",
            "🧕🏿",
            "🤵",
            "🤵🏻",
            "🤵🏼",
            "🤵🏽",
            "🤵🏾",
            "🤵🏿",
            "🤵‍♂️",
            "🤵🏻‍♂️",
            "🤵🏼‍♂️",
            "🤵🏽‍♂️",
            "🤵🏾‍♂️",
            "🤵🏿‍♂️",
            "🤵‍♀️",
            "🤵🏻‍♀️",
            "🤵🏼‍♀️",
            "🤵🏽‍♀️",
            "🤵🏾‍♀️",
            "🤵🏿‍♀️",
            "👰",
            "👰🏻",
            "👰🏼",
            "👰🏽",
            "👰🏾",
            "👰🏿",
            "👰‍♂️",
            "👰🏻‍♂️",
            "👰🏼‍♂️",
            "👰🏽‍♂️",
            "👰🏾‍♂️",
            "👰🏿‍♂️",
            "👰‍♀️",
            "👰🏻‍♀️",
            "👰🏼‍♀️",
            "👰🏽‍♀️",
            "👰🏾‍♀️",
            "👰🏿‍♀️",
            "🤰",
            "🤰🏻",
            "🤰🏼",
            "🤰🏽",
            "🤰🏾",
            "🤰🏿",
            "🤱",
            "🤱🏻",
            "🤱🏼",
            "🤱🏽",
            "🤱🏾",
            "🤱🏿",
            "👩‍🍼",
            "👩🏻‍🍼",
            "👩🏼‍🍼",
            "👩🏽‍🍼",
            "👩🏾‍🍼",
            "👩🏿‍🍼",
            "👨‍🍼",
            "👨🏻‍🍼",
            "👨🏼‍🍼",
            "👨🏽‍🍼",
            "👨🏾‍🍼",
            "👨🏿‍🍼",
            "🧑‍🍼",
            "🧑🏻‍🍼",
            "🧑🏼‍🍼",
            "🧑🏽‍🍼",
            "🧑🏾‍🍼",
            "🧑🏿‍🍼",
            "👼",
            "👼🏻",
            "👼🏼",
            "👼🏽",
            "👼🏾",
            "👼🏿",
            "🎅",
            "🎅🏻",
            "🎅🏼",
            "🎅🏽",
            "🎅🏾",
            "🎅🏿",
            "🤶",
            "🤶🏻",
            "🤶🏼",
            "🤶🏽",
            "🤶🏾",
            "🤶🏿",
            "🧑‍🎄",
            "🧑🏻‍🎄",
            "🧑🏼‍🎄",
            "🧑🏽‍🎄",
            "🧑🏾‍🎄",
            "🧑🏿‍🎄",
            "🦸",
            "🦸🏻",
            "🦸🏼",
            "🦸🏽",
            "🦸🏾",
            "🦸🏿",
            "🦸‍♂️",
            "🦸🏻‍♂️",
            "🦸🏼‍♂️",
            "🦸🏽‍♂️",
            "🦸🏾‍♂️",
            "🦸🏿‍♂️",
            "🦸‍♀️",
            "🦸🏻‍♀️",
            "🦸🏼‍♀️",
            "🦸🏽‍♀️",
            "🦸🏾‍♀️",
            "🦸🏿‍♀️",
            "🦹",
            "🦹🏻",
            "🦹🏼",
            "🦹🏽",
            "🦹🏾",
            "🦹🏿",
            "🦹‍♂️",
            "🦹🏻‍♂️",
            "🦹🏼‍♂️",
            "🦹🏽‍♂️",
            "🦹🏾‍♂️",
            "🦹🏿‍♂️",
            "🦹‍♀️",
            "🦹🏻‍♀️",
            "🦹🏼‍♀️",
            "🦹🏽‍♀️",
            "🦹🏾‍♀️",
            "🦹🏿‍♀️",
            "🧙",
            "🧙🏻",
            "🧙🏼",
            "🧙🏽",
            "🧙🏾",
            "🧙🏿",
            "🧙‍♂️",
            "🧙🏻‍♂️",
            "🧙🏼‍♂️",
            "🧙🏽‍♂️",
            "🧙🏾‍♂️",
            "🧙🏿‍♂️",
            "🧙‍♀️",
            "🧙🏻‍♀️",
            "🧙🏼‍♀️",
            "🧙🏽‍♀️",
            "🧙🏾‍♀️",
            "🧙🏿‍♀️",
            "🧚",
            "🧚🏻",
            "🧚🏼",
            "🧚🏽",
            "🧚🏾",
            "🧚🏿",
            "🧚‍♂️",
            "🧚🏻‍♂️",
            "🧚🏼‍♂️",
            "🧚🏽‍♂️",
            "🧚🏾‍♂️",
            "🧚🏿‍♂️",
            "🧚‍♀️",
            "🧚🏻‍♀️",
            "🧚🏼‍♀️",
            "🧚🏽‍♀️",
            "🧚🏾‍♀️",
            "🧚🏿‍♀️",
            "🧛",
            "🧛🏻",
            "🧛🏼",
            "🧛🏽",
            "🧛🏾",
            "🧛🏿",
            "🧛‍♂️",
            "🧛🏻‍♂️",
            "🧛🏼‍♂️",
            "🧛🏽‍♂️",
            "🧛🏾‍♂️",
            "🧛🏿‍♂️",
            "🧛‍♀️",
            "🧛🏻‍♀️",
            "🧛🏼‍♀️",
            "🧛🏽‍♀️",
            "🧛🏾‍♀️",
            "🧛🏿‍♀️",
            "🧜",
            "🧜🏻",
            "🧜🏼",
            "🧜🏽",
            "🧜🏾",
            "🧜🏿",
            "🧜‍♂️",
            "🧜🏻‍♂️",
            "🧜🏼‍♂️",
            "🧜🏽‍♂️",
            "🧜🏾‍♂️",
            "🧜🏿‍♂️",
            "🧜‍♀️",
            "🧜🏻‍♀️",
            "🧜🏼‍♀️",
            "🧜🏽‍♀️",
            "🧜🏾‍♀️",
            "🧜🏿‍♀️",
            "🧝",
            "🧝🏻",
            "🧝🏼",
            "🧝🏽",
            "🧝🏾",
            "🧝🏿",
            "🧝‍♂️",
            "🧝🏻‍♂️",
            "🧝🏼‍♂️",
            "🧝🏽‍♂️",
            "🧝🏾‍♂️",
            "🧝🏿‍♂️",
            "🧝‍♀️",
            "🧝🏻‍♀️",
            "🧝🏼‍♀️",
            "🧝🏽‍♀️",
            "🧝🏾‍♀️",
            "🧝🏿‍♀️",
            "🧞",
            "🧞‍♂️",
            "🧞‍♀️",
            "🧟",
            "🧟‍♂️",
            "🧟‍♀️",
            "💆",
            "💆🏻",
            "💆🏼",
            "💆🏽",
            "💆🏾",
            "💆🏿",
            "💆‍♂️",
            "💆🏻‍♂️",
            "💆🏼‍♂️",
            "💆🏽‍♂️",
            "💆🏾‍♂️",
            "💆🏿‍♂️",
            "💆‍♀️",
            "💆🏻‍♀️",
            "💆🏼‍♀️",
            "💆🏽‍♀️",
            "💆🏾‍♀️",
            "💆🏿‍♀️",
            "💇",
            "💇🏻",
            "💇🏼",
            "💇🏽",
            "💇🏾",
            "💇🏿",
            "💇‍♂️",
            "💇🏻‍♂️",
            "💇🏼‍♂️",
            "💇🏽‍♂️",
            "💇🏾‍♂️",
            "💇🏿‍♂️",
            "💇‍♀️",
            "💇🏻‍♀️",
            "💇🏼‍♀️",
            "💇🏽‍♀️",
            "💇🏾‍♀️",
            "💇🏿‍♀️",
            "🚶",
            "🚶🏻",
            "🚶🏼",
            "🚶🏽",
            "🚶🏾",
            "🚶🏿",
            "🚶‍♂️",
            "🚶🏻‍♂️",
            "🚶🏼‍♂️",
            "🚶🏽‍♂️",
            "🚶🏾‍♂️",
            "🚶🏿‍♂️",
            "🚶‍♀️",
            "🚶🏻‍♀️",
            "🚶🏼‍♀️",
            "🚶🏽‍♀️",
            "🚶🏾‍♀️",
            "🚶🏿‍♀️",
            "🧍",
            "🧍🏻",
            "🧍🏼",
            "🧍🏽",
            "🧍🏾",
            "🧍🏿",
            "🧍‍♂️",
            "🧍🏻‍♂️",
            "🧍🏼‍♂️",
            "🧍🏽‍♂️",
            "🧍🏾‍♂️",
            "🧍🏿‍♂️",
            "🧍‍♀️",
            "🧍🏻‍♀️",
            "🧍🏼‍♀️",
            "🧍🏽‍♀️",
            "🧍🏾‍♀️",
            "🧍🏿‍♀️",
            "🧎",
            "🧎🏻",
            "🧎🏼",
            "🧎🏽",
            "🧎🏾",
            "🧎🏿",
            "🧎‍♂️",
            "🧎🏻‍♂️",
            "🧎🏼‍♂️",
            "🧎🏽‍♂️",
            "🧎🏾‍♂️",
            "🧎🏿‍♂️",
            "🧎‍♀️",
            "🧎🏻‍♀️",
            "🧎🏼‍♀️",
            "🧎🏽‍♀️",
            "🧎🏾‍♀️",
            "🧎🏿‍♀️",
            "🧑‍🦯",
            "🧑🏻‍🦯",
            "🧑🏼‍🦯",
            "🧑🏽‍🦯",
            "🧑🏾‍🦯",
            "🧑🏿‍🦯",
            "👨‍🦯",
            "👨🏻‍🦯",
            "👨🏼‍🦯",
            "👨🏽‍🦯",
            "👨🏾‍🦯",
            "👨🏿‍🦯",
            "👩‍🦯",
            "👩🏻‍🦯",
            "👩🏼‍🦯",
            "👩🏽‍🦯",
            "👩🏾‍🦯",
            "👩🏿‍🦯",
            "🧑‍🦼",
            "🧑🏻‍🦼",
            "🧑🏼‍🦼",
            "🧑🏽‍🦼",
            "🧑🏾‍🦼",
            "🧑🏿‍🦼",
            "👨‍🦼",
            "👨🏻‍🦼",
            "👨🏼‍🦼",
            "👨🏽‍🦼",
            "👨🏾‍🦼",
            "👨🏿‍🦼",
            "👩‍🦼",
            "👩🏻‍🦼",
            "👩🏼‍🦼",
            "👩🏽‍🦼",
            "👩🏾‍🦼",
            "👩🏿‍🦼",
            "🧑‍🦽",
            "🧑🏻‍🦽",
            "🧑🏼‍🦽",
            "🧑🏽‍🦽",
            "🧑🏾‍🦽",
            "🧑🏿‍🦽",
            "👨‍🦽",
            "👨🏻‍🦽",
            "👨🏼‍🦽",
            "👨🏽‍🦽",
            "👨🏾‍🦽",
            "👨🏿‍🦽",
            "👩‍🦽",
            "👩🏻‍🦽",
            "👩🏼‍🦽",
            "👩🏽‍🦽",
            "👩🏾‍🦽",
            "👩🏿‍🦽",
            "🏃",
            "🏃🏻",
            "🏃🏼",
            "🏃🏽",
            "🏃🏾",
            "🏃🏿",
            "🏃‍♂️",
            "🏃🏻‍♂️",
            "🏃🏼‍♂️",
            "🏃🏽‍♂️",
            "🏃🏾‍♂️",
            "🏃🏿‍♂️",
            "🏃‍♀️",
            "🏃🏻‍♀️",
            "🏃🏼‍♀️",
            "🏃🏽‍♀️",
            "🏃🏾‍♀️",
            "🏃🏿‍♀️",
            "💃",
            "💃🏻",
            "💃🏼",
            "💃🏽",
            "💃🏾",
            "💃🏿",
            "🕺",
            "🕺🏻",
            "🕺🏼",
            "🕺🏽",
            "🕺🏾",
            "🕺🏿",
            "🕴️",
            "🕴🏻",
            "🕴🏼",
            "🕴🏽",
            "🕴🏾",
            "🕴🏿",
            "👯",
            "👯‍♂️",
            "👯‍♀️",
            "🧖",
            "🧖🏻",
            "🧖🏼",
            "🧖🏽",
            "🧖🏾",
            "🧖🏿",
            "🧖‍♂️",
            "🧖🏻‍♂️",
            "🧖🏼‍♂️",
            "🧖🏽‍♂️",
            "🧖🏾‍♂️",
            "🧖🏿‍♂️",
            "🧖‍♀️",
            "🧖🏻‍♀️",
            "🧖🏼‍♀️",
            "🧖🏽‍♀️",
            "🧖🏾‍♀️",
            "🧖🏿‍♀️",
            "🧗",
            "🧗🏻",
            "🧗🏼",
            "🧗🏽",
            "🧗🏾",
            "🧗🏿",
            "🧗‍♂️",
            "🧗🏻‍♂️",
            "🧗🏼‍♂️",
            "🧗🏽‍♂️",
            "🧗🏾‍♂️",
            "🧗🏿‍♂️",
            "🧗‍♀️",
            "🧗🏻‍♀️",
            "🧗🏼‍♀️",
            "🧗🏽‍♀️",
            "🧗🏾‍♀️",
            "🧗🏿‍♀️",
            "🤺",
            "🏇",
            "🏇🏻",
            "🏇🏼",
            "🏇🏽",
            "🏇🏾",
            "🏇🏿",
            "⛷️",
            "🏂",
            "🏂🏻",
            "🏂🏼",
            "🏂🏽",
            "🏂🏾",
            "🏂🏿",
            "🏌️",
            "🏌🏻",
            "🏌🏼",
            "🏌🏽",
            "🏌🏾",
            "🏌🏿",
            "🏌️‍♂️",
            "🏌🏻‍♂️",
            "🏌🏼‍♂️",
            "🏌🏽‍♂️",
            "🏌🏾‍♂️",
            "🏌🏿‍♂️",
            "🏌️‍♀️",
            "🏌🏻‍♀️",
            "🏌🏼‍♀️",
            "🏌🏽‍♀️",
            "🏌🏾‍♀️",
            "🏌🏿‍♀️",
            "🏄",
            "🏄🏻",
            "🏄🏼",
            "🏄🏽",
            "🏄🏾",
            "🏄🏿",
            "🏄‍♂️",
            "🏄🏻‍♂️",
            "🏄🏼‍♂️",
            "🏄🏽‍♂️",
            "🏄🏾‍♂️",
            "🏄🏿‍♂️",
            "🏄‍♀️",
            "🏄🏻‍♀️",
            "🏄🏼‍♀️",
            "🏄🏽‍♀️",
            "🏄🏾‍♀️",
            "🏄🏿‍♀️",
            "🚣",
            "🚣🏻",
            "🚣🏼",
            "🚣🏽",
            "🚣🏾",
            "🚣🏿",
            "🚣‍♂️",
            "🚣🏻‍♂️",
            "🚣🏼‍♂️",
            "🚣🏽‍♂️",
            "🚣🏾‍♂️",
            "🚣🏿‍♂️",
            "🚣‍♀️",
            "🚣🏻‍♀️",
            "🚣🏼‍♀️",
            "🚣🏽‍♀️",
            "🚣🏾‍♀️",
            "🚣🏿‍♀️",
            "🏊",
            "🏊🏻",
            "🏊🏼",
            "🏊🏽",
            "🏊🏾",
            "🏊🏿",
            "🏊‍♂️",
            "🏊🏻‍♂️",
            "🏊🏼‍♂️",
            "🏊🏽‍♂️",
            "🏊🏾‍♂️",
            "🏊🏿‍♂️",
            "🏊‍♀️",
            "🏊🏻‍♀️",
            "🏊🏼‍♀️",
            "🏊🏽‍♀️",
            "🏊🏾‍♀️",
            "🏊🏿‍♀️",
            "⛹️",
            "⛹🏻",
            "⛹🏼",
            "⛹🏽",
            "⛹🏾",
            "⛹🏿",
            "⛹️‍♂️",
            "⛹🏻‍♂️",
            "⛹🏼‍♂️",
            "⛹🏽‍♂️",
            "⛹🏾‍♂️",
            "⛹🏿‍♂️",
            "⛹️‍♀️",
            "⛹🏻‍♀️",
            "⛹🏼‍♀️",
            "⛹🏽‍♀️",
            "⛹🏾‍♀️",
            "⛹🏿‍♀️",
            "🏋️",
            "🏋🏻",
            "🏋🏼",
            "🏋🏽",
            "🏋🏾",
            "🏋🏿",
            "🏋️‍♂️",
            "🏋🏻‍♂️",
            "🏋🏼‍♂️",
            "🏋🏽‍♂️",
            "🏋🏾‍♂️",
            "🏋🏿‍♂️",
            "🏋️‍♀️",
            "🏋🏻‍♀️",
            "🏋🏼‍♀️",
            "🏋🏽‍♀️",
            "🏋🏾‍♀️",
            "🏋🏿‍♀️",
            "🚴",
            "🚴🏻",
            "🚴🏼",
            "🚴🏽",
            "🚴🏾",
            "🚴🏿",
            "🚴‍♂️",
            "🚴🏻‍♂️",
            "🚴🏼‍♂️",
            "🚴🏽‍♂️",
            "🚴🏾‍♂️",
            "🚴🏿‍♂️",
            "🚴‍♀️",
            "🚴🏻‍♀️",
            "🚴🏼‍♀️",
            "🚴🏽‍♀️",
            "🚴🏾‍♀️",
            "🚴🏿‍♀️",
            "🚵",
            "🚵🏻",
            "🚵🏼",
            "🚵🏽",
            "🚵🏾",
            "🚵🏿",
            "🚵‍♂️",
            "🚵🏻‍♂️",
            "🚵🏼‍♂️",
            "🚵🏽‍♂️",
            "🚵🏾‍♂️",
            "🚵🏿‍♂️",
            "🚵‍♀️",
            "🚵🏻‍♀️",
            "🚵🏼‍♀️",
            "🚵🏽‍♀️",
            "🚵🏾‍♀️",
            "🚵🏿‍♀️",
            "🤸",
            "🤸🏻",
            "🤸🏼",
            "🤸🏽",
            "🤸🏾",
            "🤸🏿",
            "🤸‍♂️",
            "🤸🏻‍♂️",
            "🤸🏼‍♂️",
            "🤸🏽‍♂️",
            "🤸🏾‍♂️",
            "🤸🏿‍♂️",
            "🤸‍♀️",
            "🤸🏻‍♀️",
            "🤸🏼‍♀️",
            "🤸🏽‍♀️",
            "🤸🏾‍♀️",
            "🤸🏿‍♀️",
            "🤼",
            "🤼‍♂️",
            "🤼‍♀️",
            "🤽",
            "🤽🏻",
            "🤽🏼",
            "🤽🏽",
            "🤽🏾",
            "🤽🏿",
            "🤽‍♂️",
            "🤽🏻‍♂️",
            "🤽🏼‍♂️",
            "🤽🏽‍♂️",
            "🤽🏾‍♂️",
            "🤽🏿‍♂️",
            "🤽‍♀️",
            "🤽🏻‍♀️",
            "🤽🏼‍♀️",
            "🤽🏽‍♀️",
            "🤽🏾‍♀️",
            "🤽🏿‍♀️",
            "🤾",
            "🤾🏻",
            "🤾🏼",
            "🤾🏽",
            "🤾🏾",
            "🤾🏿",
            "🤾‍♂️",
            "🤾🏻‍♂️",
            "🤾🏼‍♂️",
            "🤾🏽‍♂️",
            "🤾🏾‍♂️",
            "🤾🏿‍♂️",
            "🤾‍♀️",
            "🤾🏻‍♀️",
            "🤾🏼‍♀️",
            "🤾🏽‍♀️",
            "🤾🏾‍♀️",
            "🤾🏿‍♀️",
            "🤹",
            "🤹🏻",
            "🤹🏼",
            "🤹🏽",
            "🤹🏾",
            "🤹🏿",
            "🤹‍♂️",
            "🤹🏻‍♂️",
            "🤹🏼‍♂️",
            "🤹🏽‍♂️",
            "🤹🏾‍♂️",
            "🤹🏿‍♂️",
            "🤹‍♀️",
            "🤹🏻‍♀️",
            "🤹🏼‍♀️",
            "🤹🏽‍♀️",
            "🤹🏾‍♀️",
            "🤹🏿‍♀️",
            "🧘",
            "🧘🏻",
            "🧘🏼",
            "🧘🏽",
            "🧘🏾",
            "🧘🏿",
            "🧘‍♂️",
            "🧘🏻‍♂️",
            "🧘🏼‍♂️",
            "🧘🏽‍♂️",
            "🧘🏾‍♂️",
            "🧘🏿‍♂️",
            "🧘‍♀️",
            "🧘🏻‍♀️",
            "🧘🏼‍♀️",
            "🧘🏽‍♀️",
            "🧘🏾‍♀️",
            "🧘🏿‍♀️",
            "🛀",
            "🛀🏻",
            "🛀🏼",
            "🛀🏽",
            "🛀🏾",
            "🛀🏿",
            "🛌",
            "🛌🏻",
            "🛌🏼",
            "🛌🏽",
            "🛌🏾",
            "🛌🏿",
            "🧑‍🤝‍🧑",
            "🧑🏻‍🤝‍🧑🏻",
            "🧑🏻‍🤝‍🧑🏼",
            "🧑🏻‍🤝‍🧑🏽",
            "🧑🏻‍🤝‍🧑🏾",
            "🧑🏻‍🤝‍🧑🏿",
            "🧑🏼‍🤝‍🧑🏻",
            "🧑🏼‍🤝‍🧑🏼",
            "🧑🏼‍🤝‍🧑🏽",
            "🧑🏼‍🤝‍🧑🏾",
            "🧑🏼‍🤝‍🧑🏿",
            "🧑🏽‍🤝‍🧑🏻",
            "🧑🏽‍🤝‍🧑🏼",
            "🧑🏽‍🤝‍🧑🏽",
            "🧑🏽‍🤝‍🧑🏾",
            "🧑🏽‍🤝‍🧑🏿",
            "🧑🏾‍🤝‍🧑🏻",
            "🧑🏾‍🤝‍🧑🏼",
            "🧑🏾‍🤝‍🧑🏽",
            "🧑🏾‍🤝‍🧑🏾",
            "🧑🏾‍🤝‍🧑🏿",
            "🧑🏿‍🤝‍🧑🏻",
            "🧑🏿‍🤝‍🧑🏼",
            "🧑🏿‍🤝‍🧑🏽",
            "🧑🏿‍🤝‍🧑🏾",
            "🧑🏿‍🤝‍🧑🏿",
            "👭",
            "👭🏻",
            "👩🏻‍🤝‍👩🏼",
            "👩🏻‍🤝‍👩🏽",
            "👩🏻‍🤝‍👩🏾",
            "👩🏻‍🤝‍👩🏿",
            "👩🏼‍🤝‍👩🏻",
            "👭🏼",
            "👩🏼‍🤝‍👩🏽",
            "👩🏼‍🤝‍👩🏾",
            "👩🏼‍🤝‍👩🏿",
            "👩🏽‍🤝‍👩🏻",
            "👩🏽‍🤝‍👩🏼",
            "👭🏽",
            "👩🏽‍🤝‍👩🏾",
            "👩🏽‍🤝‍👩🏿",
            "👩🏾‍🤝‍👩🏻",
            "👩🏾‍🤝‍👩🏼",
            "👩🏾‍🤝‍👩🏽",
            "👭🏾",
            "👩🏾‍🤝‍👩🏿",
            "👩🏿‍🤝‍👩🏻",
            "👩🏿‍🤝‍👩🏼",
            "👩🏿‍🤝‍👩🏽",
            "👩🏿‍🤝‍👩🏾",
            "👭🏿",
            "👫",
            "👫🏻",
            "👩🏻‍🤝‍👨🏼",
            "👩🏻‍🤝‍👨🏽",
            "👩🏻‍🤝‍👨🏾",
            "👩🏻‍🤝‍👨🏿",
            "👩🏼‍🤝‍👨🏻",
            "👫🏼",
            "👩🏼‍🤝‍👨🏽",
            "👩🏼‍🤝‍👨🏾",
            "👩🏼‍🤝‍👨🏿",
            "👩🏽‍🤝‍👨🏻",
            "👩🏽‍🤝‍👨🏼",
            "👫🏽",
            "👩🏽‍🤝‍👨🏾",
            "👩🏽‍🤝‍👨🏿",
            "👩🏾‍🤝‍👨🏻",
            "👩🏾‍🤝‍👨🏼",
            "👩🏾‍🤝‍👨🏽",
            "👫🏾",
            "👩🏾‍🤝‍👨🏿",
            "👩🏿‍🤝‍👨🏻",
            "👩🏿‍🤝‍👨🏼",
            "👩🏿‍🤝‍👨🏽",
            "👩🏿‍🤝‍👨🏾",
            "👫🏿",
            "👬",
            "👬🏻",
            "👨🏻‍🤝‍👨🏼",
            "👨🏻‍🤝‍👨🏽",
            "👨🏻‍🤝‍👨🏾",
            "👨🏻‍🤝‍👨🏿",
            "👨🏼‍🤝‍👨🏻",
            "👬🏼",
            "👨🏼‍🤝‍👨🏽",
            "👨🏼‍🤝‍👨🏾",
            "👨🏼‍🤝‍👨🏿",
            "👨🏽‍🤝‍👨🏻",
            "👨🏽‍🤝‍👨🏼",
            "👬🏽",
            "👨🏽‍🤝‍👨🏾",
            "👨🏽‍🤝‍👨🏿",
            "👨🏾‍🤝‍👨🏻",
            "👨🏾‍🤝‍👨🏼",
            "👨🏾‍🤝‍👨🏽",
            "👬🏾",
            "👨🏾‍🤝‍👨🏿",
            "👨🏿‍🤝‍👨🏻",
            "👨🏿‍🤝‍👨🏼",
            "👨🏿‍🤝‍👨🏽",
            "👨🏿‍🤝‍👨🏾",
            "👬🏿",
            "💏",
            "💏🏻",
            "💏🏼",
            "💏🏽",
            "💏🏾",
            "💏🏿",
            "🧑🏻‍❤️‍💋‍🧑🏼",
            "🧑🏻‍❤️‍💋‍🧑🏽",
            "🧑🏻‍❤️‍💋‍🧑🏾",
            "🧑🏻‍❤️‍💋‍🧑🏿",
            "🧑🏼‍❤️‍💋‍🧑🏻",
            "🧑🏼‍❤️‍💋‍🧑🏽",
            "🧑🏼‍❤️‍💋‍🧑🏾",
            "🧑🏼‍❤️‍💋‍🧑🏿",
            "🧑🏽‍❤️‍💋‍🧑🏻",
            "🧑🏽‍❤️‍💋‍🧑🏼",
            "🧑🏽‍❤️‍💋‍🧑🏾",
            "🧑🏽‍❤️‍💋‍🧑🏿",
            "🧑🏾‍❤️‍💋‍🧑🏻",
            "🧑🏾‍❤️‍💋‍🧑🏼",
            "🧑🏾‍❤️‍💋‍🧑🏽",
            "🧑🏾‍❤️‍💋‍🧑🏿",
            "🧑🏿‍❤️‍💋‍🧑🏻",
            "🧑🏿‍❤️‍💋‍🧑🏼",
            "🧑🏿‍❤️‍💋‍🧑🏽",
            "🧑🏿‍❤️‍💋‍🧑🏾",
            "👩‍❤️‍💋‍👨",
            "👩🏻‍❤️‍💋‍👨🏻",
            "👩🏻‍❤️‍💋‍👨🏼",
            "👩🏻‍❤️‍💋‍👨🏽",
            "👩🏻‍❤️‍💋‍👨🏾",
            "👩🏻‍❤️‍💋‍👨🏿",
            "👩🏼‍❤️‍💋‍👨🏻",
            "👩🏼‍❤️‍💋‍👨🏼",
            "👩🏼‍❤️‍💋‍👨🏽",
            "👩🏼‍❤️‍💋‍👨🏾",
            "👩🏼‍❤️‍💋‍👨🏿",
            "👩🏽‍❤️‍💋‍👨🏻",
            "👩🏽‍❤️‍💋‍👨🏼",
            "👩🏽‍❤️‍💋‍👨🏽",
            "👩🏽‍❤️‍💋‍👨🏾",
            "👩🏽‍❤️‍💋‍👨🏿",
            "👩🏾‍❤️‍💋‍👨🏻",
            "👩🏾‍❤️‍💋‍👨🏼",
            "👩🏾‍❤️‍💋‍👨🏽",
            "👩🏾‍❤️‍💋‍👨🏾",
            "👩🏾‍❤️‍💋‍👨🏿",
            "👩🏿‍❤️‍💋‍👨🏻",
            "👩🏿‍❤️‍💋‍👨🏼",
            "👩🏿‍❤️‍💋‍👨🏽",
            "👩🏿‍❤️‍💋‍👨🏾",
            "👩🏿‍❤️‍💋‍👨🏿",
            "👨‍❤️‍💋‍👨",
            "👨🏻‍❤️‍💋‍👨🏻",
            "👨🏻‍❤️‍💋‍👨🏼",
            "👨🏻‍❤️‍💋‍👨🏽",
            "👨🏻‍❤️‍💋‍👨🏾",
            "👨🏻‍❤️‍💋‍👨🏿",
            "👨🏼‍❤️‍💋‍👨🏻",
            "👨🏼‍❤️‍💋‍👨🏼",
            "👨🏼‍❤️‍💋‍👨🏽",
            "👨🏼‍❤️‍💋‍👨🏾",
            "👨🏼‍❤️‍💋‍👨🏿",
            "👨🏽‍❤️‍💋‍👨🏻",
            "👨🏽‍❤️‍💋‍👨🏼",
            "👨🏽‍❤️‍💋‍👨🏽",
            "👨🏽‍❤️‍💋‍👨🏾",
            "👨🏽‍❤️‍💋‍👨🏿",
            "👨🏾‍❤️‍💋‍👨🏻",
            "👨🏾‍❤️‍💋‍👨🏼",
            "👨🏾‍❤️‍💋‍👨🏽",
            "👨🏾‍❤️‍💋‍👨🏾",
            "👨🏾‍❤️‍💋‍👨🏿",
            "👨🏿‍❤️‍💋‍👨🏻",
            "👨🏿‍❤️‍💋‍👨🏼",
            "👨🏿‍❤️‍💋‍👨🏽",
            "👨🏿‍❤️‍💋‍👨🏾",
            "👨🏿‍❤️‍💋‍👨🏿",
            "👩‍❤️‍💋‍👩",
            "👩🏻‍❤️‍💋‍👩🏻",
            "👩🏻‍❤️‍💋‍👩🏼",
            "👩🏻‍❤️‍💋‍👩🏽",
            "👩🏻‍❤️‍💋‍👩🏾",
            "👩🏻‍❤️‍💋‍👩🏿",
            "👩🏼‍❤️‍💋‍👩🏻",
            "👩🏼‍❤️‍💋‍👩🏼",
            "👩🏼‍❤️‍💋‍👩🏽",
            "👩🏼‍❤️‍💋‍👩🏾",
            "👩🏼‍❤️‍💋‍👩🏿",
            "👩🏽‍❤️‍💋‍👩🏻",
            "👩🏽‍❤️‍💋‍👩🏼",
            "👩🏽‍❤️‍💋‍👩🏽",
            "👩🏽‍❤️‍💋‍👩🏾",
            "👩🏽‍❤️‍💋‍👩🏿",
            "👩🏾‍❤️‍💋‍👩🏻",
            "👩🏾‍❤️‍💋‍👩🏼",
            "👩🏾‍❤️‍💋‍👩🏽",
            "👩🏾‍❤️‍💋‍👩🏾",
            "👩🏾‍❤️‍💋‍👩🏿",
            "👩🏿‍❤️‍💋‍👩🏻",
            "👩🏿‍❤️‍💋‍👩🏼",
            "👩🏿‍❤️‍💋‍👩🏽",
            "👩🏿‍❤️‍💋‍👩🏾",
            "👩🏿‍❤️‍💋‍👩🏿",
            "💑",
            "💑🏻",
            "💑🏼",
            "💑🏽",
            "💑🏾",
            "💑🏿",
            "🧑🏻‍❤️‍🧑🏼",
            "🧑🏻‍❤️‍🧑🏽",
            "🧑🏻‍❤️‍🧑🏾",
            "🧑🏻‍❤️‍🧑🏿",
            "🧑🏼‍❤️‍🧑🏻",
            "🧑🏼‍❤️‍🧑🏽",
            "🧑🏼‍❤️‍🧑🏾",
            "🧑🏼‍❤️‍🧑🏿",
            "🧑🏽‍❤️‍🧑🏻",
            "🧑🏽‍❤️‍🧑🏼",
            "🧑🏽‍❤️‍🧑🏾",
            "🧑🏽‍❤️‍🧑🏿",
            "🧑🏾‍❤️‍🧑🏻",
            "🧑🏾‍❤️‍🧑🏼",
            "🧑🏾‍❤️‍🧑🏽",
            "🧑🏾‍❤️‍🧑🏿",
            "🧑🏿‍❤️‍🧑🏻",
            "🧑🏿‍❤️‍🧑🏼",
            "🧑🏿‍❤️‍🧑🏽",
            "🧑🏿‍❤️‍🧑🏾",
            "👩‍❤️‍👨",
            "👩🏻‍❤️‍👨🏻",
            "👩🏻‍❤️‍👨🏼",
            "👩🏻‍❤️‍👨🏽",
            "👩🏻‍❤️‍👨🏾",
            "👩🏻‍❤️‍👨🏿",
            "👩🏼‍❤️‍👨🏻",
            "👩🏼‍❤️‍👨🏼",
            "👩🏼‍❤️‍👨🏽",
            "👩🏼‍❤️‍👨🏾",
            "👩🏼‍❤️‍👨🏿",
            "👩🏽‍❤️‍👨🏻",
            "👩🏽‍❤️‍👨🏼",
            "👩🏽‍❤️‍👨🏽",
            "👩🏽‍❤️‍👨🏾",
            "👩🏽‍❤️‍👨🏿",
            "👩🏾‍❤️‍👨🏻",
            "👩🏾‍❤️‍👨🏼",
            "👩🏾‍❤️‍👨🏽",
            "👩🏾‍❤️‍👨🏾",
            "👩🏾‍❤️‍👨🏿",
            "👩🏿‍❤️‍👨🏻",
            "👩🏿‍❤️‍👨🏼",
            "👩🏿‍❤️‍👨🏽",
            "👩🏿‍❤️‍👨🏾",
            "👩🏿‍❤️‍👨🏿",
            "👨‍❤️‍👨",
            "👨🏻‍❤️‍👨🏻",
            "👨🏻‍❤️‍👨🏼",
            "👨🏻‍❤️‍👨🏽",
            "👨🏻‍❤️‍👨🏾",
            "👨🏻‍❤️‍👨🏿",
            "👨🏼‍❤️‍👨🏻",
            "👨🏼‍❤️‍👨🏼",
            "👨🏼‍❤️‍👨🏽",
            "👨🏼‍❤️‍👨🏾",
            "👨🏼‍❤️‍👨🏿",
            "👨🏽‍❤️‍👨🏻",
            "👨🏽‍❤️‍👨🏼",
            "👨🏽‍❤️‍👨🏽",
            "👨🏽‍❤️‍👨🏾",
            "👨🏽‍❤️‍👨🏿",
            "👨🏾‍❤️‍👨🏻",
            "👨🏾‍❤️‍👨🏼",
            "👨🏾‍❤️‍👨🏽",
            "👨🏾‍❤️‍👨🏾",
            "👨🏾‍❤️‍👨🏿",
            "👨🏿‍❤️‍👨🏻",
            "👨🏿‍❤️‍👨🏼",
            "👨🏿‍❤️‍👨🏽",
            "👨🏿‍❤️‍👨🏾",
            "👨🏿‍❤️‍👨🏿",
            "👩‍❤️‍👩",
            "👩🏻‍❤️‍👩🏻",
            "👩🏻‍❤️‍👩🏼",
            "👩🏻‍❤️‍👩🏽",
            "👩🏻‍❤️‍👩🏾",
            "👩🏻‍❤️‍👩🏿",
            "👩🏼‍❤️‍👩🏻",
            "👩🏼‍❤️‍👩🏼",
            "👩🏼‍❤️‍👩🏽",
            "👩🏼‍❤️‍👩🏾",
            "👩🏼‍❤️‍👩🏿",
            "👩🏽‍❤️‍👩🏻",
            "👩🏽‍❤️‍👩🏼",
            "👩🏽‍❤️‍👩🏽",
            "👩🏽‍❤️‍👩🏾",
            "👩🏽‍❤️‍👩🏿",
            "👩🏾‍❤️‍👩🏻",
            "👩🏾‍❤️‍👩🏼",
            "👩🏾‍❤️‍👩🏽",
            "👩🏾‍❤️‍👩🏾",
            "👩🏾‍❤️‍👩🏿",
            "👩🏿‍❤️‍👩🏻",
            "👩🏿‍❤️‍👩🏼",
            "👩🏿‍❤️‍👩🏽",
            "👩🏿‍❤️‍👩🏾",
            "👩🏿‍❤️‍👩🏿",
            "👪",
            "👨‍👩‍👦",
            "👨‍👩‍👧",
            "👨‍👩‍👧‍👦",
            "👨‍👩‍👦‍👦",
            "👨‍👩‍👧‍👧",
            "👨‍👨‍👦",
            "👨‍👨‍👧",
            "👨‍👨‍👧‍👦",
            "👨‍👨‍👦‍👦",
            "👨‍👨‍👧‍👧",
            "👩‍👩‍👦",
            "👩‍👩‍👧",
            "👩‍👩‍👧‍👦",
            "👩‍👩‍👦‍👦",
            "👩‍👩‍👧‍👧",
            "👨‍👦",
            "👨‍👦‍👦",
            "👨‍👧",
            "👨‍👧‍👦",
            "👨‍👧‍👧",
            "👩‍👦",
            "👩‍👦‍👦",
            "👩‍👧",
            "👩‍👧‍👦",
            "👩‍👧‍👧",
            "🗣️",
            "👤",
            "👥",
            "🫂",
            "👣"
        ],
        nature: [
            "🐵",
            "🐒",
            "🦍",
            "🦧",
            "🐶",
            "🐕",
            "🦮",
            "🐕‍🦺",
            "🐩",
            "🐺",
            "🦊",
            "🦝",
            "🐱",
            "🐈",
            "🐈‍⬛",
            "🦁",
            "🐯",
            "🐅",
            "🐆",
            "🐴",
            "🐎",
            "🦄",
            "🦓",
            "🦌",
            "🦬",
            "🐮",
            "🐂",
            "🐃",
            "🐄",
            "🐷",
            "🐖",
            "🐗",
            "🐽",
            "🐏",
            "🐑",
            "🐐",
            "🐪",
            "🐫",
            "🦙",
            "🦒",
            "🐘",
            "🦣",
            "🦏",
            "🦛",
            "🐭",
            "🐁",
            "🐀",
            "🐹",
            "🐰",
            "🐇",
            "🐿️",
            "🦫",
            "🦔",
            "🦇",
            "🐻",
            "🐻‍❄️",
            "🐨",
            "🐼",
            "🦥",
            "🦦",
            "🦨",
            "🦘",
            "🦡",
            "🐾",
            "🦃",
            "🐔",
            "🐓",
            "🐣",
            "🐤",
            "🐥",
            "🐦",
            "🐧",
            "🕊️",
            "🦅",
            "🦆",
            "🦢",
            "🦉",
            "🦤",
            "🪶",
            "🦩",
            "🦚",
            "🦜",
            "🐸",
            "🐊",
            "🐢",
            "🦎",
            "🐍",
            "🐲",
            "🐉",
            "🦕",
            "🦖",
            "🐳",
            "🐋",
            "🐬",
            "🦭",
            "🐟",
            "🐠",
            "🐡",
            "🦈",
            "🐙",
            "🐚",
            "🐌",
            "🦋",
            "🐛",
            "🐜",
            "🐝",
            "🪲",
            "🐞",
            "🦗",
            "🪳",
            "🕷️",
            "🕸️",
            "🦂",
            "🦟",
            "🪰",
            "🪱",
            "🦠",
            "💐",
            "🌸",
            "💮",
            "🏵️",
            "🌹",
            "🥀",
            "🌺",
            "🌻",
            "🌼",
            "🌷",
            "🌱",
            "🪴",
            "🌲",
            "🌳",
            "🌴",
            "🌵",
            "🌾",
            "🌿",
            "☘️",
            "🍀",
            "🍁",
            "🍂",
            "🍃"
        ],
        food: [
            "🍇",
            "🍈",
            "🍉",
            "🍊",
            "🍋",
            "🍌",
            "🍍",
            "🥭",
            "🍎",
            "🍏",
            "🍐",
            "🍑",
            "🍒",
            "🍓",
            "🫐",
            "🥝",
            "🍅",
            "🫒",
            "🥥",
            "🥑",
            "🍆",
            "🥔",
            "🥕",
            "🌽",
            "🌶️",
            "🫑",
            "🥒",
            "🥬",
            "🥦",
            "🧄",
            "🧅",
            "🍄",
            "🥜",
            "🌰",
            "🍞",
            "🥐",
            "🥖",
            "🫓",
            "🥨",
            "🥯",
            "🥞",
            "🧇",
            "🧀",
            "🍖",
            "🍗",
            "🥩",
            "🥓",
            "🍔",
            "🍟",
            "🍕",
            "🌭",
            "🥪",
            "🌮",
            "🌯",
            "🫔",
            "🥙",
            "🧆",
            "🥚",
            "🍳",
            "🥘",
            "🍲",
            "🫕",
            "🥣",
            "🥗",
            "🍿",
            "🧈",
            "🧂",
            "🥫",
            "🍱",
            "🍘",
            "🍙",
            "🍚",
            "🍛",
            "🍜",
            "🍝",
            "🍠",
            "🍢",
            "🍣",
            "🍤",
            "🍥",
            "🥮",
            "🍡",
            "🥟",
            "🥠",
            "🥡",
            "🦀",
            "🦞",
            "🦐",
            "🦑",
            "🦪",
            "🍦",
            "🍧",
            "🍨",
            "🍩",
            "🍪",
            "🎂",
            "🍰",
            "🧁",
            "🥧",
            "🍫",
            "🍬",
            "🍭",
            "🍮",
            "🍯",
            "🍼",
            "🥛",
            "☕",
            "🫖",
            "🍵",
            "🍶",
            "🍾",
            "🍷",
            "🍸",
            "🍹",
            "🍺",
            "🍻",
            "🥂",
            "🥃",
            "🥤",
            "🧋",
            "🧃",
            "🧉",
            "🧊",
            "🥢",
            "🍽️",
            "🍴",
            "🥄",
            "🔪",
            "🏺"
        ],
        travel: [
            "🌍",
            "🌎",
            "🌏",
            "🌐",
            "🗺️",
            "🗾",
            "🧭",
            "🏔️",
            "⛰️",
            "🌋",
            "🗻",
            "🏕️",
            "🏖️",
            "🏜️",
            "🏝️",
            "🏞️",
            "🏟️",
            "🏛️",
            "🏗️",
            "🧱",
            "🪨",
            "🪵",
            "🛖",
            "🏘️",
            "🏚️",
            "🏠",
            "🏡",
            "🏢",
            "🏣",
            "🏤",
            "🏥",
            "🏦",
            "🏨",
            "🏩",
            "🏪",
            "🏫",
            "🏬",
            "🏭",
            "🏯",
            "🏰",
            "💒",
            "🗼",
            "🗽",
            "⛪",
            "🕌",
            "🛕",
            "🕍",
            "⛩️",
            "🕋",
            "⛲",
            "⛺",
            "🌁",
            "🌃",
            "🏙️",
            "🌄",
            "🌅",
            "🌆",
            "🌇",
            "🌉",
            "♨️",
            "🎠",
            "🎡",
            "🎢",
            "💈",
            "🎪",
            "🚂",
            "🚃",
            "🚄",
            "🚅",
            "🚆",
            "🚇",
            "🚈",
            "🚉",
            "🚊",
            "🚝",
            "🚞",
            "🚋",
            "🚌",
            "🚍",
            "🚎",
            "🚐",
            "🚑",
            "🚒",
            "🚓",
            "🚔",
            "🚕",
            "🚖",
            "🚗",
            "🚘",
            "🚙",
            "🛻",
            "🚚",
            "🚛",
            "🚜",
            "🏎️",
            "🏍️",
            "🛵",
            "🦽",
            "🦼",
            "🛺",
            "🚲",
            "🛴",
            "🛹",
            "🛼",
            "🚏",
            "🛣️",
            "🛤️",
            "🛢️",
            "⛽",
            "🚨",
            "🚥",
            "🚦",
            "🛑",
            "🚧",
            "⚓",
            "⛵",
            "🛶",
            "🚤",
            "🛳️",
            "⛴️",
            "🛥️",
            "🚢",
            "✈️",
            "🛩️",
            "🛫",
            "🛬",
            "🪂",
            "💺",
            "🚁",
            "🚟",
            "🚠",
            "🚡",
            "🛰️",
            "🚀",
            "🛸",
            "🛎️",
            "🧳",
            "⌛",
            "⏳",
            "⌚",
            "⏰",
            "⏱️",
            "⏲️",
            "🕰️",
            "🕛",
            "🕧",
            "🕐",
            "🕜",
            "🕑",
            "🕝",
            "🕒",
            "🕞",
            "🕓",
            "🕟",
            "🕔",
            "🕠",
            "🕕",
            "🕡",
            "🕖",
            "🕢",
            "🕗",
            "🕣",
            "🕘",
            "🕤",
            "🕙",
            "🕥",
            "🕚",
            "🕦",
            "🌑",
            "🌒",
            "🌓",
            "🌔",
            "🌕",
            "🌖",
            "🌗",
            "🌘",
            "🌙",
            "🌚",
            "🌛",
            "🌜",
            "🌡️",
            "☀️",
            "🌝",
            "🌞",
            "🪐",
            "⭐",
            "🌟",
            "🌠",
            "🌌",
            "☁️",
            "⛅",
            "⛈️",
            "🌤️",
            "🌥️",
            "🌦️",
            "🌧️",
            "🌨️",
            "🌩️",
            "🌪️",
            "🌫️",
            "🌬️",
            "🌀",
            "🌈",
            "🌂",
            "☂️",
            "☔",
            "⛱️",
            "⚡",
            "❄️",
            "☃️",
            "⛄",
            "☄️",
            "🔥",
            "💧",
            "🌊"
        ],
        activity: [
            "🎃",
            "🎄",
            "🎆",
            "🎇",
            "🧨",
            "✨",
            "🎈",
            "🎉",
            "🎊",
            "🎋",
            "🎍",
            "🎎",
            "🎏",
            "🎐",
            "🎑",
            "🧧",
            "🎀",
            "🎁",
            "🎗️",
            "🎟️",
            "🎫",
            "🎖️",
            "🏆",
            "🏅",
            "🥇",
            "🥈",
            "🥉",
            "⚽",
            "⚾",
            "🥎",
            "🏀",
            "🏐",
            "🏈",
            "🏉",
            "🎾",
            "🥏",
            "🎳",
            "🏏",
            "🏑",
            "🏒",
            "🥍",
            "🏓",
            "🏸",
            "🥊",
            "🥋",
            "🥅",
            "⛳",
            "⛸️",
            "🎣",
            "🤿",
            "🎽",
            "🎿",
            "🛷",
            "🥌",
            "🎯",
            "🪀",
            "🪁",
            "🎱",
            "🔮",
            "🪄",
            "🧿",
            "🎮",
            "🕹️",
            "🎰",
            "🎲",
            "🧩",
            "🧸",
            "🪅",
            "🪆",
            "♠️",
            "♥️",
            "♦️",
            "♣️",
            "♟️",
            "🃏",
            "🀄",
            "🎴",
            "🎭",
            "🖼️",
            "🎨",
            "🧵",
            "🪡",
            "🧶",
            "🪢"
        ],
        object: [
            "👓",
            "🕶️",
            "🥽",
            "🥼",
            "🦺",
            "👔",
            "👕",
            "👖",
            "🧣",
            "🧤",
            "🧥",
            "🧦",
            "👗",
            "👘",
            "🥻",
            "🩱",
            "🩲",
            "🩳",
            "👙",
            "👚",
            "👛",
            "👜",
            "👝",
            "🛍️",
            "🎒",
            "🩴",
            "👞",
            "👟",
            "🥾",
            "🥿",
            "👠",
            "👡",
            "🩰",
            "👢",
            "👑",
            "👒",
            "🎩",
            "🎓",
            "🧢",
            "🪖",
            "⛑️",
            "📿",
            "💄",
            "💍",
            "💎",
            "🔇",
            "🔈",
            "🔉",
            "🔊",
            "📢",
            "📣",
            "📯",
            "🔔",
            "🔕",
            "🎼",
            "🎵",
            "🎶",
            "🎙️",
            "🎚️",
            "🎛️",
            "🎤",
            "🎧",
            "📻",
            "🎷",
            "🪗",
            "🎸",
            "🎹",
            "🎺",
            "🎻",
            "🪕",
            "🥁",
            "🪘",
            "📱",
            "📲",
            "☎️",
            "📞",
            "📟",
            "📠",
            "🔋",
            "🔌",
            "💻",
            "🖥️",
            "🖨️",
            "⌨️",
            "🖱️",
            "🖲️",
            "💽",
            "💾",
            "💿",
            "📀",
            "🧮",
            "🎥",
            "🎞️",
            "📽️",
            "🎬",
            "📺",
            "📷",
            "📸",
            "📹",
            "📼",
            "🔍",
            "🔎",
            "🕯️",
            "💡",
            "🔦",
            "🏮",
            "🪔",
            "📔",
            "📕",
            "📖",
            "📗",
            "📘",
            "📙",
            "📚",
            "📓",
            "📒",
            "📃",
            "📜",
            "📄",
            "📰",
            "🗞️",
            "📑",
            "🔖",
            "🏷️",
            "💰",
            "🪙",
            "💴",
            "💵",
            "💶",
            "💷",
            "💸",
            "💳",
            "🧾",
            "💹",
            "✉️",
            "📧",
            "📨",
            "📩",
            "📤",
            "📥",
            "📦",
            "📫",
            "📪",
            "📬",
            "📭",
            "📮",
            "🗳️",
            "✏️",
            "✒️",
            "🖋️",
            "🖊️",
            "🖌️",
            "🖍️",
            "📝",
            "💼",
            "📁",
            "📂",
            "🗂️",
            "📅",
            "📆",
            "🗒️",
            "🗓️",
            "📇",
            "📈",
            "📉",
            "📊",
            "📋",
            "📌",
            "📍",
            "📎",
            "🖇️",
            "📏",
            "📐",
            "✂️",
            "🗃️",
            "🗄️",
            "🗑️",
            "🔒",
            "🔓",
            "🔏",
            "🔐",
            "🔑",
            "🗝️",
            "🔨",
            "🪓",
            "⛏️",
            "⚒️",
            "🛠️",
            "🗡️",
            "⚔️",
            "🔫",
            "🪃",
            "🏹",
            "🛡️",
            "🪚",
            "🔧",
            "🪛",
            "🔩",
            "⚙️",
            "🗜️",
            "⚖️",
            "🦯",
            "🔗",
            "⛓️",
            "🪝",
            "🧰",
            "🧲",
            "🪜",
            "⚗️",
            "🧪",
            "🧫",
            "🧬",
            "🔬",
            "🔭",
            "📡",
            "💉",
            "🩸",
            "💊",
            "🩹",
            "🩺",
            "🚪",
            "🛗",
            "🪞",
            "🪟",
            "🛏️",
            "🛋️",
            "🪑",
            "🚽",
            "🪠",
            "🚿",
            "🛁",
            "🪤",
            "🪒",
            "🧴",
            "🧷",
            "🧹",
            "🧺",
            "🧻",
            "🪣",
            "🧼",
            "🪥",
            "🧽",
            "🧯",
            "🛒",
            "🚬",
            "⚰️",
            "🪦",
            "⚱️",
            "🗿",
            "🪧"
        ],
        symbol: [
            "🏧",
            "🚮",
            "🚰",
            "♿",
            "🚹",
            "🚺",
            "🚻",
            "🚼",
            "🚾",
            "🛂",
            "🛃",
            "🛄",
            "🛅",
            "⚠️",
            "🚸",
            "⛔",
            "🚫",
            "🚳",
            "🚭",
            "🚯",
            "🚱",
            "🚷",
            "📵",
            "🔞",
            "☢️",
            "☣️",
            "⬆️",
            "↗️",
            "➡️",
            "↘️",
            "⬇️",
            "↙️",
            "⬅️",
            "↖️",
            "↕️",
            "↔️",
            "↩️",
            "↪️",
            "⤴️",
            "⤵️",
            "🔃",
            "🔄",
            "🔙",
            "🔚",
            "🔛",
            "🔜",
            "🔝",
            "🛐",
            "⚛️",
            "🕉️",
            "✡️",
            "☸️",
            "☯️",
            "✝️",
            "☦️",
            "☪️",
            "☮️",
            "🕎",
            "🔯",
            "♈",
            "♉",
            "♊",
            "♋",
            "♌",
            "♍",
            "♎",
            "♏",
            "♐",
            "♑",
            "♒",
            "♓",
            "⛎",
            "🔀",
            "🔁",
            "🔂",
            "▶️",
            "⏩",
            "⏭️",
            "⏯️",
            "◀️",
            "⏪",
            "⏮️",
            "🔼",
            "⏫",
            "🔽",
            "⏬",
            "⏸️",
            "⏹️",
            "⏺️",
            "⏏️",
            "🎦",
            "🔅",
            "🔆",
            "📶",
            "📳",
            "📴",
            "♀️",
            "♂️",
            "⚧️",
            "✖️",
            "➕",
            "➖",
            "➗",
            "♾️",
            "‼️",
            "⁉️",
            "❓",
            "❔",
            "❕",
            "❗",
            "〰️",
            "💱",
            "💲",
            "⚕️",
            "♻️",
            "⚜️",
            "🔱",
            "📛",
            "🔰",
            "⭕",
            "✅",
            "☑️",
            "✔️",
            "❌",
            "❎",
            "➰",
            "➿",
            "〽️",
            "✳️",
            "✴️",
            "❇️",
            "©️",
            "®️",
            "™️",
            "#️⃣",
            "*️⃣",
            "0️⃣",
            "1️⃣",
            "2️⃣",
            "3️⃣",
            "4️⃣",
            "5️⃣",
            "6️⃣",
            "7️⃣",
            "8️⃣",
            "9️⃣",
            "🔟",
            "🔠",
            "🔡",
            "🔢",
            "🔣",
            "🔤",
            "🅰️",
            "🆎",
            "🅱️",
            "🆑",
            "🆒",
            "🆓",
            "ℹ️",
            "🆔",
            "Ⓜ️",
            "🆕",
            "🆖",
            "🅾️",
            "🆗",
            "🅿️",
            "🆘",
            "🆙",
            "🆚",
            "🈁",
            "🈂️",
            "🈷️",
            "🈶",
            "🈯",
            "🉐",
            "🈹",
            "🈚",
            "🈲",
            "🉑",
            "🈸",
            "🈴",
            "🈳",
            "㊗️",
            "㊙️",
            "🈺",
            "🈵",
            "🔴",
            "🟠",
            "🟡",
            "🟢",
            "🔵",
            "🟣",
            "🟤",
            "⚫",
            "⚪",
            "🟥",
            "🟧",
            "🟨",
            "🟩",
            "🟦",
            "🟪",
            "🟫",
            "⬛",
            "⬜",
            "◼️",
            "◻️",
            "◾",
            "◽",
            "▪️",
            "▫️",
            "🔶",
            "🔷",
            "🔸",
            "🔹",
            "🔺",
            "🔻",
            "💠",
            "🔘",
            "🔳",
            "🔲"
        ],
        flag: [
            "🏁",
            "🚩",
            "🎌",
            "🏴",
            "🏳️",
            "🏳️‍🌈",
            "🏳️‍⚧️",
            "🏴‍☠️",
            "🇦🇨",
            "🇦🇩",
            "🇦🇪",
            "🇦🇫",
            "🇦🇬",
            "🇦🇮",
            "🇦🇱",
            "🇦🇲",
            "🇦🇴",
            "🇦🇶",
            "🇦🇷",
            "🇦🇸",
            "🇦🇹",
            "🇦🇺",
            "🇦🇼",
            "🇦🇽",
            "🇦🇿",
            "🇧🇦",
            "🇧🇧",
            "🇧🇩",
            "🇧🇪",
            "🇧🇫",
            "🇧🇬",
            "🇧🇭",
            "🇧🇮",
            "🇧🇯",
            "🇧🇱",
            "🇧🇲",
            "🇧🇳",
            "🇧🇴",
            "🇧🇶",
            "🇧🇷",
            "🇧🇸",
            "🇧🇹",
            "🇧🇻",
            "🇧🇼",
            "🇧🇾",
            "🇧🇿",
            "🇨🇦",
            "🇨🇨",
            "🇨🇩",
            "🇨🇫",
            "🇨🇬",
            "🇨🇭",
            "🇨🇮",
            "🇨🇰",
            "🇨🇱",
            "🇨🇲",
            "🇨🇳",
            "🇨🇴",
            "🇨🇵",
            "🇨🇷",
            "🇨🇺",
            "🇨🇻",
            "🇨🇼",
            "🇨🇽",
            "🇨🇾",
            "🇨🇿",
            "🇩🇪",
            "🇩🇬",
            "🇩🇯",
            "🇩🇰",
            "🇩🇲",
            "🇩🇴",
            "🇩🇿",
            "🇪🇦",
            "🇪🇨",
            "🇪🇪",
            "🇪🇬",
            "🇪🇭",
            "🇪🇷",
            "🇪🇸",
            "🇪🇹",
            "🇪🇺",
            "🇫🇮",
            "🇫🇯",
            "🇫🇰",
            "🇫🇲",
            "🇫🇴",
            "🇫🇷",
            "🇬🇦",
            "🇬🇧",
            "🇬🇩",
            "🇬🇪",
            "🇬🇫",
            "🇬🇬",
            "🇬🇭",
            "🇬🇮",
            "🇬🇱",
            "🇬🇲",
            "🇬🇳",
            "🇬🇵",
            "🇬🇶",
            "🇬🇷",
            "🇬🇸",
            "🇬🇹",
            "🇬🇺",
            "🇬🇼",
            "🇬🇾",
            "🇭🇰",
            "🇭🇲",
            "🇭🇳",
            "🇭🇷",
            "🇭🇹",
            "🇭🇺",
            "🇮🇨",
            "🇮🇩",
            "🇮🇪",
            "🇮🇱",
            "🇮🇲",
            "🇮🇳",
            "🇮🇴",
            "🇮🇶",
            "🇮🇷",
            "🇮🇸",
            "🇮🇹",
            "🇯🇪",
            "🇯🇲",
            "🇯🇴",
            "🇯🇵",
            "🇰🇪",
            "🇰🇬",
            "🇰🇭",
            "🇰🇮",
            "🇰🇲",
            "🇰🇳",
            "🇰🇵",
            "🇰🇷",
            "🇰🇼",
            "🇰🇾",
            "🇰🇿",
            "🇱🇦",
            "🇱🇧",
            "🇱🇨",
            "🇱🇮",
            "🇱🇰",
            "🇱🇷",
            "🇱🇸",
            "🇱🇹",
            "🇱🇺",
            "🇱🇻",
            "🇱🇾",
            "🇲🇦",
            "🇲🇨",
            "🇲🇩",
            "🇲🇪",
            "🇲🇫",
            "🇲🇬",
            "🇲🇭",
            "🇲🇰",
            "🇲🇱",
            "🇲🇲",
            "🇲🇳",
            "🇲🇴",
            "🇲🇵",
            "🇲🇶",
            "🇲🇷",
            "🇲🇸",
            "🇲🇹",
            "🇲🇺",
            "🇲🇻",
            "🇲🇼",
            "🇲🇽",
            "🇲🇾",
            "🇲🇿",
            "🇳🇦",
            "🇳🇨",
            "🇳🇪",
            "🇳🇫",
            "🇳🇬",
            "🇳🇮",
            "🇳🇱",
            "🇳🇴",
            "🇳🇵",
            "🇳🇷",
            "🇳🇺",
            "🇳🇿",
            "🇴🇲",
            "🇵🇦",
            "🇵🇪",
            "🇵🇫",
            "🇵🇬",
            "🇵🇭",
            "🇵🇰",
            "🇵🇱",
            "🇵🇲",
            "🇵🇳",
            "🇵🇷",
            "🇵🇸",
            "🇵🇹",
            "🇵🇼",
            "🇵🇾",
            "🇶🇦",
            "🇷🇪",
            "🇷🇴",
            "🇷🇸",
            "🇷🇺",
            "🇷🇼",
            "🇸🇦",
            "🇸🇧",
            "🇸🇨",
            "🇸🇩",
            "🇸🇪",
            "🇸🇬",
            "🇸🇭",
            "🇸🇮",
            "🇸🇯",
            "🇸🇰",
            "🇸🇱",
            "🇸🇲",
            "🇸🇳",
            "🇸🇴",
            "🇸🇷",
            "🇸🇸",
            "🇸🇹",
            "🇸🇻",
            "🇸🇽",
            "🇸🇾",
            "🇸🇿",
            "🇹🇦",
            "🇹🇨",
            "🇹🇩",
            "🇹🇫",
            "🇹🇬",
            "🇹🇭",
            "🇹🇯",
            "🇹🇰",
            "🇹🇱",
            "🇹🇲",
            "🇹🇳",
            "🇹🇴",
            "🇹🇷",
            "🇹🇹",
            "🇹🇻",
            "🇹🇼",
            "🇹🇿",
            "🇺🇦",
            "🇺🇬",
            "🇺🇲",
            "🇺🇳",
            "🇺🇸",
            "🇺🇾",
            "🇺🇿",
            "🇻🇦",
            "🇻🇨",
            "🇻🇪",
            "🇻🇬",
            "🇻🇮",
            "🇻🇳",
            "🇻🇺",
            "🇼🇫",
            "🇼🇸",
            "🇽🇰",
            "🇾🇪",
            "🇾🇹",
            "🇿🇦",
            "🇿🇲",
            "🇿🇼"
        ]
    }, GP = {
        informational: [
            100,
            101,
            102,
            103
        ],
        success: [
            200,
            201,
            202,
            203,
            204,
            205,
            206,
            207,
            208,
            226
        ],
        redirection: [
            300,
            301,
            302,
            303,
            304,
            305,
            306,
            307,
            308
        ],
        clientError: [
            400,
            401,
            402,
            403,
            404,
            405,
            406,
            407,
            408,
            409,
            410,
            411,
            412,
            413,
            414,
            415,
            416,
            417,
            418,
            421,
            422,
            423,
            424,
            425,
            426,
            428,
            429,
            431,
            451
        ],
        serverError: [
            500,
            501,
            502,
            503,
            504,
            505,
            506,
            507,
            508,
            510,
            511
        ]
    }, $P = [
        "HS256",
        "HS384",
        "HS512",
        "RS256",
        "RS384",
        "RS512",
        "ES256",
        "ES384",
        "ES512",
        "PS256",
        "PS384",
        "PS512",
        "none"
    ], UP = [
        'Mozilla/5.0 (compatible; MSIE {{number.int({"min":6,"max":10})}}.0; Windows NT {{helpers.arrayElement(["5.1","5.2","6.0","6.1","6.2","6.3","10.0"])}}; Trident/{{number.int({"min":4,"max":7})}}.0)',
        'Mozilla/5.0 (Windows NT {{helpers.arrayElement(["5.1","5.2","6.0","6.1","6.2","6.3","10.0"])}}; Win64; x64) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Chrome/{{number.int({"min":55,"max":131})}}.{{system.semver}} Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}} Edg/{{number.int({"min":110,"max":131})}}.{{system.semver}}',
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Version/16.1 Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}}',
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:{{number.int({"min":75, "max":133})}}.0) Gecko/20100101 Firefox/{{number.int({"min":75, "max":133})}}.0',
        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_15_7) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Chrome/{{number.int({"min":55,"max":131})}}.{{system.semver}} Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}}',
        'Mozilla/5.0 (X11; Linux x86_64; rv:{{number.int({"min":75,"max":133})}}.0) Gecko/20100101 Firefox/{{number.int({"min":75,"max":133})}}.0',
        "FakerBot/{{system.semver}}",
        "Googlebot/2.1 (+http://www.google.com/bot.html)",
        'Mozilla/5.0 (iPhone; CPU iPhone OS {{number.int({"min":10,"max":18})}}_{{number.int({"min":0,"max":4})}} like Mac OS X) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Version/{{number.int({"min":10,"max":18})}}_{{number.int({"min":0,"max":4})}} Mobile/15E148 Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}',
        'Mozilla/5.0 (Linux; Android {{number.int({"min":5,"max":13})}}; {{helpers.arrayElement(["SM-G998U","SM-G998B","SM-G998N","SM-G998P","SM-T800"])}}) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Chrome/{{number.int({"min":55,"max":131})}}.{{system.semver}} Mobile Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}'
    ], jP = {
        emoji: WP,
        http_status_code: GP,
        jwt_algorithm: $P,
        user_agent_pattern: UP
    }, YP = jP, qP = [
        {
            alpha2: "AD",
            alpha3: "AND",
            numeric: "020"
        },
        {
            alpha2: "AE",
            alpha3: "ARE",
            numeric: "784"
        },
        {
            alpha2: "AF",
            alpha3: "AFG",
            numeric: "004"
        },
        {
            alpha2: "AG",
            alpha3: "ATG",
            numeric: "028"
        },
        {
            alpha2: "AI",
            alpha3: "AIA",
            numeric: "660"
        },
        {
            alpha2: "AL",
            alpha3: "ALB",
            numeric: "008"
        },
        {
            alpha2: "AM",
            alpha3: "ARM",
            numeric: "051"
        },
        {
            alpha2: "AO",
            alpha3: "AGO",
            numeric: "024"
        },
        {
            alpha2: "AQ",
            alpha3: "ATA",
            numeric: "010"
        },
        {
            alpha2: "AR",
            alpha3: "ARG",
            numeric: "032"
        },
        {
            alpha2: "AS",
            alpha3: "ASM",
            numeric: "016"
        },
        {
            alpha2: "AT",
            alpha3: "AUT",
            numeric: "040"
        },
        {
            alpha2: "AU",
            alpha3: "AUS",
            numeric: "036"
        },
        {
            alpha2: "AW",
            alpha3: "ABW",
            numeric: "533"
        },
        {
            alpha2: "AX",
            alpha3: "ALA",
            numeric: "248"
        },
        {
            alpha2: "AZ",
            alpha3: "AZE",
            numeric: "031"
        },
        {
            alpha2: "BA",
            alpha3: "BIH",
            numeric: "070"
        },
        {
            alpha2: "BB",
            alpha3: "BRB",
            numeric: "052"
        },
        {
            alpha2: "BD",
            alpha3: "BGD",
            numeric: "050"
        },
        {
            alpha2: "BE",
            alpha3: "BEL",
            numeric: "056"
        },
        {
            alpha2: "BF",
            alpha3: "BFA",
            numeric: "854"
        },
        {
            alpha2: "BG",
            alpha3: "BGR",
            numeric: "100"
        },
        {
            alpha2: "BH",
            alpha3: "BHR",
            numeric: "048"
        },
        {
            alpha2: "BI",
            alpha3: "BDI",
            numeric: "108"
        },
        {
            alpha2: "BJ",
            alpha3: "BEN",
            numeric: "204"
        },
        {
            alpha2: "BL",
            alpha3: "BLM",
            numeric: "652"
        },
        {
            alpha2: "BM",
            alpha3: "BMU",
            numeric: "060"
        },
        {
            alpha2: "BN",
            alpha3: "BRN",
            numeric: "096"
        },
        {
            alpha2: "BO",
            alpha3: "BOL",
            numeric: "068"
        },
        {
            alpha2: "BQ",
            alpha3: "BES",
            numeric: "535"
        },
        {
            alpha2: "BR",
            alpha3: "BRA",
            numeric: "076"
        },
        {
            alpha2: "BS",
            alpha3: "BHS",
            numeric: "044"
        },
        {
            alpha2: "BT",
            alpha3: "BTN",
            numeric: "064"
        },
        {
            alpha2: "BV",
            alpha3: "BVT",
            numeric: "074"
        },
        {
            alpha2: "BW",
            alpha3: "BWA",
            numeric: "072"
        },
        {
            alpha2: "BY",
            alpha3: "BLR",
            numeric: "112"
        },
        {
            alpha2: "BZ",
            alpha3: "BLZ",
            numeric: "084"
        },
        {
            alpha2: "CA",
            alpha3: "CAN",
            numeric: "124"
        },
        {
            alpha2: "CC",
            alpha3: "CCK",
            numeric: "166"
        },
        {
            alpha2: "CD",
            alpha3: "COD",
            numeric: "180"
        },
        {
            alpha2: "CF",
            alpha3: "CAF",
            numeric: "140"
        },
        {
            alpha2: "CG",
            alpha3: "COG",
            numeric: "178"
        },
        {
            alpha2: "CH",
            alpha3: "CHE",
            numeric: "756"
        },
        {
            alpha2: "CI",
            alpha3: "CIV",
            numeric: "384"
        },
        {
            alpha2: "CK",
            alpha3: "COK",
            numeric: "184"
        },
        {
            alpha2: "CL",
            alpha3: "CHL",
            numeric: "152"
        },
        {
            alpha2: "CM",
            alpha3: "CMR",
            numeric: "120"
        },
        {
            alpha2: "CN",
            alpha3: "CHN",
            numeric: "156"
        },
        {
            alpha2: "CO",
            alpha3: "COL",
            numeric: "170"
        },
        {
            alpha2: "CR",
            alpha3: "CRI",
            numeric: "188"
        },
        {
            alpha2: "CU",
            alpha3: "CUB",
            numeric: "192"
        },
        {
            alpha2: "CV",
            alpha3: "CPV",
            numeric: "132"
        },
        {
            alpha2: "CW",
            alpha3: "CUW",
            numeric: "531"
        },
        {
            alpha2: "CX",
            alpha3: "CXR",
            numeric: "162"
        },
        {
            alpha2: "CY",
            alpha3: "CYP",
            numeric: "196"
        },
        {
            alpha2: "CZ",
            alpha3: "CZE",
            numeric: "203"
        },
        {
            alpha2: "DE",
            alpha3: "DEU",
            numeric: "276"
        },
        {
            alpha2: "DJ",
            alpha3: "DJI",
            numeric: "262"
        },
        {
            alpha2: "DK",
            alpha3: "DNK",
            numeric: "208"
        },
        {
            alpha2: "DM",
            alpha3: "DMA",
            numeric: "212"
        },
        {
            alpha2: "DO",
            alpha3: "DOM",
            numeric: "214"
        },
        {
            alpha2: "DZ",
            alpha3: "DZA",
            numeric: "012"
        },
        {
            alpha2: "EC",
            alpha3: "ECU",
            numeric: "218"
        },
        {
            alpha2: "EE",
            alpha3: "EST",
            numeric: "233"
        },
        {
            alpha2: "EG",
            alpha3: "EGY",
            numeric: "818"
        },
        {
            alpha2: "EH",
            alpha3: "ESH",
            numeric: "732"
        },
        {
            alpha2: "ER",
            alpha3: "ERI",
            numeric: "232"
        },
        {
            alpha2: "ES",
            alpha3: "ESP",
            numeric: "724"
        },
        {
            alpha2: "ET",
            alpha3: "ETH",
            numeric: "231"
        },
        {
            alpha2: "FI",
            alpha3: "FIN",
            numeric: "246"
        },
        {
            alpha2: "FJ",
            alpha3: "FJI",
            numeric: "242"
        },
        {
            alpha2: "FK",
            alpha3: "FLK",
            numeric: "238"
        },
        {
            alpha2: "FM",
            alpha3: "FSM",
            numeric: "583"
        },
        {
            alpha2: "FO",
            alpha3: "FRO",
            numeric: "234"
        },
        {
            alpha2: "FR",
            alpha3: "FRA",
            numeric: "250"
        },
        {
            alpha2: "GA",
            alpha3: "GAB",
            numeric: "266"
        },
        {
            alpha2: "GB",
            alpha3: "GBR",
            numeric: "826"
        },
        {
            alpha2: "GD",
            alpha3: "GRD",
            numeric: "308"
        },
        {
            alpha2: "GE",
            alpha3: "GEO",
            numeric: "268"
        },
        {
            alpha2: "GF",
            alpha3: "GUF",
            numeric: "254"
        },
        {
            alpha2: "GG",
            alpha3: "GGY",
            numeric: "831"
        },
        {
            alpha2: "GH",
            alpha3: "GHA",
            numeric: "288"
        },
        {
            alpha2: "GI",
            alpha3: "GIB",
            numeric: "292"
        },
        {
            alpha2: "GL",
            alpha3: "GRL",
            numeric: "304"
        },
        {
            alpha2: "GM",
            alpha3: "GMB",
            numeric: "270"
        },
        {
            alpha2: "GN",
            alpha3: "GIN",
            numeric: "324"
        },
        {
            alpha2: "GP",
            alpha3: "GLP",
            numeric: "312"
        },
        {
            alpha2: "GQ",
            alpha3: "GNQ",
            numeric: "226"
        },
        {
            alpha2: "GR",
            alpha3: "GRC",
            numeric: "300"
        },
        {
            alpha2: "GS",
            alpha3: "SGS",
            numeric: "239"
        },
        {
            alpha2: "GT",
            alpha3: "GTM",
            numeric: "320"
        },
        {
            alpha2: "GU",
            alpha3: "GUM",
            numeric: "316"
        },
        {
            alpha2: "GW",
            alpha3: "GNB",
            numeric: "624"
        },
        {
            alpha2: "GY",
            alpha3: "GUY",
            numeric: "328"
        },
        {
            alpha2: "HK",
            alpha3: "HKG",
            numeric: "344"
        },
        {
            alpha2: "HM",
            alpha3: "HMD",
            numeric: "334"
        },
        {
            alpha2: "HN",
            alpha3: "HND",
            numeric: "340"
        },
        {
            alpha2: "HR",
            alpha3: "HRV",
            numeric: "191"
        },
        {
            alpha2: "HT",
            alpha3: "HTI",
            numeric: "332"
        },
        {
            alpha2: "HU",
            alpha3: "HUN",
            numeric: "348"
        },
        {
            alpha2: "ID",
            alpha3: "IDN",
            numeric: "360"
        },
        {
            alpha2: "IE",
            alpha3: "IRL",
            numeric: "372"
        },
        {
            alpha2: "IL",
            alpha3: "ISR",
            numeric: "376"
        },
        {
            alpha2: "IM",
            alpha3: "IMN",
            numeric: "833"
        },
        {
            alpha2: "IN",
            alpha3: "IND",
            numeric: "356"
        },
        {
            alpha2: "IO",
            alpha3: "IOT",
            numeric: "086"
        },
        {
            alpha2: "IQ",
            alpha3: "IRQ",
            numeric: "368"
        },
        {
            alpha2: "IR",
            alpha3: "IRN",
            numeric: "364"
        },
        {
            alpha2: "IS",
            alpha3: "ISL",
            numeric: "352"
        },
        {
            alpha2: "IT",
            alpha3: "ITA",
            numeric: "380"
        },
        {
            alpha2: "JE",
            alpha3: "JEY",
            numeric: "832"
        },
        {
            alpha2: "JM",
            alpha3: "JAM",
            numeric: "388"
        },
        {
            alpha2: "JO",
            alpha3: "JOR",
            numeric: "400"
        },
        {
            alpha2: "JP",
            alpha3: "JPN",
            numeric: "392"
        },
        {
            alpha2: "KE",
            alpha3: "KEN",
            numeric: "404"
        },
        {
            alpha2: "KG",
            alpha3: "KGZ",
            numeric: "417"
        },
        {
            alpha2: "KH",
            alpha3: "KHM",
            numeric: "116"
        },
        {
            alpha2: "KI",
            alpha3: "KIR",
            numeric: "296"
        },
        {
            alpha2: "KM",
            alpha3: "COM",
            numeric: "174"
        },
        {
            alpha2: "KN",
            alpha3: "KNA",
            numeric: "659"
        },
        {
            alpha2: "KP",
            alpha3: "PRK",
            numeric: "408"
        },
        {
            alpha2: "KR",
            alpha3: "KOR",
            numeric: "410"
        },
        {
            alpha2: "KW",
            alpha3: "KWT",
            numeric: "414"
        },
        {
            alpha2: "KY",
            alpha3: "CYM",
            numeric: "136"
        },
        {
            alpha2: "KZ",
            alpha3: "KAZ",
            numeric: "398"
        },
        {
            alpha2: "LA",
            alpha3: "LAO",
            numeric: "418"
        },
        {
            alpha2: "LB",
            alpha3: "LBN",
            numeric: "422"
        },
        {
            alpha2: "LC",
            alpha3: "LCA",
            numeric: "662"
        },
        {
            alpha2: "LI",
            alpha3: "LIE",
            numeric: "438"
        },
        {
            alpha2: "LK",
            alpha3: "LKA",
            numeric: "144"
        },
        {
            alpha2: "LR",
            alpha3: "LBR",
            numeric: "430"
        },
        {
            alpha2: "LS",
            alpha3: "LSO",
            numeric: "426"
        },
        {
            alpha2: "LT",
            alpha3: "LTU",
            numeric: "440"
        },
        {
            alpha2: "LU",
            alpha3: "LUX",
            numeric: "442"
        },
        {
            alpha2: "LV",
            alpha3: "LVA",
            numeric: "428"
        },
        {
            alpha2: "LY",
            alpha3: "LBY",
            numeric: "434"
        },
        {
            alpha2: "MA",
            alpha3: "MAR",
            numeric: "504"
        },
        {
            alpha2: "MC",
            alpha3: "MCO",
            numeric: "492"
        },
        {
            alpha2: "MD",
            alpha3: "MDA",
            numeric: "498"
        },
        {
            alpha2: "ME",
            alpha3: "MNE",
            numeric: "499"
        },
        {
            alpha2: "MF",
            alpha3: "MAF",
            numeric: "663"
        },
        {
            alpha2: "MG",
            alpha3: "MDG",
            numeric: "450"
        },
        {
            alpha2: "MH",
            alpha3: "MHL",
            numeric: "584"
        },
        {
            alpha2: "MK",
            alpha3: "MKD",
            numeric: "807"
        },
        {
            alpha2: "ML",
            alpha3: "MLI",
            numeric: "466"
        },
        {
            alpha2: "MM",
            alpha3: "MMR",
            numeric: "104"
        },
        {
            alpha2: "MN",
            alpha3: "MNG",
            numeric: "496"
        },
        {
            alpha2: "MO",
            alpha3: "MAC",
            numeric: "446"
        },
        {
            alpha2: "MP",
            alpha3: "MNP",
            numeric: "580"
        },
        {
            alpha2: "MQ",
            alpha3: "MTQ",
            numeric: "474"
        },
        {
            alpha2: "MR",
            alpha3: "MRT",
            numeric: "478"
        },
        {
            alpha2: "MS",
            alpha3: "MSR",
            numeric: "500"
        },
        {
            alpha2: "MT",
            alpha3: "MLT",
            numeric: "470"
        },
        {
            alpha2: "MU",
            alpha3: "MUS",
            numeric: "480"
        },
        {
            alpha2: "MV",
            alpha3: "MDV",
            numeric: "462"
        },
        {
            alpha2: "MW",
            alpha3: "MWI",
            numeric: "454"
        },
        {
            alpha2: "MX",
            alpha3: "MEX",
            numeric: "484"
        },
        {
            alpha2: "MY",
            alpha3: "MYS",
            numeric: "458"
        },
        {
            alpha2: "MZ",
            alpha3: "MOZ",
            numeric: "508"
        },
        {
            alpha2: "NA",
            alpha3: "NAM",
            numeric: "516"
        },
        {
            alpha2: "NC",
            alpha3: "NCL",
            numeric: "540"
        },
        {
            alpha2: "NE",
            alpha3: "NER",
            numeric: "562"
        },
        {
            alpha2: "NF",
            alpha3: "NFK",
            numeric: "574"
        },
        {
            alpha2: "NG",
            alpha3: "NGA",
            numeric: "566"
        },
        {
            alpha2: "NI",
            alpha3: "NIC",
            numeric: "558"
        },
        {
            alpha2: "NL",
            alpha3: "NLD",
            numeric: "528"
        },
        {
            alpha2: "NO",
            alpha3: "NOR",
            numeric: "578"
        },
        {
            alpha2: "NP",
            alpha3: "NPL",
            numeric: "524"
        },
        {
            alpha2: "NR",
            alpha3: "NRU",
            numeric: "520"
        },
        {
            alpha2: "NU",
            alpha3: "NIU",
            numeric: "570"
        },
        {
            alpha2: "NZ",
            alpha3: "NZL",
            numeric: "554"
        },
        {
            alpha2: "OM",
            alpha3: "OMN",
            numeric: "512"
        },
        {
            alpha2: "PA",
            alpha3: "PAN",
            numeric: "591"
        },
        {
            alpha2: "PE",
            alpha3: "PER",
            numeric: "604"
        },
        {
            alpha2: "PF",
            alpha3: "PYF",
            numeric: "258"
        },
        {
            alpha2: "PG",
            alpha3: "PNG",
            numeric: "598"
        },
        {
            alpha2: "PH",
            alpha3: "PHL",
            numeric: "608"
        },
        {
            alpha2: "PK",
            alpha3: "PAK",
            numeric: "586"
        },
        {
            alpha2: "PL",
            alpha3: "POL",
            numeric: "616"
        },
        {
            alpha2: "PM",
            alpha3: "SPM",
            numeric: "666"
        },
        {
            alpha2: "PN",
            alpha3: "PCN",
            numeric: "612"
        },
        {
            alpha2: "PR",
            alpha3: "PRI",
            numeric: "630"
        },
        {
            alpha2: "PS",
            alpha3: "PSE",
            numeric: "275"
        },
        {
            alpha2: "PT",
            alpha3: "PRT",
            numeric: "620"
        },
        {
            alpha2: "PW",
            alpha3: "PLW",
            numeric: "585"
        },
        {
            alpha2: "PY",
            alpha3: "PRY",
            numeric: "600"
        },
        {
            alpha2: "QA",
            alpha3: "QAT",
            numeric: "634"
        },
        {
            alpha2: "RE",
            alpha3: "REU",
            numeric: "638"
        },
        {
            alpha2: "RO",
            alpha3: "ROU",
            numeric: "642"
        },
        {
            alpha2: "RS",
            alpha3: "SRB",
            numeric: "688"
        },
        {
            alpha2: "RU",
            alpha3: "RUS",
            numeric: "643"
        },
        {
            alpha2: "RW",
            alpha3: "RWA",
            numeric: "646"
        },
        {
            alpha2: "SA",
            alpha3: "SAU",
            numeric: "682"
        },
        {
            alpha2: "SB",
            alpha3: "SLB",
            numeric: "090"
        },
        {
            alpha2: "SC",
            alpha3: "SYC",
            numeric: "690"
        },
        {
            alpha2: "SD",
            alpha3: "SDN",
            numeric: "729"
        },
        {
            alpha2: "SE",
            alpha3: "SWE",
            numeric: "752"
        },
        {
            alpha2: "SG",
            alpha3: "SGP",
            numeric: "702"
        },
        {
            alpha2: "SH",
            alpha3: "SHN",
            numeric: "654"
        },
        {
            alpha2: "SI",
            alpha3: "SVN",
            numeric: "705"
        },
        {
            alpha2: "SJ",
            alpha3: "SJM",
            numeric: "744"
        },
        {
            alpha2: "SK",
            alpha3: "SVK",
            numeric: "703"
        },
        {
            alpha2: "SL",
            alpha3: "SLE",
            numeric: "694"
        },
        {
            alpha2: "SM",
            alpha3: "SMR",
            numeric: "674"
        },
        {
            alpha2: "SN",
            alpha3: "SEN",
            numeric: "686"
        },
        {
            alpha2: "SO",
            alpha3: "SOM",
            numeric: "706"
        },
        {
            alpha2: "SR",
            alpha3: "SUR",
            numeric: "740"
        },
        {
            alpha2: "SS",
            alpha3: "SSD",
            numeric: "728"
        },
        {
            alpha2: "ST",
            alpha3: "STP",
            numeric: "678"
        },
        {
            alpha2: "SV",
            alpha3: "SLV",
            numeric: "222"
        },
        {
            alpha2: "SX",
            alpha3: "SXM",
            numeric: "534"
        },
        {
            alpha2: "SY",
            alpha3: "SYR",
            numeric: "760"
        },
        {
            alpha2: "SZ",
            alpha3: "SWZ",
            numeric: "748"
        },
        {
            alpha2: "TC",
            alpha3: "TCA",
            numeric: "796"
        },
        {
            alpha2: "TD",
            alpha3: "TCD",
            numeric: "148"
        },
        {
            alpha2: "TF",
            alpha3: "ATF",
            numeric: "260"
        },
        {
            alpha2: "TG",
            alpha3: "TGO",
            numeric: "768"
        },
        {
            alpha2: "TH",
            alpha3: "THA",
            numeric: "764"
        },
        {
            alpha2: "TJ",
            alpha3: "TJK",
            numeric: "762"
        },
        {
            alpha2: "TK",
            alpha3: "TKL",
            numeric: "772"
        },
        {
            alpha2: "TL",
            alpha3: "TLS",
            numeric: "626"
        },
        {
            alpha2: "TM",
            alpha3: "TKM",
            numeric: "795"
        },
        {
            alpha2: "TN",
            alpha3: "TUN",
            numeric: "788"
        },
        {
            alpha2: "TO",
            alpha3: "TON",
            numeric: "776"
        },
        {
            alpha2: "TR",
            alpha3: "TUR",
            numeric: "792"
        },
        {
            alpha2: "TT",
            alpha3: "TTO",
            numeric: "780"
        },
        {
            alpha2: "TV",
            alpha3: "TUV",
            numeric: "798"
        },
        {
            alpha2: "TW",
            alpha3: "TWN",
            numeric: "158"
        },
        {
            alpha2: "TZ",
            alpha3: "TZA",
            numeric: "834"
        },
        {
            alpha2: "UA",
            alpha3: "UKR",
            numeric: "804"
        },
        {
            alpha2: "UG",
            alpha3: "UGA",
            numeric: "800"
        },
        {
            alpha2: "UM",
            alpha3: "UMI",
            numeric: "581"
        },
        {
            alpha2: "US",
            alpha3: "USA",
            numeric: "840"
        },
        {
            alpha2: "UY",
            alpha3: "URY",
            numeric: "858"
        },
        {
            alpha2: "UZ",
            alpha3: "UZB",
            numeric: "860"
        },
        {
            alpha2: "VA",
            alpha3: "VAT",
            numeric: "336"
        },
        {
            alpha2: "VC",
            alpha3: "VCT",
            numeric: "670"
        },
        {
            alpha2: "VE",
            alpha3: "VEN",
            numeric: "862"
        },
        {
            alpha2: "VG",
            alpha3: "VGB",
            numeric: "092"
        },
        {
            alpha2: "VI",
            alpha3: "VIR",
            numeric: "850"
        },
        {
            alpha2: "VN",
            alpha3: "VNM",
            numeric: "704"
        },
        {
            alpha2: "VU",
            alpha3: "VUT",
            numeric: "548"
        },
        {
            alpha2: "WF",
            alpha3: "WLF",
            numeric: "876"
        },
        {
            alpha2: "WS",
            alpha3: "WSM",
            numeric: "882"
        },
        {
            alpha2: "YE",
            alpha3: "YEM",
            numeric: "887"
        },
        {
            alpha2: "YT",
            alpha3: "MYT",
            numeric: "175"
        },
        {
            alpha2: "ZA",
            alpha3: "ZAF",
            numeric: "710"
        },
        {
            alpha2: "ZM",
            alpha3: "ZMB",
            numeric: "894"
        },
        {
            alpha2: "ZW",
            alpha3: "ZWE",
            numeric: "716"
        }
    ], KP = {
        country_code: qP,
        time_zone: xF
    }, XP = KP, JP = {
        title: "Base",
        code: "base"
    }, ZP = JP, QP = [
        "/Applications",
        "/bin",
        "/boot",
        "/boot/defaults",
        "/dev",
        "/etc",
        "/etc/defaults",
        "/etc/mail",
        "/etc/namedb",
        "/etc/periodic",
        "/etc/ppp",
        "/home",
        "/home/user",
        "/home/user/dir",
        "/lib",
        "/Library",
        "/lost+found",
        "/media",
        "/mnt",
        "/net",
        "/Network",
        "/opt",
        "/opt/bin",
        "/opt/include",
        "/opt/lib",
        "/opt/sbin",
        "/opt/share",
        "/private",
        "/private/tmp",
        "/private/var",
        "/proc",
        "/rescue",
        "/root",
        "/sbin",
        "/selinux",
        "/srv",
        "/sys",
        "/System",
        "/tmp",
        "/Users",
        "/usr",
        "/usr/X11R6",
        "/usr/bin",
        "/usr/include",
        "/usr/lib",
        "/usr/libdata",
        "/usr/libexec",
        "/usr/local/bin",
        "/usr/local/src",
        "/usr/obj",
        "/usr/ports",
        "/usr/sbin",
        "/usr/share",
        "/usr/src",
        "/var",
        "/var/log",
        "/var/mail",
        "/var/spool",
        "/var/tmp",
        "/var/yp"
    ], eB = {
        "application/epub+zip": {
            extensions: [
                "epub"
            ]
        },
        "application/gzip": {
            extensions: [
                "gz"
            ]
        },
        "application/java-archive": {
            extensions: [
                "jar",
                "war",
                "ear"
            ]
        },
        "application/json": {
            extensions: [
                "json",
                "map"
            ]
        },
        "application/ld+json": {
            extensions: [
                "jsonld"
            ]
        },
        "application/msword": {
            extensions: [
                "doc",
                "dot"
            ]
        },
        "application/octet-stream": {
            extensions: [
                "bin",
                "dms",
                "lrf",
                "mar",
                "so",
                "dist",
                "distz",
                "pkg",
                "bpk",
                "dump",
                "elc",
                "deploy",
                "exe",
                "dll",
                "deb",
                "dmg",
                "iso",
                "img",
                "msi",
                "msp",
                "msm",
                "buffer"
            ]
        },
        "application/ogg": {
            extensions: [
                "ogx"
            ]
        },
        "application/pdf": {
            extensions: [
                "pdf"
            ]
        },
        "application/rtf": {
            extensions: [
                "rtf"
            ]
        },
        "application/vnd.amazon.ebook": {
            extensions: [
                "azw"
            ]
        },
        "application/vnd.apple.installer+xml": {
            extensions: [
                "mpkg"
            ]
        },
        "application/vnd.mozilla.xul+xml": {
            extensions: [
                "xul"
            ]
        },
        "application/vnd.ms-excel": {
            extensions: [
                "xls",
                "xlm",
                "xla",
                "xlc",
                "xlt",
                "xlw"
            ]
        },
        "application/vnd.ms-fontobject": {
            extensions: [
                "eot"
            ]
        },
        "application/vnd.ms-powerpoint": {
            extensions: [
                "ppt",
                "pps",
                "pot"
            ]
        },
        "application/vnd.oasis.opendocument.presentation": {
            extensions: [
                "odp"
            ]
        },
        "application/vnd.oasis.opendocument.spreadsheet": {
            extensions: [
                "ods"
            ]
        },
        "application/vnd.oasis.opendocument.text": {
            extensions: [
                "odt"
            ]
        },
        "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
            extensions: [
                "pptx"
            ]
        },
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
            extensions: [
                "xlsx"
            ]
        },
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
            extensions: [
                "docx"
            ]
        },
        "application/vnd.rar": {
            extensions: [
                "rar"
            ]
        },
        "application/vnd.visio": {
            extensions: [
                "vsd",
                "vst",
                "vss",
                "vsw"
            ]
        },
        "application/x-7z-compressed": {
            extensions: [
                "7z"
            ]
        },
        "application/x-abiword": {
            extensions: [
                "abw"
            ]
        },
        "application/x-bzip": {
            extensions: [
                "bz"
            ]
        },
        "application/x-bzip2": {
            extensions: [
                "bz2",
                "boz"
            ]
        },
        "application/x-csh": {
            extensions: [
                "csh"
            ]
        },
        "application/x-freearc": {
            extensions: [
                "arc"
            ]
        },
        "application/x-httpd-php": {
            extensions: [
                "php"
            ]
        },
        "application/x-sh": {
            extensions: [
                "sh"
            ]
        },
        "application/x-tar": {
            extensions: [
                "tar"
            ]
        },
        "application/xhtml+xml": {
            extensions: [
                "xhtml",
                "xht"
            ]
        },
        "application/xml": {
            extensions: [
                "xml",
                "xsl",
                "xsd",
                "rng"
            ]
        },
        "application/zip": {
            extensions: [
                "zip"
            ]
        },
        "audio/3gpp": {
            extensions: [
                "3gpp"
            ]
        },
        "audio/3gpp2": {
            extensions: [
                "3g2"
            ]
        },
        "audio/aac": {
            extensions: [
                "aac"
            ]
        },
        "audio/midi": {
            extensions: [
                "mid",
                "midi",
                "kar",
                "rmi"
            ]
        },
        "audio/mpeg": {
            extensions: [
                "mpga",
                "mp2",
                "mp2a",
                "mp3",
                "m2a",
                "m3a"
            ]
        },
        "audio/ogg": {
            extensions: [
                "oga",
                "ogg",
                "spx",
                "opus"
            ]
        },
        "audio/opus": {
            extensions: [
                "opus"
            ]
        },
        "audio/wav": {
            extensions: [
                "wav"
            ]
        },
        "audio/webm": {
            extensions: [
                "weba"
            ]
        },
        "font/otf": {
            extensions: [
                "otf"
            ]
        },
        "font/ttf": {
            extensions: [
                "ttf"
            ]
        },
        "font/woff": {
            extensions: [
                "woff"
            ]
        },
        "font/woff2": {
            extensions: [
                "woff2"
            ]
        },
        "image/avif": {
            extensions: [
                "avif"
            ]
        },
        "image/bmp": {
            extensions: [
                "bmp"
            ]
        },
        "image/gif": {
            extensions: [
                "gif"
            ]
        },
        "image/jpeg": {
            extensions: [
                "jpeg",
                "jpg",
                "jpe"
            ]
        },
        "image/png": {
            extensions: [
                "png"
            ]
        },
        "image/svg+xml": {
            extensions: [
                "svg",
                "svgz"
            ]
        },
        "image/tiff": {
            extensions: [
                "tif",
                "tiff"
            ]
        },
        "image/vnd.microsoft.icon": {
            extensions: [
                "ico"
            ]
        },
        "image/webp": {
            extensions: [
                "webp"
            ]
        },
        "text/calendar": {
            extensions: [
                "ics",
                "ifb"
            ]
        },
        "text/css": {
            extensions: [
                "css"
            ]
        },
        "text/csv": {
            extensions: [
                "csv"
            ]
        },
        "text/html": {
            extensions: [
                "html",
                "htm",
                "shtml"
            ]
        },
        "text/javascript": {
            extensions: [
                "js",
                "mjs"
            ]
        },
        "text/plain": {
            extensions: [
                "txt",
                "text",
                "conf",
                "def",
                "list",
                "log",
                "in",
                "ini"
            ]
        },
        "video/3gpp": {
            extensions: [
                "3gp",
                "3gpp"
            ]
        },
        "video/3gpp2": {
            extensions: [
                "3g2"
            ]
        },
        "video/mp2t": {
            extensions: [
                "ts"
            ]
        },
        "video/mp4": {
            extensions: [
                "mp4",
                "mp4v",
                "mpg4"
            ]
        },
        "video/mpeg": {
            extensions: [
                "mpeg",
                "mpg",
                "mpe",
                "m1v",
                "m2v"
            ]
        },
        "video/ogg": {
            extensions: [
                "ogv"
            ]
        },
        "video/webm": {
            extensions: [
                "webm"
            ]
        },
        "video/x-msvideo": {
            extensions: [
                "avi"
            ]
        }
    }, tB = {
        directory_path: QP,
        mime_type: eB
    }, aB = tB, rB = {
        color: PP,
        database: IP,
        date: NP,
        hacker: VP,
        internet: YP,
        location: XP,
        metadata: ZP,
        system: aB
    }, nB = rB, Fe = new TP({
        locale: [
            c_,
            nB
        ]
    });
    class Dr {
        static instance;
        static hashes = Array(parseInt(15)).fill("").map((e, a)=>(a + 1).toString(16).padStart(40, "0"));
        categories = {
            Movie: {
                name: "Movie",
                savePath: Fe.system.directoryPath()
            },
            TV: {
                name: "TV",
                savePath: Fe.system.directoryPath()
            },
            Other: {
                name: "Other",
                savePath: Fe.system.directoryPath()
            },
            ISO: {
                name: "ISO",
                savePath: Fe.system.directoryPath()
            },
            Music: {
                name: "Music",
                savePath: Fe.system.directoryPath()
            }
        };
        tags = [
            "pending",
            "sorted",
            "pending_sort"
        ];
        trackers = Fe.helpers.multiple(()=>Fe.internet.url(), {
            count: 5
        }).reduce((e, a)=>(e[a] = Fe.helpers.arrayElements(Dr.hashes), e), {});
        constructor(){}
        static getInstance() {
            return Dr.instance || (Dr.instance = new Dr), Dr.instance;
        }
        generateMockedTorrent(e) {
            const a = Fe.date.past(), r = Fe.date.between({
                from: a,
                to: Date.now()
            }), n = Fe.system.fileName(), i = Fe.number.int({
                min: 0,
                max: 250
            }), o = Fe.number.int({
                min: 0,
                max: 250
            }), s = Fe.number.int({
                min: 1e6,
                max: 1e12
            }), l = Fe.number.int({
                min: 0,
                max: s
            }), u = Math.random() > .5 ? Fe.helpers.arrayElement(Object.keys(this.trackers)) : "";
            return {
                added_on: a.getTime() / 1e3,
                amount_left: Fe.number.int({
                    min: 0,
                    max: s
                }),
                auto_tmm: Fe.datatype.boolean(),
                availability: Fe.number.float({
                    min: 0,
                    max: 100,
                    multipleOf: .01
                }),
                category: Fe.helpers.arrayElement([
                    "",
                    ...Object.keys(this.categories)
                ]),
                comment: "",
                completed: l,
                completion_on: Fe.date.between({
                    from: a,
                    to: Date.now()
                }).getTime() / 1e3,
                content_path: Fe.system.filePath(),
                dl_limit: Fe.number.float({
                    min: 0,
                    max: 1,
                    multipleOf: .01
                }),
                dlspeed: Fe.number.int({
                    min: 0,
                    max: 5e6
                }),
                download_path: Fe.system.directoryPath(),
                downloaded: l,
                downloaded_session: l,
                eta: Fe.number.int({
                    min: 0,
                    max: Ws
                }),
                f_l_piece_prio: Fe.datatype.boolean(),
                force_start: Fe.datatype.boolean(),
                has_metadata: !0,
                inactive_seeding_time_limit: -2,
                infohash_v1: e,
                infohash_v2: "",
                last_activity: r.getTime() / 1e3,
                magnet_uri: `magnet:?xt=urn:btih:${e}&dn=${n}&tr=${u}`,
                max_inactive_seeding_time: -1,
                max_ratio: -1,
                max_seeding_time: -1,
                name: n,
                num_complete: i,
                num_incomplete: o,
                num_leechs: Fe.number.int({
                    min: 0,
                    max: o
                }),
                num_seeds: Fe.number.int({
                    min: 0,
                    max: i
                }),
                popularity: -1,
                priority: 1,
                private: !1,
                progress: l / s,
                ratio: 0,
                ratio_limit: -2,
                reannounce: 3600,
                root_path: Fe.system.filePath(),
                save_path: Fe.system.directoryPath(),
                seeding_time: 0,
                seeding_time_limit: -2,
                seen_complete: Fe.date.between({
                    from: a,
                    to: r
                }).getTime() / 1e3,
                seq_dl: Fe.datatype.boolean(),
                size: s,
                state: Fe.helpers.enumValue(wt),
                super_seeding: Fe.datatype.boolean(),
                tags: Fe.helpers.arrayElements(this.tags, {
                    min: 0,
                    max: this.tags.length
                }).join(", "),
                time_active: 0,
                total_size: s,
                tracker: u,
                trackers_count: 1,
                up_limit: 0,
                uploaded: 0,
                uploaded_session: 0,
                upspeed: 0
            };
        }
        async generateResponse(e) {
            const { result: a, reason: r, shouldResolve: n = !0, delay: i = 0 } = e || {};
            return i > 0 ? new Promise((o, s)=>setTimeout(()=>n ? o(a) : s(r), i)) : new Promise((o, s)=>n ? o(a) : s(r));
        }
        async getBuildInfo() {
            return this.generateResponse({
                result: {
                    bitness: 64,
                    boost: "1.86.0",
                    libtorrent: "2.0.11.0",
                    openssl: "3.3.2",
                    platform: "windows",
                    qt: "6.7.3",
                    zlib: "1.3.1"
                }
            });
        }
        async getVersion() {
            return this.generateResponse({
                result: "5.0.0"
            });
        }
        async getPreferences() {
            return this.generateResponse({
                result: {
                    add_stopped_enabled: !1,
                    add_to_top_of_queue: !1,
                    add_trackers: "",
                    add_trackers_enabled: !1,
                    alt_dl_limit: 10240,
                    alt_up_limit: 10240,
                    alternative_webui_enabled: !0,
                    alternative_webui_path: "/vuetorrent",
                    announce_ip: "",
                    announce_to_all_tiers: !0,
                    announce_to_all_trackers: !1,
                    anonymous_mode: !1,
                    app_instance_name: "mock",
                    async_io_threads: 10,
                    auto_delete_mode: 0,
                    auto_tmm_enabled: !0,
                    autorun_enabled: !1,
                    autorun_on_torrent_added_enabled: !1,
                    autorun_on_torrent_added_program: "",
                    autorun_program: "",
                    banned_IPs: "",
                    bdecode_depth_limit: 100,
                    bdecode_token_limit: 1e7,
                    bittorrent_protocol: 0,
                    block_peers_on_privileged_ports: !1,
                    bypass_auth_subnet_whitelist: "0.0.0.0/0",
                    bypass_auth_subnet_whitelist_enabled: !0,
                    bypass_local_auth: !0,
                    category_changed_tmm_enabled: !1,
                    checking_memory_use: 32,
                    connection_speed: 30,
                    current_interface_address: "",
                    current_interface_name: "",
                    current_network_interface: "",
                    delete_torrent_content_files: !0,
                    dht: !0,
                    dht_bootstrap_nodes: "",
                    disk_cache: -1,
                    disk_cache_ttl: 60,
                    disk_io_read_mode: 1,
                    disk_io_type: 0,
                    disk_io_write_mode: 1,
                    disk_queue_size: 1048576,
                    dl_limit: 0,
                    dont_count_slow_torrents: !1,
                    dyndns_domain: "changeme.dyndns.org",
                    dyndns_enabled: !1,
                    dyndns_password: "adqsd",
                    dyndns_service: 0,
                    dyndns_username: "",
                    embedded_tracker_port: 9e3,
                    embedded_tracker_port_forwarding: !1,
                    enable_coalesce_read_write: !1,
                    enable_embedded_tracker: !1,
                    enable_multi_connections_from_same_ip: !1,
                    enable_piece_extent_affinity: !1,
                    enable_upload_suggestions: !1,
                    encryption: 0,
                    excluded_file_names: "",
                    excluded_file_names_enabled: !1,
                    export_dir: "",
                    export_dir_fin: "",
                    file_log_age: 1,
                    file_log_age_type: 1,
                    file_log_backup_enabled: !0,
                    file_log_delete_old: !0,
                    file_log_enabled: !0,
                    file_log_max_size: 65,
                    file_log_path: "/config/qBittorrent/logs",
                    file_pool_size: 100,
                    hashing_threads: 1,
                    i2p_address: "127.0.0.1",
                    i2p_enabled: !1,
                    i2p_inbound_length: 3,
                    i2p_inbound_quantity: 3,
                    i2p_mixed_mode: !1,
                    i2p_outbound_length: 3,
                    i2p_outbound_quantity: 3,
                    i2p_port: 7656,
                    idn_support_enabled: !1,
                    incomplete_files_ext: !1,
                    ip_filter_enabled: !1,
                    ip_filter_path: "",
                    ip_filter_trackers: !1,
                    limit_lan_peers: !0,
                    limit_tcp_overhead: !1,
                    limit_utp_rate: !0,
                    listen_port: 6881,
                    locale: "en",
                    lsd: !0,
                    mail_notification_auth_enabled: !0,
                    mail_notification_email: "to",
                    mail_notification_enabled: !1,
                    mail_notification_password: "",
                    mail_notification_sender: "from",
                    mail_notification_smtp: "smtp.changeme.com",
                    mail_notification_ssl_enabled: !1,
                    mail_notification_username: "",
                    mark_of_the_web: !0,
                    max_active_checking_torrents: 1,
                    max_active_downloads: 3,
                    max_active_torrents: 5,
                    max_active_uploads: 3,
                    max_concurrent_http_announces: 50,
                    max_connec: 500,
                    max_connec_per_torrent: 100,
                    max_inactive_seeding_time: -1,
                    max_inactive_seeding_time_enabled: !1,
                    max_ratio: -1,
                    max_ratio_act: 0,
                    max_ratio_enabled: !1,
                    max_seeding_time: -1,
                    max_seeding_time_enabled: !1,
                    max_uploads: 20,
                    max_uploads_per_torrent: 4,
                    memory_working_set_limit: 512,
                    merge_trackers: !1,
                    outgoing_ports_max: 0,
                    outgoing_ports_min: 0,
                    peer_tos: 4,
                    peer_turnover: 4,
                    peer_turnover_cutoff: 90,
                    peer_turnover_interval: 300,
                    performance_warning: !0,
                    pex: !0,
                    preallocate_all: !1,
                    proxy_auth_enabled: !1,
                    proxy_bittorrent: !0,
                    proxy_hostname_lookup: !1,
                    proxy_ip: "",
                    proxy_misc: !0,
                    proxy_password: "",
                    proxy_peer_connections: !1,
                    proxy_port: 8080,
                    proxy_rss: !0,
                    proxy_type: Xy.NONE,
                    proxy_username: "",
                    python_executable_path: "",
                    queueing_enabled: !0,
                    random_port: !1,
                    reannounce_when_address_changed: !1,
                    recheck_completed_torrents: !1,
                    refresh_interval: 1500,
                    request_queue_size: 500,
                    resolve_peer_countries: !0,
                    resume_data_storage_type: Jy.LEGACY,
                    rss_auto_downloading_enabled: !1,
                    rss_download_repack_proper_episodes: !0,
                    rss_fetch_delay: 60,
                    rss_max_articles_per_feed: 50,
                    rss_processing_enabled: !1,
                    rss_refresh_interval: 600,
                    rss_smart_episode_filters: `s(\\d+)e(\\d+)
(\\d+)x(\\d+)
(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})
(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})`,
                    save_path: "/downloads",
                    save_path_changed_tmm_enabled: !1,
                    save_resume_data_interval: 60,
                    scan_dirs: {},
                    schedule_from_hour: 8,
                    schedule_from_min: 0,
                    schedule_to_hour: 20,
                    schedule_to_min: 0,
                    scheduler_days: 0,
                    scheduler_enabled: !1,
                    send_buffer_low_watermark: 10,
                    send_buffer_watermark: 500,
                    send_buffer_watermark_factor: 50,
                    slow_torrent_dl_rate_threshold: 2,
                    slow_torrent_inactive_timer: 60,
                    slow_torrent_ul_rate_threshold: 2,
                    socket_backlog_size: 30,
                    socket_receive_buffer_size: 0,
                    socket_send_buffer_size: 0,
                    ssl_enabled: !1,
                    ssl_listen_port: 443,
                    ssrf_mitigation: !0,
                    start_paused_enabled: !1,
                    stop_tracker_timeout: 2,
                    temp_path: "/downloads/incomplete",
                    temp_path_enabled: !1,
                    torrent_changed_tmm_enabled: !1,
                    torrent_content_layout: no.NO_SUBFOLDER,
                    torrent_content_remove_option: Zy.MOVE_TO_TRASH,
                    torrent_file_size_limit: 104857600,
                    torrent_stop_condition: io.METADATA_RECEIVED,
                    up_limit: 0,
                    upload_choking_algorithm: 1,
                    upload_slots_behavior: 0,
                    upnp: !1,
                    upnp_lease_duration: 0,
                    use_category_paths_in_manual_mode: !1,
                    use_https: !1,
                    use_subcategories: !1,
                    use_unwanted_folder: !0,
                    utp_tcp_mixed_mode: 0,
                    validate_https_tracker_certificate: !0,
                    web_ui_address: "*",
                    web_ui_ban_duration: 3600,
                    web_ui_clickjacking_protection_enabled: !1,
                    web_ui_csrf_protection_enabled: !1,
                    web_ui_custom_http_headers: "",
                    web_ui_domain_list: "*",
                    web_ui_host_header_validation_enabled: !1,
                    web_ui_https_cert_path: "/config/https/server.crt",
                    web_ui_https_key_path: "/config/https/server.key",
                    web_ui_max_auth_fail_count: 9999,
                    web_ui_port: 8080,
                    web_ui_reverse_proxies_list: "",
                    web_ui_reverse_proxy_enabled: !1,
                    web_ui_secure_cookie_enabled: !0,
                    web_ui_session_timeout: 3600,
                    web_ui_upnp: !1,
                    web_ui_use_custom_http_headers_enabled: !1,
                    web_ui_username: "admin"
                }
            });
        }
        async setPreferences(e) {
            return this.generateResponse({
                shouldResolve: !0
            });
        }
        async shutdownApp() {
            return this.generateResponse({
                result: !0
            });
        }
        async getNetworkInterfaces() {
            return this.generateResponse({
                result: [
                    {
                        name: "lo",
                        value: "lo"
                    },
                    {
                        name: "eth0",
                        value: "eth0"
                    }
                ]
            });
        }
        async getAddresses(e = "") {
            switch(e){
                case "lo":
                    return this.generateResponse({
                        result: [
                            "127.0.0.1"
                        ]
                    });
                case "eth0":
                    return this.generateResponse({
                        result: [
                            "172.21.0.2"
                        ]
                    });
                default:
                    return this.generateResponse({
                        result: []
                    });
            }
        }
        async sendTestEmail() {
            return this.generateResponse();
        }
        async getDirectoryContent(e, a) {
            return this.generateResponse({
                result: Fe.helpers.multiple(()=>`${e}/${Fe.system.fileName()}`, {
                    count: {
                        min: 0,
                        max: 5
                    }
                })
            });
        }
        async login(e) {
            return this.generateResponse({
                result: {
                    data: "Ok.",
                    status: 200,
                    statusText: "OK"
                }
            });
        }
        async logout() {
            return this.generateResponse({
                shouldResolve: !0
            });
        }
        async getLogs(e, a) {
            const r = Math.floor(new Date().getTime() / 1e3);
            return this.generateResponse({
                result: [
                    {
                        id: 0,
                        message: "qBittorrent v4.6.2 started",
                        timestamp: r,
                        type: rt.NORMAL
                    },
                    {
                        id: 1,
                        message: "Using config directory: /config/qBittorrent",
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 2,
                        message: 'Trying to listen on the following list of IP addresses: "0.0.0.0:6881,[::]:6881"',
                        timestamp: r,
                        type: rt.WARNING
                    },
                    {
                        id: 3,
                        message: 'Peer ID: "-qB4620-"',
                        timestamp: r,
                        type: rt.CRITICAL
                    },
                    {
                        id: 4,
                        message: 'HTTP User-Agent: "qBittorrent/4.6.2"',
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 5,
                        message: "Distributed Hash Table (DHT) support: ON",
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 6,
                        message: "Local Peer Discovery support: ON",
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 7,
                        message: "Peer Exchange (PeX) support: ON",
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 8,
                        message: "Anonymous mode: OFF",
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 9,
                        message: "Encryption support: ON",
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 10,
                        message: 'Successfully listening on IP. IP: "127.0.0.1". Port: "TCP/6881"',
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 11,
                        message: 'Successfully listening on IP. IP: "127.0.0.1". Port: "UTP/6881"',
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 12,
                        message: 'Successfully listening on IP. IP: "172.21.0.2". Port: "TCP/6881"',
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 13,
                        message: 'Successfully listening on IP. IP: "172.21.0.2". Port: "UTP/6881"',
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 14,
                        message: "IP geolocation database loaded. Type: DBIP-Country-Lite. Build time: Fri Dec 1 01:11:53 2023.",
                        timestamp: r,
                        type: rt.INFO
                    },
                    {
                        id: 15,
                        message: "WebUI: Now listening on IP: *, port: 8080",
                        timestamp: r,
                        type: rt.NORMAL
                    }
                ]
            });
        }
        async createFeed(e) {
            return this.generateResponse();
        }
        async setRule(e, a) {
            return this.generateResponse();
        }
        async getFeeds(e) {
            return this.generateResponse({
                result: [
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed1",
                        title: "RSS Feed 1",
                        uid: "{7a458bee-856a-4c0e-b751-11fd2183dfe4}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm1",
                                isRead: !1,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Lorem ipsum odor amet, consectetuer adipiscing elit. Tristique maximus pellentesque lacinia, interdum suspendisse feugiat senectus consectetur porta.",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            },
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:47 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm1a",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 1a",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            },
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:48 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm1b",
                                isRead: !1,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 1b",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !0,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed2",
                        title: "RSS Feed 2",
                        uid: "{1ae133e7-ee5f-41c5-a11d-e59fcad3be52}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm2",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 2",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !0,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed3",
                        title: "RSS Feed 3",
                        uid: "{4d2082fb-064e-4085-a1e4-ec5fd4d7651a}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm3",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 3",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed4",
                        title: "RSS Feed 4",
                        uid: "{554d2a88-b3ab-41b4-82c1-7cd06931dd97}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm4",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 4",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed5",
                        title: "RSS Feed 5",
                        uid: "{c22bc325-9874-481c-8b54-c8135fef5798}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm5",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 5",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed6",
                        title: "RSS Feed 6",
                        uid: "{b4ecdc88-c192-464e-a616-2844cbc69007}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm6",
                                isRead: !1,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 6",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed7",
                        title: "RSS Feed 7",
                        uid: "{64e501a3-58c1-4397-8e90-5650e9dafe3f}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm7",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 7",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed8",
                        title: "RSS Feed 8",
                        uid: "{52489995-2ac8-47f3-89da-714199693ec7}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm8",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 8",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed9",
                        title: "RSS Feed 9",
                        uid: "{63e6d3eb-1fc7-4c78-a1dd-422c10631a65}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm9",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 9",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed10",
                        title: "RSS Feed 10",
                        uid: "{41ca2a58-aec4-48c0-91c7-4f08e5e8318a}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm10",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 10",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed11",
                        title: "RSS Feed 11",
                        uid: "{fafb2e55-979c-4188-a0a4-dc3375cc179c}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm11",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 11",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed12",
                        title: "RSS Feed 12",
                        uid: "{fafb2e55-979c-4188-a0a4-dc3375cc179d}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm12",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 12",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed13",
                        title: "RSS Feed 13",
                        uid: "{fafb2e55-979c-4188-a0a4-dc3375cc179e}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm13",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 13",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed14",
                        title: "RSS Feed 14",
                        uid: "{fafb2e55-979c-4188-a0a4-dc3375cc179f}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm14",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 14",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed15",
                        title: "RSS Feed 15",
                        uid: "{fafb2e55-979c-4188-a0a4-dc3375cc179g}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm15",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 15",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed16",
                        title: "RSS Feed 16",
                        uid: "{fafb2e55-979c-4188-a0a4-dc3375cc179h}",
                        url: "https://www.example.com/feed",
                        articles: [
                            {
                                author: "John Doe",
                                date: "02 Aug 2023 16:00:46 +0000",
                                description: "This is a <strong>sample</strong> <i>description</i>",
                                id: "SDb4v2op8wm16",
                                isRead: !0,
                                link: "https://www.example.com/article/SDb4v2op8wm",
                                title: "Sample title 16",
                                torrentURL: "https://www.example.com/article/SDb4v2op8wm"
                            }
                        ]
                    },
                    {
                        hasError: !1,
                        isLoading: !1,
                        lastBuildDate: "02 Aug 2023 16:00:46 +0000",
                        name: "feed17",
                        title: "RSS Feed 17",
                        uid: "{7ae5ac9f-4698-4638-9a99-197462c3a456}",
                        url: "https://www.example.com/feed",
                        articles: []
                    }
                ]
            });
        }
        async getRules() {
            return this.generateResponse({
                result: [
                    {
                        affectedFeeds: [
                            "https://www.example.com/feed"
                        ],
                        enabled: !0,
                        episodeFilter: "",
                        ignoreDays: 0,
                        lastMatch: "",
                        mustContain: "",
                        mustNotContain: "",
                        name: "rule1",
                        previouslyMatchedEpisodes: [],
                        priority: 0,
                        smartFilter: !1,
                        torrentParams: {
                            category: "",
                            download_limit: -1,
                            download_path: "",
                            inactive_seeding_time_limit: -2,
                            operating_mode: ab.AUTO_MANAGED,
                            ratio_limit: -2,
                            save_path: "",
                            seeding_time_limit: -2,
                            skip_checking: !1,
                            tags: [],
                            upload_limit: -1
                        },
                        useRegex: !1
                    }
                ]
            });
        }
        async renameFeed(e, a) {
            return this.generateResponse();
        }
        async setFeedUrl(e, a) {
            return this.generateResponse();
        }
        async renameRule(e, a) {
            return this.generateResponse();
        }
        async deleteRule(e) {
            return this.generateResponse();
        }
        async deleteFeed(e) {
            return this.generateResponse();
        }
        async markAsRead(e, a) {
            return this.generateResponse();
        }
        async refreshFeed(e) {
            return this.generateResponse({
                delay: 1e3
            });
        }
        async getMatchingArticles(e) {
            return this.generateResponse({
                result: {
                    [e]: [
                        "Sample title 1"
                    ]
                }
            });
        }
        async startSearch(e, a, r) {
            return this.generateResponse({
                result: {
                    id: 1
                }
            });
        }
        async stopSearch(e) {
            return this.generateResponse({
                result: !0
            });
        }
        async getSearchStatus(e) {
            return this.generateResponse({
                result: [
                    {
                        id: e ?? 1,
                        status: "Stopped",
                        total: 1
                    }
                ]
            });
        }
        async getSearchResults(e, a, r) {
            return this.generateResponse({
                result: {
                    results: [
                        {
                            descrLink: "https://www.example.com/torrent/SDb4v2op8wm",
                            fileName: "Sample title 1",
                            fileSize: 100,
                            fileUrl: "https://www.example.com/torrent/SDb4v2op8wm",
                            nbLeechers: 0,
                            nbSeeders: 0,
                            siteUrl: "https://www.example.com"
                        }
                    ],
                    status: "Stopped",
                    total: 1
                }
            });
        }
        async deleteSearchPlugin(e) {
            return this.generateResponse({
                result: !0
            });
        }
        async getSearchPlugins() {
            return this.generateResponse({
                result: [
                    {
                        enabled: !0,
                        fullName: "Example",
                        name: "Example",
                        supportedCategories: [
                            {
                                id: "0",
                                name: "All"
                            }
                        ],
                        url: "https://www.example.com",
                        version: "1.0.0"
                    }
                ]
            });
        }
        async installSearchPlugin(e) {
            return this.generateResponse({
                result: !0
            });
        }
        async uninstallSearchPlugin(e) {
            return this.generateResponse();
        }
        async enableSearchPlugin(e, a) {
            return this.generateResponse();
        }
        async updateSearchPlugins() {
            return this.generateResponse();
        }
        async downloadTorrentWithSearchPlugin(e, a) {
            return this.generateResponse();
        }
        async getMaindata(e) {
            const a = Dr.hashes.reduce((l, u)=>(l[u] = this.generateMockedTorrent(u), l), {}), r = Fe.number.int({
                min: 0,
                max: 5e13
            }), n = Fe.number.int({
                min: 0,
                max: 5e13
            }), i = 0, o = 5e6, s = {
                alltime_dl: r,
                alltime_ul: n,
                average_time_queue: 0,
                connection_status: Fe.helpers.enumValue(Ga),
                dht_nodes: Fe.number.int({
                    min: 0,
                    max: 1e3
                }),
                dl_info_data: Fe.number.int({
                    min: 0,
                    max: 1e11
                }),
                dl_info_speed: Fe.number.int({
                    min: 0,
                    max: 125e6
                }),
                dl_rate_limit: i,
                free_space_on_disk: Fe.number.int({
                    min: 0,
                    max: 5e11
                }),
                global_ratio: (n / r).toFixed(2),
                queued_io_jobs: 0,
                queueing: !1,
                read_cache_hits: "0",
                read_cache_overload: "0",
                refresh_interval: 2500,
                total_buffers_size: 0,
                total_peer_connections: 0,
                total_queued_size: 0,
                total_wasted_session: 0,
                up_info_data: Fe.number.int({
                    min: 0,
                    max: 1e11
                }),
                up_info_speed: Fe.number.int({
                    min: 0,
                    max: o
                }),
                up_rate_limit: o,
                use_alt_speed_limits: !1,
                use_subcategories: !1,
                write_cache_overload: "0"
            };
            return this.generateResponse({
                result: {
                    full_update: e ? void 0 : !0,
                    rid: e ?? 1,
                    server_state: s,
                    torrents: a,
                    categories: this.categories,
                    tags: this.tags,
                    trackers: this.trackers
                }
            });
        }
        async syncTorrentPeers(e, a) {
            const r = ()=>Fe.helpers.arrayElement([
                    "BT",
                    "μTP",
                    "WEB"
                ]), n = ()=>Fe.location.country(), i = ()=>Fe.location.countryCode(), o = ()=>Fe.number.int({
                    min: 0,
                    max: 5e7
                }), s = ()=>Fe.number.int({
                    min: 0,
                    max: 5e9
                }), l = Fe.internet.ipv4(), u = Fe.internet.port(), c = Fe.internet.ipv4(), d = Fe.internet.port(), h = Fe.internet.ipv4(), m = Fe.internet.port();
            return a = a ?? 0, this.generateResponse({
                result: {
                    full_update: !0,
                    rid: a + 1,
                    peers: {
                        [`${l}:${u}`]: {
                            client: "qBittorrent v4.6.2",
                            connection: r(),
                            country: n(),
                            country_code: i(),
                            dl_speed: o(),
                            downloaded: s(),
                            files: "ubuntu-23.10.1-desktop-amd64.iso",
                            flags: "D",
                            flags_desc: "dht",
                            ip: l,
                            peer_id_client: "-qB4620-",
                            port: u,
                            progress: Fe.number.float({
                                min: 0,
                                max: 1,
                                multipleOf: .01
                            }),
                            relevance: Fe.number.float({
                                min: 0,
                                max: 1,
                                multipleOf: .01
                            }),
                            up_speed: o(),
                            uploaded: s()
                        },
                        [`${c}:${d}`]: {
                            client: "Tixati 2.84",
                            connection: r(),
                            country: n(),
                            country_code: i(),
                            dl_speed: o(),
                            downloaded: s(),
                            files: "ubuntu/ubuntu-23.10.1-desktop-amd64.iso",
                            flags: "D ? S H P",
                            flags_desc: `D = Interested (local) and unchoked (peer)
? = Not interested (peer) and unchoked (local)
S = Peer snubbed
H = Peer from DHT
P = μTP`,
                            ip: c,
                            peer_id_client: "TIX0284-",
                            port: d,
                            progress: Fe.number.float({
                                min: 0,
                                max: 1,
                                multipleOf: .01
                            }),
                            relevance: Fe.number.float({
                                min: 0,
                                max: 1,
                                multipleOf: .01
                            }),
                            up_speed: Fe.number.int(5e7),
                            uploaded: s()
                        },
                        [`${h}:${m}`]: {
                            client: "Deluge/2.1.1 libtorrent/2.0.5.0",
                            connection: r(),
                            country: n(),
                            country_code: i(),
                            dl_speed: o(),
                            downloaded: s(),
                            files: "ubuntu2/ubuntu-23.10.1-desktop-amd64.iso",
                            flags: "U H X P",
                            flags_desc: `U = Interested (peer) and unchoked (local)
H = Peer from DHT
X = Peer from PEX
P = μTP`,
                            ip: h,
                            peer_id_client: "-DE211s-",
                            port: m,
                            progress: Fe.number.float({
                                min: 0,
                                max: 1,
                                multipleOf: .01
                            }),
                            relevance: Fe.number.float({
                                min: 0,
                                max: 1,
                                multipleOf: .01
                            }),
                            up_speed: o(),
                            uploaded: s()
                        }
                    },
                    show_flags: a <= 0 || void 0
                }
            });
        }
        async addTorrentCreatorTask(e) {
            return this.generateResponse({
                result: "id"
            });
        }
        async getTorrentCreatorStatus(e) {
            return this.generateResponse({
                result: [
                    {
                        taskID: e,
                        sourcePath: Fe.system.directoryPath(),
                        pieceSize: Fe.number.int({
                            min: 0,
                            max: 16384e3,
                            multipleOf: 512e3
                        }),
                        private: Fe.datatype.boolean(),
                        timeAdded: Fe.date.anytime().toString(),
                        format: Fe.helpers.enumValue(tb),
                        optimizeAlignment: Fe.datatype.boolean(),
                        status: Fe.helpers.enumValue(eb),
                        comment: Fe.word.words({
                            count: {
                                min: 0,
                                max: 25
                            }
                        }),
                        torrentFilePath: Fe.system.filePath(),
                        source: Fe.system.directoryPath(),
                        trackers: Fe.helpers.multiple(()=>Fe.internet.url(), {
                            count: Fe.number.int({
                                min: 0,
                                max: 5
                            })
                        }),
                        urlSeeds: Fe.helpers.multiple(()=>Fe.internet.url(), {
                            count: Fe.number.int({
                                min: 0,
                                max: 5
                            })
                        }),
                        timeFinished: Fe.date.recent().toString(),
                        timeStarted: Fe.date.past().toString()
                    }
                ]
            });
        }
        async getTorrentCreatorOutput(e) {
            return this.generateResponse({
                result: new Blob([
                    new ArrayBuffer(1024)
                ], {
                    type: "application/x-bittorrent"
                })
            });
        }
        async deleteTorrentCreatorTask(e) {
            return this.generateResponse({
                result: !0
            });
        }
        async getTorrents(e) {
            return this.generateResponse({
                result: Dr.hashes.map((a)=>({
                        ...this.generateMockedTorrent(a),
                        hash: a
                    }))
            });
        }
        async getTorrentTrackers(e) {
            const a = ()=>Fe.number.int({
                    min: 0,
                    max: 1e3
                });
            return this.generateResponse({
                result: [
                    {
                        msg: "",
                        num_downloaded: a(),
                        num_leeches: a(),
                        num_peers: a(),
                        num_seeds: a(),
                        status: 2,
                        tier: -1,
                        url: "** [DHT] **"
                    },
                    {
                        msg: "",
                        num_downloaded: a(),
                        num_leeches: a(),
                        num_peers: a(),
                        num_seeds: a(),
                        status: 2,
                        tier: -1,
                        url: "** [PeX] **"
                    },
                    {
                        msg: "",
                        num_downloaded: a(),
                        num_leeches: a(),
                        num_peers: a(),
                        num_seeds: a(),
                        status: 2,
                        tier: -1,
                        url: "** [LSD] **"
                    },
                    {
                        msg: "",
                        num_downloaded: -1,
                        num_leeches: -1,
                        num_peers: -1,
                        num_seeds: -1,
                        status: 1,
                        tier: 0,
                        url: "https://torrent.ubuntu.com/announce"
                    },
                    {
                        msg: "",
                        num_downloaded: -1,
                        num_leeches: -1,
                        num_peers: -1,
                        num_seeds: -1,
                        status: 1,
                        tier: 1,
                        url: "https://ipv6.torrent.ubuntu.com/announce"
                    }
                ]
            });
        }
        async setTorrentName(e, a) {
            return this.generateResponse();
        }
        async getTorrentPieceStates(e) {
            return this.generateResponse({
                result: new Array(64).fill(Qy.MISSING)
            });
        }
        async getTorrentFiles(e, a) {
            return this.generateResponse({
                result: [
                    {
                        availability: 1,
                        index: 0,
                        is_seed: !1,
                        name: "ubuntu-23.10.1-desktop-amd64.iso",
                        piece_range: [
                            0,
                            63
                        ],
                        priority: mi.MAXIMAL,
                        progress: 0,
                        size: 173995520
                    },
                    {
                        availability: 1,
                        index: 1,
                        is_seed: !1,
                        name: "ubuntu-24.10.1-desktop-amd64.iso",
                        piece_range: [
                            0,
                            63
                        ],
                        priority: mi.NORMAL,
                        progress: 0,
                        size: 1173995520
                    },
                    {
                        availability: 1,
                        index: 2,
                        is_seed: !1,
                        name: "ubuntu/ubuntu-23.10.1-desktop-amd64.iso",
                        piece_range: [
                            0,
                            63
                        ],
                        priority: mi.NORMAL,
                        progress: 0,
                        size: 2173995520
                    },
                    {
                        availability: 1,
                        index: 3,
                        is_seed: !1,
                        name: "ubuntu/ubuntu-24.10.1-desktop-amd64.iso",
                        piece_range: [
                            0,
                            63
                        ],
                        priority: mi.NORMAL,
                        progress: 0,
                        size: 3173995520
                    },
                    {
                        availability: 1,
                        index: 4,
                        is_seed: !1,
                        name: "ubuntu2/ubuntu-23.10.1-desktop-amd64.iso",
                        piece_range: [
                            0,
                            63
                        ],
                        priority: mi.NORMAL,
                        progress: 0,
                        size: 4173995520
                    }
                ]
            });
        }
        async getAvailableTags() {
            return this.generateResponse({
                result: this.tags
            });
        }
        async getTorrentProperties(e) {
            return this.generateResponse({
                result: {
                    addition_date: 1702318609,
                    comment: "Ubuntu CD releases.ubuntu.com",
                    completion_date: -1,
                    created_by: "mktorrent 1.1",
                    creation_date: 1697466120,
                    dl_limit: -1,
                    dl_speed: 0,
                    dl_speed_avg: 0,
                    download_path: "",
                    eta: 864e4,
                    hash: e,
                    has_metadata: !0,
                    infohash_v1: "9ecd4676fd0f0474151a4b74a5958f42639cebdf",
                    infohash_v2: "",
                    is_private: !1,
                    last_seen: -1,
                    name: "ubuntu-23.10.1-desktop-amd64.iso",
                    nb_connections: 0,
                    nb_connections_limit: 100,
                    peers: 0,
                    peers_total: 0,
                    piece_size: 262144,
                    pieces_have: 0,
                    pieces_num: 19738,
                    popularity: -1,
                    private: !1,
                    reannounce: 0,
                    save_path: "/downloads",
                    seeding_time: 0,
                    seeds: 0,
                    seeds_total: 0,
                    share_ratio: 0,
                    time_elapsed: 0,
                    total_downloaded: 0,
                    total_downloaded_session: 0,
                    total_size: 5173995520,
                    total_uploaded: 0,
                    total_uploaded_session: 0,
                    total_wasted: 0,
                    up_limit: -1,
                    up_speed: 0,
                    up_speed_avg: 0
                }
            });
        }
        async addTorrents(e, a, r) {
            return this.generateResponse();
        }
        async setTorrentFilePriority(e, a, r) {
            return this.generateResponse();
        }
        async deleteTorrents(e, a) {
            return this.generateResponse();
        }
        async pauseTorrents(e) {
            return this.generateResponse();
        }
        async stopTorrents(e) {
            return this.generateResponse();
        }
        async resumeTorrents(e) {
            return this.generateResponse();
        }
        async startTorrents(e) {
            return this.generateResponse();
        }
        async forceStartTorrents(e) {
            return this.generateResponse();
        }
        async toggleSequentialDownload(e) {
            return this.generateResponse();
        }
        async toggleFirstLastPiecePriority(e) {
            return this.generateResponse();
        }
        async setSuperSeeding(e, a) {
            return this.generateResponse();
        }
        async setAutoTMM(e, a) {
            return this.generateResponse();
        }
        async setDownloadLimit(e, a) {
            return this.generateResponse();
        }
        async setUploadLimit(e, a) {
            return this.generateResponse();
        }
        async getTorrentsCount() {
            return this.generateResponse({
                result: Dr.hashes.length
            });
        }
        async setShareLimit(e, a, r, n) {
            return this.generateResponse();
        }
        async reannounceTorrents(e) {
            return this.generateResponse();
        }
        async recheckTorrents(e) {
            return this.generateResponse();
        }
        async setTorrentDownloadPath(e, a) {
            return this.generateResponse();
        }
        async setTorrentSavePath(e, a) {
            return this.generateResponse();
        }
        async addTorrentTrackers(e, a) {
            return this.generateResponse();
        }
        async editTorrentTracker(e, a, r) {
            return this.generateResponse();
        }
        async removeTorrentTrackers(e, a) {
            return this.generateResponse();
        }
        async addTorrentPeers(e, a) {
            return this.generateResponse();
        }
        async renameFile(e, a, r) {
            return this.generateResponse();
        }
        async renameFolder(e, a, r) {
            return this.generateResponse();
        }
        async setTorrentPriority(e, a) {
            return this.generateResponse();
        }
        async addTorrentTag(e, a) {
            return this.generateResponse();
        }
        async removeTorrentTag(e, a) {
            return this.generateResponse();
        }
        async createTag(e) {
            return this.generateResponse();
        }
        async deleteTags(e) {
            return this.generateResponse();
        }
        async getCategories() {
            return this.generateResponse({
                result: Object.values(this.categories)
            });
        }
        async deleteCategory(e) {
            return this.generateResponse();
        }
        async createCategory(e) {
            return this.generateResponse();
        }
        async setCategory(e, a) {
            return this.generateResponse();
        }
        async editCategory(e) {
            return this.generateResponse();
        }
        async exportTorrent(e) {
            return this.generateResponse({
                result: new Blob([
                    new ArrayBuffer(1024)
                ], {
                    type: "application/x-bittorrent"
                })
            });
        }
        async SSLParameters(e) {
            return this.generateResponse({
                result: {
                    ssl_certificate: Fe.helpers.replaceSymbols("?????????"),
                    ssl_private_key: Fe.helpers.replaceSymbols("?????????"),
                    ssl_dh_params: Fe.helpers.replaceSymbols("?????????")
                }
            });
        }
        async setSSLParameters(e, a) {
            return this.generateResponse({
                result: !0
            });
        }
        async toggleSpeedLimitsMode() {
            return this.generateResponse();
        }
        async getGlobalDownloadLimit() {
            return this.generateResponse({
                result: 0
            });
        }
        async getGlobalUploadLimit() {
            return this.generateResponse({
                result: 0
            });
        }
        async setGlobalDownloadLimit(e) {
            return this.generateResponse();
        }
        async setGlobalUploadLimit(e) {
            return this.generateResponse();
        }
        async banPeers(e) {
            return this.generateResponse();
        }
    }
    class Lm {
        static _instance;
        axios;
        constructor(){
            this.axios = Vt.create({
                baseURL: "api/v2"
            }), this.axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
        }
        static getInstance() {
            return this._instance || (this._instance = new Lm), this._instance;
        }
        async post(e, a, r) {
            const n = new URLSearchParams(a);
            return this.axios.post(e, n, r);
        }
        async torrentAction(e, a, r) {
            const n = {
                hashes: a.length ? a.join("|") : "all",
                ...r
            };
            return this.post(`/torrents/${e}`, n).then((i)=>i.data);
        }
        async getBuildInfo() {
            return this.axios.get("/app/buildInfo").then((e)=>e.data).catch(()=>{});
        }
        async getVersion() {
            return this.axios.get("/app/version").then((e)=>e.data).then((e)=>e.includes("v") ? e.substring(1) : e);
        }
        async getPreferences() {
            return this.axios.get("/app/preferences").then((e)=>e.data);
        }
        async setPreferences(e) {
            const a = {
                json: JSON.stringify(e)
            };
            return this.post("/app/setPreferences", a).then((r)=>r.data);
        }
        async shutdownApp() {
            return this.axios.post("/app/shutdown").then(()=>!0, ()=>!1);
        }
        async getNetworkInterfaces() {
            return this.axios.get("/app/networkInterfaceList").then((e)=>e.data);
        }
        async getAddresses(e = "") {
            const a = {
                iface: e
            };
            return this.axios.get("/app/networkInterfaceAddressList", {
                params: a
            }).then((r)=>r.data);
        }
        async sendTestEmail() {
            return this.axios.post("/app/sendTestEmail");
        }
        async getDirectoryContent(e, a) {
            return this.post("/app/getDirectoryContent", {
                dirPath: e,
                mode: a
            }, {
                validateStatus: (r)=>r < 500
            }).then((r)=>r.status === 200 ? r.data : null);
        }
        async login(e) {
            const a = new URLSearchParams(e);
            return this.axios.post("/auth/login", a, {
                validateStatus: ()=>!0
            });
        }
        async logout() {
            return this.axios.post("/auth/logout");
        }
        async getLogs(e, a) {
            const r = a ?? rt.ALL, n = {
                last_known_id: e,
                info: (r & rt.INFO) == rt.INFO,
                normal: (r & rt.NORMAL) == rt.NORMAL,
                warning: (r & rt.WARNING) == rt.WARNING,
                critical: (r & rt.CRITICAL) == rt.CRITICAL
            };
            return this.axios.get("/log/main", {
                params: n
            }).then((i)=>i.data);
        }
        async createFeed(e) {
            await this.post("/rss/addFeed", {
                url: e.url,
                path: e.name
            });
        }
        async setRule(e, a) {
            await this.post("/rss/setRule", {
                ruleName: e,
                ruleDef: JSON.stringify(a)
            });
        }
        async getFeeds(e) {
            return this.axios.get("/rss/items", {
                params: {
                    withData: e
                }
            }).then((a)=>a.data).then((a)=>{
                const r = [];
                for(const n in a)r.push({
                    name: n,
                    ...a[n]
                });
                return r;
            });
        }
        async getRules() {
            return this.axios.get("/rss/rules").then((e)=>e.data).then((e)=>{
                const a = [];
                for(const r in e){
                    const n = e[r], i = {
                        name: r,
                        ...n
                    };
                    Object.hasOwn(i, "torrentParams") || (i.torrentParams = {
                        save_path: n.savePath,
                        category: n.assignedCategory,
                        stopped: n.addPaused,
                        content_layout: n.torrentContentLayout
                    }), a.push(i);
                }
                return a;
            });
        }
        async renameFeed(e, a) {
            await this.post("/rss/moveItem", {
                itemPath: e,
                destPath: a
            });
        }
        async setFeedUrl(e, a) {
            await this.post("/rss/setFeedURL", {
                path: e,
                url: a
            });
        }
        async renameRule(e, a) {
            await this.post("/rss/renameRule", {
                ruleName: e,
                newRuleName: a
            });
        }
        async deleteRule(e) {
            await this.post("rss/removeRule", {
                ruleName: e
            });
        }
        async deleteFeed(e) {
            await this.post("rss/removeItem", {
                path: e
            });
        }
        async markAsRead(e, a) {
            const r = {
                itemPath: e
            };
            a && (r.articleId = a), await this.post("rss/markAsRead", r);
        }
        async refreshFeed(e) {
            await this.post("rss/refreshItem", {
                itemPath: e
            });
        }
        async getMatchingArticles(e) {
            return this.axios.get("/rss/matchingArticles", {
                params: {
                    ruleName: e
                }
            }).then((a)=>a.data);
        }
        async startSearch(e, a, r) {
            const n = {
                pattern: e,
                category: a,
                plugins: r.join("|")
            };
            return this.post("/search/start", n).then((i)=>i.data);
        }
        async stopSearch(e) {
            return this.post("/search/stop", {
                id: e
            }).then(()=>!0, ()=>!1);
        }
        async getSearchStatus(e) {
            return this.post("/search/status", {
                id: e !== void 0 ? e : 0
            }).then((a)=>a.data);
        }
        async getSearchResults(e, a, r) {
            return this.post("/search/results", {
                id: e,
                limit: r,
                offset: a
            }).then((n)=>n.data);
        }
        async deleteSearchPlugin(e) {
            return this.post("/search/delete", {
                id: e
            }).then(()=>!0, ()=>!1);
        }
        async getSearchPlugins() {
            return this.axios.get("/search/plugins").then((e)=>e.data);
        }
        async installSearchPlugin(e) {
            return this.post("/search/installPlugin", {
                sources: e.join("|")
            }).then(()=>!0, ()=>!1);
        }
        async uninstallSearchPlugin(e) {
            await this.post("/search/uninstallPlugin", {
                names: e.join("|")
            });
        }
        async enableSearchPlugin(e, a) {
            const r = {
                names: e.join("|"),
                enable: a
            };
            await this.post("/search/enablePlugin", r);
        }
        async updateSearchPlugins() {
            await this.post("/search/updatePlugins");
        }
        async downloadTorrentWithSearchPlugin(e, a) {
            await this.post("/search/downloadTorrent", {
                torrentUrl: e,
                pluginName: a
            });
        }
        async getMaindata(e) {
            return this.axios.get("/sync/maindata", {
                params: {
                    rid: e
                }
            }).then((a)=>a.data);
        }
        async syncTorrentPeers(e, a) {
            return this.axios.get("/sync/torrentPeers", {
                params: {
                    hash: e,
                    rid: a
                }
            }).then((r)=>r.data);
        }
        async addTorrentCreatorTask(e) {
            return e.trackers && (e.trackers = e.trackers.trim().replaceAll(`
`, "|")), e.urlSeeds && (e.urlSeeds = e.urlSeeds.trim().replaceAll(`
`, "|")), this.post("/torrentcreator/addTask", e).then((a)=>a.data).then((a)=>a.taskID);
        }
        async getTorrentCreatorStatus(e) {
            return this.axios.get("/torrentcreator/status", {
                params: {
                    taskID: e
                }
            }).then((a)=>a.data);
        }
        async getTorrentCreatorOutput(e) {
            return this.axios.get("/torrentcreator/torrentFile", {
                params: {
                    taskID: e
                },
                responseType: "arraybuffer",
                headers: {
                    Accept: "application/x-bittorrent"
                }
            }).then((a)=>new Blob([
                    a.data
                ], {
                    type: "application/x-bittorrent"
                }));
        }
        async deleteTorrentCreatorTask(e) {
            return this.post("/torrentcreator/deleteTask", {
                taskID: e
            }).then(()=>!0).catch(()=>!1);
        }
        async getTorrents(e) {
            return this.axios.get("/torrents/info", {
                params: e
            }).then((a)=>a.data);
        }
        async getTorrentTrackers(e) {
            return this.axios.get("/torrents/trackers", {
                params: {
                    hash: e
                }
            }).then((a)=>a.data);
        }
        async setTorrentName(e, a) {
            await this.post("/torrents/rename", {
                hash: e,
                name: a
            });
        }
        async getTorrentPieceStates(e) {
            return this.axios.get("/torrents/pieceStates", {
                params: {
                    hash: e
                }
            }).then((a)=>a.data);
        }
        async getTorrentFiles(e, a) {
            return this.axios.get("/torrents/files", {
                params: {
                    hash: e,
                    indexes: a?.join("|")
                }
            }).then((r)=>r.data).then((r)=>r.some((n)=>n.index === void 0) ? r.map((n, i)=>({
                        ...n,
                        index: i
                    })) : r);
        }
        async getAvailableTags() {
            return this.axios.get("/torrents/tags").then((e)=>e.data).then((e)=>e.sort((a, r)=>a.localeCompare(r.toLowerCase(), void 0, {
                        sensitivity: "base"
                    })));
        }
        async getTorrentProperties(e) {
            return this.axios.get("/torrents/properties", {
                params: {
                    hash: e
                }
            }).then((a)=>a.data);
        }
        async addTorrents(e, a, r) {
            let n;
            if (e) {
                const i = new FormData;
                for (const [o, s] of Object.entries(r || {}))s !== void 0 && i.set(o, s);
                for (const o of e)i.append("torrents", o);
                n = i;
            } else n = new URLSearchParams(r || {});
            return a && n.set("urls", a), this.axios.post("/torrents/add", n);
        }
        async setTorrentFilePriority(e, a, r) {
            const n = {
                hash: e,
                id: a.join("|"),
                priority: r
            };
            return this.post("/torrents/filePrio", n).then((i)=>i.data);
        }
        async deleteTorrents(e, a) {
            if (e.length) return this.torrentAction("delete", e, {
                deleteFiles: a
            });
        }
        async pauseTorrents(e) {
            return this.torrentAction("pause", e);
        }
        async stopTorrents(e) {
            return this.torrentAction("stop", e);
        }
        async resumeTorrents(e) {
            return this.torrentAction("resume", e);
        }
        async startTorrents(e) {
            return this.torrentAction("start", e);
        }
        async forceStartTorrents(e) {
            return this.torrentAction("setForceStart", e, {
                value: !0
            });
        }
        async toggleSequentialDownload(e) {
            return this.torrentAction("toggleSequentialDownload", e);
        }
        async toggleFirstLastPiecePriority(e) {
            return this.torrentAction("toggleFirstLastPiecePrio", e);
        }
        async setSuperSeeding(e, a) {
            return this.torrentAction("setSuperSeeding", e, {
                value: a
            });
        }
        async setAutoTMM(e, a) {
            return this.torrentAction("setAutoManagement", e, {
                enable: a
            });
        }
        async setDownloadLimit(e, a) {
            return this.torrentAction("setDownloadLimit", e, {
                limit: a
            });
        }
        async setUploadLimit(e, a) {
            return this.torrentAction("setUploadLimit", e, {
                limit: a
            });
        }
        async getTorrentsCount() {
            return this.axios.get("/torrents/count").then((e)=>e.data);
        }
        async setShareLimit(e, a, r, n) {
            return this.torrentAction("setShareLimits", e, {
                ratioLimit: a,
                seedingTimeLimit: r,
                inactiveSeedingTimeLimit: n
            });
        }
        async reannounceTorrents(e) {
            return this.torrentAction("reannounce", e);
        }
        async recheckTorrents(e) {
            return this.torrentAction("recheck", e);
        }
        async setTorrentDownloadPath(e, a) {
            const r = {
                id: e.length ? e.join("|") : "all",
                path: a
            };
            return this.post("/torrents/setDownloadPath", r).then((n)=>n.data);
        }
        async setTorrentSavePath(e, a) {
            const r = {
                id: e.length ? e.join("|") : "all",
                path: a
            };
            return this.post("/torrents/setSavePath", r).then((n)=>n.data);
        }
        async addTorrentTrackers(e, a) {
            const r = {
                hash: e,
                urls: a
            };
            return this.post("/torrents/addTrackers", r).then((n)=>n.data);
        }
        async editTorrentTracker(e, a, r) {
            const n = {
                hash: e,
                origUrl: a,
                newUrl: r
            };
            return this.post("/torrents/editTracker", n).then((i)=>i.data);
        }
        async removeTorrentTrackers(e, a) {
            const r = {
                hash: e,
                urls: a.join("|")
            };
            return this.post("/torrents/removeTrackers", r).then((n)=>n.data);
        }
        async addTorrentPeers(e, a) {
            return this.torrentAction("addPeers", e, {
                peers: a.join("|")
            });
        }
        async renameFile(e, a, r) {
            const n = {
                hash: e,
                oldPath: a,
                newPath: r
            };
            return this.post("/torrents/renameFile", n).then((i)=>i.data);
        }
        async renameFolder(e, a, r) {
            const n = {
                hash: e,
                oldPath: a,
                newPath: r
            };
            return this.post("/torrents/renameFolder", n).then((i)=>i.data);
        }
        async setTorrentPriority(e, a) {
            return this.post(`/torrents/${a}`, {
                hashes: e.join("|")
            }).then((r)=>r.data);
        }
        async addTorrentTag(e, a) {
            return this.torrentAction("addTags", e, {
                tags: a.join(",")
            });
        }
        async removeTorrentTag(e, a) {
            const r = a ? {
                tags: a.join(",")
            } : void 0;
            return this.torrentAction("removeTags", e, r);
        }
        async createTag(e) {
            return this.post("/torrents/createTags", {
                tags: e.join(",")
            }).then((a)=>a.data);
        }
        async deleteTags(e) {
            return this.post("/torrents/deleteTags", {
                tags: e.join(",")
            }).then((a)=>a.data);
        }
        async getCategories() {
            return this.axios.get("/torrents/categories").then((e)=>e.data).then((e)=>Object.values(e));
        }
        async deleteCategory(e) {
            return this.post("/torrents/removeCategories", {
                categories: e.join(`
`)
            }).then((a)=>a.data);
        }
        async createCategory(e) {
            return this.post("/torrents/createCategory", {
                category: e.name,
                savePath: e.savePath
            }).then((a)=>a.data);
        }
        async setCategory(e, a) {
            return this.torrentAction("setCategory", e, {
                category: a
            });
        }
        async editCategory(e) {
            const a = {
                category: e.name,
                savePath: e.savePath
            };
            return this.post("/torrents/editCategory", a).then((r)=>r.data);
        }
        async exportTorrent(e) {
            return this.axios.get("/torrents/export", {
                params: {
                    hash: e
                },
                responseType: "arraybuffer",
                headers: {
                    Accept: "application/x-bittorrent"
                }
            }).then((a)=>new Blob([
                    a.data
                ], {
                    type: "application/x-bittorrent"
                }));
        }
        async SSLParameters(e) {
            return this.axios.get("/torrents/SSLParameters", {
                params: {
                    hash: e
                }
            }).then((a)=>a.data);
        }
        async setSSLParameters(e, a) {
            return this.post("/torrents/setSSLParameters", {
                hash: e,
                ssl_certificate: a.ssl_certificate,
                ssl_private_key: a.ssl_private_key,
                ssl_dh_params: a.ssl_dh_params
            }).then(()=>!0).catch(()=>!1);
        }
        async toggleSpeedLimitsMode() {
            return this.post("/transfer/toggleSpeedLimitsMode").then((e)=>e.data);
        }
        async getGlobalDownloadLimit() {
            return this.axios.get("/transfer/downloadLimit").then((e)=>e.data);
        }
        async getGlobalUploadLimit() {
            return this.axios.get("/transfer/uploadLimit").then((e)=>e.data);
        }
        async setGlobalDownloadLimit(e) {
            return this.post("/transfer/setDownloadLimit", {
                limit: e
            }).then((a)=>a.data);
        }
        async setGlobalUploadLimit(e) {
            const a = {
                limit: e
            };
            return this.post("/transfer/setUploadLimit", a).then((r)=>r.data);
        }
        async banPeers(e) {
            const a = {
                peers: e.join("|")
            };
            return this.post("/transfer/banPeers", a).then((r)=>r.data);
        }
    }
    let iB, oB, Iv;
    Ee = Lm.getInstance();
    wl = Fa("preferences", ()=>{
        const t = W();
        async function e() {
            t.value = await Ee.getPreferences();
        }
        async function a(r) {
            await Ee.setPreferences(r ?? t.value);
        }
        return {
            preferences: t,
            fetchPreferences: e,
            setPreferences: a,
            $reset: async ()=>{
                await e();
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: sessionStorage
                }
            ]
        }
    });
    Sl = Fa("addTorrents", ()=>{
        const t = wl(), e = W(!0), a = W([]), r = W(""), n = Ba({}), i = Ba({}), o = T(()=>a.value.length + r.value.split(`
`).filter((c)=>c.trim() !== "").length);
        function s(c) {
            l(), c instanceof File ? a.value.push(c) : (r.value !== "" && (r.value += `
`), r.value += c);
        }
        function l() {
            e.value && (e.value = !1, u());
        }
        function u() {
            r.value = "", a.value = [], n.cookie = void 0, n.firstLastPiecePrio = !1, n.rename = void 0, n.sequentialDownload = !1, i.add_to_top_of_queue = t.preferences.add_to_top_of_queue, i.category = void 0, i.content_layout = t.preferences.torrent_content_layout, i.download_limit = void 0, i.download_path = t.preferences.temp_path_enabled ? t.preferences.temp_path : void 0, i.inactive_seeding_time_limit = void 0, i.ratio_limit = void 0, i.save_path = t.preferences.save_path, i.seeding_time_limit = void 0, i.skip_checking = !1, i.stop_condition = t.preferences.torrent_stop_condition, i.stopped = t.preferences.add_stopped_enabled ?? t.preferences.start_paused_enabled, i.tags = void 0, i.upload_limit = void 0, i.use_auto_tmm = t.preferences.auto_tmm_enabled, i.use_download_path = t.preferences.temp_path_enabled;
        }
        return {
            isFirstInit: e,
            files: a,
            urls: r,
            form: n,
            addTorrentParams: i,
            pendingTorrentsCount: o,
            pushTorrentToQueue: s,
            initForm: l,
            resetForm: u,
            $reset: ()=>{
                e.value = !1, u();
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: sessionStorage,
                    excludePaths: [
                        "files"
                    ]
                }
            ]
        }
    });
    kr = Fa("app", ()=>{
        const t = W(!1), e = W("0.0.0"), a = W(), r = T(()=>l("5")), n = T(()=>(a.value?.libtorrent ?? "") >= "1" && !i), i = T(()=>(a.value?.libtorrent ?? "") >= "2");
        async function o() {
            const f = await Ee.getVersion().catch(()=>!1), p = f !== !1;
            return await s(p, f || void 0), p;
        }
        async function s(f, p) {
            if (f) {
                t.value = f, e.value = p || await Ee.getVersion(), a.value = await Ee.getBuildInfo();
                return;
            }
            t.value = f, e.value = "0.0.0", a.value = void 0;
        }
        function l(f) {
            return f ? e.value >= f : !0;
        }
        async function u(f, p) {
            const g = await Ee.login({
                username: f,
                password: p
            });
            return await s(g.data === "Ok."), g;
        }
        async function c() {
            await Ee.logout(), await s(!1);
        }
        async function d() {
            return await Ee.toggleSpeedLimitsMode();
        }
        async function h() {
            return await Ee.shutdownApp();
        }
        async function m() {
            return await Ee.sendTestEmail();
        }
        return {
            isAuthenticated: t,
            version: e,
            buildInfo: a,
            usesQbit5: r,
            usesLibtorrent1: n,
            usesLibtorrent2: i,
            fetchAuthStatus: o,
            setAuthStatus: s,
            isFeatureAvailable: l,
            shutdownQbit: h,
            sendTestEmail: m,
            login: u,
            logout: c,
            toggleAlternativeMode: d,
            $reset: async ()=>{
                a.value = void 0, e.value = "0.0.0", await c();
            }
        };
    });
    Im = Fa("trackers", ()=>{
        const t = de(new Map), e = hl(()=>Array.from(t.value.keys()), Te.text.asc), a = T(()=>[
                ...new Set(e.value.map(Av))
            ]), r = T(()=>Array.from(t.value.entries()).reduce((d, h)=>{
                const [m, f] = h;
                return f.forEach((p)=>{
                    const g = d.get(p);
                    g ? g.push(m) : d.set(p, [
                        m
                    ]);
                }), d;
            }, new Map)), n = T(()=>Array.from(t.value.entries()).reduce((d, h)=>{
                const [m, f] = h, p = Av(m);
                return f.forEach((g)=>{
                    const v = d.get(g);
                    v ? !v.includes(p) && v.push(p) : d.set(g, [
                        p
                    ]);
                }), d;
            }, new Map));
        function i(d, h, m) {
            if (d) {
                t.value.clear(), h.forEach(([f, p])=>{
                    const g = t.value.get(f);
                    g ? g.push(...p) : t.value.set(f, p);
                });
                return;
            }
            for (const [f, p] of h)t.value.set(f, p);
            m?.forEach((f)=>t.value.delete(f)), cr(t);
        }
        async function o(d) {
            return await Ee.getTorrentTrackers(d);
        }
        async function s(d, h) {
            await Ee.addTorrentTrackers(d, h);
        }
        async function l(d, h, m) {
            await Ee.editTorrentTracker(d, h, m);
        }
        async function u(d, h) {
            await Ee.removeTorrentTrackers(d, h);
        }
        async function c(d, h) {
            const m = d.flatMap((g)=>{
                const v = h.add.trim().length === 0 ? Promise.resolve() : s(g, h.add), b = h.remove.length === 0 ? Promise.resolve() : u(g, h.remove), k = h.replace.map(([S, x])=>!r.value.get(g)?.includes(S) || x.length === 0 || r.value.get(g)?.includes(x) ? Promise.resolve() : l(g, S, x));
                return [
                    v,
                    b,
                    ...k
                ];
            }), p = (await Promise.allSettled(m)).reduce((g, v)=>(v.status === "fulfilled" ? g[0] += 1 : g[1].push(v.reason), g), [
                0,
                []
            ]);
            return {
                fulfilled: p[0],
                rejected: p[1],
                total: p[0] + p[1].length
            };
        }
        return {
            trackers: e,
            hostnameTrackers: a,
            torrentTrackers: r,
            torrentHostnameTrackers: n,
            syncFromMaindata: i,
            getTorrentTrackers: o,
            addTorrentTrackers: s,
            editTorrentTracker: l,
            removeTorrentTrackers: u,
            bulkUpdateTrackers: c,
            $reset: ()=>{
                t.value.clear(), cr(t);
            }
        };
    });
    Ka = Fa("torrents", ()=>{
        const t = [
            Ze.UNKNOWN,
            Ze.ERROR,
            Ze.MISSING_FILES,
            Ze.DL_STOPPED,
            Ze.UL_STOPPED,
            Ze.UL_QUEUED,
            Ze.DL_QUEUED,
            Ze.CHECKING_DISK,
            Ze.CHECKING_RESUME_DATA,
            Ze.MOVING
        ], e = kr(), { buildFromQbit: a } = MC(), r = Im(), n = de(new Map), i = T(()=>Array.from(n.value.entries()).map(([ne, ge])=>a({
                    ...ge,
                    hash: ne
                }))), o = W(Zt.CONJUNCTIVE), s = de(!0), l = W("");
        fi(()=>l.value.length === 0, ()=>s.value = !0);
        const u = de(!0), c = W([]), d = T(()=>i.value.reduce((ne, ge)=>(ne[ge.state] || (ne[ge.state] = 0), ne[ge.state] += 1, ne), {}));
        fi(()=>c.value.length === 0, ()=>u.value = !0);
        const h = de(!0), m = W([]);
        fi(()=>m.value.length === 0, ()=>h.value = !0);
        const f = de(!0), p = W(new Array), g = W(new Array), v = W(Zt.DISJUNCTIVE);
        fi(()=>p.value.length + g.value.length === 0, ()=>f.value = !0);
        const b = de(!0), k = W(new Array), S = W(new Array), x = W(Zt.DISJUNCTIVE), C = T(()=>i.value.reduce((ne, ge)=>{
                const Ve = r.torrentHostnameTrackers.get(ge.hash) ?? [];
                return Ve.length === 0 ? (ne[$a.UNTRACKED] = (ne[$a.UNTRACKED] ?? 0) + 1, ne) : (ge.tracker === "" && !t.includes(ge.state) && (ne[$a.NOT_WORKING] = (ne[$a.NOT_WORKING] ?? 0) + 1), Ve.forEach(($e)=>{
                    ne[$e] || (ne[$e] = 0), ne[$e] += 1;
                }), ne);
            }, {}));
        fi(()=>k.value.length + S.value.length === 0, ()=>b.value = !0);
        const w = W([
            {
                value: "added_on",
                reverse: !0
            }
        ]), F = (ne)=>c.value.includes(ne.state), D = (ne)=>m.value.includes(ne.category), _ = (ne)=>{
            const ge = (Ve)=>Ve === null ? ne.tags.length === 0 : ne.tags.includes(Ve);
            switch(v.value){
                case Zt.CONJUNCTIVE:
                    return Array.from(p.value).every(ge) && Array.from(g.value).every((Ve)=>!ge(Ve));
                case Zt.DISJUNCTIVE:
                    return Array.from(p.value).some(ge) || Array.from(g.value).some((Ve)=>!ge(Ve));
            }
        }, A = (ne)=>{
            const ge = r.torrentHostnameTrackers.get(ne.hash) ?? [], Ve = ($e)=>{
                switch($e){
                    case $a.UNTRACKED:
                        return ge.length === 0;
                    case $a.NOT_WORKING:
                        return ge.length > 0 && ne.tracker === "" && !t.includes(ne.state);
                    default:
                        return ge.includes($e);
                }
            };
            switch(x.value){
                case Zt.CONJUNCTIVE:
                    return Array.from(k.value).every(Ve) && Array.from(S.value).every(($e)=>!Ve($e));
                case Zt.DISJUNCTIVE:
                    return Array.from(k.value).some(Ve) || Array.from(S.value).some(($e)=>!Ve($e));
            }
        }, E = Ww(i, (ne)=>{
            const ge = [];
            if (c.value.length > 0 && u.value && ge.push(F(ne)), m.value.length > 0 && h.value && ge.push(D(ne)), p.value.length + g.value.length > 0 && f.value && ge.push(_(ne)), k.value.length + S.value.length > 0 && b.value && ge.push(A(ne)), ge.length === 0) return !0;
            switch(o.value){
                case Zt.CONJUNCTIVE:
                    return ge.every(Boolean);
                case Zt.DISJUNCTIVE:
                    return ge.some(Boolean);
            }
        }), { results: B } = xm(E, ()=>s.value ? l.value : null, (ne)=>[
                ne.name,
                ne.hash
            ]), P = hl(B, (ne, ge)=>{
            let Ve = 0, $e = 0;
            for(; Ve < w.value.length && $e === 0;){
                const { value: lt, reverse: bt } = w.value.at(Ve++);
                $e = rp[lt](ne, ge, !bt);
            }
            return $e === 0 && ($e = rp.hash(ne, ge, !0)), $e;
        });
        function M(ne, ge, Ve) {
            if (ne) {
                n.value = new Map(ge);
                return;
            }
            for (const [$e, lt] of ge){
                const bt = n.value.get($e);
                bt ? n.value.set($e, {
                    ...bt,
                    ...lt
                }) : n.value.set($e, lt);
            }
            Ve?.forEach(($e)=>n.value.delete($e)), cr(n);
        }
        async function R(ne, ge) {
            await Ee.setCategory(ne, ge);
        }
        async function z(ne, ge) {
            await Ee.addTorrentTag(ne, ge);
        }
        async function N(ne, ge) {
            await Ee.removeTorrentTag(ne, ge);
        }
        function H(ne) {
            return i.value.find((ge)=>ge.hash === ne);
        }
        function I(ne) {
            return P.value.findIndex((ge)=>ge.hash === ne);
        }
        async function L(ne, ge) {
            await Ee.deleteTorrents(ne, ge);
        }
        async function G(ne, ge, Ve) {
            switch(ne){
                case "dl":
                    return await Ee.setTorrentDownloadPath(ge, Ve);
                case "save":
                    return await Ee.setTorrentSavePath(ge, Ve);
            }
        }
        async function q(ne, ge, Ve) {
            const $e = Array.isArray(ge) ? ge.join(`
`) : ge;
            return Ee.addTorrents(ne, $e, Ve);
        }
        async function X(ne) {
            await Ee.reannounceTorrents(Ue(ne));
        }
        async function ue(ne) {
            await Ee.toggleSequentialDownload(Ue(ne));
        }
        async function J(ne) {
            await Ee.toggleFirstLastPiecePriority(Ue(ne));
        }
        async function U(ne, ge) {
            await Ee.setAutoTMM(Ue(ne), Ue(ge));
        }
        async function le(ne, ge) {
            await Ee.setSuperSeeding(Ue(ne), Ue(ge));
        }
        async function fe(ne, ge) {
            await Ee.setTorrentName(ne, ge);
        }
        async function ee(ne) {
            e.usesQbit5 ? await Ee.startTorrents(Ue(ne)) : await Ee.resumeTorrents(Ue(ne));
        }
        async function ae(ne) {
            await Ee.forceStartTorrents(Ue(ne));
        }
        async function se(ne) {
            e.usesQbit5 ? await Ee.stopTorrents(Ue(ne)) : await Ee.pauseTorrents(Ue(ne));
        }
        async function pe(ne) {
            await Ee.recheckTorrents(Ue(ne));
        }
        async function ke(ne, ge) {
            await Ee.setTorrentPriority(ne, ge);
        }
        async function be(ne) {
            return await Ee.exportTorrent(ne);
        }
        return {
            torrents: i,
            isTextFilterActive: s,
            isStatusFilterActive: u,
            isCategoryFilterActive: h,
            isTagFilterActive: f,
            isTrackerFilterActive: b,
            textFilter: l,
            statusFilter: c,
            categoryFilter: m,
            tagFilterInclude: p,
            tagFilterExclude: g,
            trackerFilterInclude: k,
            trackerFilterExclude: S,
            filterType: o,
            tagFilterType: v,
            trackerFilterType: x,
            torrentsByStatus: d,
            torrentsByTracker: C,
            sortCriterias: w,
            processedTorrents: P,
            syncFromMaindata: M,
            setTorrentCategory: R,
            addTorrentTags: z,
            removeTorrentTags: N,
            getTorrentByHash: H,
            getTorrentIndexByHash: I,
            deleteTorrents: L,
            moveTorrents: G,
            addTorrents: q,
            reannounceTorrents: X,
            toggleSeqDl: ue,
            toggleFLPiecePrio: J,
            toggleAutoTmm: U,
            setSuperSeeding: le,
            renameTorrent: fe,
            resumeTorrents: ee,
            forceStartTorrents: ae,
            pauseTorrents: se,
            recheckTorrents: pe,
            setTorrentPriority: ke,
            exportTorrent: be,
            $reset: ()=>{
                n.value.clear(), cr(n), w.value = [
                    {
                        value: "added_on",
                        reverse: !0
                    }
                ], o.value = Zt.CONJUNCTIVE, s.value = !0, l.value = "", u.value = !0, c.value = [], h.value = !0, m.value = [], f.value = !0, p.value = [], g.value = [], v.value = Zt.DISJUNCTIVE, b.value = !0, k.value = [], S.value = [], x.value = Zt.DISJUNCTIVE;
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: localStorage
                }
            ]
        }
    });
    zm = Fa("categories", ()=>{
        const t = de(new Map), e = hl(()=>Array.from(t.value.values()), (c, d)=>Te.text.asc(c.name, d.name)), { torrents: a } = gt(Ka()), r = T(()=>a.value.reduce((c, d)=>(c[d.category] || (c[d.category] = 0), c[d.category] += 1, c), {}));
        function n(c, d, h) {
            if (c) {
                t.value = new Map(d);
                return;
            }
            for (const [m, f] of d){
                const p = t.value.get(m);
                if (p) {
                    const g = {
                        name: f.name ?? p.name,
                        savePath: f.savePath ?? p.savePath
                    };
                    t.value.set(m, g);
                } else t.value.set(m, {
                    name: f.name ?? m,
                    savePath: f.savePath ?? ""
                });
            }
            h?.forEach((m)=>t.value.delete(m)), cr(t);
        }
        function i(c) {
            if (c) return t.value.get(c);
        }
        async function o(c) {
            await Ee.createCategory(c);
        }
        async function s(c, d) {
            if (d) {
                await Ee.createCategory(c), await Ee.editCategory({
                    name: d,
                    savePath: c.savePath
                });
                const h = await Ee.getTorrents({
                    category: d
                });
                return h.length > 0 && await Ee.setCategory(h.map((m)=>m.hash), c.name), await Ee.deleteCategory([
                    d
                ]), h.length;
            } else await Ee.editCategory(c);
        }
        async function l(c) {
            await Ee.deleteCategory(c);
        }
        async function u() {
            const c = Object.keys(r.value), d = e.value.filter((h)=>!c.includes(h.name)).map((h)=>h.name);
            await l(d);
        }
        return {
            categories: e,
            torrentsByCategory: r,
            syncFromMaindata: n,
            getCategoryFromName: i,
            createCategory: o,
            editCategory: s,
            deleteCategories: l,
            deleteUnusedCategories: u,
            $reset: ()=>{
                t.value.clear(), cr(t);
            }
        };
    });
    iB = "modulepreload";
    oB = function(t, e) {
        return new URL(t, e).href;
    };
    Iv = {};
    Cr = function(e, a, r) {
        let n = Promise.resolve();
        if (a && a.length > 0) {
            let o = function(c) {
                return Promise.all(c.map((d)=>Promise.resolve(d).then((h)=>({
                            status: "fulfilled",
                            value: h
                        }), (h)=>({
                            status: "rejected",
                            reason: h
                        }))));
            };
            const s = document.getElementsByTagName("link"), l = document.querySelector("meta[property=csp-nonce]"), u = l?.nonce || l?.getAttribute("nonce");
            n = o(a.map((c)=>{
                if (c = oB(c, r), c in Iv) return;
                Iv[c] = !0;
                const d = c.endsWith(".css"), h = d ? '[rel="stylesheet"]' : "";
                if (!!r) for(let p = s.length - 1; p >= 0; p--){
                    const g = s[p];
                    if (g.href === c && (!d || g.rel === "stylesheet")) return;
                }
                else if (document.querySelector(`link[href="${c}"]${h}`)) return;
                const f = document.createElement("link");
                if (f.rel = d ? "stylesheet" : iB, d || (f.as = "script"), f.crossOrigin = "", f.href = c, u && f.setAttribute("nonce", u), document.head.appendChild(f), d) return new Promise((p, g)=>{
                    f.addEventListener("load", p), f.addEventListener("error", ()=>g(new Error(`Unable to preload CSS for ${c}`)));
                });
            }));
        }
        function i(o) {
            const s = new Event("vite:preloadError", {
                cancelable: !0
            });
            if (s.payload = o, window.dispatchEvent(s), !s.defaultPrevented) throw o;
        }
        return n.then((o)=>{
            for (const s of o || [])s.status === "rejected" && i(s.reason);
            return e().catch(i);
        });
    };
    const Tr = Symbol("Cleanup Function"), Nm = Symbol("Timeout Token"), gi = Symbol("Signal Reason"), la = Symbol("Unset"), [Ds, sB] = function() {
        var e = new AbortController, a = !!Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e.signal), "reason");
        try {
            e.abort();
        } catch  {}
        return [
            a,
            Hm(e.signal.reason)
        ];
    }();
    class En {
        constructor(e = new AbortController){
            var a;
            this.controller = e, this.signal = e.signal, this.signal[gi] = la;
            var r = (n, i)=>{
                var o = ()=>{
                    if (i && this.signal) {
                        let s = zo(this.signal);
                        this._trackSignalReason(s), i(s !== la ? s : void 0);
                    }
                    i = null;
                };
                this.signal.addEventListener("abort", o, !1), a = ()=>{
                    this.signal && (this.signal.removeEventListener("abort", o, !1), this.signal.pr && (this.signal.pr[Tr] = null)), o = null;
                };
            };
            this.signal.pr = new Promise(r), this.signal.pr[Tr] = a, this.signal.pr.catch(a), r = a = null;
        }
        abort(...e) {
            var a = e.length > 0 ? e[0] : la;
            this._trackSignalReason(a), this.controller && (Ds && a !== la ? this.controller.abort(a) : this.controller.abort());
        }
        discard() {
            this.signal && (this.signal.pr && (this.signal.pr[Tr] && this.signal.pr[Tr](), this.signal.pr = null), delete this.signal[gi], Ds || (this.signal.reason = null), this.signal = null), this.controller = null;
        }
        _trackSignalReason(e) {
            this.signal && e !== la && (Ds || "reason" in this.signal || (this.signal.reason = e), this.signal[gi] === la && (this.signal[gi] = e));
        }
    }
    function zo(t) {
        return t && t.aborted ? Ds && sB ? Hm(t.reason) ? la : t.reason : gi in t ? t[gi] : la : la;
    }
    function wF(t) {
        if (t.pr) return t.pr;
        var e, a = new Promise(function(n, i) {
            e = ()=>{
                if (i && t) {
                    let o = zo(t);
                    i(o !== la ? o : void 0);
                }
                i = null;
            }, t.addEventListener("abort", e, !1);
        });
        return a[Tr] = function() {
            t && (t.removeEventListener("abort", e, !1), t = null), a && (a = a[Tr] = e = null);
        }, a.catch(a[Tr]), a;
    }
    function Om(t) {
        t instanceof AbortController && (t = new En(t));
        var e = t && t instanceof En ? t.signal : t;
        return {
            tokenOrSignal: t,
            signal: e,
            signalPr: wF(e)
        };
    }
    function fh() {
        var t;
        return {
            pr: new Promise((e)=>t = e),
            resolve: t
        };
    }
    function hn(t) {
        return typeof t == "function";
    }
    function lB(t) {
        return t && typeof t == "object" && typeof t.then == "function";
    }
    function Hm(t) {
        return typeof t == "object" && t instanceof Error && t.name == "AbortError";
    }
    function Cl(t, e) {
        Hm(e) || e === la ? t.abort() : t.abort(e);
    }
    const ph = Object.assign(uB, {
        cancelToken: En,
        delay: SF,
        timeout: cB,
        signalRace: dB,
        signalAll: hB,
        tokenCycle: mB
    });
    function uB(t) {
        return function(a, ...r) {
            var n, i;
            if ({ tokenOrSignal: a, signal: n, signalPr: i } = Om(a), n.aborted) return i;
            var o = i.catch(function(d) {
                var h = zo(n);
                h = h !== la ? h : d;
                try {
                    var m = s.return();
                    throw m.value !== void 0 ? m.value : h !== la ? h : void 0;
                } finally{
                    s = l = o = u = null;
                }
            }), { it: s, result: l } = fB.call(this, t, n, ...r), u = Promise.race([
                l,
                o
            ]);
            if (a !== n && a[Nm]) {
                let c = function(h) {
                    Cl(a, h), hn(a.discard) && a.discard(), a = c = null;
                };
                u.then(c, c);
            } else u.catch(()=>{}), a = null;
            return r = null, u;
        };
    }
    function SF(t, e) {
        var a, r;
        return typeof t == "number" && typeof e != "number" && ([e, t] = [
            t,
            e
        ]), t && ({ tokenOrSignal: t, signal: a, signalPr: r } = Om(t)), a && a.aborted ? r : new Promise(function(i, o) {
            a && (r.catch(function() {
                if (o && a && s) {
                    let u = zo(a);
                    clearTimeout(s), o(u !== la ? u : `delay (${e}) interrupted`), i = o = s = a = null;
                }
            }), r = null);
            var s = setTimeout(function() {
                i(`delayed: ${e}`), i = o = s = a = null;
            }, e);
        });
    }
    function cB(t, e = "Timeout") {
        t = Number(t) || 0;
        var a = new En;
        return SF(a.signal, t).then(()=>r(e), r), Object.defineProperty(a, Nm, {
            value: !0,
            writable: !1,
            enumerable: !1,
            configurable: !1
        }), a;
        function r(...n) {
            Cl(a, n.length > 0 ? n[0] : la), a.discard(), a = null;
        }
    }
    function CF(t) {
        return t.reduce(function(a, r) {
            var n = wF(r);
            return a[0].push(n), r.pr || a[1].push(n), a;
        }, [
            [],
            []
        ]);
    }
    function AF(t, e, a) {
        t.then(function(n) {
            Cl(e, n), e.discard(), e = null;
        }).then(function() {
            for (let n of a)n[Tr] && n[Tr]();
            a = null;
        });
    }
    function DF(t) {
        return t.catch((e)=>e);
    }
    function dB(t) {
        var e = new En, [a, r] = CF(t);
        return AF(DF(Promise.race(a)), e, r), e.signal;
    }
    function hB(t) {
        var e = new En, [a, r] = CF(t);
        return AF(Promise.all(a.map(DF)), e, r), e.signal;
    }
    function mB() {
        var t;
        return function(...a) {
            return t && (Cl(t, a.length > 0 ? a[0] : la), t.discard()), t = new En;
        };
    }
    function fB(t, ...e) {
        var a = t.apply(this, e);
        return t = e = null, {
            it: a,
            result: function r(n) {
                try {
                    var i = a.next(n);
                    n = null;
                } catch (o) {
                    return Promise.reject(o);
                }
                return function o(s) {
                    var l = Promise.resolve(s.value);
                    return s.done ? a = null : (l = l.then(r, function(c) {
                        return Promise.resolve(a.throw(c)).then(o);
                    })).catch(function() {
                        a = null;
                    }), s = null, l;
                }(i);
            }()
        };
    }
    vh = ph(vh);
    Object.assign(EF, {
        onEvent: _F,
        onceEvent: vh
    });
    var gh = new WeakSet;
    const yd = Symbol("unset"), TF = Symbol("returned"), zv = Symbol("canceled");
    function EF(t) {
        return function(a, ...r) {
            var n, i;
            if ({ tokenOrSignal: a, signal: n, signalPr: i } = Om(a), n.aborted) {
                let d = zo(n);
                throw d = d !== la ? d : "Aborted", d;
            }
            var o = fh(), { it: s, ait: l } = gB(t, o.pr, c, n, ...r), u = l.return;
            return l.return = function(h) {
                try {
                    return o.pr.resolved = !0, o.resolve(TF), Promise.resolve(s.return(h));
                } finally{
                    u.call(l), c();
                }
            }, l;
            function c() {
                a && a !== n && a[Nm] && a.abort(), l && (l.return = u, a = o = s = l = u = null);
            }
        };
    }
    function _F(t, e, a, r = !1) {
        var n, i, o = !1, s = EF(function*({ pwait: d }) {
            o || l();
            try {
                for(;;){
                    if (n.length == 0) {
                        let { pr: h, resolve: m } = fh();
                        n.push(h), i.push(m);
                    }
                    yield yield d(n.shift());
                }
            } finally{
                hn(e.removeEventListener) ? e.removeEventListener(a, u, r) : hn(e.removeListener) ? e.removeListener(a, u) : hn(e.off) && e.off(a, u), n.length = i.length = 0;
            }
        })(t, e, a, r);
        return s.start = l, s;
        function l() {
            o || (o = !0, n = [], i = [], hn(e.addEventListener) ? e.addEventListener(a, u, r) : hn(e.addListener) ? e.addListener(a, u) : hn(e.on) && e.on(a, u));
        }
        function u(c) {
            if (i.length > 0) i.shift()(c);
            else {
                let { pr: d, resolve: h } = fh();
                n.push(d), h(c);
            }
        }
    }
    function* vh(t, e, a, r = !1) {
        try {
            var n = _F(t, e, a, r);
            return (yield n.next()).value;
        } finally{
            n.return();
        }
    }
    function pB(t) {
        var e = Promise.resolve(t);
        return gh.add(e), e;
    }
    function gB(t, e, a, r, ...n) {
        var i = t.call(this, {
            signal: r,
            pwait: pB
        }, ...n);
        t = n = null;
        var o = r.pr.catch((s)=>{
            throw {
                [zv]: !0,
                reason: s
            };
        });
        return o.catch(()=>{}), {
            it: i,
            ait: async function*() {
                var l, u = yd;
                try {
                    for(; !e.resolved;)if (u !== yd ? (l = u, u = yd, l = i.throw(l)) : l = i.next(l), lB(l.value)) if (gh.has(l.value)) {
                        gh.delete(l.value);
                        try {
                            if ((l = await Promise.race([
                                e,
                                o,
                                l.value
                            ])) === TF) return;
                        } catch (c) {
                            if (c[zv]) {
                                let d = i.return();
                                throw d.value !== void 0 ? d.value : c.reason;
                            }
                            u = c;
                        }
                    } else l = yield l.value;
                    else {
                        if (l.done) return l.value;
                        l = yield l.value;
                    }
                } finally{
                    i = e = null, a();
                }
            }()
        };
    }
    const vB = (t)=>t._runningInstances.length >= t._maxConcurrency, yB = (t)=>{
        const e = t._activeInstances[0];
        e && e.cancel();
    }, bB = (t)=>{
        t._enqueuedInstances.forEach((e)=>{
            e.isEnqueued = !1, e.isDropped = !0;
        });
    };
    function Ji(t, e) {
        return e ? FB(()=>t()._instances, e) : T(()=>[]);
    }
    function FB(t, e, a) {
        return T(()=>t().filter((r)=>r[e]));
    }
    function kB(t) {
        return T(()=>t().length);
    }
    function Nv(t) {
        return T(()=>{
            const e = t();
            return e[e.length - 1];
        });
    }
    function xB(t) {
        return T(()=>t()[0]);
    }
    const PF = (t)=>t;
    function BF(t) {
        return Ba(t);
    }
    function wB() {
        const t = {}, e = new Promise((a, r)=>{
            t.resolve = a, t.reject = r;
        });
        return t.promise = e, t;
    }
    function SB(t, e, a) {
        const r = PF({
            id: a.id,
            isDropped: !1,
            isEnqueued: !1,
            hasStarted: !1,
            isRunning: !1,
            isFinished: !1,
            isCanceling: !1,
            isCanceled: T(()=>n.isCanceling && n.isFinished),
            isActive: T(()=>n.isRunning && !n.isCanceling),
            isSuccessful: !1,
            isNotDropped: T(()=>!n.isDropped),
            isError: T(()=>!!n.error),
            status: T(()=>{
                const o = n, s = [
                    [
                        o.isRunning,
                        "running"
                    ],
                    [
                        o.isEnqueued,
                        "enqueued"
                    ],
                    [
                        o.isCanceled,
                        "canceled"
                    ],
                    [
                        o.isCanceling,
                        "canceling"
                    ],
                    [
                        o.isDropped,
                        "dropped"
                    ],
                    [
                        o.isError,
                        "error"
                    ],
                    [
                        o.isSuccessful,
                        "success"
                    ]
                ].find(([l])=>l);
                return s && s[1];
            }),
            error: null,
            value: null,
            cancel ({ force: o } = {
                force: !1
            }) {
                if (o || (n.isCanceling = !0, n.isEnqueued && (n.isFinished = !0), n.isEnqueued = !1), n.token && n._canAbort) {
                    n.token.abort("cancel");
                    try {
                        n.token.discard();
                    } catch  {}
                    n.token = void 0, n._canAbort = !1;
                }
            },
            canceledOn (o) {
                return o.pr.catch(()=>{
                    n.cancel();
                }), n;
            },
            _run () {
                CB(n, t, e, a);
            },
            _handled: !0,
            _deferredObject: wB(),
            _shouldThrow: !1,
            _canAbort: !0,
            then (o, s) {
                return n._shouldThrow = !0, n._deferredObject.promise.then(o, s);
            },
            catch (o, s = !0) {
                return n._shouldThrow = s, n._deferredObject.promise.catch(o);
            },
            finally (o) {
                return n._shouldThrow = !0, n._deferredObject.promise.finally(o);
            }
        }), n = BF(r), { modifiers: i } = a;
        return i.drop ? n.isDropped = !0 : i.enqueue ? n.isEnqueued = !0 : n._run(), n;
    }
    function CB(t, e, a, r) {
        const n = new ph.cancelToken, i = ph(e, n);
        t.token = n, t.hasStarted = !0, t.isRunning = !0, t.isEnqueued = !1;
        function o() {
            t.isRunning = !1, t.isFinished = !0;
        }
        i.call(t, n, ...a).then((s)=>{
            t.value = s, t.isSuccessful = !0, o(), t._deferredObject.resolve(s), t._canAbort = !1, r.onFinish(t);
        }).catch((s)=>{
            s !== "cancel" && (t.error = s), o(), t._shouldThrow && t._deferredObject.reject(s), r.onFinish(t);
        });
    }
    MF = function(t, e = {
        cancelOnUnmount: !0
    }) {
        const a = um(), r = PF({
            _isRestartable: !1,
            _isDropping: !1,
            _isEnqueuing: !1,
            _isKeepingLatest: !1,
            _maxConcurrency: 1,
            _hasConcurrency: T(()=>n._isRestartable || n._isDropping || n._isEnqueuing || n._isKeepingLatest),
            isIdle: T(()=>!n.isRunning),
            isRunning: T(()=>!!n._instances.find((i)=>i.isRunning)),
            isError: T(()=>!!(n.last && n.last.isError)),
            _instances: [],
            _successfulInstances: Ji(()=>n, "isSuccessful"),
            _runningInstances: Ji(()=>n, "isRunning"),
            _enqueuedInstances: Ji(()=>n, "isEnqueued"),
            _notDroppedInstances: Ji(()=>n, "isNotDropped"),
            _activeInstances: Ji(()=>n, "isActive"),
            performCount: kB(()=>n._instances),
            last: Nv(()=>n._notDroppedInstances),
            lastSuccessful: Nv(()=>n._successfulInstances),
            firstEnqueued: xB(()=>n._enqueuedInstances),
            cancelAll ({ force: i } = {
                force: !1
            }) {
                n._instances.forEach((o)=>{
                    try {
                        (i || !o.isDropped && !o.isFinished) && o.cancel({
                            force: i
                        });
                    } catch (s) {
                        if (s !== "cancel") throw s;
                    }
                });
            },
            perform (...i) {
                const o = {
                    enqueue: !1,
                    drop: !1
                };
                n._hasConcurrency && vB(n) && (n._isDropping && (o.drop = !0), n._isRestartable && yB(n), n._isKeepingLatest && bB(n), (n._isEnqueuing || n._isKeepingLatest) && (o.enqueue = !0));
                const s = ()=>AB(n), l = ()=>SB(t, i, {
                        modifiers: o,
                        onFinish: s,
                        scope: a,
                        id: n._instances.length + 1
                    }), u = a.active ? a.run(l) : l();
                return n._instances = [
                    ...n._instances,
                    u
                ], u;
            },
            clear () {
                this.cancelAll({
                    force: !0
                }), this._instances = [];
            },
            destroy () {
                a.stop(), this.clear();
            },
            restartable () {
                return n._resetModifierFlags(), n._isRestartable = !0, n;
            },
            drop () {
                return n._resetModifierFlags(), n._isDropping = !0, n;
            },
            enqueue () {
                return n._resetModifierFlags(), n._isEnqueuing = !0, n;
            },
            keepLatest () {
                return n._resetModifierFlags(), n._isKeepingLatest = !0, n;
            },
            _resetModifierFlags () {
                n._isKeepingLatest = !1, n._isRestartable = !1, n._isEnqueuing = !1, n._isDropping = !1;
            },
            maxConcurrency (i) {
                return n._maxConcurrency = i, n;
            }
        }), n = BF(r);
        return e.cancelOnUnmount && nl() && ga(()=>{
            n._instances && n.destroy();
        }), n;
    };
    function AB(t) {
        if (t._isEnqueuing || t._isKeepingLatest) {
            const { firstEnqueued: e } = t;
            e && e._run();
        }
    }
    let DB, TB, EB, _B, PB, BB, MB, RB, LB, IB, zB, NB, OB, HB, VB, WB, GB, $B, UB, jB, Oe, li, Al, KB, XB;
    DB = {
        base: "#f44336",
        lighten5: "#ffebee",
        lighten4: "#ffcdd2",
        lighten3: "#ef9a9a",
        lighten2: "#e57373",
        lighten1: "#ef5350",
        darken1: "#e53935",
        darken2: "#d32f2f",
        darken3: "#c62828",
        darken4: "#b71c1c",
        accent1: "#ff8a80",
        accent2: "#ff5252",
        accent3: "#ff1744",
        accent4: "#d50000"
    };
    TB = {
        base: "#e91e63",
        lighten5: "#fce4ec",
        lighten4: "#f8bbd0",
        lighten3: "#f48fb1",
        lighten2: "#f06292",
        lighten1: "#ec407a",
        darken1: "#d81b60",
        darken2: "#c2185b",
        darken3: "#ad1457",
        darken4: "#880e4f",
        accent1: "#ff80ab",
        accent2: "#ff4081",
        accent3: "#f50057",
        accent4: "#c51162"
    };
    EB = {
        base: "#9c27b0",
        lighten5: "#f3e5f5",
        lighten4: "#e1bee7",
        lighten3: "#ce93d8",
        lighten2: "#ba68c8",
        lighten1: "#ab47bc",
        darken1: "#8e24aa",
        darken2: "#7b1fa2",
        darken3: "#6a1b9a",
        darken4: "#4a148c",
        accent1: "#ea80fc",
        accent2: "#e040fb",
        accent3: "#d500f9",
        accent4: "#aa00ff"
    };
    _B = {
        base: "#673ab7",
        lighten5: "#ede7f6",
        lighten4: "#d1c4e9",
        lighten3: "#b39ddb",
        lighten2: "#9575cd",
        lighten1: "#7e57c2",
        darken1: "#5e35b1",
        darken2: "#512da8",
        darken3: "#4527a0",
        darken4: "#311b92",
        accent1: "#b388ff",
        accent2: "#7c4dff",
        accent3: "#651fff",
        accent4: "#6200ea"
    };
    PB = {
        base: "#3f51b5",
        lighten5: "#e8eaf6",
        lighten4: "#c5cae9",
        lighten3: "#9fa8da",
        lighten2: "#7986cb",
        lighten1: "#5c6bc0",
        darken1: "#3949ab",
        darken2: "#303f9f",
        darken3: "#283593",
        darken4: "#1a237e",
        accent1: "#8c9eff",
        accent2: "#536dfe",
        accent3: "#3d5afe",
        accent4: "#304ffe"
    };
    BB = {
        base: "#2196f3",
        lighten5: "#e3f2fd",
        lighten4: "#bbdefb",
        lighten3: "#90caf9",
        lighten2: "#64b5f6",
        lighten1: "#42a5f5",
        darken1: "#1e88e5",
        darken2: "#1976d2",
        darken3: "#1565c0",
        darken4: "#0d47a1",
        accent1: "#82b1ff",
        accent2: "#448aff",
        accent3: "#2979ff",
        accent4: "#2962ff"
    };
    MB = {
        base: "#03a9f4",
        lighten5: "#e1f5fe",
        lighten4: "#b3e5fc",
        lighten3: "#81d4fa",
        lighten2: "#4fc3f7",
        lighten1: "#29b6f6",
        darken1: "#039be5",
        darken2: "#0288d1",
        darken3: "#0277bd",
        darken4: "#01579b",
        accent1: "#80d8ff",
        accent2: "#40c4ff",
        accent3: "#00b0ff",
        accent4: "#0091ea"
    };
    RB = {
        base: "#00bcd4",
        lighten5: "#e0f7fa",
        lighten4: "#b2ebf2",
        lighten3: "#80deea",
        lighten2: "#4dd0e1",
        lighten1: "#26c6da",
        darken1: "#00acc1",
        darken2: "#0097a7",
        darken3: "#00838f",
        darken4: "#006064",
        accent1: "#84ffff",
        accent2: "#18ffff",
        accent3: "#00e5ff",
        accent4: "#00b8d4"
    };
    LB = {
        base: "#009688",
        lighten5: "#e0f2f1",
        lighten4: "#b2dfdb",
        lighten3: "#80cbc4",
        lighten2: "#4db6ac",
        lighten1: "#26a69a",
        darken1: "#00897b",
        darken2: "#00796b",
        darken3: "#00695c",
        darken4: "#004d40",
        accent1: "#a7ffeb",
        accent2: "#64ffda",
        accent3: "#1de9b6",
        accent4: "#00bfa5"
    };
    IB = {
        base: "#4caf50",
        lighten5: "#e8f5e9",
        lighten4: "#c8e6c9",
        lighten3: "#a5d6a7",
        lighten2: "#81c784",
        lighten1: "#66bb6a",
        darken1: "#43a047",
        darken2: "#388e3c",
        darken3: "#2e7d32",
        darken4: "#1b5e20",
        accent1: "#b9f6ca",
        accent2: "#69f0ae",
        accent3: "#00e676",
        accent4: "#00c853"
    };
    zB = {
        base: "#8bc34a",
        lighten5: "#f1f8e9",
        lighten4: "#dcedc8",
        lighten3: "#c5e1a5",
        lighten2: "#aed581",
        lighten1: "#9ccc65",
        darken1: "#7cb342",
        darken2: "#689f38",
        darken3: "#558b2f",
        darken4: "#33691e",
        accent1: "#ccff90",
        accent2: "#b2ff59",
        accent3: "#76ff03",
        accent4: "#64dd17"
    };
    NB = {
        base: "#cddc39",
        lighten5: "#f9fbe7",
        lighten4: "#f0f4c3",
        lighten3: "#e6ee9c",
        lighten2: "#dce775",
        lighten1: "#d4e157",
        darken1: "#c0ca33",
        darken2: "#afb42b",
        darken3: "#9e9d24",
        darken4: "#827717",
        accent1: "#f4ff81",
        accent2: "#eeff41",
        accent3: "#c6ff00",
        accent4: "#aeea00"
    };
    OB = {
        base: "#ffeb3b",
        lighten5: "#fffde7",
        lighten4: "#fff9c4",
        lighten3: "#fff59d",
        lighten2: "#fff176",
        lighten1: "#ffee58",
        darken1: "#fdd835",
        darken2: "#fbc02d",
        darken3: "#f9a825",
        darken4: "#f57f17",
        accent1: "#ffff8d",
        accent2: "#ffff00",
        accent3: "#ffea00",
        accent4: "#ffd600"
    };
    HB = {
        base: "#ffc107",
        lighten5: "#fff8e1",
        lighten4: "#ffecb3",
        lighten3: "#ffe082",
        lighten2: "#ffd54f",
        lighten1: "#ffca28",
        darken1: "#ffb300",
        darken2: "#ffa000",
        darken3: "#ff8f00",
        darken4: "#ff6f00",
        accent1: "#ffe57f",
        accent2: "#ffd740",
        accent3: "#ffc400",
        accent4: "#ffab00"
    };
    VB = {
        base: "#ff9800",
        lighten5: "#fff3e0",
        lighten4: "#ffe0b2",
        lighten3: "#ffcc80",
        lighten2: "#ffb74d",
        lighten1: "#ffa726",
        darken1: "#fb8c00",
        darken2: "#f57c00",
        darken3: "#ef6c00",
        darken4: "#e65100",
        accent1: "#ffd180",
        accent2: "#ffab40",
        accent3: "#ff9100",
        accent4: "#ff6d00"
    };
    WB = {
        base: "#ff5722",
        lighten5: "#fbe9e7",
        lighten4: "#ffccbc",
        lighten3: "#ffab91",
        lighten2: "#ff8a65",
        lighten1: "#ff7043",
        darken1: "#f4511e",
        darken2: "#e64a19",
        darken3: "#d84315",
        darken4: "#bf360c",
        accent1: "#ff9e80",
        accent2: "#ff6e40",
        accent3: "#ff3d00",
        accent4: "#dd2c00"
    };
    GB = {
        base: "#795548",
        lighten5: "#efebe9",
        lighten4: "#d7ccc8",
        lighten3: "#bcaaa4",
        lighten2: "#a1887f",
        lighten1: "#8d6e63",
        darken1: "#6d4c41",
        darken2: "#5d4037",
        darken3: "#4e342e",
        darken4: "#3e2723"
    };
    $B = {
        base: "#607d8b",
        lighten5: "#eceff1",
        lighten4: "#cfd8dc",
        lighten3: "#b0bec5",
        lighten2: "#90a4ae",
        lighten1: "#78909c",
        darken1: "#546e7a",
        darken2: "#455a64",
        darken3: "#37474f",
        darken4: "#263238"
    };
    UB = {
        base: "#9e9e9e",
        lighten5: "#fafafa",
        lighten4: "#f5f5f5",
        lighten3: "#eeeeee",
        lighten2: "#e0e0e0",
        lighten1: "#bdbdbd",
        darken1: "#757575",
        darken2: "#616161",
        darken3: "#424242",
        darken4: "#212121"
    };
    jB = {
        black: "#000000",
        white: "#ffffff",
        transparent: "#ffffff00"
    };
    Oe = {
        red: DB,
        pink: TB,
        purple: EB,
        deepPurple: _B,
        indigo: PB,
        blue: BB,
        lightBlue: MB,
        cyan: RB,
        teal: LB,
        green: IB,
        lightGreen: zB,
        lime: NB,
        yellow: OB,
        amber: HB,
        orange: VB,
        deepOrange: WB,
        brown: GB,
        blueGrey: $B,
        grey: UB,
        shades: jB
    };
    li = {
        enabled: "#4F738D",
        disabled: "#35495E"
    };
    Al = (t)=>({
            accent: "#64CEAA",
            upload: "#00B3FA",
            ratio: "#00B2F8",
            category: "#04669A",
            tag: "#048B9A",
            tracker: "#C97D09",
            "ratio-bad": "#eb2a2a",
            "ratio-almost": "#e78310",
            "ratio-good": "#36bd58",
            "ratio-best": "#2e78d8",
            "active-global": li.enabled,
            "active-global-disabled": li.disabled,
            "active-text": li.enabled,
            "active-text-disabled": li.disabled,
            "active-status": li.enabled,
            "active-status-disabled": li.disabled,
            "active-category": "#04669A",
            "active-category-disabled": "#02334d",
            "active-tag": "#048B9A",
            "active-tag-disabled": "#03464f",
            "active-tracker": "#C97D09",
            "active-tracker-disabled": "#6d4504",
            "torrent-allocating": t ? Oe.deepOrange.base : Oe.amber.darken1,
            "torrent-checking_disk": t ? Oe.teal.darken2 : Oe.teal.accent3,
            "torrent-checking_resume_data": t ? Oe.teal.darken2 : Oe.teal.accent3,
            "torrent-dl_forced": t ? Oe.lightGreen.darken4 : Oe.green.accent4,
            "torrent-dl_stopped": Oe.grey.base,
            "torrent-dl_queued": t ? Oe.blueGrey.darken3 : Oe.blueGrey.lighten2,
            "torrent-dl_stalled": t ? Oe.lightGreen.darken1 : Oe.green.accent3,
            "torrent-downloading": t ? Oe.green.darken2 : Oe.lightGreen.base,
            "torrent-error": t ? Oe.red.darken4 : Oe.red.accent1,
            "torrent-forced_meta_download": t ? Oe.purple.darken4 : Oe.purple.lighten4,
            "torrent-meta_download": t ? Oe.purple.darken2 : Oe.purple.lighten2,
            "torrent-missing_files": t ? Oe.red.darken4 : Oe.red.accent1,
            "torrent-moving": t ? Oe.deepOrange.darken4 : Oe.yellow.darken1,
            "torrent-ul_forced": t ? Oe.indigo.darken4 : Oe.lightBlue.lighten2,
            "torrent-ul_stopped": t ? Oe.green.darken4 : Oe.green.accent4,
            "torrent-ul_queued": t ? Oe.blueGrey.darken1 : Oe.blueGrey.lighten3,
            "torrent-ul_stalled": t ? Oe.blue.lighten1 : Oe.lightBlue.lighten3,
            "torrent-unknown": t ? Oe.grey.darken3 : Oe.grey.lighten2,
            "torrent-uploading": t ? Oe.indigo.darken2 : Oe.lightBlue.lighten1
        });
    RF = {
        id: "dark-redesigned",
        theme: {
            dark: !0,
            colors: {
                primary: "#28483E",
                secondary: "#306052",
                navbar: "#28483E",
                download: "#7ACA47",
                background: "#121212",
                selected: Oe.grey.darken1,
                red: Oe.red.accent3,
                ...Al(!0)
            }
        }
    };
    $s = {
        id: "dark-legacy",
        theme: {
            dark: !0,
            colors: {
                primary: "#35495E",
                secondary: "#415c75",
                navbar: "#273845",
                download: "#5BB974",
                background: "#121212",
                selected: Oe.grey.darken1,
                red: Oe.red.accent3,
                ...Al(!0)
            }
        }
    };
    YB = {
        id: "dark-oled",
        theme: {
            dark: !0,
            colors: {
                ...$s.theme.colors,
                "torrent-ul_stalled": Oe.blue.darken4,
                "torrent-uploading": Oe.teal.darken2
            }
        }
    };
    qB = {
        id: "light-redesigned",
        theme: {
            dark: !1,
            colors: {
                primary: "#28483E",
                secondary: "#306052",
                navbar: "#28483E",
                download: "#7ACA47",
                background: Oe.grey.lighten4,
                selected: Oe.grey.lighten2,
                red: Oe.red.accent2,
                ...Al(!1)
            }
        }
    };
    yh = {
        id: "light-legacy",
        theme: {
            dark: !1,
            colors: {
                primary: "#35495E",
                secondary: "#3E556D",
                navbar: "#273845",
                download: "#5BB974",
                background: Oe.grey.lighten4,
                selected: Oe.grey.lighten2,
                red: Oe.red.accent2,
                ...Al(!1)
            }
        }
    };
    KB = [
        $s,
        RF,
        YB,
        yh,
        qB
    ];
    XB = KB.reduce((t, e)=>(t[e.id] = e.theme, t), {});
    ka = Fa("vuetorrent", ()=>{
        const t = W("en"), e = Ba({
            mode: Ea.SYSTEM,
            light: yh.id,
            dark: $s.id
        }), a = W(!0), r = W(!0), n = W(!0), i = W(!0), o = W(!0), s = W(!1), l = W(!1), u = W(bn.DEFAULT), c = W(""), d = W(!1), h = W(!1), m = W(!0), f = W(!0), p = W(15), g = W(pv), v = W(gv), b = W(!1), k = W(!1), S = W(!0), x = W(!1), C = W(2e3), w = W(5e3), F = W(!1), D = W(!1), _ = W(!0), A = W(!0), E = W(!1), B = W(JSON.parse(JSON.stringify(wa))), P = W(JSON.parse(JSON.stringify(wa))), M = W(JSON.parse(JSON.stringify(wa))), R = W(JSON.parse(JSON.stringify(wa))), z = W(JSON.parse(JSON.stringify(wa))), N = T(()=>p.value === -1), H = T(()=>{
            const Ye = new Array(Object.keys(wa).length);
            for (const [et, kt] of Object.entries(B.value))Ye[kt.order - 1] = {
                name: et,
                ...kt,
                ...Ki[et]
            };
            return Ye;
        }), I = T(()=>{
            const Ye = new Array(Object.keys(wa).length);
            for (const [et, kt] of Object.entries(P.value))Ye[kt.order - 1] = {
                name: et,
                ...kt,
                ...Ki[et]
            };
            return Ye;
        }), L = T(()=>{
            const Ye = new Array(Object.keys(wa).length);
            for (const [et, kt] of Object.entries(M.value))Ye[kt.order - 1] = {
                name: et,
                ...kt,
                ...Ki[et]
            };
            return Ye;
        }), G = T(()=>{
            const Ye = new Array(Object.keys(wa).length);
            for (const [et, kt] of Object.entries(R.value))Ye[kt.order - 1] = {
                name: et,
                ...kt,
                ...Ki[et]
            };
            return Ye;
        }), q = T(()=>{
            const Ye = new Array(Object.keys(wa).length);
            for (const [et, kt] of Object.entries(z.value))Ye[kt.order - 1] = {
                name: et,
                ...kt,
                ...Ki[et]
            };
            return Ye;
        }), { locale: X } = qt(), ue = ol(), { global: J } = _o();
        me(t, le);
        const U = Xw("(prefers-color-scheme: dark)");
        me(U, fe);
        function le(Ye) {
            X.value = Ye;
        }
        function fe() {
            switch(e.mode){
                case Ea.LIGHT:
                    J.name.value = e.light;
                    break;
                case Ea.DARK:
                    J.name.value = e.dark;
                    break;
                case Ea.SYSTEM:
                    J.name.value = U.value ? e.dark : e.light;
            }
        }
        function ee() {
            switch(e.mode){
                case Ea.LIGHT:
                    e.mode = Ea.DARK;
                    break;
                case Ea.DARK:
                    e.mode = Ea.SYSTEM;
                    break;
                case Ea.SYSTEM:
                    e.mode = Ea.LIGHT;
            }
        }
        me(e, fe);
        async function ae() {
            await ue.push({
                name: "login",
                query: {
                    redirect: ue.currentRoute.value.path
                }
            });
        }
        function se(Ye) {
            Ye.forEach((et, kt)=>{
                B.value[et.name].active = et.active, B.value[et.name].order = kt + 1;
            });
        }
        function pe(Ye) {
            Ye.forEach((et, kt)=>{
                P.value[et.name].active = et.active, P.value[et.name].order = kt + 1;
            });
        }
        function ke(Ye) {
            Ye.forEach((et, kt)=>{
                M.value[et.name].active = et.active, M.value[et.name].order = kt + 1;
            });
        }
        function be(Ye) {
            Ye.forEach((et, kt)=>{
                R.value[et.name].active = et.active, R.value[et.name].order = kt + 1;
            });
        }
        function ne(Ye) {
            Ye.forEach((et, kt)=>{
                z.value[et.name].active = et.active, z.value[et.name].order = kt + 1;
            });
        }
        function ge(Ye) {
            B.value[Ye].active = !B.value[Ye].active;
        }
        function Ve(Ye) {
            P.value[Ye].active = !P.value[Ye].active;
        }
        function $e(Ye) {
            M.value[Ye].active = !M.value[Ye].active;
        }
        function lt(Ye) {
            R.value[Ye].active = !R.value[Ye].active;
        }
        function bt(Ye) {
            z.value[Ye].active = !z.value[Ye].active;
        }
        return {
            theme: e,
            dateFormat: g,
            durationFormat: v,
            deleteWithFiles: l,
            fileContentInterval: w,
            isDrawerRight: d,
            hideChipIfUnset: h,
            enableRatioColors: m,
            enableHashColors: f,
            isShutdownButtonVisible: b,
            language: t,
            paginationSize: p,
            refreshInterval: C,
            showAlltimeStat: i,
            showCurrentSpeed: o,
            showFreeSpace: a,
            showSessionStat: n,
            showSpeedGraph: r,
            showSpeedInTitle: s,
            uiTitleType: u,
            uiTitleCustom: c,
            useBinarySize: x,
            useBitSpeed: k,
            useIdForRssLinks: F,
            hideColoredChip: D,
            _busyProperties: B,
            busyTorrentProperties: H,
            _doneProperties: P,
            doneTorrentProperties: I,
            _busyGridProperties: M,
            busyGridProperties: L,
            _doneGridProperties: R,
            doneGridProperties: G,
            _tableProperties: z,
            tableProperties: q,
            isInfiniteScrollActive: N,
            displayGraphLimits: _,
            useEmojiState: A,
            fetchExternalIpInfo: E,
            setLanguage: le,
            updateTheme: fe,
            toggleTheme: ee,
            redirectToLogin: ae,
            updateBusyProperties: se,
            updateDoneProperties: pe,
            updateBusyGridProperties: ke,
            updateDoneGridProperties: be,
            updateTableProperties: ne,
            toggleBusyProperty: ge,
            toggleDoneProperty: Ve,
            toggleBusyGridProperty: $e,
            toggleDoneGridProperty: lt,
            toggleTableProperty: bt,
            expandContent: S,
            $reset: ()=>{
                t.value = "en", e.mode = Ea.SYSTEM, e.light = yh.id, e.dark = $s.id, a.value = !0, r.value = !0, n.value = !0, i.value = !0, o.value = !0, s.value = !1, l.value = !1, u.value = bn.DEFAULT, c.value = "", d.value = !1, h.value = !1, m.value = !0, f.value = !0, p.value = 15, g.value = pv, v.value = gv, b.value = !1, k.value = !1, x.value = !1, C.value = 2e3, w.value = 5e3, F.value = !1, D.value = !1, _.value = !0, A.value = !0, E.value = !1, S.value = !0, B.value = JSON.parse(JSON.stringify(wa)), P.value = JSON.parse(JSON.stringify(wa)), M.value = JSON.parse(JSON.stringify(wa)), R.value = JSON.parse(JSON.stringify(wa)), z.value = JSON.parse(JSON.stringify(wa));
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: localStorage,
                    key: "webuiSettings"
                }
            ]
        }
    });
    No = Fa("dashboard", ()=>{
        const t = W(1), e = W(!1), a = W([]), r = W(), n = W(lh.LIST), { t: i } = qt(), o = Ka(), { processedTorrents: s, torrents: l } = gt(o), { paginationSize: u, useBinarySize: c } = gt(ka()), { paginatedResults: d, currentPage: h, pageCount: m } = ob(s, u, t), f = T(()=>{
            if (a.value.length) {
                const w = a.value.map((F)=>o.getTorrentByHash(F)).filter((F)=>F !== void 0).map((F)=>F.size).reduce((F, D)=>F + D, 0);
                return i("dashboard.selectedTorrentsCount", {
                    count: a.value.length,
                    total: s.value.length,
                    size: gD(w, c.value)
                });
            } else return i("dashboard.torrentsCount", s.value.length);
        });
        function p(w) {
            return a.value.includes(w);
        }
        function g(w) {
            p(w) || a.value.push(w), r.value = w;
        }
        function v(...w) {
            e.value = !0, w.forEach(g);
        }
        function b(w) {
            const F = a.value.indexOf(w);
            F >= 0 && a.value.splice(F, 1);
        }
        function k(w) {
            p(w) ? b(w) : g(w);
        }
        function S(w) {
            if (!r.value) return;
            const F = o.getTorrentIndexByHash(r.value), D = o.getTorrentIndexByHash(w), _ = Math.min(D, F), A = Math.max(D, F), E = s.value.slice(_, A + 1).map((B)=>B.hash);
            v(...E);
        }
        function x() {
            e.value = !0, a.value.splice(0, a.value.length, ...l.value.map((w)=>w.hash)), r.value = l.value[0]?.hash;
        }
        function C() {
            a.value = [];
        }
        return me(a, (w)=>{
            w.length === 0 && (r.value = void 0);
        }), me(()=>o.processedTorrents, (w)=>{
            const F = Math.ceil(w.length / u.value);
            F < t.value && (t.value = Math.max(1, F));
        }), {
            paginatedTorrents: d,
            currentPage: h,
            pageCount: m,
            isSelectionMultiple: e,
            selectedTorrents: a,
            latestSelectedTorrent: r,
            displayMode: n,
            torrentCountString: f,
            isTorrentInSelection: p,
            selectTorrent: g,
            selectTorrents: v,
            unselectTorrent: b,
            spanTorrentSelection: S,
            selectAllTorrents: x,
            unselectAllTorrents: C,
            toggleSelect: k,
            $reset: ()=>{
                t.value = 1, e.value = !1, a.value = [], r.value = void 0, n.value = lh.LIST;
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: localStorage,
                    includePaths: [
                        "displayMode"
                    ]
                }
            ]
        }
    });
    JB = Fa("global", ()=>{
        const t = W(sh());
        function e() {
            t.value = sh();
        }
        return {
            routerDomKey: t,
            forceReload: e,
            $reset: ()=>{
                e();
            }
        };
    });
    ZB = Fa("history", ()=>{
        const t = Ba({}), e = W(3);
        function a(n, i) {
            if (!i) return;
            const o = r(n);
            o.splice(0, 0, i);
            const s = o.indexOf(i, 1);
            s !== -1 && o.splice(s, 1), o.length > e.value && o.splice(e.value, o.length - e.value), t[n] = o;
        }
        function r(n) {
            return t[n] || [];
        }
        return {
            _history: t,
            historySize: e,
            pushValueToHistory: a,
            getHistory: r,
            $reset: ()=>{
                for (const [n] of Object.entries(t))delete t[n];
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: localStorage
                }
            ]
        }
    });
    LF = Fa("logs", ()=>{
        const { fetchExternalIpInfo: t } = gt(ka()), e = W([]), a = W(), r = W(), n = W(null), i = W(null), o = W(!1), s = W([
            rt.NORMAL,
            rt.INFO,
            rt.WARNING,
            rt.CRITICAL
        ]), l = W(""), u = W(!1), c = T(()=>e.value.filter((S)=>s.value.includes(S.type))), { results: d } = xm(c, l, (S)=>S.message), { paginatedResults: h, currentPage: m, pageCount: f } = ob(()=>$A(d.value, (S, x)=>Te.numeric.compare(S.id, x.id, !o.value)), 30), p = MF(function*(S, x) {
            yield g(x);
        }).drop();
        async function g(S) {
            let x;
            S ? x = S : x = e.value.length > 0 ? e.value.at(-1).id : -1;
            const C = await Ee.getLogs(x);
            e.value.push(...C), await b(C);
        }
        async function v() {
            u.value || (u.value = !0, e.value = [], await g(-1), u.value = !1);
        }
        async function b(S) {
            const x = S.find((w)=>w.message.includes("Detected external IP."));
            if (!x) return;
            const C = x.message.match(/IP: "(.*)"/);
            C && (a.value = C[1]);
        }
        async function k() {
            if (t.value && a.value && a.value !== r.value) try {
                const x = await (await fetch(`https://ipinfo.io/${a.value}/json`)).json();
                n.value = `${x.city}, ${x.region}, ${x.country}`, i.value = x.org, r.value = a.value;
            } catch (S) {
                console.error("Error fetching geo & ISP details:", S);
            }
        }
        return me(a, k), fi(t, k), {
            logs: e,
            filteredLogs: d,
            externalIp: a,
            geoDetails: n,
            ispDetails: i,
            logTypeFilter: s,
            logMessageFilter: l,
            paginatedResults: h,
            currentPage: m,
            pageCount: f,
            updateLogs: p.perform,
            cleanAndFetchLogs: v,
            reverseSort: o,
            $reset: ()=>{
                p.clear(), e.value = [], a.value = void 0, r.value = void 0, s.value = [
                    rt.NORMAL,
                    rt.INFO,
                    rt.WARNING,
                    rt.CRITICAL
                ], l.value = "";
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: localStorage,
                    includePaths: [
                        "logTypeFilter",
                        "logMessageFilter",
                        "reverseSort"
                    ]
                }
            ]
        }
    });
    function QB(t) {
        return "full_update" in t && t.full_update;
    }
    let ui, tM, Ge;
    ui = 15;
    Vm = Fa("navbar", ()=>{
        const { mobile: t } = Ia({
            mobileBreakpoint: "md"
        }), e = W(!t.value), a = W(new Array(ui).fill(new Date().getTime())), r = W(new Array(ui).fill(0)), n = W(new Array(ui).fill(0)), i = T(()=>a.value.map((c, d)=>[
                    c,
                    r.value[d]
                ])), o = T(()=>a.value.map((c, d)=>[
                    c,
                    n.value[d]
                ]));
        function s() {
            a.value.shift(), a.value.push(new Date().getTime());
        }
        function l(c) {
            r.value.shift(), r.value.push(c ?? 0);
        }
        function u(c) {
            n.value.shift(), n.value.push(c ?? 0);
        }
        return {
            isDrawerOpen: e,
            _timeData: a,
            _downloadData: r,
            _uploadData: n,
            downloadData: i,
            uploadData: o,
            pushTimeData: s,
            pushDownloadData: l,
            pushUploadData: u,
            $reset: ()=>{
                a.value = new Array(ui).fill(new Date().getTime()), r.value = new Array(ui).fill(0), n.value = new Array(ui).fill(0);
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: sessionStorage,
                    excludePaths: [
                        "isDrawerOpen"
                    ]
                },
                {
                    storage: localStorage,
                    includePaths: [
                        "isDrawerOpen"
                    ]
                }
            ]
        }
    });
    Wm = Fa("tags", ()=>{
        const t = de(new Set), e = hl(()=>Array.from(t.value.values()), Te.text.asc), { torrents: a } = gt(Ka()), r = T(()=>a.value.reduce((u, c)=>c.tags.length ? (c.tags.forEach((d)=>{
                    u[d] || (u[d] = 0), u[d] += 1;
                }), u) : (u[""] = (u[""] ?? 0) + 1, u), {}));
        function n(u, c, d) {
            if (u) {
                t.value = new Set(c);
                return;
            }
            c.forEach((h)=>t.value.add(h)), d?.forEach((h)=>t.value.delete(h)), cr(t);
        }
        async function i(u) {
            await Ee.createTag(u);
        }
        async function o(u, c) {
            if (u === c) return;
            await Ee.createTag([
                c
            ]);
            const d = await Ee.getTorrents({
                tag: u
            });
            d.length > 0 && await Ee.addTorrentTag(d.map((h)=>h.hash), [
                c
            ]), await Ee.deleteTags([
                u
            ]);
        }
        async function s(u) {
            await Ee.deleteTags(u);
        }
        async function l() {
            const u = Object.keys(r.value), c = e.value.filter((d)=>!u.includes(d));
            await s(c);
        }
        return {
            tags: e,
            torrentsByTag: r,
            syncFromMaindata: n,
            createTags: i,
            editTag: o,
            deleteTags: s,
            deleteUnusedTags: l,
            $reset: ()=>{
                t.value.clear(), cr(t);
            }
        };
    });
    Yn = Fa("maindata", ()=>{
        const t = W(), e = de(), a = kr(), r = zm(), n = No(), i = Vm(), o = Wm(), s = Ka(), { processedTorrents: l } = gt(s), u = Im(), c = ka(), { refreshInterval: d } = gt(c), h = MF(function*() {
            yield g();
        }).drop(), { resume: m, pause: f } = Qd(h.perform, d, {
            immediate: !1,
            immediateCallback: !0
        });
        function p(w, F) {
            w ? e.value = F : F && (e.value = {
                ...e.value,
                ...F
            }), i.pushTimeData(), i.pushDownloadData(e.value?.dl_info_speed ?? 0), i.pushUploadData(e.value?.up_info_speed ?? 0);
        }
        async function g() {
            try {
                const w = await Ee.getMaindata(t.value);
                if (t.value = w.rid, QB(w)) {
                    p(!0, w.server_state), r.syncFromMaindata(!0, Object.entries(w.categories ?? {})), o.syncFromMaindata(!0, w.tags ?? []), s.syncFromMaindata(!0, Object.entries(w.torrents ?? {})), u.syncFromMaindata(!0, Object.entries(w.trackers ?? {}));
                    return;
                }
                p(!1, w.server_state), r.syncFromMaindata(!1, Object.entries(w.categories ?? {}), w.categories_removed), o.syncFromMaindata(!1, w.tags ?? [], w.tags_removed), s.syncFromMaindata(!1, Object.entries(w.torrents ?? {}), w.torrents_removed), u.syncFromMaindata(!1, Object.entries(w.trackers ?? {}), w.trackers_removed), n.selectedTorrents = n.selectedTorrents.filter((F)=>!w.torrents_removed?.includes(F));
            } catch (w) {
                w?.response?.status === 403 ? (console.error("No longer authenticated, logging out..."), await a.setAuthStatus(!1), await c.redirectToLogin()) : console.error(w);
            }
        }
        me(l, (w)=>{
            const F = w.map((D)=>D.hash);
            n.selectedTorrents = n.selectedTorrents.filter((D)=>F.includes(D));
        });
        async function v(w, F) {
            return await Ee.syncTorrentPeers(w, F);
        }
        async function b(w, F) {
            await Ee.addTorrentPeers([
                w
            ], F);
        }
        async function k(w) {
            await Ee.banPeers(w);
        }
        async function S(w, F) {
            return await Ee.setDownloadLimit(F, w);
        }
        async function x(w, F) {
            return await Ee.setUploadLimit(F, w);
        }
        async function C(w, F, D, _) {
            return await Ee.setShareLimit(w, F, D, _);
        }
        return {
            rid: t,
            serverState: e,
            updateMaindata: g,
            syncTorrentPeers: v,
            addTorrentPeers: b,
            banPeers: k,
            setDownloadLimit: S,
            setUploadLimit: x,
            setShareLimit: C,
            forceMaindataSync: m,
            stopMaindataSync: f,
            $reset: ()=>{
                f(), h.clear(), t.value = void 0, e.value = {};
            }
        };
    });
    eM = Fa("rss", ()=>{
        const t = W([]), e = W([]), a = W([]), r = W({}), n = W("feeds"), i = Ba({
            title: "",
            unread: !1
        }), o = T(()=>a.value.filter((P)=>!P.isRead)), s = T(()=>i.unread ? o.value : a.value), { results: l } = xm(s, ()=>i.title, (P)=>P.title), { t: u } = qt(), { pause: c, resume: d } = Qd(w, 5e3, {
            immediate: !1,
            immediateCallback: !0
        }), { pause: h, resume: m } = Qd(E, 5e3, {
            immediate: !1,
            immediateCallback: !0
        });
        async function f(P) {
            await Ee.refreshFeed(P);
        }
        async function p() {
            await Promise.all(t.value.map((P)=>f(P.name)));
        }
        async function g(P, M) {
            await Ee.createFeed({
                name: P,
                url: M
            });
        }
        async function v(P, M) {
            await Ee.setRule(P, {
                ...M,
                savePath: M.torrentParams.save_path,
                assignedCategory: M.torrentParams.category,
                addPaused: M.torrentParams.stopped,
                torrentContentLayout: M.torrentParams.content_layout
            });
        }
        async function b(P, M) {
            await Ee.renameFeed(P, M);
        }
        async function k(P, M) {
            await Ee.setFeedUrl(P, M).catch((R)=>{
                R.response?.status === 404 && gr.error(u("toast.qbit.not_supported", {
                    version: "4.6.0"
                }));
            });
        }
        async function S(P, M) {
            await Ee.renameRule(P, M);
        }
        async function x(P) {
            await Ee.deleteFeed(P);
        }
        async function C(P) {
            await Ee.deleteRule(P);
        }
        async function w() {
            t.value = await Ee.getFeeds(!0), a.value = [], r.value = {}, t.value.forEach((P)=>{
                P.articles && P.articles.forEach((M)=>{
                    r.value[M.id] ? r.value[M.id].push(P.name) : (r.value[M.id] = [
                        P.name
                    ], a.value.push({
                        feedId: P.uid,
                        parsedDate: new Date(M.date),
                        ...M
                    }));
                });
            });
        }
        function F(P) {
            return r.value[P];
        }
        async function D(P) {
            const M = r.value[P];
            if (!M) return;
            const R = [];
            M.forEach((z)=>R.push(Ee.markAsRead(z, P))), await Promise.all(R), a.value.forEach((z)=>{
                z.id === P && (z.isRead = !0);
            });
        }
        async function _(P) {
            return await Ee.markAsRead(P.name);
        }
        async function A() {
            const P = o.value.length;
            await gr.promise(Promise.all(o.value.map((M)=>M.id).map(D)), {
                pending: u("rssArticles.feeds.promise.pending"),
                error: u("rssArticles.feeds.promise.error"),
                success: u("rssArticles.feeds.promise.success", P)
            }, {
                autoClose: 1500
            }), await w();
        }
        async function E() {
            e.value = await Ee.getRules();
        }
        async function B(P) {
            return await Ee.getMatchingArticles(P);
        }
        return {
            feeds: t,
            rules: e,
            lastView: n,
            filters: i,
            articles: s,
            filteredArticles: l,
            unreadArticles: o,
            pauseFeedTimer: c,
            resumeFeedTimer: d,
            pauseRuleTimer: h,
            resumeRuleTimer: m,
            refreshFeed: f,
            refreshAllFeeds: p,
            createFeed: g,
            setRule: v,
            renameFeed: b,
            setFeedUrl: k,
            renameRule: S,
            deleteFeed: x,
            deleteRule: C,
            fetchFeeds: w,
            getFeedNames: F,
            markArticleAsRead: D,
            markFeedAsRead: _,
            markAllAsRead: A,
            fetchRules: E,
            fetchMatchingArticles: B,
            $reset: ()=>{
                t.value = [], e.value = [], a.value = [], r.value = {}, n.value = "feeds", i.title = "", i.unread = !1, c(), h();
            }
        };
    }, {
        persistence: {
            enabled: !0,
            storageItems: [
                {
                    storage: sessionStorage
                }
            ]
        }
    });
    tM = $({
        defaults: Object,
        disabled: Boolean,
        reset: [
            Number,
            String
        ],
        root: [
            Boolean,
            String
        ],
        scoped: Boolean
    }, "VDefaultsProvider");
    Ge = te(!1)({
        name: "VDefaultsProvider",
        props: tM(),
        setup (t, e) {
            let { slots: a } = e;
            const { defaults: r, disabled: n, reset: i, root: o, scoped: s } = Ei(t);
            return Bt(r, {
                reset: i,
                root: o,
                scoped: s,
                disabled: n
            }), ()=>a.default?.();
        }
    });
    function Gm(t) {
        return mm(()=>{
            const e = [], a = {};
            if (t.value.background) if (Yf(t.value.background)) {
                if (a.backgroundColor = t.value.background, !t.value.text && Hx(t.value.background)) {
                    const r = ll(t.value.background);
                    if (r.a == null || r.a === 1) {
                        const n = Vx(r);
                        a.color = n, a.caretColor = n;
                    }
                }
            } else e.push(`bg-${t.value.background}`);
            return t.value.text && (Yf(t.value.text) ? (a.color = t.value.text, a.caretColor = t.value.text) : e.push(`text-${t.value.text}`)), {
                colorClasses: e,
                colorStyles: a
            };
        });
    }
    function ha(t, e) {
        const a = T(()=>({
                text: Pt(t) ? t.value : e ? t[e] : null
            })), { colorClasses: r, colorStyles: n } = Gm(a);
        return {
            textColorClasses: r,
            textColorStyles: n
        };
    }
    function ft(t, e) {
        const a = T(()=>({
                background: Pt(t) ? t.value : e ? t[e] : null
            })), { colorClasses: r, colorStyles: n } = Gm(a);
        return {
            backgroundColorClasses: r,
            backgroundColorStyles: n
        };
    }
    const aM = [
        "x-small",
        "small",
        "default",
        "large",
        "x-large"
    ], xr = $({
        size: {
            type: [
                String,
                Number
            ],
            default: "default"
        }
    }, "size");
    function Li(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr();
        return mm(()=>{
            let a, r;
            return Wx(aM, t.size) ? a = `${e}--size-${t.size}` : t.size && (r = {
                width: xe(t.size),
                height: xe(t.size)
            }), {
                sizeClasses: a,
                sizeStyles: r
            };
        });
    }
    let We, rM, Ut;
    We = $({
        tag: {
            type: [
                String,
                Object,
                Function
            ],
            default: "div"
        }
    }, "tag");
    rM = $({
        color: String,
        disabled: Boolean,
        start: Boolean,
        end: Boolean,
        icon: Me,
        opacity: [
            String,
            Number
        ],
        ...we(),
        ...xr(),
        ...We({
            tag: "i"
        }),
        ...Qe()
    }, "VIcon");
    _e = te()({
        name: "VIcon",
        props: rM(),
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const n = W(), { themeClasses: i } = _o(), { iconData: o } = Gx(T(()=>n.value || t.icon)), { sizeClasses: s } = Li(t), { textColorClasses: l, textColorStyles: u } = ha(K(t, "color"));
            return ie(()=>{
                const c = r.default?.();
                c && (n.value = $x(c).filter((h)=>h.type === wx && h.children && typeof h.children == "string")[0]?.children);
                const d = !!(a.onClick || a.onClickOnce);
                return y(o.value.component, {
                    tag: t.tag,
                    icon: o.value.icon,
                    class: [
                        "v-icon",
                        "notranslate",
                        i.value,
                        s.value,
                        l.value,
                        {
                            "v-icon--clickable": d,
                            "v-icon--disabled": t.disabled,
                            "v-icon--start": t.start,
                            "v-icon--end": t.end
                        },
                        t.class
                    ],
                    style: [
                        {
                            "--v-icon-opacity": t.opacity
                        },
                        s.value ? void 0 : {
                            fontSize: xe(t.size),
                            height: xe(t.size),
                            width: xe(t.size)
                        },
                        u.value,
                        t.style
                    ],
                    role: d ? "button" : void 0,
                    "aria-hidden": !d,
                    tabindex: d ? t.disabled ? -1 : 0 : void 0
                }, {
                    default: ()=>[
                            c
                        ]
                });
            }), {};
        }
    });
    Ut = $({
        height: [
            Number,
            String
        ],
        maxHeight: [
            Number,
            String
        ],
        maxWidth: [
            Number,
            String
        ],
        minHeight: [
            Number,
            String
        ],
        minWidth: [
            Number,
            String
        ],
        width: [
            Number,
            String
        ]
    }, "dimension");
    function jt(t) {
        return {
            dimensionStyles: T(()=>{
                const a = {}, r = xe(t.height), n = xe(t.maxHeight), i = xe(t.maxWidth), o = xe(t.minHeight), s = xe(t.minWidth), l = xe(t.width);
                return r != null && (a.height = r), n != null && (a.maxHeight = n), i != null && (a.maxWidth = i), o != null && (a.minHeight = o), s != null && (a.minWidth = s), l != null && (a.width = l), a;
            })
        };
    }
    function nM(t) {
        return {
            aspectStyles: T(()=>{
                const e = Number(t.aspectRatio);
                return e ? {
                    paddingBottom: String(1 / e * 100) + "%"
                } : void 0;
            })
        };
    }
    const IF = $({
        aspectRatio: [
            String,
            Number
        ],
        contentClass: null,
        inline: Boolean,
        ...we(),
        ...Ut()
    }, "VResponsive"), bh = te()({
        name: "VResponsive",
        props: IF(),
        setup (t, e) {
            let { slots: a } = e;
            const { aspectStyles: r } = nM(t), { dimensionStyles: n } = jt(t);
            return ie(()=>y("div", {
                    class: [
                        "v-responsive",
                        {
                            "v-responsive--inline": t.inline
                        },
                        t.class
                    ],
                    style: [
                        n.value,
                        t.style
                    ]
                }, [
                    y("div", {
                        class: "v-responsive__sizer",
                        style: r.value
                    }, null),
                    a.additional?.(),
                    a.default && y("div", {
                        class: [
                            "v-responsive__content",
                            t.contentClass
                        ]
                    }, [
                        a.default()
                    ])
                ])), {};
        }
    }), Ct = $({
        rounded: {
            type: [
                Boolean,
                Number,
                String
            ],
            default: void 0
        },
        tile: Boolean
    }, "rounded");
    function Mt(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr();
        return {
            roundedClasses: T(()=>{
                const r = Pt(t) ? t.value : t.rounded, n = Pt(t) ? t.value : t.tile, i = [];
                if (r === !0 || r === "") i.push(`${e}--rounded`);
                else if (typeof r == "string" || r === 0) for (const o of String(r).split(" "))i.push(`rounded-${o}`);
                else (n || r === !1) && i.push("rounded-0");
                return i;
            })
        };
    }
    const fr = $({
        transition: {
            type: [
                Boolean,
                String,
                Object
            ],
            default: "fade-transition",
            validator: (t)=>t !== !0
        }
    }, "transition"), ba = (t, e)=>{
        let { slots: a } = e;
        const { transition: r, disabled: n, group: i, ...o } = t, { component: s = i ? cm : Kr, ...l } = typeof r == "object" ? r : {};
        return On(s, Z(typeof r == "string" ? {
            name: n ? "" : r
        } : l, typeof r == "string" ? {} : Object.fromEntries(Object.entries({
            disabled: n,
            group: i
        }).filter((u)=>{
            let [c, d] = u;
            return d !== void 0;
        })), o), a);
    };
    function iM(t, e) {
        if (!fm) return;
        const a = e.modifiers || {}, r = e.value, { handler: n, options: i } = typeof r == "object" ? r : {
            handler: r,
            options: {}
        }, o = new IntersectionObserver(function() {
            let s = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], l = arguments.length > 1 ? arguments[1] : void 0;
            const u = t._observe?.[e.instance.$.uid];
            if (!u) return;
            const c = s.some((d)=>d.isIntersecting);
            n && (!a.quiet || u.init) && (!a.once || c || u.init) && n(c, s, l), c && a.once ? zF(t, e) : u.init = !0;
        }, i);
        t._observe = Object(t._observe), t._observe[e.instance.$.uid] = {
            init: !1,
            observer: o
        }, o.observe(t);
    }
    function zF(t, e) {
        const a = t._observe?.[e.instance.$.uid];
        a && (a.observer.unobserve(t), delete t._observe[e.instance.$.uid]);
    }
    const Oo = {
        mounted: iM,
        unmounted: zF
    }, NF = $({
        absolute: Boolean,
        alt: String,
        cover: Boolean,
        color: String,
        draggable: {
            type: [
                Boolean,
                String
            ],
            default: void 0
        },
        eager: Boolean,
        gradient: String,
        lazySrc: String,
        options: {
            type: Object,
            default: ()=>({
                    root: void 0,
                    rootMargin: void 0,
                    threshold: void 0
                })
        },
        sizes: String,
        src: {
            type: [
                String,
                Object
            ],
            default: ""
        },
        crossorigin: String,
        referrerpolicy: String,
        srcset: String,
        position: String,
        ...IF(),
        ...we(),
        ...Ct(),
        ...fr()
    }, "VImg"), _r = te()({
        name: "VImg",
        directives: {
            intersect: Oo
        },
        props: NF(),
        emits: {
            loadstart: (t)=>!0,
            load: (t)=>!0,
            error: (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const { backgroundColorClasses: n, backgroundColorStyles: i } = ft(K(t, "color")), { roundedClasses: o } = Mt(t), s = za("VImg"), l = de(""), u = W(), c = de(t.eager ? "loading" : "idle"), d = de(), h = de(), m = T(()=>t.src && typeof t.src == "object" ? {
                    src: t.src.src,
                    srcset: t.srcset || t.src.srcset,
                    lazySrc: t.lazySrc || t.src.lazySrc,
                    aspect: Number(t.aspectRatio || t.src.aspect || 0)
                } : {
                    src: t.src,
                    srcset: t.srcset,
                    lazySrc: t.lazySrc,
                    aspect: Number(t.aspectRatio || 0)
                }), f = T(()=>m.value.aspect || d.value / h.value || 0);
            me(()=>t.src, ()=>{
                p(c.value !== "idle");
            }), me(f, (E, B)=>{
                !E && B && u.value && S(u.value);
            }), Mr(()=>p());
            function p(E) {
                if (!(t.eager && E) && !(fm && !E && !t.eager)) {
                    if (c.value = "loading", m.value.lazySrc) {
                        const B = new Image;
                        B.src = m.value.lazySrc, S(B, null);
                    }
                    m.value.src && at(()=>{
                        a("loadstart", u.value?.currentSrc || m.value.src), setTimeout(()=>{
                            if (!s.isUnmounted) if (u.value?.complete) {
                                if (u.value.naturalWidth || v(), c.value === "error") return;
                                f.value || S(u.value, null), c.value === "loading" && g();
                            } else f.value || S(u.value), b();
                        });
                    });
                }
            }
            function g() {
                s.isUnmounted || (b(), S(u.value), c.value = "loaded", a("load", u.value?.currentSrc || m.value.src));
            }
            function v() {
                s.isUnmounted || (c.value = "error", a("error", u.value?.currentSrc || m.value.src));
            }
            function b() {
                const E = u.value;
                E && (l.value = E.currentSrc || E.src);
            }
            let k = -1;
            ga(()=>{
                clearTimeout(k);
            });
            function S(E) {
                let B = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 100;
                const P = ()=>{
                    if (clearTimeout(k), s.isUnmounted) return;
                    const { naturalHeight: M, naturalWidth: R } = E;
                    M || R ? (d.value = R, h.value = M) : !E.complete && c.value === "loading" && B != null ? k = window.setTimeout(P, B) : (E.currentSrc.endsWith(".svg") || E.currentSrc.startsWith("data:image/svg+xml")) && (d.value = 1, h.value = 1);
                };
                P();
            }
            const x = T(()=>({
                    "v-img__img--cover": t.cover,
                    "v-img__img--contain": !t.cover
                })), C = ()=>{
                if (!m.value.src || c.value === "idle") return null;
                const E = y("img", {
                    class: [
                        "v-img__img",
                        x.value
                    ],
                    style: {
                        objectPosition: t.position
                    },
                    crossorigin: t.crossorigin,
                    src: m.value.src,
                    srcset: m.value.srcset,
                    alt: t.alt,
                    referrerpolicy: t.referrerpolicy,
                    draggable: t.draggable,
                    sizes: t.sizes,
                    ref: u,
                    onLoad: g,
                    onError: v
                }, null), B = r.sources?.();
                return y(ba, {
                    transition: t.transition,
                    appear: !0
                }, {
                    default: ()=>[
                            mt(B ? y("picture", {
                                class: "v-img__picture"
                            }, [
                                B,
                                E
                            ]) : E, [
                                [
                                    Ca,
                                    c.value === "loaded"
                                ]
                            ])
                        ]
                });
            }, w = ()=>y(ba, {
                    transition: t.transition
                }, {
                    default: ()=>[
                            m.value.lazySrc && c.value !== "loaded" && y("img", {
                                class: [
                                    "v-img__img",
                                    "v-img__img--preload",
                                    x.value
                                ],
                                style: {
                                    objectPosition: t.position
                                },
                                crossorigin: t.crossorigin,
                                src: m.value.lazySrc,
                                alt: t.alt,
                                referrerpolicy: t.referrerpolicy,
                                draggable: t.draggable
                            }, null)
                        ]
                }), F = ()=>r.placeholder ? y(ba, {
                    transition: t.transition,
                    appear: !0
                }, {
                    default: ()=>[
                            (c.value === "loading" || c.value === "error" && !r.error) && y("div", {
                                class: "v-img__placeholder"
                            }, [
                                r.placeholder()
                            ])
                        ]
                }) : null, D = ()=>r.error ? y(ba, {
                    transition: t.transition,
                    appear: !0
                }, {
                    default: ()=>[
                            c.value === "error" && y("div", {
                                class: "v-img__error"
                            }, [
                                r.error()
                            ])
                        ]
                }) : null, _ = ()=>t.gradient ? y("div", {
                    class: "v-img__gradient",
                    style: {
                        backgroundImage: `linear-gradient(${t.gradient})`
                    }
                }, null) : null, A = de(!1);
            {
                const E = me(f, (B)=>{
                    B && (requestAnimationFrame(()=>{
                        requestAnimationFrame(()=>{
                            A.value = !0;
                        });
                    }), E());
                });
            }
            return ie(()=>{
                const E = bh.filterProps(t);
                return mt(y(bh, Z({
                    class: [
                        "v-img",
                        {
                            "v-img--absolute": t.absolute,
                            "v-img--booting": !A.value
                        },
                        n.value,
                        o.value,
                        t.class
                    ],
                    style: [
                        {
                            width: xe(t.width === "auto" ? d.value : t.width)
                        },
                        i.value,
                        t.style
                    ]
                }, E, {
                    aspectRatio: f.value,
                    "aria-label": t.alt,
                    role: t.alt ? "img" : void 0
                }), {
                    additional: ()=>y(Ce, null, [
                            y(C, null, null),
                            y(w, null, null),
                            y(_, null, null),
                            y(F, null, null),
                            y(D, null, null)
                        ]),
                    default: r.default
                }), [
                    [
                        qa("intersect"),
                        {
                            handler: p,
                            options: t.options
                        },
                        null,
                        {
                            once: !0
                        }
                    ]
                ]);
            }), {
                currentSrc: l,
                image: u,
                state: c,
                naturalWidth: d,
                naturalHeight: h
            };
        }
    }), Na = $({
        border: [
            Boolean,
            Number,
            String
        ]
    }, "border");
    function Xa(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr();
        return {
            borderClasses: T(()=>{
                const r = Pt(t) ? t.value : t.border, n = [];
                if (r === !0 || r === "") n.push(`${e}--border`);
                else if (typeof r == "string" || r === 0) for (const i of String(r).split(" "))n.push(`border-${i}`);
                return n;
            })
        };
    }
    const oM = [
        null,
        "default",
        "comfortable",
        "compact"
    ], ta = $({
        density: {
            type: String,
            default: "default",
            validator: (t)=>oM.includes(t)
        }
    }, "density");
    function xa(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr();
        return {
            densityClasses: T(()=>`${e}--density-${t.density}`)
        };
    }
    const sM = [
        "elevated",
        "flat",
        "tonal",
        "outlined",
        "text",
        "plain"
    ];
    function sn(t, e) {
        return y(Ce, null, [
            t && y("span", {
                key: "overlay",
                class: `${e}__overlay`
            }, null),
            y("span", {
                key: "underlay",
                class: `${e}__underlay`
            }, null)
        ]);
    }
    const or = $({
        color: String,
        variant: {
            type: String,
            default: "elevated",
            validator: (t)=>sM.includes(t)
        }
    }, "variant");
    function qn(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr();
        const a = T(()=>{
            const { variant: i } = Y(t);
            return `${e}--variant-${i}`;
        }), { colorClasses: r, colorStyles: n } = Gm(T(()=>{
            const { variant: i, color: o } = Y(t);
            return {
                [[
                    "elevated",
                    "flat"
                ].includes(i) ? "background" : "text"]: o
            };
        }));
        return {
            colorClasses: r,
            colorStyles: n,
            variantClasses: a
        };
    }
    const lM = $({
        start: Boolean,
        end: Boolean,
        icon: Me,
        image: String,
        text: String,
        ...Na(),
        ...we(),
        ...ta(),
        ...Ct(),
        ...xr(),
        ...We(),
        ...Qe(),
        ...or({
            variant: "flat"
        })
    }, "VAvatar"), ir = te()({
        name: "VAvatar",
        props: lM(),
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t), { borderClasses: n } = Xa(t), { colorClasses: i, colorStyles: o, variantClasses: s } = qn(t), { densityClasses: l } = xa(t), { roundedClasses: u } = Mt(t), { sizeClasses: c, sizeStyles: d } = Li(t);
            return ie(()=>y(t.tag, {
                    class: [
                        "v-avatar",
                        {
                            "v-avatar--start": t.start,
                            "v-avatar--end": t.end
                        },
                        r.value,
                        n.value,
                        i.value,
                        l.value,
                        u.value,
                        c.value,
                        s.value,
                        t.class
                    ],
                    style: [
                        o.value,
                        d.value,
                        t.style
                    ]
                }, {
                    default: ()=>[
                            a.default ? y(Ge, {
                                key: "content-defaults",
                                defaults: {
                                    VImg: {
                                        cover: !0,
                                        src: t.image
                                    },
                                    VIcon: {
                                        icon: t.icon
                                    }
                                }
                            }, {
                                default: ()=>[
                                        a.default()
                                    ]
                            }) : t.image ? y(_r, {
                                key: "image",
                                src: t.image,
                                alt: "",
                                cover: !0
                            }, null) : t.icon ? y(_e, {
                                key: "icon",
                                icon: t.icon
                            }, null) : t.text,
                            sn(!1, "v-avatar")
                        ]
                })), {};
        }
    }), uM = $({
        text: String,
        onClick: ra(),
        ...we(),
        ...Qe()
    }, "VLabel"), Ii = te()({
        name: "VLabel",
        props: uM(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y("label", {
                    class: [
                        "v-label",
                        {
                            "v-label--clickable": !!t.onClick
                        },
                        t.class
                    ],
                    style: t.style,
                    onClick: t.onClick
                }, [
                    t.text,
                    a.default?.()
                ])), {};
        }
    }), OF = Symbol.for("vuetify:selection-control-group"), $m = $({
        color: String,
        disabled: {
            type: Boolean,
            default: null
        },
        defaultsTarget: String,
        error: Boolean,
        id: String,
        inline: Boolean,
        falseIcon: Me,
        trueIcon: Me,
        ripple: {
            type: [
                Boolean,
                Object
            ],
            default: !0
        },
        multiple: {
            type: Boolean,
            default: null
        },
        name: String,
        readonly: {
            type: Boolean,
            default: null
        },
        modelValue: null,
        type: String,
        valueComparator: {
            type: Function,
            default: Aa
        },
        ...we(),
        ...ta(),
        ...Qe()
    }, "SelectionControlGroup"), cM = $({
        ...$m({
            defaultsTarget: "VSelectionControl"
        })
    }, "VSelectionControlGroup"), HF = te()({
        name: "VSelectionControlGroup",
        props: cM(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), n = La(), i = T(()=>t.id || `v-selection-control-group-${n}`), o = T(()=>t.name || i.value), s = new Set;
            return Kt(OF, {
                modelValue: r,
                forceUpdate: ()=>{
                    s.forEach((l)=>l());
                },
                onForceUpdate: (l)=>{
                    s.add(l), pa(()=>{
                        s.delete(l);
                    });
                }
            }), Bt({
                [t.defaultsTarget]: {
                    color: K(t, "color"),
                    disabled: K(t, "disabled"),
                    density: K(t, "density"),
                    error: K(t, "error"),
                    inline: K(t, "inline"),
                    modelValue: r,
                    multiple: T(()=>!!t.multiple || t.multiple == null && Array.isArray(r.value)),
                    name: o,
                    falseIcon: K(t, "falseIcon"),
                    trueIcon: K(t, "trueIcon"),
                    readonly: K(t, "readonly"),
                    ripple: K(t, "ripple"),
                    type: K(t, "type"),
                    valueComparator: K(t, "valueComparator")
                }
            }), ie(()=>y("div", {
                    class: [
                        "v-selection-control-group",
                        {
                            "v-selection-control-group--inline": t.inline
                        },
                        t.class
                    ],
                    style: t.style,
                    role: t.type === "radio" ? "radiogroup" : void 0
                }, [
                    a.default?.()
                ])), {};
        }
    }), Fh = Symbol("rippleStop"), dM = 80;
    function Ov(t, e) {
        t.style.transform = e, t.style.webkitTransform = e;
    }
    function kh(t) {
        return t.constructor.name === "TouchEvent";
    }
    function VF(t) {
        return t.constructor.name === "KeyboardEvent";
    }
    const hM = function(t, e) {
        let a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, r = 0, n = 0;
        if (!VF(t)) {
            const d = e.getBoundingClientRect(), h = kh(t) ? t.touches[t.touches.length - 1] : t;
            r = h.clientX - d.left, n = h.clientY - d.top;
        }
        let i = 0, o = .3;
        e._ripple?.circle ? (o = .15, i = e.clientWidth / 2, i = a.center ? i : i + Math.sqrt((r - i) ** 2 + (n - i) ** 2) / 4) : i = Math.sqrt(e.clientWidth ** 2 + e.clientHeight ** 2) / 2;
        const s = `${(e.clientWidth - i * 2) / 2}px`, l = `${(e.clientHeight - i * 2) / 2}px`, u = a.center ? s : `${r - i}px`, c = a.center ? l : `${n - i}px`;
        return {
            radius: i,
            scale: o,
            x: u,
            y: c,
            centerX: s,
            centerY: l
        };
    }, Us = {
        show (t, e) {
            let a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
            if (!e?._ripple?.enabled) return;
            const r = document.createElement("span"), n = document.createElement("span");
            r.appendChild(n), r.className = "v-ripple__container", a.class && (r.className += ` ${a.class}`);
            const { radius: i, scale: o, x: s, y: l, centerX: u, centerY: c } = hM(t, e, a), d = `${i * 2}px`;
            n.className = "v-ripple__animation", n.style.width = d, n.style.height = d, e.appendChild(r);
            const h = window.getComputedStyle(e);
            h && h.position === "static" && (e.style.position = "relative", e.dataset.previousPosition = "static"), n.classList.add("v-ripple__animation--enter"), n.classList.add("v-ripple__animation--visible"), Ov(n, `translate(${s}, ${l}) scale3d(${o},${o},${o})`), n.dataset.activated = String(performance.now()), requestAnimationFrame(()=>{
                requestAnimationFrame(()=>{
                    n.classList.remove("v-ripple__animation--enter"), n.classList.add("v-ripple__animation--in"), Ov(n, `translate(${u}, ${c}) scale3d(1,1,1)`);
                });
            });
        },
        hide (t) {
            if (!t?._ripple?.enabled) return;
            const e = t.getElementsByClassName("v-ripple__animation");
            if (e.length === 0) return;
            const a = e[e.length - 1];
            if (a.dataset.isHiding) return;
            a.dataset.isHiding = "true";
            const r = performance.now() - Number(a.dataset.activated), n = Math.max(250 - r, 0);
            setTimeout(()=>{
                a.classList.remove("v-ripple__animation--in"), a.classList.add("v-ripple__animation--out"), setTimeout(()=>{
                    t.getElementsByClassName("v-ripple__animation").length === 1 && t.dataset.previousPosition && (t.style.position = t.dataset.previousPosition, delete t.dataset.previousPosition), a.parentNode?.parentNode === t && t.removeChild(a.parentNode);
                }, 300);
            }, n);
        }
    };
    function WF(t) {
        return typeof t > "u" || !!t;
    }
    function mo(t) {
        const e = {}, a = t.currentTarget;
        if (!(!a?._ripple || a._ripple.touched || t[Fh])) {
            if (t[Fh] = !0, kh(t)) a._ripple.touched = !0, a._ripple.isTouch = !0;
            else if (a._ripple.isTouch) return;
            if (e.center = a._ripple.centered || VF(t), a._ripple.class && (e.class = a._ripple.class), kh(t)) {
                if (a._ripple.showTimerCommit) return;
                a._ripple.showTimerCommit = ()=>{
                    Us.show(t, a, e);
                }, a._ripple.showTimer = window.setTimeout(()=>{
                    a?._ripple?.showTimerCommit && (a._ripple.showTimerCommit(), a._ripple.showTimerCommit = null);
                }, dM);
            } else Us.show(t, a, e);
        }
    }
    function Hv(t) {
        t[Fh] = !0;
    }
    function Ua(t) {
        const e = t.currentTarget;
        if (e?._ripple) {
            if (window.clearTimeout(e._ripple.showTimer), t.type === "touchend" && e._ripple.showTimerCommit) {
                e._ripple.showTimerCommit(), e._ripple.showTimerCommit = null, e._ripple.showTimer = window.setTimeout(()=>{
                    Ua(t);
                });
                return;
            }
            window.setTimeout(()=>{
                e._ripple && (e._ripple.touched = !1);
            }), Us.hide(e);
        }
    }
    function GF(t) {
        const e = t.currentTarget;
        e?._ripple && (e._ripple.showTimerCommit && (e._ripple.showTimerCommit = null), window.clearTimeout(e._ripple.showTimer));
    }
    let fo = !1;
    function $F(t) {
        !fo && (t.keyCode === qf.enter || t.keyCode === qf.space) && (fo = !0, mo(t));
    }
    function UF(t) {
        fo = !1, Ua(t);
    }
    function jF(t) {
        fo && (fo = !1, Ua(t));
    }
    function YF(t, e, a) {
        const { value: r, modifiers: n } = e, i = WF(r);
        if (i || Us.hide(t), t._ripple = t._ripple ?? {}, t._ripple.enabled = i, t._ripple.centered = n.center, t._ripple.circle = n.circle, pm(r) && r.class && (t._ripple.class = r.class), i && !a) {
            if (n.stop) {
                t.addEventListener("touchstart", Hv, {
                    passive: !0
                }), t.addEventListener("mousedown", Hv);
                return;
            }
            t.addEventListener("touchstart", mo, {
                passive: !0
            }), t.addEventListener("touchend", Ua, {
                passive: !0
            }), t.addEventListener("touchmove", GF, {
                passive: !0
            }), t.addEventListener("touchcancel", Ua), t.addEventListener("mousedown", mo), t.addEventListener("mouseup", Ua), t.addEventListener("mouseleave", Ua), t.addEventListener("keydown", $F), t.addEventListener("keyup", UF), t.addEventListener("blur", jF), t.addEventListener("dragstart", Ua, {
                passive: !0
            });
        } else !i && a && qF(t);
    }
    function qF(t) {
        t.removeEventListener("mousedown", mo), t.removeEventListener("touchstart", mo), t.removeEventListener("touchend", Ua), t.removeEventListener("touchmove", GF), t.removeEventListener("touchcancel", Ua), t.removeEventListener("mouseup", Ua), t.removeEventListener("mouseleave", Ua), t.removeEventListener("keydown", $F), t.removeEventListener("keyup", UF), t.removeEventListener("dragstart", Ua), t.removeEventListener("blur", jF);
    }
    function mM(t, e) {
        YF(t, e, !1);
    }
    function fM(t) {
        delete t._ripple, qF(t);
    }
    function pM(t, e) {
        if (e.value === e.oldValue) return;
        const a = WF(e.oldValue);
        YF(t, e, a);
    }
    let Dl;
    Lr = {
        mounted: mM,
        unmounted: fM,
        updated: pM
    };
    Dl = $({
        label: String,
        baseColor: String,
        trueValue: null,
        falseValue: null,
        value: null,
        ...we(),
        ...$m()
    }, "VSelectionControl");
    function gM(t) {
        const e = Et(OF, void 0), { densityClasses: a } = xa(t), r = Be(t, "modelValue"), n = T(()=>t.trueValue !== void 0 ? t.trueValue : t.value !== void 0 ? t.value : !0), i = T(()=>t.falseValue !== void 0 ? t.falseValue : !1), o = T(()=>!!t.multiple || t.multiple == null && Array.isArray(r.value)), s = T({
            get () {
                const m = e ? e.modelValue.value : r.value;
                return o.value ? Tt(m).some((f)=>t.valueComparator(f, n.value)) : t.valueComparator(m, n.value);
            },
            set (m) {
                if (t.readonly) return;
                const f = m ? n.value : i.value;
                let p = f;
                o.value && (p = m ? [
                    ...Tt(r.value),
                    f
                ] : Tt(r.value).filter((g)=>!t.valueComparator(g, n.value))), e ? e.modelValue.value = p : r.value = p;
            }
        }), { textColorClasses: l, textColorStyles: u } = ha(T(()=>{
            if (!(t.error || t.disabled)) return s.value ? t.color : t.baseColor;
        })), { backgroundColorClasses: c, backgroundColorStyles: d } = ft(T(()=>s.value && !t.error && !t.disabled ? t.color : t.baseColor)), h = T(()=>s.value ? t.trueIcon : t.falseIcon);
        return {
            group: e,
            densityClasses: a,
            trueValue: n,
            falseValue: i,
            model: s,
            textColorClasses: l,
            textColorStyles: u,
            backgroundColorClasses: c,
            backgroundColorStyles: d,
            icon: h
        };
    }
    let Xr, KF;
    Xr = te()({
        name: "VSelectionControl",
        directives: {
            Ripple: Lr
        },
        inheritAttrs: !1,
        props: Dl(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const { group: n, densityClasses: i, icon: o, model: s, textColorClasses: l, textColorStyles: u, backgroundColorClasses: c, backgroundColorStyles: d, trueValue: h } = gM(t), m = La(), f = de(!1), p = de(!1), g = W(), v = T(()=>t.id || `input-${m}`), b = T(()=>!t.disabled && !t.readonly);
            n?.onForceUpdate(()=>{
                g.value && (g.value.checked = s.value);
            });
            function k(w) {
                b.value && (f.value = !0, xi(w.target, ":focus-visible") !== !1 && (p.value = !0));
            }
            function S() {
                f.value = !1, p.value = !1;
            }
            function x(w) {
                w.stopPropagation();
            }
            function C(w) {
                if (!b.value) {
                    g.value && (g.value.checked = s.value);
                    return;
                }
                t.readonly && n && at(()=>n.forceUpdate()), s.value = w.target.checked;
            }
            return ie(()=>{
                const w = r.label ? r.label({
                    label: t.label,
                    props: {
                        for: v.value
                    }
                }) : t.label, [F, D] = an(a), _ = y("input", Z({
                    ref: g,
                    checked: s.value,
                    disabled: !!t.disabled,
                    id: v.value,
                    onBlur: S,
                    onFocus: k,
                    onInput: C,
                    "aria-disabled": !!t.disabled,
                    "aria-label": t.label,
                    type: t.type,
                    value: h.value,
                    name: t.name,
                    "aria-checked": t.type === "checkbox" ? s.value : void 0
                }, D), null);
                return y("div", Z({
                    class: [
                        "v-selection-control",
                        {
                            "v-selection-control--dirty": s.value,
                            "v-selection-control--disabled": t.disabled,
                            "v-selection-control--error": t.error,
                            "v-selection-control--focused": f.value,
                            "v-selection-control--focus-visible": p.value,
                            "v-selection-control--inline": t.inline
                        },
                        i.value,
                        t.class
                    ]
                }, F, {
                    style: t.style
                }), [
                    y("div", {
                        class: [
                            "v-selection-control__wrapper",
                            l.value
                        ],
                        style: u.value
                    }, [
                        r.default?.({
                            backgroundColorClasses: c,
                            backgroundColorStyles: d
                        }),
                        mt(y("div", {
                            class: [
                                "v-selection-control__input"
                            ]
                        }, [
                            r.input?.({
                                model: s,
                                textColorClasses: l,
                                textColorStyles: u,
                                backgroundColorClasses: c,
                                backgroundColorStyles: d,
                                inputNode: _,
                                icon: o.value,
                                props: {
                                    onFocus: k,
                                    onBlur: S,
                                    id: v.value
                                }
                            }) ?? y(Ce, null, [
                                o.value && y(_e, {
                                    key: "icon",
                                    icon: o.value
                                }, null),
                                _
                            ])
                        ]), [
                            [
                                qa("ripple"),
                                t.ripple && [
                                    !t.disabled && !t.readonly,
                                    null,
                                    [
                                        "center",
                                        "circle"
                                    ]
                                ]
                            ]
                        ])
                    ]),
                    w && y(Ii, {
                        for: v.value,
                        onClick: x
                    }, {
                        default: ()=>[
                                w
                            ]
                    })
                ]);
            }), {
                isFocused: f,
                input: g
            };
        }
    });
    KF = $({
        indeterminate: Boolean,
        indeterminateIcon: {
            type: Me,
            default: "$checkboxIndeterminate"
        },
        ...Dl({
            falseIcon: "$checkboxOff",
            trueIcon: "$checkboxOn"
        })
    }, "VCheckboxBtn");
    Pr = te()({
        name: "VCheckboxBtn",
        props: KF(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:indeterminate": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "indeterminate"), n = Be(t, "modelValue");
            function i(l) {
                r.value && (r.value = !1);
            }
            const o = T(()=>r.value ? t.indeterminateIcon : t.falseIcon), s = T(()=>r.value ? t.indeterminateIcon : t.trueIcon);
            return ie(()=>{
                const l = It(Xr.filterProps(t), [
                    "modelValue"
                ]);
                return y(Xr, Z(l, {
                    modelValue: n.value,
                    "onUpdate:modelValue": [
                        (u)=>n.value = u,
                        i
                    ],
                    class: [
                        "v-checkbox-btn",
                        t.class
                    ],
                    style: t.style,
                    type: "checkbox",
                    falseIcon: o.value,
                    trueIcon: s.value,
                    "aria-checked": r.value ? "mixed" : void 0
                }), a);
            }), {};
        }
    });
    function XF(t) {
        const { t: e } = zt();
        function a(r) {
            let { name: n, color: i } = r;
            const o = {
                prepend: "prependAction",
                prependInner: "prependAction",
                append: "appendAction",
                appendInner: "appendAction",
                clear: "clear"
            }[n], s = t[`onClick:${n}`];
            function l(c) {
                c.key !== "Enter" && c.key !== " " || (c.preventDefault(), c.stopPropagation(), ul(s, new PointerEvent("click", c)));
            }
            const u = s && o ? e(`$vuetify.input.${o}`, t.label ?? "") : void 0;
            return y(_e, {
                icon: t[`${n}Icon`],
                "aria-label": u,
                onClick: s,
                onKeydown: l,
                color: i
            }, null);
        }
        return {
            InputIcon: a
        };
    }
    const vM = $({
        disabled: Boolean,
        group: Boolean,
        hideOnLeave: Boolean,
        leaveAbsolute: Boolean,
        mode: String,
        origin: String
    }, "transition");
    function Ja(t, e, a) {
        return te()({
            name: t,
            props: vM({
                mode: a,
                origin: e
            }),
            setup (r, n) {
                let { slots: i } = n;
                const o = {
                    onBeforeEnter (s) {
                        r.origin && (s.style.transformOrigin = r.origin);
                    },
                    onLeave (s) {
                        if (r.leaveAbsolute) {
                            const { offsetTop: l, offsetLeft: u, offsetWidth: c, offsetHeight: d } = s;
                            s._transitionInitialStyles = {
                                position: s.style.position,
                                top: s.style.top,
                                left: s.style.left,
                                width: s.style.width,
                                height: s.style.height
                            }, s.style.position = "absolute", s.style.top = `${l}px`, s.style.left = `${u}px`, s.style.width = `${c}px`, s.style.height = `${d}px`;
                        }
                        r.hideOnLeave && s.style.setProperty("display", "none", "important");
                    },
                    onAfterLeave (s) {
                        if (r.leaveAbsolute && s?._transitionInitialStyles) {
                            const { position: l, top: u, left: c, width: d, height: h } = s._transitionInitialStyles;
                            delete s._transitionInitialStyles, s.style.position = l || "", s.style.top = u || "", s.style.left = c || "", s.style.width = d || "", s.style.height = h || "";
                        }
                    }
                };
                return ()=>{
                    const s = r.group ? cm : Kr;
                    return On(s, {
                        name: r.disabled ? "" : t,
                        css: !r.disabled,
                        ...r.group ? void 0 : {
                            mode: r.mode
                        },
                        ...r.disabled ? {} : o
                    }, i.default);
                };
            }
        });
    }
    function JF(t, e) {
        let a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "in-out";
        return te()({
            name: t,
            props: {
                mode: {
                    type: String,
                    default: a
                },
                disabled: Boolean,
                group: Boolean
            },
            setup (r, n) {
                let { slots: i } = n;
                const o = r.group ? cm : Kr;
                return ()=>On(o, {
                        name: r.disabled ? "" : t,
                        css: !r.disabled,
                        ...r.disabled ? {} : e
                    }, i.default);
            }
        });
    }
    function ZF() {
        let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "";
        const a = (arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1) ? "width" : "height", r = Sx(`offset-${a}`);
        return {
            onBeforeEnter (o) {
                o._parent = o.parentNode, o._initialStyle = {
                    transition: o.style.transition,
                    overflow: o.style.overflow,
                    [a]: o.style[a]
                };
            },
            onEnter (o) {
                const s = o._initialStyle;
                if (!s) return;
                o.style.setProperty("transition", "none", "important"), o.style.overflow = "hidden";
                const l = `${o[r]}px`;
                o.style[a] = "0", o.offsetHeight, o.style.transition = s.transition, t && o._parent && o._parent.classList.add(t), requestAnimationFrame(()=>{
                    o.style[a] = l;
                });
            },
            onAfterEnter: i,
            onEnterCancelled: i,
            onLeave (o) {
                o._initialStyle = {
                    transition: "",
                    overflow: o.style.overflow,
                    [a]: o.style[a]
                }, o.style.overflow = "hidden", o.style[a] = `${o[r]}px`, o.offsetHeight, requestAnimationFrame(()=>o.style[a] = "0");
            },
            onAfterLeave: n,
            onLeaveCancelled: n
        };
        function n(o) {
            t && o._parent && o._parent.classList.remove(t), i(o);
        }
        function i(o) {
            if (!o._initialStyle) return;
            const s = o._initialStyle[a];
            o.style.overflow = o._initialStyle.overflow, s != null && (o.style[a] = s), delete o._initialStyle;
        }
    }
    const yM = $({
        target: [
            Object,
            Array
        ]
    }, "v-dialog-transition"), Tl = te()({
        name: "VDialogTransition",
        props: yM(),
        setup (t, e) {
            let { slots: a } = e;
            const r = {
                onBeforeEnter (n) {
                    n.style.pointerEvents = "none", n.style.visibility = "hidden";
                },
                async onEnter (n, i) {
                    await new Promise((h)=>requestAnimationFrame(h)), await new Promise((h)=>requestAnimationFrame(h)), n.style.visibility = "";
                    const { x: o, y: s, sx: l, sy: u, speed: c } = Wv(t.target, n), d = vn(n, [
                        {
                            transform: `translate(${o}px, ${s}px) scale(${l}, ${u})`,
                            opacity: 0
                        },
                        {}
                    ], {
                        duration: 225 * c,
                        easing: jx
                    });
                    Vv(n)?.forEach((h)=>{
                        vn(h, [
                            {
                                opacity: 0
                            },
                            {
                                opacity: 0,
                                offset: .33
                            },
                            {}
                        ], {
                            duration: 225 * 2 * c,
                            easing: co
                        });
                    }), d.finished.then(()=>i());
                },
                onAfterEnter (n) {
                    n.style.removeProperty("pointer-events");
                },
                onBeforeLeave (n) {
                    n.style.pointerEvents = "none";
                },
                async onLeave (n, i) {
                    await new Promise((h)=>requestAnimationFrame(h));
                    const { x: o, y: s, sx: l, sy: u, speed: c } = Wv(t.target, n);
                    vn(n, [
                        {},
                        {
                            transform: `translate(${o}px, ${s}px) scale(${l}, ${u})`,
                            opacity: 0
                        }
                    ], {
                        duration: 125 * c,
                        easing: Ux
                    }).finished.then(()=>i()), Vv(n)?.forEach((h)=>{
                        vn(h, [
                            {},
                            {
                                opacity: 0,
                                offset: .2
                            },
                            {
                                opacity: 0
                            }
                        ], {
                            duration: 125 * 2 * c,
                            easing: co
                        });
                    });
                },
                onAfterLeave (n) {
                    n.style.removeProperty("pointer-events");
                }
            };
            return ()=>t.target ? y(Kr, Z({
                    name: "dialog-transition"
                }, r, {
                    css: !1
                }), a) : y(Kr, {
                    name: "dialog-transition"
                }, a);
        }
    });
    function Vv(t) {
        const e = t.querySelector(":scope > .v-card, :scope > .v-sheet, :scope > .v-list")?.children;
        return e && [
            ...e
        ];
    }
    function Wv(t, e) {
        const a = Hy(t), r = gm(e), [n, i] = getComputedStyle(e).transformOrigin.split(" ").map((v)=>parseFloat(v)), [o, s] = getComputedStyle(e).getPropertyValue("--v-overlay-anchor-origin").split(" ");
        let l = a.left + a.width / 2;
        o === "left" || s === "left" ? l -= a.width / 2 : (o === "right" || s === "right") && (l += a.width / 2);
        let u = a.top + a.height / 2;
        o === "top" || s === "top" ? u -= a.height / 2 : (o === "bottom" || s === "bottom") && (u += a.height / 2);
        const c = a.width / r.width, d = a.height / r.height, h = Math.max(1, c, d), m = c / h || 0, f = d / h || 0, p = r.width * r.height / (window.innerWidth * window.innerHeight), g = p > .12 ? Math.min(1.5, (p - .12) * 10 + 1) : 1;
        return {
            x: l - (n + r.left),
            y: u - (i + r.top),
            sx: m,
            sy: f,
            speed: g
        };
    }
    let bM, FM, kM, po, go, xM, wM, SM, e0, CM, El, AM, DM, t0, Ho;
    bM = Ja("fab-transition", "center center", "out-in");
    FM = Ja("dialog-bottom-transition");
    kM = Ja("dialog-top-transition");
    po = Ja("fade-transition");
    go = Ja("scale-transition");
    QF = Ja("scroll-x-transition");
    xM = Ja("scroll-x-reverse-transition");
    wM = Ja("scroll-y-transition");
    SM = Ja("scroll-y-reverse-transition");
    e0 = Ja("slide-x-transition");
    CM = Ja("slide-x-reverse-transition");
    El = Ja("slide-y-transition");
    AM = Ja("slide-y-reverse-transition");
    _l = JF("expand-transition", ZF());
    Um = JF("expand-x-transition", ZF("", !0));
    DM = $({
        active: Boolean,
        color: String,
        messages: {
            type: [
                Array,
                String
            ],
            default: ()=>[]
        },
        ...we(),
        ...fr({
            transition: {
                component: El,
                leaveAbsolute: !0,
                group: !0
            }
        })
    }, "VMessages");
    t0 = te()({
        name: "VMessages",
        props: DM(),
        setup (t, e) {
            let { slots: a } = e;
            const r = T(()=>Tt(t.messages)), { textColorClasses: n, textColorStyles: i } = ha(T(()=>t.color));
            return ie(()=>y(ba, {
                    transition: t.transition,
                    tag: "div",
                    class: [
                        "v-messages",
                        n.value,
                        t.class
                    ],
                    style: [
                        i.value,
                        t.style
                    ]
                }, {
                    default: ()=>[
                            t.active && r.value.map((o, s)=>y("div", {
                                    class: "v-messages__message",
                                    key: `${s}-${r.value}`
                                }, [
                                    a.message ? a.message({
                                        message: o
                                    }) : o
                                ]))
                        ]
                })), {};
        }
    });
    Ho = $({
        focused: Boolean,
        "onUpdate:focused": ra()
    }, "focus");
    function wr(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr();
        const a = Be(t, "focused"), r = T(()=>({
                [`${e}--focused`]: a.value
            }));
        function n() {
            a.value = !0;
        }
        function i() {
            a.value = !1;
        }
        return {
            focusClasses: r,
            isFocused: a,
            focus: n,
            blur: i
        };
    }
    const a0 = Symbol.for("vuetify:form"), TM = $({
        disabled: Boolean,
        fastFail: Boolean,
        readonly: Boolean,
        modelValue: {
            type: Boolean,
            default: null
        },
        validateOn: {
            type: String,
            default: "input"
        }
    }, "form");
    function EM(t) {
        const e = Be(t, "modelValue"), a = T(()=>t.disabled), r = T(()=>t.readonly), n = de(!1), i = W([]), o = W([]);
        async function s() {
            const c = [];
            let d = !0;
            o.value = [], n.value = !0;
            for (const h of i.value){
                const m = await h.validate();
                if (m.length > 0 && (d = !1, c.push({
                    id: h.id,
                    errorMessages: m
                })), !d && t.fastFail) break;
            }
            return o.value = c, n.value = !1, {
                valid: d,
                errors: o.value
            };
        }
        function l() {
            i.value.forEach((c)=>c.reset());
        }
        function u() {
            i.value.forEach((c)=>c.resetValidation());
        }
        return me(i, ()=>{
            let c = 0, d = 0;
            const h = [];
            for (const m of i.value)m.isValid === !1 ? (d++, h.push({
                id: m.id,
                errorMessages: m.errorMessages
            })) : m.isValid === !0 && c++;
            o.value = h, e.value = d > 0 ? !1 : c === i.value.length ? !0 : null;
        }, {
            deep: !0,
            flush: "post"
        }), Kt(a0, {
            register: (c)=>{
                let { id: d, vm: h, validate: m, reset: f, resetValidation: p } = c;
                i.value.some((g)=>g.id === d), i.value.push({
                    id: d,
                    validate: m,
                    reset: f,
                    resetValidation: p,
                    vm: Cx(h),
                    isValid: null,
                    errorMessages: []
                });
            },
            unregister: (c)=>{
                i.value = i.value.filter((d)=>d.id !== c);
            },
            update: (c, d, h)=>{
                const m = i.value.find((f)=>f.id === c);
                m && (m.isValid = d, m.errorMessages = h);
            },
            isDisabled: a,
            isReadonly: r,
            isValidating: n,
            isValid: e,
            items: i,
            validateOn: K(t, "validateOn")
        }), {
            errors: o,
            isDisabled: a,
            isReadonly: r,
            isValidating: n,
            isValid: e,
            items: i,
            validate: s,
            reset: l,
            resetValidation: u
        };
    }
    function Vo(t) {
        const e = Et(a0, null);
        return {
            ...e,
            isReadonly: T(()=>!!(t?.readonly ?? e?.isReadonly.value)),
            isDisabled: T(()=>!!(t?.disabled ?? e?.isDisabled.value))
        };
    }
    const r0 = $({
        disabled: {
            type: Boolean,
            default: null
        },
        error: Boolean,
        errorMessages: {
            type: [
                Array,
                String
            ],
            default: ()=>[]
        },
        maxErrors: {
            type: [
                Number,
                String
            ],
            default: 1
        },
        name: String,
        label: String,
        readonly: {
            type: Boolean,
            default: null
        },
        rules: {
            type: Array,
            default: ()=>[]
        },
        modelValue: null,
        validateOn: String,
        validationValue: null,
        ...Ho()
    }, "validation");
    function n0(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr(), a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : La();
        const r = Be(t, "modelValue"), n = T(()=>t.validationValue === void 0 ? r.value : t.validationValue), i = Vo(t), o = W([]), s = de(!0), l = T(()=>!!(Tt(r.value === "" ? null : r.value).length || Tt(n.value === "" ? null : n.value).length)), u = T(()=>t.errorMessages?.length ? Tt(t.errorMessages).concat(o.value).slice(0, Math.max(0, Number(t.maxErrors))) : o.value), c = T(()=>{
            let k = (t.validateOn ?? i.validateOn?.value) || "input";
            k === "lazy" && (k = "input lazy"), k === "eager" && (k = "input eager");
            const S = new Set(k?.split(" ") ?? []);
            return {
                input: S.has("input"),
                blur: S.has("blur") || S.has("input") || S.has("invalid-input"),
                invalidInput: S.has("invalid-input"),
                lazy: S.has("lazy"),
                eager: S.has("eager")
            };
        }), d = T(()=>t.error || t.errorMessages?.length ? !1 : t.rules.length ? s.value ? o.value.length || c.value.lazy ? null : !0 : !o.value.length : !0), h = de(!1), m = T(()=>({
                [`${e}--error`]: d.value === !1,
                [`${e}--dirty`]: l.value,
                [`${e}--disabled`]: i.isDisabled.value,
                [`${e}--readonly`]: i.isReadonly.value
            })), f = za("validation"), p = T(()=>t.name ?? Y(a));
        Mr(()=>{
            i.register?.({
                id: p.value,
                vm: f,
                validate: b,
                reset: g,
                resetValidation: v
            });
        }), ga(()=>{
            i.unregister?.(p.value);
        }), ea(async ()=>{
            c.value.lazy || await b(!c.value.eager), i.update?.(p.value, d.value, u.value);
        }), Ma(()=>c.value.input || c.value.invalidInput && d.value === !1, ()=>{
            me(n, ()=>{
                if (n.value != null) b();
                else if (t.focused) {
                    const k = me(()=>t.focused, (S)=>{
                        S || b(), k();
                    });
                }
            });
        }), Ma(()=>c.value.blur, ()=>{
            me(()=>t.focused, (k)=>{
                k || b();
            });
        }), me([
            d,
            u
        ], ()=>{
            i.update?.(p.value, d.value, u.value);
        });
        async function g() {
            r.value = null, await at(), await v();
        }
        async function v() {
            s.value = !0, c.value.lazy ? o.value = [] : await b(!c.value.eager);
        }
        async function b() {
            let k = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1;
            if (t.disabled || t.readonly) return o.value = [], h.value = !1, o.value;
            const S = [];
            h.value = !0;
            for (const x of t.rules){
                if (S.length >= Number(t.maxErrors ?? 1)) break;
                const w = await (typeof x == "function" ? x : ()=>x)(n.value);
                if (w !== !0) {
                    if (w !== !1 && typeof w != "string") {
                        console.warn(`${w} is not a valid value. Rule functions must return boolean true or a string.`);
                        continue;
                    }
                    S.push(w || "");
                }
            }
            return o.value = S, h.value = !1, s.value = k, o.value;
        }
        return {
            errorMessages: u,
            isDirty: l,
            isDisabled: i.isDisabled,
            isReadonly: i.isReadonly,
            isPristine: s,
            isValid: d,
            isValidating: h,
            reset: g,
            resetValidation: v,
            validate: b,
            validationClasses: m
        };
    }
    let Ir, ma, _M, Kn, Xn;
    Ir = $({
        id: String,
        appendIcon: Me,
        baseColor: String,
        centerAffix: {
            type: Boolean,
            default: !0
        },
        color: String,
        glow: Boolean,
        iconColor: [
            Boolean,
            String
        ],
        prependIcon: Me,
        hideDetails: [
            Boolean,
            String
        ],
        hideSpinButtons: Boolean,
        hint: String,
        persistentHint: Boolean,
        messages: {
            type: [
                Array,
                String
            ],
            default: ()=>[]
        },
        direction: {
            type: String,
            default: "horizontal",
            validator: (t)=>[
                    "horizontal",
                    "vertical"
                ].includes(t)
        },
        "onClick:prepend": ra(),
        "onClick:append": ra(),
        ...we(),
        ...ta(),
        ...Hn(Ut(), [
            "maxWidth",
            "minWidth",
            "width"
        ]),
        ...Qe(),
        ...r0()
    }, "VInput");
    ma = te()({
        name: "VInput",
        props: {
            ...Ir()
        },
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r, emit: n } = e;
            const { densityClasses: i } = xa(t), { dimensionStyles: o } = jt(t), { themeClasses: s } = ut(t), { rtlClasses: l } = Xt(), { InputIcon: u } = XF(t), c = La(), d = T(()=>t.id || `input-${c}`), h = T(()=>`${d.value}-messages`), { errorMessages: m, isDirty: f, isDisabled: p, isReadonly: g, isPristine: v, isValid: b, isValidating: k, reset: S, resetValidation: x, validate: C, validationClasses: w } = n0(t, "v-input", d), F = T(()=>({
                    id: d,
                    messagesId: h,
                    isDirty: f,
                    isDisabled: p,
                    isReadonly: g,
                    isPristine: v,
                    isValid: b,
                    isValidating: k,
                    reset: S,
                    resetValidation: x,
                    validate: C
                })), D = T(()=>t.error || t.disabled ? void 0 : t.focused ? t.color : t.baseColor), _ = T(()=>{
                if (t.iconColor) return t.iconColor === !0 ? D.value : t.iconColor;
            }), A = T(()=>t.errorMessages?.length || !v.value && m.value.length ? m.value : t.hint && (t.persistentHint || t.focused) ? t.hint : t.messages);
            return ie(()=>{
                const E = !!(r.prepend || t.prependIcon), B = !!(r.append || t.appendIcon), P = A.value.length > 0, M = !t.hideDetails || t.hideDetails === "auto" && (P || !!r.details);
                return y("div", {
                    class: [
                        "v-input",
                        `v-input--${t.direction}`,
                        {
                            "v-input--center-affix": t.centerAffix,
                            "v-input--focused": t.focused,
                            "v-input--glow": t.glow,
                            "v-input--hide-spin-buttons": t.hideSpinButtons
                        },
                        i.value,
                        s.value,
                        l.value,
                        w.value,
                        t.class
                    ],
                    style: [
                        o.value,
                        t.style
                    ]
                }, [
                    E && y("div", {
                        key: "prepend",
                        class: "v-input__prepend"
                    }, [
                        r.prepend?.(F.value),
                        t.prependIcon && y(u, {
                            key: "prepend-icon",
                            name: "prepend",
                            color: _.value
                        }, null)
                    ]),
                    r.default && y("div", {
                        class: "v-input__control"
                    }, [
                        r.default?.(F.value)
                    ]),
                    B && y("div", {
                        key: "append",
                        class: "v-input__append"
                    }, [
                        t.appendIcon && y(u, {
                            key: "append-icon",
                            name: "append",
                            color: _.value
                        }, null),
                        r.append?.(F.value)
                    ]),
                    M && y("div", {
                        id: h.value,
                        class: "v-input__details",
                        role: "alert",
                        "aria-live": "polite"
                    }, [
                        y(t0, {
                            active: P,
                            messages: A.value
                        }, {
                            message: r.message
                        }),
                        r.details?.(F.value)
                    ])
                ]);
            }), {
                reset: S,
                resetValidation: x,
                validate: C,
                isValid: b,
                errorMessages: m
            };
        }
    });
    _M = $({
        ...Ir(),
        ...It(KF(), [
            "inline"
        ])
    }, "VCheckbox");
    jr = te()({
        name: "VCheckbox",
        inheritAttrs: !1,
        props: _M(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:focused": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const n = Be(t, "modelValue"), { isFocused: i, focus: o, blur: s } = wr(t), l = La(), u = T(()=>t.id || `checkbox-${l}`);
            return ie(()=>{
                const [c, d] = an(a), h = ma.filterProps(t), m = Pr.filterProps(t);
                return y(ma, Z({
                    class: [
                        "v-checkbox",
                        t.class
                    ]
                }, c, h, {
                    modelValue: n.value,
                    "onUpdate:modelValue": (f)=>n.value = f,
                    id: u.value,
                    focused: i.value,
                    style: t.style
                }), {
                    ...r,
                    default: (f)=>{
                        let { id: p, messagesId: g, isDisabled: v, isReadonly: b, isValid: k } = f;
                        return y(Pr, Z(m, {
                            id: p.value,
                            "aria-describedby": g.value,
                            disabled: v.value,
                            readonly: b.value
                        }, d, {
                            error: k.value === !1,
                            modelValue: n.value,
                            "onUpdate:modelValue": (S)=>n.value = S,
                            onFocus: o,
                            onBlur: s
                        }), r);
                    }
                });
            }), {};
        }
    });
    Kn = $({
        modelValue: {
            type: null,
            default: void 0
        },
        multiple: Boolean,
        mandatory: [
            Boolean,
            String
        ],
        max: Number,
        selectedClass: String,
        disabled: Boolean
    }, "group");
    Xn = $({
        value: null,
        disabled: Boolean,
        selectedClass: String
    }, "group-item");
    function Jn(t, e) {
        let a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0;
        const r = za("useGroupItem");
        if (!r) throw new Error("[Vuetify] useGroupItem composable must be used inside a component setup function");
        const n = La();
        Kt(Symbol.for(`${e.description}:id`), n);
        const i = Et(e, null);
        if (!i) {
            if (!a) return i;
            throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${e.description}`);
        }
        const o = K(t, "value"), s = T(()=>!!(i.disabled.value || t.disabled));
        i.register({
            id: n,
            value: o,
            disabled: s
        }, r), ga(()=>{
            i.unregister(n);
        });
        const l = T(()=>i.isSelected(n)), u = T(()=>i.items.value[0].id === n), c = T(()=>i.items.value[i.items.value.length - 1].id === n), d = T(()=>l.value && [
                i.selectedClass.value,
                t.selectedClass
            ]);
        return me(l, (h)=>{
            r.emit("group:selected", {
                value: h
            });
        }, {
            flush: "sync"
        }), {
            id: n,
            isSelected: l,
            isFirst: u,
            isLast: c,
            toggle: ()=>i.select(n, !l.value),
            select: (h)=>i.select(n, h),
            selectedClass: d,
            value: o,
            disabled: s,
            group: i
        };
    }
    function ln(t, e) {
        let a = !1;
        const r = Ba([]), n = Be(t, "modelValue", [], (h)=>h == null ? [] : i0(r, Tt(h)), (h)=>{
            const m = BM(r, h);
            return t.multiple ? m : m[0];
        }), i = za("useGroup");
        function o(h, m) {
            const f = h, p = Symbol.for(`${e.description}:id`), v = Yx(p, i?.vnode).indexOf(m);
            Y(f.value) == null && (f.value = v, f.useIndexAsValue = !0), v > -1 ? r.splice(v, 0, f) : r.push(f);
        }
        function s(h) {
            if (a) return;
            l();
            const m = r.findIndex((f)=>f.id === h);
            r.splice(m, 1);
        }
        function l() {
            const h = r.find((m)=>!m.disabled);
            h && t.mandatory === "force" && !n.value.length && (n.value = [
                h.id
            ]);
        }
        ea(()=>{
            l();
        }), ga(()=>{
            a = !0;
        }), Ax(()=>{
            for(let h = 0; h < r.length; h++)r[h].useIndexAsValue && (r[h].value = h);
        });
        function u(h, m) {
            const f = r.find((p)=>p.id === h);
            if (!(m && f?.disabled)) if (t.multiple) {
                const p = n.value.slice(), g = p.findIndex((b)=>b === h), v = ~g;
                if (m = m ?? !v, v && t.mandatory && p.length <= 1 || !v && t.max != null && p.length + 1 > t.max) return;
                g < 0 && m ? p.push(h) : g >= 0 && !m && p.splice(g, 1), n.value = p;
            } else {
                const p = n.value.includes(h);
                if (t.mandatory && p) return;
                n.value = m ?? !p ? [
                    h
                ] : [];
            }
        }
        function c(h) {
            if (t.multiple, n.value.length) {
                const m = n.value[0], f = r.findIndex((v)=>v.id === m);
                let p = (f + h) % r.length, g = r[p];
                for(; g.disabled && p !== f;)p = (p + h) % r.length, g = r[p];
                if (g.disabled) return;
                n.value = [
                    r[p].id
                ];
            } else {
                const m = r.find((f)=>!f.disabled);
                m && (n.value = [
                    m.id
                ]);
            }
        }
        const d = {
            register: o,
            unregister: s,
            selected: n,
            select: u,
            disabled: K(t, "disabled"),
            prev: ()=>c(r.length - 1),
            next: ()=>c(1),
            isSelected: (h)=>n.value.includes(h),
            selectedClass: T(()=>t.selectedClass),
            items: T(()=>r),
            getItemIndex: (h)=>PM(r, h)
        };
        return Kt(e, d), d;
    }
    function PM(t, e) {
        const a = i0(t, [
            e
        ]);
        return a.length ? t.findIndex((r)=>r.id === a[0]) : -1;
    }
    function i0(t, e) {
        const a = [];
        return e.forEach((r)=>{
            const n = t.find((o)=>Aa(r, o.value)), i = t[r];
            n?.value != null ? a.push(n.id) : i != null && a.push(i.id);
        }), a;
    }
    function BM(t, e) {
        const a = [];
        return e.forEach((r)=>{
            const n = t.findIndex((i)=>i.id === r);
            if (~n) {
                const i = t[n];
                a.push(i.value != null ? i.value : n);
            }
        }), a;
    }
    function MM(t) {
        let { selectedElement: e, containerElement: a, isRtl: r, isHorizontal: n } = t;
        const i = vo(n, a), o = o0(n, r, a), s = vo(n, e), l = s0(n, e), u = s * .4;
        return o > l ? l - u : o + i < l + s ? l - i + s + u : o;
    }
    function RM(t) {
        let { selectedElement: e, containerElement: a, isHorizontal: r } = t;
        const n = vo(r, a), i = s0(r, e), o = vo(r, e);
        return i - n / 2 + o / 2;
    }
    function Gv(t, e) {
        return e?.[t ? "scrollWidth" : "scrollHeight"] || 0;
    }
    function LM(t, e) {
        return e?.[t ? "clientWidth" : "clientHeight"] || 0;
    }
    function o0(t, e, a) {
        if (!a) return 0;
        const { scrollLeft: r, offsetWidth: n, scrollWidth: i } = a;
        return t ? e ? i - n + r : r : a.scrollTop;
    }
    function vo(t, e) {
        return e?.[t ? "offsetWidth" : "offsetHeight"] || 0;
    }
    function s0(t, e) {
        return e?.[t ? "offsetLeft" : "offsetTop"] || 0;
    }
    const l0 = Symbol.for("vuetify:v-slide-group"), jm = $({
        centerActive: Boolean,
        direction: {
            type: String,
            default: "horizontal"
        },
        symbol: {
            type: null,
            default: l0
        },
        nextIcon: {
            type: Me,
            default: "$next"
        },
        prevIcon: {
            type: Me,
            default: "$prev"
        },
        showArrows: {
            type: [
                Boolean,
                String
            ],
            validator: (t)=>typeof t == "boolean" || [
                    "always",
                    "desktop",
                    "mobile"
                ].includes(t)
        },
        ...we(),
        ...Vn({
            mobile: null
        }),
        ...We(),
        ...Kn({
            selectedClass: "v-slide-group-item--active"
        })
    }, "VSlideGroup"), yo = te()({
        name: "VSlideGroup",
        props: jm(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { isRtl: r } = Xt(), { displayClasses: n, mobile: i } = Ia(t), o = ln(t, t.symbol), s = de(!1), l = de(0), u = de(0), c = de(0), d = T(()=>t.direction === "horizontal"), { resizeRef: h, contentRect: m } = vr(), { resizeRef: f, contentRect: p } = vr(), g = qx(), v = T(()=>({
                    container: h.el,
                    duration: 200,
                    easing: "easeOutQuart"
                })), b = T(()=>o.selected.value.length ? o.items.value.findIndex((L)=>L.id === o.selected.value[0]) : -1), k = T(()=>o.selected.value.length ? o.items.value.findIndex((L)=>L.id === o.selected.value[o.selected.value.length - 1]) : -1);
            if (Yt) {
                let L = -1;
                me(()=>[
                        o.selected.value,
                        m.value,
                        p.value,
                        d.value
                    ], ()=>{
                    cancelAnimationFrame(L), L = requestAnimationFrame(()=>{
                        if (m.value && p.value) {
                            const G = d.value ? "width" : "height";
                            u.value = m.value[G], c.value = p.value[G], s.value = u.value + 1 < c.value;
                        }
                        if (b.value >= 0 && f.el) {
                            const G = f.el.children[k.value];
                            x(G, t.centerActive);
                        }
                    });
                });
            }
            const S = de(!1);
            function x(L, G) {
                let q = 0;
                G ? q = RM({
                    containerElement: h.el,
                    isHorizontal: d.value,
                    selectedElement: L
                }) : q = MM({
                    containerElement: h.el,
                    isHorizontal: d.value,
                    isRtl: r.value,
                    selectedElement: L
                }), C(q);
            }
            function C(L) {
                if (!Yt || !h.el) return;
                const G = vo(d.value, h.el), q = o0(d.value, r.value, h.el);
                if (!(Gv(d.value, h.el) <= G || Math.abs(L - q) < 16)) {
                    if (d.value && r.value && h.el) {
                        const { scrollWidth: ue, offsetWidth: J } = h.el;
                        L = ue - J - L;
                    }
                    d.value ? g.horizontal(L, v.value) : g(L, v.value);
                }
            }
            function w(L) {
                const { scrollTop: G, scrollLeft: q } = L.target;
                l.value = d.value ? q : G;
            }
            function F(L) {
                if (S.value = !0, !(!s.value || !f.el)) {
                    for (const G of L.composedPath())for (const q of f.el.children)if (q === G) {
                        x(q);
                        return;
                    }
                }
            }
            function D(L) {
                S.value = !1;
            }
            let _ = !1;
            function A(L) {
                !_ && !S.value && !(L.relatedTarget && f.el?.contains(L.relatedTarget)) && M(), _ = !1;
            }
            function E() {
                _ = !0;
            }
            function B(L) {
                if (!f.el) return;
                function G(q) {
                    L.preventDefault(), M(q);
                }
                d.value ? L.key === "ArrowRight" ? G(r.value ? "prev" : "next") : L.key === "ArrowLeft" && G(r.value ? "next" : "prev") : L.key === "ArrowDown" ? G("next") : L.key === "ArrowUp" && G("prev"), L.key === "Home" ? G("first") : L.key === "End" && G("last");
            }
            function P(L, G) {
                if (!L) return;
                let q = L;
                do q = q?.[G === "next" ? "nextElementSibling" : "previousElementSibling"];
                while (q?.hasAttribute("disabled"));
                return q;
            }
            function M(L) {
                if (!f.el) return;
                let G;
                if (!L) G = Ms(f.el)[0];
                else if (L === "next") {
                    if (G = P(f.el.querySelector(":focus"), L), !G) return M("first");
                } else if (L === "prev") {
                    if (G = P(f.el.querySelector(":focus"), L), !G) return M("last");
                } else L === "first" ? (G = f.el.firstElementChild, G?.hasAttribute("disabled") && (G = P(G, "next"))) : L === "last" && (G = f.el.lastElementChild, G?.hasAttribute("disabled") && (G = P(G, "prev")));
                G && G.focus({
                    preventScroll: !0
                });
            }
            function R(L) {
                const G = d.value && r.value ? -1 : 1, q = (L === "prev" ? -G : G) * u.value;
                let X = l.value + q;
                if (d.value && r.value && h.el) {
                    const { scrollWidth: ue, offsetWidth: J } = h.el;
                    X += ue - J;
                }
                C(X);
            }
            const z = T(()=>({
                    next: o.next,
                    prev: o.prev,
                    select: o.select,
                    isSelected: o.isSelected
                })), N = T(()=>{
                switch(t.showArrows){
                    case "always":
                        return !0;
                    case "desktop":
                        return !i.value;
                    case !0:
                        return s.value || Math.abs(l.value) > 0;
                    case "mobile":
                        return i.value || s.value || Math.abs(l.value) > 0;
                    default:
                        return !i.value && (s.value || Math.abs(l.value) > 0);
                }
            }), H = T(()=>Math.abs(l.value) > 1), I = T(()=>{
                if (!h.value) return !1;
                const L = Gv(d.value, h.el), G = LM(d.value, h.el);
                return L - G - Math.abs(l.value) > 1;
            });
            return ie(()=>y(t.tag, {
                    class: [
                        "v-slide-group",
                        {
                            "v-slide-group--vertical": !d.value,
                            "v-slide-group--has-affixes": N.value,
                            "v-slide-group--is-overflowing": s.value
                        },
                        n.value,
                        t.class
                    ],
                    style: t.style,
                    tabindex: S.value || o.selected.value.length ? -1 : 0,
                    onFocus: A
                }, {
                    default: ()=>[
                            N.value && y("div", {
                                key: "prev",
                                class: [
                                    "v-slide-group__prev",
                                    {
                                        "v-slide-group__prev--disabled": !H.value
                                    }
                                ],
                                onMousedown: E,
                                onClick: ()=>H.value && R("prev")
                            }, [
                                a.prev?.(z.value) ?? y(po, null, {
                                    default: ()=>[
                                            y(_e, {
                                                icon: r.value ? t.nextIcon : t.prevIcon
                                            }, null)
                                        ]
                                })
                            ]),
                            y("div", {
                                key: "container",
                                ref: h,
                                class: "v-slide-group__container",
                                onScroll: w
                            }, [
                                y("div", {
                                    ref: f,
                                    class: "v-slide-group__content",
                                    onFocusin: F,
                                    onFocusout: D,
                                    onKeydown: B
                                }, [
                                    a.default?.(z.value)
                                ])
                            ]),
                            N.value && y("div", {
                                key: "next",
                                class: [
                                    "v-slide-group__next",
                                    {
                                        "v-slide-group__next--disabled": !I.value
                                    }
                                ],
                                onMousedown: E,
                                onClick: ()=>I.value && R("next")
                            }, [
                                a.next?.(z.value) ?? y(po, null, {
                                    default: ()=>[
                                            y(_e, {
                                                icon: r.value ? t.prevIcon : t.nextIcon
                                            }, null)
                                        ]
                                })
                            ])
                        ]
                })), {
                selected: o.selected,
                scrollTo: R,
                scrollOffset: l,
                focus: M,
                hasPrev: H,
                hasNext: I
            };
        }
    }), u0 = Symbol.for("vuetify:v-chip-group"), IM = $({
        baseColor: String,
        column: Boolean,
        filter: Boolean,
        valueComparator: {
            type: Function,
            default: Aa
        },
        ...jm(),
        ...we(),
        ...Kn({
            selectedClass: "v-chip--selected"
        }),
        ...We(),
        ...Qe(),
        ...or({
            variant: "tonal"
        })
    }, "VChipGroup"), zM = te()({
        name: "VChipGroup",
        props: IM(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t), { isSelected: n, select: i, next: o, prev: s, selected: l } = ln(t, u0);
            return Bt({
                VChip: {
                    baseColor: K(t, "baseColor"),
                    color: K(t, "color"),
                    disabled: K(t, "disabled"),
                    filter: K(t, "filter"),
                    variant: K(t, "variant")
                }
            }), ie(()=>{
                const u = yo.filterProps(t);
                return y(yo, Z(u, {
                    class: [
                        "v-chip-group",
                        {
                            "v-chip-group--column": t.column
                        },
                        r.value,
                        t.class
                    ],
                    style: t.style
                }), {
                    default: ()=>[
                            a.default?.({
                                isSelected: n,
                                select: i,
                                next: o,
                                prev: s,
                                selected: l.value
                            })
                        ]
                });
            }), {};
        }
    }), Jt = $({
        elevation: {
            type: [
                Number,
                String
            ],
            validator (t) {
                const e = parseInt(t);
                return !isNaN(e) && e >= 0 && e <= 24;
            }
        }
    }, "elevation");
    function na(t) {
        return {
            elevationClasses: T(()=>{
                const a = Pt(t) ? t.value : t.elevation, r = [];
                return a == null || r.push(`elevation-${a}`), r;
            })
        };
    }
    function NM() {
        const t = za("useRoute");
        return T(()=>t?.proxy?.$route);
    }
    function c0() {
        return za("useRouter")?.proxy?.$router;
    }
    function Wo(t, e) {
        const a = Iy("RouterLink"), r = T(()=>!!(t.href || t.to)), n = T(()=>r?.value || Kf(e, "click") || Kf(t, "click"));
        if (typeof a == "string" || !("useLink" in a)) {
            const d = K(t, "href");
            return {
                isLink: r,
                isClickable: n,
                href: d,
                linkProps: Ba({
                    href: d
                })
            };
        }
        const i = T(()=>({
                ...t,
                to: K(()=>t.to || "")
            })), o = a.useLink(i.value), s = T(()=>t.to ? o : void 0), l = NM(), u = T(()=>s.value ? t.exact ? l.value ? s.value.isExactActive?.value && Aa(s.value.route.value.query, l.value.query) : s.value.isExactActive?.value ?? !1 : s.value.isActive?.value ?? !1 : !1), c = T(()=>t.to ? s.value?.route.value.href : t.href);
        return {
            isLink: r,
            isClickable: n,
            isActive: u,
            route: s.value?.route,
            navigate: s.value?.navigate,
            href: c,
            linkProps: Ba({
                href: c,
                "aria-current": T(()=>u.value ? "page" : void 0)
            })
        };
    }
    const Go = $({
        href: String,
        replace: Boolean,
        to: [
            String,
            Object
        ],
        exact: Boolean
    }, "router");
    let bd = !1;
    function OM(t, e) {
        let a = !1, r, n;
        Yt && t?.beforeEach && (at(()=>{
            window.addEventListener("popstate", i), r = t.beforeEach((o, s, l)=>{
                bd ? a ? e(l) : l() : setTimeout(()=>a ? e(l) : l()), bd = !0;
            }), n = t?.afterEach(()=>{
                bd = !1;
            });
        }), pa(()=>{
            window.removeEventListener("popstate", i), r?.(), n?.();
        }));
        function i(o) {
            o.state?.replaced || (a = !0, setTimeout(()=>a = !1));
        }
    }
    let HM, xh;
    HM = $({
        activeClass: String,
        appendAvatar: String,
        appendIcon: Me,
        baseColor: String,
        closable: Boolean,
        closeIcon: {
            type: Me,
            default: "$delete"
        },
        closeLabel: {
            type: String,
            default: "$vuetify.close"
        },
        draggable: Boolean,
        filter: Boolean,
        filterIcon: {
            type: Me,
            default: "$complete"
        },
        label: Boolean,
        link: {
            type: Boolean,
            default: void 0
        },
        pill: Boolean,
        prependAvatar: String,
        prependIcon: Me,
        ripple: {
            type: [
                Boolean,
                Object
            ],
            default: !0
        },
        text: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        modelValue: {
            type: Boolean,
            default: !0
        },
        onClick: ra(),
        onClickOnce: ra(),
        ...Na(),
        ...we(),
        ...ta(),
        ...Jt(),
        ...Xn(),
        ...Ct(),
        ...Go(),
        ...xr(),
        ...We({
            tag: "span"
        }),
        ...Qe(),
        ...or({
            variant: "tonal"
        })
    }, "VChip");
    oa = te()({
        name: "VChip",
        directives: {
            Ripple: Lr
        },
        props: HM(),
        emits: {
            "click:close": (t)=>!0,
            "update:modelValue": (t)=>!0,
            "group:selected": (t)=>!0,
            click: (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, emit: r, slots: n } = e;
            const { t: i } = zt(), { borderClasses: o } = Xa(t), { densityClasses: s } = xa(t), { elevationClasses: l } = na(t), { roundedClasses: u } = Mt(t), { sizeClasses: c } = Li(t), { themeClasses: d } = ut(t), h = Be(t, "modelValue"), m = Jn(t, u0, !1), f = Wo(t, a), p = T(()=>t.link !== !1 && f.isLink.value), g = T(()=>!t.disabled && t.link !== !1 && (!!m || t.link || f.isClickable.value)), v = T(()=>({
                    "aria-label": i(t.closeLabel),
                    onClick (F) {
                        F.preventDefault(), F.stopPropagation(), h.value = !1, r("click:close", F);
                    }
                })), b = T(()=>({
                    color: !m || m.isSelected.value ? t.color ?? t.baseColor : t.baseColor,
                    variant: t.variant
                })), { colorClasses: k, colorStyles: S, variantClasses: x } = qn(b);
            function C(F) {
                r("click", F), g.value && (f.navigate?.(F), m?.toggle());
            }
            function w(F) {
                (F.key === "Enter" || F.key === " ") && (F.preventDefault(), C(F));
            }
            return ()=>{
                const F = f.isLink.value ? "a" : t.tag, D = !!(t.appendIcon || t.appendAvatar), _ = !!(D || n.append), A = !!(n.close || t.closable), E = !!(n.filter || t.filter) && m, B = !!(t.prependIcon || t.prependAvatar), P = !!(B || n.prepend);
                return h.value && mt(y(F, Z({
                    class: [
                        "v-chip",
                        {
                            "v-chip--disabled": t.disabled,
                            "v-chip--label": t.label,
                            "v-chip--link": g.value,
                            "v-chip--filter": E,
                            "v-chip--pill": t.pill,
                            [`${t.activeClass}`]: t.activeClass && f.isActive?.value
                        },
                        d.value,
                        o.value,
                        k.value,
                        s.value,
                        l.value,
                        u.value,
                        c.value,
                        x.value,
                        m?.selectedClass.value,
                        t.class
                    ],
                    style: [
                        S.value,
                        t.style
                    ],
                    disabled: t.disabled || void 0,
                    draggable: t.draggable,
                    tabindex: g.value ? 0 : void 0,
                    onClick: C,
                    onKeydown: g.value && !p.value && w
                }, f.linkProps), {
                    default: ()=>[
                            sn(g.value, "v-chip"),
                            E && y(Um, {
                                key: "filter"
                            }, {
                                default: ()=>[
                                        mt(y("div", {
                                            class: "v-chip__filter"
                                        }, [
                                            n.filter ? y(Ge, {
                                                key: "filter-defaults",
                                                disabled: !t.filterIcon,
                                                defaults: {
                                                    VIcon: {
                                                        icon: t.filterIcon
                                                    }
                                                }
                                            }, n.filter) : y(_e, {
                                                key: "filter-icon",
                                                icon: t.filterIcon
                                            }, null)
                                        ]), [
                                            [
                                                Ca,
                                                m.isSelected.value
                                            ]
                                        ])
                                    ]
                            }),
                            P && y("div", {
                                key: "prepend",
                                class: "v-chip__prepend"
                            }, [
                                n.prepend ? y(Ge, {
                                    key: "prepend-defaults",
                                    disabled: !B,
                                    defaults: {
                                        VAvatar: {
                                            image: t.prependAvatar,
                                            start: !0
                                        },
                                        VIcon: {
                                            icon: t.prependIcon,
                                            start: !0
                                        }
                                    }
                                }, n.prepend) : y(Ce, null, [
                                    t.prependIcon && y(_e, {
                                        key: "prepend-icon",
                                        icon: t.prependIcon,
                                        start: !0
                                    }, null),
                                    t.prependAvatar && y(ir, {
                                        key: "prepend-avatar",
                                        image: t.prependAvatar,
                                        start: !0
                                    }, null)
                                ])
                            ]),
                            y("div", {
                                class: "v-chip__content",
                                "data-no-activator": ""
                            }, [
                                n.default?.({
                                    isSelected: m?.isSelected.value,
                                    selectedClass: m?.selectedClass.value,
                                    select: m?.select,
                                    toggle: m?.toggle,
                                    value: m?.value.value,
                                    disabled: t.disabled
                                }) ?? Se(t.text)
                            ]),
                            _ && y("div", {
                                key: "append",
                                class: "v-chip__append"
                            }, [
                                n.append ? y(Ge, {
                                    key: "append-defaults",
                                    disabled: !D,
                                    defaults: {
                                        VAvatar: {
                                            end: !0,
                                            image: t.appendAvatar
                                        },
                                        VIcon: {
                                            end: !0,
                                            icon: t.appendIcon
                                        }
                                    }
                                }, n.append) : y(Ce, null, [
                                    t.appendIcon && y(_e, {
                                        key: "append-icon",
                                        end: !0,
                                        icon: t.appendIcon
                                    }, null),
                                    t.appendAvatar && y(ir, {
                                        key: "append-avatar",
                                        end: !0,
                                        image: t.appendAvatar
                                    }, null)
                                ])
                            ]),
                            A && y("button", Z({
                                key: "close",
                                class: "v-chip__close",
                                type: "button",
                                "data-testid": "close-chip"
                            }, v.value), [
                                n.close ? y(Ge, {
                                    key: "close-defaults",
                                    defaults: {
                                        VIcon: {
                                            icon: t.closeIcon,
                                            size: "x-small"
                                        }
                                    }
                                }, n.close) : y(_e, {
                                    key: "close-icon",
                                    icon: t.closeIcon,
                                    size: "x-small"
                                }, null)
                            ])
                        ]
                }), [
                    [
                        qa("ripple"),
                        g.value && t.ripple,
                        null
                    ]
                ]);
            };
        }
    });
    xh = Symbol.for("vuetify:list");
    function d0() {
        const t = Et(xh, {
            hasPrepend: de(!1),
            updateHasPrepend: ()=>null
        }), e = {
            hasPrepend: de(!1),
            updateHasPrepend: (a)=>{
                a && (e.hasPrepend.value = a);
            }
        };
        return Kt(xh, e), t;
    }
    function h0() {
        return Et(xh, null);
    }
    const Ym = (t)=>{
        const e = {
            activate: (a)=>{
                let { id: r, value: n, activated: i } = a;
                return r = Gt(r), t && !n && i.size === 1 && i.has(r) || (n ? i.add(r) : i.delete(r)), i;
            },
            in: (a, r, n)=>{
                let i = new Set;
                if (a != null) for (const o of Tt(a))i = e.activate({
                    id: o,
                    value: !0,
                    activated: new Set(i),
                    children: r,
                    parents: n
                });
                return i;
            },
            out: (a)=>Array.from(a)
        };
        return e;
    }, m0 = (t)=>{
        const e = Ym(t);
        return {
            activate: (r)=>{
                let { activated: n, id: i, ...o } = r;
                i = Gt(i);
                const s = n.has(i) ? new Set([
                    i
                ]) : new Set;
                return e.activate({
                    ...o,
                    id: i,
                    activated: s
                });
            },
            in: (r, n, i)=>{
                let o = new Set;
                if (r != null) {
                    const s = Tt(r);
                    s.length && (o = e.in(s.slice(0, 1), n, i));
                }
                return o;
            },
            out: (r, n, i)=>e.out(r, n, i)
        };
    }, VM = (t)=>{
        const e = Ym(t);
        return {
            activate: (r)=>{
                let { id: n, activated: i, children: o, ...s } = r;
                return n = Gt(n), o.has(n) ? i : e.activate({
                    id: n,
                    activated: i,
                    children: o,
                    ...s
                });
            },
            in: e.in,
            out: e.out
        };
    }, WM = (t)=>{
        const e = m0(t);
        return {
            activate: (r)=>{
                let { id: n, activated: i, children: o, ...s } = r;
                return n = Gt(n), o.has(n) ? i : e.activate({
                    id: n,
                    activated: i,
                    children: o,
                    ...s
                });
            },
            in: e.in,
            out: e.out
        };
    }, GM = {
        open: (t)=>{
            let { id: e, value: a, opened: r, parents: n } = t;
            if (a) {
                const i = new Set;
                i.add(e);
                let o = n.get(e);
                for(; o != null;)i.add(o), o = n.get(o);
                return i;
            } else return r.delete(e), r;
        },
        select: ()=>null
    }, f0 = {
        open: (t)=>{
            let { id: e, value: a, opened: r, parents: n } = t;
            if (a) {
                let i = n.get(e);
                for(r.add(e); i != null && i !== e;)r.add(i), i = n.get(i);
                return r;
            } else r.delete(e);
            return r;
        },
        select: ()=>null
    }, $M = {
        open: f0.open,
        select: (t)=>{
            let { id: e, value: a, opened: r, parents: n } = t;
            if (!a) return r;
            const i = [];
            let o = n.get(e);
            for(; o != null;)i.push(o), o = n.get(o);
            return new Set(i);
        }
    }, qm = (t)=>{
        const e = {
            select: (a)=>{
                let { id: r, value: n, selected: i } = a;
                if (r = Gt(r), t && !n) {
                    const o = Array.from(i.entries()).reduce((s, l)=>{
                        let [u, c] = l;
                        return c === "on" && s.push(u), s;
                    }, []);
                    if (o.length === 1 && o[0] === r) return i;
                }
                return i.set(r, n ? "on" : "off"), i;
            },
            in: (a, r, n)=>{
                const i = new Map;
                for (const o of a || [])e.select({
                    id: o,
                    value: !0,
                    selected: i,
                    children: r,
                    parents: n
                });
                return i;
            },
            out: (a)=>{
                const r = [];
                for (const [n, i] of a.entries())i === "on" && r.push(n);
                return r;
            }
        };
        return e;
    }, p0 = (t)=>{
        const e = qm(t);
        return {
            select: (r)=>{
                let { selected: n, id: i, ...o } = r;
                i = Gt(i);
                const s = n.has(i) ? new Map([
                    [
                        i,
                        n.get(i)
                    ]
                ]) : new Map;
                return e.select({
                    ...o,
                    id: i,
                    selected: s
                });
            },
            in: (r, n, i)=>r?.length ? e.in(r.slice(0, 1), n, i) : new Map,
            out: (r, n, i)=>e.out(r, n, i)
        };
    }, UM = (t)=>{
        const e = qm(t);
        return {
            select: (r)=>{
                let { id: n, selected: i, children: o, ...s } = r;
                return n = Gt(n), o.has(n) ? i : e.select({
                    id: n,
                    selected: i,
                    children: o,
                    ...s
                });
            },
            in: e.in,
            out: e.out
        };
    }, jM = (t)=>{
        const e = p0(t);
        return {
            select: (r)=>{
                let { id: n, selected: i, children: o, ...s } = r;
                return n = Gt(n), o.has(n) ? i : e.select({
                    id: n,
                    selected: i,
                    children: o,
                    ...s
                });
            },
            in: e.in,
            out: e.out
        };
    }, g0 = (t)=>{
        const e = {
            select: (a)=>{
                let { id: r, value: n, selected: i, children: o, parents: s } = a;
                r = Gt(r);
                const l = new Map(i), u = [
                    r
                ];
                for(; u.length;){
                    const d = u.shift();
                    i.set(Gt(d), n ? "on" : "off"), o.has(d) && u.push(...o.get(d));
                }
                let c = Gt(s.get(r));
                for(; c;){
                    const d = o.get(c), h = d.every((f)=>i.get(Gt(f)) === "on"), m = d.every((f)=>!i.has(Gt(f)) || i.get(Gt(f)) === "off");
                    i.set(c, h ? "on" : m ? "off" : "indeterminate"), c = Gt(s.get(c));
                }
                return t && !n && Array.from(i.entries()).reduce((h, m)=>{
                    let [f, p] = m;
                    return p === "on" && h.push(f), h;
                }, []).length === 0 ? l : i;
            },
            in: (a, r, n)=>{
                let i = new Map;
                for (const o of a || [])i = e.select({
                    id: o,
                    value: !0,
                    selected: i,
                    children: r,
                    parents: n
                });
                return i;
            },
            out: (a, r)=>{
                const n = [];
                for (const [i, o] of a.entries())o === "on" && !r.has(i) && n.push(i);
                return n;
            }
        };
        return e;
    }, YM = (t)=>{
        const e = g0(t);
        return {
            select: e.select,
            in: e.in,
            out: (r, n, i)=>{
                const o = [];
                for (const [s, l] of r.entries())if (l === "on") {
                    if (i.has(s)) {
                        const u = i.get(s);
                        if (r.get(u) === "on") continue;
                    }
                    o.push(s);
                }
                return o;
            }
        };
    }, bo = Symbol.for("vuetify:nested"), v0 = {
        id: de(),
        root: {
            register: ()=>null,
            unregister: ()=>null,
            parents: W(new Map),
            children: W(new Map),
            open: ()=>null,
            openOnSelect: ()=>null,
            activate: ()=>null,
            select: ()=>null,
            activatable: W(!1),
            selectable: W(!1),
            opened: W(new Set),
            activated: W(new Set),
            selected: W(new Map),
            selectedValues: W([]),
            getPath: ()=>[]
        }
    }, qM = $({
        activatable: Boolean,
        selectable: Boolean,
        activeStrategy: [
            String,
            Function,
            Object
        ],
        selectStrategy: [
            String,
            Function,
            Object
        ],
        openStrategy: [
            String,
            Object
        ],
        opened: null,
        activated: null,
        selected: null,
        mandatory: Boolean
    }, "nested"), KM = (t)=>{
        let e = !1;
        const a = W(new Map), r = W(new Map), n = Be(t, "opened", t.opened, (f)=>new Set(f), (f)=>[
                ...f.values()
            ]), i = T(()=>{
            if (typeof t.activeStrategy == "object") return t.activeStrategy;
            if (typeof t.activeStrategy == "function") return t.activeStrategy(t.mandatory);
            switch(t.activeStrategy){
                case "leaf":
                    return VM(t.mandatory);
                case "single-leaf":
                    return WM(t.mandatory);
                case "independent":
                    return Ym(t.mandatory);
                case "single-independent":
                default:
                    return m0(t.mandatory);
            }
        }), o = T(()=>{
            if (typeof t.selectStrategy == "object") return t.selectStrategy;
            if (typeof t.selectStrategy == "function") return t.selectStrategy(t.mandatory);
            switch(t.selectStrategy){
                case "single-leaf":
                    return jM(t.mandatory);
                case "leaf":
                    return UM(t.mandatory);
                case "independent":
                    return qm(t.mandatory);
                case "single-independent":
                    return p0(t.mandatory);
                case "trunk":
                    return YM(t.mandatory);
                case "classic":
                default:
                    return g0(t.mandatory);
            }
        }), s = T(()=>{
            if (typeof t.openStrategy == "object") return t.openStrategy;
            switch(t.openStrategy){
                case "list":
                    return $M;
                case "single":
                    return GM;
                case "multiple":
                default:
                    return f0;
            }
        }), l = Be(t, "activated", t.activated, (f)=>i.value.in(f, a.value, r.value), (f)=>i.value.out(f, a.value, r.value)), u = Be(t, "selected", t.selected, (f)=>o.value.in(f, a.value, r.value), (f)=>o.value.out(f, a.value, r.value));
        ga(()=>{
            e = !0;
        });
        function c(f) {
            const p = [];
            let g = f;
            for(; g != null;)p.unshift(g), g = r.value.get(g);
            return p;
        }
        const d = za("nested"), h = new Set, m = {
            id: de(),
            root: {
                opened: n,
                activatable: K(t, "activatable"),
                selectable: K(t, "selectable"),
                activated: l,
                selected: u,
                selectedValues: T(()=>{
                    const f = [];
                    for (const [p, g] of u.value.entries())g === "on" && f.push(p);
                    return f;
                }),
                register: (f, p, g)=>{
                    if (h.has(f)) {
                        c(f).map(String).join(" -> "), c(p).concat(f).map(String).join(" -> ");
                        return;
                    } else h.add(f);
                    p && f !== p && r.value.set(f, p), g && a.value.set(f, []), p != null && a.value.set(p, [
                        ...a.value.get(p) || [],
                        f
                    ]);
                },
                unregister: (f)=>{
                    if (e) return;
                    h.delete(f), a.value.delete(f);
                    const p = r.value.get(f);
                    if (p) {
                        const g = a.value.get(p) ?? [];
                        a.value.set(p, g.filter((v)=>v !== f));
                    }
                    r.value.delete(f);
                },
                open: (f, p, g)=>{
                    d.emit("click:open", {
                        id: f,
                        value: p,
                        path: c(f),
                        event: g
                    });
                    const v = s.value.open({
                        id: f,
                        value: p,
                        opened: new Set(n.value),
                        children: a.value,
                        parents: r.value,
                        event: g
                    });
                    v && (n.value = v);
                },
                openOnSelect: (f, p, g)=>{
                    const v = s.value.select({
                        id: f,
                        value: p,
                        selected: new Map(u.value),
                        opened: new Set(n.value),
                        children: a.value,
                        parents: r.value,
                        event: g
                    });
                    v && (n.value = v);
                },
                select: (f, p, g)=>{
                    d.emit("click:select", {
                        id: f,
                        value: p,
                        path: c(f),
                        event: g
                    });
                    const v = o.value.select({
                        id: f,
                        value: p,
                        selected: new Map(u.value),
                        children: a.value,
                        parents: r.value,
                        event: g
                    });
                    v && (u.value = v), m.root.openOnSelect(f, p, g);
                },
                activate: (f, p, g)=>{
                    if (!t.activatable) return m.root.select(f, !0, g);
                    d.emit("click:activate", {
                        id: f,
                        value: p,
                        path: c(f),
                        event: g
                    });
                    const v = i.value.activate({
                        id: f,
                        value: p,
                        activated: new Set(l.value),
                        children: a.value,
                        parents: r.value,
                        event: g
                    });
                    if (v.size !== l.value.size) l.value = v;
                    else {
                        for (const b of v)if (!l.value.has(b)) {
                            l.value = v;
                            return;
                        }
                        for (const b of l.value)if (!v.has(b)) {
                            l.value = v;
                            return;
                        }
                    }
                },
                children: a,
                parents: r,
                getPath: c
            }
        };
        return Kt(bo, m), m.root;
    }, y0 = (t, e)=>{
        const a = Et(bo, v0), r = Symbol("nested item"), n = T(()=>t.value !== void 0 ? t.value : r), i = {
            ...a,
            id: n,
            open: (o, s)=>a.root.open(n.value, o, s),
            openOnSelect: (o, s)=>a.root.openOnSelect(n.value, o, s),
            isOpen: T(()=>a.root.opened.value.has(n.value)),
            parent: T(()=>a.root.parents.value.get(n.value)),
            activate: (o, s)=>a.root.activate(n.value, o, s),
            isActivated: T(()=>a.root.activated.value.has(Gt(n.value))),
            select: (o, s)=>a.root.select(n.value, o, s),
            isSelected: T(()=>a.root.selected.value.get(Gt(n.value)) === "on"),
            isIndeterminate: T(()=>a.root.selected.value.get(Gt(n.value)) === "indeterminate"),
            isLeaf: T(()=>!a.root.children.value.get(n.value)),
            isGroupActivator: a.isGroupActivator
        };
        return Mr(()=>{
            !a.isGroupActivator && a.root.register(n.value, a.id.value, e);
        }), ga(()=>{
            !a.isGroupActivator && a.root.unregister(n.value);
        }), e && Kt(bo, i), i;
    }, XM = ()=>{
        const t = Et(bo, v0);
        Kt(bo, {
            ...t,
            isGroupActivator: !0
        });
    };
    function Zn() {
        const t = de(!1);
        return ea(()=>{
            window.requestAnimationFrame(()=>{
                t.value = !0;
            });
        }), {
            ssrBootStyles: T(()=>t.value ? void 0 : {
                    transition: "none !important"
                }),
            isBooted: Eo(t)
        };
    }
    let JM, ZM, wh, QM, e3, t3, a3, r3, k0, x0;
    JM = rn({
        name: "VListGroupActivator",
        setup (t, e) {
            let { slots: a } = e;
            return XM(), ()=>a.default?.();
        }
    });
    ZM = $({
        activeColor: String,
        baseColor: String,
        color: String,
        collapseIcon: {
            type: Me,
            default: "$collapse"
        },
        expandIcon: {
            type: Me,
            default: "$expand"
        },
        prependIcon: Me,
        appendIcon: Me,
        fluid: Boolean,
        subgroup: Boolean,
        title: String,
        value: null,
        ...we(),
        ...We()
    }, "VListGroup");
    wh = te()({
        name: "VListGroup",
        props: ZM(),
        setup (t, e) {
            let { slots: a } = e;
            const { isOpen: r, open: n, id: i } = y0(K(t, "value"), !0), o = T(()=>`v-list-group--id-${String(i.value)}`), s = h0(), { isBooted: l } = Zn();
            function u(m) {
                m.stopPropagation(), ![
                    "INPUT",
                    "TEXTAREA"
                ].includes(m.target?.tagName) && n(!r.value, m);
            }
            const c = T(()=>({
                    onClick: u,
                    class: "v-list-group__header",
                    id: o.value
                })), d = T(()=>r.value ? t.collapseIcon : t.expandIcon), h = T(()=>({
                    VListItem: {
                        active: r.value,
                        activeColor: t.activeColor,
                        baseColor: t.baseColor,
                        color: t.color,
                        prependIcon: t.prependIcon || t.subgroup && d.value,
                        appendIcon: t.appendIcon || !t.subgroup && d.value,
                        title: t.title,
                        value: t.value
                    }
                }));
            return ie(()=>y(t.tag, {
                    class: [
                        "v-list-group",
                        {
                            "v-list-group--prepend": s?.hasPrepend.value,
                            "v-list-group--fluid": t.fluid,
                            "v-list-group--subgroup": t.subgroup,
                            "v-list-group--open": r.value
                        },
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            a.activator && y(Ge, {
                                defaults: h.value
                            }, {
                                default: ()=>[
                                        y(JM, null, {
                                            default: ()=>[
                                                    a.activator({
                                                        props: c.value,
                                                        isOpen: r.value
                                                    })
                                                ]
                                        })
                                    ]
                            }),
                            y(ba, {
                                transition: {
                                    component: _l
                                },
                                disabled: !l.value
                            }, {
                                default: ()=>[
                                        mt(y("div", {
                                            class: "v-list-group__items",
                                            role: "group",
                                            "aria-labelledby": o.value
                                        }, [
                                            a.default?.()
                                        ]), [
                                            [
                                                Ca,
                                                r.value
                                            ]
                                        ])
                                    ]
                            })
                        ]
                })), {
                isOpen: r
            };
        }
    });
    QM = $({
        opacity: [
            Number,
            String
        ],
        ...we(),
        ...We()
    }, "VListItemSubtitle");
    b0 = te()({
        name: "VListItemSubtitle",
        props: QM(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y(t.tag, {
                    class: [
                        "v-list-item-subtitle",
                        t.class
                    ],
                    style: [
                        {
                            "--v-list-item-subtitle-opacity": t.opacity
                        },
                        t.style
                    ]
                }, a)), {};
        }
    });
    Yr = br("v-list-item-title");
    e3 = $({
        active: {
            type: Boolean,
            default: void 0
        },
        activeClass: String,
        activeColor: String,
        appendAvatar: String,
        appendIcon: Me,
        baseColor: String,
        disabled: Boolean,
        lines: [
            Boolean,
            String
        ],
        link: {
            type: Boolean,
            default: void 0
        },
        nav: Boolean,
        prependAvatar: String,
        prependIcon: Me,
        ripple: {
            type: [
                Boolean,
                Object
            ],
            default: !0
        },
        slim: Boolean,
        subtitle: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        title: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        value: null,
        onClick: ra(),
        onClickOnce: ra(),
        ...Na(),
        ...we(),
        ...ta(),
        ...Ut(),
        ...Jt(),
        ...Ct(),
        ...Go(),
        ...We(),
        ...Qe(),
        ...or({
            variant: "text"
        })
    }, "VListItem");
    tt = te()({
        name: "VListItem",
        directives: {
            Ripple: Lr
        },
        props: e3(),
        emits: {
            click: (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r, emit: n } = e;
            const i = Wo(t, a), o = T(()=>t.value === void 0 ? i.href.value : t.value), { activate: s, isActivated: l, select: u, isOpen: c, isSelected: d, isIndeterminate: h, isGroupActivator: m, root: f, parent: p, openOnSelect: g, id: v } = y0(o, !1), b = h0(), k = T(()=>t.active !== !1 && (t.active || i.isActive?.value || (f.activatable.value ? l.value : d.value))), S = T(()=>t.link !== !1 && i.isLink.value), x = T(()=>!!b && (f.selectable.value || f.activatable.value || t.value != null)), C = T(()=>!t.disabled && t.link !== !1 && (t.link || i.isClickable.value || x.value)), w = T(()=>t.rounded || t.nav), F = T(()=>t.color ?? t.activeColor), D = T(()=>({
                    color: k.value ? F.value ?? t.baseColor : t.baseColor,
                    variant: t.variant
                }));
            me(()=>i.isActive?.value, (X)=>{
                X && _();
            }), Mr(()=>{
                i.isActive?.value && _();
            });
            function _() {
                p.value != null && f.open(p.value, !0), g(!0);
            }
            const { themeClasses: A } = ut(t), { borderClasses: E } = Xa(t), { colorClasses: B, colorStyles: P, variantClasses: M } = qn(D), { densityClasses: R } = xa(t), { dimensionStyles: z } = jt(t), { elevationClasses: N } = na(t), { roundedClasses: H } = Mt(w), I = T(()=>t.lines ? `v-list-item--${t.lines}-line` : void 0), L = T(()=>({
                    isActive: k.value,
                    select: u,
                    isOpen: c.value,
                    isSelected: d.value,
                    isIndeterminate: h.value
                }));
            function G(X) {
                n("click", X), ![
                    "INPUT",
                    "TEXTAREA"
                ].includes(X.target?.tagName) && C.value && (i.navigate?.(X), !m && (f.activatable.value ? s(!l.value, X) : (f.selectable.value || t.value != null) && u(!d.value, X)));
            }
            function q(X) {
                const ue = X.target;
                [
                    "INPUT",
                    "TEXTAREA"
                ].includes(ue.tagName) || (X.key === "Enter" || X.key === " ") && (X.preventDefault(), X.target.dispatchEvent(new MouseEvent("click", X)));
            }
            return ie(()=>{
                const X = S.value ? "a" : t.tag, ue = r.title || t.title != null, J = r.subtitle || t.subtitle != null, U = !!(t.appendAvatar || t.appendIcon), le = !!(U || r.append), fe = !!(t.prependAvatar || t.prependIcon), ee = !!(fe || r.prepend);
                return b?.updateHasPrepend(ee), t.activeColor && Kx("active-color", [
                    "color",
                    "base-color"
                ]), mt(y(X, Z({
                    class: [
                        "v-list-item",
                        {
                            "v-list-item--active": k.value,
                            "v-list-item--disabled": t.disabled,
                            "v-list-item--link": C.value,
                            "v-list-item--nav": t.nav,
                            "v-list-item--prepend": !ee && b?.hasPrepend.value,
                            "v-list-item--slim": t.slim,
                            [`${t.activeClass}`]: t.activeClass && k.value
                        },
                        A.value,
                        E.value,
                        B.value,
                        R.value,
                        N.value,
                        I.value,
                        H.value,
                        M.value,
                        t.class
                    ],
                    style: [
                        P.value,
                        z.value,
                        t.style
                    ],
                    tabindex: C.value ? b ? -2 : 0 : void 0,
                    "aria-selected": x.value ? f.activatable.value ? l.value : f.selectable.value ? d.value : k.value : void 0,
                    onClick: G,
                    onKeydown: C.value && !S.value && q
                }, i.linkProps), {
                    default: ()=>[
                            sn(C.value || k.value, "v-list-item"),
                            ee && y("div", {
                                key: "prepend",
                                class: "v-list-item__prepend"
                            }, [
                                r.prepend ? y(Ge, {
                                    key: "prepend-defaults",
                                    disabled: !fe,
                                    defaults: {
                                        VAvatar: {
                                            density: t.density,
                                            image: t.prependAvatar
                                        },
                                        VIcon: {
                                            density: t.density,
                                            icon: t.prependIcon
                                        },
                                        VListItemAction: {
                                            start: !0
                                        }
                                    }
                                }, {
                                    default: ()=>[
                                            r.prepend?.(L.value)
                                        ]
                                }) : y(Ce, null, [
                                    t.prependAvatar && y(ir, {
                                        key: "prepend-avatar",
                                        density: t.density,
                                        image: t.prependAvatar
                                    }, null),
                                    t.prependIcon && y(_e, {
                                        key: "prepend-icon",
                                        density: t.density,
                                        icon: t.prependIcon
                                    }, null)
                                ]),
                                y("div", {
                                    class: "v-list-item__spacer"
                                }, null)
                            ]),
                            y("div", {
                                class: "v-list-item__content",
                                "data-no-activator": ""
                            }, [
                                ue && y(Yr, {
                                    key: "title"
                                }, {
                                    default: ()=>[
                                            r.title?.({
                                                title: t.title
                                            }) ?? Se(t.title)
                                        ]
                                }),
                                J && y(b0, {
                                    key: "subtitle"
                                }, {
                                    default: ()=>[
                                            r.subtitle?.({
                                                subtitle: t.subtitle
                                            }) ?? Se(t.subtitle)
                                        ]
                                }),
                                r.default?.(L.value)
                            ]),
                            le && y("div", {
                                key: "append",
                                class: "v-list-item__append"
                            }, [
                                r.append ? y(Ge, {
                                    key: "append-defaults",
                                    disabled: !U,
                                    defaults: {
                                        VAvatar: {
                                            density: t.density,
                                            image: t.appendAvatar
                                        },
                                        VIcon: {
                                            density: t.density,
                                            icon: t.appendIcon
                                        },
                                        VListItemAction: {
                                            end: !0
                                        }
                                    }
                                }, {
                                    default: ()=>[
                                            r.append?.(L.value)
                                        ]
                                }) : y(Ce, null, [
                                    t.appendIcon && y(_e, {
                                        key: "append-icon",
                                        density: t.density,
                                        icon: t.appendIcon
                                    }, null),
                                    t.appendAvatar && y(ir, {
                                        key: "append-avatar",
                                        density: t.density,
                                        image: t.appendAvatar
                                    }, null)
                                ]),
                                y("div", {
                                    class: "v-list-item__spacer"
                                }, null)
                            ])
                        ]
                }), [
                    [
                        qa("ripple"),
                        C.value && t.ripple
                    ]
                ]);
            }), {
                activate: s,
                isActivated: l,
                isGroupActivator: m,
                isSelected: d,
                list: b,
                select: u,
                root: f,
                id: v,
                link: i
            };
        }
    });
    t3 = $({
        color: String,
        inset: Boolean,
        sticky: Boolean,
        title: String,
        ...we(),
        ...We()
    }, "VListSubheader");
    F0 = te()({
        name: "VListSubheader",
        props: t3(),
        setup (t, e) {
            let { slots: a } = e;
            const { textColorClasses: r, textColorStyles: n } = ha(K(t, "color"));
            return ie(()=>{
                const i = !!(a.default || t.title);
                return y(t.tag, {
                    class: [
                        "v-list-subheader",
                        {
                            "v-list-subheader--inset": t.inset,
                            "v-list-subheader--sticky": t.sticky
                        },
                        r.value,
                        t.class
                    ],
                    style: [
                        {
                            textColorStyles: n
                        },
                        t.style
                    ]
                }, {
                    default: ()=>[
                            i && y("div", {
                                class: "v-list-subheader__text"
                            }, [
                                a.default?.() ?? t.title
                            ])
                        ]
                });
            }), {};
        }
    });
    a3 = $({
        color: String,
        inset: Boolean,
        length: [
            Number,
            String
        ],
        opacity: [
            Number,
            String
        ],
        thickness: [
            Number,
            String
        ],
        vertical: Boolean,
        ...we(),
        ...Qe()
    }, "VDivider");
    _a = te()({
        name: "VDivider",
        props: a3(),
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const { themeClasses: n } = ut(t), { textColorClasses: i, textColorStyles: o } = ha(K(t, "color")), s = T(()=>{
                const l = {};
                return t.length && (l[t.vertical ? "height" : "width"] = xe(t.length)), t.thickness && (l[t.vertical ? "borderRightWidth" : "borderTopWidth"] = xe(t.thickness)), l;
            });
            return ie(()=>{
                const l = y("hr", {
                    class: [
                        {
                            "v-divider": !0,
                            "v-divider--inset": t.inset,
                            "v-divider--vertical": t.vertical
                        },
                        n.value,
                        i.value,
                        t.class
                    ],
                    style: [
                        s.value,
                        o.value,
                        {
                            "--v-border-opacity": t.opacity
                        },
                        t.style
                    ],
                    "aria-orientation": !a.role || a.role === "separator" ? t.vertical ? "vertical" : "horizontal" : void 0,
                    role: `${a.role || "separator"}`
                }, null);
                return r.default ? y("div", {
                    class: [
                        "v-divider__wrapper",
                        {
                            "v-divider__wrapper--vertical": t.vertical,
                            "v-divider__wrapper--inset": t.inset
                        }
                    ]
                }, [
                    l,
                    y("div", {
                        class: "v-divider__content"
                    }, [
                        r.default()
                    ]),
                    l
                ]) : l;
            }), {};
        }
    });
    r3 = $({
        items: Array,
        returnObject: Boolean
    }, "VListChildren");
    k0 = te()({
        name: "VListChildren",
        props: r3(),
        setup (t, e) {
            let { slots: a } = e;
            return d0(), ()=>a.default?.() ?? t.items?.map((r)=>{
                    let { children: n, props: i, type: o, raw: s } = r;
                    if (o === "divider") return a.divider?.({
                        props: i
                    }) ?? y(_a, i, null);
                    if (o === "subheader") return a.subheader?.({
                        props: i
                    }) ?? y(F0, i, null);
                    const l = {
                        subtitle: a.subtitle ? (c)=>a.subtitle?.({
                                ...c,
                                item: s
                            }) : void 0,
                        prepend: a.prepend ? (c)=>a.prepend?.({
                                ...c,
                                item: s
                            }) : void 0,
                        append: a.append ? (c)=>a.append?.({
                                ...c,
                                item: s
                            }) : void 0,
                        title: a.title ? (c)=>a.title?.({
                                ...c,
                                item: s
                            }) : void 0
                    }, u = wh.filterProps(i);
                    return n ? y(wh, Z({
                        value: i?.value
                    }, u), {
                        activator: (c)=>{
                            let { props: d } = c;
                            const h = {
                                ...i,
                                ...d,
                                value: t.returnObject ? s : i.value
                            };
                            return a.header ? a.header({
                                props: h
                            }) : y(tt, h, l);
                        },
                        default: ()=>y(k0, {
                                items: n,
                                returnObject: t.returnObject
                            }, a)
                    }) : a.item ? a.item({
                        props: i
                    }) : y(tt, Z(i, {
                        value: t.returnObject ? s : i.value
                    }), l);
                });
        }
    });
    x0 = $({
        items: {
            type: Array,
            default: ()=>[]
        },
        itemTitle: {
            type: [
                String,
                Array,
                Function
            ],
            default: "title"
        },
        itemValue: {
            type: [
                String,
                Array,
                Function
            ],
            default: "value"
        },
        itemChildren: {
            type: [
                Boolean,
                String,
                Array,
                Function
            ],
            default: "children"
        },
        itemProps: {
            type: [
                Boolean,
                String,
                Array,
                Function
            ],
            default: "props"
        },
        returnObject: Boolean,
        valueComparator: Function
    }, "list-items");
    function Wr(t, e) {
        const a = $t(e, t.itemTitle, e), r = $t(e, t.itemValue, a), n = $t(e, t.itemChildren), i = t.itemProps === !0 ? typeof e == "object" && e != null && !Array.isArray(e) ? "children" in e ? It(e, [
            "children"
        ]) : e : void 0 : $t(e, t.itemProps), o = {
            title: a,
            value: r,
            ...i
        };
        return {
            title: String(o.title ?? ""),
            value: o.value,
            props: o,
            children: Array.isArray(n) ? w0(t, n) : void 0,
            raw: e
        };
    }
    function w0(t, e) {
        const a = Hn(t, [
            "itemTitle",
            "itemValue",
            "itemChildren",
            "itemProps",
            "returnObject",
            "valueComparator"
        ]), r = [];
        for (const n of e)r.push(Wr(a, n));
        return r;
    }
    function Km(t) {
        const e = T(()=>w0(t, t.items)), a = T(()=>e.value.some((s)=>s.value === null)), r = de(new Map), n = de([]);
        Lt(()=>{
            const s = e.value, l = new Map, u = [];
            for(let c = 0; c < s.length; c++){
                const d = s[c];
                if (Vy(d.value) || d.value === null) {
                    let h = l.get(d.value);
                    h || (h = [], l.set(d.value, h)), h.push(d);
                } else u.push(d);
            }
            r.value = l, n.value = u;
        });
        function i(s) {
            const l = r.value, u = e.value, c = n.value, d = a.value, h = t.returnObject, m = !!t.valueComparator, f = t.valueComparator || Aa, p = Hn(t, [
                "itemTitle",
                "itemValue",
                "itemChildren",
                "itemProps",
                "returnObject",
                "valueComparator"
            ]), g = [];
            e: for (const v of s){
                if (!d && v === null) continue;
                if (h && typeof v == "string") {
                    g.push(Wr(p, v));
                    continue;
                }
                const b = l.get(v);
                if (m || !b) {
                    for (const k of m ? u : c)if (f(v, k.value)) {
                        g.push(k);
                        continue e;
                    }
                    g.push(Wr(p, v));
                    continue;
                }
                g.push(...b);
            }
            return g;
        }
        function o(s) {
            return t.returnObject ? s.map((l)=>{
                let { raw: u } = l;
                return u;
            }) : s.map((l)=>{
                let { value: u } = l;
                return u;
            });
        }
        return {
            items: e,
            transformIn: i,
            transformOut: o
        };
    }
    function n3(t, e) {
        const a = $t(e, t.itemType, "item"), r = Vy(e) ? e : $t(e, t.itemTitle), n = $t(e, t.itemValue, void 0), i = $t(e, t.itemChildren), o = t.itemProps === !0 ? It(e, [
            "children"
        ]) : $t(e, t.itemProps), s = {
            title: r,
            value: n,
            ...o
        };
        return {
            type: a,
            title: s.title,
            value: s.value,
            props: s,
            children: a === "item" && i ? S0(t, i) : void 0,
            raw: e
        };
    }
    function S0(t, e) {
        const a = [];
        for (const r of e)a.push(n3(t, r));
        return a;
    }
    function i3(t) {
        return {
            items: T(()=>S0(t, t.items))
        };
    }
    let o3, s3, l3, u3, c3, d3;
    o3 = $({
        baseColor: String,
        activeColor: String,
        activeClass: String,
        bgColor: String,
        disabled: Boolean,
        expandIcon: Me,
        collapseIcon: Me,
        lines: {
            type: [
                Boolean,
                String
            ],
            default: "one"
        },
        slim: Boolean,
        nav: Boolean,
        "onClick:open": ra(),
        "onClick:select": ra(),
        "onUpdate:opened": ra(),
        ...qM({
            selectStrategy: "single-leaf",
            openStrategy: "list"
        }),
        ...Na(),
        ...we(),
        ...ta(),
        ...Ut(),
        ...Jt(),
        itemType: {
            type: String,
            default: "type"
        },
        ...x0(),
        ...Ct(),
        ...We(),
        ...Qe(),
        ...or({
            variant: "text"
        })
    }, "VList");
    Qn = te()({
        name: "VList",
        props: o3(),
        emits: {
            "update:selected": (t)=>!0,
            "update:activated": (t)=>!0,
            "update:opened": (t)=>!0,
            "click:open": (t)=>!0,
            "click:activate": (t)=>!0,
            "click:select": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { items: r } = i3(t), { themeClasses: n } = ut(t), { backgroundColorClasses: i, backgroundColorStyles: o } = ft(K(t, "bgColor")), { borderClasses: s } = Xa(t), { densityClasses: l } = xa(t), { dimensionStyles: u } = jt(t), { elevationClasses: c } = na(t), { roundedClasses: d } = Mt(t), { children: h, open: m, parents: f, select: p, getPath: g } = KM(t), v = T(()=>t.lines ? `v-list--${t.lines}-line` : void 0), b = K(t, "activeColor"), k = K(t, "baseColor"), S = K(t, "color");
            d0(), Bt({
                VListGroup: {
                    activeColor: b,
                    baseColor: k,
                    color: S,
                    expandIcon: K(t, "expandIcon"),
                    collapseIcon: K(t, "collapseIcon")
                },
                VListItem: {
                    activeClass: K(t, "activeClass"),
                    activeColor: b,
                    baseColor: k,
                    color: S,
                    density: K(t, "density"),
                    disabled: K(t, "disabled"),
                    lines: K(t, "lines"),
                    nav: K(t, "nav"),
                    slim: K(t, "slim"),
                    variant: K(t, "variant")
                }
            });
            const x = de(!1), C = W();
            function w(B) {
                x.value = !0;
            }
            function F(B) {
                x.value = !1;
            }
            function D(B) {
                !x.value && !(B.relatedTarget && C.value?.contains(B.relatedTarget)) && E();
            }
            function _(B) {
                const P = B.target;
                if (!(!C.value || [
                    "INPUT",
                    "TEXTAREA"
                ].includes(P.tagName))) {
                    if (B.key === "ArrowDown") E("next");
                    else if (B.key === "ArrowUp") E("prev");
                    else if (B.key === "Home") E("first");
                    else if (B.key === "End") E("last");
                    else return;
                    B.preventDefault();
                }
            }
            function A(B) {
                x.value = !0;
            }
            function E(B) {
                if (C.value) return bi(C.value, B);
            }
            return ie(()=>y(t.tag, {
                    ref: C,
                    class: [
                        "v-list",
                        {
                            "v-list--disabled": t.disabled,
                            "v-list--nav": t.nav,
                            "v-list--slim": t.slim
                        },
                        n.value,
                        i.value,
                        s.value,
                        l.value,
                        c.value,
                        v.value,
                        d.value,
                        t.class
                    ],
                    style: [
                        o.value,
                        u.value,
                        t.style
                    ],
                    tabindex: t.disabled ? -1 : 0,
                    role: "listbox",
                    "aria-activedescendant": void 0,
                    onFocusin: w,
                    onFocusout: F,
                    onFocus: D,
                    onKeydown: _,
                    onMousedown: A
                }, {
                    default: ()=>[
                            y(k0, {
                                items: r.value,
                                returnObject: t.returnObject
                            }, a)
                        ]
                })), {
                open: m,
                select: p,
                focus: E,
                children: h,
                parents: f,
                getPath: g
            };
        }
    });
    s3 = br("v-list-img");
    l3 = $({
        start: Boolean,
        end: Boolean,
        ...we(),
        ...We()
    }, "VListItemAction");
    u3 = te()({
        name: "VListItemAction",
        props: l3(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y(t.tag, {
                    class: [
                        "v-list-item-action",
                        {
                            "v-list-item-action--start": t.start,
                            "v-list-item-action--end": t.end
                        },
                        t.class
                    ],
                    style: t.style
                }, a)), {};
        }
    });
    c3 = $({
        start: Boolean,
        end: Boolean,
        ...we(),
        ...We()
    }, "VListItemMedia");
    d3 = te()({
        name: "VListItemMedia",
        props: c3(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y(t.tag, {
                    class: [
                        "v-list-item-media",
                        {
                            "v-list-item-media--start": t.start,
                            "v-list-item-media--end": t.end
                        },
                        t.class
                    ],
                    style: t.style
                }, a)), {};
        }
    });
    function Fd(t, e) {
        return {
            x: t.x + e.x,
            y: t.y + e.y
        };
    }
    function h3(t, e) {
        return {
            x: t.x - e.x,
            y: t.y - e.y
        };
    }
    function $v(t, e) {
        if (t.side === "top" || t.side === "bottom") {
            const { side: a, align: r } = t, n = r === "left" ? 0 : r === "center" ? e.width / 2 : r === "right" ? e.width : r, i = a === "top" ? 0 : a === "bottom" ? e.height : a;
            return Fd({
                x: n,
                y: i
            }, e);
        } else if (t.side === "left" || t.side === "right") {
            const { side: a, align: r } = t, n = a === "left" ? 0 : a === "right" ? e.width : a, i = r === "top" ? 0 : r === "center" ? e.height / 2 : r === "bottom" ? e.height : r;
            return Fd({
                x: n,
                y: i
            }, e);
        }
        return Fd({
            x: e.width / 2,
            y: e.height / 2
        }, e);
    }
    const C0 = {
        static: p3,
        connected: v3
    }, m3 = $({
        locationStrategy: {
            type: [
                String,
                Function
            ],
            default: "static",
            validator: (t)=>typeof t == "function" || t in C0
        },
        location: {
            type: String,
            default: "bottom"
        },
        origin: {
            type: String,
            default: "auto"
        },
        offset: [
            Number,
            String,
            Array
        ]
    }, "VOverlay-location-strategies");
    function f3(t, e) {
        const a = W({}), r = W();
        Yt && Ma(()=>!!(e.isActive.value && t.locationStrategy), (i)=>{
            me(()=>t.locationStrategy, i), pa(()=>{
                window.removeEventListener("resize", n), r.value = void 0;
            }), window.addEventListener("resize", n, {
                passive: !0
            }), typeof t.locationStrategy == "function" ? r.value = t.locationStrategy(e, t, a)?.updateLocation : r.value = C0[t.locationStrategy](e, t, a)?.updateLocation;
        });
        function n(i) {
            r.value?.(i);
        }
        return {
            contentStyles: a,
            updateLocation: r
        };
    }
    function p3() {}
    function g3(t, e) {
        const a = gm(t);
        return e ? a.x += parseFloat(t.style.right || 0) : a.x -= parseFloat(t.style.left || 0), a.y -= parseFloat(t.style.top || 0), a;
    }
    function v3(t, e, a) {
        (Array.isArray(t.target.value) || Xx(t.target.value)) && Object.assign(a.value, {
            position: "fixed",
            top: 0,
            [t.isRtl.value ? "right" : "left"]: 0
        });
        const { preferredAnchor: n, preferredOrigin: i } = mm(()=>{
            const f = Yd(e.location, t.isRtl.value), p = e.origin === "overlap" ? f : e.origin === "auto" ? lu(f) : Yd(e.origin, t.isRtl.value);
            return f.side === p.side && f.align === uu(p).align ? {
                preferredAnchor: Xf(f),
                preferredOrigin: Xf(p)
            } : {
                preferredAnchor: f,
                preferredOrigin: p
            };
        }), [o, s, l, u] = [
            "minWidth",
            "minHeight",
            "maxWidth",
            "maxHeight"
        ].map((f)=>T(()=>{
                const p = parseFloat(e[f]);
                return isNaN(p) ? 1 / 0 : p;
            })), c = T(()=>{
            if (Array.isArray(e.offset)) return e.offset;
            if (typeof e.offset == "string") {
                const f = e.offset.split(" ").map(parseFloat);
                return f.length < 2 && f.push(0), f;
            }
            return typeof e.offset == "number" ? [
                e.offset,
                0
            ] : [
                0,
                0
            ];
        });
        let d = !1;
        const h = new ResizeObserver(()=>{
            d && m();
        });
        me([
            t.target,
            t.contentEl
        ], (f, p)=>{
            let [g, v] = f, [b, k] = p;
            b && !Array.isArray(b) && h.unobserve(b), g && !Array.isArray(g) && h.observe(g), k && h.unobserve(k), v && h.observe(v);
        }, {
            immediate: !0
        }), pa(()=>{
            h.disconnect();
        });
        function m() {
            if (d = !1, requestAnimationFrame(()=>d = !0), !t.target.value || !t.contentEl.value) return;
            const f = Hy(t.target.value), p = g3(t.contentEl.value, t.isRtl.value), g = Rs(t.contentEl.value), v = 12;
            g.length || (g.push(document.documentElement), t.contentEl.value.style.top && t.contentEl.value.style.left || (p.x -= parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-x") || 0), p.y -= parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-y") || 0)));
            const b = g.reduce((A, E)=>{
                const B = E.getBoundingClientRect(), P = new cu({
                    x: E === document.documentElement ? 0 : B.x,
                    y: E === document.documentElement ? 0 : B.y,
                    width: E.clientWidth,
                    height: E.clientHeight
                });
                return A ? new cu({
                    x: Math.max(A.left, P.left),
                    y: Math.max(A.top, P.top),
                    width: Math.min(A.right, P.right) - Math.max(A.left, P.left),
                    height: Math.min(A.bottom, P.bottom) - Math.max(A.top, P.top)
                }) : P;
            }, void 0);
            b.x += v, b.y += v, b.width -= v * 2, b.height -= v * 2;
            let k = {
                anchor: n.value,
                origin: i.value
            };
            function S(A) {
                const E = new cu(p), B = $v(A.anchor, f), P = $v(A.origin, E);
                let { x: M, y: R } = h3(B, P);
                switch(A.anchor.side){
                    case "top":
                        R -= c.value[0];
                        break;
                    case "bottom":
                        R += c.value[0];
                        break;
                    case "left":
                        M -= c.value[0];
                        break;
                    case "right":
                        M += c.value[0];
                        break;
                }
                switch(A.anchor.align){
                    case "top":
                        R -= c.value[1];
                        break;
                    case "bottom":
                        R += c.value[1];
                        break;
                    case "left":
                        M -= c.value[1];
                        break;
                    case "right":
                        M += c.value[1];
                        break;
                }
                return E.x += M, E.y += R, E.width = Math.min(E.width, l.value), E.height = Math.min(E.height, u.value), {
                    overflows: Zf(E, b),
                    x: M,
                    y: R
                };
            }
            let x = 0, C = 0;
            const w = {
                x: 0,
                y: 0
            }, F = {
                x: !1,
                y: !1
            };
            let D = -1;
            for(; !(D++ > 10);){
                const { x: A, y: E, overflows: B } = S(k);
                x += A, C += E, p.x += A, p.y += E;
                {
                    const P = Jf(k.anchor), M = B.x.before || B.x.after, R = B.y.before || B.y.after;
                    let z = !1;
                    if ([
                        "x",
                        "y"
                    ].forEach((N)=>{
                        if (N === "x" && M && !F.x || N === "y" && R && !F.y) {
                            const H = {
                                anchor: {
                                    ...k.anchor
                                },
                                origin: {
                                    ...k.origin
                                }
                            }, I = N === "x" ? P === "y" ? uu : lu : P === "y" ? lu : uu;
                            H.anchor = I(H.anchor), H.origin = I(H.origin);
                            const { overflows: L } = S(H);
                            (L[N].before <= B[N].before && L[N].after <= B[N].after || L[N].before + L[N].after < (B[N].before + B[N].after) / 2) && (k = H, z = F[N] = !0);
                        }
                    }), z) continue;
                }
                B.x.before && (x += B.x.before, p.x += B.x.before), B.x.after && (x -= B.x.after, p.x -= B.x.after), B.y.before && (C += B.y.before, p.y += B.y.before), B.y.after && (C -= B.y.after, p.y -= B.y.after);
                {
                    const P = Zf(p, b);
                    w.x = b.width - P.x.before - P.x.after, w.y = b.height - P.y.before - P.y.after, x += P.x.before, p.x += P.x.before, C += P.y.before, p.y += P.y.before;
                }
                break;
            }
            const _ = Jf(k.anchor);
            return Object.assign(a.value, {
                "--v-overlay-anchor-origin": `${k.anchor.side} ${k.anchor.align}`,
                transformOrigin: `${k.origin.side} ${k.origin.align}`,
                top: xe(kd(C)),
                left: t.isRtl.value ? void 0 : xe(kd(x)),
                right: t.isRtl.value ? xe(kd(-x)) : void 0,
                minWidth: xe(_ === "y" ? Math.min(o.value, f.width) : o.value),
                maxWidth: xe(Uv(Rt(w.x, o.value === 1 / 0 ? 0 : o.value, l.value))),
                maxHeight: xe(Uv(Rt(w.y, s.value === 1 / 0 ? 0 : s.value, u.value)))
            }), {
                available: w,
                contentBox: p
            };
        }
        return me(()=>[
                n.value,
                i.value,
                e.offset,
                e.minWidth,
                e.minHeight,
                e.maxWidth,
                e.maxHeight
            ], ()=>m()), at(()=>{
            const f = m();
            if (!f) return;
            const { available: p, contentBox: g } = f;
            g.height > p.y && requestAnimationFrame(()=>{
                m(), requestAnimationFrame(()=>{
                    m();
                });
            });
        }), {
            updateLocation: m
        };
    }
    function kd(t) {
        return Math.round(t * devicePixelRatio) / devicePixelRatio;
    }
    function Uv(t) {
        return Math.ceil(t * devicePixelRatio) / devicePixelRatio;
    }
    let Sh = !0;
    const js = [];
    function y3(t) {
        !Sh || js.length ? (js.push(t), Ch()) : (Sh = !1, t(), Ch());
    }
    let jv = -1;
    function Ch() {
        cancelAnimationFrame(jv), jv = requestAnimationFrame(()=>{
            const t = js.shift();
            t && t(), js.length ? Ch() : Sh = !0;
        });
    }
    const A0 = {
        none: null,
        close: k3,
        block: x3,
        reposition: w3
    }, b3 = $({
        scrollStrategy: {
            type: [
                String,
                Function
            ],
            default: "block",
            validator: (t)=>typeof t == "function" || t in A0
        }
    }, "VOverlay-scroll-strategies");
    function F3(t, e) {
        if (!Yt) return;
        let a;
        Lt(async ()=>{
            a?.stop(), e.isActive.value && t.scrollStrategy && (a = um(), await new Promise((r)=>setTimeout(r)), a.active && a.run(()=>{
                typeof t.scrollStrategy == "function" ? t.scrollStrategy(e, t, a) : A0[t.scrollStrategy]?.(e, t, a);
            }));
        }), pa(()=>{
            a?.stop();
        });
    }
    function k3(t) {
        function e(a) {
            t.isActive.value = !1;
        }
        D0(t.targetEl.value ?? t.contentEl.value, e);
    }
    function x3(t, e) {
        const a = t.root.value?.offsetParent, r = [
            ...new Set([
                ...Rs(t.targetEl.value, e.contained ? a : void 0),
                ...Rs(t.contentEl.value, e.contained ? a : void 0)
            ])
        ].filter((o)=>!o.classList.contains("v-overlay-scroll-blocked")), n = window.innerWidth - document.documentElement.offsetWidth, i = ((o)=>Jx(o) && o)(a || document.documentElement);
        i && t.root.value.classList.add("v-overlay--scroll-blocked"), r.forEach((o, s)=>{
            o.style.setProperty("--v-body-scroll-x", xe(-o.scrollLeft)), o.style.setProperty("--v-body-scroll-y", xe(-o.scrollTop)), o !== document.documentElement && o.style.setProperty("--v-scrollbar-offset", xe(n)), o.classList.add("v-overlay-scroll-blocked");
        }), pa(()=>{
            r.forEach((o, s)=>{
                const l = parseFloat(o.style.getPropertyValue("--v-body-scroll-x")), u = parseFloat(o.style.getPropertyValue("--v-body-scroll-y")), c = o.style.scrollBehavior;
                o.style.scrollBehavior = "auto", o.style.removeProperty("--v-body-scroll-x"), o.style.removeProperty("--v-body-scroll-y"), o.style.removeProperty("--v-scrollbar-offset"), o.classList.remove("v-overlay-scroll-blocked"), o.scrollLeft = -l, o.scrollTop = -u, o.style.scrollBehavior = c;
            }), i && t.root.value.classList.remove("v-overlay--scroll-blocked");
        });
    }
    function w3(t, e, a) {
        let r = !1, n = -1, i = -1;
        function o(s) {
            y3(()=>{
                const l = performance.now();
                t.updateLocation.value?.(s), r = (performance.now() - l) / (1e3 / 60) > 2;
            });
        }
        i = (typeof requestIdleCallback > "u" ? (s)=>s() : requestIdleCallback)(()=>{
            a.run(()=>{
                D0(t.targetEl.value ?? t.contentEl.value, (s)=>{
                    r ? (cancelAnimationFrame(n), n = requestAnimationFrame(()=>{
                        n = requestAnimationFrame(()=>{
                            o(s);
                        });
                    })) : o(s);
                });
            });
        }), pa(()=>{
            typeof cancelIdleCallback < "u" && cancelIdleCallback(i), cancelAnimationFrame(n);
        });
    }
    function D0(t, e) {
        const a = [
            document,
            ...Rs(t)
        ];
        a.forEach((r)=>{
            r.addEventListener("scroll", e, {
                passive: !0
            });
        }), pa(()=>{
            a.forEach((r)=>{
                r.removeEventListener("scroll", e);
            });
        });
    }
    const Ah = Symbol.for("vuetify:v-menu"), Xm = $({
        closeDelay: [
            Number,
            String
        ],
        openDelay: [
            Number,
            String
        ]
    }, "delay");
    function Jm(t, e) {
        let a = ()=>{};
        function r(o) {
            a?.();
            const s = Number(o ? t.openDelay : t.closeDelay);
            return new Promise((l)=>{
                a = Zx(s, ()=>{
                    e?.(o), l(o);
                });
            });
        }
        function n() {
            return r(!0);
        }
        function i() {
            return r(!1);
        }
        return {
            clearDelay: a,
            runOpenDelay: n,
            runCloseDelay: i
        };
    }
    const S3 = $({
        target: [
            String,
            Object
        ],
        activator: [
            String,
            Object
        ],
        activatorProps: {
            type: Object,
            default: ()=>({})
        },
        openOnClick: {
            type: Boolean,
            default: void 0
        },
        openOnHover: Boolean,
        openOnFocus: {
            type: Boolean,
            default: void 0
        },
        closeOnContentClick: Boolean,
        ...Xm()
    }, "VOverlay-activator");
    function C3(t, e) {
        let { isActive: a, isTop: r, contentEl: n } = e;
        const i = za("useActivator"), o = W();
        let s = !1, l = !1, u = !0;
        const c = T(()=>t.openOnFocus || t.openOnFocus == null && t.openOnHover), d = T(()=>t.openOnClick || t.openOnClick == null && !t.openOnHover && !c.value), { runOpenDelay: h, runCloseDelay: m } = Jm(t, (F)=>{
            F === (t.openOnHover && s || c.value && l) && !(t.openOnHover && a.value && !r.value) && (a.value !== F && (u = !0), a.value = F);
        }), f = W(), p = {
            onClick: (F)=>{
                F.stopPropagation(), o.value = F.currentTarget || F.target, a.value || (f.value = [
                    F.clientX,
                    F.clientY
                ]), a.value = !a.value;
            },
            onMouseenter: (F)=>{
                F.sourceCapabilities?.firesTouchEvents || (s = !0, o.value = F.currentTarget || F.target, h());
            },
            onMouseleave: (F)=>{
                s = !1, m();
            },
            onFocus: (F)=>{
                xi(F.target, ":focus-visible") !== !1 && (l = !0, F.stopPropagation(), o.value = F.currentTarget || F.target, h());
            },
            onBlur: (F)=>{
                l = !1, F.stopPropagation(), m();
            }
        }, g = T(()=>{
            const F = {};
            return d.value && (F.onClick = p.onClick), t.openOnHover && (F.onMouseenter = p.onMouseenter, F.onMouseleave = p.onMouseleave), c.value && (F.onFocus = p.onFocus, F.onBlur = p.onBlur), F;
        }), v = T(()=>{
            const F = {};
            if (t.openOnHover && (F.onMouseenter = ()=>{
                s = !0, h();
            }, F.onMouseleave = ()=>{
                s = !1, m();
            }), c.value && (F.onFocusin = ()=>{
                l = !0, h();
            }, F.onFocusout = ()=>{
                l = !1, m();
            }), t.closeOnContentClick) {
                const D = Et(Ah, null);
                F.onClick = ()=>{
                    a.value = !1, D?.closeParents();
                };
            }
            return F;
        }), b = T(()=>{
            const F = {};
            return t.openOnHover && (F.onMouseenter = ()=>{
                u && (s = !0, u = !1, h());
            }, F.onMouseleave = ()=>{
                s = !1, m();
            }), F;
        });
        me(r, (F)=>{
            F && (t.openOnHover && !s && (!c.value || !l) || c.value && !l && (!t.openOnHover || !s)) && !n.value?.contains(document.activeElement) && (a.value = !1);
        }), me(a, (F)=>{
            F || setTimeout(()=>{
                f.value = void 0;
            });
        }, {
            flush: "post"
        });
        const k = qd();
        Lt(()=>{
            k.value && at(()=>{
                o.value = k.el;
            });
        });
        const S = qd(), x = T(()=>t.target === "cursor" && f.value ? f.value : S.value ? S.el : T0(t.target, i) || o.value), C = T(()=>Array.isArray(x.value) ? void 0 : x.value);
        let w;
        return me(()=>!!t.activator, (F)=>{
            F && Yt ? (w = um(), w.run(()=>{
                A3(t, i, {
                    activatorEl: o,
                    activatorEvents: g
                });
            })) : w && w.stop();
        }, {
            flush: "post",
            immediate: !0
        }), pa(()=>{
            w?.stop();
        }), {
            activatorEl: o,
            activatorRef: k,
            target: x,
            targetEl: C,
            targetRef: S,
            activatorEvents: g,
            contentEvents: v,
            scrimEvents: b
        };
    }
    function A3(t, e, a) {
        let { activatorEl: r, activatorEvents: n } = a;
        me(()=>t.activator, (l, u)=>{
            if (u && l !== u) {
                const c = s(u);
                c && o(c);
            }
            l && at(()=>i());
        }, {
            immediate: !0
        }), me(()=>t.activatorProps, ()=>{
            i();
        }), pa(()=>{
            o();
        });
        function i() {
            let l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : s(), u = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : t.activatorProps;
            l && Qx(l, Z(n.value, u));
        }
        function o() {
            let l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : s(), u = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : t.activatorProps;
            l && ew(l, Z(n.value, u));
        }
        function s() {
            let l = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : t.activator;
            const u = T0(l, e);
            return r.value = u?.nodeType === Node.ELEMENT_NODE ? u : void 0, r.value;
        }
    }
    function T0(t, e) {
        if (!t) return;
        let a;
        if (t === "parent") {
            let r = e?.proxy?.$el?.parentNode;
            for(; r?.hasAttribute("data-no-activator");)r = r.parentNode;
            a = r;
        } else typeof t == "string" ? a = document.querySelector(t) : "$el" in t ? a = t.$el : a = t;
        return a;
    }
    function E0() {
        if (!Yt) return de(!1);
        const { ssr: t } = Ia();
        if (t) {
            const e = de(!1);
            return ea(()=>{
                e.value = !0;
            }), e;
        } else return de(!0);
    }
    const Zm = $({
        eager: Boolean
    }, "lazy");
    function Qm(t, e) {
        const a = de(!1), r = T(()=>a.value || t.eager || e.value);
        me(e, ()=>a.value = !0);
        function n() {
            t.eager || (a.value = !1);
        }
        return {
            isBooted: a,
            hasContent: r,
            onAfterLeave: n
        };
    }
    function ei() {
        const e = za("useScopeId").vnode.scopeId;
        return {
            scopeId: e ? {
                [e]: ""
            } : void 0
        };
    }
    const Yv = Symbol.for("vuetify:stack"), Zi = Ba([]);
    function D3(t, e, a) {
        const r = za("useStack"), n = !a, i = Et(Yv, void 0), o = Ba({
            activeChildren: new Set
        });
        Kt(Yv, o);
        const s = de(Number(e.value));
        Ma(t, ()=>{
            const c = Zi.at(-1)?.[1];
            s.value = c ? c + 10 : Number(e.value), n && Zi.push([
                r.uid,
                s.value
            ]), i?.activeChildren.add(r.uid), pa(()=>{
                if (n) {
                    const d = Gt(Zi).findIndex((h)=>h[0] === r.uid);
                    Zi.splice(d, 1);
                }
                i?.activeChildren.delete(r.uid);
            });
        });
        const l = de(!0);
        n && Lt(()=>{
            const c = Zi.at(-1)?.[0] === r.uid;
            setTimeout(()=>l.value = c);
        });
        const u = T(()=>!o.activeChildren.size);
        return {
            globalTop: Eo(l),
            localTop: u,
            stackStyles: T(()=>({
                    zIndex: s.value
                }))
        };
    }
    function T3(t) {
        return {
            teleportTarget: T(()=>{
                const a = t();
                if (a === !0 || !Yt) return;
                const r = a === !1 ? document.body : typeof a == "string" ? document.querySelector(a) : a;
                if (r == null) return;
                let n = [
                    ...r.children
                ].find((i)=>i.matches(".v-overlay-container"));
                return n || (n = document.createElement("div"), n.className = "v-overlay-container", r.appendChild(n)), n;
            })
        };
    }
    function E3() {
        return !0;
    }
    function _0(t, e, a) {
        if (!t || P0(t, a) === !1) return !1;
        const r = Wy(e);
        if (typeof ShadowRoot < "u" && r instanceof ShadowRoot && r.host === t.target) return !1;
        const n = (typeof a.value == "object" && a.value.include || (()=>[]))();
        return n.push(e), !n.some((i)=>i?.contains(t.target));
    }
    function P0(t, e) {
        return (typeof e.value == "object" && e.value.closeConditional || E3)(t);
    }
    function _3(t, e, a) {
        const r = typeof a.value == "function" ? a.value : a.value.handler;
        t.shadowTarget = t.target, e._clickOutside.lastMousedownWasOutside && _0(t, e, a) && setTimeout(()=>{
            P0(t, a) && r && r(t);
        }, 0);
    }
    function qv(t, e) {
        const a = Wy(t);
        e(document), typeof ShadowRoot < "u" && a instanceof ShadowRoot && e(a);
    }
    const B0 = {
        mounted (t, e) {
            const a = (n)=>_3(n, t, e), r = (n)=>{
                t._clickOutside.lastMousedownWasOutside = _0(n, t, e);
            };
            qv(t, (n)=>{
                n.addEventListener("click", a, !0), n.addEventListener("mousedown", r, !0);
            }), t._clickOutside || (t._clickOutside = {
                lastMousedownWasOutside: !1
            }), t._clickOutside[e.instance.$.uid] = {
                onClick: a,
                onMousedown: r
            };
        },
        beforeUnmount (t, e) {
            t._clickOutside && (qv(t, (a)=>{
                if (!a || !t._clickOutside?.[e.instance.$.uid]) return;
                const { onClick: r, onMousedown: n } = t._clickOutside[e.instance.$.uid];
                a.removeEventListener("click", r, !0), a.removeEventListener("mousedown", n, !0);
            }), delete t._clickOutside[e.instance.$.uid]);
        }
    };
    function P3(t) {
        const { modelValue: e, color: a, ...r } = t;
        return y(Kr, {
            name: "fade-transition",
            appear: !0
        }, {
            default: ()=>[
                    t.modelValue && y("div", Z({
                        class: [
                            "v-overlay__scrim",
                            t.color.backgroundColorClasses.value
                        ],
                        style: t.color.backgroundColorStyles.value
                    }, r), null)
                ]
        });
    }
    const $o = $({
        absolute: Boolean,
        attach: [
            Boolean,
            String,
            Object
        ],
        closeOnBack: {
            type: Boolean,
            default: !0
        },
        contained: Boolean,
        contentClass: null,
        contentProps: null,
        disabled: Boolean,
        opacity: [
            Number,
            String
        ],
        noClickAnimation: Boolean,
        modelValue: Boolean,
        persistent: Boolean,
        scrim: {
            type: [
                Boolean,
                String
            ],
            default: !0
        },
        zIndex: {
            type: [
                Number,
                String
            ],
            default: 2e3
        },
        ...S3(),
        ...we(),
        ...Ut(),
        ...Zm(),
        ...m3(),
        ...b3(),
        ...Qe(),
        ...fr()
    }, "VOverlay"), yr = te()({
        name: "VOverlay",
        directives: {
            ClickOutside: B0
        },
        inheritAttrs: !1,
        props: {
            _disableGlobalStack: Boolean,
            ...$o()
        },
        emits: {
            "click:outside": (t)=>!0,
            "update:modelValue": (t)=>!0,
            keydown: (t)=>!0,
            afterEnter: ()=>!0,
            afterLeave: ()=>!0
        },
        setup (t, e) {
            let { slots: a, attrs: r, emit: n } = e;
            const i = za("VOverlay"), o = W(), s = W(), l = W(), u = Be(t, "modelValue"), c = T({
                get: ()=>u.value,
                set: (U)=>{
                    U && t.disabled || (u.value = U);
                }
            }), { themeClasses: d } = ut(t), { rtlClasses: h, isRtl: m } = Xt(), { hasContent: f, onAfterLeave: p } = Qm(t, c), g = ft(T(()=>typeof t.scrim == "string" ? t.scrim : null)), { globalTop: v, localTop: b, stackStyles: k } = D3(c, K(t, "zIndex"), t._disableGlobalStack), { activatorEl: S, activatorRef: x, target: C, targetEl: w, targetRef: F, activatorEvents: D, contentEvents: _, scrimEvents: A } = C3(t, {
                isActive: c,
                isTop: b,
                contentEl: l
            }), { teleportTarget: E } = T3(()=>{
                const U = t.attach || t.contained;
                if (U) return U;
                const le = S?.value?.getRootNode() || i.proxy?.$el?.getRootNode();
                return le instanceof ShadowRoot ? le : !1;
            }), { dimensionStyles: B } = jt(t), P = E0(), { scopeId: M } = ei();
            me(()=>t.disabled, (U)=>{
                U && (c.value = !1);
            });
            const { contentStyles: R, updateLocation: z } = f3(t, {
                isRtl: m,
                contentEl: l,
                target: C,
                isActive: c
            });
            F3(t, {
                root: o,
                contentEl: l,
                targetEl: w,
                isActive: c,
                updateLocation: z
            });
            function N(U) {
                n("click:outside", U), t.persistent ? X() : c.value = !1;
            }
            function H(U) {
                return c.value && v.value && (!t.scrim || U.target === s.value || U instanceof MouseEvent && U.shadowTarget === s.value);
            }
            Yt && me(c, (U)=>{
                U ? window.addEventListener("keydown", I) : window.removeEventListener("keydown", I);
            }, {
                immediate: !0
            }), ga(()=>{
                Yt && window.removeEventListener("keydown", I);
            });
            function I(U) {
                U.key === "Escape" && v.value && (l.value?.contains(document.activeElement) || n("keydown", U), t.persistent ? X() : (c.value = !1, l.value?.contains(document.activeElement) && S.value?.focus()));
            }
            function L(U) {
                U.key === "Escape" && !v.value || n("keydown", U);
            }
            const G = c0();
            Ma(()=>t.closeOnBack, ()=>{
                OM(G, (U)=>{
                    v.value && c.value ? (U(!1), t.persistent ? X() : c.value = !1) : U();
                });
            });
            const q = W();
            me(()=>c.value && (t.absolute || t.contained) && E.value == null, (U)=>{
                if (U) {
                    const le = vm(o.value);
                    le && le !== document.scrollingElement && (q.value = le.scrollTop);
                }
            });
            function X() {
                t.noClickAnimation || l.value && vn(l.value, [
                    {
                        transformOrigin: "center"
                    },
                    {
                        transform: "scale(1.03)"
                    },
                    {
                        transformOrigin: "center"
                    }
                ], {
                    duration: 150,
                    easing: co
                });
            }
            function ue() {
                n("afterEnter");
            }
            function J() {
                p(), n("afterLeave");
            }
            return ie(()=>y(Ce, null, [
                    a.activator?.({
                        isActive: c.value,
                        targetRef: F,
                        props: Z({
                            ref: x
                        }, D.value, t.activatorProps)
                    }),
                    P.value && f.value && y(Dx, {
                        disabled: !E.value,
                        to: E.value
                    }, {
                        default: ()=>[
                                y("div", Z({
                                    class: [
                                        "v-overlay",
                                        {
                                            "v-overlay--absolute": t.absolute || t.contained,
                                            "v-overlay--active": c.value,
                                            "v-overlay--contained": t.contained
                                        },
                                        d.value,
                                        h.value,
                                        t.class
                                    ],
                                    style: [
                                        k.value,
                                        {
                                            "--v-overlay-opacity": t.opacity,
                                            top: xe(q.value)
                                        },
                                        t.style
                                    ],
                                    ref: o,
                                    onKeydown: L
                                }, M, r), [
                                    y(P3, Z({
                                        color: g,
                                        modelValue: c.value && !!t.scrim,
                                        ref: s
                                    }, A.value), null),
                                    y(ba, {
                                        appear: !0,
                                        persisted: !0,
                                        transition: t.transition,
                                        target: C.value,
                                        onAfterEnter: ue,
                                        onAfterLeave: J
                                    }, {
                                        default: ()=>[
                                                mt(y("div", Z({
                                                    ref: l,
                                                    class: [
                                                        "v-overlay__content",
                                                        t.contentClass
                                                    ],
                                                    style: [
                                                        B.value,
                                                        R.value
                                                    ]
                                                }, _.value, t.contentProps), [
                                                    a.default?.({
                                                        isActive: c
                                                    })
                                                ]), [
                                                    [
                                                        Ca,
                                                        c.value
                                                    ],
                                                    [
                                                        qa("click-outside"),
                                                        {
                                                            handler: N,
                                                            closeConditional: H,
                                                            include: ()=>[
                                                                    S.value
                                                                ]
                                                        }
                                                    ]
                                                ])
                                            ]
                                    })
                                ])
                            ]
                    })
                ])), {
                activatorEl: S,
                scrimEl: s,
                target: C,
                animateClick: X,
                contentEl: l,
                globalTop: v,
                localTop: b,
                updateLocation: z
            };
        }
    }), xd = Symbol("Forwarded refs");
    function wd(t, e) {
        let a = t;
        for(; a;){
            const r = Reflect.getOwnPropertyDescriptor(a, e);
            if (r) return r;
            a = Object.getPrototypeOf(a);
        }
    }
    function Za(t) {
        for(var e = arguments.length, a = new Array(e > 1 ? e - 1 : 0), r = 1; r < e; r++)a[r - 1] = arguments[r];
        return t[xd] = a, new Proxy(t, {
            get (n, i) {
                if (Reflect.has(n, i)) return Reflect.get(n, i);
                if (!(typeof i == "symbol" || i.startsWith("$") || i.startsWith("__"))) {
                    for (const o of a)if (o.value && Reflect.has(o.value, i)) {
                        const s = Reflect.get(o.value, i);
                        return typeof s == "function" ? s.bind(o.value) : s;
                    }
                }
            },
            has (n, i) {
                if (Reflect.has(n, i)) return !0;
                if (typeof i == "symbol" || i.startsWith("$") || i.startsWith("__")) return !1;
                for (const o of a)if (o.value && Reflect.has(o.value, i)) return !0;
                return !1;
            },
            set (n, i, o) {
                if (Reflect.has(n, i)) return Reflect.set(n, i, o);
                if (typeof i == "symbol" || i.startsWith("$") || i.startsWith("__")) return !1;
                for (const s of a)if (s.value && Reflect.has(s.value, i)) return Reflect.set(s.value, i, o);
                return !1;
            },
            getOwnPropertyDescriptor (n, i) {
                const o = Reflect.getOwnPropertyDescriptor(n, i);
                if (o) return o;
                if (!(typeof i == "symbol" || i.startsWith("$") || i.startsWith("__"))) {
                    for (const s of a){
                        if (!s.value) continue;
                        const l = wd(s.value, i) ?? ("_" in s.value ? wd(s.value._?.setupState, i) : void 0);
                        if (l) return l;
                    }
                    for (const s of a){
                        const l = s.value && s.value[xd];
                        if (!l) continue;
                        const u = l.slice();
                        for(; u.length;){
                            const c = u.shift(), d = wd(c.value, i);
                            if (d) return d;
                            const h = c.value && c.value[xd];
                            h && u.push(...h);
                        }
                    }
                }
            }
        });
    }
    let M0, B3, Pl, M3, ao;
    M0 = $({
        id: String,
        submenu: Boolean,
        ...It($o({
            closeDelay: 250,
            closeOnContentClick: !0,
            locationStrategy: "connected",
            location: void 0,
            openDelay: 300,
            scrim: !1,
            scrollStrategy: "reposition",
            transition: {
                component: Tl
            }
        }), [
            "absolute"
        ])
    }, "VMenu");
    Jr = te()({
        name: "VMenu",
        props: M0(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), { scopeId: n } = ei(), { isRtl: i } = Xt(), o = La(), s = T(()=>t.id || `v-menu-${o}`), l = W(), u = Et(Ah, null), c = de(new Set);
            Kt(Ah, {
                register () {
                    c.value.add(o);
                },
                unregister () {
                    c.value.delete(o);
                },
                closeParents (g) {
                    setTimeout(()=>{
                        !c.value.size && !t.persistent && (g == null || l.value?.contentEl && !aw(g, l.value.contentEl)) && (r.value = !1, u?.closeParents());
                    }, 40);
                }
            }), ga(()=>{
                u?.unregister(), document.removeEventListener("focusin", d);
            }), Tx(()=>r.value = !1);
            async function d(g) {
                const v = g.relatedTarget, b = g.target;
                await at(), r.value && v !== b && l.value?.contentEl && l.value?.globalTop && ![
                    document,
                    l.value.contentEl
                ].includes(b) && !l.value.contentEl.contains(b) && Ms(l.value.contentEl)[0]?.focus();
            }
            me(r, (g)=>{
                g ? (u?.register(), Yt && document.addEventListener("focusin", d, {
                    once: !0
                })) : (u?.unregister(), Yt && document.removeEventListener("focusin", d));
            }, {
                immediate: !0
            });
            function h(g) {
                u?.closeParents(g);
            }
            function m(g) {
                if (!t.disabled) if (g.key === "Tab" || g.key === "Enter" && !t.closeOnContentClick) {
                    if (g.key === "Enter" && (g.target instanceof HTMLTextAreaElement || g.target instanceof HTMLInputElement && g.target.closest("form"))) return;
                    g.key === "Enter" && g.preventDefault(), tw(Ms(l.value?.contentEl, !1), g.shiftKey ? "prev" : "next", (b)=>b.tabIndex >= 0) || (r.value = !1, l.value?.activatorEl?.focus());
                } else t.submenu && g.key === (i.value ? "ArrowRight" : "ArrowLeft") && (r.value = !1, l.value?.activatorEl?.focus());
            }
            function f(g) {
                if (t.disabled) return;
                const v = l.value?.contentEl;
                v && r.value ? g.key === "ArrowDown" ? (g.preventDefault(), g.stopImmediatePropagation(), bi(v, "next")) : g.key === "ArrowUp" ? (g.preventDefault(), g.stopImmediatePropagation(), bi(v, "prev")) : t.submenu && (g.key === (i.value ? "ArrowRight" : "ArrowLeft") ? r.value = !1 : g.key === (i.value ? "ArrowLeft" : "ArrowRight") && (g.preventDefault(), bi(v, "first"))) : (t.submenu ? g.key === (i.value ? "ArrowLeft" : "ArrowRight") : [
                    "ArrowDown",
                    "ArrowUp"
                ].includes(g.key)) && (r.value = !0, g.preventDefault(), setTimeout(()=>setTimeout(()=>f(g))));
            }
            const p = T(()=>Z({
                    "aria-haspopup": "menu",
                    "aria-expanded": String(r.value),
                    "aria-controls": s.value,
                    onKeydown: f
                }, t.activatorProps));
            return ie(()=>{
                const g = yr.filterProps(t);
                return y(yr, Z({
                    ref: l,
                    id: s.value,
                    class: [
                        "v-menu",
                        t.class
                    ],
                    style: t.style
                }, g, {
                    modelValue: r.value,
                    "onUpdate:modelValue": (v)=>r.value = v,
                    absolute: !0,
                    activatorProps: p.value,
                    location: t.location ?? (t.submenu ? "end" : "bottom"),
                    "onClick:outside": h,
                    onKeydown: m
                }, n), {
                    activator: a.activator,
                    default: function() {
                        for(var v = arguments.length, b = new Array(v), k = 0; k < v; k++)b[k] = arguments[k];
                        return y(Ge, {
                            root: "VMenu"
                        }, {
                            default: ()=>[
                                    a.default?.(...b)
                                ]
                        });
                    }
                });
            }), Za({
                id: s,
                ΨopenChildren: c
            }, l);
        }
    });
    B3 = $({
        active: Boolean,
        disabled: Boolean,
        max: [
            Number,
            String
        ],
        value: {
            type: [
                Number,
                String
            ],
            default: 0
        },
        ...we(),
        ...fr({
            transition: {
                component: El
            }
        })
    }, "VCounter");
    Pl = te()({
        name: "VCounter",
        functional: !0,
        props: B3(),
        setup (t, e) {
            let { slots: a } = e;
            const r = T(()=>t.max ? `${t.value} / ${t.max}` : String(t.value));
            return ie(()=>y(ba, {
                    transition: t.transition
                }, {
                    default: ()=>[
                            mt(y("div", {
                                class: [
                                    "v-counter",
                                    {
                                        "text-error": t.max && !t.disabled && parseFloat(t.value) > parseFloat(t.max)
                                    },
                                    t.class
                                ],
                                style: t.style
                            }, [
                                a.default ? a.default({
                                    counter: r.value,
                                    max: t.max,
                                    value: t.value
                                }) : r.value
                            ]), [
                                [
                                    Ca,
                                    t.active
                                ]
                            ])
                        ]
                })), {};
        }
    });
    M3 = $({
        floating: Boolean,
        ...we()
    }, "VFieldLabel");
    ao = te()({
        name: "VFieldLabel",
        props: M3(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y(Ii, {
                    class: [
                        "v-field-label",
                        {
                            "v-field-label--floating": t.floating
                        },
                        t.class
                    ],
                    style: t.style,
                    "aria-hidden": t.floating || void 0
                }, a)), {};
        }
    });
    function Bl(t, e) {
        const a = W(), r = de(!1);
        if (fm) {
            const n = new IntersectionObserver((i)=>{
                r.value = !!i.find((o)=>o.isIntersecting);
            }, e);
            ga(()=>{
                n.disconnect();
            }), me(a, (i, o)=>{
                o && (n.unobserve(o), r.value = !1), i && n.observe(i);
            }, {
                flush: "post"
            });
        }
        return {
            intersectionRef: a,
            isIntersecting: r
        };
    }
    const Kv = {
        center: "center",
        top: "bottom",
        bottom: "top",
        left: "right",
        right: "left"
    }, zr = $({
        location: String
    }, "location");
    function ti(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, a = arguments.length > 2 ? arguments[2] : void 0;
        const { isRtl: r } = Xt();
        return {
            locationStyles: T(()=>{
                if (!t.location) return {};
                const { side: i, align: o } = Yd(t.location.split(" ").length > 1 ? t.location : `${t.location} center`, r.value);
                function s(u) {
                    return a ? a(u) : 0;
                }
                const l = {};
                return i !== "center" && (e ? l[Kv[i]] = `calc(100% - ${s(i)}px)` : l[i] = 0), o !== "center" ? e ? l[Kv[o]] = `calc(100% - ${s(o)}px)` : l[o] = 0 : (i === "center" ? l.top = l.left = "50%" : l[{
                    top: "left",
                    bottom: "left",
                    left: "top",
                    right: "top"
                }[i]] = "50%", l.transform = {
                    top: "translateX(-50%)",
                    bottom: "translateX(-50%)",
                    left: "translateY(-50%)",
                    right: "translateY(-50%)",
                    center: "translate(-50%, -50%)"
                }[i]), l;
            })
        };
    }
    let R3, Rl;
    R3 = $({
        absolute: Boolean,
        active: {
            type: Boolean,
            default: !0
        },
        bgColor: String,
        bgOpacity: [
            Number,
            String
        ],
        bufferValue: {
            type: [
                Number,
                String
            ],
            default: 0
        },
        bufferColor: String,
        bufferOpacity: [
            Number,
            String
        ],
        clickable: Boolean,
        color: String,
        height: {
            type: [
                Number,
                String
            ],
            default: 4
        },
        indeterminate: Boolean,
        max: {
            type: [
                Number,
                String
            ],
            default: 100
        },
        modelValue: {
            type: [
                Number,
                String
            ],
            default: 0
        },
        opacity: [
            Number,
            String
        ],
        reverse: Boolean,
        stream: Boolean,
        striped: Boolean,
        roundedBar: Boolean,
        ...we(),
        ...zr({
            location: "top"
        }),
        ...Ct(),
        ...We(),
        ...Qe()
    }, "VProgressLinear");
    Ml = te()({
        name: "VProgressLinear",
        props: R3(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), { isRtl: n, rtlClasses: i } = Xt(), { themeClasses: o } = ut(t), { locationStyles: s } = ti(t), { textColorClasses: l, textColorStyles: u } = ha(t, "color"), { backgroundColorClasses: c, backgroundColorStyles: d } = ft(T(()=>t.bgColor || t.color)), { backgroundColorClasses: h, backgroundColorStyles: m } = ft(T(()=>t.bufferColor || t.bgColor || t.color)), { backgroundColorClasses: f, backgroundColorStyles: p } = ft(t, "color"), { roundedClasses: g } = Mt(t), { intersectionRef: v, isIntersecting: b } = Bl(), k = T(()=>parseFloat(t.max)), S = T(()=>parseFloat(t.height)), x = T(()=>Rt(parseFloat(t.bufferValue) / k.value * 100, 0, 100)), C = T(()=>Rt(parseFloat(r.value) / k.value * 100, 0, 100)), w = T(()=>n.value !== t.reverse), F = T(()=>t.indeterminate ? "fade-transition" : "slide-x-transition"), D = Yt && window.matchMedia?.("(forced-colors: active)").matches;
            function _(A) {
                if (!v.value) return;
                const { left: E, right: B, width: P } = v.value.getBoundingClientRect(), M = w.value ? P - A.clientX + (B - P) : A.clientX - E;
                r.value = Math.round(M / P * k.value);
            }
            return ie(()=>y(t.tag, {
                    ref: v,
                    class: [
                        "v-progress-linear",
                        {
                            "v-progress-linear--absolute": t.absolute,
                            "v-progress-linear--active": t.active && b.value,
                            "v-progress-linear--reverse": w.value,
                            "v-progress-linear--rounded": t.rounded,
                            "v-progress-linear--rounded-bar": t.roundedBar,
                            "v-progress-linear--striped": t.striped
                        },
                        g.value,
                        o.value,
                        i.value,
                        t.class
                    ],
                    style: [
                        {
                            bottom: t.location === "bottom" ? 0 : void 0,
                            top: t.location === "top" ? 0 : void 0,
                            height: t.active ? xe(S.value) : 0,
                            "--v-progress-linear-height": xe(S.value),
                            ...t.absolute ? s.value : {}
                        },
                        t.style
                    ],
                    role: "progressbar",
                    "aria-hidden": t.active ? "false" : "true",
                    "aria-valuemin": "0",
                    "aria-valuemax": t.max,
                    "aria-valuenow": t.indeterminate ? void 0 : Math.min(parseFloat(r.value), k.value),
                    onClick: t.clickable && _
                }, {
                    default: ()=>[
                            t.stream && y("div", {
                                key: "stream",
                                class: [
                                    "v-progress-linear__stream",
                                    l.value
                                ],
                                style: {
                                    ...u.value,
                                    [w.value ? "left" : "right"]: xe(-S.value),
                                    borderTop: `${xe(S.value / 2)} dotted`,
                                    opacity: parseFloat(t.bufferOpacity),
                                    top: `calc(50% - ${xe(S.value / 4)})`,
                                    width: xe(100 - x.value, "%"),
                                    "--v-progress-linear-stream-to": xe(S.value * (w.value ? 1 : -1))
                                }
                            }, null),
                            y("div", {
                                class: [
                                    "v-progress-linear__background",
                                    D ? void 0 : c.value
                                ],
                                style: [
                                    d.value,
                                    {
                                        opacity: parseFloat(t.bgOpacity),
                                        width: t.stream ? 0 : void 0
                                    }
                                ]
                            }, null),
                            y("div", {
                                class: [
                                    "v-progress-linear__buffer",
                                    D ? void 0 : h.value
                                ],
                                style: [
                                    m.value,
                                    {
                                        opacity: parseFloat(t.bufferOpacity),
                                        width: xe(x.value, "%")
                                    }
                                ]
                            }, null),
                            y(Kr, {
                                name: F.value
                            }, {
                                default: ()=>[
                                        t.indeterminate ? y("div", {
                                            class: "v-progress-linear__indeterminate"
                                        }, [
                                            [
                                                "long",
                                                "short"
                                            ].map((A)=>y("div", {
                                                    key: A,
                                                    class: [
                                                        "v-progress-linear__indeterminate",
                                                        A,
                                                        D ? void 0 : f.value
                                                    ],
                                                    style: p.value
                                                }, null))
                                        ]) : y("div", {
                                            class: [
                                                "v-progress-linear__determinate",
                                                D ? void 0 : f.value
                                            ],
                                            style: [
                                                p.value,
                                                {
                                                    width: xe(C.value, "%")
                                                }
                                            ]
                                        }, null)
                                    ]
                            }),
                            a.default && y("div", {
                                class: "v-progress-linear__content"
                            }, [
                                a.default({
                                    value: C.value,
                                    buffer: x.value
                                })
                            ])
                        ]
                })), {};
        }
    });
    Rl = $({
        loading: [
            Boolean,
            String
        ]
    }, "loader");
    function Uo(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr();
        return {
            loaderClasses: T(()=>({
                    [`${e}--loading`]: t.loading
                }))
        };
    }
    function jo(t, e) {
        let { slots: a } = e;
        return y("div", {
            class: `${t.name}__loader`
        }, [
            a.default?.({
                color: t.color,
                isActive: t.active
            }) || y(Ml, {
                absolute: t.absolute,
                active: t.active,
                color: t.color,
                height: "2",
                indeterminate: !0
            }, null)
        ]);
    }
    let L3, Yo, Zr, I3, qo, z3, R0, N3, O3, Sd, L0;
    L3 = [
        "underlined",
        "outlined",
        "filled",
        "solo",
        "solo-inverted",
        "solo-filled",
        "plain"
    ];
    Yo = $({
        appendInnerIcon: Me,
        bgColor: String,
        clearable: Boolean,
        clearIcon: {
            type: Me,
            default: "$clear"
        },
        active: Boolean,
        centerAffix: {
            type: Boolean,
            default: void 0
        },
        color: String,
        baseColor: String,
        dirty: Boolean,
        disabled: {
            type: Boolean,
            default: null
        },
        glow: Boolean,
        error: Boolean,
        flat: Boolean,
        iconColor: [
            Boolean,
            String
        ],
        label: String,
        persistentClear: Boolean,
        prependInnerIcon: Me,
        reverse: Boolean,
        singleLine: Boolean,
        variant: {
            type: String,
            default: "filled",
            validator: (t)=>L3.includes(t)
        },
        "onClick:clear": ra(),
        "onClick:appendInner": ra(),
        "onClick:prependInner": ra(),
        ...we(),
        ...Rl(),
        ...Ct(),
        ...Qe()
    }, "VField");
    Zr = te()({
        name: "VField",
        inheritAttrs: !1,
        props: {
            id: String,
            ...Ho(),
            ...Yo()
        },
        emits: {
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, emit: r, slots: n } = e;
            const { themeClasses: i } = ut(t), { loaderClasses: o } = Uo(t), { focusClasses: s, isFocused: l, focus: u, blur: c } = wr(t), { InputIcon: d } = XF(t), { roundedClasses: h } = Mt(t), { rtlClasses: m } = Xt(), f = T(()=>t.dirty || t.active), p = T(()=>!!(t.label || n.label)), g = T(()=>!t.singleLine && p.value), v = La(), b = T(()=>t.id || `input-${v}`), k = T(()=>`${b.value}-messages`), S = W(), x = W(), C = W(), w = T(()=>[
                    "plain",
                    "underlined"
                ].includes(t.variant)), F = T(()=>t.error || t.disabled ? void 0 : f.value && l.value ? t.color : t.baseColor), D = T(()=>{
                if (!(!t.iconColor || t.glow && !l.value)) return t.iconColor === !0 ? F.value : t.iconColor;
            }), { backgroundColorClasses: _, backgroundColorStyles: A } = ft(K(t, "bgColor")), { textColorClasses: E, textColorStyles: B } = ha(F);
            me(f, (R)=>{
                if (g.value) {
                    const z = S.value.$el, N = x.value.$el;
                    requestAnimationFrame(()=>{
                        const H = gm(z), I = N.getBoundingClientRect(), L = I.x - H.x, G = I.y - H.y - (H.height / 2 - I.height / 2), q = I.width / .75, X = Math.abs(q - H.width) > 1 ? {
                            maxWidth: xe(q)
                        } : void 0, ue = getComputedStyle(z), J = getComputedStyle(N), U = parseFloat(ue.transitionDuration) * 1e3 || 150, le = parseFloat(J.getPropertyValue("--v-field-label-scale")), fe = J.getPropertyValue("color");
                        z.style.visibility = "visible", N.style.visibility = "hidden", vn(z, {
                            transform: `translate(${L}px, ${G}px) scale(${le})`,
                            color: fe,
                            ...X
                        }, {
                            duration: U,
                            easing: co,
                            direction: R ? "normal" : "reverse"
                        }).finished.then(()=>{
                            z.style.removeProperty("visibility"), N.style.removeProperty("visibility");
                        });
                    });
                }
            }, {
                flush: "post"
            });
            const P = T(()=>({
                    isActive: f,
                    isFocused: l,
                    controlRef: C,
                    blur: c,
                    focus: u
                }));
            function M(R) {
                R.target !== document.activeElement && R.preventDefault();
            }
            return ie(()=>{
                const R = t.variant === "outlined", z = !!(n["prepend-inner"] || t.prependInnerIcon), N = !!(t.clearable || n.clear) && !t.disabled, H = !!(n["append-inner"] || t.appendInnerIcon || N), I = ()=>n.label ? n.label({
                        ...P.value,
                        label: t.label,
                        props: {
                            for: b.value
                        }
                    }) : t.label;
                return y("div", Z({
                    class: [
                        "v-field",
                        {
                            "v-field--active": f.value,
                            "v-field--appended": H,
                            "v-field--center-affix": t.centerAffix ?? !w.value,
                            "v-field--disabled": t.disabled,
                            "v-field--dirty": t.dirty,
                            "v-field--error": t.error,
                            "v-field--glow": t.glow,
                            "v-field--flat": t.flat,
                            "v-field--has-background": !!t.bgColor,
                            "v-field--persistent-clear": t.persistentClear,
                            "v-field--prepended": z,
                            "v-field--reverse": t.reverse,
                            "v-field--single-line": t.singleLine,
                            "v-field--no-label": !I(),
                            [`v-field--variant-${t.variant}`]: !0
                        },
                        i.value,
                        _.value,
                        s.value,
                        o.value,
                        h.value,
                        m.value,
                        t.class
                    ],
                    style: [
                        A.value,
                        t.style
                    ],
                    onClick: M
                }, a), [
                    y("div", {
                        class: "v-field__overlay"
                    }, null),
                    y(jo, {
                        name: "v-field",
                        active: !!t.loading,
                        color: t.error ? "error" : typeof t.loading == "string" ? t.loading : t.color
                    }, {
                        default: n.loader
                    }),
                    z && y("div", {
                        key: "prepend",
                        class: "v-field__prepend-inner"
                    }, [
                        t.prependInnerIcon && y(d, {
                            key: "prepend-icon",
                            name: "prependInner",
                            color: D.value
                        }, null),
                        n["prepend-inner"]?.(P.value)
                    ]),
                    y("div", {
                        class: "v-field__field",
                        "data-no-activator": ""
                    }, [
                        [
                            "filled",
                            "solo",
                            "solo-inverted",
                            "solo-filled"
                        ].includes(t.variant) && g.value && y(ao, {
                            key: "floating-label",
                            ref: x,
                            class: [
                                E.value
                            ],
                            floating: !0,
                            for: b.value,
                            style: B.value
                        }, {
                            default: ()=>[
                                    I()
                                ]
                        }),
                        p.value && y(ao, {
                            key: "label",
                            ref: S,
                            for: b.value
                        }, {
                            default: ()=>[
                                    I()
                                ]
                        }),
                        n.default?.({
                            ...P.value,
                            props: {
                                id: b.value,
                                class: "v-field__input",
                                "aria-describedby": k.value
                            },
                            focus: u,
                            blur: c
                        }) ?? y("div", {
                            id: b.value,
                            class: "v-field__input",
                            "aria-describedby": k.value
                        }, null)
                    ]),
                    N && y(Um, {
                        key: "clear"
                    }, {
                        default: ()=>[
                                mt(y("div", {
                                    class: "v-field__clearable",
                                    onMousedown: (L)=>{
                                        L.preventDefault(), L.stopPropagation();
                                    }
                                }, [
                                    y(Ge, {
                                        defaults: {
                                            VIcon: {
                                                icon: t.clearIcon
                                            }
                                        }
                                    }, {
                                        default: ()=>[
                                                n.clear ? n.clear({
                                                    ...P.value,
                                                    props: {
                                                        onFocus: u,
                                                        onBlur: c,
                                                        onClick: t["onClick:clear"]
                                                    }
                                                }) : y(d, {
                                                    name: "clear",
                                                    onFocus: u,
                                                    onBlur: c
                                                }, null)
                                            ]
                                    })
                                ]), [
                                    [
                                        Ca,
                                        t.dirty
                                    ]
                                ])
                            ]
                    }),
                    H && y("div", {
                        key: "append",
                        class: "v-field__append-inner"
                    }, [
                        n["append-inner"]?.(P.value),
                        t.appendInnerIcon && y(d, {
                            key: "append-icon",
                            name: "appendInner",
                            color: D.value
                        }, null)
                    ]),
                    y("div", {
                        class: [
                            "v-field__outline",
                            E.value
                        ],
                        style: B.value
                    }, [
                        R && y(Ce, null, [
                            y("div", {
                                class: "v-field__outline__start"
                            }, null),
                            g.value && y("div", {
                                class: "v-field__outline__notch"
                            }, [
                                y(ao, {
                                    ref: x,
                                    floating: !0,
                                    for: b.value
                                }, {
                                    default: ()=>[
                                            I()
                                        ]
                                })
                            ]),
                            y("div", {
                                class: "v-field__outline__end"
                            }, null)
                        ]),
                        w.value && g.value && y(ao, {
                            ref: x,
                            floating: !0,
                            for: b.value
                        }, {
                            default: ()=>[
                                    I()
                                ]
                        })
                    ])
                ]);
            }), {
                controlRef: C,
                fieldIconColor: D
            };
        }
    });
    I3 = [
        "color",
        "file",
        "time",
        "date",
        "datetime-local",
        "week",
        "month"
    ];
    qo = $({
        autofocus: Boolean,
        counter: [
            Boolean,
            Number,
            String
        ],
        counterValue: [
            Number,
            Function
        ],
        prefix: String,
        placeholder: String,
        persistentPlaceholder: Boolean,
        persistentCounter: Boolean,
        suffix: String,
        role: String,
        type: {
            type: String,
            default: "text"
        },
        modelModifiers: Object,
        ...Ir(),
        ...Yo()
    }, "VTextField");
    ya = te()({
        name: "VTextField",
        directives: {
            Intersect: Oo
        },
        inheritAttrs: !1,
        props: qo(),
        emits: {
            "click:control": (t)=>!0,
            "mousedown:control": (t)=>!0,
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, emit: r, slots: n } = e;
            const i = Be(t, "modelValue"), { isFocused: o, focus: s, blur: l } = wr(t), u = T(()=>typeof t.counterValue == "function" ? t.counterValue(i.value) : typeof t.counterValue == "number" ? t.counterValue : (i.value ?? "").toString().length), c = T(()=>{
                if (a.maxlength) return a.maxlength;
                if (!(!t.counter || typeof t.counter != "number" && typeof t.counter != "string")) return t.counter;
            }), d = T(()=>[
                    "plain",
                    "underlined"
                ].includes(t.variant));
            function h(C, w) {
                !t.autofocus || !C || w[0].target?.focus?.();
            }
            const m = W(), f = W(), p = W(), g = T(()=>I3.includes(t.type) || t.persistentPlaceholder || o.value || t.active);
            function v() {
                p.value !== document.activeElement && p.value?.focus(), o.value || s();
            }
            function b(C) {
                r("mousedown:control", C), C.target !== p.value && (v(), C.preventDefault());
            }
            function k(C) {
                v(), r("click:control", C);
            }
            function S(C) {
                C.stopPropagation(), v(), at(()=>{
                    i.value = null, ul(t["onClick:clear"], C);
                });
            }
            function x(C) {
                const w = C.target;
                if (i.value = w.value, t.modelModifiers?.trim && [
                    "text",
                    "search",
                    "password",
                    "tel",
                    "url"
                ].includes(t.type)) {
                    const F = [
                        w.selectionStart,
                        w.selectionEnd
                    ];
                    at(()=>{
                        w.selectionStart = F[0], w.selectionEnd = F[1];
                    });
                }
            }
            return ie(()=>{
                const C = !!(n.counter || t.counter !== !1 && t.counter != null), w = !!(C || n.details), [F, D] = an(a), { modelValue: _, ...A } = ma.filterProps(t), E = Zr.filterProps(t);
                return y(ma, Z({
                    ref: m,
                    modelValue: i.value,
                    "onUpdate:modelValue": (B)=>i.value = B,
                    class: [
                        "v-text-field",
                        {
                            "v-text-field--prefixed": t.prefix,
                            "v-text-field--suffixed": t.suffix,
                            "v-input--plain-underlined": d.value
                        },
                        t.class
                    ],
                    style: t.style
                }, F, A, {
                    centerAffix: !d.value,
                    focused: o.value
                }), {
                    ...n,
                    default: (B)=>{
                        let { id: P, isDisabled: M, isDirty: R, isReadonly: z, isValid: N } = B;
                        return y(Zr, Z({
                            ref: f,
                            onMousedown: b,
                            onClick: k,
                            "onClick:clear": S,
                            "onClick:prependInner": t["onClick:prependInner"],
                            "onClick:appendInner": t["onClick:appendInner"],
                            role: t.role
                        }, E, {
                            id: P.value,
                            active: g.value || R.value,
                            dirty: R.value || t.dirty,
                            disabled: M.value,
                            focused: o.value,
                            error: N.value === !1
                        }), {
                            ...n,
                            default: (H)=>{
                                let { props: { class: I, ...L } } = H;
                                const G = mt(y("input", Z({
                                    ref: p,
                                    value: i.value,
                                    onInput: x,
                                    autofocus: t.autofocus,
                                    readonly: z.value,
                                    disabled: M.value,
                                    name: t.name,
                                    placeholder: t.placeholder,
                                    size: 1,
                                    type: t.type,
                                    onFocus: v,
                                    onBlur: l
                                }, L, D), null), [
                                    [
                                        qa("intersect"),
                                        {
                                            handler: h
                                        },
                                        null,
                                        {
                                            once: !0
                                        }
                                    ]
                                ]);
                                return y(Ce, null, [
                                    t.prefix && y("span", {
                                        class: "v-text-field__prefix"
                                    }, [
                                        y("span", {
                                            class: "v-text-field__prefix__text"
                                        }, [
                                            t.prefix
                                        ])
                                    ]),
                                    n.default ? y("div", {
                                        class: I,
                                        "data-no-activator": ""
                                    }, [
                                        n.default(),
                                        G
                                    ]) : Ex(G, {
                                        class: I
                                    }),
                                    t.suffix && y("span", {
                                        class: "v-text-field__suffix"
                                    }, [
                                        y("span", {
                                            class: "v-text-field__suffix__text"
                                        }, [
                                            t.suffix
                                        ])
                                    ])
                                ]);
                            }
                        });
                    },
                    details: w ? (B)=>y(Ce, null, [
                            n.details?.(B),
                            C && y(Ce, null, [
                                y("span", null, null),
                                y(Pl, {
                                    active: t.persistentCounter || o.value,
                                    value: u.value,
                                    max: c.value,
                                    disabled: t.disabled
                                }, n.counter)
                            ])
                        ]) : void 0
                });
            }), Za({}, m, f, p);
        }
    });
    z3 = $({
        renderless: Boolean,
        ...we()
    }, "VVirtualScrollItem");
    R0 = te()({
        name: "VVirtualScrollItem",
        inheritAttrs: !1,
        props: z3(),
        emits: {
            "update:height": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, emit: r, slots: n } = e;
            const { resizeRef: i, contentRect: o } = vr(void 0, "border");
            me(()=>o.value?.height, (s)=>{
                s != null && r("update:height", s);
            }), ie(()=>t.renderless ? y(Ce, null, [
                    n.default?.({
                        itemRef: i
                    })
                ]) : y("div", Z({
                    ref: i,
                    class: [
                        "v-virtual-scroll__item",
                        t.class
                    ],
                    style: t.style
                }, a), [
                    n.default?.()
                ]));
        }
    });
    N3 = -1;
    O3 = 1;
    Sd = 100;
    L0 = $({
        itemHeight: {
            type: [
                Number,
                String
            ],
            default: null
        },
        itemKey: {
            type: [
                String,
                Array,
                Function
            ],
            default: null
        },
        height: [
            Number,
            String
        ]
    }, "virtual");
    function I0(t, e) {
        const a = Ia(), r = de(0);
        Lt(()=>{
            r.value = parseFloat(t.itemHeight || 0);
        });
        const n = de(0), i = de(Math.ceil((parseInt(t.height) || a.height.value) / (r.value || 16)) || 1), o = de(0), s = de(0), l = W(), u = W();
        let c = 0;
        const { resizeRef: d, contentRect: h } = vr();
        Lt(()=>{
            d.value = l.value;
        });
        const m = T(()=>l.value === document.documentElement ? a.height.value : h.value?.height || parseInt(t.height) || 0), f = T(()=>!!(l.value && u.value && m.value && r.value));
        let p = Array.from({
            length: e.value.length
        }), g = Array.from({
            length: e.value.length
        });
        const v = de(0);
        let b = -1;
        function k(I) {
            return p[I] || r.value;
        }
        const S = rw(()=>{
            const I = performance.now();
            g[0] = 0;
            const L = e.value.length;
            for(let G = 1; G <= L - 1; G++)g[G] = (g[G - 1] || 0) + k(G - 1);
            v.value = Math.max(v.value, performance.now() - I);
        }, v), x = me(f, (I)=>{
            I && (x(), c = u.value.offsetTop, S.immediate(), R(), ~b && at(()=>{
                Yt && window.requestAnimationFrame(()=>{
                    N(b), b = -1;
                });
            }));
        });
        pa(()=>{
            S.clear();
        });
        function C(I, L) {
            const G = p[I], q = r.value;
            r.value = q ? Math.min(r.value, L) : L, (G !== L || q !== r.value) && (p[I] = L, S());
        }
        function w(I) {
            return I = Rt(I, 0, e.value.length - 1), g[I] || 0;
        }
        function F(I) {
            return H3(g, I);
        }
        let D = 0, _ = 0, A = 0;
        me(m, (I, L)=>{
            L && (R(), I < L && requestAnimationFrame(()=>{
                _ = 0, R();
            }));
        });
        let E = -1;
        function B() {
            if (!l.value || !u.value) return;
            const I = l.value.scrollTop, L = performance.now();
            L - A > 500 ? (_ = Math.sign(I - D), c = u.value.offsetTop) : _ = I - D, D = I, A = L, window.clearTimeout(E), E = window.setTimeout(P, 500), R();
        }
        function P() {
            !l.value || !u.value || (_ = 0, A = 0, window.clearTimeout(E), R());
        }
        let M = -1;
        function R() {
            cancelAnimationFrame(M), M = requestAnimationFrame(z);
        }
        function z() {
            if (!l.value || !m.value) return;
            const I = D - c, L = Math.sign(_), G = Math.max(0, I - Sd), q = Rt(F(G), 0, e.value.length), X = I + m.value + Sd, ue = Rt(F(X) + 1, q + 1, e.value.length);
            if ((L !== N3 || q < n.value) && (L !== O3 || ue > i.value)) {
                const J = w(n.value) - w(q), U = w(ue) - w(i.value);
                Math.max(J, U) > Sd ? (n.value = q, i.value = ue) : (q <= 0 && (n.value = q), ue >= e.value.length && (i.value = ue));
            }
            o.value = w(n.value), s.value = w(e.value.length) - w(i.value);
        }
        function N(I) {
            const L = w(I);
            !l.value || I && !L ? b = I : l.value.scrollTop = L;
        }
        const H = T(()=>e.value.slice(n.value, i.value).map((I, L)=>{
                const G = L + n.value;
                return {
                    raw: I,
                    index: G,
                    key: $t(I, t.itemKey, G)
                };
            }));
        return me(e, ()=>{
            p = Array.from({
                length: e.value.length
            }), g = Array.from({
                length: e.value.length
            }), S.immediate(), R();
        }, {
            deep: 1
        }), {
            calculateVisibleItems: R,
            containerRef: l,
            markerRef: u,
            computedItems: H,
            paddingTop: o,
            paddingBottom: s,
            scrollToIndex: N,
            handleScroll: B,
            handleScrollend: P,
            handleItemResize: C
        };
    }
    function H3(t, e) {
        let a = t.length - 1, r = 0, n = 0, i = null, o = -1;
        if (t[a] < e) return a;
        for(; r <= a;)if (n = r + a >> 1, i = t[n], i > e) a = n - 1;
        else if (i < e) o = n, r = n + 1;
        else return i === e ? n : r;
        return o;
    }
    let V3;
    V3 = $({
        items: {
            type: Array,
            default: ()=>[]
        },
        renderless: Boolean,
        ...L0(),
        ...we(),
        ...Ut()
    }, "VVirtualScroll");
    Ll = te()({
        name: "VVirtualScroll",
        props: V3(),
        setup (t, e) {
            let { slots: a } = e;
            const r = za("VVirtualScroll"), { dimensionStyles: n } = jt(t), { calculateVisibleItems: i, containerRef: o, markerRef: s, handleScroll: l, handleScrollend: u, handleItemResize: c, scrollToIndex: d, paddingTop: h, paddingBottom: m, computedItems: f } = I0(t, K(t, "items"));
            return Ma(()=>t.renderless, ()=>{
                function p() {
                    const v = (arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !1) ? "addEventListener" : "removeEventListener";
                    o.value === document.documentElement ? (document[v]("scroll", l, {
                        passive: !0
                    }), document[v]("scrollend", u)) : (o.value?.[v]("scroll", l, {
                        passive: !0
                    }), o.value?.[v]("scrollend", u));
                }
                ea(()=>{
                    o.value = vm(r.vnode.el, !0), p(!0);
                }), pa(p);
            }), ie(()=>{
                const p = f.value.map((g)=>y(R0, {
                        key: g.key,
                        renderless: t.renderless,
                        "onUpdate:height": (v)=>c(g.index, v)
                    }, {
                        default: (v)=>a.default?.({
                                item: g.raw,
                                index: g.index,
                                ...v
                            })
                    }));
                return t.renderless ? y(Ce, null, [
                    y("div", {
                        ref: s,
                        class: "v-virtual-scroll__spacer",
                        style: {
                            paddingTop: xe(h.value)
                        }
                    }, null),
                    p,
                    y("div", {
                        class: "v-virtual-scroll__spacer",
                        style: {
                            paddingBottom: xe(m.value)
                        }
                    }, null)
                ]) : y("div", {
                    ref: o,
                    class: [
                        "v-virtual-scroll",
                        t.class
                    ],
                    onScrollPassive: l,
                    onScrollend: u,
                    style: [
                        n.value,
                        t.style
                    ]
                }, [
                    y("div", {
                        ref: s,
                        class: "v-virtual-scroll__container",
                        style: {
                            paddingTop: xe(h.value),
                            paddingBottom: xe(m.value)
                        }
                    }, [
                        p
                    ])
                ]);
            }), {
                calculateVisibleItems: i,
                scrollToIndex: d
            };
        }
    });
    function ef(t, e) {
        const a = de(!1);
        let r;
        function n(s) {
            cancelAnimationFrame(r), a.value = !0, r = requestAnimationFrame(()=>{
                r = requestAnimationFrame(()=>{
                    a.value = !1;
                });
            });
        }
        async function i() {
            await new Promise((s)=>requestAnimationFrame(s)), await new Promise((s)=>requestAnimationFrame(s)), await new Promise((s)=>requestAnimationFrame(s)), await new Promise((s)=>{
                if (a.value) {
                    const l = me(a, ()=>{
                        l(), s();
                    });
                } else s();
            });
        }
        async function o(s) {
            if (s.key === "Tab" && e.value?.focus(), ![
                "PageDown",
                "PageUp",
                "Home",
                "End"
            ].includes(s.key)) return;
            const l = t.value?.$el;
            if (!l) return;
            (s.key === "Home" || s.key === "End") && l.scrollTo({
                top: s.key === "Home" ? 0 : l.scrollHeight,
                behavior: "smooth"
            }), await i();
            const u = l.querySelectorAll(":scope > :not(.v-virtual-scroll__spacer)");
            if (s.key === "PageDown" || s.key === "Home") {
                const c = l.getBoundingClientRect().top;
                for (const d of u)if (d.getBoundingClientRect().top >= c) {
                    d.focus();
                    break;
                }
            } else {
                const c = l.getBoundingClientRect().bottom;
                for (const d of [
                    ...u
                ].reverse())if (d.getBoundingClientRect().bottom <= c) {
                    d.focus();
                    break;
                }
            }
        }
        return {
            onScrollPassive: n,
            onKeydown: o
        };
    }
    let tf, W3, G3;
    tf = $({
        chips: Boolean,
        closableChips: Boolean,
        closeText: {
            type: String,
            default: "$vuetify.close"
        },
        openText: {
            type: String,
            default: "$vuetify.open"
        },
        eager: Boolean,
        hideNoData: Boolean,
        hideSelected: Boolean,
        listProps: {
            type: Object
        },
        menu: Boolean,
        menuIcon: {
            type: Me,
            default: "$dropdown"
        },
        menuProps: {
            type: Object
        },
        multiple: Boolean,
        noDataText: {
            type: String,
            default: "$vuetify.noDataText"
        },
        openOnClear: Boolean,
        itemColor: String,
        ...x0({
            itemChildren: !1
        })
    }, "Select");
    W3 = $({
        ...tf(),
        ...It(qo({
            modelValue: null,
            role: "combobox"
        }), [
            "validationValue",
            "dirty",
            "appendInnerIcon"
        ]),
        ...fr({
            transition: {
                component: Tl
            }
        })
    }, "VSelect");
    _n = te()({
        name: "VSelect",
        props: W3(),
        emits: {
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0,
            "update:menu": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { t: r } = zt(), n = W(), i = W(), o = W(), { items: s, transformIn: l, transformOut: u } = Km(t), c = Be(t, "modelValue", [], (H)=>l(H === null ? [
                    null
                ] : Tt(H)), (H)=>{
                const I = u(H);
                return t.multiple ? I : I[0] ?? null;
            }), d = T(()=>typeof t.counterValue == "function" ? t.counterValue(c.value) : typeof t.counterValue == "number" ? t.counterValue : c.value.length), h = Vo(t), m = T(()=>c.value.map((H)=>H.value)), f = de(!1);
            let p = "", g;
            const v = T(()=>t.hideSelected ? s.value.filter((H)=>!c.value.some((I)=>(t.valueComparator || Aa)(I, H))) : s.value), b = T(()=>t.hideNoData && !v.value.length || h.isReadonly.value || h.isDisabled.value), k = Be(t, "menu"), S = T({
                get: ()=>k.value,
                set: (H)=>{
                    k.value && !H && i.value?.ΨopenChildren.size || H && b.value || (k.value = H);
                }
            }), x = T(()=>S.value ? t.closeText : t.openText), C = T(()=>({
                    ...t.menuProps,
                    activatorProps: {
                        ...t.menuProps?.activatorProps || {},
                        "aria-haspopup": "listbox"
                    }
                })), w = W(), F = ef(w, n);
            function D(H) {
                t.openOnClear && (S.value = !0);
            }
            function _() {
                b.value || (S.value = !S.value);
            }
            function A(H) {
                wi(H) && E(H);
            }
            function E(H) {
                if (!H.key || h.isReadonly.value) return;
                [
                    "Enter",
                    " ",
                    "ArrowDown",
                    "ArrowUp",
                    "Home",
                    "End"
                ].includes(H.key) && H.preventDefault(), [
                    "Enter",
                    "ArrowDown",
                    " "
                ].includes(H.key) && (S.value = !0), [
                    "Escape",
                    "Tab"
                ].includes(H.key) && (S.value = !1), H.key === "Home" ? w.value?.focus("first") : H.key === "End" && w.value?.focus("last");
                const I = 1e3;
                if (!wi(H)) return;
                const L = performance.now();
                L - g > I && (p = ""), p += H.key.toLowerCase(), g = L;
                const G = s.value.find((q)=>q.title.toLowerCase().startsWith(p));
                if (G !== void 0) {
                    c.value = [
                        G
                    ];
                    const q = v.value.indexOf(G);
                    Yt && window.requestAnimationFrame(()=>{
                        q >= 0 && o.value?.scrollToIndex(q);
                    });
                }
            }
            function B(H) {
                let I = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
                if (!H.props.disabled) if (t.multiple) {
                    const L = c.value.findIndex((q)=>(t.valueComparator || Aa)(q.value, H.value)), G = I ?? !~L;
                    if (~L) {
                        const q = G ? [
                            ...c.value,
                            H
                        ] : [
                            ...c.value
                        ];
                        q.splice(L, 1), c.value = q;
                    } else G && (c.value = [
                        ...c.value,
                        H
                    ]);
                } else {
                    const L = I !== !1;
                    c.value = L ? [
                        H
                    ] : [], at(()=>{
                        S.value = !1;
                    });
                }
            }
            function P(H) {
                w.value?.$el.contains(H.relatedTarget) || (S.value = !1);
            }
            function M() {
                t.eager && o.value?.calculateVisibleItems();
            }
            function R() {
                f.value && n.value?.focus();
            }
            function z(H) {
                f.value = !0;
            }
            function N(H) {
                if (H == null) c.value = [];
                else if (xi(n.value, ":autofill") || xi(n.value, ":-webkit-autofill")) {
                    const I = s.value.find((L)=>L.title === H);
                    I && B(I);
                } else n.value && (n.value.value = "");
            }
            return me(S, ()=>{
                if (!t.hideSelected && S.value && c.value.length) {
                    const H = v.value.findIndex((I)=>c.value.some((L)=>(t.valueComparator || Aa)(L.value, I.value)));
                    Yt && window.requestAnimationFrame(()=>{
                        H >= 0 && o.value?.scrollToIndex(H);
                    });
                }
            }), me(()=>t.items, (H, I)=>{
                S.value || f.value && !I.length && H.length && (S.value = !0);
            }), ie(()=>{
                const H = !!(t.chips || a.chip), I = !!(!t.hideNoData || v.value.length || a["prepend-item"] || a["append-item"] || a["no-data"]), L = c.value.length > 0, G = ya.filterProps(t), q = L || !f.value && t.label && !t.persistentPlaceholder ? void 0 : t.placeholder;
                return y(ya, Z({
                    ref: n
                }, G, {
                    modelValue: c.value.map((X)=>X.props.value).join(", "),
                    "onUpdate:modelValue": N,
                    focused: f.value,
                    "onUpdate:focused": (X)=>f.value = X,
                    validationValue: c.externalValue,
                    counterValue: d.value,
                    dirty: L,
                    class: [
                        "v-select",
                        {
                            "v-select--active-menu": S.value,
                            "v-select--chips": !!t.chips,
                            [`v-select--${t.multiple ? "multiple" : "single"}`]: !0,
                            "v-select--selected": c.value.length,
                            "v-select--selection-slot": !!a.selection
                        },
                        t.class
                    ],
                    style: t.style,
                    inputmode: "none",
                    placeholder: q,
                    "onClick:clear": D,
                    "onMousedown:control": _,
                    onBlur: P,
                    onKeydown: E,
                    "aria-label": r(x.value),
                    title: r(x.value)
                }), {
                    ...a,
                    default: ()=>y(Ce, null, [
                            y(Jr, Z({
                                ref: i,
                                modelValue: S.value,
                                "onUpdate:modelValue": (X)=>S.value = X,
                                activator: "parent",
                                contentClass: "v-select__content",
                                disabled: b.value,
                                eager: t.eager,
                                maxHeight: 310,
                                openOnClick: !1,
                                closeOnContentClick: !1,
                                transition: t.transition,
                                onAfterEnter: M,
                                onAfterLeave: R
                            }, C.value), {
                                default: ()=>[
                                        I && y(Qn, Z({
                                            ref: w,
                                            selected: m.value,
                                            selectStrategy: t.multiple ? "independent" : "single-independent",
                                            onMousedown: (X)=>X.preventDefault(),
                                            onKeydown: A,
                                            onFocusin: z,
                                            tabindex: "-1",
                                            "aria-live": "polite",
                                            color: t.itemColor ?? t.color
                                        }, F, t.listProps), {
                                            default: ()=>[
                                                    a["prepend-item"]?.(),
                                                    !v.value.length && !t.hideNoData && (a["no-data"]?.() ?? y(tt, {
                                                        key: "no-data",
                                                        title: r(t.noDataText)
                                                    }, null)),
                                                    y(Ll, {
                                                        ref: o,
                                                        renderless: !0,
                                                        items: v.value,
                                                        itemKey: "value"
                                                    }, {
                                                        default: (X)=>{
                                                            let { item: ue, index: J, itemRef: U } = X;
                                                            const le = Z(ue.props, {
                                                                ref: U,
                                                                key: ue.value,
                                                                onClick: ()=>B(ue, null)
                                                            });
                                                            return a.item?.({
                                                                item: ue,
                                                                index: J,
                                                                props: le
                                                            }) ?? y(tt, Z(le, {
                                                                role: "option"
                                                            }), {
                                                                prepend: (fe)=>{
                                                                    let { isSelected: ee } = fe;
                                                                    return y(Ce, null, [
                                                                        t.multiple && !t.hideSelected ? y(Pr, {
                                                                            key: ue.value,
                                                                            modelValue: ee,
                                                                            ripple: !1,
                                                                            tabindex: "-1"
                                                                        }, null) : void 0,
                                                                        ue.props.prependAvatar && y(ir, {
                                                                            image: ue.props.prependAvatar
                                                                        }, null),
                                                                        ue.props.prependIcon && y(_e, {
                                                                            icon: ue.props.prependIcon
                                                                        }, null)
                                                                    ]);
                                                                }
                                                            });
                                                        }
                                                    }),
                                                    a["append-item"]?.()
                                                ]
                                        })
                                    ]
                            }),
                            c.value.map((X, ue)=>{
                                function J(ee) {
                                    ee.stopPropagation(), ee.preventDefault(), B(X, !1);
                                }
                                const U = {
                                    "onClick:close": J,
                                    onKeydown (ee) {
                                        ee.key !== "Enter" && ee.key !== " " || (ee.preventDefault(), ee.stopPropagation(), J(ee));
                                    },
                                    onMousedown (ee) {
                                        ee.preventDefault(), ee.stopPropagation();
                                    },
                                    modelValue: !0,
                                    "onUpdate:modelValue": void 0
                                }, le = H ? !!a.chip : !!a.selection, fe = le ? ym(H ? a.chip({
                                    item: X,
                                    index: ue,
                                    props: U
                                }) : a.selection({
                                    item: X,
                                    index: ue
                                })) : void 0;
                                if (!(le && !fe)) return y("div", {
                                    key: X.value,
                                    class: "v-select__selection"
                                }, [
                                    H ? a.chip ? y(Ge, {
                                        key: "chip-defaults",
                                        defaults: {
                                            VChip: {
                                                closable: t.closableChips,
                                                size: "small",
                                                text: X.title
                                            }
                                        }
                                    }, {
                                        default: ()=>[
                                                fe
                                            ]
                                    }) : y(oa, Z({
                                        key: "chip",
                                        closable: t.closableChips,
                                        size: "small",
                                        text: X.title,
                                        disabled: X.props.disabled
                                    }, U), null) : fe ?? y("span", {
                                        class: "v-select__selection-text"
                                    }, [
                                        X.title,
                                        t.multiple && ue < c.value.length - 1 && y("span", {
                                            class: "v-select__selection-comma"
                                        }, [
                                            Pe(",")
                                        ])
                                    ])
                                ]);
                            })
                        ]),
                    "append-inner": function() {
                        for(var X = arguments.length, ue = new Array(X), J = 0; J < X; J++)ue[J] = arguments[J];
                        return y(Ce, null, [
                            a["append-inner"]?.(...ue),
                            t.menuIcon ? y(_e, {
                                class: "v-select__menu-icon",
                                color: n.value?.fieldIconColor,
                                icon: t.menuIcon
                            }, null) : void 0
                        ]);
                    }
                });
            }), Za({
                isFocused: f,
                menu: S,
                select: B
            }, n);
        }
    });
    G3 = (t, e, a)=>{
        if (t == null || e == null) return -1;
        if (!e.length) return 0;
        t = t.toString().toLocaleLowerCase(), e = e.toString().toLocaleLowerCase();
        const r = [];
        let n = t.indexOf(e);
        for(; ~n;)r.push([
            n,
            n + e.length
        ]), n = t.indexOf(e, n + e.length);
        return r.length ? r : -1;
    };
    function Cd(t, e) {
        if (!(t == null || typeof t == "boolean" || t === -1)) return typeof t == "number" ? [
            [
                t,
                t + e.length
            ]
        ] : Array.isArray(t[0]) ? t : [
            t
        ];
    }
    const Ko = $({
        customFilter: Function,
        customKeyFilter: Object,
        filterKeys: [
            Array,
            String
        ],
        filterMode: {
            type: String,
            default: "intersection"
        },
        noFilter: Boolean
    }, "filter");
    function $3(t, e, a) {
        const r = [], n = a?.default ?? G3, i = a?.filterKeys ? Tt(a.filterKeys) : !1, o = Object.keys(a?.customKeyFilter ?? {}).length;
        if (!t?.length) return r;
        e: for(let s = 0; s < t.length; s++){
            const [l, u = l] = Tt(t[s]), c = {}, d = {};
            let h = -1;
            if ((e || o > 0) && !a?.noFilter) {
                if (typeof l == "object") {
                    const p = i || Object.keys(u);
                    for (const g of p){
                        const v = $t(u, g), b = a?.customKeyFilter?.[g];
                        if (h = b ? b(v, e, l) : n(v, e, l), h !== -1 && h !== !1) b ? c[g] = Cd(h, e) : d[g] = Cd(h, e);
                        else if (a?.filterMode === "every") continue e;
                    }
                } else h = n(l, e, l), h !== -1 && h !== !1 && (d.title = Cd(h, e));
                const m = Object.keys(d).length, f = Object.keys(c).length;
                if (!m && !f || a?.filterMode === "union" && f !== o && !m || a?.filterMode === "intersection" && (f !== o || !m)) continue;
            }
            r.push({
                index: s,
                matches: {
                    ...d,
                    ...c
                }
            });
        }
        return r;
    }
    function Xo(t, e, a, r) {
        const n = de([]), i = de(new Map), o = T(()=>r?.transform ? Y(e).map((l)=>[
                    l,
                    r.transform(l)
                ]) : Y(e));
        Lt(()=>{
            const l = typeof a == "function" ? a() : Y(a), u = typeof l != "string" && typeof l != "number" ? "" : String(l), c = $3(o.value, u, {
                customKeyFilter: {
                    ...t.customKeyFilter,
                    ...Y(r?.customKeyFilter)
                },
                default: t.customFilter,
                filterKeys: t.filterKeys,
                filterMode: t.filterMode,
                noFilter: t.noFilter
            }), d = Y(e), h = [], m = new Map;
            c.forEach((f)=>{
                let { index: p, matches: g } = f;
                const v = d[p];
                h.push(v), m.set(v.value, g);
            }), n.value = h, i.value = m;
        });
        function s(l) {
            return i.value.get(l.value);
        }
        return {
            filteredItems: n,
            filteredMatches: i,
            getMatches: s
        };
    }
    function z0(t, e, a) {
        return a == null || !a.length ? e : a.map((r, n)=>{
            const i = n === 0 ? 0 : a[n - 1][1], o = [
                y("span", {
                    class: `${t}__unmask`
                }, [
                    e.slice(i, r[0])
                ]),
                y("span", {
                    class: `${t}__mask`
                }, [
                    e.slice(r[0], r[1])
                ])
            ];
            return n === a.length - 1 && o.push(y("span", {
                class: `${t}__unmask`
            }, [
                e.slice(r[1])
            ])), y(Ce, null, [
                o
            ]);
        });
    }
    let U3, Fo, N0, O0, H0, j3, Y3, q3, G0, $0, U0, Xv;
    U3 = $({
        autoSelectFirst: {
            type: [
                Boolean,
                String
            ]
        },
        clearOnSelect: {
            type: Boolean,
            default: !0
        },
        delimiters: Array,
        ...Ko({
            filterKeys: [
                "title"
            ]
        }),
        ...tf({
            hideNoData: !0,
            returnObject: !0
        }),
        ...It(qo({
            modelValue: null,
            role: "combobox"
        }), [
            "validationValue",
            "dirty",
            "appendInnerIcon"
        ]),
        ...fr({
            transition: !1
        })
    }, "VCombobox");
    Ys = te()({
        name: "VCombobox",
        props: U3(),
        emits: {
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0,
            "update:search": (t)=>!0,
            "update:menu": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const { t: n } = zt(), i = W(), o = de(!1), s = de(!0), l = de(!1), u = W(), c = W(), d = de(-1);
            let h = !1;
            const m = T(()=>i.value?.color), { items: f, transformIn: p, transformOut: g } = Km(t), { textColorClasses: v, textColorStyles: b } = ha(m), k = Be(t, "modelValue", [], (se)=>p(Tt(se)), (se)=>{
                const pe = g(se);
                return t.multiple ? pe : pe[0] ?? null;
            }), S = Vo(t), x = T(()=>!!(t.chips || r.chip)), C = T(()=>x.value || !!r.selection), w = de(!t.multiple && !C.value ? k.value[0]?.title ?? "" : ""), F = T({
                get: ()=>w.value,
                set: (se)=>{
                    if (w.value = se ?? "", !t.multiple && !C.value && (k.value = [
                        Wr(t, se)
                    ]), se && t.multiple && t.delimiters?.length) {
                        const pe = se.split(new RegExp(`(?:${t.delimiters.join("|")})+`));
                        pe.length > 1 && (pe.forEach((ke)=>{
                            ke = ke.trim(), ke && le(Wr(t, ke));
                        }), w.value = "");
                    }
                    se || (d.value = -1), s.value = !se;
                }
            }), D = T(()=>typeof t.counterValue == "function" ? t.counterValue(k.value) : typeof t.counterValue == "number" ? t.counterValue : t.multiple ? k.value.length : F.value.length), { filteredItems: _, getMatches: A } = Xo(t, f, ()=>s.value ? "" : F.value), E = T(()=>t.hideSelected ? _.value.filter((se)=>!k.value.some((pe)=>pe.value === se.value)) : _.value), B = T(()=>t.hideNoData && !E.value.length || S.isReadonly.value || S.isDisabled.value), P = Be(t, "menu"), M = T({
                get: ()=>P.value,
                set: (se)=>{
                    P.value && !se && u.value?.ΨopenChildren.size || se && B.value || (P.value = se);
                }
            }), R = T(()=>M.value ? t.closeText : t.openText);
            me(w, (se)=>{
                h ? at(()=>h = !1) : o.value && !M.value && (M.value = !0), a("update:search", se);
            }), me(k, (se)=>{
                !t.multiple && !C.value && (w.value = se[0]?.title ?? "");
            });
            const z = T(()=>k.value.map((se)=>se.value)), N = T(()=>(t.autoSelectFirst === !0 || t.autoSelectFirst === "exact" && F.value === E.value[0]?.title) && E.value.length > 0 && !s.value && !l.value), H = W(), I = ef(H, i);
            function L(se) {
                h = !0, t.openOnClear && (M.value = !0);
            }
            function G() {
                B.value || (M.value = !0);
            }
            function q(se) {
                B.value || (o.value && (se.preventDefault(), se.stopPropagation()), M.value = !M.value);
            }
            function X(se) {
                se.key !== " " && wi(se) && i.value?.focus();
            }
            function ue(se) {
                if (nw(se) || S.isReadonly.value) return;
                const pe = i.value?.selectionStart, ke = k.value.length;
                if ([
                    "Enter",
                    "ArrowDown",
                    "ArrowUp"
                ].includes(se.key) && se.preventDefault(), [
                    "Enter",
                    "ArrowDown"
                ].includes(se.key) && (M.value = !0), [
                    "Escape"
                ].includes(se.key) && (M.value = !1), [
                    "Enter",
                    "Escape",
                    "Tab"
                ].includes(se.key) && (N.value && [
                    "Enter",
                    "Tab"
                ].includes(se.key) && !k.value.some((be)=>{
                    let { value: ne } = be;
                    return ne === E.value[0].value;
                }) && le(_.value[0]), s.value = !0), se.key === "ArrowDown" && N.value && H.value?.focus("next"), se.key === "Enter" && F.value && (le(Wr(t, F.value)), C.value && (w.value = "")), [
                    "Backspace",
                    "Delete"
                ].includes(se.key)) {
                    if (!t.multiple && C.value && k.value.length > 0 && !F.value) return le(k.value[0], !1);
                    if (~d.value) {
                        se.preventDefault();
                        const be = d.value;
                        le(k.value[d.value], !1), d.value = be >= ke - 1 ? ke - 2 : be;
                    } else se.key === "Backspace" && !F.value && (d.value = ke - 1);
                    return;
                }
                if (t.multiple) if (se.key === "ArrowLeft") {
                    if (d.value < 0 && pe && pe > 0) return;
                    const be = d.value > -1 ? d.value - 1 : ke - 1;
                    k.value[be] ? d.value = be : (d.value = -1, i.value?.setSelectionRange(F.value.length, F.value.length));
                } else if (se.key === "ArrowRight") {
                    if (d.value < 0) return;
                    const be = d.value + 1;
                    k.value[be] ? d.value = be : (d.value = -1, i.value?.setSelectionRange(0, 0));
                } else ~d.value && wi(se) && (d.value = -1);
            }
            function J() {
                t.eager && c.value?.calculateVisibleItems();
            }
            function U() {
                o.value && (s.value = !0, i.value?.focus());
            }
            function le(se) {
                let pe = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
                if (!(!se || se.props.disabled)) if (t.multiple) {
                    const ke = k.value.findIndex((ne)=>(t.valueComparator || Aa)(ne.value, se.value)), be = pe ?? !~ke;
                    if (~ke) {
                        const ne = be ? [
                            ...k.value,
                            se
                        ] : [
                            ...k.value
                        ];
                        ne.splice(ke, 1), k.value = ne;
                    } else be && (k.value = [
                        ...k.value,
                        se
                    ]);
                    t.clearOnSelect && (F.value = "");
                } else {
                    const ke = pe !== !1;
                    k.value = ke ? [
                        se
                    ] : [], w.value = ke && !C.value ? se.title : "", at(()=>{
                        M.value = !1, s.value = !0;
                    });
                }
            }
            function fe(se) {
                o.value = !0, setTimeout(()=>{
                    l.value = !0;
                });
            }
            function ee(se) {
                l.value = !1;
            }
            function ae(se) {
                (se == null || se === "" && !t.multiple && !C.value) && (k.value = []);
            }
            return me(o, (se, pe)=>{
                if (!(se || se === pe) && (d.value = -1, M.value = !1, F.value)) {
                    if (t.multiple) {
                        le(Wr(t, F.value));
                        return;
                    }
                    if (!C.value) return;
                    k.value.some((ke)=>{
                        let { title: be } = ke;
                        return be === F.value;
                    }) ? w.value = "" : le(Wr(t, F.value));
                }
            }), me(M, ()=>{
                if (!t.hideSelected && M.value && k.value.length) {
                    const se = E.value.findIndex((pe)=>k.value.some((ke)=>(t.valueComparator || Aa)(ke.value, pe.value)));
                    Yt && window.requestAnimationFrame(()=>{
                        se >= 0 && c.value?.scrollToIndex(se);
                    });
                }
            }), me(()=>t.items, (se, pe)=>{
                M.value || o.value && !pe.length && se.length && (M.value = !0);
            }), ie(()=>{
                const se = !!(!t.hideNoData || E.value.length || r["prepend-item"] || r["append-item"] || r["no-data"]), pe = k.value.length > 0, ke = ya.filterProps(t);
                return y(ya, Z({
                    ref: i
                }, ke, {
                    modelValue: F.value,
                    "onUpdate:modelValue": [
                        (be)=>F.value = be,
                        ae
                    ],
                    focused: o.value,
                    "onUpdate:focused": (be)=>o.value = be,
                    validationValue: k.externalValue,
                    counterValue: D.value,
                    dirty: pe,
                    class: [
                        "v-combobox",
                        {
                            "v-combobox--active-menu": M.value,
                            "v-combobox--chips": !!t.chips,
                            "v-combobox--selection-slot": !!C.value,
                            "v-combobox--selecting-index": d.value > -1,
                            [`v-combobox--${t.multiple ? "multiple" : "single"}`]: !0
                        },
                        t.class
                    ],
                    style: t.style,
                    readonly: S.isReadonly.value,
                    placeholder: pe ? void 0 : t.placeholder,
                    "onClick:clear": L,
                    "onMousedown:control": G,
                    onKeydown: ue
                }), {
                    ...r,
                    default: ()=>y(Ce, null, [
                            y(Jr, Z({
                                ref: u,
                                modelValue: M.value,
                                "onUpdate:modelValue": (be)=>M.value = be,
                                activator: "parent",
                                contentClass: "v-combobox__content",
                                disabled: B.value,
                                eager: t.eager,
                                maxHeight: 310,
                                openOnClick: !1,
                                closeOnContentClick: !1,
                                transition: t.transition,
                                onAfterEnter: J,
                                onAfterLeave: U
                            }, t.menuProps), {
                                default: ()=>[
                                        se && y(Qn, Z({
                                            ref: H,
                                            selected: z.value,
                                            selectStrategy: t.multiple ? "independent" : "single-independent",
                                            onMousedown: (be)=>be.preventDefault(),
                                            onKeydown: X,
                                            onFocusin: fe,
                                            onFocusout: ee,
                                            tabindex: "-1",
                                            "aria-live": "polite",
                                            color: t.itemColor ?? t.color
                                        }, I, t.listProps), {
                                            default: ()=>[
                                                    r["prepend-item"]?.(),
                                                    !E.value.length && !t.hideNoData && (r["no-data"]?.() ?? y(tt, {
                                                        key: "no-data",
                                                        title: n(t.noDataText)
                                                    }, null)),
                                                    y(Ll, {
                                                        ref: c,
                                                        renderless: !0,
                                                        items: E.value,
                                                        itemKey: "value"
                                                    }, {
                                                        default: (be)=>{
                                                            let { item: ne, index: ge, itemRef: Ve } = be;
                                                            const $e = Z(ne.props, {
                                                                ref: Ve,
                                                                key: ne.value,
                                                                active: N.value && ge === 0 ? !0 : void 0,
                                                                onClick: ()=>le(ne, null)
                                                            });
                                                            return r.item?.({
                                                                item: ne,
                                                                index: ge,
                                                                props: $e
                                                            }) ?? y(tt, Z($e, {
                                                                role: "option"
                                                            }), {
                                                                prepend: (lt)=>{
                                                                    let { isSelected: bt } = lt;
                                                                    return y(Ce, null, [
                                                                        t.multiple && !t.hideSelected ? y(Pr, {
                                                                            key: ne.value,
                                                                            modelValue: bt,
                                                                            ripple: !1,
                                                                            tabindex: "-1"
                                                                        }, null) : void 0,
                                                                        ne.props.prependAvatar && y(ir, {
                                                                            image: ne.props.prependAvatar
                                                                        }, null),
                                                                        ne.props.prependIcon && y(_e, {
                                                                            icon: ne.props.prependIcon
                                                                        }, null)
                                                                    ]);
                                                                },
                                                                title: ()=>s.value ? ne.title : z0("v-combobox", ne.title, A(ne)?.title)
                                                            });
                                                        }
                                                    }),
                                                    r["append-item"]?.()
                                                ]
                                        })
                                    ]
                            }),
                            k.value.map((be, ne)=>{
                                function ge(bt) {
                                    bt.stopPropagation(), bt.preventDefault(), le(be, !1);
                                }
                                const Ve = {
                                    "onClick:close": ge,
                                    onKeydown (bt) {
                                        bt.key !== "Enter" && bt.key !== " " || (bt.preventDefault(), bt.stopPropagation(), ge(bt));
                                    },
                                    onMousedown (bt) {
                                        bt.preventDefault(), bt.stopPropagation();
                                    },
                                    modelValue: !0,
                                    "onUpdate:modelValue": void 0
                                }, $e = x.value ? !!r.chip : !!r.selection, lt = $e ? ym(x.value ? r.chip({
                                    item: be,
                                    index: ne,
                                    props: Ve
                                }) : r.selection({
                                    item: be,
                                    index: ne
                                })) : void 0;
                                if (!($e && !lt)) return y("div", {
                                    key: be.value,
                                    class: [
                                        "v-combobox__selection",
                                        ne === d.value && [
                                            "v-combobox__selection--selected",
                                            v.value
                                        ]
                                    ],
                                    style: ne === d.value ? b.value : {}
                                }, [
                                    x.value ? r.chip ? y(Ge, {
                                        key: "chip-defaults",
                                        defaults: {
                                            VChip: {
                                                closable: t.closableChips,
                                                size: "small",
                                                text: be.title
                                            }
                                        }
                                    }, {
                                        default: ()=>[
                                                lt
                                            ]
                                    }) : y(oa, Z({
                                        key: "chip",
                                        closable: t.closableChips,
                                        size: "small",
                                        text: be.title,
                                        disabled: be.props.disabled
                                    }, Ve), null) : lt ?? y("span", {
                                        class: "v-combobox__selection-text"
                                    }, [
                                        be.title,
                                        t.multiple && ne < k.value.length - 1 && y("span", {
                                            class: "v-combobox__selection-comma"
                                        }, [
                                            Pe(",")
                                        ])
                                    ])
                                ]);
                            })
                        ]),
                    "append-inner": function() {
                        for(var be = arguments.length, ne = new Array(be), ge = 0; ge < be; ge++)ne[ge] = arguments[ge];
                        return y(Ce, null, [
                            r["append-inner"]?.(...ne),
                            (!t.hideNoData || t.items.length) && t.menuIcon ? y(_e, {
                                class: "v-combobox__menu-icon",
                                color: i.value?.fieldIconColor,
                                icon: t.menuIcon,
                                onMousedown: q,
                                onClick: Gy,
                                "aria-label": n(R.value),
                                title: n(R.value),
                                tabindex: "-1"
                            }, null) : void 0
                        ]);
                    }
                });
            }), Za({
                isFocused: o,
                isPristine: s,
                menu: M,
                search: F,
                selectionIndex: d,
                filteredItems: _,
                select: le
            }, i);
        }
    });
    Dh = Ft({
        __name: "HistoryField",
        props: lo({
            historyKey: {}
        }, {
            modelValue: {
                required: !0
            },
            modelModifiers: {}
        }),
        emits: [
            "update:modelValue"
        ],
        setup (t, { expose: e }) {
            const a = t, r = uo(t, "modelValue"), n = ZB(), i = W(), o = T(()=>n.getHistory(a.historyKey));
            function s() {
                n.pushValueToHistory(a.historyKey, r.value ?? "");
            }
            return e({
                saveValueToHistory: s,
                focus: ()=>i.value?.focus()
            }), (l, u)=>(ve(), ze(Ys, {
                    modelValue: r.value,
                    "onUpdate:modelValue": u[0] || (u[0] = (c)=>r.value = c),
                    ref_key: "field",
                    ref: i,
                    items: o.value
                }, _x({
                    _: 2
                }, [
                    l.$slots.prepend ? {
                        name: "prepend",
                        fn: O(()=>[
                                zy(l.$slots, "prepend")
                            ]),
                        key: "0"
                    } : void 0
                ]), 1032, [
                    "modelValue",
                    "items"
                ]));
        }
    });
    Fo = Symbol.for("vuetify:v-expansion-panel");
    N0 = $({
        ...we(),
        ...Zm()
    }, "VExpansionPanelText");
    qs = te()({
        name: "VExpansionPanelText",
        props: N0(),
        setup (t, e) {
            let { slots: a } = e;
            const r = Et(Fo);
            if (!r) throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");
            const { hasContent: n, onAfterLeave: i } = Qm(t, r.isSelected);
            return ie(()=>y(_l, {
                    onAfterLeave: i
                }, {
                    default: ()=>[
                            mt(y("div", {
                                class: [
                                    "v-expansion-panel-text",
                                    t.class
                                ],
                                style: t.style
                            }, [
                                a.default && n.value && y("div", {
                                    class: "v-expansion-panel-text__wrapper"
                                }, [
                                    a.default?.()
                                ])
                            ]), [
                                [
                                    Ca,
                                    r.isSelected.value
                                ]
                            ])
                        ]
                })), {};
        }
    });
    O0 = $({
        color: String,
        expandIcon: {
            type: Me,
            default: "$expand"
        },
        collapseIcon: {
            type: Me,
            default: "$collapse"
        },
        hideActions: Boolean,
        focusable: Boolean,
        static: Boolean,
        ripple: {
            type: [
                Boolean,
                Object
            ],
            default: !1
        },
        readonly: Boolean,
        ...we(),
        ...Ut()
    }, "VExpansionPanelTitle");
    Th = te()({
        name: "VExpansionPanelTitle",
        directives: {
            Ripple: Lr
        },
        props: O0(),
        setup (t, e) {
            let { slots: a } = e;
            const r = Et(Fo);
            if (!r) throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");
            const { backgroundColorClasses: n, backgroundColorStyles: i } = ft(t, "color"), { dimensionStyles: o } = jt(t), s = T(()=>({
                    collapseIcon: t.collapseIcon,
                    disabled: r.disabled.value,
                    expanded: r.isSelected.value,
                    expandIcon: t.expandIcon,
                    readonly: t.readonly
                })), l = T(()=>r.isSelected.value ? t.collapseIcon : t.expandIcon);
            return ie(()=>mt(y("button", {
                    class: [
                        "v-expansion-panel-title",
                        {
                            "v-expansion-panel-title--active": r.isSelected.value,
                            "v-expansion-panel-title--focusable": t.focusable,
                            "v-expansion-panel-title--static": t.static
                        },
                        n.value,
                        t.class
                    ],
                    style: [
                        i.value,
                        o.value,
                        t.style
                    ],
                    type: "button",
                    tabindex: r.disabled.value ? -1 : void 0,
                    disabled: r.disabled.value,
                    "aria-expanded": r.isSelected.value,
                    onClick: t.readonly ? void 0 : r.toggle
                }, [
                    y("span", {
                        class: "v-expansion-panel-title__overlay"
                    }, null),
                    a.default?.(s.value),
                    !t.hideActions && y(Ge, {
                        defaults: {
                            VIcon: {
                                icon: l.value
                            }
                        }
                    }, {
                        default: ()=>[
                                y("span", {
                                    class: "v-expansion-panel-title__icon"
                                }, [
                                    a.actions?.(s.value) ?? y(_e, null, null)
                                ])
                            ]
                    })
                ]), [
                    [
                        qa("ripple"),
                        t.ripple
                    ]
                ])), {};
        }
    });
    H0 = $({
        title: String,
        text: String,
        bgColor: String,
        ...Jt(),
        ...Xn(),
        ...Ct(),
        ...We(),
        ...O0(),
        ...N0()
    }, "VExpansionPanel");
    V0 = te()({
        name: "VExpansionPanel",
        props: H0(),
        emits: {
            "group:selected": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Jn(t, Fo), { backgroundColorClasses: n, backgroundColorStyles: i } = ft(t, "bgColor"), { elevationClasses: o } = na(t), { roundedClasses: s } = Mt(t), l = T(()=>r?.disabled.value || t.disabled), u = T(()=>r.group.items.value.reduce((h, m, f)=>(r.group.selected.value.includes(m.id) && h.push(f), h), [])), c = T(()=>{
                const h = r.group.items.value.findIndex((m)=>m.id === r.id);
                return !r.isSelected.value && u.value.some((m)=>m - h === 1);
            }), d = T(()=>{
                const h = r.group.items.value.findIndex((m)=>m.id === r.id);
                return !r.isSelected.value && u.value.some((m)=>m - h === -1);
            });
            return Kt(Fo, r), ie(()=>{
                const h = !!(a.text || t.text), m = !!(a.title || t.title), f = Th.filterProps(t), p = qs.filterProps(t);
                return y(t.tag, {
                    class: [
                        "v-expansion-panel",
                        {
                            "v-expansion-panel--active": r.isSelected.value,
                            "v-expansion-panel--before-active": c.value,
                            "v-expansion-panel--after-active": d.value,
                            "v-expansion-panel--disabled": l.value
                        },
                        s.value,
                        n.value,
                        t.class
                    ],
                    style: [
                        i.value,
                        t.style
                    ]
                }, {
                    default: ()=>[
                            y("div", {
                                class: [
                                    "v-expansion-panel__shadow",
                                    ...o.value
                                ]
                            }, null),
                            y(Ge, {
                                defaults: {
                                    VExpansionPanelTitle: {
                                        ...f
                                    },
                                    VExpansionPanelText: {
                                        ...p
                                    }
                                }
                            }, {
                                default: ()=>[
                                        m && y(Th, {
                                            key: "title"
                                        }, {
                                            default: ()=>[
                                                    a.title ? a.title() : t.title
                                                ]
                                        }),
                                        h && y(qs, {
                                            key: "text"
                                        }, {
                                            default: ()=>[
                                                    a.text ? a.text() : t.text
                                                ]
                                        }),
                                        a.default?.()
                                    ]
                            })
                        ]
                });
            }), {
                groupItem: r
            };
        }
    });
    j3 = [
        "default",
        "accordion",
        "inset",
        "popout"
    ];
    Y3 = $({
        flat: Boolean,
        ...Kn(),
        ...Hn(H0(), [
            "bgColor",
            "collapseIcon",
            "color",
            "eager",
            "elevation",
            "expandIcon",
            "focusable",
            "hideActions",
            "readonly",
            "ripple",
            "rounded",
            "tile",
            "static"
        ]),
        ...Qe(),
        ...we(),
        ...We(),
        variant: {
            type: String,
            default: "default",
            validator: (t)=>j3.includes(t)
        }
    }, "VExpansionPanels");
    W0 = te()({
        name: "VExpansionPanels",
        props: Y3(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { next: r, prev: n } = ln(t, Fo), { themeClasses: i } = ut(t), o = T(()=>t.variant && `v-expansion-panels--variant-${t.variant}`);
            return Bt({
                VExpansionPanel: {
                    bgColor: K(t, "bgColor"),
                    collapseIcon: K(t, "collapseIcon"),
                    color: K(t, "color"),
                    eager: K(t, "eager"),
                    elevation: K(t, "elevation"),
                    expandIcon: K(t, "expandIcon"),
                    focusable: K(t, "focusable"),
                    hideActions: K(t, "hideActions"),
                    readonly: K(t, "readonly"),
                    ripple: K(t, "ripple"),
                    rounded: K(t, "rounded"),
                    static: K(t, "static")
                }
            }), ie(()=>y(t.tag, {
                    class: [
                        "v-expansion-panels",
                        {
                            "v-expansion-panels--flat": t.flat,
                            "v-expansion-panels--tile": t.tile
                        },
                        i.value,
                        o.value,
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            a.default?.({
                                prev: n,
                                next: r
                            })
                        ]
                })), {
                next: r,
                prev: n
            };
        }
    });
    q3 = $({
        fluid: {
            type: Boolean,
            default: !1
        },
        ...we(),
        ...Ut(),
        ...We()
    }, "VContainer");
    K3 = te()({
        name: "VContainer",
        props: q3(),
        setup (t, e) {
            let { slots: a } = e;
            const { rtlClasses: r } = Xt(), { dimensionStyles: n } = jt(t);
            return ie(()=>y(t.tag, {
                    class: [
                        "v-container",
                        {
                            "v-container--fluid": t.fluid
                        },
                        r.value,
                        t.class
                    ],
                    style: [
                        n.value,
                        t.style
                    ]
                }, a)), {};
        }
    });
    G0 = cl.reduce((t, e)=>(t[e] = {
            type: [
                Boolean,
                String,
                Number
            ],
            default: !1
        }, t), {});
    $0 = cl.reduce((t, e)=>{
        const a = "offset" + sl(e);
        return t[a] = {
            type: [
                String,
                Number
            ],
            default: null
        }, t;
    }, {});
    U0 = cl.reduce((t, e)=>{
        const a = "order" + sl(e);
        return t[a] = {
            type: [
                String,
                Number
            ],
            default: null
        }, t;
    }, {});
    Xv = {
        col: Object.keys(G0),
        offset: Object.keys($0),
        order: Object.keys(U0)
    };
    function X3(t, e, a) {
        let r = t;
        if (!(a == null || a === !1)) {
            if (e) {
                const n = e.replace(t, "");
                r += `-${n}`;
            }
            return t === "col" && (r = "v-" + r), t === "col" && (a === "" || a === !0) || (r += `-${a}`), r.toLowerCase();
        }
    }
    let J3, Z3, af, j0;
    J3 = [
        "auto",
        "start",
        "end",
        "center",
        "baseline",
        "stretch"
    ];
    Z3 = $({
        cols: {
            type: [
                Boolean,
                String,
                Number
            ],
            default: !1
        },
        ...G0,
        offset: {
            type: [
                String,
                Number
            ],
            default: null
        },
        ...$0,
        order: {
            type: [
                String,
                Number
            ],
            default: null
        },
        ...U0,
        alignSelf: {
            type: String,
            default: null,
            validator: (t)=>J3.includes(t)
        },
        ...we(),
        ...We()
    }, "VCol");
    qe = te()({
        name: "VCol",
        props: Z3(),
        setup (t, e) {
            let { slots: a } = e;
            const r = T(()=>{
                const n = [];
                let i;
                for(i in Xv)Xv[i].forEach((s)=>{
                    const l = t[s], u = X3(i, s, l);
                    u && n.push(u);
                });
                const o = n.some((s)=>s.startsWith("v-col-"));
                return n.push({
                    "v-col": !o || !t.cols,
                    [`v-col-${t.cols}`]: t.cols,
                    [`offset-${t.offset}`]: t.offset,
                    [`order-${t.order}`]: t.order,
                    [`align-self-${t.alignSelf}`]: t.alignSelf
                }), n;
            });
            return ()=>On(t.tag, {
                    class: [
                        r.value,
                        t.class
                    ],
                    style: t.style
                }, a.default?.());
        }
    });
    af = [
        "start",
        "end",
        "center"
    ];
    j0 = [
        "space-between",
        "space-around",
        "space-evenly"
    ];
    function rf(t, e) {
        return cl.reduce((a, r)=>{
            const n = t + sl(r);
            return a[n] = e(), a;
        }, {});
    }
    const Q3 = [
        ...af,
        "baseline",
        "stretch"
    ], Y0 = (t)=>Q3.includes(t), q0 = rf("align", ()=>({
            type: String,
            default: null,
            validator: Y0
        })), eR = [
        ...af,
        ...j0
    ], K0 = (t)=>eR.includes(t), X0 = rf("justify", ()=>({
            type: String,
            default: null,
            validator: K0
        })), tR = [
        ...af,
        ...j0,
        "stretch"
    ], J0 = (t)=>tR.includes(t), Z0 = rf("alignContent", ()=>({
            type: String,
            default: null,
            validator: J0
        })), Jv = {
        align: Object.keys(q0),
        justify: Object.keys(X0),
        alignContent: Object.keys(Z0)
    }, aR = {
        align: "align",
        justify: "justify",
        alignContent: "align-content"
    };
    function rR(t, e, a) {
        let r = aR[t];
        if (a != null) {
            if (e) {
                const n = e.replace(t, "");
                r += `-${n}`;
            }
            return r += `-${a}`, r.toLowerCase();
        }
    }
    let nR, Q0, Eh, nf, oR, sR, lR, uR, zi;
    nR = $({
        dense: Boolean,
        noGutters: Boolean,
        align: {
            type: String,
            default: null,
            validator: Y0
        },
        ...q0,
        justify: {
            type: String,
            default: null,
            validator: K0
        },
        ...X0,
        alignContent: {
            type: String,
            default: null,
            validator: J0
        },
        ...Z0,
        ...we(),
        ...We()
    }, "VRow");
    Pa = te()({
        name: "VRow",
        props: nR(),
        setup (t, e) {
            let { slots: a } = e;
            const r = T(()=>{
                const n = [];
                let i;
                for(i in Jv)Jv[i].forEach((o)=>{
                    const s = t[o], l = rR(i, o, s);
                    l && n.push(l);
                });
                return n.push({
                    "v-row--no-gutters": t.noGutters,
                    "v-row--dense": t.dense,
                    [`align-${t.align}`]: t.align,
                    [`justify-${t.justify}`]: t.justify,
                    [`align-content-${t.alignContent}`]: t.alignContent
                }), n;
            });
            return ()=>On(t.tag, {
                    class: [
                        "v-row",
                        r.value,
                        t.class
                    ],
                    style: t.style
                }, a.default?.());
        }
    });
    un = br("v-spacer", "div", "VSpacer");
    iR = Ft({
        __name: "AddTorrentParamsForm",
        props: {
            modelValue: {
                required: !0
            },
            modelModifiers: {}
        },
        emits: [
            "update:modelValue"
        ],
        setup (t, { expose: e }) {
            const a = uo(t, "modelValue"), { t: r } = qt(), n = zm(), i = wl(), o = Wm(), s = [
                {
                    title: r("common.useGlobalSettings"),
                    value: null
                },
                {
                    title: r("constants.contentLayout.original"),
                    value: no.ORIGINAL
                },
                {
                    title: r("constants.contentLayout.subfolder"),
                    value: no.SUBFOLDER
                },
                {
                    title: r("constants.contentLayout.nosubfolder"),
                    value: no.NO_SUBFOLDER
                }
            ], l = [
                {
                    title: r("common.useGlobalSettings"),
                    value: null
                },
                {
                    title: r("constants.stopCondition.none"),
                    value: io.NONE
                },
                {
                    title: r("constants.stopCondition.metadataReceived"),
                    value: io.METADATA_RECEIVED
                },
                {
                    title: r("constants.stopCondition.filesChecked"),
                    value: io.FILES_CHECKED
                }
            ], u = W(), c = W(), d = W(""), h = W(""), m = T(()=>n.categories.map((F)=>F.name)), f = T({
                get: ()=>a.value.category || h.value || void 0,
                set: (F)=>a.value.category = F || void 0
            }), p = T({
                get: ()=>a.value.download_path || void 0,
                set: (F)=>{
                    a.value.use_download_path = !!F || !1, a.value.download_path = F || void 0;
                }
            });
            function g(F) {
                return !F || F === -1 ? "" : (F / 1024).toString();
            }
            const v = T({
                get: ()=>g(a.value.download_limit),
                set: (F)=>{
                    if (!F) a.value.download_limit = void 0;
                    else {
                        const D = parseInt(F);
                        D > 0 && (a.value.download_limit = D * 1024);
                    }
                }
            }), b = T({
                get: ()=>g(a.value.upload_limit),
                set: (F)=>{
                    if (!F) a.value.upload_limit = void 0;
                    else {
                        const D = parseInt(F);
                        D > 0 && (a.value.upload_limit = D * 1024);
                    }
                }
            }), k = T({
                get: ()=>a.value.ratio_limit,
                set: (F)=>a.value.ratio_limit = F || void 0
            }), S = T({
                get: ()=>a.value.seeding_time_limit,
                set: (F)=>a.value.seeding_time_limit = F || void 0
            }), x = T({
                get: ()=>a.value.inactive_seeding_time_limit,
                set: (F)=>a.value.inactive_seeding_time_limit = F || void 0
            }), C = ()=>{
                const F = n.getCategoryFromName(a.value.category);
                F && F.savePath.length > 0 ? a.value.save_path = F.savePath : F || (a.value.save_path = i.preferences.save_path);
            };
            function w() {
                u.value?.saveValueToHistory(), c.value?.saveValueToHistory();
            }
            return e({
                saveFields: w
            }), (F, D)=>(ve(), it(Ce, null, [
                    y(Pa, null, {
                        default: O(()=>[
                                y(qe, {
                                    cols: "12",
                                    md: "6"
                                }, {
                                    default: O(()=>[
                                            y(Ys, {
                                                modelValue: a.value.tags,
                                                "onUpdate:modelValue": D[0] || (D[0] = (_)=>a.value.tags = _),
                                                search: d.value,
                                                "onUpdate:search": D[1] || (D[1] = (_)=>d.value = _),
                                                "hide-no-data": !1,
                                                items: Y(o).tags,
                                                label: Y(r)("dialogs.add.params.tags"),
                                                chips: "",
                                                clearable: "",
                                                "hide-details": "",
                                                multiple: "",
                                                autocomplete: "tags"
                                            }, {
                                                prepend: O(()=>[
                                                        y(_e, {
                                                            color: "accent"
                                                        }, {
                                                            default: O(()=>D[17] || (D[17] = [
                                                                    Pe("mdi-tag")
                                                                ])),
                                                            _: 1
                                                        })
                                                    ]),
                                                "no-data": O(()=>[
                                                        y(tt, null, {
                                                            default: O(()=>[
                                                                    d.value?.length > 0 ? (ve(), ze(Yr, {
                                                                        key: 0
                                                                    }, {
                                                                        default: O(()=>[
                                                                                Pe(Se(Y(r)("dialogs.add.params.no_tags_match", {
                                                                                    query: d.value
                                                                                })), 1)
                                                                            ]),
                                                                        _: 1
                                                                    })) : (ve(), ze(Yr, {
                                                                        key: 1
                                                                    }, {
                                                                        default: O(()=>[
                                                                                Pe(Se(Y(r)("dialogs.add.params.no_tags")), 1)
                                                                            ]),
                                                                        _: 1
                                                                    }))
                                                                ]),
                                                            _: 1
                                                        })
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "modelValue",
                                                "search",
                                                "items",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    cols: "12",
                                    md: "6"
                                }, {
                                    default: O(()=>[
                                            y(Ys, {
                                                modelValue: f.value,
                                                "onUpdate:modelValue": [
                                                    D[2] || (D[2] = (_)=>f.value = _),
                                                    C
                                                ],
                                                search: h.value,
                                                "onUpdate:search": D[3] || (D[3] = (_)=>h.value = _),
                                                "hide-no-data": !1,
                                                items: m.value,
                                                label: F.$t("dialogs.add.params.category"),
                                                clearable: "",
                                                "hide-details": "",
                                                autocomplete: "categories"
                                            }, {
                                                prepend: O(()=>[
                                                        y(_e, {
                                                            color: "accent"
                                                        }, {
                                                            default: O(()=>D[18] || (D[18] = [
                                                                    Pe("mdi-label")
                                                                ])),
                                                            _: 1
                                                        })
                                                    ]),
                                                "no-data": O(()=>[
                                                        y(tt, null, {
                                                            default: O(()=>[
                                                                    h.value?.length > 0 ? (ve(), ze(Yr, {
                                                                        key: 0
                                                                    }, {
                                                                        default: O(()=>[
                                                                                Pe(Se(Y(r)("dialogs.add.params.no_categories_match", {
                                                                                    query: h.value
                                                                                })), 1)
                                                                            ]),
                                                                        _: 1
                                                                    })) : (ve(), ze(Yr, {
                                                                        key: 1
                                                                    }, {
                                                                        default: O(()=>[
                                                                                Pe(Se(Y(r)("dialogs.add.params.no_categories")), 1)
                                                                            ]),
                                                                        _: 1
                                                                    }))
                                                                ]),
                                                            _: 1
                                                        })
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "modelValue",
                                                "search",
                                                "items",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    cols: "12"
                                }, {
                                    default: O(()=>[
                                            y(Dh, {
                                                modelValue: p.value,
                                                "onUpdate:modelValue": D[4] || (D[4] = (_)=>p.value = _),
                                                "history-key": Y(Os).TORRENT_PATH,
                                                ref_key: "downloadPathField",
                                                ref: u,
                                                disabled: a.value.use_auto_tmm,
                                                label: Y(r)("dialogs.add.params.download_path"),
                                                "hide-details": ""
                                            }, {
                                                prepend: O(()=>[
                                                        y(_e, {
                                                            color: "accent"
                                                        }, {
                                                            default: O(()=>D[19] || (D[19] = [
                                                                    Pe("mdi-tray-arrow-down")
                                                                ])),
                                                            _: 1
                                                        })
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "modelValue",
                                                "history-key",
                                                "disabled",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    cols: "12"
                                }, {
                                    default: O(()=>[
                                            y(Dh, {
                                                modelValue: a.value.save_path,
                                                "onUpdate:modelValue": D[5] || (D[5] = (_)=>a.value.save_path = _),
                                                "history-key": Y(Os).TORRENT_PATH,
                                                ref_key: "savePathField",
                                                ref: c,
                                                disabled: a.value.use_auto_tmm,
                                                label: Y(r)("dialogs.add.params.save_path"),
                                                "hide-details": ""
                                            }, {
                                                prepend: O(()=>[
                                                        y(_e, {
                                                            color: "accent"
                                                        }, {
                                                            default: O(()=>D[20] || (D[20] = [
                                                                    Pe("mdi-content-save")
                                                                ])),
                                                            _: 1
                                                        })
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "modelValue",
                                                "history-key",
                                                "disabled",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    cols: "12",
                                    md: "6"
                                }, {
                                    default: O(()=>[
                                            y(_n, {
                                                modelValue: a.value.content_layout,
                                                "onUpdate:modelValue": D[6] || (D[6] = (_)=>a.value.content_layout = _),
                                                items: s,
                                                label: Y(r)("constants.contentLayout.title"),
                                                color: "accent",
                                                "hide-details": "",
                                                rounded: "xl",
                                                variant: "solo-filled"
                                            }, null, 8, [
                                                "modelValue",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    cols: "12",
                                    md: "6"
                                }, {
                                    default: O(()=>[
                                            y(_n, {
                                                modelValue: a.value.stop_condition,
                                                "onUpdate:modelValue": D[7] || (D[7] = (_)=>a.value.stop_condition = _),
                                                items: l,
                                                label: Y(r)("constants.stopCondition.title"),
                                                color: "accent",
                                                "hide-details": "",
                                                rounded: "xl",
                                                variant: "solo-filled"
                                            }, null, 8, [
                                                "modelValue",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                })
                            ]),
                        _: 1
                    }),
                    y(Pa, {
                        class: "mx-3"
                    }, {
                        default: O(()=>[
                                y(qe, {
                                    cols: "12",
                                    md: "6"
                                }, {
                                    default: O(()=>[
                                            y(jr, {
                                                modelValue: a.value.stopped,
                                                "onUpdate:modelValue": D[8] || (D[8] = (_)=>a.value.stopped = _),
                                                label: Y(r)("dialogs.add.params.stopped"),
                                                color: "accent",
                                                density: "compact",
                                                "hide-details": ""
                                            }, null, 8, [
                                                "modelValue",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    cols: "12",
                                    md: "6"
                                }, {
                                    default: O(()=>[
                                            y(jr, {
                                                modelValue: a.value.add_to_top_of_queue,
                                                "onUpdate:modelValue": D[9] || (D[9] = (_)=>a.value.add_to_top_of_queue = _),
                                                label: Y(r)("dialogs.add.params.add_to_top_of_queue"),
                                                color: "accent",
                                                density: "compact",
                                                "hide-details": ""
                                            }, null, 8, [
                                                "modelValue",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    cols: "12",
                                    md: "6"
                                }, {
                                    default: O(()=>[
                                            y(jr, {
                                                modelValue: a.value.skip_checking,
                                                "onUpdate:modelValue": D[10] || (D[10] = (_)=>a.value.skip_checking = _),
                                                label: Y(r)("dialogs.add.params.skip_checking"),
                                                color: "accent",
                                                density: "compact",
                                                "hide-details": ""
                                            }, null, 8, [
                                                "modelValue",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    cols: "12",
                                    md: "6"
                                }, {
                                    default: O(()=>[
                                            y(jr, {
                                                modelValue: a.value.use_auto_tmm,
                                                "onUpdate:modelValue": D[11] || (D[11] = (_)=>a.value.use_auto_tmm = _),
                                                label: Y(r)("dialogs.add.params.use_auto_tmm"),
                                                color: "accent",
                                                density: "compact",
                                                "hide-details": ""
                                            }, null, 8, [
                                                "modelValue",
                                                "label"
                                            ])
                                        ]),
                                    _: 1
                                })
                            ]),
                        _: 1
                    }),
                    y(Pa, null, {
                        default: O(()=>[
                                y(qe, {
                                    cols: "12"
                                }, {
                                    default: O(()=>[
                                            y(W0, null, {
                                                default: O(()=>[
                                                        y(V0, {
                                                            color: "primary",
                                                            title: F.$t("dialogs.add.params.limit_collapse")
                                                        }, {
                                                            default: O(()=>[
                                                                    y(qs, null, {
                                                                        default: O(()=>[
                                                                                y(Pa, null, {
                                                                                    default: O(()=>[
                                                                                            y(qe, {
                                                                                                cols: "12",
                                                                                                md: "6"
                                                                                            }, {
                                                                                                default: O(()=>[
                                                                                                        y(ya, {
                                                                                                            modelValue: v.value,
                                                                                                            "onUpdate:modelValue": D[12] || (D[12] = (_)=>v.value = _),
                                                                                                            modelModifiers: {
                                                                                                                number: !0
                                                                                                            },
                                                                                                            label: F.$t("dialogs.add.params.download_limit"),
                                                                                                            "hide-details": "",
                                                                                                            suffix: "KiB/s",
                                                                                                            type: "number"
                                                                                                        }, {
                                                                                                            prepend: O(()=>[
                                                                                                                    y(_e, {
                                                                                                                        color: "accent"
                                                                                                                    }, {
                                                                                                                        default: O(()=>D[21] || (D[21] = [
                                                                                                                                Pe("mdi-download")
                                                                                                                            ])),
                                                                                                                        _: 1
                                                                                                                    })
                                                                                                                ]),
                                                                                                            _: 1
                                                                                                        }, 8, [
                                                                                                            "modelValue",
                                                                                                            "label"
                                                                                                        ])
                                                                                                    ]),
                                                                                                _: 1
                                                                                            }),
                                                                                            y(qe, {
                                                                                                cols: "12",
                                                                                                md: "6"
                                                                                            }, {
                                                                                                default: O(()=>[
                                                                                                        y(ya, {
                                                                                                            modelValue: b.value,
                                                                                                            "onUpdate:modelValue": D[13] || (D[13] = (_)=>b.value = _),
                                                                                                            modelModifiers: {
                                                                                                                number: !0
                                                                                                            },
                                                                                                            label: F.$t("dialogs.add.params.upload_limit"),
                                                                                                            "hide-details": "",
                                                                                                            suffix: "KiB/s",
                                                                                                            type: "number"
                                                                                                        }, {
                                                                                                            prepend: O(()=>[
                                                                                                                    y(_e, {
                                                                                                                        color: "accent"
                                                                                                                    }, {
                                                                                                                        default: O(()=>D[22] || (D[22] = [
                                                                                                                                Pe("mdi-upload")
                                                                                                                            ])),
                                                                                                                        _: 1
                                                                                                                    })
                                                                                                                ]),
                                                                                                            _: 1
                                                                                                        }, 8, [
                                                                                                            "modelValue",
                                                                                                            "label"
                                                                                                        ])
                                                                                                    ]),
                                                                                                _: 1
                                                                                            }),
                                                                                            y(qe, {
                                                                                                cols: "12",
                                                                                                md: "4"
                                                                                            }, {
                                                                                                default: O(()=>[
                                                                                                        y(ya, {
                                                                                                            modelValue: k.value,
                                                                                                            "onUpdate:modelValue": D[14] || (D[14] = (_)=>k.value = _),
                                                                                                            modelModifiers: {
                                                                                                                number: !0
                                                                                                            },
                                                                                                            hint: F.$t("dialogs.add.params.limit_hint"),
                                                                                                            label: F.$t("dialogs.add.params.ratio_limit"),
                                                                                                            type: "number"
                                                                                                        }, null, 8, [
                                                                                                            "modelValue",
                                                                                                            "hint",
                                                                                                            "label"
                                                                                                        ])
                                                                                                    ]),
                                                                                                _: 1
                                                                                            }),
                                                                                            y(qe, {
                                                                                                cols: "12",
                                                                                                md: "4"
                                                                                            }, {
                                                                                                default: O(()=>[
                                                                                                        y(ya, {
                                                                                                            modelValue: S.value,
                                                                                                            "onUpdate:modelValue": D[15] || (D[15] = (_)=>S.value = _),
                                                                                                            modelModifiers: {
                                                                                                                number: !0
                                                                                                            },
                                                                                                            label: F.$t("dialogs.add.params.seeding_time_limit"),
                                                                                                            hint: F.$t("dialogs.add.params.limit_hint"),
                                                                                                            suffix: F.$t("units.minutes"),
                                                                                                            type: "number"
                                                                                                        }, null, 8, [
                                                                                                            "modelValue",
                                                                                                            "label",
                                                                                                            "hint",
                                                                                                            "suffix"
                                                                                                        ])
                                                                                                    ]),
                                                                                                _: 1
                                                                                            }),
                                                                                            y(qe, {
                                                                                                cols: "12",
                                                                                                md: "4"
                                                                                            }, {
                                                                                                default: O(()=>[
                                                                                                        y(ya, {
                                                                                                            modelValue: x.value,
                                                                                                            "onUpdate:modelValue": D[16] || (D[16] = (_)=>x.value = _),
                                                                                                            modelModifiers: {
                                                                                                                number: !0
                                                                                                            },
                                                                                                            label: F.$t("dialogs.add.params.inactive_seeding_time_limit"),
                                                                                                            hint: F.$t("dialogs.add.params.limit_hint"),
                                                                                                            suffix: F.$t("units.minutes"),
                                                                                                            type: "number"
                                                                                                        }, null, 8, [
                                                                                                            "modelValue",
                                                                                                            "label",
                                                                                                            "hint",
                                                                                                            "suffix"
                                                                                                        ])
                                                                                                    ]),
                                                                                                _: 1
                                                                                            })
                                                                                        ]),
                                                                                    _: 1
                                                                                })
                                                                            ]),
                                                                        _: 1
                                                                    })
                                                                ]),
                                                            _: 1
                                                        }, 8, [
                                                            "title"
                                                        ])
                                                    ]),
                                                _: 1
                                            })
                                        ]),
                                    _: 1
                                })
                            ]),
                        _: 1
                    })
                ], 64));
        }
    });
    Q0 = $({
        baseColor: String,
        divided: Boolean,
        ...Na(),
        ...we(),
        ...ta(),
        ...Jt(),
        ...Ct(),
        ...We(),
        ...Qe(),
        ...or()
    }, "VBtnGroup");
    Eh = te()({
        name: "VBtnGroup",
        props: Q0(),
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t), { densityClasses: n } = xa(t), { borderClasses: i } = Xa(t), { elevationClasses: o } = na(t), { roundedClasses: s } = Mt(t);
            Bt({
                VBtn: {
                    height: "auto",
                    baseColor: K(t, "baseColor"),
                    color: K(t, "color"),
                    density: K(t, "density"),
                    flat: !0,
                    variant: K(t, "variant")
                }
            }), ie(()=>y(t.tag, {
                    class: [
                        "v-btn-group",
                        {
                            "v-btn-group--divided": t.divided
                        },
                        r.value,
                        i.value,
                        n.value,
                        o.value,
                        s.value,
                        t.class
                    ],
                    style: t.style
                }, a));
        }
    });
    nf = Symbol.for("vuetify:v-btn-toggle");
    oR = $({
        ...Q0(),
        ...Kn()
    }, "VBtnToggle");
    sR = te()({
        name: "VBtnToggle",
        props: oR(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { isSelected: r, next: n, prev: i, select: o, selected: s } = ln(t, nf);
            return ie(()=>{
                const l = Eh.filterProps(t);
                return y(Eh, Z({
                    class: [
                        "v-btn-toggle",
                        t.class
                    ]
                }, l, {
                    style: t.style
                }), {
                    default: ()=>[
                            a.default?.({
                                isSelected: r,
                                next: n,
                                prev: i,
                                select: o,
                                selected: s
                            })
                        ]
                });
            }), {
                next: n,
                prev: i,
                select: o
            };
        }
    });
    lR = $({
        bgColor: String,
        color: String,
        indeterminate: [
            Boolean,
            String
        ],
        modelValue: {
            type: [
                Number,
                String
            ],
            default: 0
        },
        rotate: {
            type: [
                Number,
                String
            ],
            default: 0
        },
        width: {
            type: [
                Number,
                String
            ],
            default: 4
        },
        ...we(),
        ...xr(),
        ...We({
            tag: "div"
        }),
        ...Qe()
    }, "VProgressCircular");
    Si = te()({
        name: "VProgressCircular",
        props: lR(),
        setup (t, e) {
            let { slots: a } = e;
            const r = 20, n = 2 * Math.PI * r, i = W(), { themeClasses: o } = ut(t), { sizeClasses: s, sizeStyles: l } = Li(t), { textColorClasses: u, textColorStyles: c } = ha(K(t, "color")), { textColorClasses: d, textColorStyles: h } = ha(K(t, "bgColor")), { intersectionRef: m, isIntersecting: f } = Bl(), { resizeRef: p, contentRect: g } = vr(), v = T(()=>Math.max(0, Math.min(100, parseFloat(t.modelValue)))), b = T(()=>Number(t.width)), k = T(()=>l.value ? Number(t.size) : g.value ? g.value.width : Math.max(b.value, 32)), S = T(()=>r / (1 - b.value / k.value) * 2), x = T(()=>b.value / k.value * S.value), C = T(()=>xe((100 - v.value) / 100 * n));
            return Lt(()=>{
                m.value = i.value, p.value = i.value;
            }), ie(()=>y(t.tag, {
                    ref: i,
                    class: [
                        "v-progress-circular",
                        {
                            "v-progress-circular--indeterminate": !!t.indeterminate,
                            "v-progress-circular--visible": f.value,
                            "v-progress-circular--disable-shrink": t.indeterminate === "disable-shrink"
                        },
                        o.value,
                        s.value,
                        u.value,
                        t.class
                    ],
                    style: [
                        l.value,
                        c.value,
                        t.style
                    ],
                    role: "progressbar",
                    "aria-valuemin": "0",
                    "aria-valuemax": "100",
                    "aria-valuenow": t.indeterminate ? void 0 : v.value
                }, {
                    default: ()=>[
                            y("svg", {
                                style: {
                                    transform: `rotate(calc(-90deg + ${Number(t.rotate)}deg))`
                                },
                                xmlns: "http://www.w3.org/2000/svg",
                                viewBox: `0 0 ${S.value} ${S.value}`
                            }, [
                                y("circle", {
                                    class: [
                                        "v-progress-circular__underlay",
                                        d.value
                                    ],
                                    style: h.value,
                                    fill: "transparent",
                                    cx: "50%",
                                    cy: "50%",
                                    r,
                                    "stroke-width": x.value,
                                    "stroke-dasharray": n,
                                    "stroke-dashoffset": 0
                                }, null),
                                y("circle", {
                                    class: "v-progress-circular__overlay",
                                    fill: "transparent",
                                    cx: "50%",
                                    cy: "50%",
                                    r,
                                    "stroke-width": x.value,
                                    "stroke-dasharray": n,
                                    "stroke-dashoffset": C.value
                                }, null)
                            ]),
                            a.default && y("div", {
                                class: "v-progress-circular__content"
                            }, [
                                a.default({
                                    value: v.value
                                })
                            ])
                        ]
                })), {};
        }
    });
    uR = [
        "static",
        "relative",
        "fixed",
        "absolute",
        "sticky"
    ];
    zi = $({
        position: {
            type: String,
            validator: (t)=>uR.includes(t)
        }
    }, "position");
    function Ni(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Rr();
        return {
            positionClasses: T(()=>t.position ? `${e}--${t.position}` : void 0)
        };
    }
    function cR(t, e) {
        me(()=>t.isActive?.value, (a)=>{
            t.isLink.value && a && e && at(()=>{
                e(!0);
            });
        }, {
            immediate: !0
        });
    }
    let Il, dR, hR, t1, mR, fR, a1, pR, r1, gR, i1, vR, o1, yR, bR, FR, Ad, kR, s1;
    Il = $({
        active: {
            type: Boolean,
            default: void 0
        },
        activeColor: String,
        baseColor: String,
        symbol: {
            type: null,
            default: nf
        },
        flat: Boolean,
        icon: [
            Boolean,
            String,
            Function,
            Object
        ],
        prependIcon: Me,
        appendIcon: Me,
        block: Boolean,
        readonly: Boolean,
        slim: Boolean,
        stacked: Boolean,
        ripple: {
            type: [
                Boolean,
                Object
            ],
            default: !0
        },
        text: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        ...Na(),
        ...we(),
        ...ta(),
        ...Ut(),
        ...Jt(),
        ...Xn(),
        ...Rl(),
        ...zr(),
        ...zi(),
        ...Ct(),
        ...Go(),
        ...xr(),
        ...We({
            tag: "button"
        }),
        ...Qe(),
        ...or({
            variant: "elevated"
        })
    }, "VBtn");
    Re = te()({
        name: "VBtn",
        props: Il(),
        emits: {
            "group:selected": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const { themeClasses: n } = ut(t), { borderClasses: i } = Xa(t), { densityClasses: o } = xa(t), { dimensionStyles: s } = jt(t), { elevationClasses: l } = na(t), { loaderClasses: u } = Uo(t), { locationStyles: c } = ti(t), { positionClasses: d } = Ni(t), { roundedClasses: h } = Mt(t), { sizeClasses: m, sizeStyles: f } = Li(t), p = Jn(t, t.symbol, !1), g = Wo(t, a), v = T(()=>t.active !== void 0 ? t.active : g.isLink.value ? g.isActive?.value : p?.isSelected.value), b = T(()=>v.value ? t.activeColor ?? t.color : t.color), k = T(()=>({
                    color: p?.isSelected.value && (!g.isLink.value || g.isActive?.value) || !p || g.isActive?.value ? b.value ?? t.baseColor : t.baseColor,
                    variant: t.variant
                })), { colorClasses: S, colorStyles: x, variantClasses: C } = qn(k), w = T(()=>p?.disabled.value || t.disabled), F = T(()=>t.variant === "elevated" && !(t.disabled || t.flat || t.border)), D = T(()=>{
                if (!(t.value === void 0 || typeof t.value == "symbol")) return Object(t.value) === t.value ? JSON.stringify(t.value, null, 0) : t.value;
            });
            function _(A) {
                w.value || g.isLink.value && (A.metaKey || A.ctrlKey || A.shiftKey || A.button !== 0 || a.target === "_blank") || (g.navigate?.(A), p?.toggle());
            }
            return cR(g, p?.select), ie(()=>{
                const A = g.isLink.value ? "a" : t.tag, E = !!(t.prependIcon || r.prepend), B = !!(t.appendIcon || r.append), P = !!(t.icon && t.icon !== !0);
                return mt(y(A, Z({
                    type: A === "a" ? void 0 : "button",
                    class: [
                        "v-btn",
                        p?.selectedClass.value,
                        {
                            "v-btn--active": v.value,
                            "v-btn--block": t.block,
                            "v-btn--disabled": w.value,
                            "v-btn--elevated": F.value,
                            "v-btn--flat": t.flat,
                            "v-btn--icon": !!t.icon,
                            "v-btn--loading": t.loading,
                            "v-btn--readonly": t.readonly,
                            "v-btn--slim": t.slim,
                            "v-btn--stacked": t.stacked
                        },
                        n.value,
                        i.value,
                        S.value,
                        o.value,
                        l.value,
                        u.value,
                        d.value,
                        h.value,
                        m.value,
                        C.value,
                        t.class
                    ],
                    style: [
                        x.value,
                        s.value,
                        c.value,
                        f.value,
                        t.style
                    ],
                    "aria-busy": t.loading ? !0 : void 0,
                    disabled: w.value || void 0,
                    tabindex: t.loading || t.readonly ? -1 : void 0,
                    onClick: _,
                    value: D.value
                }, g.linkProps), {
                    default: ()=>[
                            sn(!0, "v-btn"),
                            !t.icon && E && y("span", {
                                key: "prepend",
                                class: "v-btn__prepend"
                            }, [
                                r.prepend ? y(Ge, {
                                    key: "prepend-defaults",
                                    disabled: !t.prependIcon,
                                    defaults: {
                                        VIcon: {
                                            icon: t.prependIcon
                                        }
                                    }
                                }, r.prepend) : y(_e, {
                                    key: "prepend-icon",
                                    icon: t.prependIcon
                                }, null)
                            ]),
                            y("span", {
                                class: "v-btn__content",
                                "data-no-activator": ""
                            }, [
                                !r.default && P ? y(_e, {
                                    key: "content-icon",
                                    icon: t.icon
                                }, null) : y(Ge, {
                                    key: "content-defaults",
                                    disabled: !P,
                                    defaults: {
                                        VIcon: {
                                            icon: t.icon
                                        }
                                    }
                                }, {
                                    default: ()=>[
                                            r.default?.() ?? Se(t.text)
                                        ]
                                })
                            ]),
                            !t.icon && B && y("span", {
                                key: "append",
                                class: "v-btn__append"
                            }, [
                                r.append ? y(Ge, {
                                    key: "append-defaults",
                                    disabled: !t.appendIcon,
                                    defaults: {
                                        VIcon: {
                                            icon: t.appendIcon
                                        }
                                    }
                                }, r.append) : y(_e, {
                                    key: "append-icon",
                                    icon: t.appendIcon
                                }, null)
                            ]),
                            !!t.loading && y("span", {
                                key: "loader",
                                class: "v-btn__loader"
                            }, [
                                r.loader?.() ?? y(Si, {
                                    color: typeof t.loading == "boolean" ? void 0 : t.loading,
                                    indeterminate: !0,
                                    width: "2"
                                }, null)
                            ])
                        ]
                }), [
                    [
                        Lr,
                        !w.value && t.ripple,
                        "",
                        {
                            center: !!t.icon
                        }
                    ]
                ]);
            }), {
                group: p
            };
        }
    });
    Oi = te()({
        name: "VCardActions",
        props: we(),
        setup (t, e) {
            let { slots: a } = e;
            return Bt({
                VBtn: {
                    slim: !0,
                    variant: "text"
                }
            }), ie(()=>y("div", {
                    class: [
                        "v-card-actions",
                        t.class
                    ],
                    style: t.style
                }, [
                    a.default?.()
                ])), {};
        }
    });
    dR = $({
        opacity: [
            Number,
            String
        ],
        ...we(),
        ...We()
    }, "VCardSubtitle");
    e1 = te()({
        name: "VCardSubtitle",
        props: dR(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y(t.tag, {
                    class: [
                        "v-card-subtitle",
                        t.class
                    ],
                    style: [
                        {
                            "--v-card-subtitle-opacity": t.opacity
                        },
                        t.style
                    ]
                }, a)), {};
        }
    });
    Hi = br("v-card-title");
    hR = $({
        appendAvatar: String,
        appendIcon: Me,
        prependAvatar: String,
        prependIcon: Me,
        subtitle: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        title: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        ...we(),
        ...ta()
    }, "VCardItem");
    t1 = te()({
        name: "VCardItem",
        props: hR(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>{
                const r = !!(t.prependAvatar || t.prependIcon), n = !!(r || a.prepend), i = !!(t.appendAvatar || t.appendIcon), o = !!(i || a.append), s = !!(t.title != null || a.title), l = !!(t.subtitle != null || a.subtitle);
                return y("div", {
                    class: [
                        "v-card-item",
                        t.class
                    ],
                    style: t.style
                }, [
                    n && y("div", {
                        key: "prepend",
                        class: "v-card-item__prepend"
                    }, [
                        a.prepend ? y(Ge, {
                            key: "prepend-defaults",
                            disabled: !r,
                            defaults: {
                                VAvatar: {
                                    density: t.density,
                                    image: t.prependAvatar
                                },
                                VIcon: {
                                    density: t.density,
                                    icon: t.prependIcon
                                }
                            }
                        }, a.prepend) : y(Ce, null, [
                            t.prependAvatar && y(ir, {
                                key: "prepend-avatar",
                                density: t.density,
                                image: t.prependAvatar
                            }, null),
                            t.prependIcon && y(_e, {
                                key: "prepend-icon",
                                density: t.density,
                                icon: t.prependIcon
                            }, null)
                        ])
                    ]),
                    y("div", {
                        class: "v-card-item__content"
                    }, [
                        s && y(Hi, {
                            key: "title"
                        }, {
                            default: ()=>[
                                    a.title?.() ?? Se(t.title)
                                ]
                        }),
                        l && y(e1, {
                            key: "subtitle"
                        }, {
                            default: ()=>[
                                    a.subtitle?.() ?? Se(t.subtitle)
                                ]
                        }),
                        a.default?.()
                    ]),
                    o && y("div", {
                        key: "append",
                        class: "v-card-item__append"
                    }, [
                        a.append ? y(Ge, {
                            key: "append-defaults",
                            disabled: !i,
                            defaults: {
                                VAvatar: {
                                    density: t.density,
                                    image: t.appendAvatar
                                },
                                VIcon: {
                                    density: t.density,
                                    icon: t.appendIcon
                                }
                            }
                        }, a.append) : y(Ce, null, [
                            t.appendIcon && y(_e, {
                                key: "append-icon",
                                density: t.density,
                                icon: t.appendIcon
                            }, null),
                            t.appendAvatar && y(ir, {
                                key: "append-avatar",
                                density: t.density,
                                image: t.appendAvatar
                            }, null)
                        ])
                    ])
                ]);
            }), {};
        }
    });
    mR = $({
        opacity: [
            Number,
            String
        ],
        ...we(),
        ...We()
    }, "VCardText");
    ai = te()({
        name: "VCardText",
        props: mR(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y(t.tag, {
                    class: [
                        "v-card-text",
                        t.class
                    ],
                    style: [
                        {
                            "--v-card-text-opacity": t.opacity
                        },
                        t.style
                    ]
                }, a)), {};
        }
    });
    fR = $({
        appendAvatar: String,
        appendIcon: Me,
        disabled: Boolean,
        flat: Boolean,
        hover: Boolean,
        image: String,
        link: {
            type: Boolean,
            default: void 0
        },
        prependAvatar: String,
        prependIcon: Me,
        ripple: {
            type: [
                Boolean,
                Object
            ],
            default: !0
        },
        subtitle: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        text: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        title: {
            type: [
                String,
                Number,
                Boolean
            ],
            default: void 0
        },
        ...Na(),
        ...we(),
        ...ta(),
        ...Ut(),
        ...Jt(),
        ...Rl(),
        ...zr(),
        ...zi(),
        ...Ct(),
        ...Go(),
        ...We(),
        ...Qe(),
        ...or({
            variant: "elevated"
        })
    }, "VCard");
    ri = te()({
        name: "VCard",
        directives: {
            Ripple: Lr
        },
        props: fR(),
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const { themeClasses: n } = ut(t), { borderClasses: i } = Xa(t), { colorClasses: o, colorStyles: s, variantClasses: l } = qn(t), { densityClasses: u } = xa(t), { dimensionStyles: c } = jt(t), { elevationClasses: d } = na(t), { loaderClasses: h } = Uo(t), { locationStyles: m } = ti(t), { positionClasses: f } = Ni(t), { roundedClasses: p } = Mt(t), g = Wo(t, a), v = T(()=>t.link !== !1 && g.isLink.value), b = T(()=>!t.disabled && t.link !== !1 && (t.link || g.isClickable.value));
            return ie(()=>{
                const k = v.value ? "a" : t.tag, S = !!(r.title || t.title != null), x = !!(r.subtitle || t.subtitle != null), C = S || x, w = !!(r.append || t.appendAvatar || t.appendIcon), F = !!(r.prepend || t.prependAvatar || t.prependIcon), D = !!(r.image || t.image), _ = C || F || w, A = !!(r.text || t.text != null);
                return mt(y(k, Z({
                    class: [
                        "v-card",
                        {
                            "v-card--disabled": t.disabled,
                            "v-card--flat": t.flat,
                            "v-card--hover": t.hover && !(t.disabled || t.flat),
                            "v-card--link": b.value
                        },
                        n.value,
                        i.value,
                        o.value,
                        u.value,
                        d.value,
                        h.value,
                        f.value,
                        p.value,
                        l.value,
                        t.class
                    ],
                    style: [
                        s.value,
                        c.value,
                        m.value,
                        t.style
                    ],
                    onClick: b.value && g.navigate,
                    tabindex: t.disabled ? -1 : void 0
                }, g.linkProps), {
                    default: ()=>[
                            D && y("div", {
                                key: "image",
                                class: "v-card__image"
                            }, [
                                r.image ? y(Ge, {
                                    key: "image-defaults",
                                    disabled: !t.image,
                                    defaults: {
                                        VImg: {
                                            cover: !0,
                                            src: t.image
                                        }
                                    }
                                }, r.image) : y(_r, {
                                    key: "image-img",
                                    cover: !0,
                                    src: t.image
                                }, null)
                            ]),
                            y(jo, {
                                name: "v-card",
                                active: !!t.loading,
                                color: typeof t.loading == "boolean" ? void 0 : t.loading
                            }, {
                                default: r.loader
                            }),
                            _ && y(t1, {
                                key: "item",
                                prependAvatar: t.prependAvatar,
                                prependIcon: t.prependIcon,
                                title: t.title,
                                subtitle: t.subtitle,
                                appendAvatar: t.appendAvatar,
                                appendIcon: t.appendIcon
                            }, {
                                default: r.item,
                                prepend: r.prepend,
                                title: r.title,
                                subtitle: r.subtitle,
                                append: r.append
                            }),
                            A && y(ai, {
                                key: "text"
                            }, {
                                default: ()=>[
                                        r.text?.() ?? t.text
                                    ]
                            }),
                            r.default?.(),
                            r.actions && y(Oi, null, {
                                default: r.actions
                            }),
                            sn(b.value, "v-card")
                        ]
                }), [
                    [
                        qa("ripple"),
                        b.value && t.ripple
                    ]
                ]);
            }), {};
        }
    });
    a1 = $({
        fullscreen: Boolean,
        retainFocus: {
            type: Boolean,
            default: !0
        },
        scrollable: Boolean,
        ...$o({
            origin: "center center",
            scrollStrategy: "block",
            transition: {
                component: Tl
            },
            zIndex: 2400
        })
    }, "VDialog");
    Pn = te()({
        name: "VDialog",
        props: a1(),
        emits: {
            "update:modelValue": (t)=>!0,
            afterEnter: ()=>!0,
            afterLeave: ()=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const n = Be(t, "modelValue"), { scopeId: i } = ei(), o = W();
            function s(c) {
                const d = c.relatedTarget, h = c.target;
                if (d !== h && o.value?.contentEl && o.value?.globalTop && ![
                    document,
                    o.value.contentEl
                ].includes(h) && !o.value.contentEl.contains(h)) {
                    const m = Ms(o.value.contentEl);
                    if (!m.length) return;
                    const f = m[0], p = m[m.length - 1];
                    d === f ? p.focus() : f.focus();
                }
            }
            ga(()=>{
                document.removeEventListener("focusin", s);
            }), Yt && me(()=>n.value && t.retainFocus, (c)=>{
                c ? document.addEventListener("focusin", s) : document.removeEventListener("focusin", s);
            }, {
                immediate: !0
            });
            function l() {
                a("afterEnter"), o.value?.contentEl && !o.value.contentEl.contains(document.activeElement) && o.value.contentEl.focus({
                    preventScroll: !0
                });
            }
            function u() {
                a("afterLeave");
            }
            return me(n, async (c)=>{
                c || (await at(), o.value.activatorEl?.focus({
                    preventScroll: !0
                }));
            }), ie(()=>{
                const c = yr.filterProps(t), d = Z({
                    "aria-haspopup": "dialog"
                }, t.activatorProps), h = Z({
                    tabindex: -1
                }, t.contentProps);
                return y(yr, Z({
                    ref: o,
                    class: [
                        "v-dialog",
                        {
                            "v-dialog--fullscreen": t.fullscreen,
                            "v-dialog--scrollable": t.scrollable
                        },
                        t.class
                    ],
                    style: t.style
                }, c, {
                    modelValue: n.value,
                    "onUpdate:modelValue": (m)=>n.value = m,
                    "aria-modal": "true",
                    activatorProps: d,
                    contentProps: h,
                    height: t.fullscreen ? void 0 : t.height,
                    width: t.fullscreen ? void 0 : t.width,
                    maxHeight: t.fullscreen ? void 0 : t.maxHeight,
                    maxWidth: t.fullscreen ? void 0 : t.maxWidth,
                    role: "dialog",
                    onAfterEnter: l,
                    onAfterLeave: u
                }, i), {
                    activator: r.activator,
                    default: function() {
                        for(var m = arguments.length, f = new Array(m), p = 0; p < m; p++)f[p] = arguments[p];
                        return y(Ge, {
                            root: "VDialog"
                        }, {
                            default: ()=>[
                                    r.default?.(...f)
                                ]
                        });
                    }
                });
            }), Za({}, o);
        }
    });
    pR = $({
        chips: Boolean,
        counter: Boolean,
        counterSizeString: {
            type: String,
            default: "$vuetify.fileInput.counterSize"
        },
        counterString: {
            type: String,
            default: "$vuetify.fileInput.counter"
        },
        hideInput: Boolean,
        multiple: Boolean,
        showSize: {
            type: [
                Boolean,
                Number,
                String
            ],
            default: !1,
            validator: (t)=>typeof t == "boolean" || [
                    1e3,
                    1024
                ].includes(Number(t))
        },
        ...Ir({
            prependIcon: "$file"
        }),
        modelValue: {
            type: [
                Array,
                Object
            ],
            default: (t)=>t.multiple ? [] : null,
            validator: (t)=>Tt(t).every((e)=>e != null && typeof e == "object")
        },
        ...Yo({
            clearable: !0
        })
    }, "VFileInput");
    r1 = te()({
        name: "VFileInput",
        inheritAttrs: !1,
        props: pR(),
        emits: {
            "click:control": (t)=>!0,
            "mousedown:control": (t)=>!0,
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, emit: r, slots: n } = e;
            const { t: i } = zt(), o = Be(t, "modelValue", t.modelValue, (A)=>Tt(A), (A)=>!t.multiple && Array.isArray(A) ? A[0] : A), { isFocused: s, focus: l, blur: u } = wr(t), c = T(()=>typeof t.showSize != "boolean" ? t.showSize : void 0), d = T(()=>(o.value ?? []).reduce((A, E)=>{
                    let { size: B = 0 } = E;
                    return A + B;
                }, 0)), h = T(()=>Qf(d.value, c.value)), m = T(()=>(o.value ?? []).map((A)=>{
                    const { name: E = "", size: B = 0 } = A;
                    return t.showSize ? `${E} (${Qf(B, c.value)})` : E;
                })), f = T(()=>{
                const A = o.value?.length ?? 0;
                return t.showSize ? i(t.counterSizeString, A, h.value) : i(t.counterString, A);
            }), p = W(), g = W(), v = W(), b = T(()=>s.value || t.active), k = T(()=>[
                    "plain",
                    "underlined"
                ].includes(t.variant));
            function S() {
                v.value !== document.activeElement && v.value?.focus(), s.value || l();
            }
            function x(A) {
                v.value?.click();
            }
            function C(A) {
                r("mousedown:control", A);
            }
            function w(A) {
                v.value?.click(), r("click:control", A);
            }
            function F(A) {
                A.stopPropagation(), S(), at(()=>{
                    o.value = [], ul(t["onClick:clear"], A);
                });
            }
            function D(A) {
                A.preventDefault();
            }
            function _(A) {
                A.preventDefault(), A.dataTransfer && (o.value = [
                    ...A.dataTransfer.files ?? []
                ]);
            }
            return me(o, (A)=>{
                (!Array.isArray(A) || !A.length) && v.value && (v.value.value = "");
            }), ie(()=>{
                const A = !!(n.counter || t.counter), E = !!(A || n.details), [B, P] = an(a), { modelValue: M, ...R } = ma.filterProps(t), z = Zr.filterProps(t);
                return y(ma, Z({
                    ref: p,
                    modelValue: t.multiple ? o.value : o.value[0],
                    class: [
                        "v-file-input",
                        {
                            "v-file-input--chips": !!t.chips,
                            "v-file-input--hide": t.hideInput,
                            "v-input--plain-underlined": k.value
                        },
                        t.class
                    ],
                    style: t.style,
                    "onClick:prepend": x
                }, B, R, {
                    centerAffix: !k.value,
                    focused: s.value
                }), {
                    ...n,
                    default: (N)=>{
                        let { id: H, isDisabled: I, isDirty: L, isReadonly: G, isValid: q } = N;
                        return y(Zr, Z({
                            ref: g,
                            "prepend-icon": t.prependIcon,
                            onMousedown: C,
                            onClick: w,
                            "onClick:clear": F,
                            "onClick:prependInner": t["onClick:prependInner"],
                            "onClick:appendInner": t["onClick:appendInner"]
                        }, z, {
                            id: H.value,
                            active: b.value || L.value,
                            dirty: L.value || t.dirty,
                            disabled: I.value,
                            focused: s.value,
                            error: q.value === !1,
                            onDragover: D,
                            onDrop: _
                        }), {
                            ...n,
                            default: (X)=>{
                                let { props: { class: ue, ...J } } = X;
                                return y(Ce, null, [
                                    y("input", Z({
                                        ref: v,
                                        type: "file",
                                        readonly: G.value,
                                        disabled: I.value,
                                        multiple: t.multiple,
                                        name: t.name,
                                        onClick: (U)=>{
                                            U.stopPropagation(), G.value && U.preventDefault(), S();
                                        },
                                        onChange: (U)=>{
                                            if (!U.target) return;
                                            const le = U.target;
                                            o.value = [
                                                ...le.files ?? []
                                            ];
                                        },
                                        onFocus: S,
                                        onBlur: u
                                    }, J, P), null),
                                    y("div", {
                                        class: ue
                                    }, [
                                        !!o.value?.length && !t.hideInput && (n.selection ? n.selection({
                                            fileNames: m.value,
                                            totalBytes: d.value,
                                            totalBytesReadable: h.value
                                        }) : t.chips ? m.value.map((U)=>y(oa, {
                                                key: U,
                                                size: "small",
                                                text: U
                                            }, null)) : m.value.join(", "))
                                    ])
                                ]);
                            }
                        });
                    },
                    details: E ? (N)=>y(Ce, null, [
                            n.details?.(N),
                            A && y(Ce, null, [
                                y("span", null, null),
                                y(Pl, {
                                    active: !!o.value?.length,
                                    value: f.value,
                                    disabled: t.disabled
                                }, n.counter)
                            ])
                        ]) : void 0
                });
            }), Za({}, p, g, v);
        }
    });
    gR = $({
        autoGrow: Boolean,
        autofocus: Boolean,
        counter: [
            Boolean,
            Number,
            String
        ],
        counterValue: Function,
        prefix: String,
        placeholder: String,
        persistentPlaceholder: Boolean,
        persistentCounter: Boolean,
        noResize: Boolean,
        rows: {
            type: [
                Number,
                String
            ],
            default: 5,
            validator: (t)=>!isNaN(parseFloat(t))
        },
        maxRows: {
            type: [
                Number,
                String
            ],
            validator: (t)=>!isNaN(parseFloat(t))
        },
        suffix: String,
        modelModifiers: Object,
        ...Ir(),
        ...Yo()
    }, "VTextarea");
    n1 = te()({
        name: "VTextarea",
        directives: {
            Intersect: Oo
        },
        inheritAttrs: !1,
        props: gR(),
        emits: {
            "click:control": (t)=>!0,
            "mousedown:control": (t)=>!0,
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, emit: r, slots: n } = e;
            const i = Be(t, "modelValue"), { isFocused: o, focus: s, blur: l } = wr(t), u = T(()=>typeof t.counterValue == "function" ? t.counterValue(i.value) : (i.value || "").toString().length), c = T(()=>{
                if (a.maxlength) return a.maxlength;
                if (!(!t.counter || typeof t.counter != "number" && typeof t.counter != "string")) return t.counter;
            });
            function d(A, E) {
                !t.autofocus || !A || E[0].target?.focus?.();
            }
            const h = W(), m = W(), f = de(""), p = W(), g = T(()=>t.persistentPlaceholder || o.value || t.active);
            function v() {
                p.value !== document.activeElement && p.value?.focus(), o.value || s();
            }
            function b(A) {
                v(), r("click:control", A);
            }
            function k(A) {
                r("mousedown:control", A);
            }
            function S(A) {
                A.stopPropagation(), v(), at(()=>{
                    i.value = "", ul(t["onClick:clear"], A);
                });
            }
            function x(A) {
                const E = A.target;
                if (i.value = E.value, t.modelModifiers?.trim) {
                    const B = [
                        E.selectionStart,
                        E.selectionEnd
                    ];
                    at(()=>{
                        E.selectionStart = B[0], E.selectionEnd = B[1];
                    });
                }
            }
            const C = W(), w = W(Number(t.rows)), F = T(()=>[
                    "plain",
                    "underlined"
                ].includes(t.variant));
            Lt(()=>{
                t.autoGrow || (w.value = Number(t.rows));
            });
            function D() {
                t.autoGrow && at(()=>{
                    if (!C.value || !m.value) return;
                    const A = getComputedStyle(C.value), E = getComputedStyle(m.value.$el), B = parseFloat(A.getPropertyValue("--v-field-padding-top")) + parseFloat(A.getPropertyValue("--v-input-padding-top")) + parseFloat(A.getPropertyValue("--v-field-padding-bottom")), P = C.value.scrollHeight, M = parseFloat(A.lineHeight), R = Math.max(parseFloat(t.rows) * M + B, parseFloat(E.getPropertyValue("--v-input-control-height"))), z = parseFloat(t.maxRows) * M + B || 1 / 0, N = Rt(P ?? 0, R, z);
                    w.value = Math.floor((N - B) / M), f.value = xe(N);
                });
            }
            ea(D), me(i, D), me(()=>t.rows, D), me(()=>t.maxRows, D), me(()=>t.density, D);
            let _;
            return me(C, (A)=>{
                A ? (_ = new ResizeObserver(D), _.observe(C.value)) : _?.disconnect();
            }), ga(()=>{
                _?.disconnect();
            }), ie(()=>{
                const A = !!(n.counter || t.counter || t.counterValue), E = !!(A || n.details), [B, P] = an(a), { modelValue: M, ...R } = ma.filterProps(t), z = Zr.filterProps(t);
                return y(ma, Z({
                    ref: h,
                    modelValue: i.value,
                    "onUpdate:modelValue": (N)=>i.value = N,
                    class: [
                        "v-textarea v-text-field",
                        {
                            "v-textarea--prefixed": t.prefix,
                            "v-textarea--suffixed": t.suffix,
                            "v-text-field--prefixed": t.prefix,
                            "v-text-field--suffixed": t.suffix,
                            "v-textarea--auto-grow": t.autoGrow,
                            "v-textarea--no-resize": t.noResize || t.autoGrow,
                            "v-input--plain-underlined": F.value
                        },
                        t.class
                    ],
                    style: t.style
                }, B, R, {
                    centerAffix: w.value === 1 && !F.value,
                    focused: o.value
                }), {
                    ...n,
                    default: (N)=>{
                        let { id: H, isDisabled: I, isDirty: L, isReadonly: G, isValid: q } = N;
                        return y(Zr, Z({
                            ref: m,
                            style: {
                                "--v-textarea-control-height": f.value
                            },
                            onClick: b,
                            onMousedown: k,
                            "onClick:clear": S,
                            "onClick:prependInner": t["onClick:prependInner"],
                            "onClick:appendInner": t["onClick:appendInner"]
                        }, z, {
                            id: H.value,
                            active: g.value || L.value,
                            centerAffix: w.value === 1 && !F.value,
                            dirty: L.value || t.dirty,
                            disabled: I.value,
                            focused: o.value,
                            error: q.value === !1
                        }), {
                            ...n,
                            default: (X)=>{
                                let { props: { class: ue, ...J } } = X;
                                return y(Ce, null, [
                                    t.prefix && y("span", {
                                        class: "v-text-field__prefix"
                                    }, [
                                        t.prefix
                                    ]),
                                    mt(y("textarea", Z({
                                        ref: p,
                                        class: ue,
                                        value: i.value,
                                        onInput: x,
                                        autofocus: t.autofocus,
                                        readonly: G.value,
                                        disabled: I.value,
                                        placeholder: t.placeholder,
                                        rows: t.rows,
                                        name: t.name,
                                        onFocus: v,
                                        onBlur: l
                                    }, J, P), null), [
                                        [
                                            qa("intersect"),
                                            {
                                                handler: d
                                            },
                                            null,
                                            {
                                                once: !0
                                            }
                                        ]
                                    ]),
                                    t.autoGrow && mt(y("textarea", {
                                        class: [
                                            ue,
                                            "v-textarea__sizer"
                                        ],
                                        id: `${J.id}-sizer`,
                                        "onUpdate:modelValue": (U)=>i.value = U,
                                        ref: C,
                                        readonly: !0,
                                        "aria-hidden": "true"
                                    }, null), [
                                        [
                                            Px,
                                            i.value
                                        ]
                                    ]),
                                    t.suffix && y("span", {
                                        class: "v-text-field__suffix"
                                    }, [
                                        t.suffix
                                    ])
                                ]);
                            }
                        });
                    },
                    details: E ? (N)=>y(Ce, null, [
                            n.details?.(N),
                            A && y(Ce, null, [
                                y("span", null, null),
                                y(Pl, {
                                    active: t.persistentCounter || o.value,
                                    value: u.value,
                                    max: c.value,
                                    disabled: t.disabled
                                }, n.counter)
                            ])
                        ]) : void 0
                });
            }), Za({}, h, m, p);
        }
    });
    i1 = $({
        text: String,
        ...we(),
        ...We()
    }, "VToolbarTitle");
    zl = te()({
        name: "VToolbarTitle",
        props: i1(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>{
                const r = !!(a.default || a.text || t.text);
                return y(t.tag, {
                    class: [
                        "v-toolbar-title",
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            r && y("div", {
                                class: "v-toolbar-title__placeholder"
                            }, [
                                a.text ? a.text() : t.text,
                                a.default?.()
                            ])
                        ]
                });
            }), {};
        }
    });
    vR = [
        null,
        "prominent",
        "default",
        "comfortable",
        "compact"
    ];
    o1 = $({
        absolute: Boolean,
        collapse: Boolean,
        color: String,
        density: {
            type: String,
            default: "default",
            validator: (t)=>vR.includes(t)
        },
        extended: Boolean,
        extensionHeight: {
            type: [
                Number,
                String
            ],
            default: 48
        },
        flat: Boolean,
        floating: Boolean,
        height: {
            type: [
                Number,
                String
            ],
            default: 64
        },
        image: String,
        title: String,
        ...Na(),
        ...we(),
        ...Jt(),
        ...Ct(),
        ...We({
            tag: "header"
        }),
        ...Qe()
    }, "VToolbar");
    Ks = te()({
        name: "VToolbar",
        props: o1(),
        setup (t, e) {
            let { slots: a } = e;
            const { backgroundColorClasses: r, backgroundColorStyles: n } = ft(K(t, "color")), { borderClasses: i } = Xa(t), { elevationClasses: o } = na(t), { roundedClasses: s } = Mt(t), { themeClasses: l } = ut(t), { rtlClasses: u } = Xt(), c = de(!!(t.extended || a.extension?.())), d = T(()=>parseInt(Number(t.height) + (t.density === "prominent" ? Number(t.height) : 0) - (t.density === "comfortable" ? 8 : 0) - (t.density === "compact" ? 16 : 0), 10)), h = T(()=>c.value ? parseInt(Number(t.extensionHeight) + (t.density === "prominent" ? Number(t.extensionHeight) : 0) - (t.density === "comfortable" ? 4 : 0) - (t.density === "compact" ? 8 : 0), 10) : 0);
            return Bt({
                VBtn: {
                    variant: "text"
                }
            }), ie(()=>{
                const m = !!(t.title || a.title), f = !!(a.image || t.image), p = a.extension?.();
                return c.value = !!(t.extended || p), y(t.tag, {
                    class: [
                        "v-toolbar",
                        {
                            "v-toolbar--absolute": t.absolute,
                            "v-toolbar--collapse": t.collapse,
                            "v-toolbar--flat": t.flat,
                            "v-toolbar--floating": t.floating,
                            [`v-toolbar--density-${t.density}`]: !0
                        },
                        r.value,
                        i.value,
                        o.value,
                        s.value,
                        l.value,
                        u.value,
                        t.class
                    ],
                    style: [
                        n.value,
                        t.style
                    ]
                }, {
                    default: ()=>[
                            f && y("div", {
                                key: "image",
                                class: "v-toolbar__image"
                            }, [
                                a.image ? y(Ge, {
                                    key: "image-defaults",
                                    disabled: !t.image,
                                    defaults: {
                                        VImg: {
                                            cover: !0,
                                            src: t.image
                                        }
                                    }
                                }, a.image) : y(_r, {
                                    key: "image-img",
                                    cover: !0,
                                    src: t.image
                                }, null)
                            ]),
                            y(Ge, {
                                defaults: {
                                    VTabs: {
                                        height: xe(d.value)
                                    }
                                }
                            }, {
                                default: ()=>[
                                        y("div", {
                                            class: "v-toolbar__content",
                                            style: {
                                                height: xe(d.value)
                                            }
                                        }, [
                                            a.prepend && y("div", {
                                                class: "v-toolbar__prepend"
                                            }, [
                                                a.prepend?.()
                                            ]),
                                            m && y(zl, {
                                                key: "title",
                                                text: t.title
                                            }, {
                                                text: a.title
                                            }),
                                            a.default?.(),
                                            a.append && y("div", {
                                                class: "v-toolbar__append"
                                            }, [
                                                a.append?.()
                                            ])
                                        ])
                                    ]
                            }),
                            y(Ge, {
                                defaults: {
                                    VTabs: {
                                        height: xe(h.value)
                                    }
                                }
                            }, {
                                default: ()=>[
                                        y(_l, null, {
                                            default: ()=>[
                                                    c.value && y("div", {
                                                        class: "v-toolbar__extension",
                                                        style: {
                                                            height: xe(h.value)
                                                        }
                                                    }, [
                                                        p
                                                    ])
                                                ]
                                        })
                                    ]
                            })
                        ]
                });
            }), {
                contentHeight: d,
                extensionHeight: h
            };
        }
    });
    yR = $({
        ...we(),
        ...or({
            variant: "text"
        })
    }, "VToolbarItems");
    bR = te()({
        name: "VToolbarItems",
        props: yR(),
        setup (t, e) {
            let { slots: a } = e;
            return Bt({
                VBtn: {
                    color: K(t, "color"),
                    height: "inherit",
                    variant: K(t, "variant")
                }
            }), ie(()=>y("div", {
                    class: [
                        "v-toolbar-items",
                        t.class
                    ],
                    style: t.style
                }, [
                    a.default?.()
                ])), {};
        }
    });
    FR = {
        key: 0,
        class: "text-overline text-grey-darken-2 ml-2"
    };
    Ad = 2;
    ko = Ft({
        __name: "AddTorrentDialog",
        props: {
            guid: {},
            openSuddenly: {
                type: Boolean,
                default: !1
            }
        },
        setup (t) {
            const e = t, { isOpened: a } = bl(e.guid), { t: r } = qt(), n = Sl(), { urls: i, files: o, form: s, addTorrentParams: l } = gt(n), u = Ka(), c = ka(), d = T(()=>i.value.length > 0 || o.value.length > 0), h = W(), m = W(), f = T({
                get: ()=>s.value.cookie,
                set: (b)=>s.value.cookie = b || void 0
            }), p = T({
                get: ()=>s.value.rename,
                set: (b)=>s.value.rename = b || void 0
            });
            function g() {
                if (!d.value) return;
                const b = {
                    addToTopOfQueue: l.value.add_to_top_of_queue,
                    autoTMM: l.value.use_auto_tmm,
                    category: l.value.category,
                    contentLayout: l.value.content_layout,
                    cookie: s.value.cookie,
                    dlLimit: l.value.download_limit,
                    downloadPath: l.value.download_path,
                    firstLastPiecePrio: s.value.firstLastPiecePrio,
                    inactiveSeedingTimeLimit: l.value.inactive_seeding_time_limit,
                    paused: l.value.stopped,
                    stopped: l.value.stopped,
                    ratioLimit: l.value.ratio_limit,
                    rename: s.value.rename,
                    savepath: l.value.save_path,
                    seedingTimeLimit: l.value.seeding_time_limit,
                    sequentialDownload: s.value.sequentialDownload,
                    skip_checking: l.value.skip_checking,
                    stopCondition: l.value.stop_condition,
                    tags: l.value.tags?.join(","),
                    upLimit: l.value.upload_limit,
                    useDownloadPath: l.value.use_download_path
                }, k = o.value.length + i.value.split(`
`).filter((S)=>S.trim().length).length;
                gr.promise(u.addTorrents(o.value, i.value, b), {
                    pending: r("toast.add.pending"),
                    error: r("toast.add.error", k),
                    success: r("toast.add.success", k)
                }, {
                    autoClose: 1500
                }).then(()=>{
                    h.value?.saveValueToHistory(), m.value?.saveFields(), n.resetForm(), v();
                });
            }
            function v() {
                a.value = !1;
            }
            return Mr(()=>{
                n.initForm();
            }), (b, k)=>(ve(), ze(Pn, {
                    modelValue: Y(a),
                    "onUpdate:modelValue": k[8] || (k[8] = (S)=>Pt(a) ? a.value = S : null),
                    class: dr(b.$vuetify.display.mobile ? "" : "w-75"),
                    fullscreen: b.$vuetify.display.mobile,
                    scrollable: "",
                    transition: b.openSuddenly ? "none" : "dialog-bottom-transition"
                }, {
                    default: O(()=>[
                            y(ri, null, {
                                default: O(()=>[
                                        y(Hi, {
                                            class: "ios-margin"
                                        }, {
                                            default: O(()=>[
                                                    y(Ks, {
                                                        color: "transparent"
                                                    }, {
                                                        default: O(()=>[
                                                                y(zl, null, {
                                                                    default: O(()=>[
                                                                            Pe(Se(Y(r)("dialogs.add.title")), 1)
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                y(Re, {
                                                                    icon: "mdi-close",
                                                                    onClick: v
                                                                })
                                                            ]),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }),
                                        y(ai, null, {
                                            default: O(()=>[
                                                    y(Pa, null, {
                                                        default: O(()=>[
                                                                y(qe, {
                                                                    cols: "12"
                                                                }, {
                                                                    default: O(()=>[
                                                                            y(r1, {
                                                                                modelValue: Y(o),
                                                                                "onUpdate:modelValue": k[0] || (k[0] = (S)=>Pt(o) ? o.value = S : null),
                                                                                label: Y(r)("dialogs.add.files"),
                                                                                "show-size": Y(c).useBinarySize ? 1024 : 1e3,
                                                                                accept: ".torrent",
                                                                                counter: "",
                                                                                multiple: "",
                                                                                "persistent-clear": "",
                                                                                "persistent-hint": "",
                                                                                "prepend-icon": "",
                                                                                variant: "outlined"
                                                                            }, {
                                                                                prepend: O(()=>[
                                                                                        y(_e, {
                                                                                            color: "accent"
                                                                                        }, {
                                                                                            default: O(()=>k[9] || (k[9] = [
                                                                                                    Pe("mdi-paperclip")
                                                                                                ])),
                                                                                            _: 1
                                                                                        })
                                                                                    ]),
                                                                                selection: O(({ fileNames: S })=>[
                                                                                        (ve(!0), it(Ce, null, dm(S, (x, C)=>(ve(), it(Ce, null, [
                                                                                                C < Ad ? (ve(), ze(oa, {
                                                                                                    key: 0,
                                                                                                    class: "mr-2",
                                                                                                    color: "accent",
                                                                                                    label: "",
                                                                                                    size: "small"
                                                                                                }, {
                                                                                                    default: O(()=>[
                                                                                                            Pe(Se(x), 1)
                                                                                                        ]),
                                                                                                    _: 2
                                                                                                }, 1024)) : Dt("", !0)
                                                                                            ], 64))), 256)),
                                                                                        S.length === Ad + 1 ? (ve(), it("span", FR, Se(Y(r)("dialogs.add.file_overflow", S.length - Ad)), 1)) : Dt("", !0)
                                                                                    ]),
                                                                                _: 1
                                                                            }, 8, [
                                                                                "modelValue",
                                                                                "label",
                                                                                "show-size"
                                                                            ]),
                                                                            y(n1, {
                                                                                modelValue: Y(i),
                                                                                "onUpdate:modelValue": k[1] || (k[1] = (S)=>Pt(i) ? i.value = S : null),
                                                                                label: Y(r)("dialogs.add.links"),
                                                                                clearable: ""
                                                                            }, {
                                                                                prepend: O(()=>[
                                                                                        y(_e, {
                                                                                            color: "accent"
                                                                                        }, {
                                                                                            default: O(()=>k[10] || (k[10] = [
                                                                                                    Pe("mdi-link")
                                                                                                ])),
                                                                                            _: 1
                                                                                        })
                                                                                    ]),
                                                                                _: 1
                                                                            }, 8, [
                                                                                "modelValue",
                                                                                "label"
                                                                            ]),
                                                                            y(El, null, {
                                                                                default: O(()=>[
                                                                                        Y(i) ? (ve(), ze(Dh, {
                                                                                            key: 0,
                                                                                            modelValue: f.value,
                                                                                            "onUpdate:modelValue": k[2] || (k[2] = (S)=>f.value = S),
                                                                                            historyKey: Y(Os).COOKIE,
                                                                                            ref_key: "cookieField",
                                                                                            ref: h,
                                                                                            clearable: "",
                                                                                            label: b.$t("dialogs.add.cookie"),
                                                                                            placeholder: b.$t("dialogs.add.cookie_placeholder")
                                                                                        }, {
                                                                                            prepend: O(()=>[
                                                                                                    y(_e, {
                                                                                                        color: "accent"
                                                                                                    }, {
                                                                                                        default: O(()=>k[11] || (k[11] = [
                                                                                                                Pe("mdi-cookie")
                                                                                                            ])),
                                                                                                        _: 1
                                                                                                    })
                                                                                                ]),
                                                                                            _: 1
                                                                                        }, 8, [
                                                                                            "modelValue",
                                                                                            "historyKey",
                                                                                            "label",
                                                                                            "placeholder"
                                                                                        ])) : Dt("", !0)
                                                                                    ]),
                                                                                _: 1
                                                                            }),
                                                                            y(ya, {
                                                                                modelValue: p.value,
                                                                                "onUpdate:modelValue": k[3] || (k[3] = (S)=>p.value = S),
                                                                                clearable: "",
                                                                                "hide-details": "",
                                                                                label: b.$t("dialogs.add.rename")
                                                                            }, {
                                                                                prepend: O(()=>[
                                                                                        y(_e, {
                                                                                            color: "accent"
                                                                                        }, {
                                                                                            default: O(()=>k[12] || (k[12] = [
                                                                                                    Pe("mdi-rename")
                                                                                                ])),
                                                                                            _: 1
                                                                                        })
                                                                                    ]),
                                                                                _: 1
                                                                            }, 8, [
                                                                                "modelValue",
                                                                                "label"
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                })
                                                            ]),
                                                        _: 1
                                                    }),
                                                    y(Pa, {
                                                        class: "mx-3"
                                                    }, {
                                                        default: O(()=>[
                                                                y(qe, {
                                                                    cols: "12",
                                                                    md: "6"
                                                                }, {
                                                                    default: O(()=>[
                                                                            y(jr, {
                                                                                modelValue: Y(s).sequentialDownload,
                                                                                "onUpdate:modelValue": k[4] || (k[4] = (S)=>Y(s).sequentialDownload = S),
                                                                                label: Y(r)("dialogs.add.sequential_download"),
                                                                                color: "accent",
                                                                                density: "compact",
                                                                                "hide-details": ""
                                                                            }, null, 8, [
                                                                                "modelValue",
                                                                                "label"
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                y(qe, {
                                                                    cols: "12",
                                                                    md: "6"
                                                                }, {
                                                                    default: O(()=>[
                                                                            y(jr, {
                                                                                modelValue: Y(s).firstLastPiecePrio,
                                                                                "onUpdate:modelValue": k[5] || (k[5] = (S)=>Y(s).firstLastPiecePrio = S),
                                                                                label: Y(r)("dialogs.add.first_last_piece_prio"),
                                                                                color: "accent",
                                                                                density: "compact",
                                                                                "hide-details": ""
                                                                            }, null, 8, [
                                                                                "modelValue",
                                                                                "label"
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                })
                                                            ]),
                                                        _: 1
                                                    }),
                                                    y(iR, {
                                                        modelValue: Y(l),
                                                        "onUpdate:modelValue": k[6] || (k[6] = (S)=>Pt(l) ? l.value = S : null),
                                                        ref_key: "addTorrentParamsForm",
                                                        ref: m
                                                    }, null, 8, [
                                                        "modelValue"
                                                    ])
                                                ]),
                                            _: 1
                                        }),
                                        y(Oi, {
                                            class: "mb-2"
                                        }, {
                                            default: O(()=>[
                                                    y(Re, {
                                                        text: b.$t("dialogs.add.reset_form"),
                                                        color: "error",
                                                        variant: "flat",
                                                        onClick: k[7] || (k[7] = (S)=>Y(n).resetForm())
                                                    }, null, 8, [
                                                        "text"
                                                    ]),
                                                    y(un),
                                                    y(Re, {
                                                        disabled: !d.value,
                                                        text: b.$t("dialogs.add.submit"),
                                                        color: "accent",
                                                        type: "submit",
                                                        variant: "elevated",
                                                        onClick: g
                                                    }, null, 8, [
                                                        "disabled",
                                                        "text"
                                                    ]),
                                                    y(Re, {
                                                        text: b.$t("common.close"),
                                                        color: "",
                                                        variant: "flat",
                                                        onClick: v
                                                    }, null, 8, [
                                                        "text"
                                                    ])
                                                ]),
                                            _: 1
                                        })
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }, 8, [
                    "modelValue",
                    "class",
                    "fullscreen",
                    "transition"
                ]));
        }
    });
    kR = $({
        baseColor: String,
        bgColor: String,
        color: String,
        grow: Boolean,
        mode: {
            type: String,
            validator: (t)=>!t || [
                    "horizontal",
                    "shift"
                ].includes(t)
        },
        height: {
            type: [
                Number,
                String
            ],
            default: 56
        },
        active: {
            type: Boolean,
            default: !0
        },
        ...Na(),
        ...we(),
        ...ta(),
        ...Jt(),
        ...Ct(),
        ...Gn({
            name: "bottom-navigation"
        }),
        ...We({
            tag: "header"
        }),
        ...Kn({
            selectedClass: "v-btn--selected"
        }),
        ...Qe()
    }, "VBottomNavigation");
    s1 = te()({
        name: "VBottomNavigation",
        props: kR(),
        emits: {
            "update:active": (t)=>!0,
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = _o(), { borderClasses: n } = Xa(t), { backgroundColorClasses: i, backgroundColorStyles: o } = ft(K(t, "bgColor")), { densityClasses: s } = xa(t), { elevationClasses: l } = na(t), { roundedClasses: u } = Mt(t), { ssrBootStyles: c } = Zn(), d = T(()=>Number(t.height) - (t.density === "comfortable" ? 8 : 0) - (t.density === "compact" ? 16 : 0)), h = Be(t, "active", t.active), { layoutItemStyles: m } = Wn({
                id: t.name,
                order: T(()=>parseInt(t.order, 10)),
                position: T(()=>"bottom"),
                layoutSize: T(()=>h.value ? d.value : 0),
                elementSize: d,
                active: h,
                absolute: K(t, "absolute")
            });
            return ln(t, nf), Bt({
                VBtn: {
                    baseColor: K(t, "baseColor"),
                    color: K(t, "color"),
                    density: K(t, "density"),
                    stacked: T(()=>t.mode !== "horizontal"),
                    variant: "text"
                }
            }, {
                scoped: !0
            }), ie(()=>y(t.tag, {
                    class: [
                        "v-bottom-navigation",
                        {
                            "v-bottom-navigation--active": h.value,
                            "v-bottom-navigation--grow": t.grow,
                            "v-bottom-navigation--shift": t.mode === "shift"
                        },
                        r.value,
                        i.value,
                        n.value,
                        s.value,
                        l.value,
                        u.value,
                        t.class
                    ],
                    style: [
                        o.value,
                        m.value,
                        {
                            height: xe(d.value)
                        },
                        c.value,
                        t.style
                    ]
                }, {
                    default: ()=>[
                            a.default && y("div", {
                                class: "v-bottom-navigation__content"
                            }, [
                                a.default()
                            ])
                        ]
                })), {};
        }
    });
    function xR(t, e) {
        const a = e.modifiers || {}, r = e.value, { once: n, immediate: i, ...o } = a, s = !Object.keys(o).length, { handler: l, options: u } = typeof r == "object" ? r : {
            handler: r,
            options: {
                attributes: o?.attr ?? s,
                characterData: o?.char ?? s,
                childList: o?.child ?? s,
                subtree: o?.sub ?? s
            }
        }, c = new MutationObserver(function() {
            let d = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], h = arguments.length > 1 ? arguments[1] : void 0;
            l?.(d, h), n && l1(t, e);
        });
        i && l?.([], c), t._mutate = Object(t._mutate), t._mutate[e.instance.$.uid] = {
            observer: c
        }, c.observe(t, u);
    }
    function l1(t, e) {
        t._mutate?.[e.instance.$.uid] && (t._mutate[e.instance.$.uid].observer.disconnect(), delete t._mutate[e.instance.$.uid]);
    }
    const wR = {
        mounted: xR,
        unmounted: l1
    };
    function SR(t, e) {
        const a = e.value, r = {
            passive: !e.modifiers?.active
        };
        window.addEventListener("resize", a, r), t._onResize = Object(t._onResize), t._onResize[e.instance.$.uid] = {
            handler: a,
            options: r
        }, e.modifiers?.quiet || a();
    }
    function CR(t, e) {
        if (!t._onResize?.[e.instance.$.uid]) return;
        const { handler: a, options: r } = t._onResize[e.instance.$.uid];
        window.removeEventListener("resize", a, r), delete t._onResize[e.instance.$.uid];
    }
    const AR = {
        mounted: SR,
        unmounted: CR
    };
    function u1(t, e) {
        const { self: a = !1 } = e.modifiers ?? {}, r = e.value, n = typeof r == "object" && r.options || {
            passive: !0
        }, i = typeof r == "function" || "handleEvent" in r ? r : r.handler, o = a ? t : e.arg ? document.querySelector(e.arg) : window;
        o && (o.addEventListener("scroll", i, n), t._onScroll = Object(t._onScroll), t._onScroll[e.instance.$.uid] = {
            handler: i,
            options: n,
            target: a ? void 0 : o
        });
    }
    function c1(t, e) {
        if (!t._onScroll?.[e.instance.$.uid]) return;
        const { handler: a, options: r, target: n = t } = t._onScroll[e.instance.$.uid];
        n.removeEventListener("scroll", a, r), delete t._onScroll[e.instance.$.uid];
    }
    function DR(t, e) {
        e.value !== e.oldValue && (c1(t, e), u1(t, e));
    }
    const TR = {
        mounted: u1,
        unmounted: c1,
        updated: DR
    }, ER = (t)=>{
        const { touchstartX: e, touchendX: a, touchstartY: r, touchendY: n } = t, i = .5, o = 16;
        t.offsetX = a - e, t.offsetY = n - r, Math.abs(t.offsetY) < i * Math.abs(t.offsetX) && (t.left && a < e - o && t.left(t), t.right && a > e + o && t.right(t)), Math.abs(t.offsetX) < i * Math.abs(t.offsetY) && (t.up && n < r - o && t.up(t), t.down && n > r + o && t.down(t));
    };
    function _R(t, e) {
        const a = t.changedTouches[0];
        e.touchstartX = a.clientX, e.touchstartY = a.clientY, e.start?.({
            originalEvent: t,
            ...e
        });
    }
    function PR(t, e) {
        const a = t.changedTouches[0];
        e.touchendX = a.clientX, e.touchendY = a.clientY, e.end?.({
            originalEvent: t,
            ...e
        }), ER(e);
    }
    function BR(t, e) {
        const a = t.changedTouches[0];
        e.touchmoveX = a.clientX, e.touchmoveY = a.clientY, e.move?.({
            originalEvent: t,
            ...e
        });
    }
    function MR() {
        let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
        const e = {
            touchstartX: 0,
            touchstartY: 0,
            touchendX: 0,
            touchendY: 0,
            touchmoveX: 0,
            touchmoveY: 0,
            offsetX: 0,
            offsetY: 0,
            left: t.left,
            right: t.right,
            up: t.up,
            down: t.down,
            start: t.start,
            move: t.move,
            end: t.end
        };
        return {
            touchstart: (a)=>_R(a, e),
            touchend: (a)=>PR(a, e),
            touchmove: (a)=>BR(a, e)
        };
    }
    function RR(t, e) {
        const a = e.value, r = a?.parent ? t.parentElement : t, n = a?.options ?? {
            passive: !0
        }, i = e.instance?.$.uid;
        if (!r || !i) return;
        const o = MR(e.value);
        r._touchHandlers = r._touchHandlers ?? Object.create(null), r._touchHandlers[i] = o, $y(o).forEach((s)=>{
            r.addEventListener(s, o[s], n);
        });
    }
    function LR(t, e) {
        const a = e.value?.parent ? t.parentElement : t, r = e.instance?.$.uid;
        if (!a?._touchHandlers || !r) return;
        const n = a._touchHandlers[r];
        $y(n).forEach((i)=>{
            a.removeEventListener(i, n[i]);
        }), delete a._touchHandlers[r];
    }
    let Nl, IR;
    Nl = {
        mounted: RR,
        unmounted: LR
    };
    IR = $({
        id: String,
        interactive: Boolean,
        text: String,
        ...It($o({
            closeOnBack: !1,
            location: "end",
            locationStrategy: "connected",
            eager: !0,
            minWidth: 0,
            offset: 10,
            openOnClick: !1,
            openOnHover: !0,
            origin: "auto",
            scrim: !1,
            scrollStrategy: "reposition",
            transition: !1
        }), [
            "absolute",
            "persistent"
        ])
    }, "VTooltip");
    sa = te()({
        name: "VTooltip",
        props: IR(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), { scopeId: n } = ei(), i = La(), o = T(()=>t.id || `v-tooltip-${i}`), s = W(), l = T(()=>t.location.split(" ").length > 1 ? t.location : t.location + " center"), u = T(()=>t.origin === "auto" || t.origin === "overlap" || t.origin.split(" ").length > 1 || t.location.split(" ").length > 1 ? t.origin : t.origin + " center"), c = T(()=>t.transition ? t.transition : r.value ? "scale-transition" : "fade-transition"), d = T(()=>Z({
                    "aria-describedby": o.value
                }, t.activatorProps));
            return ie(()=>{
                const h = yr.filterProps(t);
                return y(yr, Z({
                    ref: s,
                    class: [
                        "v-tooltip",
                        {
                            "v-tooltip--interactive": t.interactive
                        },
                        t.class
                    ],
                    style: t.style,
                    id: o.value
                }, h, {
                    modelValue: r.value,
                    "onUpdate:modelValue": (m)=>r.value = m,
                    transition: c.value,
                    absolute: !0,
                    location: l.value,
                    origin: u.value,
                    persistent: !0,
                    role: "tooltip",
                    activatorProps: d.value,
                    _disableGlobalStack: !0
                }, n), {
                    activator: a.activator,
                    default: function() {
                        for(var m = arguments.length, f = new Array(m), p = 0; p < m; p++)f[p] = arguments[p];
                        return a.default?.(...f) ?? t.text;
                    }
                });
            }), Za({}, s);
        }
    });
    function zR(t, e) {
        const a = typeof t == "string" ? Ny(t) : t, r = NR(a, e);
        return {
            mounted: r,
            updated: r,
            unmounted (n) {
                Oy(null, n);
            }
        };
    }
    function NR(t, e) {
        return function(a, r, n) {
            const i = typeof e == "function" ? e(r) : e, o = r.value?.text ?? r.value ?? i?.text, s = pm(r.value) ? r.value : {}, l = ()=>o ?? a.textContent, u = (n.ctx === r.instance.$ ? OR(n, r.instance.$)?.provides : n.ctx?.provides) ?? r.instance.$.provides, c = On(t, Z(i, s), l);
            c.appContext = Object.assign(Object.create(null), r.instance.$.appContext, {
                provides: u
            }), Oy(c, a);
        };
    }
    function OR(t, e) {
        const a = new Set, r = (i)=>{
            for (const o of i){
                if (!o) continue;
                if (o === t || o.el && t.el && o.el === t.el) return !0;
                a.add(o);
                let s;
                if (o.suspense ? s = r([
                    o.ssContent
                ]) : Array.isArray(o.children) ? s = r(o.children) : o.component?.vnode && (s = r([
                    o.component?.subTree
                ])), s) return s;
                a.delete(o);
            }
            return !1;
        };
        if (!r([
            e.subTree
        ])) return e;
        const n = Array.from(a).reverse();
        for (const i of n)if (i.component) return i.component;
        return e;
    }
    let HR, VR, WR, GR, $R, UR, jR, YR, qR, KR, XR, JR, ZR, QR, eL, tL, aL, rL, nL, iL, oL, sL, lL, uL, cL, of, gs, dL, hL, mL, Zv, fL, pL, Qv, gL, vL, yL, _h, bL;
    HR = zR(sa, (t)=>({
            activator: "parent",
            location: t.arg?.replace("-", " "),
            text: typeof t.value == "boolean" ? void 0 : t.value
        }));
    VR = Object.freeze(Object.defineProperty({
        __proto__: null,
        ClickOutside: B0,
        Intersect: Oo,
        Mutate: wR,
        Resize: AR,
        Ripple: Lr,
        Scroll: TR,
        Tooltip: HR,
        Touch: Nl
    }, Symbol.toStringTag, {
        value: "Module"
    }));
    WR = Ft({
        __name: "AddPanel",
        setup (t) {
            const e = Sl(), a = Bi();
            function r() {
                a.createDialog(ko);
            }
            return (n, i)=>mt((ve(), ze(s1, {
                    active: Y(e).pendingTorrentsCount > 0,
                    class: "cursor-pointer",
                    onClick: r
                }, {
                    default: O(()=>[
                            y(tt, {
                                title: n.$t("navbar.addPanel.torrentsPendingCount", Y(e).pendingTorrentsCount)
                            }, null, 8, [
                                "title"
                            ]),
                            y(un),
                            y(tt, null, {
                                default: O(()=>[
                                        y(_e, {
                                            icon: "mdi-chevron-up"
                                        })
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }, 8, [
                    "active"
                ])), [
                    [
                        Nl,
                        {
                            up: r
                        }
                    ]
                ]);
        }
    });
    GR = {
        class: "d-flex align-center justify-center h-100"
    };
    $R = {
        class: "d-flex flex-column align-center justify-center dnd-zone-border text-accent"
    };
    UR = {
        class: "d-flex align-center justify-center h-100"
    };
    jR = {
        class: "d-flex flex-column align-center justify-center dnd-zone-border text-accent"
    };
    YR = Ft({
        __name: "DnDZone",
        setup (t) {
            const { t: e } = qt(), a = hm(), r = Sl(), n = kr(), i = Bi(), o = Ka(), s = W(), l = W(), u = W(), { isOverDropZone: c } = fu(s), { isOverDropZone: d } = fu(l, {
                onDrop: v
            }), { isOverDropZone: h } = fu(u, {
                onDrop: b
            });
            function m() {
                const S = a.name, x = a.params.tab, C = a.params.subtab;
                !n.isAuthenticated || S === "login" || S === "settings" && x === "vuetorrent" && C.startsWith("torrentCard") || (c.value = !0);
            }
            function f(S) {
                return S.preventDefault(), !!S.dataTransfer;
            }
            function p(S, x) {
                const C = (S || []).filter((F)=>F.type === "application/x-bittorrent" || F.name.endsWith(".torrent")), w = x.getData("text/plain").split(`
`).filter((F)=>F.startsWith("magnet:") || F.startsWith("http"));
                return [
                    C,
                    w
                ];
            }
            function g(S) {
                const x = S.clipboardData;
                if (!x) return [
                    [],
                    []
                ];
                const C = Array.from(x.items).filter((F)=>F.kind === "file").map((F)=>F.getAsFile()).filter((F)=>!!F).filter((F)=>F.type === "application/x-bittorrent" || F.name.endsWith(".torrent")), w = x.getData("text/plain").split(`
`).filter((F)=>F.startsWith("magnet:") || F.startsWith("http"));
                return [
                    C,
                    w
                ];
            }
            function v(S, x) {
                if (!f(x)) return;
                const [C, w] = p(S, x.dataTransfer);
                C.forEach(r.pushTorrentToQueue), w.forEach(r.pushTorrentToQueue), i.hasActiveDialog || i.createDialog(ko);
            }
            function b(S, x) {
                if (!f(x)) return;
                const [C, w] = p(S, x.dataTransfer), F = C.length + w.filter((D)=>D.trim().length).length;
                return gr.promise(o.addTorrents(C, w), {
                    pending: e("toast.add.pending"),
                    error: e("toast.add.error", F),
                    success: e("toast.add.success", F)
                }, {
                    autoClose: 1500
                });
            }
            function k(S) {
                const x = S.target;
                if (x instanceof HTMLInputElement || x instanceof HTMLTextAreaElement) return !1;
                S.preventDefault();
                const [C, w] = g(S);
                C.forEach(r.pushTorrentToQueue), w.forEach(r.pushTorrentToQueue), (C.length || w.length) && !i.hasActiveDialog && i.createDialog(ko);
            }
            return ea(()=>{
                document.addEventListener("paste", k), document.addEventListener("dragenter", m);
            }), il(()=>{
                document.removeEventListener("paste", k), document.removeEventListener("dragenter", m);
            }), (S, x)=>mt((ve(), it("div", {
                    ref_key: "dndZoneRef",
                    ref: s,
                    class: "position-fixed w-100 h-100",
                    style: {
                        "z-index": "9999"
                    }
                }, [
                    y(go, null, {
                        default: O(()=>[
                                mt(nt("div", {
                                    ref_key: "queueZoneRef",
                                    ref: l,
                                    class: dr([
                                        "h-50",
                                        Y(d) ? "dnd-bg-active" : "dnd-bg"
                                    ])
                                }, [
                                    nt("div", GR, [
                                        nt("div", $R, [
                                            y(_e, {
                                                size: "75"
                                            }, {
                                                default: O(()=>x[0] || (x[0] = [
                                                        Pe("mdi-cloud-upload")
                                                    ])),
                                                _: 1
                                            }),
                                            nt("span", null, Se(S.$t("dialogs.add.drop_label")), 1)
                                        ])
                                    ])
                                ], 2), [
                                    [
                                        Ca,
                                        Y(c)
                                    ]
                                ])
                            ]),
                        _: 1
                    }),
                    y(go, null, {
                        default: O(()=>[
                                mt(nt("div", {
                                    ref_key: "downloadZoneRef",
                                    ref: u,
                                    class: dr([
                                        "h-50",
                                        Y(h) ? "dnd-bg-active" : "dnd-bg"
                                    ])
                                }, [
                                    nt("div", UR, [
                                        nt("div", jR, [
                                            y(_e, {
                                                size: "75"
                                            }, {
                                                default: O(()=>x[1] || (x[1] = [
                                                        Pe("mdi-download")
                                                    ])),
                                                _: 1
                                            }),
                                            nt("span", null, Se(S.$t("dialogs.add.instant_drop_label")), 1)
                                        ])
                                    ])
                                ], 2), [
                                    [
                                        Ca,
                                        Y(c)
                                    ]
                                ])
                            ]),
                        _: 1
                    })
                ], 512)), [
                    [
                        Ca,
                        Y(c)
                    ]
                ]);
        }
    });
    d1 = (t, e)=>{
        const a = t.__vccOpts || t;
        for (const [r, n] of e)a[r] = n;
        return a;
    };
    qR = d1(YR, [
        [
            "__scopeId",
            "data-v-85067a26"
        ]
    ]);
    KR = Ft({
        __name: "ConfirmShutdownDialog",
        props: {
            guid: {}
        },
        setup (t) {
            const e = t, { t: a } = qt(), { isOpened: r } = bl(e.guid), n = kr(), i = ka(), o = ()=>{
                r.value = !1;
            }, s = async ()=>{
                await n.shutdownQbit() ? (await n.setAuthStatus(!1), await i.redirectToLogin(), gr.success(a("dialogs.shutdown.success"))) : gr.error(a("dialogs.shutdown.error")), o();
            };
            return (l, u)=>(ve(), ze(Pn, {
                    modelValue: Y(r),
                    "onUpdate:modelValue": u[0] || (u[0] = (c)=>Pt(r) ? r.value = c : null),
                    width: "auto"
                }, {
                    default: O(()=>[
                            y(ri, {
                                title: l.$t("dialogs.shutdown.title"),
                                text: l.$t("dialogs.shutdown.content")
                            }, {
                                default: O(()=>[
                                        y(Oi, {
                                            class: "justify-end"
                                        }, {
                                            default: O(()=>[
                                                    y(un),
                                                    y(Re, {
                                                        class: "accent elevation-0 px-4",
                                                        variant: "elevated",
                                                        color: "error",
                                                        onClick: s
                                                    }, {
                                                        default: O(()=>[
                                                                Pe(Se(l.$t("common.yes")), 1)
                                                            ]),
                                                        _: 1
                                                    }),
                                                    y(Re, {
                                                        class: "error elevation-0 px-4",
                                                        onClick: o
                                                    }, {
                                                        default: O(()=>[
                                                                Pe(Se(l.$t("common.no")), 1)
                                                            ]),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        })
                                    ]),
                                _: 1
                            }, 8, [
                                "title",
                                "text"
                            ])
                        ]),
                    _: 1
                }, 8, [
                    "modelValue"
                ]));
        }
    });
    XR = {
        class: "ml-2"
    };
    JR = {
        key: 0
    };
    ZR = {
        key: 1,
        class: "text-warning"
    };
    QR = {
        class: "ml-2"
    };
    eL = {
        class: "ml-2"
    };
    tL = {
        class: "ml-2"
    };
    aL = {
        key: 0,
        class: "text-grey"
    };
    rL = {
        key: 1,
        class: "text-info"
    };
    nL = {
        key: 2,
        class: "text-warning"
    };
    iL = {
        class: "ml-2"
    };
    oL = {
        key: 0,
        class: "text-grey"
    };
    sL = {
        key: 1,
        class: "text-info"
    };
    lL = {
        key: 2,
        class: "text-warning"
    };
    uL = Ft({
        __name: "ConnectionStatusDialog",
        props: {
            guid: {}
        },
        setup (t) {
            const e = t, { isOpened: a } = bl(e.guid), r = LF(), n = Yn(), i = ka(), o = T(()=>{
                switch(n.serverState?.connection_status){
                    case Ga.CONNECTED:
                        return "text-success";
                    case Ga.DISCONNECTED:
                        return "text-error";
                    case Ga.FIREWALLED:
                        return "text-warning";
                    default:
                        return "text-grey";
                }
            }), s = ()=>{
                a.value = !1;
            };
            return (l, u)=>(ve(), ze(Pn, {
                    modelValue: Y(a),
                    "onUpdate:modelValue": u[0] || (u[0] = (c)=>Pt(a) ? a.value = c : null)
                }, {
                    default: O(()=>[
                            y(ri, null, {
                                default: O(()=>[
                                        y(ai, null, {
                                            default: O(()=>[
                                                    y(Pa, null, {
                                                        default: O(()=>[
                                                                y(qe, {
                                                                    cols: "12",
                                                                    sm: "6",
                                                                    lg: "3"
                                                                }, {
                                                                    default: O(()=>[
                                                                            nt("div", null, Se(l.$t("dialogs.connectionStatus.status")), 1),
                                                                            nt("div", {
                                                                                class: dr([
                                                                                    "ml-2",
                                                                                    o.value
                                                                                ])
                                                                            }, Se(l.$t("constants.connectionStatus." + Y(n).serverState?.connection_status)), 3)
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                y(qe, {
                                                                    cols: "12",
                                                                    sm: "6",
                                                                    lg: "3"
                                                                }, {
                                                                    default: O(()=>[
                                                                            nt("div", null, Se(l.$t("dialogs.connectionStatus.externalIp")), 1),
                                                                            nt("div", XR, [
                                                                                Y(r).externalIp ? (ve(), it("span", JR, Se(Y(r).externalIp), 1)) : (ve(), it("span", ZR, Se(l.$t("dialogs.connectionStatus.noExternalIp")), 1))
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                y(qe, {
                                                                    cols: "12",
                                                                    sm: "6",
                                                                    lg: "3"
                                                                }, {
                                                                    default: O(()=>[
                                                                            nt("div", null, Se(l.$t("dialogs.connectionStatus.dht_nodes")), 1),
                                                                            nt("div", QR, Se(Y(n).serverState?.dht_nodes), 1)
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                y(qe, {
                                                                    cols: "12",
                                                                    sm: "6",
                                                                    lg: "3"
                                                                }, {
                                                                    default: O(()=>[
                                                                            nt("div", null, Se(l.$t("dialogs.connectionStatus.total_peer_connections")), 1),
                                                                            nt("div", eL, Se(Y(n).serverState?.total_peer_connections), 1)
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                y(qe, {
                                                                    cols: "12",
                                                                    sm: "6",
                                                                    lg: "3"
                                                                }, {
                                                                    default: O(()=>[
                                                                            nt("div", null, Se(l.$t("dialogs.connectionStatus.isp_details")), 1),
                                                                            nt("div", tL, [
                                                                                Y(i).fetchExternalIpInfo ? Y(r).ispDetails ? (ve(), it("span", rL, Se(Y(r).ispDetails), 1)) : (ve(), it("span", nL, Se(l.$t("dialogs.connectionStatus.fetch_isp_failed")), 1)) : (ve(), it("span", aL, Se(l.$t("dialogs.connectionStatus.fetch_disabled")), 1))
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                y(qe, {
                                                                    cols: "12",
                                                                    sm: "6",
                                                                    lg: "3"
                                                                }, {
                                                                    default: O(()=>[
                                                                            nt("div", null, Se(l.$t("dialogs.connectionStatus.geo_details")), 1),
                                                                            nt("div", iL, [
                                                                                Y(i).fetchExternalIpInfo ? Y(r).geoDetails ? (ve(), it("span", sL, Se(Y(r).geoDetails), 1)) : (ve(), it("span", lL, Se(l.$t("dialogs.connectionStatus.fetch_geo_failed")), 1)) : (ve(), it("span", oL, Se(l.$t("dialogs.connectionStatus.fetch_disabled")), 1))
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                })
                                                            ]),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }),
                                        y(Oi, null, {
                                            default: O(()=>[
                                                    y(un),
                                                    y(Re, {
                                                        color: "error",
                                                        onClick: s
                                                    }, {
                                                        default: O(()=>[
                                                                Pe(Se(l.$t("common.close")), 1)
                                                            ]),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        })
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }, 8, [
                    "modelValue"
                ]));
        }
    });
    cL = Ft({
        __name: "BottomActions",
        setup (t) {
            const { t: e } = qt(), a = kr(), r = Bi(), n = Yn(), i = ka(), o = T(()=>!!n.serverState?.use_alt_speed_limits), s = T(()=>{
                switch(n.serverState?.connection_status){
                    case Ga.CONNECTED:
                        return "mdi-check-network";
                    case Ga.FIREWALLED:
                        return "mdi-close-network";
                    case Ga.DISCONNECTED:
                        return "mdi-network-off";
                    case Ga.UNKNOWN:
                    default:
                        return "mdi-help-network";
                }
            }), l = T(()=>{
                let f;
                switch(n.serverState?.connection_status){
                    case Ga.CONNECTED:
                    case Ga.FIREWALLED:
                    case Ga.DISCONNECTED:
                        f = n.serverState.connection_status;
                        break;
                    case Ga.UNKNOWN:
                    default:
                        f = "unknown";
                }
                return e("navbar.side.bottom_actions.conn_status", {
                    status: e(`constants.connectionStatus.${f}`)
                });
            }), u = T(()=>{
                switch(i.theme.mode){
                    case Ea.DARK:
                        return "mdi-brightness-4";
                    case Ea.SYSTEM:
                        return "mdi-theme-light-dark";
                    default:
                        return "mdi-brightness-7";
                }
            }), c = async ()=>{
                await a.logout(), await i.redirectToLogin();
            }, d = ()=>{
                a.toggleAlternativeMode();
            };
            function h() {
                r.createDialog(uL);
            }
            function m() {
                r.createDialog(KR);
            }
            return (f, p)=>(ve(), it(Ce, null, [
                    y(Pa, {
                        "no-gutters": ""
                    }, {
                        default: O(()=>[
                                y(qe, {
                                    class: "d-flex justify-center"
                                }, {
                                    default: O(()=>[
                                            y(sa, {
                                                text: Y(e)("navbar.side.bottom_actions.logout"),
                                                location: "top"
                                            }, {
                                                activator: O(({ props: g })=>[
                                                        y(Re, Z({
                                                            variant: "plain",
                                                            icon: "mdi-exit-to-app"
                                                        }, g, {
                                                            onClick: c
                                                        }), null, 16)
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "text"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    class: "d-flex justify-center"
                                }, {
                                    default: O(()=>[
                                            y(sa, {
                                                text: Y(e)("navbar.side.bottom_actions.alt_speed"),
                                                location: "top"
                                            }, {
                                                activator: O(({ props: g })=>[
                                                        y(Re, Z({
                                                            variant: "plain",
                                                            color: o.value ? "accent" : void 0,
                                                            icon: o.value ? "mdi-speedometer-slow" : "mdi-speedometer"
                                                        }, g, {
                                                            onClick: d
                                                        }), null, 16, [
                                                            "color",
                                                            "icon"
                                                        ])
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "text"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    class: "d-flex justify-center"
                                }, {
                                    default: O(()=>[
                                            y(sa, {
                                                text: l.value,
                                                location: "top"
                                            }, {
                                                activator: O(({ props: g })=>[
                                                        y(Re, Z({
                                                            variant: "plain",
                                                            icon: s.value
                                                        }, g, {
                                                            onClick: h
                                                        }), null, 16, [
                                                            "icon"
                                                        ])
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "text"
                                            ])
                                        ]),
                                    _: 1
                                }),
                                y(qe, {
                                    class: "d-flex justify-center"
                                }, {
                                    default: O(()=>[
                                            y(sa, {
                                                text: Y(e)("navbar.side.bottom_actions.dark_mode", Y(i).theme.mode),
                                                location: "top"
                                            }, {
                                                activator: O(({ props: g })=>[
                                                        y(Re, Z({
                                                            variant: "plain",
                                                            icon: u.value
                                                        }, g, {
                                                            onClick: p[0] || (p[0] = (v)=>Y(i).toggleTheme())
                                                        }), null, 16, [
                                                            "icon"
                                                        ])
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "text"
                                            ])
                                        ]),
                                    _: 1
                                })
                            ]),
                        _: 1
                    }),
                    Y(i).isShutdownButtonVisible ? (ve(), ze(Pa, {
                        key: 0,
                        "no-gutters": ""
                    }, {
                        default: O(()=>[
                                y(qe, {
                                    class: "d-flex justify-center"
                                }, {
                                    default: O(()=>[
                                            y(sa, {
                                                text: Y(e)("navbar.side.bottom_actions.shutdown"),
                                                location: "top"
                                            }, {
                                                activator: O(({ props: g })=>[
                                                        y(Re, Z({
                                                            block: "",
                                                            color: "error",
                                                            rounded: "0"
                                                        }, g, {
                                                            onClick: m
                                                        }), {
                                                            default: O(()=>[
                                                                    y(_e, {
                                                                        size: "x-large"
                                                                    }, {
                                                                        default: O(()=>p[1] || (p[1] = [
                                                                                Pe("mdi-power")
                                                                            ])),
                                                                        _: 1
                                                                    })
                                                                ]),
                                                            _: 2
                                                        }, 1040)
                                                    ]),
                                                _: 1
                                            }, 8, [
                                                "text"
                                            ])
                                        ]),
                                    _: 1
                                })
                            ]),
                        _: 1
                    })) : Dt("", !0)
                ], 64));
        }
    });
    of = $({
        color: String,
        ...Na(),
        ...we(),
        ...Ut(),
        ...Jt(),
        ...zr(),
        ...zi(),
        ...Ct(),
        ...We(),
        ...Qe()
    }, "VSheet");
    Br = te()({
        name: "VSheet",
        props: of(),
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t), { backgroundColorClasses: n, backgroundColorStyles: i } = ft(K(t, "color")), { borderClasses: o } = Xa(t), { dimensionStyles: s } = jt(t), { elevationClasses: l } = na(t), { locationStyles: u } = ti(t), { positionClasses: c } = Ni(t), { roundedClasses: d } = Mt(t);
            return ie(()=>y(t.tag, {
                    class: [
                        "v-sheet",
                        r.value,
                        n.value,
                        o.value,
                        l.value,
                        c.value,
                        d.value,
                        t.class
                    ],
                    style: [
                        i.value,
                        s.value,
                        u.value,
                        t.style
                    ]
                }, a)), {};
        }
    });
    gs = Ft({
        __name: "SpeedCard",
        props: {
            icon: {},
            color: {},
            value: {},
            active: {
                type: Boolean,
                default: !1
            }
        },
        emits: [
            "click"
        ],
        setup (t) {
            const e = ka();
            return (a, r)=>(ve(), ze(Br, {
                    class: dr([
                        {
                            "cursor-pointer": !!a.$.vnode.props?.onClick
                        },
                        "py-3"
                    ]),
                    color: a.active ? "secondary-lighten-1" : "secondary",
                    rounded: "lg",
                    onClick: r[0] || (r[0] = gn((n)=>a.$emit("click", n), [
                        "stop"
                    ]))
                }, {
                    default: O(()=>[
                            y(Pa, {
                                class: "d-flex flex-row align-center px-3"
                            }, {
                                default: O(()=>[
                                        y(qe, {
                                            cols: "2",
                                            class: "px-4"
                                        }, {
                                            default: O(()=>[
                                                    y(_e, {
                                                        class: "",
                                                        icon: a.icon,
                                                        color: a.color
                                                    }, null, 8, [
                                                        "icon",
                                                        "color"
                                                    ])
                                                ]),
                                            _: 1
                                        }),
                                        y(qe, {
                                            cols: "8",
                                            class: "d-flex flex-column align-center justify-center"
                                        }, {
                                            default: O(()=>[
                                                    nt("div", null, [
                                                        nt("span", {
                                                            class: dr(`text-subtitle-1 font-weight-bold text-select text-${a.color}`)
                                                        }, Se(Y(nF)(a.value, Y(e).useBitSpeed)), 3)
                                                    ]),
                                                    nt("div", null, [
                                                        nt("span", {
                                                            class: dr(`text-caption text-${a.color}`)
                                                        }, Se(Y(iF)(a.value, Y(e).useBitSpeed)), 3)
                                                    ])
                                                ]),
                                            _: 1
                                        })
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }, 8, [
                    "class",
                    "color"
                ]));
        }
    });
    dL = Ft({
        __name: "CurrentSpeed",
        setup (t) {
            const { t: e } = qt(), { serverState: a } = gt(Yn()), { displayGraphLimits: r } = gt(ka()), { statusFilter: n } = gt(Ka()), i = [
                Ze.DOWNLOADING,
                Ze.DL_FORCED
            ], o = [
                Ze.UPLOADING,
                Ze.UL_FORCED
            ];
            function s() {
                n.value = [];
            }
            function l() {
                n.value = i;
            }
            function u() {
                n.value = o;
            }
            const c = T(()=>i.every((h)=>n.value.includes(h)) && i.length === n.value.length), d = T(()=>o.every((h)=>n.value.includes(h)) && o.length === n.value.length);
            return (h, m)=>(ve(), ze(ri, {
                    flat: "",
                    class: "inherit-bg"
                }, {
                    default: O(()=>[
                            y(Hi, {
                                class: "px-0 text-uppercase text-white ml-1 font-weight-light text-subtitle-2"
                            }, {
                                default: O(()=>[
                                        Pe(Se(Y(e)("navbar.side.current_speed.title")), 1)
                                    ]),
                                _: 1
                            }),
                            y(ai, {
                                class: "px-0"
                            }, {
                                default: O(()=>[
                                        y(Br, {
                                            class: "mx-2 inherit-bg"
                                        }, {
                                            default: O(()=>[
                                                    y(Pa, {
                                                        class: "pt-0"
                                                    }, {
                                                        default: O(()=>[
                                                                y(qe, {
                                                                    cols: "6",
                                                                    class: "px-1 pt-1"
                                                                }, {
                                                                    default: O(()=>[
                                                                            y(gs, {
                                                                                icon: "mdi-arrow-down",
                                                                                color: "download",
                                                                                value: Y(a)?.dl_info_speed ?? 0,
                                                                                active: c.value,
                                                                                onClick: m[0] || (m[0] = (f)=>c.value ? s() : l())
                                                                            }, null, 8, [
                                                                                "value",
                                                                                "active"
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                y(qe, {
                                                                    cols: "6",
                                                                    class: "px-1 pt-1"
                                                                }, {
                                                                    default: O(()=>[
                                                                            y(gs, {
                                                                                icon: "mdi-arrow-up",
                                                                                color: "upload",
                                                                                value: Y(a)?.up_info_speed ?? 0,
                                                                                active: d.value,
                                                                                onClick: m[1] || (m[1] = (f)=>d.value ? s() : u())
                                                                            }, null, 8, [
                                                                                "value",
                                                                                "active"
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                }),
                                                                Y(r) && (Y(a)?.dl_rate_limit || Y(a)?.up_rate_limit) ? (ve(), it(Ce, {
                                                                    key: 0
                                                                }, [
                                                                    Y(a).dl_rate_limit ? (ve(), ze(qe, {
                                                                        key: 0,
                                                                        cols: "6",
                                                                        class: "px-1 pt-0"
                                                                    }, {
                                                                        default: O(()=>[
                                                                                y(gs, {
                                                                                    icon: "mdi-arrow-collapse-down",
                                                                                    color: "download",
                                                                                    value: Y(a).dl_rate_limit
                                                                                }, null, 8, [
                                                                                    "value"
                                                                                ])
                                                                            ]),
                                                                        _: 1
                                                                    })) : (ve(), ze(qe, {
                                                                        key: 1,
                                                                        cols: "6"
                                                                    })),
                                                                    Y(a).up_rate_limit ? (ve(), ze(qe, {
                                                                        key: 2,
                                                                        cols: "6",
                                                                        class: "px-1 pt-0"
                                                                    }, {
                                                                        default: O(()=>[
                                                                                y(gs, {
                                                                                    icon: "mdi-arrow-collapse-up",
                                                                                    color: "upload",
                                                                                    value: Y(a).up_rate_limit
                                                                                }, null, 8, [
                                                                                    "value"
                                                                                ])
                                                                            ]),
                                                                        _: 1
                                                                    })) : (ve(), ze(qe, {
                                                                        key: 3,
                                                                        cols: "6"
                                                                    }))
                                                                ], 64)) : Dt("", !0)
                                                            ]),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        })
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }));
        }
    });
    hL = {
        key: 0,
        class: "text-accent"
    };
    mL = {
        key: 1,
        class: "text-accent"
    };
    Zv = Ft({
        __name: "FilterSelectMulti",
        props: lo({
            title: {},
            items: {},
            filterType: {}
        }, {
            include: {
                required: !0
            },
            includeModifiers: {},
            exclude: {
                required: !0
            },
            excludeModifiers: {}
        }),
        emits: lo([
            "disable",
            "toggleFilterType"
        ], [
            "update:include",
            "update:exclude"
        ]),
        setup (t) {
            const e = uo(t, "include"), a = uo(t, "exclude"), { t: r } = qt(), n = T(()=>e.value.length + a.value.length);
            function i(c) {
                return e.value.includes(c) ? aa.INCLUDED : a.value.includes(c) ? aa.EXCLUDED : aa.DISABLED;
            }
            function o(c) {
                switch(i(c)){
                    case aa.INCLUDED:
                        return "mdi-plus-box";
                    case aa.EXCLUDED:
                        return "mdi-minus-box";
                    case aa.DISABLED:
                    default:
                        return "mdi-checkbox-blank-outline";
                }
            }
            function s(c) {
                switch(i(c)){
                    case aa.INCLUDED:
                        return "text-green";
                    case aa.EXCLUDED:
                        return "text-red";
                    default:
                        return;
                }
            }
            function l(c) {
                switch(i(c)){
                    case aa.INCLUDED:
                        ms(e.value, c), a.value.push(c);
                        break;
                    case aa.EXCLUDED:
                        ms(a.value, c);
                        break;
                    case aa.DISABLED:
                    default:
                        e.value.push(c);
                }
            }
            function u(c) {
                ms(e.value, c), ms(a.value, c);
            }
            return (c, d)=>(ve(), ze(tt, {
                    class: "px-0 pb-3"
                }, {
                    default: O(()=>[
                            y(Yr, {
                                class: "px-0 text-uppercase ml-1 font-weight-light text-subtitle-2"
                            }, {
                                default: O(()=>[
                                        Pe(Se(c.title), 1)
                                    ]),
                                _: 1
                            }),
                            y(_n, {
                                "model-value": [
                                    ...e.value,
                                    ...a.value
                                ],
                                items: c.items,
                                placeholder: Y(r)("navbar.side.filters.disabled"),
                                "bg-color": "secondary",
                                class: "text-accent pt-1",
                                density: "compact",
                                "hide-details": "",
                                multiple: "",
                                variant: "solo"
                            }, {
                                prepend: O(()=>[
                                        y(sa, {
                                            location: "right",
                                            text: Y(r)(c.filterType === Y(Zt).CONJUNCTIVE ? "constants.filter_type.conjunctive" : "constants.filter_type.disjunctive")
                                        }, {
                                            activator: O(({ props: h })=>[
                                                    y(_e, Z(h, {
                                                        icon: c.filterType === Y(Zt).CONJUNCTIVE ? "mdi-set-center" : "mdi-set-all",
                                                        onClick: d[0] || (d[0] = (m)=>c.$emit("toggleFilterType"))
                                                    }), null, 16, [
                                                        "icon"
                                                    ])
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "text"
                                        ])
                                    ]),
                                "prepend-item": O(()=>[
                                        y(tt, {
                                            title: Y(r)("common.disable"),
                                            onClick: d[1] || (d[1] = (h)=>c.$emit("disable"))
                                        }, null, 8, [
                                            "title"
                                        ]),
                                        y(_a)
                                    ]),
                                selection: O(({ item: h, index: m })=>[
                                        m === 0 && n.value === 1 ? (ve(), it("span", hL, Se(h.title), 1)) : m === 0 ? (ve(), it("span", mL, Se(Y(r)("navbar.side.filters.activeFilter", n.value)), 1)) : Dt("", !0)
                                    ]),
                                item: O(({ item: h })=>[
                                        y(tt, {
                                            title: h.title,
                                            class: dr(s(h.value)),
                                            onClick: (m)=>l(h.value),
                                            onContextmenu: (m)=>u(h.value)
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, {
                                                        icon: o(h.value)
                                                    }, null, 8, [
                                                        "icon"
                                                    ])
                                                ]),
                                            _: 2
                                        }, 1032, [
                                            "title",
                                            "class",
                                            "onClick",
                                            "onContextmenu"
                                        ])
                                    ]),
                                _: 1
                            }, 8, [
                                "model-value",
                                "items",
                                "placeholder"
                            ])
                        ]),
                    _: 1
                }));
        }
    });
    fL = {
        key: 0,
        class: "text-accent"
    };
    pL = {
        key: 1,
        class: "text-accent"
    };
    Qv = Ft({
        __name: "FilterSelectSingle",
        props: lo({
            title: {},
            items: {}
        }, {
            modelValue: {
                required: !0
            },
            modelModifiers: {}
        }),
        emits: lo([
            "disable"
        ], [
            "update:modelValue"
        ]),
        setup (t) {
            const e = uo(t, "modelValue"), { t: a } = qt();
            return (r, n)=>(ve(), ze(tt, {
                    class: "px-0 pb-3"
                }, {
                    default: O(()=>[
                            y(Yr, {
                                class: "px-0 text-uppercase ml-1 font-weight-light text-subtitle-2"
                            }, {
                                default: O(()=>[
                                        Pe(Se(r.title), 1)
                                    ]),
                                _: 1
                            }),
                            y(_n, {
                                modelValue: e.value,
                                "onUpdate:modelValue": n[1] || (n[1] = (i)=>e.value = i),
                                items: r.items,
                                placeholder: Y(a)("navbar.side.filters.disabled"),
                                "bg-color": "secondary",
                                class: "text-accent pt-1",
                                density: "compact",
                                "hide-details": "",
                                multiple: "",
                                variant: "solo"
                            }, {
                                "prepend-item": O(()=>[
                                        y(tt, {
                                            title: Y(a)("common.disable"),
                                            onClick: n[0] || (n[0] = (i)=>r.$emit("disable"))
                                        }, null, 8, [
                                            "title"
                                        ]),
                                        zy(r.$slots, "prepend-item"),
                                        y(_a)
                                    ]),
                                selection: O(({ item: i, index: o })=>[
                                        o === 0 && e.value.length === 1 ? (ve(), it("span", fL, Se(i.title), 1)) : o === 0 ? (ve(), it("span", pL, Se(Y(a)("navbar.side.filters.activeFilter", e.value.length)), 1)) : Dt("", !0)
                                    ]),
                                _: 3
                            }, 8, [
                                "modelValue",
                                "items",
                                "placeholder"
                            ])
                        ]),
                    _: 3
                }));
        }
    });
    gL = Ft({
        __name: "Filters",
        setup (t) {
            const { t: e, getTorrentStateString: a } = qt(), { categories: r, torrentsByCategory: n } = gt(zm()), { tags: i, torrentsByTag: o } = gt(Wm()), { torrents: s, torrentsByStatus: l, statusFilter: u, categoryFilter: c, tagFilterInclude: d, tagFilterExclude: h, tagFilterType: m, torrentsByTracker: f, trackerFilterInclude: p, trackerFilterExclude: g, trackerFilterType: v } = gt(Ka()), { hostnameTrackers: b } = gt(Im()), k = T(()=>Object.values(Ze).filter((q)=>typeof q == "number").map((q)=>({
                        title: `${a(q)} (${l.value[q] ?? 0})`,
                        value: q
                    })).sort((q, X)=>Te.text.asc(q.title, X.title))), S = T(()=>[
                    {
                        title: `${e("navbar.side.filters.category.empty")} (${n.value[""] ?? 0})`,
                        value: ""
                    },
                    ...r.value.map((q)=>({
                            title: `${q.name} (${n.value[q.name] ?? 0})`,
                            value: q.name
                        }))
                ]), x = T(()=>[
                    {
                        title: `${e("navbar.side.filters.tag.empty")} (${o.value[""] ?? 0})`,
                        value: null
                    },
                    ...i.value.map((q)=>({
                            title: `${q} (${o.value[q] ?? 0})`,
                            value: q
                        }))
                ]), C = T(()=>[
                    {
                        title: `${e("navbar.side.filters.tracker.empty")} (${f.value[$a.UNTRACKED] ?? 0})`,
                        value: $a.UNTRACKED
                    },
                    {
                        title: `${e("navbar.side.filters.tracker.not_working")} (${f.value[$a.NOT_WORKING] ?? 0})`,
                        value: $a.NOT_WORKING
                    },
                    ...b.value.map((q)=>({
                            title: `${q} (${f.value[q] ?? 0})`,
                            value: q
                        }))
                ]);
            function w(q) {
                switch(q.value){
                    case Zt.CONJUNCTIVE:
                        q.value = Zt.DISJUNCTIVE;
                        break;
                    case Zt.DISJUNCTIVE:
                        q.value = Zt.CONJUNCTIVE;
                        break;
                }
            }
            const F = ()=>w(m), D = ()=>w(v), _ = [
                Ze.UPLOADING,
                Ze.CHECKING_DISK,
                Ze.UL_FORCED,
                Ze.DOWNLOADING,
                Ze.META_DOWNLOAD,
                Ze.FORCED_META_DOWNLOAD,
                Ze.CHECKING_DISK,
                Ze.DL_FORCED,
                Ze.CHECKING_RESUME_DATA,
                Ze.MOVING
            ], A = [
                Ze.ERROR,
                Ze.MISSING_FILES,
                Ze.UNKNOWN
            ], E = [
                Ze.ERROR,
                Ze.MISSING_FILES,
                Ze.UNKNOWN,
                Ze.MOVING,
                Ze.DL_STOPPED,
                Ze.DL_STALLED,
                Ze.UL_STOPPED,
                Ze.CHECKING_DISK,
                Ze.CHECKING_RESUME_DATA
            ];
            function B() {
                u.value = [];
            }
            const P = T(()=>s.value.filter((q)=>_.includes(q.state)).length);
            function M() {
                u.value = _;
            }
            const R = T(()=>s.value.filter((q)=>A.includes(q.state)).length);
            function z() {
                u.value = A;
            }
            const N = T(()=>s.value.filter((q)=>E.includes(q.state)).length);
            function H() {
                u.value = E;
            }
            function I() {
                c.value = [];
            }
            function L() {
                d.value = [], h.value = [];
            }
            function G() {
                p.value = [], g.value = [];
            }
            return (q, X)=>(ve(), ze(Qn, {
                    class: "pb-0 inherit-fg"
                }, {
                    default: O(()=>[
                            y(Qv, {
                                modelValue: Y(u),
                                "onUpdate:modelValue": X[0] || (X[0] = (ue)=>Pt(u) ? u.value = ue : null),
                                title: Y(e)("navbar.side.filters.state.title"),
                                items: k.value,
                                onDisable: B
                            }, {
                                "prepend-item": O(()=>[
                                        y(tt, {
                                            title: `${Y(e)("navbar.side.filters.state.active")} (${P.value})`,
                                            onClick: M
                                        }, null, 8, [
                                            "title"
                                        ]),
                                        y(tt, {
                                            title: `${Y(e)("navbar.side.filters.state.error")} (${R.value})`,
                                            onClick: z
                                        }, null, 8, [
                                            "title"
                                        ]),
                                        y(tt, {
                                            title: `${Y(e)("navbar.side.filters.state.offline")} (${N.value})`,
                                            onClick: H
                                        }, null, 8, [
                                            "title"
                                        ])
                                    ]),
                                _: 1
                            }, 8, [
                                "modelValue",
                                "title",
                                "items"
                            ]),
                            y(Qv, {
                                modelValue: Y(c),
                                "onUpdate:modelValue": X[1] || (X[1] = (ue)=>Pt(c) ? c.value = ue : null),
                                title: Y(e)("navbar.side.filters.category.title"),
                                items: S.value,
                                onDisable: I
                            }, null, 8, [
                                "modelValue",
                                "title",
                                "items"
                            ]),
                            y(Zv, {
                                include: Y(d),
                                "onUpdate:include": X[2] || (X[2] = (ue)=>Pt(d) ? d.value = ue : null),
                                exclude: Y(h),
                                "onUpdate:exclude": X[3] || (X[3] = (ue)=>Pt(h) ? h.value = ue : null),
                                title: Y(e)("navbar.side.filters.tag.title"),
                                items: x.value,
                                filterType: Y(m),
                                onDisable: L,
                                onToggleFilterType: F
                            }, null, 8, [
                                "include",
                                "exclude",
                                "title",
                                "items",
                                "filterType"
                            ]),
                            y(Zv, {
                                include: Y(p),
                                "onUpdate:include": X[4] || (X[4] = (ue)=>Pt(p) ? p.value = ue : null),
                                exclude: Y(g),
                                "onUpdate:exclude": X[5] || (X[5] = (ue)=>Pt(g) ? g.value = ue : null),
                                title: Y(e)("navbar.side.filters.tracker.title"),
                                items: C.value,
                                filterType: Y(v),
                                onDisable: G,
                                onToggleFilterType: D
                            }, null, 8, [
                                "include",
                                "exclude",
                                "title",
                                "items",
                                "filterType"
                            ])
                        ]),
                    _: 1
                }));
        }
    });
    vL = {
        "data-testid": "card-value",
        class: "text-subtitle-1 font-weight-bold"
    };
    yL = {
        "data-testid": "card-unit",
        class: "font-weight-light text-caption ml-1 text-subtitle-1"
    };
    _h = Ft({
        __name: "DataCard",
        props: {
            title: {},
            color: {},
            value: {}
        },
        setup (t) {
            const e = ka();
            return (a, r)=>(ve(), ze(Br, {
                    color: "secondary",
                    rounded: "lg",
                    class: "pa-3"
                }, {
                    default: O(()=>[
                            y(Pa, {
                                "data-testid": "card-wrapper",
                                class: dr(`text-select text-${a.color}`)
                            }, {
                                default: O(()=>[
                                        y(qe, {
                                            "data-testid": "card-title",
                                            cols: "7",
                                            class: "text-subtitle-1"
                                        }, {
                                            default: O(()=>[
                                                    Pe(Se(a.title), 1)
                                                ]),
                                            _: 1
                                        }),
                                        y(qe, {
                                            cols: "5",
                                            class: ""
                                        }, {
                                            default: O(()=>[
                                                    nt("span", vL, Se(Y(Mm)(a.value, Y(e).useBinarySize)), 1),
                                                    nt("span", yL, Se(Y(Rm)(a.value, Y(e).useBinarySize)), 1)
                                                ]),
                                            _: 1
                                        })
                                    ]),
                                _: 1
                            }, 8, [
                                "class"
                            ])
                        ]),
                    _: 1
                }));
        }
    });
    bL = Ft({
        __name: "FreeSpace",
        setup (t) {
            const e = Yn();
            return (a, r)=>(ve(), ze(_h, {
                    title: a.$t("navbar.side.stats.free_space"),
                    value: Y(e).serverState?.free_space_on_disk ?? 0,
                    color: "upload"
                }, null, 8, [
                    "title",
                    "value"
                ]));
        }
    });
    function Ph(t, e) {
        (e == null || e > t.length) && (e = t.length);
        for(var a = 0, r = Array(e); a < e; a++)r[a] = t[a];
        return r;
    }
    function h1(t) {
        if (t === void 0) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
        return t;
    }
    function Ae(t, e) {
        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function");
    }
    function ey(t, e) {
        for(var a = 0; a < e.length; a++){
            var r = e[a];
            r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, p1(r.key), r);
        }
    }
    function De(t, e, a) {
        return e && ey(t.prototype, e), a && ey(t, a), Object.defineProperty(t, "prototype", {
            writable: !1
        }), t;
    }
    function ro(t, e) {
        var a = typeof Symbol < "u" && t[Symbol.iterator] || t["@@iterator"];
        if (!a) {
            if (Array.isArray(t) || (a = sf(t)) || e) {
                a && (t = a);
                var r = 0, n = function() {};
                return {
                    s: n,
                    n: function() {
                        return r >= t.length ? {
                            done: !0
                        } : {
                            done: !1,
                            value: t[r++]
                        };
                    },
                    e: function(l) {
                        throw l;
                    },
                    f: n
                };
            }
            throw new TypeError(`Invalid attempt to iterate non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
        }
        var i, o = !0, s = !1;
        return {
            s: function() {
                a = a.call(t);
            },
            n: function() {
                var l = a.next();
                return o = l.done, l;
            },
            e: function(l) {
                s = !0, i = l;
            },
            f: function() {
                try {
                    o || a.return == null || a.return();
                } finally{
                    if (s) throw i;
                }
            }
        };
    }
    function Jo(t) {
        var e = m1();
        return function() {
            var a, r = Js(t);
            if (e) {
                var n = Js(this).constructor;
                a = Reflect.construct(r, arguments, n);
            } else a = r.apply(this, arguments);
            return function(i, o) {
                if (o && (typeof o == "object" || typeof o == "function")) return o;
                if (o !== void 0) throw new TypeError("Derived constructors may only return object or undefined");
                return h1(i);
            }(this, a);
        };
    }
    function Xs(t, e, a) {
        return (e = p1(e)) in t ? Object.defineProperty(t, e, {
            value: a,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : t[e] = a, t;
    }
    function Js(t) {
        return Js = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) {
            return e.__proto__ || Object.getPrototypeOf(e);
        }, Js(t);
    }
    function Zo(t, e) {
        if (typeof e != "function" && e !== null) throw new TypeError("Super expression must either be null or a function");
        t.prototype = Object.create(e && e.prototype, {
            constructor: {
                value: t,
                writable: !0,
                configurable: !0
            }
        }), Object.defineProperty(t, "prototype", {
            writable: !1
        }), e && Bh(t, e);
    }
    function m1() {
        try {
            var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
        } catch  {}
        return (m1 = function() {
            return !!t;
        })();
    }
    function ty(t, e) {
        var a = Object.keys(t);
        if (Object.getOwnPropertySymbols) {
            var r = Object.getOwnPropertySymbols(t);
            e && (r = r.filter(function(n) {
                return Object.getOwnPropertyDescriptor(t, n).enumerable;
            })), a.push.apply(a, r);
        }
        return a;
    }
    function ye(t) {
        for(var e = 1; e < arguments.length; e++){
            var a = arguments[e] != null ? arguments[e] : {};
            e % 2 ? ty(Object(a), !0).forEach(function(r) {
                Xs(t, r, a[r]);
            }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(a)) : ty(Object(a)).forEach(function(r) {
                Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(a, r));
            });
        }
        return t;
    }
    function Bh(t, e) {
        return Bh = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(a, r) {
            return a.__proto__ = r, a;
        }, Bh(t, e);
    }
    function f1(t, e) {
        return function(a) {
            if (Array.isArray(a)) return a;
        }(t) || function(a, r) {
            var n = a == null ? null : typeof Symbol < "u" && a[Symbol.iterator] || a["@@iterator"];
            if (n != null) {
                var i, o, s, l, u = [], c = !0, d = !1;
                try {
                    if (s = (n = n.call(a)).next, r === 0) {
                        if (Object(n) !== n) return;
                        c = !1;
                    } else for(; !(c = (i = s.call(n)).done) && (u.push(i.value), u.length !== r); c = !0);
                } catch (h) {
                    d = !0, o = h;
                } finally{
                    try {
                        if (!c && n.return != null && (l = n.return(), Object(l) !== l)) return;
                    } finally{
                        if (d) throw o;
                    }
                }
                return u;
            }
        }(t, e) || sf(t, e) || function() {
            throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
        }();
    }
    function Qt(t) {
        return function(e) {
            if (Array.isArray(e)) return Ph(e);
        }(t) || function(e) {
            if (typeof Symbol < "u" && e[Symbol.iterator] != null || e["@@iterator"] != null) return Array.from(e);
        }(t) || sf(t) || function() {
            throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
        }();
    }
    function p1(t) {
        var e = function(a, r) {
            if (typeof a != "object" || !a) return a;
            var n = a[Symbol.toPrimitive];
            if (n !== void 0) {
                var i = n.call(a, r);
                if (typeof i != "object") return i;
                throw new TypeError("@@toPrimitive must return a primitive value.");
            }
            return (r === "string" ? String : Number)(a);
        }(t, "string");
        return typeof e == "symbol" ? e : e + "";
    }
    function Ci(t) {
        return Ci = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(e) {
            return typeof e;
        } : function(e) {
            return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
        }, Ci(t);
    }
    function sf(t, e) {
        if (t) {
            if (typeof t == "string") return Ph(t, e);
            var a = {}.toString.call(t).slice(8, -1);
            return a === "Object" && t.constructor && (a = t.constructor.name), a === "Map" || a === "Set" ? Array.from(t) : a === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a) ? Ph(t, e) : void 0;
        }
    }
    var V = function() {
        function t() {
            Ae(this, t);
        }
        return De(t, [
            {
                key: "shadeRGBColor",
                value: function(e, a) {
                    var r = a.split(","), n = e < 0 ? 0 : 255, i = e < 0 ? -1 * e : e, o = parseInt(r[0].slice(4), 10), s = parseInt(r[1], 10), l = parseInt(r[2], 10);
                    return "rgb(" + (Math.round((n - o) * i) + o) + "," + (Math.round((n - s) * i) + s) + "," + (Math.round((n - l) * i) + l) + ")";
                }
            },
            {
                key: "shadeHexColor",
                value: function(e, a) {
                    var r = parseInt(a.slice(1), 16), n = e < 0 ? 0 : 255, i = e < 0 ? -1 * e : e, o = r >> 16, s = r >> 8 & 255, l = 255 & r;
                    return "#" + (16777216 + 65536 * (Math.round((n - o) * i) + o) + 256 * (Math.round((n - s) * i) + s) + (Math.round((n - l) * i) + l)).toString(16).slice(1);
                }
            },
            {
                key: "shadeColor",
                value: function(e, a) {
                    return t.isColorHex(a) ? this.shadeHexColor(e, a) : this.shadeRGBColor(e, a);
                }
            }
        ], [
            {
                key: "bind",
                value: function(e, a) {
                    return function() {
                        return e.apply(a, arguments);
                    };
                }
            },
            {
                key: "isObject",
                value: function(e) {
                    return e && Ci(e) === "object" && !Array.isArray(e) && e != null;
                }
            },
            {
                key: "is",
                value: function(e, a) {
                    return Object.prototype.toString.call(a) === "[object " + e + "]";
                }
            },
            {
                key: "isSafari",
                value: function() {
                    return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
                }
            },
            {
                key: "listToArray",
                value: function(e) {
                    var a, r = [];
                    for(a = 0; a < e.length; a++)r[a] = e[a];
                    return r;
                }
            },
            {
                key: "extend",
                value: function(e, a) {
                    var r = this;
                    typeof Object.assign != "function" && (Object.assign = function(i) {
                        if (i == null) throw new TypeError("Cannot convert undefined or null to object");
                        for(var o = Object(i), s = 1; s < arguments.length; s++){
                            var l = arguments[s];
                            if (l != null) for(var u in l)l.hasOwnProperty(u) && (o[u] = l[u]);
                        }
                        return o;
                    });
                    var n = Object.assign({}, e);
                    return this.isObject(e) && this.isObject(a) && Object.keys(a).forEach(function(i) {
                        r.isObject(a[i]) && i in e ? n[i] = r.extend(e[i], a[i]) : Object.assign(n, Xs({}, i, a[i]));
                    }), n;
                }
            },
            {
                key: "extendArray",
                value: function(e, a) {
                    var r = [];
                    return e.map(function(n) {
                        r.push(t.extend(a, n));
                    }), e = r;
                }
            },
            {
                key: "monthMod",
                value: function(e) {
                    return e % 12;
                }
            },
            {
                key: "clone",
                value: function(e) {
                    var a, r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : new WeakMap;
                    if (e === null || Ci(e) !== "object") return e;
                    if (r.has(e)) return r.get(e);
                    if (Array.isArray(e)) {
                        a = [], r.set(e, a);
                        for(var n = 0; n < e.length; n++)a[n] = this.clone(e[n], r);
                    } else if (e instanceof Date) a = new Date(e.getTime());
                    else for(var i in a = {}, r.set(e, a), e)e.hasOwnProperty(i) && (a[i] = this.clone(e[i], r));
                    return a;
                }
            },
            {
                key: "log10",
                value: function(e) {
                    return Math.log(e) / Math.LN10;
                }
            },
            {
                key: "roundToBase10",
                value: function(e) {
                    return Math.pow(10, Math.floor(Math.log10(e)));
                }
            },
            {
                key: "roundToBase",
                value: function(e, a) {
                    return Math.pow(a, Math.floor(Math.log(e) / Math.log(a)));
                }
            },
            {
                key: "parseNumber",
                value: function(e) {
                    return e === null ? e : parseFloat(e);
                }
            },
            {
                key: "stripNumber",
                value: function(e) {
                    var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 2;
                    return Number.isInteger(e) ? e : parseFloat(e.toPrecision(a));
                }
            },
            {
                key: "randomId",
                value: function() {
                    return (Math.random() + 1).toString(36).substring(4);
                }
            },
            {
                key: "noExponents",
                value: function(e) {
                    return e.toString().includes("e") ? Math.round(e) : e;
                }
            },
            {
                key: "elementExists",
                value: function(e) {
                    return !(!e || !e.isConnected);
                }
            },
            {
                key: "getDimensions",
                value: function(e) {
                    var a = getComputedStyle(e, null), r = e.clientHeight, n = e.clientWidth;
                    return r -= parseFloat(a.paddingTop) + parseFloat(a.paddingBottom), [
                        n -= parseFloat(a.paddingLeft) + parseFloat(a.paddingRight),
                        r
                    ];
                }
            },
            {
                key: "getBoundingClientRect",
                value: function(e) {
                    var a = e.getBoundingClientRect();
                    return {
                        top: a.top,
                        right: a.right,
                        bottom: a.bottom,
                        left: a.left,
                        width: e.clientWidth,
                        height: e.clientHeight,
                        x: a.left,
                        y: a.top
                    };
                }
            },
            {
                key: "getLargestStringFromArr",
                value: function(e) {
                    return e.reduce(function(a, r) {
                        return Array.isArray(r) && (r = r.reduce(function(n, i) {
                            return n.length > i.length ? n : i;
                        })), a.length > r.length ? a : r;
                    }, 0);
                }
            },
            {
                key: "hexToRgba",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "#999999", a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : .6;
                    e.substring(0, 1) !== "#" && (e = "#999999");
                    var r = e.replace("#", "");
                    r = r.match(new RegExp("(.{" + r.length / 3 + "})", "g"));
                    for(var n = 0; n < r.length; n++)r[n] = parseInt(r[n].length === 1 ? r[n] + r[n] : r[n], 16);
                    return a !== void 0 && r.push(a), "rgba(" + r.join(",") + ")";
                }
            },
            {
                key: "getOpacityFromRGBA",
                value: function(e) {
                    return parseFloat(e.replace(/^.*,(.+)\)/, "$1"));
                }
            },
            {
                key: "rgb2hex",
                value: function(e) {
                    return (e = e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i)) && e.length === 4 ? "#" + ("0" + parseInt(e[1], 10).toString(16)).slice(-2) + ("0" + parseInt(e[2], 10).toString(16)).slice(-2) + ("0" + parseInt(e[3], 10).toString(16)).slice(-2) : "";
                }
            },
            {
                key: "isColorHex",
                value: function(e) {
                    return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)|(^#[0-9A-F]{8}$)/i.test(e);
                }
            },
            {
                key: "getPolygonPos",
                value: function(e, a) {
                    for(var r = [], n = 2 * Math.PI / a, i = 0; i < a; i++){
                        var o = {};
                        o.x = e * Math.sin(i * n), o.y = -e * Math.cos(i * n), r.push(o);
                    }
                    return r;
                }
            },
            {
                key: "polarToCartesian",
                value: function(e, a, r, n) {
                    var i = (n - 90) * Math.PI / 180;
                    return {
                        x: e + r * Math.cos(i),
                        y: a + r * Math.sin(i)
                    };
                }
            },
            {
                key: "escapeString",
                value: function(e) {
                    var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "x", r = e.toString().slice();
                    return r = r.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi, a);
                }
            },
            {
                key: "negToZero",
                value: function(e) {
                    return e < 0 ? 0 : e;
                }
            },
            {
                key: "moveIndexInArray",
                value: function(e, a, r) {
                    if (r >= e.length) for(var n = r - e.length + 1; n--;)e.push(void 0);
                    return e.splice(r, 0, e.splice(a, 1)[0]), e;
                }
            },
            {
                key: "extractNumber",
                value: function(e) {
                    return parseFloat(e.replace(/[^\d.]*/g, ""));
                }
            },
            {
                key: "findAncestor",
                value: function(e, a) {
                    for(; (e = e.parentElement) && !e.classList.contains(a););
                    return e;
                }
            },
            {
                key: "setELstyles",
                value: function(e, a) {
                    for(var r in a)a.hasOwnProperty(r) && (e.style.key = a[r]);
                }
            },
            {
                key: "preciseAddition",
                value: function(e, a) {
                    var r = (String(e).split(".")[1] || "").length, n = (String(a).split(".")[1] || "").length, i = Math.pow(10, Math.max(r, n));
                    return (Math.round(e * i) + Math.round(a * i)) / i;
                }
            },
            {
                key: "isNumber",
                value: function(e) {
                    return !isNaN(e) && parseFloat(Number(e)) === e && !isNaN(parseInt(e, 10));
                }
            },
            {
                key: "isFloat",
                value: function(e) {
                    return Number(e) === e && e % 1 != 0;
                }
            },
            {
                key: "isMsEdge",
                value: function() {
                    var e = window.navigator.userAgent, a = e.indexOf("Edge/");
                    return a > 0 && parseInt(e.substring(a + 5, e.indexOf(".", a)), 10);
                }
            },
            {
                key: "getGCD",
                value: function(e, a) {
                    var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 7, n = Math.pow(10, r - Math.floor(Math.log10(Math.max(e, a))));
                    for(e = Math.round(Math.abs(e) * n), a = Math.round(Math.abs(a) * n); a;){
                        var i = a;
                        a = e % a, e = i;
                    }
                    return e / n;
                }
            },
            {
                key: "getPrimeFactors",
                value: function(e) {
                    for(var a = [], r = 2; e >= 2;)e % r == 0 ? (a.push(r), e /= r) : r++;
                    return a;
                }
            },
            {
                key: "mod",
                value: function(e, a) {
                    var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 7, n = Math.pow(10, r - Math.floor(Math.log10(Math.max(e, a))));
                    return (e = Math.round(Math.abs(e) * n)) % (a = Math.round(Math.abs(a) * n)) / n;
                }
            }
        ]), t;
    }(), Vi = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "animateLine",
                value: function(e, a, r, n) {
                    e.attr(a).animate(n).attr(r);
                }
            },
            {
                key: "animateMarker",
                value: function(e, a, r, n) {
                    e.attr({
                        opacity: 0
                    }).animate(a).attr({
                        opacity: 1
                    }).after(function() {
                        n();
                    });
                }
            },
            {
                key: "animateRect",
                value: function(e, a, r, n, i) {
                    e.attr(a).animate(n).attr(r).after(function() {
                        return i();
                    });
                }
            },
            {
                key: "animatePathsGradually",
                value: function(e) {
                    var a = e.el, r = e.realIndex, n = e.j, i = e.fill, o = e.pathFrom, s = e.pathTo, l = e.speed, u = e.delay, c = this.w, d = 0;
                    c.config.chart.animations.animateGradually.enabled && (d = c.config.chart.animations.animateGradually.delay), c.config.chart.animations.dynamicAnimation.enabled && c.globals.dataChanged && c.config.chart.type !== "bar" && (d = 0), this.morphSVG(a, r, n, c.config.chart.type !== "line" || c.globals.comboCharts ? i : "stroke", o, s, l, u * d);
                }
            },
            {
                key: "showDelayedElements",
                value: function() {
                    this.w.globals.delayedElements.forEach(function(e) {
                        var a = e.el;
                        a.classList.remove("apexcharts-element-hidden"), a.classList.add("apexcharts-hidden-element-shown");
                    });
                }
            },
            {
                key: "animationCompleted",
                value: function(e) {
                    var a = this.w;
                    a.globals.animationEnded || (a.globals.animationEnded = !0, this.showDelayedElements(), typeof a.config.chart.events.animationEnd == "function" && a.config.chart.events.animationEnd(this.ctx, {
                        el: e,
                        w: a
                    }));
                }
            },
            {
                key: "morphSVG",
                value: function(e, a, r, n, i, o, s, l) {
                    var u = this, c = this.w;
                    i || (i = e.attr("pathFrom")), o || (o = e.attr("pathTo"));
                    var d = function(h) {
                        return c.config.chart.type === "radar" && (s = 1), "M 0 ".concat(c.globals.gridHeight);
                    };
                    (!i || i.indexOf("undefined") > -1 || i.indexOf("NaN") > -1) && (i = d()), (!o.trim() || o.indexOf("undefined") > -1 || o.indexOf("NaN") > -1) && (o = d()), c.globals.shouldAnimate || (s = 1), e.plot(i).animate(1, l).plot(i).animate(s, l).plot(o).after(function() {
                        V.isNumber(r) ? r === c.globals.series[c.globals.maxValsInArrayIndex].length - 2 && c.globals.shouldAnimate && u.animationCompleted(e) : n !== "none" && c.globals.shouldAnimate && (!c.globals.comboCharts && a === c.globals.series.length - 1 || c.globals.comboCharts) && u.animationCompleted(e), u.showDelayedElements();
                    });
                }
            }
        ]), t;
    }();
    const Mh = {}, g1 = [];
    function Xe(t, e) {
        if (Array.isArray(t)) for (const a of t)Xe(a, e);
        else if (typeof t != "object") v1(Object.getOwnPropertyNames(e)), Mh[t] = Object.assign(Mh[t] || {}, e);
        else for(const a in t)Xe(a, t[a]);
    }
    function Ta(t) {
        return Mh[t] || {};
    }
    function v1(t) {
        g1.push(...t);
    }
    function lf(t, e) {
        let a;
        const r = t.length, n = [];
        for(a = 0; a < r; a++)n.push(e(t[a]));
        return n;
    }
    function Dd(t) {
        return t % 360 * Math.PI / 180;
    }
    function Wi(t) {
        return t.charAt(0).toUpperCase() + t.slice(1);
    }
    function Gi(t, e, a, r) {
        return e != null && a != null || (r = r || t.bbox(), e == null ? e = r.width / r.height * a : a == null && (a = r.height / r.width * e)), {
            width: e,
            height: a
        };
    }
    function Rh(t, e) {
        const a = t.origin;
        let r = t.ox != null ? t.ox : t.originX != null ? t.originX : "center", n = t.oy != null ? t.oy : t.originY != null ? t.originY : "center";
        a != null && ([r, n] = Array.isArray(a) ? a : typeof a == "object" ? [
            a.x,
            a.y
        ] : [
            a,
            a
        ]);
        const i = typeof r == "string", o = typeof n == "string";
        if (i || o) {
            const { height: s, width: l, x: u, y: c } = e.bbox();
            i && (r = r.includes("left") ? u : r.includes("right") ? u + l : u + l / 2), o && (n = n.includes("top") ? c : n.includes("bottom") ? c + s : c + s / 2);
        }
        return [
            r,
            n
        ];
    }
    const FL = new Set([
        "desc",
        "metadata",
        "title"
    ]), Lh = (t)=>FL.has(t.nodeName), y1 = (t, e, a = {})=>{
        const r = {
            ...e
        };
        for(const n in r)r[n].valueOf() === a[n] && delete r[n];
        Object.keys(r).length ? t.node.setAttribute("data-svgjs", JSON.stringify(r)) : (t.node.removeAttribute("data-svgjs"), t.node.removeAttribute("svgjs:data"));
    }, uf = "http://www.w3.org/2000/svg", Td = "http://www.w3.org/2000/xmlns/", $i = "http://www.w3.org/1999/xlink", ot = {
        window: typeof window > "u" ? null : window,
        document: typeof document > "u" ? null : document
    };
    function Qo() {
        return ot.window;
    }
    let cf = class {
    };
    const Cn = {}, df = "___SYMBOL___ROOT___";
    function xo(t, e = uf) {
        return ot.document.createElementNS(e, t);
    }
    function Sa(t, e = !1) {
        if (t instanceof cf) return t;
        if (typeof t == "object") return Ed(t);
        if (t == null) return new Cn[df];
        if (typeof t == "string" && t.charAt(0) !== "<") return Ed(ot.document.querySelector(t));
        const a = e ? ot.document.createElement("div") : xo("svg");
        return a.innerHTML = t, t = Ed(a.firstChild), a.removeChild(a.firstChild), t;
    }
    function yt(t, e) {
        return e && (e instanceof ot.window.Node || e.ownerDocument && e instanceof e.ownerDocument.defaultView.Node) ? e : xo(t);
    }
    function ar(t) {
        if (!t) return null;
        if (t.instance instanceof cf) return t.instance;
        if (t.nodeName === "#document-fragment") return new Cn.Fragment(t);
        let e = Wi(t.nodeName || "Dom");
        return e === "LinearGradient" || e === "RadialGradient" ? e = "Gradient" : Cn[e] || (e = "Dom"), new Cn[e](t);
    }
    let Ed = ar;
    function st(t, e = t.name, a = !1) {
        return Cn[e] = t, a && (Cn[df] = t), v1(Object.getOwnPropertyNames(t.prototype)), t;
    }
    let kL = 1e3;
    function b1(t) {
        return "Svgjs" + Wi(t) + kL++;
    }
    function F1(t) {
        for(let e = t.children.length - 1; e >= 0; e--)F1(t.children[e]);
        return t.id && (t.id = b1(t.nodeName)), t;
    }
    function Ne(t, e) {
        let a, r;
        for(r = (t = Array.isArray(t) ? t : [
            t
        ]).length - 1; r >= 0; r--)for(a in e)t[r].prototype[a] = e[a];
    }
    function vt(t) {
        return function(...e) {
            const a = e[e.length - 1];
            return !a || a.constructor !== Object || a instanceof Array ? t.apply(this, e) : t.apply(this, e.slice(0, -1)).attr(a);
        };
    }
    Xe("Dom", {
        siblings: function() {
            return this.parent().children();
        },
        position: function() {
            return this.parent().index(this);
        },
        next: function() {
            return this.siblings()[this.position() + 1];
        },
        prev: function() {
            return this.siblings()[this.position() - 1];
        },
        forward: function() {
            const t = this.position();
            return this.parent().add(this.remove(), t + 1), this;
        },
        backward: function() {
            const t = this.position();
            return this.parent().add(this.remove(), t ? t - 1 : 0), this;
        },
        front: function() {
            return this.parent().add(this.remove()), this;
        },
        back: function() {
            return this.parent().add(this.remove(), 0), this;
        },
        before: function(t) {
            (t = Sa(t)).remove();
            const e = this.position();
            return this.parent().add(t, e), this;
        },
        after: function(t) {
            (t = Sa(t)).remove();
            const e = this.position();
            return this.parent().add(t, e + 1), this;
        },
        insertBefore: function(t) {
            return (t = Sa(t)).before(this), this;
        },
        insertAfter: function(t) {
            return (t = Sa(t)).after(this), this;
        }
    });
    const k1 = /^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i, xL = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i, wL = /rgb\((\d+),(\d+),(\d+)\)/, SL = /(#[a-z_][a-z0-9\-_]*)/i, CL = /\)\s*,?\s*/, AL = /\s/g, ay = /^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i, ry = /^rgb\(/, ny = /^(\s+)?$/, iy = /^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i, DL = /\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i, Nr = /[\s,]+/, hf = /[MLHVCSQTAZ]/i;
    function TL(t) {
        const e = Math.round(t), a = Math.max(0, Math.min(255, e)).toString(16);
        return a.length === 1 ? "0" + a : a;
    }
    function ci(t, e) {
        for(let a = e.length; a--;)if (t[e[a]] == null) return !1;
        return !0;
    }
    function _d(t, e, a) {
        return a < 0 && (a += 1), a > 1 && (a -= 1), a < 1 / 6 ? t + 6 * (e - t) * a : a < .5 ? e : a < 2 / 3 ? t + (e - t) * (2 / 3 - a) * 6 : t;
    }
    Xe("Dom", {
        classes: function() {
            const t = this.attr("class");
            return t == null ? [] : t.trim().split(Nr);
        },
        hasClass: function(t) {
            return this.classes().indexOf(t) !== -1;
        },
        addClass: function(t) {
            if (!this.hasClass(t)) {
                const e = this.classes();
                e.push(t), this.attr("class", e.join(" "));
            }
            return this;
        },
        removeClass: function(t) {
            return this.hasClass(t) && this.attr("class", this.classes().filter(function(e) {
                return e !== t;
            }).join(" ")), this;
        },
        toggleClass: function(t) {
            return this.hasClass(t) ? this.removeClass(t) : this.addClass(t);
        }
    }), Xe("Dom", {
        css: function(t, e) {
            const a = {};
            if (arguments.length === 0) return this.node.style.cssText.split(/\s*;\s*/).filter(function(r) {
                return !!r.length;
            }).forEach(function(r) {
                const n = r.split(/\s*:\s*/);
                a[n[0]] = n[1];
            }), a;
            if (arguments.length < 2) {
                if (Array.isArray(t)) {
                    for (const r of t){
                        const n = r;
                        a[r] = this.node.style.getPropertyValue(n);
                    }
                    return a;
                }
                if (typeof t == "string") return this.node.style.getPropertyValue(t);
                if (typeof t == "object") for(const r in t)this.node.style.setProperty(r, t[r] == null || ny.test(t[r]) ? "" : t[r]);
            }
            return arguments.length === 2 && this.node.style.setProperty(t, e == null || ny.test(e) ? "" : e), this;
        },
        show: function() {
            return this.css("display", "");
        },
        hide: function() {
            return this.css("display", "none");
        },
        visible: function() {
            return this.css("display") !== "none";
        }
    }), Xe("Dom", {
        data: function(t, e, a) {
            if (t == null) return this.data(lf(function(r, n) {
                let i;
                const o = r.length, s = [];
                for(i = 0; i < o; i++)n(r[i]) && s.push(r[i]);
                return s;
            }(this.node.attributes, (r)=>r.nodeName.indexOf("data-") === 0), (r)=>r.nodeName.slice(5)));
            if (t instanceof Array) {
                const r = {};
                for (const n of t)r[n] = this.data(n);
                return r;
            }
            if (typeof t == "object") for(e in t)this.data(e, t[e]);
            else if (arguments.length < 2) try {
                return JSON.parse(this.attr("data-" + t));
            } catch  {
                return this.attr("data-" + t);
            }
            else this.attr("data-" + t, e === null ? null : a === !0 || typeof e == "string" || typeof e == "number" ? e : JSON.stringify(e));
            return this;
        }
    }), Xe("Dom", {
        remember: function(t, e) {
            if (typeof arguments[0] == "object") for(const a in t)this.remember(a, t[a]);
            else {
                if (arguments.length === 1) return this.memory()[t];
                this.memory()[t] = e;
            }
            return this;
        },
        forget: function() {
            if (arguments.length === 0) this._memory = {};
            else for(let t = arguments.length - 1; t >= 0; t--)delete this.memory()[arguments[t]];
            return this;
        },
        memory: function() {
            return this._memory = this._memory || {};
        }
    });
    class pt {
        constructor(...e){
            this.init(...e);
        }
        static isColor(e) {
            return e && (e instanceof pt || this.isRgb(e) || this.test(e));
        }
        static isRgb(e) {
            return e && typeof e.r == "number" && typeof e.g == "number" && typeof e.b == "number";
        }
        static random(e = "vibrant", a) {
            const { random: r, round: n, sin: i, PI: o } = Math;
            if (e === "vibrant") {
                const s = 24 * r() + 57, l = 38 * r() + 45, u = 360 * r();
                return new pt(s, l, u, "lch");
            }
            if (e === "sine") {
                const s = n(80 * i(2 * o * (a = a ?? r()) / .5 + .01) + 150), l = n(50 * i(2 * o * a / .5 + 4.6) + 200), u = n(100 * i(2 * o * a / .5 + 2.3) + 150);
                return new pt(s, l, u);
            }
            if (e === "pastel") {
                const s = 8 * r() + 86, l = 17 * r() + 9, u = 360 * r();
                return new pt(s, l, u, "lch");
            }
            if (e === "dark") {
                const s = 10 + 10 * r(), l = 50 * r() + 86, u = 360 * r();
                return new pt(s, l, u, "lch");
            }
            if (e === "rgb") {
                const s = 255 * r(), l = 255 * r(), u = 255 * r();
                return new pt(s, l, u);
            }
            if (e === "lab") {
                const s = 100 * r(), l = 256 * r() - 128, u = 256 * r() - 128;
                return new pt(s, l, u, "lab");
            }
            if (e === "grey") {
                const s = 255 * r();
                return new pt(s, s, s);
            }
            throw new Error("Unsupported random color mode");
        }
        static test(e) {
            return typeof e == "string" && (ay.test(e) || ry.test(e));
        }
        cmyk() {
            const { _a: e, _b: a, _c: r } = this.rgb(), [n, i, o] = [
                e,
                a,
                r
            ].map((l)=>l / 255), s = Math.min(1 - n, 1 - i, 1 - o);
            return s === 1 ? new pt(0, 0, 0, 1, "cmyk") : new pt((1 - n - s) / (1 - s), (1 - i - s) / (1 - s), (1 - o - s) / (1 - s), s, "cmyk");
        }
        hsl() {
            const { _a: e, _b: a, _c: r } = this.rgb(), [n, i, o] = [
                e,
                a,
                r
            ].map((h)=>h / 255), s = Math.max(n, i, o), l = Math.min(n, i, o), u = (s + l) / 2, c = s === l, d = s - l;
            return new pt(360 * (c ? 0 : s === n ? ((i - o) / d + (i < o ? 6 : 0)) / 6 : s === i ? ((o - n) / d + 2) / 6 : s === o ? ((n - i) / d + 4) / 6 : 0), 100 * (c ? 0 : u > .5 ? d / (2 - s - l) : d / (s + l)), 100 * u, "hsl");
        }
        init(e = 0, a = 0, r = 0, n = 0, i = "rgb") {
            if (e = e || 0, this.space) for(const d in this.space)delete this[this.space[d]];
            if (typeof e == "number") i = typeof n == "string" ? n : i, n = typeof n == "string" ? 0 : n, Object.assign(this, {
                _a: e,
                _b: a,
                _c: r,
                _d: n,
                space: i
            });
            else if (e instanceof Array) this.space = a || (typeof e[3] == "string" ? e[3] : e[4]) || "rgb", Object.assign(this, {
                _a: e[0],
                _b: e[1],
                _c: e[2],
                _d: e[3] || 0
            });
            else if (e instanceof Object) {
                const d = function(h, m) {
                    const f = ci(h, "rgb") ? {
                        _a: h.r,
                        _b: h.g,
                        _c: h.b,
                        _d: 0,
                        space: "rgb"
                    } : ci(h, "xyz") ? {
                        _a: h.x,
                        _b: h.y,
                        _c: h.z,
                        _d: 0,
                        space: "xyz"
                    } : ci(h, "hsl") ? {
                        _a: h.h,
                        _b: h.s,
                        _c: h.l,
                        _d: 0,
                        space: "hsl"
                    } : ci(h, "lab") ? {
                        _a: h.l,
                        _b: h.a,
                        _c: h.b,
                        _d: 0,
                        space: "lab"
                    } : ci(h, "lch") ? {
                        _a: h.l,
                        _b: h.c,
                        _c: h.h,
                        _d: 0,
                        space: "lch"
                    } : ci(h, "cmyk") ? {
                        _a: h.c,
                        _b: h.m,
                        _c: h.y,
                        _d: h.k,
                        space: "cmyk"
                    } : {
                        _a: 0,
                        _b: 0,
                        _c: 0,
                        space: "rgb"
                    };
                    return f.space = m || f.space, f;
                }(e, a);
                Object.assign(this, d);
            } else if (typeof e == "string") if (ry.test(e)) {
                const d = e.replace(AL, ""), [h, m, f] = wL.exec(d).slice(1, 4).map((p)=>parseInt(p));
                Object.assign(this, {
                    _a: h,
                    _b: m,
                    _c: f,
                    _d: 0,
                    space: "rgb"
                });
            } else {
                if (!ay.test(e)) throw Error("Unsupported string format, can't construct Color");
                {
                    const d = (p)=>parseInt(p, 16), [, h, m, f] = xL.exec(function(p) {
                        return p.length === 4 ? [
                            "#",
                            p.substring(1, 2),
                            p.substring(1, 2),
                            p.substring(2, 3),
                            p.substring(2, 3),
                            p.substring(3, 4),
                            p.substring(3, 4)
                        ].join("") : p;
                    }(e)).map(d);
                    Object.assign(this, {
                        _a: h,
                        _b: m,
                        _c: f,
                        _d: 0,
                        space: "rgb"
                    });
                }
            }
            const { _a: o, _b: s, _c: l, _d: u } = this, c = this.space === "rgb" ? {
                r: o,
                g: s,
                b: l
            } : this.space === "xyz" ? {
                x: o,
                y: s,
                z: l
            } : this.space === "hsl" ? {
                h: o,
                s,
                l
            } : this.space === "lab" ? {
                l: o,
                a: s,
                b: l
            } : this.space === "lch" ? {
                l: o,
                c: s,
                h: l
            } : this.space === "cmyk" ? {
                c: o,
                m: s,
                y: l,
                k: u
            } : {};
            Object.assign(this, c);
        }
        lab() {
            const { x: e, y: a, z: r } = this.xyz();
            return new pt(116 * a - 16, 500 * (e - a), 200 * (a - r), "lab");
        }
        lch() {
            const { l: e, a, b: r } = this.lab(), n = Math.sqrt(a ** 2 + r ** 2);
            let i = 180 * Math.atan2(r, a) / Math.PI;
            return i < 0 && (i *= -1, i = 360 - i), new pt(e, n, i, "lch");
        }
        rgb() {
            if (this.space === "rgb") return this;
            if ((e = this.space) === "lab" || e === "xyz" || e === "lch") {
                let { x: a, y: r, z: n } = this;
                if (this.space === "lab" || this.space === "lch") {
                    let { l: m, a: f, b: p } = this;
                    if (this.space === "lch") {
                        const { c: C, h: w } = this, F = Math.PI / 180;
                        f = C * Math.cos(F * w), p = C * Math.sin(F * w);
                    }
                    const g = (m + 16) / 116, v = f / 500 + g, b = g - p / 200, k = 16 / 116, S = .008856, x = 7.787;
                    a = .95047 * (v ** 3 > S ? v ** 3 : (v - k) / x), r = 1 * (g ** 3 > S ? g ** 3 : (g - k) / x), n = 1.08883 * (b ** 3 > S ? b ** 3 : (b - k) / x);
                }
                const i = 3.2406 * a + -1.5372 * r + -.4986 * n, o = -.9689 * a + 1.8758 * r + .0415 * n, s = .0557 * a + -.204 * r + 1.057 * n, l = Math.pow, u = .0031308, c = i > u ? 1.055 * l(i, 1 / 2.4) - .055 : 12.92 * i, d = o > u ? 1.055 * l(o, 1 / 2.4) - .055 : 12.92 * o, h = s > u ? 1.055 * l(s, 1 / 2.4) - .055 : 12.92 * s;
                return new pt(255 * c, 255 * d, 255 * h);
            }
            if (this.space === "hsl") {
                let { h: a, s: r, l: n } = this;
                if (a /= 360, r /= 100, n /= 100, r === 0) return n *= 255, new pt(n, n, n);
                const i = n < .5 ? n * (1 + r) : n + r - n * r, o = 2 * n - i, s = 255 * _d(o, i, a + 1 / 3), l = 255 * _d(o, i, a), u = 255 * _d(o, i, a - 1 / 3);
                return new pt(s, l, u);
            }
            if (this.space === "cmyk") {
                const { c: a, m: r, y: n, k: i } = this, o = 255 * (1 - Math.min(1, a * (1 - i) + i)), s = 255 * (1 - Math.min(1, r * (1 - i) + i)), l = 255 * (1 - Math.min(1, n * (1 - i) + i));
                return new pt(o, s, l);
            }
            return this;
            var e;
        }
        toArray() {
            const { _a: e, _b: a, _c: r, _d: n, space: i } = this;
            return [
                e,
                a,
                r,
                n,
                i
            ];
        }
        toHex() {
            const [e, a, r] = this._clamped().map(TL);
            return `#${e}${a}${r}`;
        }
        toRgb() {
            const [e, a, r] = this._clamped();
            return `rgb(${e},${a},${r})`;
        }
        toString() {
            return this.toHex();
        }
        xyz() {
            const { _a: e, _b: a, _c: r } = this.rgb(), [n, i, o] = [
                e,
                a,
                r
            ].map((g)=>g / 255), s = n > .04045 ? Math.pow((n + .055) / 1.055, 2.4) : n / 12.92, l = i > .04045 ? Math.pow((i + .055) / 1.055, 2.4) : i / 12.92, u = o > .04045 ? Math.pow((o + .055) / 1.055, 2.4) : o / 12.92, c = (.4124 * s + .3576 * l + .1805 * u) / .95047, d = (.2126 * s + .7152 * l + .0722 * u) / 1, h = (.0193 * s + .1192 * l + .9505 * u) / 1.08883, m = c > .008856 ? Math.pow(c, 1 / 3) : 7.787 * c + 16 / 116, f = d > .008856 ? Math.pow(d, 1 / 3) : 7.787 * d + 16 / 116, p = h > .008856 ? Math.pow(h, 1 / 3) : 7.787 * h + 16 / 116;
            return new pt(m, f, p, "xyz");
        }
        _clamped() {
            const { _a: e, _b: a, _c: r } = this.rgb(), { max: n, min: i, round: o } = Math;
            return [
                e,
                a,
                r
            ].map((s)=>n(0, i(o(s), 255)));
        }
    }
    class dt {
        constructor(...e){
            this.init(...e);
        }
        clone() {
            return new dt(this);
        }
        init(e, a) {
            const i = Array.isArray(e) ? {
                x: e[0],
                y: e[1]
            } : typeof e == "object" ? {
                x: e.x,
                y: e.y
            } : {
                x: e,
                y: a
            };
            return this.x = i.x == null ? 0 : i.x, this.y = i.y == null ? 0 : i.y, this;
        }
        toArray() {
            return [
                this.x,
                this.y
            ];
        }
        transform(e) {
            return this.clone().transformO(e);
        }
        transformO(e) {
            Ie.isMatrixLike(e) || (e = new Ie(e));
            const { x: a, y: r } = this;
            return this.x = e.a * a + e.c * r + e.e, this.y = e.b * a + e.d * r + e.f, this;
        }
    }
    function di(t, e, a) {
        return Math.abs(e - t) < 1e-6;
    }
    class Ie {
        constructor(...e){
            this.init(...e);
        }
        static formatTransforms(e) {
            const a = e.flip === "both" || e.flip === !0, r = e.flip && (a || e.flip === "x") ? -1 : 1, n = e.flip && (a || e.flip === "y") ? -1 : 1, i = e.skew && e.skew.length ? e.skew[0] : isFinite(e.skew) ? e.skew : isFinite(e.skewX) ? e.skewX : 0, o = e.skew && e.skew.length ? e.skew[1] : isFinite(e.skew) ? e.skew : isFinite(e.skewY) ? e.skewY : 0, s = e.scale && e.scale.length ? e.scale[0] * r : isFinite(e.scale) ? e.scale * r : isFinite(e.scaleX) ? e.scaleX * r : r, l = e.scale && e.scale.length ? e.scale[1] * n : isFinite(e.scale) ? e.scale * n : isFinite(e.scaleY) ? e.scaleY * n : n, u = e.shear || 0, c = e.rotate || e.theta || 0, d = new dt(e.origin || e.around || e.ox || e.originX, e.oy || e.originY), h = d.x, m = d.y, f = new dt(e.position || e.px || e.positionX || NaN, e.py || e.positionY || NaN), p = f.x, g = f.y, v = new dt(e.translate || e.tx || e.translateX, e.ty || e.translateY), b = v.x, k = v.y, S = new dt(e.relative || e.rx || e.relativeX, e.ry || e.relativeY);
            return {
                scaleX: s,
                scaleY: l,
                skewX: i,
                skewY: o,
                shear: u,
                theta: c,
                rx: S.x,
                ry: S.y,
                tx: b,
                ty: k,
                ox: h,
                oy: m,
                px: p,
                py: g
            };
        }
        static fromArray(e) {
            return {
                a: e[0],
                b: e[1],
                c: e[2],
                d: e[3],
                e: e[4],
                f: e[5]
            };
        }
        static isMatrixLike(e) {
            return e.a != null || e.b != null || e.c != null || e.d != null || e.e != null || e.f != null;
        }
        static matrixMultiply(e, a, r) {
            const n = e.a * a.a + e.c * a.b, i = e.b * a.a + e.d * a.b, o = e.a * a.c + e.c * a.d, s = e.b * a.c + e.d * a.d, l = e.e + e.a * a.e + e.c * a.f, u = e.f + e.b * a.e + e.d * a.f;
            return r.a = n, r.b = i, r.c = o, r.d = s, r.e = l, r.f = u, r;
        }
        around(e, a, r) {
            return this.clone().aroundO(e, a, r);
        }
        aroundO(e, a, r) {
            const n = e || 0, i = a || 0;
            return this.translateO(-n, -i).lmultiplyO(r).translateO(n, i);
        }
        clone() {
            return new Ie(this);
        }
        decompose(e = 0, a = 0) {
            const r = this.a, n = this.b, i = this.c, o = this.d, s = this.e, l = this.f, u = r * o - n * i, c = u > 0 ? 1 : -1, d = c * Math.sqrt(r * r + n * n), h = Math.atan2(c * n, c * r), m = 180 / Math.PI * h, f = Math.cos(h), p = Math.sin(h), g = (r * i + n * o) / u, v = i * d / (g * r - n) || o * d / (g * n + r);
            return {
                scaleX: d,
                scaleY: v,
                shear: g,
                rotate: m,
                translateX: s - e + e * f * d + a * (g * f * d - p * v),
                translateY: l - a + e * p * d + a * (g * p * d + f * v),
                originX: e,
                originY: a,
                a: this.a,
                b: this.b,
                c: this.c,
                d: this.d,
                e: this.e,
                f: this.f
            };
        }
        equals(e) {
            if (e === this) return !0;
            const a = new Ie(e);
            return di(this.a, a.a) && di(this.b, a.b) && di(this.c, a.c) && di(this.d, a.d) && di(this.e, a.e) && di(this.f, a.f);
        }
        flip(e, a) {
            return this.clone().flipO(e, a);
        }
        flipO(e, a) {
            return e === "x" ? this.scaleO(-1, 1, a, 0) : e === "y" ? this.scaleO(1, -1, 0, a) : this.scaleO(-1, -1, e, a || e);
        }
        init(e) {
            const a = Ie.fromArray([
                1,
                0,
                0,
                1,
                0,
                0
            ]);
            return e = e instanceof fa ? e.matrixify() : typeof e == "string" ? Ie.fromArray(e.split(Nr).map(parseFloat)) : Array.isArray(e) ? Ie.fromArray(e) : typeof e == "object" && Ie.isMatrixLike(e) ? e : typeof e == "object" ? new Ie().transform(e) : arguments.length === 6 ? Ie.fromArray([].slice.call(arguments)) : a, this.a = e.a != null ? e.a : a.a, this.b = e.b != null ? e.b : a.b, this.c = e.c != null ? e.c : a.c, this.d = e.d != null ? e.d : a.d, this.e = e.e != null ? e.e : a.e, this.f = e.f != null ? e.f : a.f, this;
        }
        inverse() {
            return this.clone().inverseO();
        }
        inverseO() {
            const e = this.a, a = this.b, r = this.c, n = this.d, i = this.e, o = this.f, s = e * n - a * r;
            if (!s) throw new Error("Cannot invert " + this);
            const l = n / s, u = -a / s, c = -r / s, d = e / s, h = -(l * i + c * o), m = -(u * i + d * o);
            return this.a = l, this.b = u, this.c = c, this.d = d, this.e = h, this.f = m, this;
        }
        lmultiply(e) {
            return this.clone().lmultiplyO(e);
        }
        lmultiplyO(e) {
            const a = e instanceof Ie ? e : new Ie(e);
            return Ie.matrixMultiply(a, this, this);
        }
        multiply(e) {
            return this.clone().multiplyO(e);
        }
        multiplyO(e) {
            const a = e instanceof Ie ? e : new Ie(e);
            return Ie.matrixMultiply(this, a, this);
        }
        rotate(e, a, r) {
            return this.clone().rotateO(e, a, r);
        }
        rotateO(e, a = 0, r = 0) {
            e = Dd(e);
            const n = Math.cos(e), i = Math.sin(e), { a: o, b: s, c: l, d: u, e: c, f: d } = this;
            return this.a = o * n - s * i, this.b = s * n + o * i, this.c = l * n - u * i, this.d = u * n + l * i, this.e = c * n - d * i + r * i - a * n + a, this.f = d * n + c * i - a * i - r * n + r, this;
        }
        scale() {
            return this.clone().scaleO(...arguments);
        }
        scaleO(e, a = e, r = 0, n = 0) {
            arguments.length === 3 && (n = r, r = a, a = e);
            const { a: i, b: o, c: s, d: l, e: u, f: c } = this;
            return this.a = i * e, this.b = o * a, this.c = s * e, this.d = l * a, this.e = u * e - r * e + r, this.f = c * a - n * a + n, this;
        }
        shear(e, a, r) {
            return this.clone().shearO(e, a, r);
        }
        shearO(e, a = 0, r = 0) {
            const { a: n, b: i, c: o, d: s, e: l, f: u } = this;
            return this.a = n + i * e, this.c = o + s * e, this.e = l + u * e - r * e, this;
        }
        skew() {
            return this.clone().skewO(...arguments);
        }
        skewO(e, a = e, r = 0, n = 0) {
            arguments.length === 3 && (n = r, r = a, a = e), e = Dd(e), a = Dd(a);
            const i = Math.tan(e), o = Math.tan(a), { a: s, b: l, c: u, d: c, e: d, f: h } = this;
            return this.a = s + l * i, this.b = l + s * o, this.c = u + c * i, this.d = c + u * o, this.e = d + h * i - n * i, this.f = h + d * o - r * o, this;
        }
        skewX(e, a, r) {
            return this.skew(e, 0, a, r);
        }
        skewY(e, a, r) {
            return this.skew(0, e, a, r);
        }
        toArray() {
            return [
                this.a,
                this.b,
                this.c,
                this.d,
                this.e,
                this.f
            ];
        }
        toString() {
            return "matrix(" + this.a + "," + this.b + "," + this.c + "," + this.d + "," + this.e + "," + this.f + ")";
        }
        transform(e) {
            if (Ie.isMatrixLike(e)) return new Ie(e).multiplyO(this);
            const a = Ie.formatTransforms(e), { x: r, y: n } = new dt(a.ox, a.oy).transform(this), i = new Ie().translateO(a.rx, a.ry).lmultiplyO(this).translateO(-r, -n).scaleO(a.scaleX, a.scaleY).skewO(a.skewX, a.skewY).shearO(a.shear).rotateO(a.theta).translateO(r, n);
            if (isFinite(a.px) || isFinite(a.py)) {
                const o = new dt(r, n).transform(i), s = isFinite(a.px) ? a.px - o.x : 0, l = isFinite(a.py) ? a.py - o.y : 0;
                i.translateO(s, l);
            }
            return i.translateO(a.tx, a.ty), i;
        }
        translate(e, a) {
            return this.clone().translateO(e, a);
        }
        translateO(e, a) {
            return this.e += e || 0, this.f += a || 0, this;
        }
        valueOf() {
            return {
                a: this.a,
                b: this.b,
                c: this.c,
                d: this.d,
                e: this.e,
                f: this.f
            };
        }
    }
    function Gr() {
        if (!Gr.nodes) {
            const t = Sa().size(2, 0);
            t.node.style.cssText = [
                "opacity: 0",
                "position: absolute",
                "left: -100%",
                "top: -100%",
                "overflow: hidden"
            ].join(";"), t.attr("focusable", "false"), t.attr("aria-hidden", "true");
            const e = t.path().node;
            Gr.nodes = {
                svg: t,
                path: e
            };
        }
        if (!Gr.nodes.svg.node.parentNode) {
            const t = ot.document.body || ot.document.documentElement;
            Gr.nodes.svg.addTo(t);
        }
        return Gr.nodes;
    }
    function x1(t) {
        return !(t.width || t.height || t.x || t.y);
    }
    st(Ie, "Matrix");
    class Ot {
        constructor(...e){
            this.init(...e);
        }
        addOffset() {
            return this.x += ot.window.pageXOffset, this.y += ot.window.pageYOffset, new Ot(this);
        }
        init(e) {
            return e = typeof e == "string" ? e.split(Nr).map(parseFloat) : Array.isArray(e) ? e : typeof e == "object" ? [
                e.left != null ? e.left : e.x,
                e.top != null ? e.top : e.y,
                e.width,
                e.height
            ] : arguments.length === 4 ? [].slice.call(arguments) : [
                0,
                0,
                0,
                0
            ], this.x = e[0] || 0, this.y = e[1] || 0, this.width = this.w = e[2] || 0, this.height = this.h = e[3] || 0, this.x2 = this.x + this.w, this.y2 = this.y + this.h, this.cx = this.x + this.w / 2, this.cy = this.y + this.h / 2, this;
        }
        isNulled() {
            return x1(this);
        }
        merge(e) {
            const a = Math.min(this.x, e.x), r = Math.min(this.y, e.y), n = Math.max(this.x + this.width, e.x + e.width) - a, i = Math.max(this.y + this.height, e.y + e.height) - r;
            return new Ot(a, r, n, i);
        }
        toArray() {
            return [
                this.x,
                this.y,
                this.width,
                this.height
            ];
        }
        toString() {
            return this.x + " " + this.y + " " + this.width + " " + this.height;
        }
        transform(e) {
            e instanceof Ie || (e = new Ie(e));
            let a = 1 / 0, r = -1 / 0, n = 1 / 0, i = -1 / 0;
            return [
                new dt(this.x, this.y),
                new dt(this.x2, this.y),
                new dt(this.x, this.y2),
                new dt(this.x2, this.y2)
            ].forEach(function(o) {
                o = o.transform(e), a = Math.min(a, o.x), r = Math.max(r, o.x), n = Math.min(n, o.y), i = Math.max(i, o.y);
            }), new Ot(a, n, r - a, i - n);
        }
    }
    function oy(t, e, a) {
        let r;
        try {
            if (r = e(t.node), x1(r) && (n = t.node) !== ot.document && !(ot.document.documentElement.contains || function(i) {
                for(; i.parentNode;)i = i.parentNode;
                return i === ot.document;
            }).call(ot.document.documentElement, n)) throw new Error("Element not in the dom");
        } catch  {
            r = a(t);
        }
        var n;
        return r;
    }
    Xe({
        viewbox: {
            viewbox (t, e, a, r) {
                return t == null ? new Ot(this.attr("viewBox")) : this.attr("viewBox", new Ot(t, e, a, r));
            },
            zoom (t, e) {
                let { width: a, height: r } = this.attr([
                    "width",
                    "height"
                ]);
                if ((a || r) && typeof a != "string" && typeof r != "string" || (a = this.node.clientWidth, r = this.node.clientHeight), !a || !r) throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");
                const n = this.viewbox(), i = a / n.width, o = r / n.height, s = Math.min(i, o);
                if (t == null) return s;
                let l = s / t;
                l === 1 / 0 && (l = Number.MAX_SAFE_INTEGER / 100), e = e || new dt(a / 2 / i + n.x, r / 2 / o + n.y);
                const u = new Ot(n).transform(new Ie({
                    scale: l,
                    origin: e
                }));
                return this.viewbox(u);
            }
        }
    }), st(Ot, "Box");
    class Bn extends Array {
        constructor(e = [], ...a){
            if (super(e, ...a), typeof e == "number") return this;
            this.length = 0, this.push(...e);
        }
    }
    Ne([
        Bn
    ], {
        each (t, ...e) {
            return typeof t == "function" ? this.map((a, r, n)=>t.call(a, a, r, n)) : this.map((a)=>a[t](...e));
        },
        toArray () {
            return Array.prototype.concat.apply([], this);
        }
    });
    const EL = [
        "toArray",
        "constructor",
        "each"
    ];
    function ni(t, e) {
        return new Bn(lf((e || ot.document).querySelectorAll(t), function(a) {
            return ar(a);
        }));
    }
    Bn.extend = function(t) {
        t = t.reduce((e, a)=>(EL.includes(a) || a[0] === "_" || (a in Array.prototype && (e["$" + a] = Array.prototype[a]), e[a] = function(...r) {
                return this.each(a, ...r);
            }), e), {}), Ne([
            Bn
        ], t);
    };
    let _L = 0;
    const w1 = {};
    function S1(t) {
        let e = t.getEventHolder();
        return e === ot.window && (e = w1), e.events || (e.events = {}), e.events;
    }
    function mf(t) {
        return t.getEventTarget();
    }
    function Er(t, e, a, r, n) {
        const i = a.bind(r || t), o = Sa(t), s = S1(o), l = mf(o);
        e = Array.isArray(e) ? e : e.split(Nr), a._svgjsListenerId || (a._svgjsListenerId = ++_L), e.forEach(function(u) {
            const c = u.split(".")[0], d = u.split(".")[1] || "*";
            s[c] = s[c] || {}, s[c][d] = s[c][d] || {}, s[c][d][a._svgjsListenerId] = i, l.addEventListener(c, i, n || !1);
        });
    }
    function rr(t, e, a, r) {
        const n = Sa(t), i = S1(n), o = mf(n);
        (typeof a != "function" || (a = a._svgjsListenerId)) && (e = Array.isArray(e) ? e : (e || "").split(Nr)).forEach(function(s) {
            const l = s && s.split(".")[0], u = s && s.split(".")[1];
            let c, d;
            if (a) i[l] && i[l][u || "*"] && (o.removeEventListener(l, i[l][u || "*"][a], r || !1), delete i[l][u || "*"][a]);
            else if (l && u) {
                if (i[l] && i[l][u]) {
                    for(d in i[l][u])rr(o, [
                        l,
                        u
                    ].join("."), d);
                    delete i[l][u];
                }
            } else if (u) for(s in i)for(c in i[s])u === c && rr(o, [
                s,
                u
            ].join("."));
            else if (l) {
                if (i[l]) {
                    for(c in i[l])rr(o, [
                        l,
                        c
                    ].join("."));
                    delete i[l];
                }
            } else {
                for(s in i)rr(o, s);
                (function(h) {
                    let m = h.getEventHolder();
                    m === ot.window && (m = w1), m.events && (m.events = {});
                })(n);
            }
        });
    }
    class es extends cf {
        addEventListener() {}
        dispatch(e, a, r) {
            return function(n, i, o, s) {
                const l = mf(n);
                return i instanceof ot.window.Event || (i = new ot.window.CustomEvent(i, {
                    detail: o,
                    cancelable: !0,
                    ...s
                })), l.dispatchEvent(i), i;
            }(this, e, a, r);
        }
        dispatchEvent(e) {
            const a = this.getEventHolder().events;
            if (!a) return !0;
            const r = a[e.type];
            for(const n in r)for(const i in r[n])r[n][i](e);
            return !e.defaultPrevented;
        }
        fire(e, a, r) {
            return this.dispatch(e, a, r), this;
        }
        getEventHolder() {
            return this;
        }
        getEventTarget() {
            return this;
        }
        off(e, a, r) {
            return rr(this, e, a, r), this;
        }
        on(e, a, r, n) {
            return Er(this, e, a, r, n), this;
        }
        removeEventListener() {}
    }
    function sy() {}
    st(es, "EventTarget");
    const Pd = 400, PL = ">", BL = 0, ML = {
        "fill-opacity": 1,
        "stroke-opacity": 1,
        "stroke-width": 0,
        "stroke-linejoin": "miter",
        "stroke-linecap": "butt",
        fill: "#000000",
        stroke: "#000000",
        opacity: 1,
        x: 0,
        y: 0,
        cx: 0,
        cy: 0,
        width: 0,
        height: 0,
        r: 0,
        rx: 0,
        ry: 0,
        offset: 0,
        "stop-opacity": 1,
        "stop-color": "#000000",
        "text-anchor": "start"
    };
    class Mn extends Array {
        constructor(...e){
            super(...e), this.init(...e);
        }
        clone() {
            return new this.constructor(this);
        }
        init(e) {
            return typeof e == "number" || (this.length = 0, this.push(...this.parse(e))), this;
        }
        parse(e = []) {
            return e instanceof Array ? e : e.trim().split(Nr).map(parseFloat);
        }
        toArray() {
            return Array.prototype.concat.apply([], this);
        }
        toSet() {
            return new Set(this);
        }
        toString() {
            return this.join(" ");
        }
        valueOf() {
            const e = [];
            return e.push(...this), e;
        }
    }
    class je {
        constructor(...e){
            this.init(...e);
        }
        convert(e) {
            return new je(this.value, e);
        }
        divide(e) {
            return e = new je(e), new je(this / e, this.unit || e.unit);
        }
        init(e, a) {
            return a = Array.isArray(e) ? e[1] : a, e = Array.isArray(e) ? e[0] : e, this.value = 0, this.unit = a || "", typeof e == "number" ? this.value = isNaN(e) ? 0 : isFinite(e) ? e : e < 0 ? -34e37 : 34e37 : typeof e == "string" ? (a = e.match(k1)) && (this.value = parseFloat(a[1]), a[5] === "%" ? this.value /= 100 : a[5] === "s" && (this.value *= 1e3), this.unit = a[5]) : e instanceof je && (this.value = e.valueOf(), this.unit = e.unit), this;
        }
        minus(e) {
            return e = new je(e), new je(this - e, this.unit || e.unit);
        }
        plus(e) {
            return e = new je(e), new je(this + e, this.unit || e.unit);
        }
        times(e) {
            return e = new je(e), new je(this * e, this.unit || e.unit);
        }
        toArray() {
            return [
                this.value,
                this.unit
            ];
        }
        toJSON() {
            return this.toString();
        }
        toString() {
            return (this.unit === "%" ? ~~(1e8 * this.value) / 1e6 : this.unit === "s" ? this.value / 1e3 : this.value) + this.unit;
        }
        valueOf() {
            return this.value;
        }
    }
    const RL = new Set([
        "fill",
        "stroke",
        "color",
        "bgcolor",
        "stop-color",
        "flood-color",
        "lighting-color"
    ]), C1 = [];
    class Qr extends es {
        constructor(e, a){
            super(), this.node = e, this.type = e.nodeName, a && e !== a && this.attr(a);
        }
        add(e, a) {
            return (e = Sa(e)).removeNamespace && this.node instanceof ot.window.SVGElement && e.removeNamespace(), a == null ? this.node.appendChild(e.node) : e.node !== this.node.childNodes[a] && this.node.insertBefore(e.node, this.node.childNodes[a]), this;
        }
        addTo(e, a) {
            return Sa(e).put(this, a);
        }
        children() {
            return new Bn(lf(this.node.children, function(e) {
                return ar(e);
            }));
        }
        clear() {
            for(; this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);
            return this;
        }
        clone(e = !0, a = !0) {
            this.writeDataToDom();
            let r = this.node.cloneNode(e);
            return a && (r = F1(r)), new this.constructor(r);
        }
        each(e, a) {
            const r = this.children();
            let n, i;
            for(n = 0, i = r.length; n < i; n++)e.apply(r[n], [
                n,
                r
            ]), a && r[n].each(e, a);
            return this;
        }
        element(e, a) {
            return this.put(new Qr(xo(e), a));
        }
        first() {
            return ar(this.node.firstChild);
        }
        get(e) {
            return ar(this.node.childNodes[e]);
        }
        getEventHolder() {
            return this.node;
        }
        getEventTarget() {
            return this.node;
        }
        has(e) {
            return this.index(e) >= 0;
        }
        html(e, a) {
            return this.xml(e, a, "http://www.w3.org/1999/xhtml");
        }
        id(e) {
            return e !== void 0 || this.node.id || (this.node.id = b1(this.type)), this.attr("id", e);
        }
        index(e) {
            return [].slice.call(this.node.childNodes).indexOf(e.node);
        }
        last() {
            return ar(this.node.lastChild);
        }
        matches(e) {
            const a = this.node, r = a.matches || a.matchesSelector || a.msMatchesSelector || a.mozMatchesSelector || a.webkitMatchesSelector || a.oMatchesSelector || null;
            return r && r.call(a, e);
        }
        parent(e) {
            let a = this;
            if (!a.node.parentNode) return null;
            if (a = ar(a.node.parentNode), !e) return a;
            do if (typeof e == "string" ? a.matches(e) : a instanceof e) return a;
            while (a = ar(a.node.parentNode));
            return a;
        }
        put(e, a) {
            return e = Sa(e), this.add(e, a), e;
        }
        putIn(e, a) {
            return Sa(e).add(this, a);
        }
        remove() {
            return this.parent() && this.parent().removeElement(this), this;
        }
        removeElement(e) {
            return this.node.removeChild(e.node), this;
        }
        replace(e) {
            return e = Sa(e), this.node.parentNode && this.node.parentNode.replaceChild(e.node, this.node), e;
        }
        round(e = 2, a = null) {
            const r = 10 ** e, n = this.attr(a);
            for(const i in n)typeof n[i] == "number" && (n[i] = Math.round(n[i] * r) / r);
            return this.attr(n), this;
        }
        svg(e, a) {
            return this.xml(e, a, uf);
        }
        toString() {
            return this.id();
        }
        words(e) {
            return this.node.textContent = e, this;
        }
        wrap(e) {
            const a = this.parent();
            if (!a) return this.addTo(e);
            const r = a.index(this);
            return a.put(e, r).put(this);
        }
        writeDataToDom() {
            return this.each(function() {
                this.writeDataToDom();
            }), this;
        }
        xml(e, a, r) {
            if (typeof e == "boolean" && (r = a, a = e, e = null), e == null || typeof e == "function") {
                a = a == null || a, this.writeDataToDom();
                let s = this;
                if (e != null) {
                    if (s = ar(s.node.cloneNode(!0)), a) {
                        const l = e(s);
                        if (s = l || s, l === !1) return "";
                    }
                    s.each(function() {
                        const l = e(this), u = l || this;
                        l === !1 ? this.remove() : l && this !== u && this.replace(u);
                    }, !0);
                }
                return a ? s.node.outerHTML : s.node.innerHTML;
            }
            a = a != null && a;
            const n = xo("wrapper", r), i = ot.document.createDocumentFragment();
            n.innerHTML = e;
            for(let s = n.children.length; s--;)i.appendChild(n.firstElementChild);
            const o = this.parent();
            return a ? this.replace(i) && o : this.add(i);
        }
    }
    Ne(Qr, {
        attr: function(t, e, a) {
            if (t == null) {
                t = {}, e = this.node.attributes;
                for (const r of e)t[r.nodeName] = iy.test(r.nodeValue) ? parseFloat(r.nodeValue) : r.nodeValue;
                return t;
            }
            if (t instanceof Array) return t.reduce((r, n)=>(r[n] = this.attr(n), r), {});
            if (typeof t == "object" && t.constructor === Object) for(e in t)this.attr(e, t[e]);
            else if (e === null) this.node.removeAttribute(t);
            else {
                if (e == null) return (e = this.node.getAttribute(t)) == null ? ML[t] : iy.test(e) ? parseFloat(e) : e;
                typeof (e = C1.reduce((r, n)=>n(t, r, this), e)) == "number" ? e = new je(e) : RL.has(t) && pt.isColor(e) ? e = new pt(e) : e.constructor === Array && (e = new Mn(e)), t === "leading" ? this.leading && this.leading(e) : typeof a == "string" ? this.node.setAttributeNS(a, t, e.toString()) : this.node.setAttribute(t, e.toString()), !this.rebuild || t !== "font-size" && t !== "x" || this.rebuild();
            }
            return this;
        },
        find: function(t) {
            return ni(t, this.node);
        },
        findOne: function(t) {
            return ar(this.node.querySelector(t));
        }
    }), st(Qr, "Dom");
    let fa = class extends Qr {
        constructor(t, e){
            super(t, e), this.dom = {}, this.node.instance = this, (t.hasAttribute("data-svgjs") || t.hasAttribute("svgjs:data")) && this.setData(JSON.parse(t.getAttribute("data-svgjs")) ?? JSON.parse(t.getAttribute("svgjs:data")) ?? {});
        }
        center(t, e) {
            return this.cx(t).cy(e);
        }
        cx(t) {
            return t == null ? this.x() + this.width() / 2 : this.x(t - this.width() / 2);
        }
        cy(t) {
            return t == null ? this.y() + this.height() / 2 : this.y(t - this.height() / 2);
        }
        defs() {
            const t = this.root();
            return t && t.defs();
        }
        dmove(t, e) {
            return this.dx(t).dy(e);
        }
        dx(t = 0) {
            return this.x(new je(t).plus(this.x()));
        }
        dy(t = 0) {
            return this.y(new je(t).plus(this.y()));
        }
        getEventHolder() {
            return this;
        }
        height(t) {
            return this.attr("height", t);
        }
        move(t, e) {
            return this.x(t).y(e);
        }
        parents(t = this.root()) {
            const e = typeof t == "string";
            e || (t = Sa(t));
            const a = new Bn;
            let r = this;
            for(; (r = r.parent()) && r.node !== ot.document && r.nodeName !== "#document-fragment" && (a.push(r), e || r.node !== t.node) && (!e || !r.matches(t));)if (r.node === this.root().node) return null;
            return a;
        }
        reference(t) {
            if (!(t = this.attr(t))) return null;
            const e = (t + "").match(SL);
            return e ? Sa(e[1]) : null;
        }
        root() {
            const t = this.parent(function(e) {
                return Cn[e];
            }(df));
            return t && t.root();
        }
        setData(t) {
            return this.dom = t, this;
        }
        size(t, e) {
            const a = Gi(this, t, e);
            return this.width(new je(a.width)).height(new je(a.height));
        }
        width(t) {
            return this.attr("width", t);
        }
        writeDataToDom() {
            return y1(this, this.dom), super.writeDataToDom();
        }
        x(t) {
            return this.attr("x", t);
        }
        y(t) {
            return this.attr("y", t);
        }
    };
    Ne(fa, {
        bbox: function() {
            const t = oy(this, (e)=>e.getBBox(), (e)=>{
                try {
                    const a = e.clone().addTo(Gr().svg).show(), r = a.node.getBBox();
                    return a.remove(), r;
                } catch (a) {
                    throw new Error(`Getting bbox of element "${e.node.nodeName}" is not possible: ${a.toString()}`);
                }
            });
            return new Ot(t);
        },
        rbox: function(t) {
            const e = oy(this, (r)=>r.getBoundingClientRect(), (r)=>{
                throw new Error(`Getting rbox of element "${r.node.nodeName}" is not possible`);
            }), a = new Ot(e);
            return t ? a.transform(t.screenCTM().inverseO()) : a.addOffset();
        },
        inside: function(t, e) {
            const a = this.bbox();
            return t > a.x && e > a.y && t < a.x + a.width && e < a.y + a.height;
        },
        point: function(t, e) {
            return new dt(t, e).transformO(this.screenCTM().inverseO());
        },
        ctm: function() {
            return new Ie(this.node.getCTM());
        },
        screenCTM: function() {
            try {
                if (typeof this.isRoot == "function" && !this.isRoot()) {
                    const t = this.rect(1, 1), e = t.node.getScreenCTM();
                    return t.remove(), new Ie(e);
                }
                return new Ie(this.node.getScreenCTM());
            } catch  {
                return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`), new Ie;
            }
        }
    }), st(fa, "Element");
    const Qi = {
        stroke: [
            "color",
            "width",
            "opacity",
            "linecap",
            "linejoin",
            "miterlimit",
            "dasharray",
            "dashoffset"
        ],
        fill: [
            "color",
            "opacity",
            "rule"
        ],
        prefix: function(t, e) {
            return e === "color" ? t : t + "-" + e;
        }
    };
    [
        "fill",
        "stroke"
    ].forEach(function(t) {
        const e = {};
        let a;
        e[t] = function(r) {
            if (r === void 0) return this.attr(t);
            if (typeof r == "string" || r instanceof pt || pt.isRgb(r) || r instanceof fa) this.attr(t, r);
            else for(a = Qi[t].length - 1; a >= 0; a--)r[Qi[t][a]] != null && this.attr(Qi.prefix(t, Qi[t][a]), r[Qi[t][a]]);
            return this;
        }, Xe([
            "Element",
            "Runner"
        ], e);
    }), Xe([
        "Element",
        "Runner"
    ], {
        matrix: function(t, e, a, r, n, i) {
            return t == null ? new Ie(this) : this.attr("transform", new Ie(t, e, a, r, n, i));
        },
        rotate: function(t, e, a) {
            return this.transform({
                rotate: t,
                ox: e,
                oy: a
            }, !0);
        },
        skew: function(t, e, a, r) {
            return arguments.length === 1 || arguments.length === 3 ? this.transform({
                skew: t,
                ox: e,
                oy: a
            }, !0) : this.transform({
                skew: [
                    t,
                    e
                ],
                ox: a,
                oy: r
            }, !0);
        },
        shear: function(t, e, a) {
            return this.transform({
                shear: t,
                ox: e,
                oy: a
            }, !0);
        },
        scale: function(t, e, a, r) {
            return arguments.length === 1 || arguments.length === 3 ? this.transform({
                scale: t,
                ox: e,
                oy: a
            }, !0) : this.transform({
                scale: [
                    t,
                    e
                ],
                ox: a,
                oy: r
            }, !0);
        },
        translate: function(t, e) {
            return this.transform({
                translate: [
                    t,
                    e
                ]
            }, !0);
        },
        relative: function(t, e) {
            return this.transform({
                relative: [
                    t,
                    e
                ]
            }, !0);
        },
        flip: function(t = "both", e = "center") {
            return "xybothtrue".indexOf(t) === -1 && (e = t, t = "both"), this.transform({
                flip: t,
                origin: e
            }, !0);
        },
        opacity: function(t) {
            return this.attr("opacity", t);
        }
    }), Xe("radius", {
        radius: function(t, e = t) {
            return (this._element || this).type === "radialGradient" ? this.attr("r", new je(t)) : this.rx(t).ry(e);
        }
    }), Xe("Path", {
        length: function() {
            return this.node.getTotalLength();
        },
        pointAt: function(t) {
            return new dt(this.node.getPointAtLength(t));
        }
    }), Xe([
        "Element",
        "Runner"
    ], {
        font: function(t, e) {
            if (typeof t == "object") {
                for(e in t)this.font(e, t[e]);
                return this;
            }
            return t === "leading" ? this.leading(e) : t === "anchor" ? this.attr("text-anchor", e) : t === "size" || t === "family" || t === "weight" || t === "stretch" || t === "variant" || t === "style" ? this.attr("font-" + t, e) : this.attr(t, e);
        }
    });
    Xe("Element", [
        "click",
        "dblclick",
        "mousedown",
        "mouseup",
        "mouseover",
        "mouseout",
        "mousemove",
        "mouseenter",
        "mouseleave",
        "touchstart",
        "touchmove",
        "touchleave",
        "touchend",
        "touchcancel",
        "contextmenu",
        "wheel",
        "pointerdown",
        "pointermove",
        "pointerup",
        "pointerleave",
        "pointercancel"
    ].reduce(function(t, e) {
        return t[e] = function(a) {
            return a === null ? this.off(e) : this.on(e, a), this;
        }, t;
    }, {})), Xe("Element", {
        untransform: function() {
            return this.attr("transform", null);
        },
        matrixify: function() {
            return (this.attr("transform") || "").split(CL).slice(0, -1).map(function(e) {
                const a = e.trim().split("(");
                return [
                    a[0],
                    a[1].split(Nr).map(function(r) {
                        return parseFloat(r);
                    })
                ];
            }).reverse().reduce(function(e, a) {
                return a[0] === "matrix" ? e.lmultiply(Ie.fromArray(a[1])) : e[a[0]].apply(e, a[1]);
            }, new Ie);
        },
        toParent: function(t, e) {
            if (this === t) return this;
            if (Lh(this.node)) return this.addTo(t, e);
            const a = this.screenCTM(), r = t.screenCTM().inverse();
            return this.addTo(t, e).untransform().transform(r.multiply(a)), this;
        },
        toRoot: function(t) {
            return this.toParent(this.root(), t);
        },
        transform: function(t, e) {
            if (t == null || typeof t == "string") {
                const r = new Ie(this).decompose();
                return t == null ? r : r[t];
            }
            Ie.isMatrixLike(t) || (t = {
                ...t,
                origin: Rh(t, this)
            });
            const a = new Ie(e === !0 ? this : e || !1).transform(t);
            return this.attr("transform", a);
        }
    });
    class Da extends fa {
        flatten() {
            return this.each(function() {
                if (this instanceof Da) return this.flatten().ungroup();
            }), this;
        }
        ungroup(e = this.parent(), a = e.index(this)) {
            return a = a === -1 ? e.children().length : a, this.each(function(r, n) {
                return n[n.length - r - 1].toParent(e, a);
            }), this.remove();
        }
    }
    st(Da, "Container");
    class Ol extends Da {
        constructor(e, a = e){
            super(yt("defs", e), a);
        }
        flatten() {
            return this;
        }
        ungroup() {
            return this;
        }
    }
    st(Ol, "Defs");
    class Qa extends fa {
    }
    function ff(t) {
        return this.attr("rx", t);
    }
    function pf(t) {
        return this.attr("ry", t);
    }
    function A1(t) {
        return t == null ? this.cx() - this.rx() : this.cx(t + this.rx());
    }
    function D1(t) {
        return t == null ? this.cy() - this.ry() : this.cy(t + this.ry());
    }
    function T1(t) {
        return this.attr("cx", t);
    }
    function E1(t) {
        return this.attr("cy", t);
    }
    function _1(t) {
        return t == null ? 2 * this.rx() : this.rx(new je(t).divide(2));
    }
    function P1(t) {
        return t == null ? 2 * this.ry() : this.ry(new je(t).divide(2));
    }
    st(Qa, "Shape");
    var LL = Object.freeze({
        __proto__: null,
        cx: T1,
        cy: E1,
        height: P1,
        rx: ff,
        ry: pf,
        width: _1,
        x: A1,
        y: D1
    });
    class Ts extends Qa {
        constructor(e, a = e){
            super(yt("ellipse", e), a);
        }
        size(e, a) {
            const r = Gi(this, e, a);
            return this.rx(new je(r.width).divide(2)).ry(new je(r.height).divide(2));
        }
    }
    Ne(Ts, LL), Xe("Container", {
        ellipse: vt(function(t = 0, e = t) {
            return this.put(new Ts).size(t, e).move(0, 0);
        })
    }), st(Ts, "Ellipse");
    class B1 extends Qr {
        constructor(e = ot.document.createDocumentFragment()){
            super(e);
        }
        xml(e, a, r) {
            if (typeof e == "boolean" && (r = a, a = e, e = null), e == null || typeof e == "function") {
                const n = new Qr(xo("wrapper", r));
                return n.add(this.node.cloneNode(!0)), n.xml(!1, r);
            }
            return super.xml(e, !1, r);
        }
    }
    function M1(t, e) {
        return (this._element || this).type === "radialGradient" ? this.attr({
            fx: new je(t),
            fy: new je(e)
        }) : this.attr({
            x1: new je(t),
            y1: new je(e)
        });
    }
    function R1(t, e) {
        return (this._element || this).type === "radialGradient" ? this.attr({
            cx: new je(t),
            cy: new je(e)
        }) : this.attr({
            x2: new je(t),
            y2: new je(e)
        });
    }
    st(B1, "Fragment");
    var IL = Object.freeze({
        __proto__: null,
        from: M1,
        to: R1
    });
    class oo extends Da {
        constructor(e, a){
            super(yt(e + "Gradient", typeof e == "string" ? null : e), a);
        }
        attr(e, a, r) {
            return e === "transform" && (e = "gradientTransform"), super.attr(e, a, r);
        }
        bbox() {
            return new Ot;
        }
        targets() {
            return ni("svg [fill*=" + this.id() + "]");
        }
        toString() {
            return this.url();
        }
        update(e) {
            return this.clear(), typeof e == "function" && e.call(this, this), this;
        }
        url() {
            return "url(#" + this.id() + ")";
        }
    }
    Ne(oo, IL), Xe({
        Container: {
            gradient (...t) {
                return this.defs().gradient(...t);
            }
        },
        Defs: {
            gradient: vt(function(t, e) {
                return this.put(new oo(t)).update(e);
            })
        }
    }), st(oo, "Gradient");
    class wo extends Da {
        constructor(e, a = e){
            super(yt("pattern", e), a);
        }
        attr(e, a, r) {
            return e === "transform" && (e = "patternTransform"), super.attr(e, a, r);
        }
        bbox() {
            return new Ot;
        }
        targets() {
            return ni("svg [fill*=" + this.id() + "]");
        }
        toString() {
            return this.url();
        }
        update(e) {
            return this.clear(), typeof e == "function" && e.call(this, this), this;
        }
        url() {
            return "url(#" + this.id() + ")";
        }
    }
    Xe({
        Container: {
            pattern (...t) {
                return this.defs().pattern(...t);
            }
        },
        Defs: {
            pattern: vt(function(t, e, a) {
                return this.put(new wo).update(a).attr({
                    x: 0,
                    y: 0,
                    width: t,
                    height: e,
                    patternUnits: "userSpaceOnUse"
                });
            })
        }
    }), st(wo, "Pattern");
    let Es = class extends Qa {
        constructor(t, e = t){
            super(yt("image", t), e);
        }
        load(t, e) {
            if (!t) return this;
            const a = new ot.window.Image;
            return Er(a, "load", function(r) {
                const n = this.parent(wo);
                this.width() === 0 && this.height() === 0 && this.size(a.width, a.height), n instanceof wo && n.width() === 0 && n.height() === 0 && n.size(this.width(), this.height()), typeof e == "function" && e.call(this, r);
            }, this), Er(a, "load error", function() {
                rr(a);
            }), this.attr("href", a.src = t, $i);
        }
    };
    var ly;
    ly = function(t, e, a) {
        return t !== "fill" && t !== "stroke" || DL.test(e) && (e = a.root().defs().image(e)), e instanceof Es && (e = a.root().defs().pattern(0, 0, (r)=>{
            r.add(e);
        })), e;
    }, C1.push(ly), Xe({
        Container: {
            image: vt(function(t, e) {
                return this.put(new Es).size(0, 0).load(t, e);
            })
        }
    }), st(Es, "Image");
    class en extends Mn {
        bbox() {
            let e = -1 / 0, a = -1 / 0, r = 1 / 0, n = 1 / 0;
            return this.forEach(function(i) {
                e = Math.max(i[0], e), a = Math.max(i[1], a), r = Math.min(i[0], r), n = Math.min(i[1], n);
            }), new Ot(r, n, e - r, a - n);
        }
        move(e, a) {
            const r = this.bbox();
            if (e -= r.x, a -= r.y, !isNaN(e) && !isNaN(a)) for(let n = this.length - 1; n >= 0; n--)this[n] = [
                this[n][0] + e,
                this[n][1] + a
            ];
            return this;
        }
        parse(e = [
            0,
            0
        ]) {
            const a = [];
            (e = e instanceof Array ? Array.prototype.concat.apply([], e) : e.trim().split(Nr).map(parseFloat)).length % 2 != 0 && e.pop();
            for(let r = 0, n = e.length; r < n; r += 2)a.push([
                e[r],
                e[r + 1]
            ]);
            return a;
        }
        size(e, a) {
            let r;
            const n = this.bbox();
            for(r = this.length - 1; r >= 0; r--)n.width && (this[r][0] = (this[r][0] - n.x) * e / n.width + n.x), n.height && (this[r][1] = (this[r][1] - n.y) * a / n.height + n.y);
            return this;
        }
        toLine() {
            return {
                x1: this[0][0],
                y1: this[0][1],
                x2: this[1][0],
                y2: this[1][1]
            };
        }
        toString() {
            const e = [];
            for(let a = 0, r = this.length; a < r; a++)e.push(this[a].join(","));
            return e.join(" ");
        }
        transform(e) {
            return this.clone().transformO(e);
        }
        transformO(e) {
            Ie.isMatrixLike(e) || (e = new Ie(e));
            for(let a = this.length; a--;){
                const [r, n] = this[a];
                this[a][0] = e.a * r + e.c * n + e.e, this[a][1] = e.b * r + e.d * n + e.f;
            }
            return this;
        }
    }
    const zL = en;
    var gf = Object.freeze({
        __proto__: null,
        MorphArray: zL,
        height: function(t) {
            const e = this.bbox();
            return t == null ? e.height : this.size(e.width, t);
        },
        width: function(t) {
            const e = this.bbox();
            return t == null ? e.width : this.size(t, e.height);
        },
        x: function(t) {
            return t == null ? this.bbox().x : this.move(t, this.bbox().y);
        },
        y: function(t) {
            return t == null ? this.bbox().y : this.move(this.bbox().x, t);
        }
    });
    let kn = class extends Qa {
        constructor(t, e = t){
            super(yt("line", t), e);
        }
        array() {
            return new en([
                [
                    this.attr("x1"),
                    this.attr("y1")
                ],
                [
                    this.attr("x2"),
                    this.attr("y2")
                ]
            ]);
        }
        move(t, e) {
            return this.attr(this.array().move(t, e).toLine());
        }
        plot(t, e, a, r) {
            return t == null ? this.array() : (t = e !== void 0 ? {
                x1: t,
                y1: e,
                x2: a,
                y2: r
            } : new en(t).toLine(), this.attr(t));
        }
        size(t, e) {
            const a = Gi(this, t, e);
            return this.attr(this.array().size(a.width, a.height).toLine());
        }
    };
    Ne(kn, gf), Xe({
        Container: {
            line: vt(function(...t) {
                return kn.prototype.plot.apply(this.put(new kn), t[0] != null ? t : [
                    0,
                    0,
                    0,
                    0
                ]);
            })
        }
    }), st(kn, "Line");
    let _s = class extends Da {
        constructor(t, e = t){
            super(yt("marker", t), e);
        }
        height(t) {
            return this.attr("markerHeight", t);
        }
        orient(t) {
            return this.attr("orient", t);
        }
        ref(t, e) {
            return this.attr("refX", t).attr("refY", e);
        }
        toString() {
            return "url(#" + this.id() + ")";
        }
        update(t) {
            return this.clear(), typeof t == "function" && t.call(this, this), this;
        }
        width(t) {
            return this.attr("markerWidth", t);
        }
    };
    function vi(t, e) {
        return function(a) {
            return a == null ? this[t] : (this[t] = a, e && e.call(this), this);
        };
    }
    Xe({
        Container: {
            marker (...t) {
                return this.defs().marker(...t);
            }
        },
        Defs: {
            marker: vt(function(t, e, a) {
                return this.put(new _s).size(t, e).ref(t / 2, e / 2).viewbox(0, 0, t, e).attr("orient", "auto").update(a);
            })
        },
        marker: {
            marker (t, e, a, r) {
                let n = [
                    "marker"
                ];
                return t !== "all" && n.push(t), n = n.join("-"), t = arguments[1] instanceof _s ? arguments[1] : this.defs().marker(e, a, r), this.attr(n, t);
            }
        }
    }), st(_s, "Marker");
    const NL = {
        "-": function(t) {
            return t;
        },
        "<>": function(t) {
            return -Math.cos(t * Math.PI) / 2 + .5;
        },
        ">": function(t) {
            return Math.sin(t * Math.PI / 2);
        },
        "<": function(t) {
            return 1 - Math.cos(t * Math.PI / 2);
        },
        bezier: function(t, e, a, r) {
            return function(n) {
                return n < 0 ? t > 0 ? e / t * n : a > 0 ? r / a * n : 0 : n > 1 ? a < 1 ? (1 - r) / (1 - a) * n + (r - a) / (1 - a) : t < 1 ? (1 - e) / (1 - t) * n + (e - t) / (1 - t) : 1 : 3 * n * (1 - n) ** 2 * e + 3 * n ** 2 * (1 - n) * r + n ** 3;
            };
        },
        steps: function(t, e = "end") {
            e = e.split("-").reverse()[0];
            let a = t;
            return e === "none" ? --a : e === "both" && ++a, (r, n = !1)=>{
                let i = Math.floor(r * t);
                const o = r * i % 1 == 0;
                return e !== "start" && e !== "both" || ++i, n && o && --i, r >= 0 && i < 0 && (i = 0), r <= 1 && i > a && (i = a), i / a;
            };
        }
    };
    class vf {
        done() {
            return !1;
        }
    }
    class Ih extends vf {
        constructor(e = PL){
            super(), this.ease = NL[e] || e;
        }
        step(e, a, r) {
            return typeof e != "number" ? r < 1 ? e : a : e + (a - e) * this.ease(r);
        }
    }
    class Zs extends vf {
        constructor(e){
            super(), this.stepper = e;
        }
        done(e) {
            return e.done;
        }
        step(e, a, r, n) {
            return this.stepper(e, a, r, n);
        }
    }
    function uy() {
        const t = (this._duration || 500) / 1e3, e = this._overshoot || 0, a = Math.PI, r = Math.log(e / 100 + 1e-10), n = -r / Math.sqrt(a * a + r * r), i = 3.9 / (n * t);
        this.d = 2 * n * i, this.k = i * i;
    }
    Ne(class extends Zs {
        constructor(t = 500, e = 0){
            super(), this.duration(t).overshoot(e);
        }
        step(t, e, a, r) {
            if (typeof t == "string") return t;
            if (r.done = a === 1 / 0, a === 1 / 0) return e;
            if (a === 0) return t;
            a > 100 && (a = 16), a /= 1e3;
            const n = r.velocity || 0, i = -this.d * n - this.k * (t - e), o = t + n * a + i * a * a / 2;
            return r.velocity = n + i * a, r.done = Math.abs(e - o) + Math.abs(n) < .002, r.done ? e : o;
        }
    }, {
        duration: vi("_duration", uy),
        overshoot: vi("_overshoot", uy)
    });
    Ne(class extends Zs {
        constructor(t = .1, e = .01, a = 0, r = 1e3){
            super(), this.p(t).i(e).d(a).windup(r);
        }
        step(t, e, a, r) {
            if (typeof t == "string") return t;
            if (r.done = a === 1 / 0, a === 1 / 0) return e;
            if (a === 0) return t;
            const n = e - t;
            let i = (r.integral || 0) + n * a;
            const o = (n - (r.error || 0)) / a, s = this._windup;
            return s !== !1 && (i = Math.max(-s, Math.min(i, s))), r.error = n, r.integral = i, r.done = Math.abs(n) < .001, r.done ? e : t + (this.P * n + this.I * i + this.D * o);
        }
    }, {
        windup: vi("_windup"),
        p: vi("P"),
        i: vi("I"),
        d: vi("D")
    });
    const OL = {
        M: 2,
        L: 2,
        H: 1,
        V: 1,
        C: 6,
        S: 4,
        Q: 4,
        T: 2,
        A: 7,
        Z: 0
    }, zh = {
        M: function(t, e, a) {
            return e.x = a.x = t[0], e.y = a.y = t[1], [
                "M",
                e.x,
                e.y
            ];
        },
        L: function(t, e) {
            return e.x = t[0], e.y = t[1], [
                "L",
                t[0],
                t[1]
            ];
        },
        H: function(t, e) {
            return e.x = t[0], [
                "H",
                t[0]
            ];
        },
        V: function(t, e) {
            return e.y = t[0], [
                "V",
                t[0]
            ];
        },
        C: function(t, e) {
            return e.x = t[4], e.y = t[5], [
                "C",
                t[0],
                t[1],
                t[2],
                t[3],
                t[4],
                t[5]
            ];
        },
        S: function(t, e) {
            return e.x = t[2], e.y = t[3], [
                "S",
                t[0],
                t[1],
                t[2],
                t[3]
            ];
        },
        Q: function(t, e) {
            return e.x = t[2], e.y = t[3], [
                "Q",
                t[0],
                t[1],
                t[2],
                t[3]
            ];
        },
        T: function(t, e) {
            return e.x = t[0], e.y = t[1], [
                "T",
                t[0],
                t[1]
            ];
        },
        Z: function(t, e, a) {
            return e.x = a.x, e.y = a.y, [
                "Z"
            ];
        },
        A: function(t, e) {
            return e.x = t[5], e.y = t[6], [
                "A",
                t[0],
                t[1],
                t[2],
                t[3],
                t[4],
                t[5],
                t[6]
            ];
        }
    }, Bd = "mlhvqtcsaz".split("");
    for(let t = 0, e = Bd.length; t < e; ++t)zh[Bd[t]] = function(a) {
        return function(r, n, i) {
            if (a === "H") r[0] = r[0] + n.x;
            else if (a === "V") r[0] = r[0] + n.y;
            else if (a === "A") r[5] = r[5] + n.x, r[6] = r[6] + n.y;
            else for(let o = 0, s = r.length; o < s; ++o)r[o] = r[o] + (o % 2 ? n.y : n.x);
            return zh[a](r, n, i);
        };
    }(Bd[t].toUpperCase());
    function Nh(t) {
        return t.segment.length && t.segment.length - 1 === OL[t.segment[0].toUpperCase()];
    }
    function HL(t, e) {
        t.inNumber && mn(t, !1);
        const a = hf.test(e);
        if (a) t.segment = [
            e
        ];
        else {
            const r = t.lastCommand, n = r.toLowerCase(), i = r === n;
            t.segment = [
                n === "m" ? i ? "l" : "L" : r
            ];
        }
        return t.inSegment = !0, t.lastCommand = t.segment[0], a;
    }
    function mn(t, e) {
        if (!t.inNumber) throw new Error("Parser Error");
        t.number && t.segment.push(parseFloat(t.number)), t.inNumber = e, t.number = "", t.pointSeen = !1, t.hasExponent = !1, Nh(t) && Oh(t);
    }
    function Oh(t) {
        t.inSegment = !1, t.absolute && (t.segment = function(e) {
            const a = e.segment[0];
            return zh[a](e.segment.slice(1), e.p, e.p0);
        }(t)), t.segments.push(t.segment);
    }
    function VL(t) {
        if (!t.segment.length) return !1;
        const e = t.segment[0].toUpperCase() === "A", a = t.segment.length;
        return e && (a === 4 || a === 5);
    }
    function WL(t) {
        return t.lastToken.toUpperCase() === "E";
    }
    const GL = new Set([
        " ",
        ",",
        "	",
        `
`,
        "\r",
        "\f"
    ]);
    class lr extends Mn {
        bbox() {
            return Gr().path.setAttribute("d", this.toString()), new Ot(Gr.nodes.path.getBBox());
        }
        move(e, a) {
            const r = this.bbox();
            if (e -= r.x, a -= r.y, !isNaN(e) && !isNaN(a)) for(let n, i = this.length - 1; i >= 0; i--)n = this[i][0], n === "M" || n === "L" || n === "T" ? (this[i][1] += e, this[i][2] += a) : n === "H" ? this[i][1] += e : n === "V" ? this[i][1] += a : n === "C" || n === "S" || n === "Q" ? (this[i][1] += e, this[i][2] += a, this[i][3] += e, this[i][4] += a, n === "C" && (this[i][5] += e, this[i][6] += a)) : n === "A" && (this[i][6] += e, this[i][7] += a);
            return this;
        }
        parse(e = "M0 0") {
            return Array.isArray(e) && (e = Array.prototype.concat.apply([], e).toString()), function(a, r = !0) {
                let n = 0, i = "";
                const o = {
                    segment: [],
                    inNumber: !1,
                    number: "",
                    lastToken: "",
                    inSegment: !1,
                    segments: [],
                    pointSeen: !1,
                    hasExponent: !1,
                    absolute: r,
                    p0: new dt,
                    p: new dt
                };
                for(; o.lastToken = i, i = a.charAt(n++);)if (o.inSegment || !HL(o, i)) if (i !== ".") if (isNaN(parseInt(i))) if (GL.has(i)) o.inNumber && mn(o, !1);
                else if (i !== "-" && i !== "+") if (i.toUpperCase() !== "E") {
                    if (hf.test(i)) {
                        if (o.inNumber) mn(o, !1);
                        else {
                            if (!Nh(o)) throw new Error("parser Error");
                            Oh(o);
                        }
                        --n;
                    }
                } else o.number += i, o.hasExponent = !0;
                else {
                    if (o.inNumber && !WL(o)) {
                        mn(o, !1), --n;
                        continue;
                    }
                    o.number += i, o.inNumber = !0;
                }
                else {
                    if (o.number === "0" || VL(o)) {
                        o.inNumber = !0, o.number = i, mn(o, !0);
                        continue;
                    }
                    o.inNumber = !0, o.number += i;
                }
                else {
                    if (o.pointSeen || o.hasExponent) {
                        mn(o, !1), --n;
                        continue;
                    }
                    o.inNumber = !0, o.pointSeen = !0, o.number += i;
                }
                return o.inNumber && mn(o, !1), o.inSegment && Nh(o) && Oh(o), o.segments;
            }(e);
        }
        size(e, a) {
            const r = this.bbox();
            let n, i;
            for(r.width = r.width === 0 ? 1 : r.width, r.height = r.height === 0 ? 1 : r.height, n = this.length - 1; n >= 0; n--)i = this[n][0], i === "M" || i === "L" || i === "T" ? (this[n][1] = (this[n][1] - r.x) * e / r.width + r.x, this[n][2] = (this[n][2] - r.y) * a / r.height + r.y) : i === "H" ? this[n][1] = (this[n][1] - r.x) * e / r.width + r.x : i === "V" ? this[n][1] = (this[n][1] - r.y) * a / r.height + r.y : i === "C" || i === "S" || i === "Q" ? (this[n][1] = (this[n][1] - r.x) * e / r.width + r.x, this[n][2] = (this[n][2] - r.y) * a / r.height + r.y, this[n][3] = (this[n][3] - r.x) * e / r.width + r.x, this[n][4] = (this[n][4] - r.y) * a / r.height + r.y, i === "C" && (this[n][5] = (this[n][5] - r.x) * e / r.width + r.x, this[n][6] = (this[n][6] - r.y) * a / r.height + r.y)) : i === "A" && (this[n][1] = this[n][1] * e / r.width, this[n][2] = this[n][2] * a / r.height, this[n][6] = (this[n][6] - r.x) * e / r.width + r.x, this[n][7] = (this[n][7] - r.y) * a / r.height + r.y);
            return this;
        }
        toString() {
            return function(e) {
                let a = "";
                for(let r = 0, n = e.length; r < n; r++)a += e[r][0], e[r][1] != null && (a += e[r][1], e[r][2] != null && (a += " ", a += e[r][2], e[r][3] != null && (a += " ", a += e[r][3], a += " ", a += e[r][4], e[r][5] != null && (a += " ", a += e[r][5], a += " ", a += e[r][6], e[r][7] != null && (a += " ", a += e[r][7])))));
                return a + " ";
            }(this);
        }
    }
    const L1 = (t)=>{
        const e = typeof t;
        return e === "number" ? je : e === "string" ? pt.isColor(t) ? pt : Nr.test(t) ? hf.test(t) ? lr : Mn : k1.test(t) ? je : Hh : Vh.indexOf(t.constructor) > -1 ? t.constructor : Array.isArray(t) ? Mn : e === "object" ? So : Hh;
    };
    class fn {
        constructor(e){
            this._stepper = e || new Ih("-"), this._from = null, this._to = null, this._type = null, this._context = null, this._morphObj = null;
        }
        at(e) {
            return this._morphObj.morph(this._from, this._to, e, this._stepper, this._context);
        }
        done() {
            return this._context.map(this._stepper.done).reduce(function(e, a) {
                return e && a;
            }, !0);
        }
        from(e) {
            return e == null ? this._from : (this._from = this._set(e), this);
        }
        stepper(e) {
            return e == null ? this._stepper : (this._stepper = e, this);
        }
        to(e) {
            return e == null ? this._to : (this._to = this._set(e), this);
        }
        type(e) {
            return e == null ? this._type : (this._type = e, this);
        }
        _set(e) {
            this._type || this.type(L1(e));
            let a = new this._type(e);
            return this._type === pt && (a = this._to ? a[this._to[4]]() : this._from ? a[this._from[4]]() : a), this._type === So && (a = this._to ? a.align(this._to) : this._from ? a.align(this._from) : a), a = a.toConsumable(), this._morphObj = this._morphObj || new this._type, this._context = this._context || Array.apply(null, Array(a.length)).map(Object).map(function(r) {
                return r.done = !0, r;
            }), a;
        }
    }
    class Hh {
        constructor(...e){
            this.init(...e);
        }
        init(e) {
            return e = Array.isArray(e) ? e[0] : e, this.value = e, this;
        }
        toArray() {
            return [
                this.value
            ];
        }
        valueOf() {
            return this.value;
        }
    }
    class ts {
        constructor(...e){
            this.init(...e);
        }
        init(e) {
            return Array.isArray(e) && (e = {
                scaleX: e[0],
                scaleY: e[1],
                shear: e[2],
                rotate: e[3],
                translateX: e[4],
                translateY: e[5],
                originX: e[6],
                originY: e[7]
            }), Object.assign(this, ts.defaults, e), this;
        }
        toArray() {
            const e = this;
            return [
                e.scaleX,
                e.scaleY,
                e.shear,
                e.rotate,
                e.translateX,
                e.translateY,
                e.originX,
                e.originY
            ];
        }
    }
    ts.defaults = {
        scaleX: 1,
        scaleY: 1,
        shear: 0,
        rotate: 0,
        translateX: 0,
        translateY: 0,
        originX: 0,
        originY: 0
    };
    const $L = (t, e)=>t[0] < e[0] ? -1 : t[0] > e[0] ? 1 : 0;
    class So {
        constructor(...e){
            this.init(...e);
        }
        align(e) {
            const a = this.values;
            for(let r = 0, n = a.length; r < n; ++r){
                if (a[r + 1] === e[r + 1]) {
                    if (a[r + 1] === pt && e[r + 7] !== a[r + 7]) {
                        const s = e[r + 7], l = new pt(this.values.splice(r + 3, 5))[s]().toArray();
                        this.values.splice(r + 3, 0, ...l);
                    }
                    r += a[r + 2] + 2;
                    continue;
                }
                if (!e[r + 1]) return this;
                const i = new e[r + 1]().toArray(), o = a[r + 2] + 3;
                a.splice(r, o, e[r], e[r + 1], e[r + 2], ...i), r += a[r + 2] + 2;
            }
            return this;
        }
        init(e) {
            if (this.values = [], Array.isArray(e)) return void (this.values = e.slice());
            e = e || {};
            const a = [];
            for(const r in e){
                const n = L1(e[r]), i = new n(e[r]).toArray();
                a.push([
                    r,
                    n,
                    i.length,
                    ...i
                ]);
            }
            return a.sort($L), this.values = a.reduce((r, n)=>r.concat(n), []), this;
        }
        toArray() {
            return this.values;
        }
        valueOf() {
            const e = {}, a = this.values;
            for(; a.length;){
                const r = a.shift(), n = a.shift(), i = a.shift(), o = a.splice(0, i);
                e[r] = new n(o);
            }
            return e;
        }
    }
    const Vh = [
        Hh,
        ts,
        So
    ];
    class ki extends Qa {
        constructor(e, a = e){
            super(yt("path", e), a);
        }
        array() {
            return this._array || (this._array = new lr(this.attr("d")));
        }
        clear() {
            return delete this._array, this;
        }
        height(e) {
            return e == null ? this.bbox().height : this.size(this.bbox().width, e);
        }
        move(e, a) {
            return this.attr("d", this.array().move(e, a));
        }
        plot(e) {
            return e == null ? this.array() : this.clear().attr("d", typeof e == "string" ? e : this._array = new lr(e));
        }
        size(e, a) {
            const r = Gi(this, e, a);
            return this.attr("d", this.array().size(r.width, r.height));
        }
        width(e) {
            return e == null ? this.bbox().width : this.size(e, this.bbox().height);
        }
        x(e) {
            return e == null ? this.bbox().x : this.move(e, this.bbox().y);
        }
        y(e) {
            return e == null ? this.bbox().y : this.move(this.bbox().x, e);
        }
    }
    ki.prototype.MorphArray = lr, Xe({
        Container: {
            path: vt(function(t) {
                return this.put(new ki).plot(t || new lr);
            })
        }
    }), st(ki, "Path");
    var I1 = Object.freeze({
        __proto__: null,
        array: function() {
            return this._array || (this._array = new en(this.attr("points")));
        },
        clear: function() {
            return delete this._array, this;
        },
        move: function(t, e) {
            return this.attr("points", this.array().move(t, e));
        },
        plot: function(t) {
            return t == null ? this.array() : this.clear().attr("points", typeof t == "string" ? t : this._array = new en(t));
        },
        size: function(t, e) {
            const a = Gi(this, t, e);
            return this.attr("points", this.array().size(a.width, a.height));
        }
    });
    class xn extends Qa {
        constructor(e, a = e){
            super(yt("polygon", e), a);
        }
    }
    Xe({
        Container: {
            polygon: vt(function(t) {
                return this.put(new xn).plot(t || new en);
            })
        }
    }), Ne(xn, gf), Ne(xn, I1), st(xn, "Polygon");
    class wn extends Qa {
        constructor(e, a = e){
            super(yt("polyline", e), a);
        }
    }
    Xe({
        Container: {
            polyline: vt(function(t) {
                return this.put(new wn).plot(t || new en);
            })
        }
    }), Ne(wn, gf), Ne(wn, I1), st(wn, "Polyline");
    class Ps extends Qa {
        constructor(e, a = e){
            super(yt("rect", e), a);
        }
    }
    Ne(Ps, {
        rx: ff,
        ry: pf
    }), Xe({
        Container: {
            rect: vt(function(t, e) {
                return this.put(new Ps).size(t, e);
            })
        }
    }), st(Ps, "Rect");
    class Md {
        constructor(){
            this._first = null, this._last = null;
        }
        first() {
            return this._first && this._first.value;
        }
        last() {
            return this._last && this._last.value;
        }
        push(e) {
            const a = e.next !== void 0 ? e : {
                value: e,
                next: null,
                prev: null
            };
            return this._last ? (a.prev = this._last, this._last.next = a, this._last = a) : (this._last = a, this._first = a), a;
        }
        remove(e) {
            e.prev && (e.prev.next = e.next), e.next && (e.next.prev = e.prev), e === this._last && (this._last = e.prev), e === this._first && (this._first = e.next), e.prev = null, e.next = null;
        }
        shift() {
            const e = this._first;
            return e ? (this._first = e.next, this._first && (this._first.prev = null), this._last = this._first ? this._last : null, e.value) : null;
        }
    }
    const ht = {
        nextDraw: null,
        frames: new Md,
        timeouts: new Md,
        immediates: new Md,
        timer: ()=>ot.window.performance || ot.window.Date,
        transforms: [],
        frame (t) {
            const e = ht.frames.push({
                run: t
            });
            return ht.nextDraw === null && (ht.nextDraw = ot.window.requestAnimationFrame(ht._draw)), e;
        },
        timeout (t, e) {
            e = e || 0;
            const a = ht.timer().now() + e, r = ht.timeouts.push({
                run: t,
                time: a
            });
            return ht.nextDraw === null && (ht.nextDraw = ot.window.requestAnimationFrame(ht._draw)), r;
        },
        immediate (t) {
            const e = ht.immediates.push(t);
            return ht.nextDraw === null && (ht.nextDraw = ot.window.requestAnimationFrame(ht._draw)), e;
        },
        cancelFrame (t) {
            t != null && ht.frames.remove(t);
        },
        clearTimeout (t) {
            t != null && ht.timeouts.remove(t);
        },
        cancelImmediate (t) {
            t != null && ht.immediates.remove(t);
        },
        _draw (t) {
            let e = null;
            const a = ht.timeouts.last();
            for(; (e = ht.timeouts.shift()) && (t >= e.time ? e.run() : ht.timeouts.push(e), e !== a););
            let r = null;
            const n = ht.frames.last();
            for(; r !== n && (r = ht.frames.shift());)r.run(t);
            let i = null;
            for(; i = ht.immediates.shift();)i();
            ht.nextDraw = ht.timeouts.first() || ht.frames.first() ? ot.window.requestAnimationFrame(ht._draw) : null;
        }
    }, UL = function(t) {
        const e = t.start, a = t.runner.duration();
        return {
            start: e,
            duration: a,
            end: e + a,
            runner: t.runner
        };
    }, jL = function() {
        const t = ot.window;
        return (t.performance || t.Date).now();
    };
    class z1 extends es {
        constructor(e = jL){
            super(), this._timeSource = e, this.terminate();
        }
        active() {
            return !!this._nextFrame;
        }
        finish() {
            return this.time(this.getEndTimeOfTimeline() + 1), this.pause();
        }
        getEndTime() {
            const e = this.getLastRunnerInfo(), a = e ? e.runner.duration() : 0;
            return (e ? e.start : this._time) + a;
        }
        getEndTimeOfTimeline() {
            const e = this._runners.map((a)=>a.start + a.runner.duration());
            return Math.max(0, ...e);
        }
        getLastRunnerInfo() {
            return this.getRunnerInfoById(this._lastRunnerId);
        }
        getRunnerInfoById(e) {
            return this._runners[this._runnerIds.indexOf(e)] || null;
        }
        pause() {
            return this._paused = !0, this._continue();
        }
        persist(e) {
            return e == null ? this._persist : (this._persist = e, this);
        }
        play() {
            return this._paused = !1, this.updateTime()._continue();
        }
        reverse(e) {
            const a = this.speed();
            if (e == null) return this.speed(-a);
            const r = Math.abs(a);
            return this.speed(e ? -r : r);
        }
        schedule(e, a, r) {
            if (e == null) return this._runners.map(UL);
            let n = 0;
            const i = this.getEndTime();
            if (a = a || 0, r == null || r === "last" || r === "after") n = i;
            else if (r === "absolute" || r === "start") n = a, a = 0;
            else if (r === "now") n = this._time;
            else if (r === "relative") {
                const l = this.getRunnerInfoById(e.id);
                l && (n = l.start + a, a = 0);
            } else {
                if (r !== "with-last") throw new Error('Invalid value for the "when" parameter');
                {
                    const l = this.getLastRunnerInfo();
                    n = l ? l.start : this._time;
                }
            }
            e.unschedule(), e.timeline(this);
            const o = e.persist(), s = {
                persist: o === null ? this._persist : o,
                start: n + a,
                runner: e
            };
            return this._lastRunnerId = e.id, this._runners.push(s), this._runners.sort((l, u)=>l.start - u.start), this._runnerIds = this._runners.map((l)=>l.runner.id), this.updateTime()._continue(), this;
        }
        seek(e) {
            return this.time(this._time + e);
        }
        source(e) {
            return e == null ? this._timeSource : (this._timeSource = e, this);
        }
        speed(e) {
            return e == null ? this._speed : (this._speed = e, this);
        }
        stop() {
            return this.time(0), this.pause();
        }
        time(e) {
            return e == null ? this._time : (this._time = e, this._continue(!0));
        }
        unschedule(e) {
            const a = this._runnerIds.indexOf(e.id);
            return a < 0 || (this._runners.splice(a, 1), this._runnerIds.splice(a, 1), e.timeline(null)), this;
        }
        updateTime() {
            return this.active() || (this._lastSourceTime = this._timeSource()), this;
        }
        _continue(e = !1) {
            return ht.cancelFrame(this._nextFrame), this._nextFrame = null, e ? this._stepImmediate() : (this._paused || (this._nextFrame = ht.frame(this._step)), this);
        }
        _stepFn(e = !1) {
            const a = this._timeSource();
            let r = a - this._lastSourceTime;
            e && (r = 0);
            const n = this._speed * r + (this._time - this._lastStepTime);
            this._lastSourceTime = a, e || (this._time += n, this._time = this._time < 0 ? 0 : this._time), this._lastStepTime = this._time, this.fire("time", this._time);
            for(let o = this._runners.length; o--;){
                const s = this._runners[o], l = s.runner;
                this._time - s.start <= 0 && l.reset();
            }
            let i = !1;
            for(let o = 0, s = this._runners.length; o < s; o++){
                const l = this._runners[o], u = l.runner;
                let c = n;
                const d = this._time - l.start;
                if (d <= 0) {
                    i = !0;
                    continue;
                }
                d < c && (c = d), u.active() && (u.step(c).done ? l.persist !== !0 && u.duration() - u.time() + this._time + l.persist < this._time && (u.unschedule(), --o, --s) : i = !0);
            }
            return i && !(this._speed < 0 && this._time === 0) || this._runnerIds.length && this._speed < 0 && this._time > 0 ? this._continue() : (this.pause(), this.fire("finished")), this;
        }
        terminate() {
            this._startTime = 0, this._speed = 1, this._persist = 0, this._nextFrame = null, this._paused = !0, this._runners = [], this._runnerIds = [], this._lastRunnerId = -1, this._time = 0, this._lastSourceTime = 0, this._lastStepTime = 0, this._step = this._stepFn.bind(this, !1), this._stepImmediate = this._stepFn.bind(this, !0);
        }
    }
    Xe({
        Element: {
            timeline: function(t) {
                return t == null ? (this._timeline = this._timeline || new z1, this._timeline) : (this._timeline = t, this);
            }
        }
    });
    class Ya extends es {
        constructor(e){
            super(), this.id = Ya.id++, e = typeof (e = e ?? Pd) == "function" ? new Zs(e) : e, this._element = null, this._timeline = null, this.done = !1, this._queue = [], this._duration = typeof e == "number" && e, this._isDeclarative = e instanceof Zs, this._stepper = this._isDeclarative ? e : new Ih, this._history = {}, this.enabled = !0, this._time = 0, this._lastTime = 0, this._reseted = !0, this.transforms = new Ie, this.transformId = 1, this._haveReversed = !1, this._reverse = !1, this._loopsDone = 0, this._swing = !1, this._wait = 0, this._times = 1, this._frameId = null, this._persist = !!this._isDeclarative || null;
        }
        static sanitise(e, a, r) {
            let n = 1, i = !1, o = 0;
            return a = a ?? BL, r = r || "last", typeof (e = e ?? Pd) != "object" || e instanceof vf || (a = e.delay ?? a, r = e.when ?? r, i = e.swing || i, n = e.times ?? n, o = e.wait ?? o, e = e.duration ?? Pd), {
                duration: e,
                delay: a,
                swing: i,
                times: n,
                wait: o,
                when: r
            };
        }
        active(e) {
            return e == null ? this.enabled : (this.enabled = e, this);
        }
        addTransform(e) {
            return this.transforms.lmultiplyO(e), this;
        }
        after(e) {
            return this.on("finished", e);
        }
        animate(e, a, r) {
            const n = Ya.sanitise(e, a, r), i = new Ya(n.duration);
            return this._timeline && i.timeline(this._timeline), this._element && i.element(this._element), i.loop(n).schedule(n.delay, n.when);
        }
        clearTransform() {
            return this.transforms = new Ie, this;
        }
        clearTransformsFromQueue() {
            this.done && this._timeline && this._timeline._runnerIds.includes(this.id) || (this._queue = this._queue.filter((e)=>!e.isTransform));
        }
        delay(e) {
            return this.animate(0, e);
        }
        duration() {
            return this._times * (this._wait + this._duration) - this._wait;
        }
        during(e) {
            return this.queue(null, e);
        }
        ease(e) {
            return this._stepper = new Ih(e), this;
        }
        element(e) {
            return e == null ? this._element : (this._element = e, e._prepareRunner(), this);
        }
        finish() {
            return this.step(1 / 0);
        }
        loop(e, a, r) {
            return typeof e == "object" && (a = e.swing, r = e.wait, e = e.times), this._times = e || 1 / 0, this._swing = a || !1, this._wait = r || 0, this._times === !0 && (this._times = 1 / 0), this;
        }
        loops(e) {
            const a = this._duration + this._wait;
            if (e == null) {
                const i = Math.floor(this._time / a), o = (this._time - i * a) / this._duration;
                return Math.min(i + o, this._times);
            }
            const r = e % 1, n = a * Math.floor(e) + this._duration * r;
            return this.time(n);
        }
        persist(e) {
            return e == null ? this._persist : (this._persist = e, this);
        }
        position(e) {
            const a = this._time, r = this._duration, n = this._wait, i = this._times, o = this._swing, s = this._reverse;
            let l;
            if (e == null) {
                const d = function(m) {
                    const f = o * Math.floor(m % (2 * (n + r)) / (n + r)), p = f && !s || !f && s, g = Math.pow(-1, p) * (m % (n + r)) / r + p;
                    return Math.max(Math.min(g, 1), 0);
                }, h = i * (n + r) - n;
                return l = a <= 0 ? Math.round(d(1e-5)) : a < h ? d(a) : Math.round(d(h - 1e-5)), l;
            }
            const u = Math.floor(this.loops()), c = o && u % 2 == 0;
            return l = u + (c && !s || s && c ? e : 1 - e), this.loops(l);
        }
        progress(e) {
            return e == null ? Math.min(1, this._time / this.duration()) : this.time(e * this.duration());
        }
        queue(e, a, r, n) {
            return this._queue.push({
                initialiser: e || sy,
                runner: a || sy,
                retarget: r,
                isTransform: n,
                initialised: !1,
                finished: !1
            }), this.timeline() && this.timeline()._continue(), this;
        }
        reset() {
            return this._reseted || (this.time(0), this._reseted = !0), this;
        }
        reverse(e) {
            return this._reverse = e ?? !this._reverse, this;
        }
        schedule(e, a, r) {
            if (e instanceof z1 || (r = a, a = e, e = this.timeline()), !e) throw Error("Runner cannot be scheduled without timeline");
            return e.schedule(this, a, r), this;
        }
        step(e) {
            if (!this.enabled) return this;
            e = e ?? 16, this._time += e;
            const a = this.position(), r = this._lastPosition !== a && this._time >= 0;
            this._lastPosition = a;
            const n = this.duration(), i = this._lastTime <= 0 && this._time > 0, o = this._lastTime < n && this._time >= n;
            this._lastTime = this._time, i && this.fire("start", this);
            const s = this._isDeclarative;
            this.done = !s && !o && this._time >= n, this._reseted = !1;
            let l = !1;
            return (r || s) && (this._initialise(r), this.transforms = new Ie, l = this._run(s ? e : a), this.fire("step", this)), this.done = this.done || l && s, o && this.fire("finished", this), this;
        }
        time(e) {
            if (e == null) return this._time;
            const a = e - this._time;
            return this.step(a), this;
        }
        timeline(e) {
            return e === void 0 ? this._timeline : (this._timeline = e, this);
        }
        unschedule() {
            const e = this.timeline();
            return e && e.unschedule(this), this;
        }
        _initialise(e) {
            if (e || this._isDeclarative) for(let a = 0, r = this._queue.length; a < r; ++a){
                const n = this._queue[a], i = this._isDeclarative || !n.initialised && e;
                e = !n.finished, i && e && (n.initialiser.call(this), n.initialised = !0);
            }
        }
        _rememberMorpher(e, a) {
            if (this._history[e] = {
                morpher: a,
                caller: this._queue[this._queue.length - 1]
            }, this._isDeclarative) {
                const r = this.timeline();
                r && r.play();
            }
        }
        _run(e) {
            let a = !0;
            for(let r = 0, n = this._queue.length; r < n; ++r){
                const i = this._queue[r], o = i.runner.call(this, e);
                i.finished = i.finished || o === !0, a = a && i.finished;
            }
            return a;
        }
        _tryRetarget(e, a, r) {
            if (this._history[e]) {
                if (!this._history[e].caller.initialised) {
                    const i = this._queue.indexOf(this._history[e].caller);
                    return this._queue.splice(i, 1), !1;
                }
                this._history[e].caller.retarget ? this._history[e].caller.retarget.call(this, a, r) : this._history[e].morpher.to(a), this._history[e].caller.finished = !1;
                const n = this.timeline();
                return n && n.play(), !0;
            }
            return !1;
        }
    }
    Ya.id = 0;
    class Qs {
        constructor(e = new Ie, a = -1, r = !0){
            this.transforms = e, this.id = a, this.done = r;
        }
        clearTransformsFromQueue() {}
    }
    Ne([
        Ya,
        Qs
    ], {
        mergeWith (t) {
            return new Qs(t.transforms.lmultiply(this.transforms), t.id);
        }
    });
    const N1 = (t, e)=>t.lmultiplyO(e), O1 = (t)=>t.transforms;
    function YL() {
        const t = this._transformationRunners.runners.map(O1).reduce(N1, new Ie);
        this.transform(t), this._transformationRunners.merge(), this._transformationRunners.length() === 1 && (this._frameId = null);
    }
    class qL {
        constructor(){
            this.runners = [], this.ids = [];
        }
        add(e) {
            if (this.runners.includes(e)) return;
            const a = e.id + 1;
            return this.runners.push(e), this.ids.push(a), this;
        }
        clearBefore(e) {
            const a = this.ids.indexOf(e + 1) || 1;
            return this.ids.splice(0, a, 0), this.runners.splice(0, a, new Qs).forEach((r)=>r.clearTransformsFromQueue()), this;
        }
        edit(e, a) {
            const r = this.ids.indexOf(e + 1);
            return this.ids.splice(r, 1, e + 1), this.runners.splice(r, 1, a), this;
        }
        getByID(e) {
            return this.runners[this.ids.indexOf(e + 1)];
        }
        length() {
            return this.ids.length;
        }
        merge() {
            let e = null;
            for(let a = 0; a < this.runners.length; ++a){
                const r = this.runners[a];
                if (e && r.done && e.done && (!r._timeline || !r._timeline._runnerIds.includes(r.id)) && (!e._timeline || !e._timeline._runnerIds.includes(e.id))) {
                    this.remove(r.id);
                    const n = r.mergeWith(e);
                    this.edit(e.id, n), e = n, --a;
                } else e = r;
            }
            return this;
        }
        remove(e) {
            const a = this.ids.indexOf(e + 1);
            return this.ids.splice(a, 1), this.runners.splice(a, 1), this;
        }
    }
    Xe({
        Element: {
            animate (t, e, a) {
                const r = Ya.sanitise(t, e, a), n = this.timeline();
                return new Ya(r.duration).loop(r).element(this).timeline(n.play()).schedule(r.delay, r.when);
            },
            delay (t, e) {
                return this.animate(0, t, e);
            },
            _clearTransformRunnersBefore (t) {
                this._transformationRunners.clearBefore(t.id);
            },
            _currentTransform (t) {
                return this._transformationRunners.runners.filter((e)=>e.id <= t.id).map(O1).reduce(N1, new Ie);
            },
            _addRunner (t) {
                this._transformationRunners.add(t), ht.cancelImmediate(this._frameId), this._frameId = ht.immediate(YL.bind(this));
            },
            _prepareRunner () {
                this._frameId == null && (this._transformationRunners = new qL().add(new Qs(new Ie(this))));
            }
        }
    });
    Ne(Ya, {
        attr (t, e) {
            return this.styleAttr("attr", t, e);
        },
        css (t, e) {
            return this.styleAttr("css", t, e);
        },
        styleAttr (t, e, a) {
            if (typeof e == "string") return this.styleAttr(t, {
                [e]: a
            });
            let r = e;
            if (this._tryRetarget(t, r)) return this;
            let n = new fn(this._stepper).to(r), i = Object.keys(r);
            return this.queue(function() {
                n = n.from(this.element()[t](i));
            }, function(o) {
                return this.element()[t](n.at(o).valueOf()), n.done();
            }, function(o) {
                const s = Object.keys(o), l = (u = i, s.filter((d)=>!u.includes(d)));
                var u;
                if (l.length) {
                    const d = this.element()[t](l), h = new So(n.from()).valueOf();
                    Object.assign(h, d), n.from(h);
                }
                const c = new So(n.to()).valueOf();
                Object.assign(c, o), n.to(c), i = s, r = o;
            }), this._rememberMorpher(t, n), this;
        },
        zoom (t, e) {
            if (this._tryRetarget("zoom", t, e)) return this;
            let a = new fn(this._stepper).to(new je(t));
            return this.queue(function() {
                a = a.from(this.element().zoom());
            }, function(r) {
                return this.element().zoom(a.at(r), e), a.done();
            }, function(r, n) {
                e = n, a.to(r);
            }), this._rememberMorpher("zoom", a), this;
        },
        transform (t, e, a) {
            if (e = t.relative || e, this._isDeclarative && !e && this._tryRetarget("transform", t)) return this;
            const r = Ie.isMatrixLike(t);
            a = t.affine != null ? t.affine : a ?? !r;
            const n = new fn(this._stepper).type(a ? ts : Ie);
            let i, o, s, l, u;
            return this.queue(function() {
                o = o || this.element(), i = i || Rh(t, o), u = new Ie(e ? void 0 : o), o._addRunner(this), e || o._clearTransformRunnersBefore(this);
            }, function(c) {
                e || this.clearTransform();
                const { x: d, y: h } = new dt(i).transform(o._currentTransform(this));
                let m = new Ie({
                    ...t,
                    origin: [
                        d,
                        h
                    ]
                }), f = this._isDeclarative && s ? s : u;
                if (a) {
                    m = m.decompose(d, h), f = f.decompose(d, h);
                    const g = m.rotate, v = f.rotate, b = [
                        g - 360,
                        g,
                        g + 360
                    ], k = b.map((C)=>Math.abs(C - v)), S = Math.min(...k), x = k.indexOf(S);
                    m.rotate = b[x];
                }
                e && (r || (m.rotate = t.rotate || 0), this._isDeclarative && l && (f.rotate = l)), n.from(f), n.to(m);
                const p = n.at(c);
                return l = p.rotate, s = new Ie(p), this.addTransform(s), o._addRunner(this), n.done();
            }, function(c) {
                (c.origin || "center").toString() !== (t.origin || "center").toString() && (i = Rh(c, o)), t = {
                    ...c,
                    origin: i
                };
            }, !0), this._isDeclarative && this._rememberMorpher("transform", n), this;
        },
        x (t) {
            return this._queueNumber("x", t);
        },
        y (t) {
            return this._queueNumber("y", t);
        },
        ax (t) {
            return this._queueNumber("ax", t);
        },
        ay (t) {
            return this._queueNumber("ay", t);
        },
        dx (t = 0) {
            return this._queueNumberDelta("x", t);
        },
        dy (t = 0) {
            return this._queueNumberDelta("y", t);
        },
        dmove (t, e) {
            return this.dx(t).dy(e);
        },
        _queueNumberDelta (t, e) {
            if (e = new je(e), this._tryRetarget(t, e)) return this;
            const a = new fn(this._stepper).to(e);
            let r = null;
            return this.queue(function() {
                r = this.element()[t](), a.from(r), a.to(r + e);
            }, function(n) {
                return this.element()[t](a.at(n)), a.done();
            }, function(n) {
                a.to(r + new je(n));
            }), this._rememberMorpher(t, a), this;
        },
        _queueObject (t, e) {
            if (this._tryRetarget(t, e)) return this;
            const a = new fn(this._stepper).to(e);
            return this.queue(function() {
                a.from(this.element()[t]());
            }, function(r) {
                return this.element()[t](a.at(r)), a.done();
            }), this._rememberMorpher(t, a), this;
        },
        _queueNumber (t, e) {
            return this._queueObject(t, new je(e));
        },
        cx (t) {
            return this._queueNumber("cx", t);
        },
        cy (t) {
            return this._queueNumber("cy", t);
        },
        move (t, e) {
            return this.x(t).y(e);
        },
        amove (t, e) {
            return this.ax(t).ay(e);
        },
        center (t, e) {
            return this.cx(t).cy(e);
        },
        size (t, e) {
            let a;
            return t && e || (a = this._element.bbox()), t || (t = a.width / a.height * e), e || (e = a.height / a.width * t), this.width(t).height(e);
        },
        width (t) {
            return this._queueNumber("width", t);
        },
        height (t) {
            return this._queueNumber("height", t);
        },
        plot (t, e, a, r) {
            if (arguments.length === 4) return this.plot([
                t,
                e,
                a,
                r
            ]);
            if (this._tryRetarget("plot", t)) return this;
            const n = new fn(this._stepper).type(this._element.MorphArray).to(t);
            return this.queue(function() {
                n.from(this._element.array());
            }, function(i) {
                return this._element.plot(n.at(i)), n.done();
            }), this._rememberMorpher("plot", n), this;
        },
        leading (t) {
            return this._queueNumber("leading", t);
        },
        viewbox (t, e, a, r) {
            return this._queueObject("viewbox", new Ot(t, e, a, r));
        },
        update (t) {
            return typeof t != "object" ? this.update({
                offset: arguments[0],
                color: arguments[1],
                opacity: arguments[2]
            }) : (t.opacity != null && this.attr("stop-opacity", t.opacity), t.color != null && this.attr("stop-color", t.color), t.offset != null && this.attr("offset", t.offset), this);
        }
    }), Ne(Ya, {
        rx: ff,
        ry: pf,
        from: M1,
        to: R1
    }), st(Ya, "Runner");
    class Wh extends Da {
        constructor(e, a = e){
            super(yt("svg", e), a), this.namespace();
        }
        defs() {
            return this.isRoot() ? ar(this.node.querySelector("defs")) || this.put(new Ol) : this.root().defs();
        }
        isRoot() {
            return !this.node.parentNode || !(this.node.parentNode instanceof ot.window.SVGElement) && this.node.parentNode.nodeName !== "#document-fragment";
        }
        namespace() {
            return this.isRoot() ? this.attr({
                xmlns: uf,
                version: "1.1"
            }).attr("xmlns:xlink", $i, Td) : this.root().namespace();
        }
        removeNamespace() {
            return this.attr({
                xmlns: null,
                version: null
            }).attr("xmlns:xlink", null, Td).attr("xmlns:svgjs", null, Td);
        }
        root() {
            return this.isRoot() ? this : super.root();
        }
    }
    Xe({
        Container: {
            nested: vt(function() {
                return this.put(new Wh);
            })
        }
    }), st(Wh, "Svg", !0);
    let Gh = class extends Da {
        constructor(t, e = t){
            super(yt("symbol", t), e);
        }
    };
    Xe({
        Container: {
            symbol: vt(function() {
                return this.put(new Gh);
            })
        }
    }), st(Gh, "Symbol");
    var H1 = Object.freeze({
        __proto__: null,
        amove: function(t, e) {
            return this.ax(t).ay(e);
        },
        ax: function(t) {
            return this.attr("x", t);
        },
        ay: function(t) {
            return this.attr("y", t);
        },
        build: function(t) {
            return this._build = !!t, this;
        },
        center: function(t, e, a = this.bbox()) {
            return this.cx(t, a).cy(e, a);
        },
        cx: function(t, e = this.bbox()) {
            return t == null ? e.cx : this.attr("x", this.attr("x") + t - e.cx);
        },
        cy: function(t, e = this.bbox()) {
            return t == null ? e.cy : this.attr("y", this.attr("y") + t - e.cy);
        },
        length: function() {
            return this.node.getComputedTextLength();
        },
        move: function(t, e, a = this.bbox()) {
            return this.x(t, a).y(e, a);
        },
        plain: function(t) {
            return this._build === !1 && this.clear(), this.node.appendChild(ot.document.createTextNode(t)), this;
        },
        x: function(t, e = this.bbox()) {
            return t == null ? e.x : this.attr("x", this.attr("x") + t - e.x);
        },
        y: function(t, e = this.bbox()) {
            return t == null ? e.y : this.attr("y", this.attr("y") + t - e.y);
        }
    });
    class ur extends Qa {
        constructor(e, a = e){
            super(yt("text", e), a), this.dom.leading = this.dom.leading ?? new je(1.3), this._rebuild = !0, this._build = !1;
        }
        leading(e) {
            return e == null ? this.dom.leading : (this.dom.leading = new je(e), this.rebuild());
        }
        rebuild(e) {
            if (typeof e == "boolean" && (this._rebuild = e), this._rebuild) {
                const a = this;
                let r = 0;
                const n = this.dom.leading;
                this.each(function(i) {
                    if (Lh(this.node)) return;
                    const o = ot.window.getComputedStyle(this.node).getPropertyValue("font-size"), s = n * new je(o);
                    this.dom.newLined && (this.attr("x", a.attr("x")), this.text() === `
` ? r += s : (this.attr("dy", i ? s + r : 0), r = 0));
                }), this.fire("rebuild");
            }
            return this;
        }
        setData(e) {
            return this.dom = e, this.dom.leading = new je(e.leading || 1.3), this;
        }
        writeDataToDom() {
            return y1(this, this.dom, {
                leading: 1.3
            }), this;
        }
        text(e) {
            if (e === void 0) {
                const a = this.node.childNodes;
                let r = 0;
                e = "";
                for(let n = 0, i = a.length; n < i; ++n)a[n].nodeName === "textPath" || Lh(a[n]) ? n === 0 && (r = n + 1) : (n !== r && a[n].nodeType !== 3 && ar(a[n]).dom.newLined === !0 && (e += `
`), e += a[n].textContent);
                return e;
            }
            if (this.clear().build(!0), typeof e == "function") e.call(this, this);
            else for(let a = 0, r = (e = (e + "").split(`
`)).length; a < r; a++)this.newLine(e[a]);
            return this.build(!1).rebuild();
        }
    }
    Ne(ur, H1), Xe({
        Container: {
            text: vt(function(t = "") {
                return this.put(new ur).text(t);
            }),
            plain: vt(function(t = "") {
                return this.put(new ur).plain(t);
            })
        }
    }), st(ur, "Text");
    class Bs extends Qa {
        constructor(e, a = e){
            super(yt("tspan", e), a), this._build = !1;
        }
        dx(e) {
            return this.attr("dx", e);
        }
        dy(e) {
            return this.attr("dy", e);
        }
        newLine() {
            this.dom.newLined = !0;
            const e = this.parent();
            if (!(e instanceof ur)) return this;
            const a = e.index(this), r = ot.window.getComputedStyle(this.node).getPropertyValue("font-size"), n = e.dom.leading * new je(r);
            return this.dy(a ? n : 0).attr("x", e.x());
        }
        text(e) {
            return e == null ? this.node.textContent + (this.dom.newLined ? `
` : "") : (typeof e == "function" ? (this.clear().build(!0), e.call(this, this), this.build(!1)) : this.plain(e), this);
        }
    }
    Ne(Bs, H1), Xe({
        Tspan: {
            tspan: vt(function(t = "") {
                const e = new Bs;
                return this._build || this.clear(), this.put(e).text(t);
            })
        },
        Text: {
            newLine: function(t = "") {
                return this.tspan(t).newLine();
            }
        }
    }), st(Bs, "Tspan");
    class Rd extends Qa {
        constructor(e, a = e){
            super(yt("circle", e), a);
        }
        radius(e) {
            return this.attr("r", e);
        }
        rx(e) {
            return this.attr("r", e);
        }
        ry(e) {
            return this.rx(e);
        }
        size(e) {
            return this.radius(new je(e).divide(2));
        }
    }
    Ne(Rd, {
        x: A1,
        y: D1,
        cx: T1,
        cy: E1,
        width: _1,
        height: P1
    }), Xe({
        Container: {
            circle: vt(function(t = 0) {
                return this.put(new Rd).size(t).move(0, 0);
            })
        }
    }), st(Rd, "Circle");
    class Ld extends Da {
        constructor(e, a = e){
            super(yt("clipPath", e), a);
        }
        remove() {
            return this.targets().forEach(function(e) {
                e.unclip();
            }), super.remove();
        }
        targets() {
            return ni("svg [clip-path*=" + this.id() + "]");
        }
    }
    Xe({
        Container: {
            clip: vt(function() {
                return this.defs().put(new Ld);
            })
        },
        Element: {
            clipper () {
                return this.reference("clip-path");
            },
            clipWith (t) {
                const e = t instanceof Ld ? t : this.parent().clip().add(t);
                return this.attr("clip-path", "url(#" + e.id() + ")");
            },
            unclip () {
                return this.attr("clip-path", null);
            }
        }
    }), st(Ld, "ClipPath");
    class cy extends fa {
        constructor(e, a = e){
            super(yt("foreignObject", e), a);
        }
    }
    Xe({
        Container: {
            foreignObject: vt(function(t, e) {
                return this.put(new cy).size(t, e);
            })
        }
    }), st(cy, "ForeignObject");
    var V1 = Object.freeze({
        __proto__: null,
        dmove: function(t, e) {
            return this.children().forEach((a)=>{
                let r;
                try {
                    r = a.node instanceof Qo().SVGSVGElement ? new Ot(a.attr([
                        "x",
                        "y",
                        "width",
                        "height"
                    ])) : a.bbox();
                } catch  {
                    return;
                }
                const n = new Ie(a), i = n.translate(t, e).transform(n.inverse()), o = new dt(r.x, r.y).transform(i);
                a.move(o.x, o.y);
            }), this;
        },
        dx: function(t) {
            return this.dmove(t, 0);
        },
        dy: function(t) {
            return this.dmove(0, t);
        },
        height: function(t, e = this.bbox()) {
            return t == null ? e.height : this.size(e.width, t, e);
        },
        move: function(t = 0, e = 0, a = this.bbox()) {
            const r = t - a.x, n = e - a.y;
            return this.dmove(r, n);
        },
        size: function(t, e, a = this.bbox()) {
            const r = Gi(this, t, e, a), n = r.width / a.width, i = r.height / a.height;
            return this.children().forEach((o)=>{
                const s = new dt(a).transform(new Ie(o).inverse());
                o.scale(n, i, s.x, s.y);
            }), this;
        },
        width: function(t, e = this.bbox()) {
            return t == null ? e.width : this.size(t, e.height, e);
        },
        x: function(t, e = this.bbox()) {
            return t == null ? e.x : this.move(t, e.y, e);
        },
        y: function(t, e = this.bbox()) {
            return t == null ? e.y : this.move(e.x, t, e);
        }
    });
    class qr extends Da {
        constructor(e, a = e){
            super(yt("g", e), a);
        }
    }
    Ne(qr, V1), Xe({
        Container: {
            group: vt(function() {
                return this.put(new qr);
            })
        }
    }), st(qr, "G");
    class vs extends Da {
        constructor(e, a = e){
            super(yt("a", e), a);
        }
        target(e) {
            return this.attr("target", e);
        }
        to(e) {
            return this.attr("href", e, $i);
        }
    }
    Ne(vs, V1), Xe({
        Container: {
            link: vt(function(t) {
                return this.put(new vs).to(t);
            })
        },
        Element: {
            unlink () {
                const t = this.linker();
                if (!t) return this;
                const e = t.parent();
                if (!e) return this.remove();
                const a = e.index(t);
                return e.add(this, a), t.remove(), this;
            },
            linkTo (t) {
                let e = this.linker();
                return e || (e = new vs, this.wrap(e)), typeof t == "function" ? t.call(e, e) : e.to(t), this;
            },
            linker () {
                const t = this.parent();
                return t && t.node.nodeName.toLowerCase() === "a" ? t : null;
            }
        }
    }), st(vs, "A");
    class Id extends Da {
        constructor(e, a = e){
            super(yt("mask", e), a);
        }
        remove() {
            return this.targets().forEach(function(e) {
                e.unmask();
            }), super.remove();
        }
        targets() {
            return ni("svg [mask*=" + this.id() + "]");
        }
    }
    Xe({
        Container: {
            mask: vt(function() {
                return this.defs().put(new Id);
            })
        },
        Element: {
            masker () {
                return this.reference("mask");
            },
            maskWith (t) {
                const e = t instanceof Id ? t : this.parent().mask().add(t);
                return this.attr("mask", "url(#" + e.id() + ")");
            },
            unmask () {
                return this.attr("mask", null);
            }
        }
    }), st(Id, "Mask");
    class dy extends fa {
        constructor(e, a = e){
            super(yt("stop", e), a);
        }
        update(e) {
            return (typeof e == "number" || e instanceof je) && (e = {
                offset: arguments[0],
                color: arguments[1],
                opacity: arguments[2]
            }), e.opacity != null && this.attr("stop-opacity", e.opacity), e.color != null && this.attr("stop-color", e.color), e.offset != null && this.attr("offset", new je(e.offset)), this;
        }
    }
    Xe({
        Gradient: {
            stop: function(t, e, a) {
                return this.put(new dy).update(t, e, a);
            }
        }
    }), st(dy, "Stop");
    class zd extends fa {
        constructor(e, a = e){
            super(yt("style", e), a);
        }
        addText(e = "") {
            return this.node.textContent += e, this;
        }
        font(e, a, r = {}) {
            return this.rule("@font-face", {
                fontFamily: e,
                src: a,
                ...r
            });
        }
        rule(e, a) {
            return this.addText(function(r, n) {
                if (!r) return "";
                if (!n) return r;
                let i = r + "{";
                for(const o in n)i += o.replace(/([A-Z])/g, function(s, l) {
                    return "-" + l.toLowerCase();
                }) + ":" + n[o] + ";";
                return i += "}", i;
            }(e, a));
        }
    }
    Xe("Dom", {
        style (t, e) {
            return this.put(new zd).rule(t, e);
        },
        fontface (t, e, a) {
            return this.put(new zd).font(t, e, a);
        }
    }), st(zd, "Style");
    class Nd extends ur {
        constructor(e, a = e){
            super(yt("textPath", e), a);
        }
        array() {
            const e = this.track();
            return e ? e.array() : null;
        }
        plot(e) {
            const a = this.track();
            let r = null;
            return a && (r = a.plot(e)), e == null ? r : this;
        }
        track() {
            return this.reference("href");
        }
    }
    Xe({
        Container: {
            textPath: vt(function(t, e) {
                return t instanceof ur || (t = this.text(t)), t.path(e);
            })
        },
        Text: {
            path: vt(function(t, e = !0) {
                const a = new Nd;
                let r;
                if (t instanceof ki || (t = this.defs().path(t)), a.attr("href", "#" + t, $i), e) for(; r = this.node.firstChild;)a.node.appendChild(r);
                return this.put(a);
            }),
            textPath () {
                return this.findOne("textPath");
            }
        },
        Path: {
            text: vt(function(t) {
                return t instanceof ur || (t = new ur().addTo(this.parent()).text(t)), t.path(this);
            }),
            targets () {
                return ni("svg textPath").filter((t)=>(t.attr("href") || "").includes(this.id()));
            }
        }
    }), Nd.prototype.MorphArray = lr, st(Nd, "TextPath");
    class hy extends Qa {
        constructor(e, a = e){
            super(yt("use", e), a);
        }
        use(e, a) {
            return this.attr("href", (a || "") + "#" + e, $i);
        }
    }
    Xe({
        Container: {
            use: vt(function(t, e) {
                return this.put(new hy).use(t, e);
            })
        }
    }), st(hy, "Use");
    const KL = Sa;
    Ne([
        Wh,
        Gh,
        Es,
        wo,
        _s
    ], Ta("viewbox")), Ne([
        kn,
        wn,
        xn,
        ki
    ], Ta("marker")), Ne(ur, Ta("Text")), Ne(ki, Ta("Path")), Ne(Ol, Ta("Defs")), Ne([
        ur,
        Bs
    ], Ta("Tspan")), Ne([
        Ps,
        Ts,
        oo,
        Ya
    ], Ta("radius")), Ne(es, Ta("EventTarget")), Ne(Qr, Ta("Dom")), Ne(fa, Ta("Element")), Ne(Qa, Ta("Shape")), Ne([
        Da,
        B1
    ], Ta("Container")), Ne(oo, Ta("Gradient")), Ne(Ya, Ta("Runner")), Bn.extend([
        ...new Set(g1)
    ]), function(t = []) {
        Vh.push(...[].concat(t));
    }([
        je,
        pt,
        Ot,
        Ie,
        Mn,
        en,
        lr,
        dt
    ]), Ne(Vh, {
        to (t) {
            return new fn().type(this.constructor).from(this.toArray()).to(t);
        },
        fromArray (t) {
            return this.init(t), this;
        },
        toConsumable () {
            return this.toArray();
        },
        morph (t, e, a, r, n) {
            return this.fromArray(t.map(function(i, o) {
                return r.step(i, e[o], a, n[o], n);
            }));
        }
    });
    class St extends fa {
        constructor(e){
            super(yt("filter", e), e), this.$source = "SourceGraphic", this.$sourceAlpha = "SourceAlpha", this.$background = "BackgroundImage", this.$backgroundAlpha = "BackgroundAlpha", this.$fill = "FillPaint", this.$stroke = "StrokePaint", this.$autoSetIn = !0;
        }
        put(e, a) {
            return !(e = super.put(e, a)).attr("in") && this.$autoSetIn && e.attr("in", this.$source), e.attr("result") || e.attr("result", e.id()), e;
        }
        remove() {
            return this.targets().each("unfilter"), super.remove();
        }
        targets() {
            return ni('svg [filter*="' + this.id() + '"]');
        }
        toString() {
            return "url(#" + this.id() + ")";
        }
    }
    class yf extends fa {
        constructor(e, a){
            super(e, a), this.result(this.id());
        }
        in(e) {
            if (e == null) {
                const a = this.attr("in");
                return this.parent() && this.parent().find(`[result="${a}"]`)[0] || a;
            }
            return this.attr("in", e);
        }
        result(e) {
            return this.attr("result", e);
        }
        toString() {
            return this.result();
        }
    }
    const er = (t)=>function(...e) {
            for(let a = t.length; a--;)e[a] != null && this.attr(t[a], e[a]);
        }, XL = {
        blend: er([
            "in",
            "in2",
            "mode"
        ]),
        colorMatrix: er([
            "type",
            "values"
        ]),
        composite: er([
            "in",
            "in2",
            "operator"
        ]),
        convolveMatrix: function(t) {
            t = new Mn(t).toString(), this.attr({
                order: Math.sqrt(t.split(" ").length),
                kernelMatrix: t
            });
        },
        diffuseLighting: er([
            "surfaceScale",
            "lightingColor",
            "diffuseConstant",
            "kernelUnitLength"
        ]),
        displacementMap: er([
            "in",
            "in2",
            "scale",
            "xChannelSelector",
            "yChannelSelector"
        ]),
        dropShadow: er([
            "in",
            "dx",
            "dy",
            "stdDeviation"
        ]),
        flood: er([
            "flood-color",
            "flood-opacity"
        ]),
        gaussianBlur: function(t = 0, e = t) {
            this.attr("stdDeviation", t + " " + e);
        },
        image: function(t) {
            this.attr("href", t, $i);
        },
        morphology: er([
            "operator",
            "radius"
        ]),
        offset: er([
            "dx",
            "dy"
        ]),
        specularLighting: er([
            "surfaceScale",
            "lightingColor",
            "diffuseConstant",
            "specularExponent",
            "kernelUnitLength"
        ]),
        tile: er([]),
        turbulence: er([
            "baseFrequency",
            "numOctaves",
            "seed",
            "stitchTiles",
            "type"
        ])
    };
    [
        "blend",
        "colorMatrix",
        "componentTransfer",
        "composite",
        "convolveMatrix",
        "diffuseLighting",
        "displacementMap",
        "dropShadow",
        "flood",
        "gaussianBlur",
        "image",
        "merge",
        "morphology",
        "offset",
        "specularLighting",
        "tile",
        "turbulence"
    ].forEach((t)=>{
        const e = Wi(t), a = XL[t];
        St[e + "Effect"] = class extends yf {
            constructor(r){
                super(yt("fe" + e, r), r);
            }
            update(r) {
                return a.apply(this, r), this;
            }
        }, St.prototype[t] = vt(function(r, ...n) {
            const i = new St[e + "Effect"];
            return r == null ? this.put(i) : (typeof r == "function" ? r.call(i, i) : n.unshift(r), this.put(i).update(n));
        });
    }), Ne(St, {
        merge (t) {
            const e = this.put(new St.MergeEffect);
            return typeof t == "function" ? (t.call(e, e), e) : ((t instanceof Array ? t : [
                ...arguments
            ]).forEach((a)=>{
                a instanceof St.MergeNode ? e.put(a) : e.mergeNode(a);
            }), e);
        },
        componentTransfer (t = {}) {
            const e = this.put(new St.ComponentTransferEffect);
            if (typeof t == "function") return t.call(e, e), e;
            t.r || t.g || t.b || t.a || (t = {
                r: t,
                g: t,
                b: t,
                a: t
            });
            for(const a in t)e.add(new St["Func" + a.toUpperCase()](t[a]));
            return e;
        }
    });
    [
        "distantLight",
        "pointLight",
        "spotLight",
        "mergeNode",
        "FuncR",
        "FuncG",
        "FuncB",
        "FuncA"
    ].forEach((t)=>{
        const e = Wi(t);
        St[e] = class extends yf {
            constructor(a){
                super(yt("fe" + e, a), a);
            }
        };
    });
    [
        "funcR",
        "funcG",
        "funcB",
        "funcA"
    ].forEach(function(t) {
        const e = St[Wi(t)], a = vt(function() {
            return this.put(new e);
        });
        St.ComponentTransferEffect.prototype[t] = a;
    });
    [
        "distantLight",
        "pointLight",
        "spotLight"
    ].forEach((t)=>{
        const e = St[Wi(t)], a = vt(function() {
            return this.put(new e);
        });
        St.DiffuseLightingEffect.prototype[t] = a, St.SpecularLightingEffect.prototype[t] = a;
    }), Ne(St.MergeEffect, {
        mergeNode (t) {
            return this.put(new St.MergeNode).attr("in", t);
        }
    }), Ne(Ol, {
        filter: function(t) {
            const e = this.put(new St);
            return typeof t == "function" && t.call(e, e), e;
        }
    }), Ne(Da, {
        filter: function(t) {
            return this.defs().filter(t);
        }
    }), Ne(fa, {
        filterWith: function(t) {
            const e = t instanceof St ? t : this.defs().filter(t);
            return this.attr("filter", e);
        },
        unfilter: function(t) {
            return this.attr("filter", null);
        },
        filterer () {
            return this.reference("filter");
        }
    });
    const JL = {
        blend: function(t, e) {
            return this.parent() && this.parent().blend(this, t, e);
        },
        colorMatrix: function(t, e) {
            return this.parent() && this.parent().colorMatrix(t, e).in(this);
        },
        componentTransfer: function(t) {
            return this.parent() && this.parent().componentTransfer(t).in(this);
        },
        composite: function(t, e) {
            return this.parent() && this.parent().composite(this, t, e);
        },
        convolveMatrix: function(t) {
            return this.parent() && this.parent().convolveMatrix(t).in(this);
        },
        diffuseLighting: function(t, e, a, r) {
            return this.parent() && this.parent().diffuseLighting(t, a, r).in(this);
        },
        displacementMap: function(t, e, a, r) {
            return this.parent() && this.parent().displacementMap(this, t, e, a, r);
        },
        dropShadow: function(t, e, a) {
            return this.parent() && this.parent().dropShadow(this, t, e, a).in(this);
        },
        flood: function(t, e) {
            return this.parent() && this.parent().flood(t, e);
        },
        gaussianBlur: function(t, e) {
            return this.parent() && this.parent().gaussianBlur(t, e).in(this);
        },
        image: function(t) {
            return this.parent() && this.parent().image(t);
        },
        merge: function(t) {
            return t = t instanceof Array ? t : [
                ...t
            ], this.parent() && this.parent().merge(this, ...t);
        },
        morphology: function(t, e) {
            return this.parent() && this.parent().morphology(t, e).in(this);
        },
        offset: function(t, e) {
            return this.parent() && this.parent().offset(t, e).in(this);
        },
        specularLighting: function(t, e, a, r, n) {
            return this.parent() && this.parent().specularLighting(t, a, r, n).in(this);
        },
        tile: function() {
            return this.parent() && this.parent().tile().in(this);
        },
        turbulence: function(t, e, a, r, n) {
            return this.parent() && this.parent().turbulence(t, e, a, r, n).in(this);
        }
    };
    Ne(yf, JL), Ne(St.MergeEffect, {
        in: function(t) {
            return t instanceof St.MergeNode ? this.add(t, 0) : this.add(new St.MergeNode().in(t), 0), this;
        }
    }), Ne([
        St.CompositeEffect,
        St.BlendEffect,
        St.DisplacementMapEffect
    ], {
        in2: function(t) {
            if (t == null) {
                const e = this.attr("in2");
                return this.parent() && this.parent().find(`[result="${e}"]`)[0] || e;
            }
            return this.attr("in2", t);
        }
    }), St.filter = {
        sepiatone: [
            .343,
            .669,
            .119,
            0,
            0,
            .249,
            .626,
            .13,
            0,
            0,
            .172,
            .334,
            .111,
            0,
            0,
            0,
            0,
            0,
            1,
            0
        ]
    };
    var ca = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "getDefaultFilter",
                value: function(e, a) {
                    var r = this.w;
                    e.unfilter(!0), new St().size("120%", "180%", "-5%", "-40%"), r.config.chart.dropShadow.enabled && this.dropShadow(e, r.config.chart.dropShadow, a);
                }
            },
            {
                key: "applyFilter",
                value: function(e, a, r) {
                    var n, i = this, o = this.w;
                    if (e.unfilter(!0), r !== "none") {
                        var s, l, u = o.config.chart.dropShadow, c = r === "lighten" ? 2 : .3;
                        e.filterWith(function(d) {
                            d.colorMatrix({
                                type: "matrix",
                                values: `
          `.concat(c, ` 0 0 0 0
          0 `).concat(c, ` 0 0 0
          0 0 `).concat(c, ` 0 0
          0 0 0 1 0
        `),
                                in: "SourceGraphic",
                                result: "brightness"
                            }), u.enabled && i.addShadow(d, a, u, "brightness");
                        }), !u.noUserSpaceOnUse && ((s = e.filterer()) === null || s === void 0 || (l = s.node) === null || l === void 0 || l.setAttribute("filterUnits", "userSpaceOnUse")), this._scaleFilterSize((n = e.filterer()) === null || n === void 0 ? void 0 : n.node);
                    } else this.getDefaultFilter(e, a);
                }
            },
            {
                key: "addShadow",
                value: function(e, a, r, n) {
                    var i, o = this.w, s = r.blur, l = r.top, u = r.left, c = r.color, d = r.opacity;
                    if (c = Array.isArray(c) ? c[a] : c, ((i = o.config.chart.dropShadow.enabledOnSeries) === null || i === void 0 ? void 0 : i.length) > 0 && o.config.chart.dropShadow.enabledOnSeries.indexOf(a) === -1) return e;
                    e.offset({
                        in: n,
                        dx: u,
                        dy: l,
                        result: "offset"
                    }), e.gaussianBlur({
                        in: "offset",
                        stdDeviation: s,
                        result: "blur"
                    }), e.flood({
                        "flood-color": c,
                        "flood-opacity": d,
                        result: "flood"
                    }), e.composite({
                        in: "flood",
                        in2: "blur",
                        operator: "in",
                        result: "shadow"
                    }), e.merge([
                        "shadow",
                        n
                    ]);
                }
            },
            {
                key: "dropShadow",
                value: function(e, a) {
                    var r, n, i, o, s, l = this, u = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0, c = this.w;
                    return e.unfilter(!0), V.isMsEdge() && c.config.chart.type === "radialBar" || ((r = c.config.chart.dropShadow.enabledOnSeries) === null || r === void 0 ? void 0 : r.length) > 0 && ((i = c.config.chart.dropShadow.enabledOnSeries) === null || i === void 0 ? void 0 : i.indexOf(u)) === -1 ? e : (e.filterWith(function(d) {
                        l.addShadow(d, u, a, "SourceGraphic");
                    }), a.noUserSpaceOnUse || (o = e.filterer()) === null || o === void 0 || (s = o.node) === null || s === void 0 || s.setAttribute("filterUnits", "userSpaceOnUse"), this._scaleFilterSize((n = e.filterer()) === null || n === void 0 ? void 0 : n.node), e);
                }
            },
            {
                key: "setSelectionFilter",
                value: function(e, a, r) {
                    var n = this.w;
                    if (n.globals.selectedDataPoints[a] !== void 0 && n.globals.selectedDataPoints[a].indexOf(r) > -1) {
                        e.node.setAttribute("selected", !0);
                        var i = n.config.states.active.filter;
                        i !== "none" && this.applyFilter(e, a, i.type);
                    }
                }
            },
            {
                key: "_scaleFilterSize",
                value: function(e) {
                    e && function(a) {
                        for(var r in a)a.hasOwnProperty(r) && e.setAttribute(r, a[r]);
                    }({
                        width: "200%",
                        height: "200%",
                        x: "-50%",
                        y: "-50%"
                    });
                }
            }
        ]), t;
    }(), he = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "roundPathCorners",
                value: function(e, a) {
                    function r(F, D, _) {
                        var A = D.x - F.x, E = D.y - F.y, B = Math.sqrt(A * A + E * E);
                        return n(F, D, Math.min(1, _ / B));
                    }
                    function n(F, D, _) {
                        return {
                            x: F.x + (D.x - F.x) * _,
                            y: F.y + (D.y - F.y) * _
                        };
                    }
                    function i(F, D) {
                        F.length > 2 && (F[F.length - 2] = D.x, F[F.length - 1] = D.y);
                    }
                    function o(F) {
                        return {
                            x: parseFloat(F[F.length - 2]),
                            y: parseFloat(F[F.length - 1])
                        };
                    }
                    e.indexOf("NaN") > -1 && (e = "");
                    var s = e.split(/[,\s]/).reduce(function(F, D) {
                        var _ = D.match(/^([a-zA-Z])(.+)/);
                        return _ ? (F.push(_[1]), F.push(_[2])) : F.push(D), F;
                    }, []).reduce(function(F, D) {
                        return parseFloat(D) == D && F.length ? F[F.length - 1].push(D) : F.push([
                            D
                        ]), F;
                    }, []), l = [];
                    if (s.length > 1) {
                        var u = o(s[0]), c = null;
                        s[s.length - 1][0] == "Z" && s[0].length > 2 && (c = [
                            "L",
                            u.x,
                            u.y
                        ], s[s.length - 1] = c), l.push(s[0]);
                        for(var d = 1; d < s.length; d++){
                            var h = l[l.length - 1], m = s[d], f = m == c ? s[1] : s[d + 1];
                            if (f && h && h.length > 2 && m[0] == "L" && f.length > 2 && f[0] == "L") {
                                var p, g, v = o(h), b = o(m), k = o(f);
                                p = r(b, v, a), g = r(b, k, a), i(m, p), m.origPoint = b, l.push(m);
                                var S = n(p, b, .5), x = n(b, g, .5), C = [
                                    "C",
                                    S.x,
                                    S.y,
                                    x.x,
                                    x.y,
                                    g.x,
                                    g.y
                                ];
                                C.origPoint = b, l.push(C);
                            } else l.push(m);
                        }
                        if (c) {
                            var w = o(l[l.length - 1]);
                            l.push([
                                "Z"
                            ]), i(l[0], w);
                        }
                    } else l = s;
                    return l.reduce(function(F, D) {
                        return F + D.join(" ") + " ";
                    }, "");
                }
            },
            {
                key: "drawLine",
                value: function(e, a, r, n) {
                    var i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : "#a8a8a8", o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 0, s = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : null, l = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : "butt";
                    return this.w.globals.dom.Paper.line().attr({
                        x1: e,
                        y1: a,
                        x2: r,
                        y2: n,
                        stroke: i,
                        "stroke-dasharray": o,
                        "stroke-width": s,
                        "stroke-linecap": l
                    });
                }
            },
            {
                key: "drawRect",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0, a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0, i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : 0, o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : "#fefefe", s = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : 1, l = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : null, u = arguments.length > 8 && arguments[8] !== void 0 ? arguments[8] : null, c = arguments.length > 9 && arguments[9] !== void 0 ? arguments[9] : 0, d = this.w.globals.dom.Paper.rect();
                    return d.attr({
                        x: e,
                        y: a,
                        width: r > 0 ? r : 0,
                        height: n > 0 ? n : 0,
                        rx: i,
                        ry: i,
                        opacity: s,
                        "stroke-width": l !== null ? l : 0,
                        stroke: u !== null ? u : "none",
                        "stroke-dasharray": c
                    }), d.node.setAttribute("fill", o), d;
                }
            },
            {
                key: "drawPolygon",
                value: function(e) {
                    var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "#e1e1e1", r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "none";
                    return this.w.globals.dom.Paper.polygon(e).attr({
                        fill: n,
                        stroke: a,
                        "stroke-width": r
                    });
                }
            },
            {
                key: "drawCircle",
                value: function(e) {
                    var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
                    e < 0 && (e = 0);
                    var r = this.w.globals.dom.Paper.circle(2 * e);
                    return a !== null && r.attr(a), r;
                }
            },
            {
                key: "drawPath",
                value: function(e) {
                    var a = e.d, r = a === void 0 ? "" : a, n = e.stroke, i = n === void 0 ? "#a8a8a8" : n, o = e.strokeWidth, s = o === void 0 ? 1 : o, l = e.fill, u = e.fillOpacity, c = u === void 0 ? 1 : u, d = e.strokeOpacity, h = d === void 0 ? 1 : d, m = e.classes, f = e.strokeLinecap, p = f === void 0 ? null : f, g = e.strokeDashArray, v = g === void 0 ? 0 : g, b = this.w;
                    return p === null && (p = b.config.stroke.lineCap), (r.indexOf("undefined") > -1 || r.indexOf("NaN") > -1) && (r = "M 0 ".concat(b.globals.gridHeight)), b.globals.dom.Paper.path(r).attr({
                        fill: l,
                        "fill-opacity": c,
                        stroke: i,
                        "stroke-opacity": h,
                        "stroke-linecap": p,
                        "stroke-width": s,
                        "stroke-dasharray": v,
                        class: m
                    });
                }
            },
            {
                key: "group",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, a = this.w.globals.dom.Paper.group();
                    return e !== null && a.attr(e), a;
                }
            },
            {
                key: "move",
                value: function(e, a) {
                    var r = [
                        "M",
                        e,
                        a
                    ].join(" ");
                    return r;
                }
            },
            {
                key: "line",
                value: function(e, a) {
                    var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, n = null;
                    return r === null ? n = [
                        " L",
                        e,
                        a
                    ].join(" ") : r === "H" ? n = [
                        " H",
                        e
                    ].join(" ") : r === "V" && (n = [
                        " V",
                        a
                    ].join(" ")), n;
                }
            },
            {
                key: "curve",
                value: function(e, a, r, n, i, o) {
                    var s = [
                        "C",
                        e,
                        a,
                        r,
                        n,
                        i,
                        o
                    ].join(" ");
                    return s;
                }
            },
            {
                key: "quadraticCurve",
                value: function(e, a, r, n) {
                    return [
                        "Q",
                        e,
                        a,
                        r,
                        n
                    ].join(" ");
                }
            },
            {
                key: "arc",
                value: function(e, a, r, n, i, o, s) {
                    var l = "A";
                    arguments.length > 7 && arguments[7] !== void 0 && arguments[7] && (l = "a");
                    var u = [
                        l,
                        e,
                        a,
                        r,
                        n,
                        i,
                        o,
                        s
                    ].join(" ");
                    return u;
                }
            },
            {
                key: "renderPaths",
                value: function(e) {
                    var a, r = e.j, n = e.realIndex, i = e.pathFrom, o = e.pathTo, s = e.stroke, l = e.strokeWidth, u = e.strokeLinecap, c = e.fill, d = e.animationDelay, h = e.initialSpeed, m = e.dataChangeSpeed, f = e.className, p = e.chartType, g = e.shouldClipToGrid, v = g === void 0 || g, b = e.bindEventsOnPaths, k = b === void 0 || b, S = e.drawShadow, x = S === void 0 || S, C = this.w, w = new ca(this.ctx), F = new Vi(this.ctx), D = this.w.config.chart.animations.enabled, _ = D && this.w.config.chart.animations.dynamicAnimation.enabled;
                    if (i && i.startsWith("M 0 0") && o) {
                        var A = o.match(/^M\s+[\d.-]+\s+[\d.-]+/);
                        A && (i = i.replace(/^M\s+0\s+0/, A[0]));
                    }
                    var E = !!(D && !C.globals.resized || _ && C.globals.dataChanged && C.globals.shouldAnimate);
                    E ? a = i : (a = o, C.globals.animationEnded = !0);
                    var B = C.config.stroke.dashArray, P = 0;
                    P = Array.isArray(B) ? B[n] : C.config.stroke.dashArray;
                    var M = this.drawPath({
                        d: a,
                        stroke: s,
                        strokeWidth: l,
                        fill: c,
                        fillOpacity: 1,
                        classes: f,
                        strokeLinecap: u,
                        strokeDashArray: P
                    });
                    M.attr("index", n), v && (p === "bar" && !C.globals.isHorizontal || C.globals.comboCharts ? M.attr({
                        "clip-path": "url(#gridRectBarMask".concat(C.globals.cuid, ")")
                    }) : M.attr({
                        "clip-path": "url(#gridRectMask".concat(C.globals.cuid, ")")
                    })), C.config.chart.dropShadow.enabled && x && w.dropShadow(M, C.config.chart.dropShadow, n), k && (M.node.addEventListener("mouseenter", this.pathMouseEnter.bind(this, M)), M.node.addEventListener("mouseleave", this.pathMouseLeave.bind(this, M)), M.node.addEventListener("mousedown", this.pathMouseDown.bind(this, M))), M.attr({
                        pathTo: o,
                        pathFrom: i
                    });
                    var R = {
                        el: M,
                        j: r,
                        realIndex: n,
                        pathFrom: i,
                        pathTo: o,
                        fill: c,
                        strokeWidth: l,
                        delay: d
                    };
                    return !D || C.globals.resized || C.globals.dataChanged ? !C.globals.resized && C.globals.dataChanged || F.showDelayedElements() : F.animatePathsGradually(ye(ye({}, R), {}, {
                        speed: h
                    })), C.globals.dataChanged && _ && E && F.animatePathsGradually(ye(ye({}, R), {}, {
                        speed: m
                    })), M;
                }
            },
            {
                key: "drawPattern",
                value: function(e, a, r) {
                    var n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "#a8a8a8", i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : 0;
                    return this.w.globals.dom.Paper.pattern(a, r, function(o) {
                        e === "horizontalLines" ? o.line(0, 0, r, 0).stroke({
                            color: n,
                            width: i + 1
                        }) : e === "verticalLines" ? o.line(0, 0, 0, a).stroke({
                            color: n,
                            width: i + 1
                        }) : e === "slantedLines" ? o.line(0, 0, a, r).stroke({
                            color: n,
                            width: i
                        }) : e === "squares" ? o.rect(a, r).fill("none").stroke({
                            color: n,
                            width: i
                        }) : e === "circles" && o.circle(a).fill("none").stroke({
                            color: n,
                            width: i
                        });
                    });
                }
            },
            {
                key: "drawGradient",
                value: function(e, a, r, n, i) {
                    var o, s = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : null, l = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : null, u = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : [], c = arguments.length > 8 && arguments[8] !== void 0 ? arguments[8] : 0, d = this.w;
                    a.length < 9 && a.indexOf("#") === 0 && (a = V.hexToRgba(a, n)), r.length < 9 && r.indexOf("#") === 0 && (r = V.hexToRgba(r, i));
                    var h = 0, m = 1, f = 1, p = null;
                    l !== null && (h = l[0] !== void 0 ? l[0] / 100 : 0, m = l[1] !== void 0 ? l[1] / 100 : 1, f = l[2] !== void 0 ? l[2] / 100 : 1, p = l[3] !== void 0 ? l[3] / 100 : null);
                    var g = !(d.config.chart.type !== "donut" && d.config.chart.type !== "pie" && d.config.chart.type !== "polarArea" && d.config.chart.type !== "bubble");
                    if (o = u && u.length !== 0 ? d.globals.dom.Paper.gradient(g ? "radial" : "linear", function(k) {
                        (Array.isArray(u[c]) ? u[c] : u).forEach(function(S) {
                            k.stop(S.offset / 100, S.color, S.opacity);
                        });
                    }) : d.globals.dom.Paper.gradient(g ? "radial" : "linear", function(k) {
                        k.stop(h, a, n), k.stop(m, r, i), k.stop(f, r, i), p !== null && k.stop(p, a, n);
                    }), g) {
                        var v = d.globals.gridWidth / 2, b = d.globals.gridHeight / 2;
                        d.config.chart.type !== "bubble" ? o.attr({
                            gradientUnits: "userSpaceOnUse",
                            cx: v,
                            cy: b,
                            r: s
                        }) : o.attr({
                            cx: .5,
                            cy: .5,
                            r: .8,
                            fx: .2,
                            fy: .2
                        });
                    } else e === "vertical" ? o.from(0, 0).to(0, 1) : e === "diagonal" ? o.from(0, 0).to(1, 1) : e === "horizontal" ? o.from(0, 1).to(1, 1) : e === "diagonal2" && o.from(1, 0).to(0, 1);
                    return o;
                }
            },
            {
                key: "getTextBasedOnMaxWidth",
                value: function(e) {
                    var a = e.text, r = e.maxWidth, n = e.fontSize, i = e.fontFamily, o = this.getTextRects(a, n, i), s = o.width / a.length, l = Math.floor(r / s);
                    return r < o.width ? a.slice(0, l - 3) + "..." : a;
                }
            },
            {
                key: "drawText",
                value: function(e) {
                    var a = this, r = e.x, n = e.y, i = e.text, o = e.textAnchor, s = e.fontSize, l = e.fontFamily, u = e.fontWeight, c = e.foreColor, d = e.opacity, h = e.maxWidth, m = e.cssClass, f = m === void 0 ? "" : m, p = e.isPlainText, g = p === void 0 || p, v = e.dominantBaseline, b = v === void 0 ? "auto" : v, k = this.w;
                    i === void 0 && (i = "");
                    var S = i;
                    o || (o = "start"), c && c.length || (c = k.config.chart.foreColor), l = l || k.config.chart.fontFamily, u = u || "regular";
                    var x, C = {
                        maxWidth: h,
                        fontSize: s = s || "11px",
                        fontFamily: l
                    };
                    return Array.isArray(i) ? x = k.globals.dom.Paper.text(function(w) {
                        for(var F = 0; F < i.length; F++)S = i[F], h && (S = a.getTextBasedOnMaxWidth(ye({
                            text: i[F]
                        }, C))), F === 0 ? w.tspan(S) : w.tspan(S).newLine();
                    }) : (h && (S = this.getTextBasedOnMaxWidth(ye({
                        text: i
                    }, C))), x = g ? k.globals.dom.Paper.plain(i) : k.globals.dom.Paper.text(function(w) {
                        return w.tspan(S);
                    })), x.attr({
                        x: r,
                        y: n,
                        "text-anchor": o,
                        "dominant-baseline": b,
                        "font-size": s,
                        "font-family": l,
                        "font-weight": u,
                        fill: c,
                        class: "apexcharts-text " + f
                    }), x.node.style.fontFamily = l, x.node.style.opacity = d, x;
                }
            },
            {
                key: "getMarkerPath",
                value: function(e, a, r, n) {
                    var i = "";
                    switch(r){
                        case "cross":
                            i = "M ".concat(e - (n /= 1.4), " ").concat(a - n, " L ").concat(e + n, " ").concat(a + n, "  M ").concat(e - n, " ").concat(a + n, " L ").concat(e + n, " ").concat(a - n);
                            break;
                        case "plus":
                            i = "M ".concat(e - (n /= 1.12), " ").concat(a, " L ").concat(e + n, " ").concat(a, "  M ").concat(e, " ").concat(a - n, " L ").concat(e, " ").concat(a + n);
                            break;
                        case "star":
                        case "sparkle":
                            var o = 5;
                            n *= 1.15, r === "sparkle" && (n /= 1.1, o = 4);
                            for(var s = Math.PI / o, l = 0; l <= 2 * o; l++){
                                var u = l * s, c = l % 2 == 0 ? n : n / 2;
                                i += (l === 0 ? "M" : "L") + (e + c * Math.sin(u)) + "," + (a - c * Math.cos(u));
                            }
                            i += "Z";
                            break;
                        case "triangle":
                            i = "M ".concat(e, " ").concat(a - n, ` 
             L `).concat(e + n, " ").concat(a + n, ` 
             L `).concat(e - n, " ").concat(a + n, ` 
             Z`);
                            break;
                        case "square":
                        case "rect":
                            i = "M ".concat(e - (n /= 1.125), " ").concat(a - n, ` 
           L `).concat(e + n, " ").concat(a - n, ` 
           L `).concat(e + n, " ").concat(a + n, ` 
           L `).concat(e - n, " ").concat(a + n, ` 
           Z`);
                            break;
                        case "diamond":
                            n *= 1.05, i = "M ".concat(e, " ").concat(a - n, ` 
             L `).concat(e + n, " ").concat(a, ` 
             L `).concat(e, " ").concat(a + n, ` 
             L `).concat(e - n, " ").concat(a, ` 
            Z`);
                            break;
                        case "line":
                            i = "M ".concat(e - (n /= 1.1), " ").concat(a, ` 
           L `).concat(e + n, " ").concat(a);
                            break;
                        default:
                            n *= 2, i = "M ".concat(e, ", ").concat(a, ` 
           m -`).concat(n / 2, `, 0 
           a `).concat(n / 2, ",").concat(n / 2, " 0 1,0 ").concat(n, `,0 
           a `).concat(n / 2, ",").concat(n / 2, " 0 1,0 -").concat(n, ",0");
                    }
                    return i;
                }
            },
            {
                key: "drawMarkerShape",
                value: function(e, a, r, n, i) {
                    var o = this.drawPath({
                        d: this.getMarkerPath(e, a, r, n, i),
                        stroke: i.pointStrokeColor,
                        strokeDashArray: i.pointStrokeDashArray,
                        strokeWidth: i.pointStrokeWidth,
                        fill: i.pointFillColor,
                        fillOpacity: i.pointFillOpacity,
                        strokeOpacity: i.pointStrokeOpacity
                    });
                    return o.attr({
                        cx: e,
                        cy: a,
                        shape: i.shape,
                        class: i.class ? i.class : ""
                    }), o;
                }
            },
            {
                key: "drawMarker",
                value: function(e, a, r) {
                    e = e || 0;
                    var n = r.pSize || 0;
                    return V.isNumber(a) || (n = 0, a = 0), this.drawMarkerShape(e, a, r?.shape, n, ye(ye({}, r), r.shape === "line" || r.shape === "plus" || r.shape === "cross" ? {
                        pointStrokeColor: r.pointFillColor,
                        pointStrokeOpacity: r.pointFillOpacity
                    } : {}));
                }
            },
            {
                key: "pathMouseEnter",
                value: function(e, a) {
                    var r = this.w, n = new ca(this.ctx), i = parseInt(e.node.getAttribute("index"), 10), o = parseInt(e.node.getAttribute("j"), 10);
                    if (typeof r.config.chart.events.dataPointMouseEnter == "function" && r.config.chart.events.dataPointMouseEnter(a, this.ctx, {
                        seriesIndex: i,
                        dataPointIndex: o,
                        w: r
                    }), this.ctx.events.fireEvent("dataPointMouseEnter", [
                        a,
                        this.ctx,
                        {
                            seriesIndex: i,
                            dataPointIndex: o,
                            w: r
                        }
                    ]), (r.config.states.active.filter.type === "none" || e.node.getAttribute("selected") !== "true") && r.config.states.hover.filter.type !== "none" && !r.globals.isTouchDevice) {
                        var s = r.config.states.hover.filter;
                        n.applyFilter(e, i, s.type);
                    }
                }
            },
            {
                key: "pathMouseLeave",
                value: function(e, a) {
                    var r = this.w, n = new ca(this.ctx), i = parseInt(e.node.getAttribute("index"), 10), o = parseInt(e.node.getAttribute("j"), 10);
                    typeof r.config.chart.events.dataPointMouseLeave == "function" && r.config.chart.events.dataPointMouseLeave(a, this.ctx, {
                        seriesIndex: i,
                        dataPointIndex: o,
                        w: r
                    }), this.ctx.events.fireEvent("dataPointMouseLeave", [
                        a,
                        this.ctx,
                        {
                            seriesIndex: i,
                            dataPointIndex: o,
                            w: r
                        }
                    ]), r.config.states.active.filter.type !== "none" && e.node.getAttribute("selected") === "true" || r.config.states.hover.filter.type !== "none" && n.getDefaultFilter(e, i);
                }
            },
            {
                key: "pathMouseDown",
                value: function(e, a) {
                    var r = this.w, n = new ca(this.ctx), i = parseInt(e.node.getAttribute("index"), 10), o = parseInt(e.node.getAttribute("j"), 10), s = "false";
                    if (e.node.getAttribute("selected") === "true") {
                        if (e.node.setAttribute("selected", "false"), r.globals.selectedDataPoints[i].indexOf(o) > -1) {
                            var l = r.globals.selectedDataPoints[i].indexOf(o);
                            r.globals.selectedDataPoints[i].splice(l, 1);
                        }
                    } else {
                        if (!r.config.states.active.allowMultipleDataPointsSelection && r.globals.selectedDataPoints.length > 0) {
                            r.globals.selectedDataPoints = [];
                            var u = r.globals.dom.Paper.find(".apexcharts-series path:not(.apexcharts-decoration-element)"), c = r.globals.dom.Paper.find(".apexcharts-series circle:not(.apexcharts-decoration-element), .apexcharts-series rect:not(.apexcharts-decoration-element)"), d = function(f) {
                                Array.prototype.forEach.call(f, function(p) {
                                    p.node.setAttribute("selected", "false"), n.getDefaultFilter(p, i);
                                });
                            };
                            d(u), d(c);
                        }
                        e.node.setAttribute("selected", "true"), s = "true", r.globals.selectedDataPoints[i] === void 0 && (r.globals.selectedDataPoints[i] = []), r.globals.selectedDataPoints[i].push(o);
                    }
                    if (s === "true") {
                        var h = r.config.states.active.filter;
                        if (h !== "none") n.applyFilter(e, i, h.type);
                        else if (r.config.states.hover.filter !== "none" && !r.globals.isTouchDevice) {
                            var m = r.config.states.hover.filter;
                            n.applyFilter(e, i, m.type);
                        }
                    } else r.config.states.active.filter.type !== "none" && (r.config.states.hover.filter.type === "none" || r.globals.isTouchDevice ? n.getDefaultFilter(e, i) : (m = r.config.states.hover.filter, n.applyFilter(e, i, m.type)));
                    typeof r.config.chart.events.dataPointSelection == "function" && r.config.chart.events.dataPointSelection(a, this.ctx, {
                        selectedDataPoints: r.globals.selectedDataPoints,
                        seriesIndex: i,
                        dataPointIndex: o,
                        w: r
                    }), a && this.ctx.events.fireEvent("dataPointSelection", [
                        a,
                        this.ctx,
                        {
                            selectedDataPoints: r.globals.selectedDataPoints,
                            seriesIndex: i,
                            dataPointIndex: o,
                            w: r
                        }
                    ]);
                }
            },
            {
                key: "rotateAroundCenter",
                value: function(e) {
                    var a = {};
                    return e && typeof e.getBBox == "function" && (a = e.getBBox()), {
                        x: a.x + a.width / 2,
                        y: a.y + a.height / 2
                    };
                }
            },
            {
                key: "getTextRects",
                value: function(e, a, r, n) {
                    var i = !(arguments.length > 4 && arguments[4] !== void 0) || arguments[4], o = this.w, s = this.drawText({
                        x: -200,
                        y: -200,
                        text: e,
                        textAnchor: "start",
                        fontSize: a,
                        fontFamily: r,
                        foreColor: "#fff",
                        opacity: 0
                    });
                    n && s.attr("transform", n), o.globals.dom.Paper.add(s);
                    var l = s.bbox();
                    return i || (l = s.node.getBoundingClientRect()), s.remove(), {
                        width: l.width,
                        height: l.height
                    };
                }
            },
            {
                key: "placeTextWithEllipsis",
                value: function(e, a, r) {
                    if (typeof e.getComputedTextLength == "function" && (e.textContent = a, a.length > 0 && e.getComputedTextLength() >= r / 1.1)) {
                        for(var n = a.length - 3; n > 0; n -= 3)if (e.getSubStringLength(0, n) <= r / 1.1) return void (e.textContent = a.substring(0, n) + "...");
                        e.textContent = ".";
                    }
                }
            }
        ], [
            {
                key: "setAttrs",
                value: function(e, a) {
                    for(var r in a)a.hasOwnProperty(r) && e.setAttribute(r, a[r]);
                }
            }
        ]), t;
    }(), Ht = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "getStackedSeriesTotals",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], a = this.w, r = [];
                    if (a.globals.series.length === 0) return r;
                    for(var n = 0; n < a.globals.series[a.globals.maxValsInArrayIndex].length; n++){
                        for(var i = 0, o = 0; o < a.globals.series.length; o++)a.globals.series[o][n] !== void 0 && e.indexOf(o) === -1 && (i += a.globals.series[o][n]);
                        r.push(i);
                    }
                    return r;
                }
            },
            {
                key: "getSeriesTotalByIndex",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null;
                    return e === null ? this.w.config.series.reduce(function(a, r) {
                        return a + r;
                    }, 0) : this.w.globals.series[e].reduce(function(a, r) {
                        return a + r;
                    }, 0);
                }
            },
            {
                key: "getStackedSeriesTotalsByGroups",
                value: function() {
                    var e = this, a = this.w, r = [];
                    return a.globals.seriesGroups.forEach(function(n) {
                        var i = [];
                        a.config.series.forEach(function(s, l) {
                            n.indexOf(a.globals.seriesNames[l]) > -1 && i.push(l);
                        });
                        var o = a.globals.series.map(function(s, l) {
                            return i.indexOf(l) === -1 ? l : -1;
                        }).filter(function(s) {
                            return s !== -1;
                        });
                        r.push(e.getStackedSeriesTotals(o));
                    }), r;
                }
            },
            {
                key: "setSeriesYAxisMappings",
                value: function() {
                    var e = this.w.globals, a = this.w.config, r = [], n = [], i = [], o = e.series.length > a.yaxis.length || a.yaxis.some(function(d) {
                        return Array.isArray(d.seriesName);
                    });
                    a.series.forEach(function(d, h) {
                        i.push(h), n.push(null);
                    }), a.yaxis.forEach(function(d, h) {
                        r[h] = [];
                    });
                    var s = [];
                    a.yaxis.forEach(function(d, h) {
                        var m = !1;
                        if (d.seriesName) {
                            var f = [];
                            Array.isArray(d.seriesName) ? f = d.seriesName : f.push(d.seriesName), f.forEach(function(p) {
                                a.series.forEach(function(g, v) {
                                    if (g.name === p) {
                                        var b = v;
                                        h === v || o ? !o || i.indexOf(v) > -1 ? r[h].push([
                                            h,
                                            v
                                        ]) : console.warn("Series '" + g.name + "' referenced more than once in what looks like the new style. That is, when using either seriesName: [], or when there are more series than yaxes.") : (r[v].push([
                                            v,
                                            h
                                        ]), b = h), m = !0, (b = i.indexOf(b)) !== -1 && i.splice(b, 1);
                                    }
                                });
                            });
                        }
                        m || s.push(h);
                    }), r = r.map(function(d, h) {
                        var m = [];
                        return d.forEach(function(f) {
                            n[f[1]] = f[0], m.push(f[1]);
                        }), m;
                    });
                    for(var l = a.yaxis.length - 1, u = 0; u < s.length && (l = s[u], r[l] = [], i); u++){
                        var c = i[0];
                        i.shift(), r[l].push(c), n[c] = l;
                    }
                    i.forEach(function(d) {
                        r[l].push(d), n[d] = l;
                    }), e.seriesYAxisMap = r.map(function(d) {
                        return d;
                    }), e.seriesYAxisReverseMap = n.map(function(d) {
                        return d;
                    }), e.seriesYAxisMap.forEach(function(d, h) {
                        d.forEach(function(m) {
                            a.series[m] && a.series[m].group === void 0 && (a.series[m].group = "apexcharts-axis-".concat(h.toString()));
                        });
                    });
                }
            },
            {
                key: "isSeriesNull",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null;
                    return (e === null ? this.w.config.series.filter(function(a) {
                        return a !== null;
                    }) : this.w.config.series[e].data.filter(function(a) {
                        return a !== null;
                    })).length === 0;
                }
            },
            {
                key: "seriesHaveSameValues",
                value: function(e) {
                    return this.w.globals.series[e].every(function(a, r, n) {
                        return a === n[0];
                    });
                }
            },
            {
                key: "getCategoryLabels",
                value: function(e) {
                    var a = this.w, r = e.slice();
                    return a.config.xaxis.convertedCatToNumeric && (r = e.map(function(n, i) {
                        return a.config.xaxis.labels.formatter(n - a.globals.minX + 1);
                    })), r;
                }
            },
            {
                key: "getLargestSeries",
                value: function() {
                    var e = this.w;
                    e.globals.maxValsInArrayIndex = e.globals.series.map(function(a) {
                        return a.length;
                    }).indexOf(Math.max.apply(Math, e.globals.series.map(function(a) {
                        return a.length;
                    })));
                }
            },
            {
                key: "getLargestMarkerSize",
                value: function() {
                    var e = this.w, a = 0;
                    return e.globals.markers.size.forEach(function(r) {
                        a = Math.max(a, r);
                    }), e.config.markers.discrete && e.config.markers.discrete.length && e.config.markers.discrete.forEach(function(r) {
                        a = Math.max(a, r.size);
                    }), a > 0 && (e.config.markers.hover.size > 0 ? a = e.config.markers.hover.size : a += e.config.markers.hover.sizeOffset), e.globals.markers.largestSize = a, a;
                }
            },
            {
                key: "getSeriesTotals",
                value: function() {
                    var e = this.w;
                    e.globals.seriesTotals = e.globals.series.map(function(a, r) {
                        var n = 0;
                        if (Array.isArray(a)) for(var i = 0; i < a.length; i++)n += a[i];
                        else n += a;
                        return n;
                    });
                }
            },
            {
                key: "getSeriesTotalsXRange",
                value: function(e, a) {
                    var r = this.w;
                    return r.globals.series.map(function(n, i) {
                        for(var o = 0, s = 0; s < n.length; s++)r.globals.seriesX[i][s] > e && r.globals.seriesX[i][s] < a && (o += n[s]);
                        return o;
                    });
                }
            },
            {
                key: "getPercentSeries",
                value: function() {
                    var e = this.w;
                    e.globals.seriesPercent = e.globals.series.map(function(a, r) {
                        var n = [];
                        if (Array.isArray(a)) for(var i = 0; i < a.length; i++){
                            var o = e.globals.stackedSeriesTotals[i], s = 0;
                            o && (s = 100 * a[i] / o), n.push(s);
                        }
                        else {
                            var l = 100 * a / e.globals.seriesTotals.reduce(function(u, c) {
                                return u + c;
                            }, 0);
                            n.push(l);
                        }
                        return n;
                    });
                }
            },
            {
                key: "getCalculatedRatios",
                value: function() {
                    var e, a, r, n = this, i = this.w, o = i.globals, s = [], l = 0, u = [], c = .1, d = 0;
                    if (o.yRange = [], o.isMultipleYAxis) for(var h = 0; h < o.minYArr.length; h++)o.yRange.push(Math.abs(o.minYArr[h] - o.maxYArr[h])), u.push(0);
                    else o.yRange.push(Math.abs(o.minY - o.maxY));
                    o.xRange = Math.abs(o.maxX - o.minX), o.zRange = Math.abs(o.maxZ - o.minZ);
                    for(var m = 0; m < o.yRange.length; m++)s.push(o.yRange[m] / o.gridHeight);
                    if (a = o.xRange / o.gridWidth, e = o.yRange / o.gridWidth, r = o.xRange / o.gridHeight, (l = o.zRange / o.gridHeight * 16) || (l = 1), o.minY !== Number.MIN_VALUE && Math.abs(o.minY) !== 0 && (o.hasNegs = !0), i.globals.seriesYAxisReverseMap.length > 0) {
                        var f = function(g, v) {
                            var b = i.config.yaxis[i.globals.seriesYAxisReverseMap[v]], k = g < 0 ? -1 : 1;
                            return g = Math.abs(g), b.logarithmic && (g = n.getBaseLog(b.logBase, g)), -k * g / s[v];
                        };
                        if (o.isMultipleYAxis) {
                            u = [];
                            for(var p = 0; p < s.length; p++)u.push(f(o.minYArr[p], p));
                        } else (u = []).push(f(o.minY, 0)), o.minY !== Number.MIN_VALUE && Math.abs(o.minY) !== 0 && (c = -o.minY / e, d = o.minX / a);
                    } else (u = []).push(0), c = 0, d = 0;
                    return {
                        yRatio: s,
                        invertedYRatio: e,
                        zRatio: l,
                        xRatio: a,
                        invertedXRatio: r,
                        baseLineInvertedY: c,
                        baseLineY: u,
                        baseLineX: d
                    };
                }
            },
            {
                key: "getLogSeries",
                value: function(e) {
                    var a = this, r = this.w;
                    return r.globals.seriesLog = e.map(function(n, i) {
                        var o = r.globals.seriesYAxisReverseMap[i];
                        return r.config.yaxis[o] && r.config.yaxis[o].logarithmic ? n.map(function(s) {
                            return s === null ? null : a.getLogVal(r.config.yaxis[o].logBase, s, i);
                        }) : n;
                    }), r.globals.invalidLogScale ? e : r.globals.seriesLog;
                }
            },
            {
                key: "getLogValAtSeriesIndex",
                value: function(e, a) {
                    if (e === null) return null;
                    var r = this.w, n = r.globals.seriesYAxisReverseMap[a];
                    return r.config.yaxis[n] && r.config.yaxis[n].logarithmic ? this.getLogVal(r.config.yaxis[n].logBase, e, a) : e;
                }
            },
            {
                key: "getBaseLog",
                value: function(e, a) {
                    return Math.log(a) / Math.log(e);
                }
            },
            {
                key: "getLogVal",
                value: function(e, a, r) {
                    if (a <= 0) return 0;
                    var n = this.w, i = n.globals.minYArr[r] === 0 ? -1 : this.getBaseLog(e, n.globals.minYArr[r]), o = (n.globals.maxYArr[r] === 0 ? 0 : this.getBaseLog(e, n.globals.maxYArr[r])) - i;
                    return a < 1 ? a / o : (this.getBaseLog(e, a) - i) / o;
                }
            },
            {
                key: "getLogYRatios",
                value: function(e) {
                    var a = this, r = this.w, n = this.w.globals;
                    return n.yLogRatio = e.slice(), n.logYRange = n.yRange.map(function(i, o) {
                        var s = r.globals.seriesYAxisReverseMap[o];
                        if (r.config.yaxis[s] && a.w.config.yaxis[s].logarithmic) {
                            var l, u = -Number.MAX_VALUE, c = Number.MIN_VALUE;
                            return n.seriesLog.forEach(function(d, h) {
                                d.forEach(function(m) {
                                    r.config.yaxis[h] && r.config.yaxis[h].logarithmic && (u = Math.max(m, u), c = Math.min(m, c));
                                });
                            }), l = Math.pow(n.yRange[o], Math.abs(c - u) / n.yRange[o]), n.yLogRatio[o] = l / n.gridHeight, l;
                        }
                    }), n.invalidLogScale ? e.slice() : n.yLogRatio;
                }
            },
            {
                key: "drawSeriesByGroup",
                value: function(e, a, r, n) {
                    var i = this.w, o = [];
                    return e.series.length > 0 && a.forEach(function(s) {
                        var l = [], u = [];
                        e.i.forEach(function(c, d) {
                            i.config.series[c].group === s && (l.push(e.series[d]), u.push(c));
                        }), l.length > 0 && o.push(n.draw(l, r, u));
                    }), o;
                }
            }
        ], [
            {
                key: "checkComboSeries",
                value: function(e, a) {
                    var r = !1, n = 0, i = 0;
                    return a === void 0 && (a = "line"), e.length && e[0].type !== void 0 && e.forEach(function(o) {
                        o.type !== "bar" && o.type !== "column" && o.type !== "candlestick" && o.type !== "boxPlot" || n++, o.type !== void 0 && o.type !== a && i++;
                    }), i > 0 && (r = !0), {
                        comboBarCount: n,
                        comboCharts: r
                    };
                }
            },
            {
                key: "extendArrayProps",
                value: function(e, a, r) {
                    var n, i, o, s, l, u;
                    return (n = a) !== null && n !== void 0 && n.yaxis && (a = e.extendYAxis(a, r)), (i = a) !== null && i !== void 0 && i.annotations && (a.annotations.yaxis && (a = e.extendYAxisAnnotations(a)), (o = a) !== null && o !== void 0 && (s = o.annotations) !== null && s !== void 0 && s.xaxis && (a = e.extendXAxisAnnotations(a)), (l = a) !== null && l !== void 0 && (u = l.annotations) !== null && u !== void 0 && u.points && (a = e.extendPointAnnotations(a))), a;
                }
            }
        ]), t;
    }(), Hl = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.annoCtx = e;
        }
        return De(t, [
            {
                key: "setOrientations",
                value: function(e) {
                    var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, r = this.w;
                    if (e.label.orientation === "vertical") {
                        var n = a !== null ? a : 0, i = r.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(n, "']"));
                        if (i !== null) {
                            var o = i.getBoundingClientRect();
                            i.setAttribute("x", parseFloat(i.getAttribute("x")) - o.height + 4);
                            var s = e.label.position === "top" ? o.width : -o.width;
                            i.setAttribute("y", parseFloat(i.getAttribute("y")) + s);
                            var l = this.annoCtx.graphics.rotateAroundCenter(i), u = l.x, c = l.y;
                            i.setAttribute("transform", "rotate(-90 ".concat(u, " ").concat(c, ")"));
                        }
                    }
                }
            },
            {
                key: "addBackgroundToAnno",
                value: function(e, a) {
                    var r = this.w;
                    if (!e || !a.label.text || !String(a.label.text).trim()) return null;
                    var n = r.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(), i = e.getBoundingClientRect(), o = a.label.style.padding, s = o.left, l = o.right, u = o.top, c = o.bottom;
                    if (a.label.orientation === "vertical") {
                        var d = [
                            s,
                            l,
                            u,
                            c
                        ];
                        u = d[0], c = d[1], s = d[2], l = d[3];
                    }
                    var h = i.left - n.left - s, m = i.top - n.top - u, f = this.annoCtx.graphics.drawRect(h - r.globals.barPadForNumericAxis, m, i.width + s + l, i.height + u + c, a.label.borderRadius, a.label.style.background, 1, a.label.borderWidth, a.label.borderColor, 0);
                    return a.id && f.node.classList.add(a.id), f;
                }
            },
            {
                key: "annotationsBackground",
                value: function() {
                    var e = this, a = this.w, r = function(n, i, o) {
                        var s = a.globals.dom.baseEl.querySelector(".apexcharts-".concat(o, "-annotations .apexcharts-").concat(o, "-annotation-label[rel='").concat(i, "']"));
                        if (s) {
                            var l = s.parentNode, u = e.addBackgroundToAnno(s, n);
                            u && (l.insertBefore(u.node, s), n.label.mouseEnter && u.node.addEventListener("mouseenter", n.label.mouseEnter.bind(e, n)), n.label.mouseLeave && u.node.addEventListener("mouseleave", n.label.mouseLeave.bind(e, n)), n.label.click && u.node.addEventListener("click", n.label.click.bind(e, n)));
                        }
                    };
                    a.config.annotations.xaxis.forEach(function(n, i) {
                        return r(n, i, "xaxis");
                    }), a.config.annotations.yaxis.forEach(function(n, i) {
                        return r(n, i, "yaxis");
                    }), a.config.annotations.points.forEach(function(n, i) {
                        return r(n, i, "point");
                    });
                }
            },
            {
                key: "getY1Y2",
                value: function(e, a) {
                    var r, n = this.w, i = e === "y1" ? a.y : a.y2, o = !1;
                    if (this.annoCtx.invertAxis) {
                        var s = n.config.xaxis.convertedCatToNumeric ? n.globals.categoryLabels : n.globals.labels, l = s.indexOf(i), u = n.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child(".concat(l + 1, ")"));
                        r = u ? parseFloat(u.getAttribute("y")) : (n.globals.gridHeight / s.length - 1) * (l + 1) - n.globals.barHeight, a.seriesIndex !== void 0 && n.globals.barHeight && (r -= n.globals.barHeight / 2 * (n.globals.series.length - 1) - n.globals.barHeight * a.seriesIndex);
                    } else {
                        var c, d = n.globals.seriesYAxisMap[a.yAxisIndex][0], h = n.config.yaxis[a.yAxisIndex].logarithmic ? new Ht(this.annoCtx.ctx).getLogVal(n.config.yaxis[a.yAxisIndex].logBase, i, d) / n.globals.yLogRatio[d] : (i - n.globals.minYArr[d]) / (n.globals.yRange[d] / n.globals.gridHeight);
                        r = n.globals.gridHeight - Math.min(Math.max(h, 0), n.globals.gridHeight), o = h > n.globals.gridHeight || h < 0, !a.marker || a.y !== void 0 && a.y !== null || (r = 0), (c = n.config.yaxis[a.yAxisIndex]) !== null && c !== void 0 && c.reversed && (r = h);
                    }
                    return typeof i == "string" && i.includes("px") && (r = parseFloat(i)), {
                        yP: r,
                        clipped: o
                    };
                }
            },
            {
                key: "getX1X2",
                value: function(e, a) {
                    var r = this.w, n = e === "x1" ? a.x : a.x2, i = this.annoCtx.invertAxis ? r.globals.minY : r.globals.minX, o = this.annoCtx.invertAxis ? r.globals.maxY : r.globals.maxX, s = this.annoCtx.invertAxis ? r.globals.yRange[0] : r.globals.xRange, l = !1, u = this.annoCtx.inversedReversedAxis ? (o - n) / (s / r.globals.gridWidth) : (n - i) / (s / r.globals.gridWidth);
                    return r.config.xaxis.type !== "category" && !r.config.xaxis.convertedCatToNumeric || this.annoCtx.invertAxis || r.globals.dataFormatXNumeric || r.config.chart.sparkline.enabled || (u = this.getStringX(n)), typeof n == "string" && n.includes("px") && (u = parseFloat(n)), n == null && a.marker && (u = r.globals.gridWidth), a.seriesIndex !== void 0 && r.globals.barWidth && !this.annoCtx.invertAxis && (u -= r.globals.barWidth / 2 * (r.globals.series.length - 1) - r.globals.barWidth * a.seriesIndex), typeof u != "number" && (u = 0, l = !0), parseFloat(u.toFixed(10)) > parseFloat(r.globals.gridWidth.toFixed(10)) ? (u = r.globals.gridWidth, l = !0) : u < 0 && (u = 0, l = !0), {
                        x: u,
                        clipped: l
                    };
                }
            },
            {
                key: "getStringX",
                value: function(e) {
                    var a = this.w, r = e;
                    a.config.xaxis.convertedCatToNumeric && a.globals.categoryLabels.length && (e = a.globals.categoryLabels.indexOf(e) + 1);
                    var n = a.globals.labels.map(function(o) {
                        return Array.isArray(o) ? o.join(" ") : o;
                    }).indexOf(e), i = a.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child(".concat(n + 1, ")"));
                    return i && (r = parseFloat(i.getAttribute("x"))), r;
                }
            }
        ]), t;
    }(), ZL = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.annoCtx = e, this.invertAxis = this.annoCtx.invertAxis, this.helpers = new Hl(this.annoCtx);
        }
        return De(t, [
            {
                key: "addXaxisAnnotation",
                value: function(e, a, r) {
                    var n, i = this.w, o = this.helpers.getX1X2("x1", e), s = o.x, l = o.clipped, u = !0, c = e.label.text, d = e.strokeDashArray;
                    if (V.isNumber(s)) {
                        if (e.x2 === null || e.x2 === void 0) {
                            if (!l) {
                                var h = this.annoCtx.graphics.drawLine(s + e.offsetX, 0 + e.offsetY, s + e.offsetX, i.globals.gridHeight + e.offsetY, e.borderColor, d, e.borderWidth);
                                a.appendChild(h.node), e.id && h.node.classList.add(e.id);
                            }
                        } else {
                            var m = this.helpers.getX1X2("x2", e);
                            if (n = m.x, u = m.clipped, n < s) {
                                var f = s;
                                s = n, n = f;
                            }
                            var p = this.annoCtx.graphics.drawRect(s + e.offsetX, 0 + e.offsetY, n - s, i.globals.gridHeight + e.offsetY, 0, e.fillColor, e.opacity, 1, e.borderColor, d);
                            p.node.classList.add("apexcharts-annotation-rect"), p.attr("clip-path", "url(#gridRectMask".concat(i.globals.cuid, ")")), a.appendChild(p.node), e.id && p.node.classList.add(e.id);
                        }
                        if (!l || !u) {
                            var g = this.annoCtx.graphics.getTextRects(c, parseFloat(e.label.style.fontSize)), v = e.label.position === "top" ? 4 : e.label.position === "center" ? i.globals.gridHeight / 2 + (e.label.orientation === "vertical" ? g.width / 2 : 0) : i.globals.gridHeight, b = this.annoCtx.graphics.drawText({
                                x: s + e.label.offsetX,
                                y: v + e.label.offsetY - (e.label.orientation === "vertical" ? e.label.position === "top" ? g.width / 2 - 12 : -g.width / 2 : 0),
                                text: c,
                                textAnchor: e.label.textAnchor,
                                fontSize: e.label.style.fontSize,
                                fontFamily: e.label.style.fontFamily,
                                fontWeight: e.label.style.fontWeight,
                                foreColor: e.label.style.color,
                                cssClass: "apexcharts-xaxis-annotation-label ".concat(e.label.style.cssClass, " ").concat(e.id ? e.id : "")
                            });
                            b.attr({
                                rel: r
                            }), a.appendChild(b.node), this.annoCtx.helpers.setOrientations(e, r);
                        }
                    }
                }
            },
            {
                key: "drawXAxisAnnotations",
                value: function() {
                    var e = this, a = this.w, r = this.annoCtx.graphics.group({
                        class: "apexcharts-xaxis-annotations"
                    });
                    return a.config.annotations.xaxis.map(function(n, i) {
                        e.addXaxisAnnotation(n, r.node, i);
                    }), r;
                }
            }
        ]), t;
    }(), ua = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.months31 = [
                1,
                3,
                5,
                7,
                8,
                10,
                12
            ], this.months30 = [
                2,
                4,
                6,
                9,
                11
            ], this.daysCntOfYear = [
                0,
                31,
                59,
                90,
                120,
                151,
                181,
                212,
                243,
                273,
                304,
                334
            ];
        }
        return De(t, [
            {
                key: "isValidDate",
                value: function(e) {
                    return typeof e != "number" && !isNaN(this.parseDate(e));
                }
            },
            {
                key: "getTimeStamp",
                value: function(e) {
                    return Date.parse(e) ? this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(e).toISOString().substr(0, 25)).getTime() : new Date(e).getTime() : e;
                }
            },
            {
                key: "getDate",
                value: function(e) {
                    return this.w.config.xaxis.labels.datetimeUTC ? new Date(new Date(e).toUTCString()) : new Date(e);
                }
            },
            {
                key: "parseDate",
                value: function(e) {
                    var a = Date.parse(e);
                    if (!isNaN(a)) return this.getTimeStamp(e);
                    var r = Date.parse(e.replace(/-/g, "/").replace(/[a-z]+/gi, " "));
                    return r = this.getTimeStamp(r);
                }
            },
            {
                key: "parseDateWithTimezone",
                value: function(e) {
                    return Date.parse(e.replace(/-/g, "/").replace(/[a-z]+/gi, " "));
                }
            },
            {
                key: "formatDate",
                value: function(e, a) {
                    var r = this.w.globals.locale, n = this.w.config.xaxis.labels.datetimeUTC, i = [
                        "\0"
                    ].concat(Qt(r.months)), o = [
                        ""
                    ].concat(Qt(r.shortMonths)), s = [
                        ""
                    ].concat(Qt(r.days)), l = [
                        ""
                    ].concat(Qt(r.shortDays));
                    function u(F, D) {
                        var _ = F + "";
                        for(D = D || 2; _.length < D;)_ = "0" + _;
                        return _;
                    }
                    var c = n ? e.getUTCFullYear() : e.getFullYear();
                    a = (a = (a = a.replace(/(^|[^\\])yyyy+/g, "$1" + c)).replace(/(^|[^\\])yy/g, "$1" + c.toString().substr(2, 2))).replace(/(^|[^\\])y/g, "$1" + c);
                    var d = (n ? e.getUTCMonth() : e.getMonth()) + 1;
                    a = (a = (a = (a = a.replace(/(^|[^\\])MMMM+/g, "$1" + i[0])).replace(/(^|[^\\])MMM/g, "$1" + o[0])).replace(/(^|[^\\])MM/g, "$1" + u(d))).replace(/(^|[^\\])M/g, "$1" + d);
                    var h = n ? e.getUTCDate() : e.getDate();
                    a = (a = (a = (a = a.replace(/(^|[^\\])dddd+/g, "$1" + s[0])).replace(/(^|[^\\])ddd/g, "$1" + l[0])).replace(/(^|[^\\])dd/g, "$1" + u(h))).replace(/(^|[^\\])d/g, "$1" + h);
                    var m = n ? e.getUTCHours() : e.getHours(), f = m > 12 ? m - 12 : m === 0 ? 12 : m;
                    a = (a = (a = (a = a.replace(/(^|[^\\])HH+/g, "$1" + u(m))).replace(/(^|[^\\])H/g, "$1" + m)).replace(/(^|[^\\])hh+/g, "$1" + u(f))).replace(/(^|[^\\])h/g, "$1" + f);
                    var p = n ? e.getUTCMinutes() : e.getMinutes();
                    a = (a = a.replace(/(^|[^\\])mm+/g, "$1" + u(p))).replace(/(^|[^\\])m/g, "$1" + p);
                    var g = n ? e.getUTCSeconds() : e.getSeconds();
                    a = (a = a.replace(/(^|[^\\])ss+/g, "$1" + u(g))).replace(/(^|[^\\])s/g, "$1" + g);
                    var v = n ? e.getUTCMilliseconds() : e.getMilliseconds();
                    a = a.replace(/(^|[^\\])fff+/g, "$1" + u(v, 3)), v = Math.round(v / 10), a = a.replace(/(^|[^\\])ff/g, "$1" + u(v)), v = Math.round(v / 10);
                    var b = m < 12 ? "AM" : "PM";
                    a = (a = (a = a.replace(/(^|[^\\])f/g, "$1" + v)).replace(/(^|[^\\])TT+/g, "$1" + b)).replace(/(^|[^\\])T/g, "$1" + b.charAt(0));
                    var k = b.toLowerCase();
                    a = (a = a.replace(/(^|[^\\])tt+/g, "$1" + k)).replace(/(^|[^\\])t/g, "$1" + k.charAt(0));
                    var S = -e.getTimezoneOffset(), x = n || !S ? "Z" : S > 0 ? "+" : "-";
                    if (!n) {
                        var C = (S = Math.abs(S)) % 60;
                        x += u(Math.floor(S / 60)) + ":" + u(C);
                    }
                    a = a.replace(/(^|[^\\])K/g, "$1" + x);
                    var w = (n ? e.getUTCDay() : e.getDay()) + 1;
                    return a = (a = (a = (a = (a = a.replace(new RegExp(s[0], "g"), s[w])).replace(new RegExp(l[0], "g"), l[w])).replace(new RegExp(i[0], "g"), i[d])).replace(new RegExp(o[0], "g"), o[d])).replace(/\\(.)/g, "$1");
                }
            },
            {
                key: "getTimeUnitsfromTimestamp",
                value: function(e, a, r) {
                    var n = this.w;
                    n.config.xaxis.min !== void 0 && (e = n.config.xaxis.min), n.config.xaxis.max !== void 0 && (a = n.config.xaxis.max);
                    var i = this.getDate(e), o = this.getDate(a), s = this.formatDate(i, "yyyy MM dd HH mm ss fff").split(" "), l = this.formatDate(o, "yyyy MM dd HH mm ss fff").split(" ");
                    return {
                        minMillisecond: parseInt(s[6], 10),
                        maxMillisecond: parseInt(l[6], 10),
                        minSecond: parseInt(s[5], 10),
                        maxSecond: parseInt(l[5], 10),
                        minMinute: parseInt(s[4], 10),
                        maxMinute: parseInt(l[4], 10),
                        minHour: parseInt(s[3], 10),
                        maxHour: parseInt(l[3], 10),
                        minDate: parseInt(s[2], 10),
                        maxDate: parseInt(l[2], 10),
                        minMonth: parseInt(s[1], 10) - 1,
                        maxMonth: parseInt(l[1], 10) - 1,
                        minYear: parseInt(s[0], 10),
                        maxYear: parseInt(l[0], 10)
                    };
                }
            },
            {
                key: "isLeapYear",
                value: function(e) {
                    return e % 4 == 0 && e % 100 != 0 || e % 400 == 0;
                }
            },
            {
                key: "calculcateLastDaysOfMonth",
                value: function(e, a, r) {
                    return this.determineDaysOfMonths(e, a) - r;
                }
            },
            {
                key: "determineDaysOfYear",
                value: function(e) {
                    var a = 365;
                    return this.isLeapYear(e) && (a = 366), a;
                }
            },
            {
                key: "determineRemainingDaysOfYear",
                value: function(e, a, r) {
                    var n = this.daysCntOfYear[a] + r;
                    return a > 1 && this.isLeapYear() && n++, n;
                }
            },
            {
                key: "determineDaysOfMonths",
                value: function(e, a) {
                    var r = 30;
                    switch(e = V.monthMod(e), !0){
                        case this.months30.indexOf(e) > -1:
                            e === 2 && (r = this.isLeapYear(a) ? 29 : 28);
                            break;
                        case this.months31.indexOf(e) > -1:
                        default:
                            r = 31;
                    }
                    return r;
                }
            }
        ]), t;
    }(), as = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.tooltipKeyFormat = "dd MMM";
        }
        return De(t, [
            {
                key: "xLabelFormat",
                value: function(e, a, r, n) {
                    var i = this.w;
                    if (i.config.xaxis.type === "datetime" && i.config.xaxis.labels.formatter === void 0 && i.config.tooltip.x.formatter === void 0) {
                        var o = new ua(this.ctx);
                        return o.formatDate(o.getDate(a), i.config.tooltip.x.format);
                    }
                    return e(a, r, n);
                }
            },
            {
                key: "defaultGeneralFormatter",
                value: function(e) {
                    return Array.isArray(e) ? e.map(function(a) {
                        return a;
                    }) : e;
                }
            },
            {
                key: "defaultYFormatter",
                value: function(e, a, r) {
                    var n = this.w;
                    if (V.isNumber(e)) if (n.globals.yValueDecimal !== 0) e = e.toFixed(a.decimalsInFloat !== void 0 ? a.decimalsInFloat : n.globals.yValueDecimal);
                    else {
                        var i = e.toFixed(0);
                        e = e == i ? i : e.toFixed(1);
                    }
                    return e;
                }
            },
            {
                key: "setLabelFormatters",
                value: function() {
                    var e = this, a = this.w;
                    return a.globals.xaxisTooltipFormatter = function(r) {
                        return e.defaultGeneralFormatter(r);
                    }, a.globals.ttKeyFormatter = function(r) {
                        return e.defaultGeneralFormatter(r);
                    }, a.globals.ttZFormatter = function(r) {
                        return r;
                    }, a.globals.legendFormatter = function(r) {
                        return e.defaultGeneralFormatter(r);
                    }, a.config.xaxis.labels.formatter !== void 0 ? a.globals.xLabelFormatter = a.config.xaxis.labels.formatter : a.globals.xLabelFormatter = function(r) {
                        if (V.isNumber(r)) {
                            if (!a.config.xaxis.convertedCatToNumeric && a.config.xaxis.type === "numeric") {
                                if (V.isNumber(a.config.xaxis.decimalsInFloat)) return r.toFixed(a.config.xaxis.decimalsInFloat);
                                var n = a.globals.maxX - a.globals.minX;
                                return n > 0 && n < 100 ? r.toFixed(1) : r.toFixed(0);
                            }
                            return a.globals.isBarHorizontal && a.globals.maxY - a.globals.minYArr < 4 ? r.toFixed(1) : r.toFixed(0);
                        }
                        return r;
                    }, typeof a.config.tooltip.x.formatter == "function" ? a.globals.ttKeyFormatter = a.config.tooltip.x.formatter : a.globals.ttKeyFormatter = a.globals.xLabelFormatter, typeof a.config.xaxis.tooltip.formatter == "function" && (a.globals.xaxisTooltipFormatter = a.config.xaxis.tooltip.formatter), (Array.isArray(a.config.tooltip.y) || a.config.tooltip.y.formatter !== void 0) && (a.globals.ttVal = a.config.tooltip.y), a.config.tooltip.z.formatter !== void 0 && (a.globals.ttZFormatter = a.config.tooltip.z.formatter), a.config.legend.formatter !== void 0 && (a.globals.legendFormatter = a.config.legend.formatter), a.config.yaxis.forEach(function(r, n) {
                        r.labels.formatter !== void 0 ? a.globals.yLabelFormatters[n] = r.labels.formatter : a.globals.yLabelFormatters[n] = function(i) {
                            return a.globals.xyCharts ? Array.isArray(i) ? i.map(function(o) {
                                return e.defaultYFormatter(o, r, n);
                            }) : e.defaultYFormatter(i, r, n) : i;
                        };
                    }), a.globals;
                }
            },
            {
                key: "heatmapLabelFormatters",
                value: function() {
                    var e = this.w;
                    if (e.config.chart.type === "heatmap") {
                        e.globals.yAxisScale[0].result = e.globals.seriesNames.slice();
                        var a = e.globals.seriesNames.reduce(function(r, n) {
                            return r.length > n.length ? r : n;
                        }, 0);
                        e.globals.yAxisScale[0].niceMax = a, e.globals.yAxisScale[0].niceMin = a;
                    }
                }
            }
        ]), t;
    }(), tn = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "getLabel",
                value: function(e, a, r, n) {
                    var i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : [], o = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : "12px", s = !(arguments.length > 6 && arguments[6] !== void 0) || arguments[6], l = this.w, u = e[n] === void 0 ? "" : e[n], c = u, d = l.globals.xLabelFormatter, h = l.config.xaxis.labels.formatter, m = !1, f = new as(this.ctx), p = u;
                    s && (c = f.xLabelFormat(d, u, p, {
                        i: n,
                        dateFormatter: new ua(this.ctx).formatDate,
                        w: l
                    }), h !== void 0 && (c = h(u, e[n], {
                        i: n,
                        dateFormatter: new ua(this.ctx).formatDate,
                        w: l
                    })));
                    var g, v;
                    a.length > 0 ? (g = a[n].unit, v = null, a.forEach(function(x) {
                        x.unit === "month" ? v = "year" : x.unit === "day" ? v = "month" : x.unit === "hour" ? v = "day" : x.unit === "minute" && (v = "hour");
                    }), m = v === g, r = a[n].position, c = a[n].value) : l.config.xaxis.type === "datetime" && h === void 0 && (c = ""), c === void 0 && (c = ""), c = Array.isArray(c) ? c : c.toString();
                    var b = new he(this.ctx), k = {};
                    k = l.globals.rotateXLabels && s ? b.getTextRects(c, parseInt(o, 10), null, "rotate(".concat(l.config.xaxis.labels.rotate, " 0 0)"), !1) : b.getTextRects(c, parseInt(o, 10));
                    var S = !l.config.xaxis.labels.showDuplicates && this.ctx.timeScale;
                    return !Array.isArray(c) && (String(c) === "NaN" || i.indexOf(c) >= 0 && S) && (c = ""), {
                        x: r,
                        text: c,
                        textRect: k,
                        isBold: m
                    };
                }
            },
            {
                key: "checkLabelBasedOnTickamount",
                value: function(e, a, r) {
                    var n = this.w, i = n.config.xaxis.tickAmount;
                    return i === "dataPoints" && (i = Math.round(n.globals.gridWidth / 120)), i > r || e % Math.round(r / (i + 1)) == 0 || (a.text = ""), a;
                }
            },
            {
                key: "checkForOverflowingLabels",
                value: function(e, a, r, n, i) {
                    var o = this.w;
                    if (e === 0 && o.globals.skipFirstTimelinelabel && (a.text = ""), e === r - 1 && o.globals.skipLastTimelinelabel && (a.text = ""), o.config.xaxis.labels.hideOverlappingLabels && n.length > 0) {
                        var s = i[i.length - 1];
                        a.x < s.textRect.width / (o.globals.rotateXLabels ? Math.abs(o.config.xaxis.labels.rotate) / 12 : 1.01) + s.x && (a.text = "");
                    }
                    return a;
                }
            },
            {
                key: "checkForReversedLabels",
                value: function(e, a) {
                    var r = this.w;
                    return r.config.yaxis[e] && r.config.yaxis[e].reversed && a.reverse(), a;
                }
            },
            {
                key: "yAxisAllSeriesCollapsed",
                value: function(e) {
                    var a = this.w.globals;
                    return !a.seriesYAxisMap[e].some(function(r) {
                        return a.collapsedSeriesIndices.indexOf(r) === -1;
                    });
                }
            },
            {
                key: "translateYAxisIndex",
                value: function(e) {
                    var a = this.w, r = a.globals, n = a.config.yaxis;
                    return r.series.length > n.length || n.some(function(i) {
                        return Array.isArray(i.seriesName);
                    }) ? e : r.seriesYAxisReverseMap[e];
                }
            },
            {
                key: "isYAxisHidden",
                value: function(e) {
                    var a = this.w, r = a.config.yaxis[e];
                    if (!r.show || this.yAxisAllSeriesCollapsed(e)) return !0;
                    if (!r.showForNullSeries) {
                        var n = a.globals.seriesYAxisMap[e], i = new Ht(this.ctx);
                        return n.every(function(o) {
                            return i.isSeriesNull(o);
                        });
                    }
                    return !1;
                }
            },
            {
                key: "getYAxisForeColor",
                value: function(e, a) {
                    var r = this.w;
                    return Array.isArray(e) && r.globals.yAxisScale[a] && this.ctx.theme.pushExtraColors(e, r.globals.yAxisScale[a].result.length, !1), e;
                }
            },
            {
                key: "drawYAxisTicks",
                value: function(e, a, r, n, i, o, s) {
                    var l = this.w, u = new he(this.ctx), c = l.globals.translateY + l.config.yaxis[i].labels.offsetY;
                    if (l.globals.isBarHorizontal ? c = 0 : l.config.chart.type === "heatmap" && (c += o / 2), n.show && a > 0) {
                        l.config.yaxis[i].opposite === !0 && (e += n.width);
                        for(var d = a; d >= 0; d--){
                            var h = u.drawLine(e + r.offsetX - n.width + n.offsetX, c + n.offsetY, e + r.offsetX + n.offsetX, c + n.offsetY, n.color);
                            s.add(h), c += o;
                        }
                    }
                }
            }
        ]), t;
    }(), QL = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.annoCtx = e, this.helpers = new Hl(this.annoCtx), this.axesUtils = new tn(this.annoCtx);
        }
        return De(t, [
            {
                key: "addYaxisAnnotation",
                value: function(e, a, r) {
                    var n, i = this.w, o = e.strokeDashArray, s = this.helpers.getY1Y2("y1", e), l = s.yP, u = s.clipped, c = !0, d = !1, h = e.label.text;
                    if (e.y2 === null || e.y2 === void 0) {
                        if (!u) {
                            d = !0;
                            var m = this.annoCtx.graphics.drawLine(0 + e.offsetX, l + e.offsetY, this._getYAxisAnnotationWidth(e), l + e.offsetY, e.borderColor, o, e.borderWidth);
                            a.appendChild(m.node), e.id && m.node.classList.add(e.id);
                        }
                    } else {
                        if (n = (s = this.helpers.getY1Y2("y2", e)).yP, c = s.clipped, n > l) {
                            var f = l;
                            l = n, n = f;
                        }
                        if (!u || !c) {
                            d = !0;
                            var p = this.annoCtx.graphics.drawRect(0 + e.offsetX, n + e.offsetY, this._getYAxisAnnotationWidth(e), l - n, 0, e.fillColor, e.opacity, 1, e.borderColor, o);
                            p.node.classList.add("apexcharts-annotation-rect"), p.attr("clip-path", "url(#gridRectMask".concat(i.globals.cuid, ")")), a.appendChild(p.node), e.id && p.node.classList.add(e.id);
                        }
                    }
                    if (d) {
                        var g = e.label.position === "right" ? i.globals.gridWidth : e.label.position === "center" ? i.globals.gridWidth / 2 : 0, v = this.annoCtx.graphics.drawText({
                            x: g + e.label.offsetX,
                            y: (n ?? l) + e.label.offsetY - 3,
                            text: h,
                            textAnchor: e.label.textAnchor,
                            fontSize: e.label.style.fontSize,
                            fontFamily: e.label.style.fontFamily,
                            fontWeight: e.label.style.fontWeight,
                            foreColor: e.label.style.color,
                            cssClass: "apexcharts-yaxis-annotation-label ".concat(e.label.style.cssClass, " ").concat(e.id ? e.id : "")
                        });
                        v.attr({
                            rel: r
                        }), a.appendChild(v.node);
                    }
                }
            },
            {
                key: "_getYAxisAnnotationWidth",
                value: function(e) {
                    var a = this.w;
                    return a.globals.gridWidth, (e.width.indexOf("%") > -1 ? a.globals.gridWidth * parseInt(e.width, 10) / 100 : parseInt(e.width, 10)) + e.offsetX;
                }
            },
            {
                key: "drawYAxisAnnotations",
                value: function() {
                    var e = this, a = this.w, r = this.annoCtx.graphics.group({
                        class: "apexcharts-yaxis-annotations"
                    });
                    return a.config.annotations.yaxis.forEach(function(n, i) {
                        n.yAxisIndex = e.axesUtils.translateYAxisIndex(n.yAxisIndex), e.axesUtils.isYAxisHidden(n.yAxisIndex) && e.axesUtils.yAxisAllSeriesCollapsed(n.yAxisIndex) || e.addYaxisAnnotation(n, r.node, i);
                    }), r;
                }
            }
        ]), t;
    }(), eI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.annoCtx = e, this.helpers = new Hl(this.annoCtx);
        }
        return De(t, [
            {
                key: "addPointAnnotation",
                value: function(e, a, r) {
                    if (!(this.w.globals.collapsedSeriesIndices.indexOf(e.seriesIndex) > -1)) {
                        var n = this.helpers.getX1X2("x1", e), i = n.x, o = n.clipped, s = (n = this.helpers.getY1Y2("y1", e)).yP, l = n.clipped;
                        if (V.isNumber(i) && !l && !o) {
                            var u = {
                                pSize: e.marker.size,
                                pointStrokeWidth: e.marker.strokeWidth,
                                pointFillColor: e.marker.fillColor,
                                pointStrokeColor: e.marker.strokeColor,
                                shape: e.marker.shape,
                                pRadius: e.marker.radius,
                                class: "apexcharts-point-annotation-marker ".concat(e.marker.cssClass, " ").concat(e.id ? e.id : "")
                            }, c = this.annoCtx.graphics.drawMarker(i + e.marker.offsetX, s + e.marker.offsetY, u);
                            a.appendChild(c.node);
                            var d = e.label.text ? e.label.text : "", h = this.annoCtx.graphics.drawText({
                                x: i + e.label.offsetX,
                                y: s + e.label.offsetY - e.marker.size - parseFloat(e.label.style.fontSize) / 1.6,
                                text: d,
                                textAnchor: e.label.textAnchor,
                                fontSize: e.label.style.fontSize,
                                fontFamily: e.label.style.fontFamily,
                                fontWeight: e.label.style.fontWeight,
                                foreColor: e.label.style.color,
                                cssClass: "apexcharts-point-annotation-label ".concat(e.label.style.cssClass, " ").concat(e.id ? e.id : "")
                            });
                            if (h.attr({
                                rel: r
                            }), a.appendChild(h.node), e.customSVG.SVG) {
                                var m = this.annoCtx.graphics.group({
                                    class: "apexcharts-point-annotations-custom-svg " + e.customSVG.cssClass
                                });
                                m.attr({
                                    transform: "translate(".concat(i + e.customSVG.offsetX, ", ").concat(s + e.customSVG.offsetY, ")")
                                }), m.node.innerHTML = e.customSVG.SVG, a.appendChild(m.node);
                            }
                            if (e.image.path) {
                                var f = e.image.width ? e.image.width : 20, p = e.image.height ? e.image.height : 20;
                                c = this.annoCtx.addImage({
                                    x: i + e.image.offsetX - f / 2,
                                    y: s + e.image.offsetY - p / 2,
                                    width: f,
                                    height: p,
                                    path: e.image.path,
                                    appendTo: ".apexcharts-point-annotations"
                                });
                            }
                            e.mouseEnter && c.node.addEventListener("mouseenter", e.mouseEnter.bind(this, e)), e.mouseLeave && c.node.addEventListener("mouseleave", e.mouseLeave.bind(this, e)), e.click && c.node.addEventListener("click", e.click.bind(this, e));
                        }
                    }
                }
            },
            {
                key: "drawPointAnnotations",
                value: function() {
                    var e = this, a = this.w, r = this.annoCtx.graphics.group({
                        class: "apexcharts-point-annotations"
                    });
                    return a.config.annotations.points.map(function(n, i) {
                        e.addPointAnnotation(n, r.node, i);
                    }), r;
                }
            }
        ]), t;
    }(), W1 = {
        name: "en",
        options: {
            months: [
                "January",
                "February",
                "March",
                "April",
                "May",
                "June",
                "July",
                "August",
                "September",
                "October",
                "November",
                "December"
            ],
            shortMonths: [
                "Jan",
                "Feb",
                "Mar",
                "Apr",
                "May",
                "Jun",
                "Jul",
                "Aug",
                "Sep",
                "Oct",
                "Nov",
                "Dec"
            ],
            days: [
                "Sunday",
                "Monday",
                "Tuesday",
                "Wednesday",
                "Thursday",
                "Friday",
                "Saturday"
            ],
            shortDays: [
                "Sun",
                "Mon",
                "Tue",
                "Wed",
                "Thu",
                "Fri",
                "Sat"
            ],
            toolbar: {
                exportToSVG: "Download SVG",
                exportToPNG: "Download PNG",
                exportToCSV: "Download CSV",
                menu: "Menu",
                selection: "Selection",
                selectionZoom: "Selection Zoom",
                zoomIn: "Zoom In",
                zoomOut: "Zoom Out",
                pan: "Panning",
                reset: "Reset Zoom"
            }
        }
    }, pn = function() {
        function t() {
            Ae(this, t), this.yAxis = {
                show: !0,
                showAlways: !1,
                showForNullSeries: !0,
                seriesName: void 0,
                opposite: !1,
                reversed: !1,
                logarithmic: !1,
                logBase: 10,
                tickAmount: void 0,
                stepSize: void 0,
                forceNiceScale: !1,
                max: void 0,
                min: void 0,
                floating: !1,
                decimalsInFloat: void 0,
                labels: {
                    show: !0,
                    showDuplicates: !1,
                    minWidth: 0,
                    maxWidth: 160,
                    offsetX: 0,
                    offsetY: 0,
                    align: void 0,
                    rotate: 0,
                    padding: 20,
                    style: {
                        colors: [],
                        fontSize: "11px",
                        fontWeight: 400,
                        fontFamily: void 0,
                        cssClass: ""
                    },
                    formatter: void 0
                },
                axisBorder: {
                    show: !1,
                    color: "#e0e0e0",
                    width: 1,
                    offsetX: 0,
                    offsetY: 0
                },
                axisTicks: {
                    show: !1,
                    color: "#e0e0e0",
                    width: 6,
                    offsetX: 0,
                    offsetY: 0
                },
                title: {
                    text: void 0,
                    rotate: -90,
                    offsetY: 0,
                    offsetX: 0,
                    style: {
                        color: void 0,
                        fontSize: "11px",
                        fontWeight: 900,
                        fontFamily: void 0,
                        cssClass: ""
                    }
                },
                tooltip: {
                    enabled: !1,
                    offsetX: 0
                },
                crosshairs: {
                    show: !0,
                    position: "front",
                    stroke: {
                        color: "#b6b6b6",
                        width: 1,
                        dashArray: 0
                    }
                }
            }, this.pointAnnotation = {
                id: void 0,
                x: 0,
                y: null,
                yAxisIndex: 0,
                seriesIndex: void 0,
                mouseEnter: void 0,
                mouseLeave: void 0,
                click: void 0,
                marker: {
                    size: 4,
                    fillColor: "#fff",
                    strokeWidth: 2,
                    strokeColor: "#333",
                    shape: "circle",
                    offsetX: 0,
                    offsetY: 0,
                    cssClass: ""
                },
                label: {
                    borderColor: "#c2c2c2",
                    borderWidth: 1,
                    borderRadius: 2,
                    text: void 0,
                    textAnchor: "middle",
                    offsetX: 0,
                    offsetY: 0,
                    mouseEnter: void 0,
                    mouseLeave: void 0,
                    click: void 0,
                    style: {
                        background: "#fff",
                        color: void 0,
                        fontSize: "11px",
                        fontFamily: void 0,
                        fontWeight: 400,
                        cssClass: "",
                        padding: {
                            left: 5,
                            right: 5,
                            top: 2,
                            bottom: 2
                        }
                    }
                },
                customSVG: {
                    SVG: void 0,
                    cssClass: void 0,
                    offsetX: 0,
                    offsetY: 0
                },
                image: {
                    path: void 0,
                    width: 20,
                    height: 20,
                    offsetX: 0,
                    offsetY: 0
                }
            }, this.yAxisAnnotation = {
                id: void 0,
                y: 0,
                y2: null,
                strokeDashArray: 1,
                fillColor: "#c2c2c2",
                borderColor: "#c2c2c2",
                borderWidth: 1,
                opacity: .3,
                offsetX: 0,
                offsetY: 0,
                width: "100%",
                yAxisIndex: 0,
                label: {
                    borderColor: "#c2c2c2",
                    borderWidth: 1,
                    borderRadius: 2,
                    text: void 0,
                    textAnchor: "end",
                    position: "right",
                    offsetX: 0,
                    offsetY: -3,
                    mouseEnter: void 0,
                    mouseLeave: void 0,
                    click: void 0,
                    style: {
                        background: "#fff",
                        color: void 0,
                        fontSize: "11px",
                        fontFamily: void 0,
                        fontWeight: 400,
                        cssClass: "",
                        padding: {
                            left: 5,
                            right: 5,
                            top: 2,
                            bottom: 2
                        }
                    }
                }
            }, this.xAxisAnnotation = {
                id: void 0,
                x: 0,
                x2: null,
                strokeDashArray: 1,
                fillColor: "#c2c2c2",
                borderColor: "#c2c2c2",
                borderWidth: 1,
                opacity: .3,
                offsetX: 0,
                offsetY: 0,
                label: {
                    borderColor: "#c2c2c2",
                    borderWidth: 1,
                    borderRadius: 2,
                    text: void 0,
                    textAnchor: "middle",
                    orientation: "vertical",
                    position: "top",
                    offsetX: 0,
                    offsetY: 0,
                    mouseEnter: void 0,
                    mouseLeave: void 0,
                    click: void 0,
                    style: {
                        background: "#fff",
                        color: void 0,
                        fontSize: "11px",
                        fontFamily: void 0,
                        fontWeight: 400,
                        cssClass: "",
                        padding: {
                            left: 5,
                            right: 5,
                            top: 2,
                            bottom: 2
                        }
                    }
                }
            }, this.text = {
                x: 0,
                y: 0,
                text: "",
                textAnchor: "start",
                foreColor: void 0,
                fontSize: "13px",
                fontFamily: void 0,
                fontWeight: 400,
                appendTo: ".apexcharts-annotations",
                backgroundColor: "transparent",
                borderColor: "#c2c2c2",
                borderRadius: 0,
                borderWidth: 0,
                paddingLeft: 4,
                paddingRight: 4,
                paddingTop: 2,
                paddingBottom: 2
            };
        }
        return De(t, [
            {
                key: "init",
                value: function() {
                    return {
                        annotations: {
                            yaxis: [
                                this.yAxisAnnotation
                            ],
                            xaxis: [
                                this.xAxisAnnotation
                            ],
                            points: [
                                this.pointAnnotation
                            ],
                            texts: [],
                            images: [],
                            shapes: []
                        },
                        chart: {
                            animations: {
                                enabled: !0,
                                speed: 800,
                                animateGradually: {
                                    delay: 150,
                                    enabled: !0
                                },
                                dynamicAnimation: {
                                    enabled: !0,
                                    speed: 350
                                }
                            },
                            background: "",
                            locales: [
                                W1
                            ],
                            defaultLocale: "en",
                            dropShadow: {
                                enabled: !1,
                                enabledOnSeries: void 0,
                                top: 2,
                                left: 2,
                                blur: 4,
                                color: "#000",
                                opacity: .7
                            },
                            events: {
                                animationEnd: void 0,
                                beforeMount: void 0,
                                mounted: void 0,
                                updated: void 0,
                                click: void 0,
                                mouseMove: void 0,
                                mouseLeave: void 0,
                                xAxisLabelClick: void 0,
                                legendClick: void 0,
                                markerClick: void 0,
                                selection: void 0,
                                dataPointSelection: void 0,
                                dataPointMouseEnter: void 0,
                                dataPointMouseLeave: void 0,
                                beforeZoom: void 0,
                                beforeResetZoom: void 0,
                                zoomed: void 0,
                                scrolled: void 0,
                                brushScrolled: void 0
                            },
                            foreColor: "#373d3f",
                            fontFamily: "Helvetica, Arial, sans-serif",
                            height: "auto",
                            parentHeightOffset: 15,
                            redrawOnParentResize: !0,
                            redrawOnWindowResize: !0,
                            id: void 0,
                            group: void 0,
                            nonce: void 0,
                            offsetX: 0,
                            offsetY: 0,
                            selection: {
                                enabled: !1,
                                type: "x",
                                fill: {
                                    color: "#24292e",
                                    opacity: .1
                                },
                                stroke: {
                                    width: 1,
                                    color: "#24292e",
                                    opacity: .4,
                                    dashArray: 3
                                },
                                xaxis: {
                                    min: void 0,
                                    max: void 0
                                },
                                yaxis: {
                                    min: void 0,
                                    max: void 0
                                }
                            },
                            sparkline: {
                                enabled: !1
                            },
                            brush: {
                                enabled: !1,
                                autoScaleYaxis: !0,
                                target: void 0,
                                targets: void 0
                            },
                            stacked: !1,
                            stackOnlyBar: !0,
                            stackType: "normal",
                            toolbar: {
                                show: !0,
                                offsetX: 0,
                                offsetY: 0,
                                tools: {
                                    download: !0,
                                    selection: !0,
                                    zoom: !0,
                                    zoomin: !0,
                                    zoomout: !0,
                                    pan: !0,
                                    reset: !0,
                                    customIcons: []
                                },
                                export: {
                                    csv: {
                                        filename: void 0,
                                        columnDelimiter: ",",
                                        headerCategory: "category",
                                        headerValue: "value",
                                        categoryFormatter: void 0,
                                        valueFormatter: void 0
                                    },
                                    png: {
                                        filename: void 0
                                    },
                                    svg: {
                                        filename: void 0
                                    },
                                    scale: void 0,
                                    width: void 0
                                },
                                autoSelected: "zoom"
                            },
                            type: "line",
                            width: "100%",
                            zoom: {
                                enabled: !0,
                                type: "x",
                                autoScaleYaxis: !1,
                                allowMouseWheelZoom: !0,
                                zoomedArea: {
                                    fill: {
                                        color: "#90CAF9",
                                        opacity: .4
                                    },
                                    stroke: {
                                        color: "#0D47A1",
                                        opacity: .4,
                                        width: 1
                                    }
                                }
                            }
                        },
                        plotOptions: {
                            line: {
                                isSlopeChart: !1,
                                colors: {
                                    threshold: 0,
                                    colorAboveThreshold: void 0,
                                    colorBelowThreshold: void 0
                                }
                            },
                            area: {
                                fillTo: "origin"
                            },
                            bar: {
                                horizontal: !1,
                                columnWidth: "70%",
                                barHeight: "70%",
                                distributed: !1,
                                borderRadius: 0,
                                borderRadiusApplication: "around",
                                borderRadiusWhenStacked: "last",
                                rangeBarOverlap: !0,
                                rangeBarGroupRows: !1,
                                hideZeroBarsWhenGrouped: !1,
                                isDumbbell: !1,
                                dumbbellColors: void 0,
                                isFunnel: !1,
                                isFunnel3d: !0,
                                colors: {
                                    ranges: [],
                                    backgroundBarColors: [],
                                    backgroundBarOpacity: 1,
                                    backgroundBarRadius: 0
                                },
                                dataLabels: {
                                    position: "top",
                                    maxItems: 100,
                                    hideOverflowingLabels: !0,
                                    orientation: "horizontal",
                                    total: {
                                        enabled: !1,
                                        formatter: void 0,
                                        offsetX: 0,
                                        offsetY: 0,
                                        style: {
                                            color: "#373d3f",
                                            fontSize: "12px",
                                            fontFamily: void 0,
                                            fontWeight: 600
                                        }
                                    }
                                }
                            },
                            bubble: {
                                zScaling: !0,
                                minBubbleRadius: void 0,
                                maxBubbleRadius: void 0
                            },
                            candlestick: {
                                colors: {
                                    upward: "#00B746",
                                    downward: "#EF403C"
                                },
                                wick: {
                                    useFillColor: !0
                                }
                            },
                            boxPlot: {
                                colors: {
                                    upper: "#00E396",
                                    lower: "#008FFB"
                                }
                            },
                            heatmap: {
                                radius: 2,
                                enableShades: !0,
                                shadeIntensity: .5,
                                reverseNegativeShade: !1,
                                distributed: !1,
                                useFillColorAsStroke: !1,
                                colorScale: {
                                    inverse: !1,
                                    ranges: [],
                                    min: void 0,
                                    max: void 0
                                }
                            },
                            treemap: {
                                enableShades: !0,
                                shadeIntensity: .5,
                                distributed: !1,
                                reverseNegativeShade: !1,
                                useFillColorAsStroke: !1,
                                borderRadius: 4,
                                dataLabels: {
                                    format: "scale"
                                },
                                colorScale: {
                                    inverse: !1,
                                    ranges: [],
                                    min: void 0,
                                    max: void 0
                                },
                                seriesTitle: {
                                    show: !0,
                                    offsetY: 1,
                                    offsetX: 1,
                                    borderColor: "#000",
                                    borderWidth: 1,
                                    borderRadius: 2,
                                    style: {
                                        background: "rgba(0, 0, 0, 0.6)",
                                        color: "#fff",
                                        fontSize: "12px",
                                        fontFamily: void 0,
                                        fontWeight: 400,
                                        cssClass: "",
                                        padding: {
                                            left: 6,
                                            right: 6,
                                            top: 2,
                                            bottom: 2
                                        }
                                    }
                                }
                            },
                            radialBar: {
                                inverseOrder: !1,
                                startAngle: 0,
                                endAngle: 360,
                                offsetX: 0,
                                offsetY: 0,
                                hollow: {
                                    margin: 5,
                                    size: "50%",
                                    background: "transparent",
                                    image: void 0,
                                    imageWidth: 150,
                                    imageHeight: 150,
                                    imageOffsetX: 0,
                                    imageOffsetY: 0,
                                    imageClipped: !0,
                                    position: "front",
                                    dropShadow: {
                                        enabled: !1,
                                        top: 0,
                                        left: 0,
                                        blur: 3,
                                        color: "#000",
                                        opacity: .5
                                    }
                                },
                                track: {
                                    show: !0,
                                    startAngle: void 0,
                                    endAngle: void 0,
                                    background: "#f2f2f2",
                                    strokeWidth: "97%",
                                    opacity: 1,
                                    margin: 5,
                                    dropShadow: {
                                        enabled: !1,
                                        top: 0,
                                        left: 0,
                                        blur: 3,
                                        color: "#000",
                                        opacity: .5
                                    }
                                },
                                dataLabels: {
                                    show: !0,
                                    name: {
                                        show: !0,
                                        fontSize: "16px",
                                        fontFamily: void 0,
                                        fontWeight: 600,
                                        color: void 0,
                                        offsetY: 0,
                                        formatter: function(e) {
                                            return e;
                                        }
                                    },
                                    value: {
                                        show: !0,
                                        fontSize: "14px",
                                        fontFamily: void 0,
                                        fontWeight: 400,
                                        color: void 0,
                                        offsetY: 16,
                                        formatter: function(e) {
                                            return e + "%";
                                        }
                                    },
                                    total: {
                                        show: !1,
                                        label: "Total",
                                        fontSize: "16px",
                                        fontWeight: 600,
                                        fontFamily: void 0,
                                        color: void 0,
                                        formatter: function(e) {
                                            return e.globals.seriesTotals.reduce(function(a, r) {
                                                return a + r;
                                            }, 0) / e.globals.series.length + "%";
                                        }
                                    }
                                },
                                barLabels: {
                                    enabled: !1,
                                    offsetX: 0,
                                    offsetY: 0,
                                    useSeriesColors: !0,
                                    fontFamily: void 0,
                                    fontWeight: 600,
                                    fontSize: "16px",
                                    formatter: function(e) {
                                        return e;
                                    },
                                    onClick: void 0
                                }
                            },
                            pie: {
                                customScale: 1,
                                offsetX: 0,
                                offsetY: 0,
                                startAngle: 0,
                                endAngle: 360,
                                expandOnClick: !0,
                                dataLabels: {
                                    offset: 0,
                                    minAngleToShowLabel: 10
                                },
                                donut: {
                                    size: "65%",
                                    background: "transparent",
                                    labels: {
                                        show: !1,
                                        name: {
                                            show: !0,
                                            fontSize: "16px",
                                            fontFamily: void 0,
                                            fontWeight: 600,
                                            color: void 0,
                                            offsetY: -10,
                                            formatter: function(e) {
                                                return e;
                                            }
                                        },
                                        value: {
                                            show: !0,
                                            fontSize: "20px",
                                            fontFamily: void 0,
                                            fontWeight: 400,
                                            color: void 0,
                                            offsetY: 10,
                                            formatter: function(e) {
                                                return e;
                                            }
                                        },
                                        total: {
                                            show: !1,
                                            showAlways: !1,
                                            label: "Total",
                                            fontSize: "16px",
                                            fontWeight: 400,
                                            fontFamily: void 0,
                                            color: void 0,
                                            formatter: function(e) {
                                                return e.globals.seriesTotals.reduce(function(a, r) {
                                                    return a + r;
                                                }, 0);
                                            }
                                        }
                                    }
                                }
                            },
                            polarArea: {
                                rings: {
                                    strokeWidth: 1,
                                    strokeColor: "#e8e8e8"
                                },
                                spokes: {
                                    strokeWidth: 1,
                                    connectorColors: "#e8e8e8"
                                }
                            },
                            radar: {
                                size: void 0,
                                offsetX: 0,
                                offsetY: 0,
                                polygons: {
                                    strokeWidth: 1,
                                    strokeColors: "#e8e8e8",
                                    connectorColors: "#e8e8e8",
                                    fill: {
                                        colors: void 0
                                    }
                                }
                            }
                        },
                        colors: void 0,
                        dataLabels: {
                            enabled: !0,
                            enabledOnSeries: void 0,
                            formatter: function(e) {
                                return e !== null ? e : "";
                            },
                            textAnchor: "middle",
                            distributed: !1,
                            offsetX: 0,
                            offsetY: 0,
                            style: {
                                fontSize: "12px",
                                fontFamily: void 0,
                                fontWeight: 600,
                                colors: void 0
                            },
                            background: {
                                enabled: !0,
                                foreColor: "#fff",
                                backgroundColor: void 0,
                                borderRadius: 2,
                                padding: 4,
                                opacity: .9,
                                borderWidth: 1,
                                borderColor: "#fff",
                                dropShadow: {
                                    enabled: !1,
                                    top: 1,
                                    left: 1,
                                    blur: 1,
                                    color: "#000",
                                    opacity: .8
                                }
                            },
                            dropShadow: {
                                enabled: !1,
                                top: 1,
                                left: 1,
                                blur: 1,
                                color: "#000",
                                opacity: .8
                            }
                        },
                        fill: {
                            type: "solid",
                            colors: void 0,
                            opacity: .85,
                            gradient: {
                                shade: "dark",
                                type: "horizontal",
                                shadeIntensity: .5,
                                gradientToColors: void 0,
                                inverseColors: !0,
                                opacityFrom: 1,
                                opacityTo: 1,
                                stops: [
                                    0,
                                    50,
                                    100
                                ],
                                colorStops: []
                            },
                            image: {
                                src: [],
                                width: void 0,
                                height: void 0
                            },
                            pattern: {
                                style: "squares",
                                width: 6,
                                height: 6,
                                strokeWidth: 2
                            }
                        },
                        forecastDataPoints: {
                            count: 0,
                            fillOpacity: .5,
                            strokeWidth: void 0,
                            dashArray: 4
                        },
                        grid: {
                            show: !0,
                            borderColor: "#e0e0e0",
                            strokeDashArray: 0,
                            position: "back",
                            xaxis: {
                                lines: {
                                    show: !1
                                }
                            },
                            yaxis: {
                                lines: {
                                    show: !0
                                }
                            },
                            row: {
                                colors: void 0,
                                opacity: .5
                            },
                            column: {
                                colors: void 0,
                                opacity: .5
                            },
                            padding: {
                                top: 0,
                                right: 10,
                                bottom: 0,
                                left: 12
                            }
                        },
                        labels: [],
                        legend: {
                            show: !0,
                            showForSingleSeries: !1,
                            showForNullSeries: !0,
                            showForZeroSeries: !0,
                            floating: !1,
                            position: "bottom",
                            horizontalAlign: "center",
                            inverseOrder: !1,
                            fontSize: "12px",
                            fontFamily: void 0,
                            fontWeight: 400,
                            width: void 0,
                            height: void 0,
                            formatter: void 0,
                            tooltipHoverFormatter: void 0,
                            offsetX: -20,
                            offsetY: 4,
                            customLegendItems: [],
                            clusterGroupedSeries: !0,
                            clusterGroupedSeriesOrientation: "vertical",
                            labels: {
                                colors: void 0,
                                useSeriesColors: !1
                            },
                            markers: {
                                size: 7,
                                fillColors: void 0,
                                strokeWidth: 1,
                                shape: void 0,
                                offsetX: 0,
                                offsetY: 0,
                                customHTML: void 0,
                                onClick: void 0
                            },
                            itemMargin: {
                                horizontal: 5,
                                vertical: 4
                            },
                            onItemClick: {
                                toggleDataSeries: !0
                            },
                            onItemHover: {
                                highlightDataSeries: !0
                            }
                        },
                        markers: {
                            discrete: [],
                            size: 0,
                            colors: void 0,
                            strokeColors: "#fff",
                            strokeWidth: 2,
                            strokeOpacity: .9,
                            strokeDashArray: 0,
                            fillOpacity: 1,
                            shape: "circle",
                            offsetX: 0,
                            offsetY: 0,
                            showNullDataPoints: !0,
                            onClick: void 0,
                            onDblClick: void 0,
                            hover: {
                                size: void 0,
                                sizeOffset: 3
                            }
                        },
                        noData: {
                            text: void 0,
                            align: "center",
                            verticalAlign: "middle",
                            offsetX: 0,
                            offsetY: 0,
                            style: {
                                color: void 0,
                                fontSize: "14px",
                                fontFamily: void 0
                            }
                        },
                        responsive: [],
                        series: void 0,
                        states: {
                            hover: {
                                filter: {
                                    type: "lighten"
                                }
                            },
                            active: {
                                allowMultipleDataPointsSelection: !1,
                                filter: {
                                    type: "darken"
                                }
                            }
                        },
                        title: {
                            text: void 0,
                            align: "left",
                            margin: 5,
                            offsetX: 0,
                            offsetY: 0,
                            floating: !1,
                            style: {
                                fontSize: "14px",
                                fontWeight: 900,
                                fontFamily: void 0,
                                color: void 0
                            }
                        },
                        subtitle: {
                            text: void 0,
                            align: "left",
                            margin: 5,
                            offsetX: 0,
                            offsetY: 30,
                            floating: !1,
                            style: {
                                fontSize: "12px",
                                fontWeight: 400,
                                fontFamily: void 0,
                                color: void 0
                            }
                        },
                        stroke: {
                            show: !0,
                            curve: "smooth",
                            lineCap: "butt",
                            width: 2,
                            colors: void 0,
                            dashArray: 0,
                            fill: {
                                type: "solid",
                                colors: void 0,
                                opacity: .85,
                                gradient: {
                                    shade: "dark",
                                    type: "horizontal",
                                    shadeIntensity: .5,
                                    gradientToColors: void 0,
                                    inverseColors: !0,
                                    opacityFrom: 1,
                                    opacityTo: 1,
                                    stops: [
                                        0,
                                        50,
                                        100
                                    ],
                                    colorStops: []
                                }
                            }
                        },
                        tooltip: {
                            enabled: !0,
                            enabledOnSeries: void 0,
                            shared: !0,
                            hideEmptySeries: !1,
                            followCursor: !1,
                            intersect: !1,
                            inverseOrder: !1,
                            custom: void 0,
                            fillSeriesColor: !1,
                            theme: "light",
                            cssClass: "",
                            style: {
                                fontSize: "12px",
                                fontFamily: void 0
                            },
                            onDatasetHover: {
                                highlightDataSeries: !1
                            },
                            x: {
                                show: !0,
                                format: "dd MMM",
                                formatter: void 0
                            },
                            y: {
                                formatter: void 0,
                                title: {
                                    formatter: function(e) {
                                        return e ? e + ": " : "";
                                    }
                                }
                            },
                            z: {
                                formatter: void 0,
                                title: "Size: "
                            },
                            marker: {
                                show: !0,
                                fillColors: void 0
                            },
                            items: {
                                display: "flex"
                            },
                            fixed: {
                                enabled: !1,
                                position: "topRight",
                                offsetX: 0,
                                offsetY: 0
                            }
                        },
                        xaxis: {
                            type: "category",
                            categories: [],
                            convertedCatToNumeric: !1,
                            offsetX: 0,
                            offsetY: 0,
                            overwriteCategories: void 0,
                            labels: {
                                show: !0,
                                rotate: -45,
                                rotateAlways: !1,
                                hideOverlappingLabels: !0,
                                trim: !1,
                                minHeight: void 0,
                                maxHeight: 120,
                                showDuplicates: !0,
                                style: {
                                    colors: [],
                                    fontSize: "12px",
                                    fontWeight: 400,
                                    fontFamily: void 0,
                                    cssClass: ""
                                },
                                offsetX: 0,
                                offsetY: 0,
                                format: void 0,
                                formatter: void 0,
                                datetimeUTC: !0,
                                datetimeFormatter: {
                                    year: "yyyy",
                                    month: "MMM 'yy",
                                    day: "dd MMM",
                                    hour: "HH:mm",
                                    minute: "HH:mm:ss",
                                    second: "HH:mm:ss"
                                }
                            },
                            group: {
                                groups: [],
                                style: {
                                    colors: [],
                                    fontSize: "12px",
                                    fontWeight: 400,
                                    fontFamily: void 0,
                                    cssClass: ""
                                }
                            },
                            axisBorder: {
                                show: !0,
                                color: "#e0e0e0",
                                width: "100%",
                                height: 1,
                                offsetX: 0,
                                offsetY: 0
                            },
                            axisTicks: {
                                show: !0,
                                color: "#e0e0e0",
                                height: 6,
                                offsetX: 0,
                                offsetY: 0
                            },
                            stepSize: void 0,
                            tickAmount: void 0,
                            tickPlacement: "on",
                            min: void 0,
                            max: void 0,
                            range: void 0,
                            floating: !1,
                            decimalsInFloat: void 0,
                            position: "bottom",
                            title: {
                                text: void 0,
                                offsetX: 0,
                                offsetY: 0,
                                style: {
                                    color: void 0,
                                    fontSize: "12px",
                                    fontWeight: 900,
                                    fontFamily: void 0,
                                    cssClass: ""
                                }
                            },
                            crosshairs: {
                                show: !0,
                                width: 1,
                                position: "back",
                                opacity: .9,
                                stroke: {
                                    color: "#b6b6b6",
                                    width: 1,
                                    dashArray: 3
                                },
                                fill: {
                                    type: "solid",
                                    color: "#B1B9C4",
                                    gradient: {
                                        colorFrom: "#D8E3F0",
                                        colorTo: "#BED1E6",
                                        stops: [
                                            0,
                                            100
                                        ],
                                        opacityFrom: .4,
                                        opacityTo: .5
                                    }
                                },
                                dropShadow: {
                                    enabled: !1,
                                    left: 0,
                                    top: 0,
                                    blur: 1,
                                    opacity: .8
                                }
                            },
                            tooltip: {
                                enabled: !0,
                                offsetY: 0,
                                formatter: void 0,
                                style: {
                                    fontSize: "12px",
                                    fontFamily: void 0
                                }
                            }
                        },
                        yaxis: this.yAxis,
                        theme: {
                            mode: "",
                            palette: "palette1",
                            monochrome: {
                                enabled: !1,
                                color: "#008FFB",
                                shadeTo: "light",
                                shadeIntensity: .65
                            }
                        }
                    };
                }
            }
        ]), t;
    }(), tI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.graphics = new he(this.ctx), this.w.globals.isBarHorizontal && (this.invertAxis = !0), this.helpers = new Hl(this), this.xAxisAnnotations = new ZL(this), this.yAxisAnnotations = new QL(this), this.pointsAnnotations = new eI(this), this.w.globals.isBarHorizontal && this.w.config.yaxis[0].reversed && (this.inversedReversedAxis = !0), this.xDivision = this.w.globals.gridWidth / this.w.globals.dataPoints;
        }
        return De(t, [
            {
                key: "drawAxesAnnotations",
                value: function() {
                    var e = this.w;
                    if (e.globals.axisCharts && e.globals.dataPoints) {
                        for(var a = this.yAxisAnnotations.drawYAxisAnnotations(), r = this.xAxisAnnotations.drawXAxisAnnotations(), n = this.pointsAnnotations.drawPointAnnotations(), i = e.config.chart.animations.enabled, o = [
                            a,
                            r,
                            n
                        ], s = [
                            r.node,
                            a.node,
                            n.node
                        ], l = 0; l < 3; l++)e.globals.dom.elGraphical.add(o[l]), !i || e.globals.resized || e.globals.dataChanged || e.config.chart.type !== "scatter" && e.config.chart.type !== "bubble" && e.globals.dataPoints > 1 && s[l].classList.add("apexcharts-element-hidden"), e.globals.delayedElements.push({
                            el: s[l],
                            index: 0
                        });
                        this.helpers.annotationsBackground();
                    }
                }
            },
            {
                key: "drawImageAnnos",
                value: function() {
                    var e = this;
                    this.w.config.annotations.images.map(function(a, r) {
                        e.addImage(a, r);
                    });
                }
            },
            {
                key: "drawTextAnnos",
                value: function() {
                    var e = this;
                    this.w.config.annotations.texts.map(function(a, r) {
                        e.addText(a, r);
                    });
                }
            },
            {
                key: "addXaxisAnnotation",
                value: function(e, a, r) {
                    this.xAxisAnnotations.addXaxisAnnotation(e, a, r);
                }
            },
            {
                key: "addYaxisAnnotation",
                value: function(e, a, r) {
                    this.yAxisAnnotations.addYaxisAnnotation(e, a, r);
                }
            },
            {
                key: "addPointAnnotation",
                value: function(e, a, r) {
                    this.pointsAnnotations.addPointAnnotation(e, a, r);
                }
            },
            {
                key: "addText",
                value: function(e, a) {
                    var r = e.x, n = e.y, i = e.text, o = e.textAnchor, s = e.foreColor, l = e.fontSize, u = e.fontFamily, c = e.fontWeight, d = e.cssClass, h = e.backgroundColor, m = e.borderWidth, f = e.strokeDashArray, p = e.borderRadius, g = e.borderColor, v = e.appendTo, b = v === void 0 ? ".apexcharts-svg" : v, k = e.paddingLeft, S = k === void 0 ? 4 : k, x = e.paddingRight, C = x === void 0 ? 4 : x, w = e.paddingBottom, F = w === void 0 ? 2 : w, D = e.paddingTop, _ = D === void 0 ? 2 : D, A = this.w, E = this.graphics.drawText({
                        x: r,
                        y: n,
                        text: i,
                        textAnchor: o || "start",
                        fontSize: l || "12px",
                        fontWeight: c || "regular",
                        fontFamily: u || A.config.chart.fontFamily,
                        foreColor: s || A.config.chart.foreColor,
                        cssClass: d
                    }), B = A.globals.dom.baseEl.querySelector(b);
                    B && B.appendChild(E.node);
                    var P = E.bbox();
                    if (i) {
                        var M = this.graphics.drawRect(P.x - S, P.y - _, P.width + S + C, P.height + F + _, p, h || "transparent", 1, m, g, f);
                        B.insertBefore(M.node, E.node);
                    }
                }
            },
            {
                key: "addImage",
                value: function(e, a) {
                    var r = this.w, n = e.path, i = e.x, o = i === void 0 ? 0 : i, s = e.y, l = s === void 0 ? 0 : s, u = e.width, c = u === void 0 ? 20 : u, d = e.height, h = d === void 0 ? 20 : d, m = e.appendTo, f = m === void 0 ? ".apexcharts-svg" : m, p = r.globals.dom.Paper.image(n);
                    p.size(c, h).move(o, l);
                    var g = r.globals.dom.baseEl.querySelector(f);
                    return g && g.appendChild(p.node), p;
                }
            },
            {
                key: "addXaxisAnnotationExternal",
                value: function(e, a, r) {
                    return this.addAnnotationExternal({
                        params: e,
                        pushToMemory: a,
                        context: r,
                        type: "xaxis",
                        contextMethod: r.addXaxisAnnotation
                    }), r;
                }
            },
            {
                key: "addYaxisAnnotationExternal",
                value: function(e, a, r) {
                    return this.addAnnotationExternal({
                        params: e,
                        pushToMemory: a,
                        context: r,
                        type: "yaxis",
                        contextMethod: r.addYaxisAnnotation
                    }), r;
                }
            },
            {
                key: "addPointAnnotationExternal",
                value: function(e, a, r) {
                    return this.invertAxis === void 0 && (this.invertAxis = r.w.globals.isBarHorizontal), this.addAnnotationExternal({
                        params: e,
                        pushToMemory: a,
                        context: r,
                        type: "point",
                        contextMethod: r.addPointAnnotation
                    }), r;
                }
            },
            {
                key: "addAnnotationExternal",
                value: function(e) {
                    var a = e.params, r = e.pushToMemory, n = e.context, i = e.type, o = e.contextMethod, s = n, l = s.w, u = l.globals.dom.baseEl.querySelector(".apexcharts-".concat(i, "-annotations")), c = u.childNodes.length + 1, d = new pn, h = Object.assign({}, i === "xaxis" ? d.xAxisAnnotation : i === "yaxis" ? d.yAxisAnnotation : d.pointAnnotation), m = V.extend(h, a);
                    switch(i){
                        case "xaxis":
                            this.addXaxisAnnotation(m, u, c);
                            break;
                        case "yaxis":
                            this.addYaxisAnnotation(m, u, c);
                            break;
                        case "point":
                            this.addPointAnnotation(m, u, c);
                    }
                    var f = l.globals.dom.baseEl.querySelector(".apexcharts-".concat(i, "-annotations .apexcharts-").concat(i, "-annotation-label[rel='").concat(c, "']")), p = this.helpers.addBackgroundToAnno(f, m);
                    return p && u.insertBefore(p.node, f), r && l.globals.memory.methodsToExec.push({
                        context: s,
                        id: m.id ? m.id : V.randomId(),
                        method: o,
                        label: "addAnnotation",
                        params: a
                    }), n;
                }
            },
            {
                key: "clearAnnotations",
                value: function(e) {
                    for(var a = e.w, r = a.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations"), n = a.globals.memory.methodsToExec.length - 1; n >= 0; n--)a.globals.memory.methodsToExec[n].label !== "addText" && a.globals.memory.methodsToExec[n].label !== "addAnnotation" || a.globals.memory.methodsToExec.splice(n, 1);
                    r = V.listToArray(r), Array.prototype.forEach.call(r, function(i) {
                        for(; i.firstChild;)i.removeChild(i.firstChild);
                    });
                }
            },
            {
                key: "removeAnnotation",
                value: function(e, a) {
                    var r = e.w, n = r.globals.dom.baseEl.querySelectorAll(".".concat(a));
                    n && (r.globals.memory.methodsToExec.map(function(i, o) {
                        i.id === a && r.globals.memory.methodsToExec.splice(o, 1);
                    }), Object.keys(r.config.annotations).forEach(function(i) {
                        var o = r.config.annotations[i];
                        Array.isArray(o) && (r.config.annotations[i] = o.filter(function(s) {
                            return s.id !== a;
                        }));
                    }), Array.prototype.forEach.call(n, function(i) {
                        i.parentElement.removeChild(i);
                    }));
                }
            }
        ]), t;
    }(), Od = function(t) {
        var e, a = t.isTimeline, r = t.ctx, n = t.seriesIndex, i = t.dataPointIndex, o = t.y1, s = t.y2, l = t.w, u = l.globals.seriesRangeStart[n][i], c = l.globals.seriesRangeEnd[n][i], d = l.globals.labels[i], h = l.config.series[n].name ? l.config.series[n].name : "", m = l.globals.ttKeyFormatter, f = l.config.tooltip.y.title.formatter, p = {
            w: l,
            seriesIndex: n,
            dataPointIndex: i,
            start: u,
            end: c
        };
        typeof f == "function" && (h = f(h, p)), (e = l.config.series[n].data[i]) !== null && e !== void 0 && e.x && (d = l.config.series[n].data[i].x), a || l.config.xaxis.type === "datetime" && (d = new as(r).xLabelFormat(l.globals.ttKeyFormatter, d, d, {
            i: void 0,
            dateFormatter: new ua(r).formatDate,
            w: l
        })), typeof m == "function" && (d = m(d, p)), Number.isFinite(o) && Number.isFinite(s) && (u = o, c = s);
        var g = "", v = "", b = l.globals.colors[n];
        if (l.config.tooltip.x.formatter === void 0) if (l.config.xaxis.type === "datetime") {
            var k = new ua(r);
            g = k.formatDate(k.getDate(u), l.config.tooltip.x.format), v = k.formatDate(k.getDate(c), l.config.tooltip.x.format);
        } else g = u, v = c;
        else g = l.config.tooltip.x.formatter(u), v = l.config.tooltip.x.formatter(c);
        return {
            start: u,
            end: c,
            startVal: g,
            endVal: v,
            ylabel: d,
            color: b,
            seriesName: h
        };
    }, Hd = function(t) {
        var e = t.color, a = t.seriesName, r = t.ylabel, n = t.start, i = t.end, o = t.seriesIndex, s = t.dataPointIndex, l = t.ctx.tooltip.tooltipLabels.getFormatters(o);
        n = l.yLbFormatter(n), i = l.yLbFormatter(i);
        var u = l.yLbFormatter(t.w.globals.series[o][s]), c = `<span class="value start-value">
  `.concat(n, `
  </span> <span class="separator">-</span> <span class="value end-value">
  `).concat(i, `
  </span>`);
        return '<div class="apexcharts-tooltip-rangebar"><div> <span class="series-name" style="color: ' + e + '">' + (a || "") + '</span></div><div> <span class="category">' + r + ": </span> " + (t.w.globals.comboCharts ? t.w.config.series[o].type === "rangeArea" || t.w.config.series[o].type === "rangeBar" ? c : "<span>".concat(u, "</span>") : c) + " </div></div>";
    }, Co = function() {
        function t(e) {
            Ae(this, t), this.opts = e;
        }
        return De(t, [
            {
                key: "hideYAxis",
                value: function() {
                    this.opts.yaxis[0].show = !1, this.opts.yaxis[0].title.text = "", this.opts.yaxis[0].axisBorder.show = !1, this.opts.yaxis[0].axisTicks.show = !1, this.opts.yaxis[0].floating = !0;
                }
            },
            {
                key: "line",
                value: function() {
                    return {
                        dataLabels: {
                            enabled: !1
                        },
                        stroke: {
                            width: 5,
                            curve: "straight"
                        },
                        markers: {
                            size: 0,
                            hover: {
                                sizeOffset: 6
                            }
                        },
                        xaxis: {
                            crosshairs: {
                                width: 1
                            }
                        }
                    };
                }
            },
            {
                key: "sparkline",
                value: function(e) {
                    return this.hideYAxis(), V.extend(e, {
                        grid: {
                            show: !1,
                            padding: {
                                left: 0,
                                right: 0,
                                top: 0,
                                bottom: 0
                            }
                        },
                        legend: {
                            show: !1
                        },
                        xaxis: {
                            labels: {
                                show: !1
                            },
                            tooltip: {
                                enabled: !1
                            },
                            axisBorder: {
                                show: !1
                            },
                            axisTicks: {
                                show: !1
                            }
                        },
                        chart: {
                            toolbar: {
                                show: !1
                            },
                            zoom: {
                                enabled: !1
                            }
                        },
                        dataLabels: {
                            enabled: !1
                        }
                    });
                }
            },
            {
                key: "slope",
                value: function() {
                    return this.hideYAxis(), {
                        chart: {
                            toolbar: {
                                show: !1
                            },
                            zoom: {
                                enabled: !1
                            }
                        },
                        dataLabels: {
                            enabled: !0,
                            formatter: function(e, a) {
                                var r = a.w.config.series[a.seriesIndex].name;
                                return e !== null ? r + ": " + e : "";
                            },
                            background: {
                                enabled: !1
                            },
                            offsetX: -5
                        },
                        grid: {
                            xaxis: {
                                lines: {
                                    show: !0
                                }
                            },
                            yaxis: {
                                lines: {
                                    show: !1
                                }
                            }
                        },
                        xaxis: {
                            position: "top",
                            labels: {
                                style: {
                                    fontSize: 14,
                                    fontWeight: 900
                                }
                            },
                            tooltip: {
                                enabled: !1
                            },
                            crosshairs: {
                                show: !1
                            }
                        },
                        markers: {
                            size: 8,
                            hover: {
                                sizeOffset: 1
                            }
                        },
                        legend: {
                            show: !1
                        },
                        tooltip: {
                            shared: !1,
                            intersect: !0,
                            followCursor: !0
                        },
                        stroke: {
                            width: 5,
                            curve: "straight"
                        }
                    };
                }
            },
            {
                key: "bar",
                value: function() {
                    return {
                        chart: {
                            stacked: !1
                        },
                        plotOptions: {
                            bar: {
                                dataLabels: {
                                    position: "center"
                                }
                            }
                        },
                        dataLabels: {
                            style: {
                                colors: [
                                    "#fff"
                                ]
                            },
                            background: {
                                enabled: !1
                            }
                        },
                        stroke: {
                            width: 0,
                            lineCap: "square"
                        },
                        fill: {
                            opacity: .85
                        },
                        legend: {
                            markers: {
                                shape: "square"
                            }
                        },
                        tooltip: {
                            shared: !1,
                            intersect: !0
                        },
                        xaxis: {
                            tooltip: {
                                enabled: !1
                            },
                            tickPlacement: "between",
                            crosshairs: {
                                width: "barWidth",
                                position: "back",
                                fill: {
                                    type: "gradient"
                                },
                                dropShadow: {
                                    enabled: !1
                                },
                                stroke: {
                                    width: 0
                                }
                            }
                        }
                    };
                }
            },
            {
                key: "funnel",
                value: function() {
                    return this.hideYAxis(), ye(ye({}, this.bar()), {}, {
                        chart: {
                            animations: {
                                speed: 800,
                                animateGradually: {
                                    enabled: !1
                                }
                            }
                        },
                        plotOptions: {
                            bar: {
                                horizontal: !0,
                                borderRadiusApplication: "around",
                                borderRadius: 0,
                                dataLabels: {
                                    position: "center"
                                }
                            }
                        },
                        grid: {
                            show: !1,
                            padding: {
                                left: 0,
                                right: 0
                            }
                        },
                        xaxis: {
                            labels: {
                                show: !1
                            },
                            tooltip: {
                                enabled: !1
                            },
                            axisBorder: {
                                show: !1
                            },
                            axisTicks: {
                                show: !1
                            }
                        }
                    });
                }
            },
            {
                key: "candlestick",
                value: function() {
                    var e = this;
                    return {
                        stroke: {
                            width: 1
                        },
                        fill: {
                            opacity: 1
                        },
                        dataLabels: {
                            enabled: !1
                        },
                        tooltip: {
                            shared: !0,
                            custom: function(a) {
                                var r = a.seriesIndex, n = a.dataPointIndex, i = a.w;
                                return e._getBoxTooltip(i, r, n, [
                                    "Open",
                                    "High",
                                    "",
                                    "Low",
                                    "Close"
                                ], "candlestick");
                            }
                        },
                        states: {
                            active: {
                                filter: {
                                    type: "none"
                                }
                            }
                        },
                        xaxis: {
                            crosshairs: {
                                width: 1
                            }
                        }
                    };
                }
            },
            {
                key: "boxPlot",
                value: function() {
                    var e = this;
                    return {
                        chart: {
                            animations: {
                                dynamicAnimation: {
                                    enabled: !1
                                }
                            }
                        },
                        stroke: {
                            width: 1,
                            colors: [
                                "#24292e"
                            ]
                        },
                        dataLabels: {
                            enabled: !1
                        },
                        tooltip: {
                            shared: !0,
                            custom: function(a) {
                                var r = a.seriesIndex, n = a.dataPointIndex, i = a.w;
                                return e._getBoxTooltip(i, r, n, [
                                    "Minimum",
                                    "Q1",
                                    "Median",
                                    "Q3",
                                    "Maximum"
                                ], "boxPlot");
                            }
                        },
                        markers: {
                            size: 7,
                            strokeWidth: 1,
                            strokeColors: "#111"
                        },
                        xaxis: {
                            crosshairs: {
                                width: 1
                            }
                        }
                    };
                }
            },
            {
                key: "rangeBar",
                value: function() {
                    return {
                        chart: {
                            animations: {
                                animateGradually: !1
                            }
                        },
                        stroke: {
                            width: 0,
                            lineCap: "square"
                        },
                        plotOptions: {
                            bar: {
                                borderRadius: 0,
                                dataLabels: {
                                    position: "center"
                                }
                            }
                        },
                        dataLabels: {
                            enabled: !1,
                            formatter: function(e, a) {
                                a.ctx;
                                var r = a.seriesIndex, n = a.dataPointIndex, i = a.w, o = function() {
                                    var s = i.globals.seriesRangeStart[r][n];
                                    return i.globals.seriesRangeEnd[r][n] - s;
                                };
                                return i.globals.comboCharts ? i.config.series[r].type === "rangeBar" || i.config.series[r].type === "rangeArea" ? o() : e : o();
                            },
                            background: {
                                enabled: !1
                            },
                            style: {
                                colors: [
                                    "#fff"
                                ]
                            }
                        },
                        markers: {
                            size: 10
                        },
                        tooltip: {
                            shared: !1,
                            followCursor: !0,
                            custom: function(e) {
                                return e.w.config.plotOptions && e.w.config.plotOptions.bar && e.w.config.plotOptions.bar.horizontal ? function(a) {
                                    var r = Od(ye(ye({}, a), {}, {
                                        isTimeline: !0
                                    })), n = r.color, i = r.seriesName, o = r.ylabel, s = r.startVal, l = r.endVal;
                                    return Hd(ye(ye({}, a), {}, {
                                        color: n,
                                        seriesName: i,
                                        ylabel: o,
                                        start: s,
                                        end: l
                                    }));
                                }(e) : function(a) {
                                    var r = Od(a), n = r.color, i = r.seriesName, o = r.ylabel, s = r.start, l = r.end;
                                    return Hd(ye(ye({}, a), {}, {
                                        color: n,
                                        seriesName: i,
                                        ylabel: o,
                                        start: s,
                                        end: l
                                    }));
                                }(e);
                            }
                        },
                        xaxis: {
                            tickPlacement: "between",
                            tooltip: {
                                enabled: !1
                            },
                            crosshairs: {
                                stroke: {
                                    width: 0
                                }
                            }
                        }
                    };
                }
            },
            {
                key: "dumbbell",
                value: function(e) {
                    var a, r;
                    return (a = e.plotOptions.bar) !== null && a !== void 0 && a.barHeight || (e.plotOptions.bar.barHeight = 2), (r = e.plotOptions.bar) !== null && r !== void 0 && r.columnWidth || (e.plotOptions.bar.columnWidth = 2), e;
                }
            },
            {
                key: "area",
                value: function() {
                    return {
                        stroke: {
                            width: 4,
                            fill: {
                                type: "solid",
                                gradient: {
                                    inverseColors: !1,
                                    shade: "light",
                                    type: "vertical",
                                    opacityFrom: .65,
                                    opacityTo: .5,
                                    stops: [
                                        0,
                                        100,
                                        100
                                    ]
                                }
                            }
                        },
                        fill: {
                            type: "gradient",
                            gradient: {
                                inverseColors: !1,
                                shade: "light",
                                type: "vertical",
                                opacityFrom: .65,
                                opacityTo: .5,
                                stops: [
                                    0,
                                    100,
                                    100
                                ]
                            }
                        },
                        markers: {
                            size: 0,
                            hover: {
                                sizeOffset: 6
                            }
                        },
                        tooltip: {
                            followCursor: !1
                        }
                    };
                }
            },
            {
                key: "rangeArea",
                value: function() {
                    return {
                        stroke: {
                            curve: "straight",
                            width: 0
                        },
                        fill: {
                            type: "solid",
                            opacity: .6
                        },
                        markers: {
                            size: 0
                        },
                        states: {
                            hover: {
                                filter: {
                                    type: "none"
                                }
                            },
                            active: {
                                filter: {
                                    type: "none"
                                }
                            }
                        },
                        tooltip: {
                            intersect: !1,
                            shared: !0,
                            followCursor: !0,
                            custom: function(e) {
                                return function(a) {
                                    var r = Od(a), n = r.color, i = r.seriesName, o = r.ylabel, s = r.start, l = r.end;
                                    return Hd(ye(ye({}, a), {}, {
                                        color: n,
                                        seriesName: i,
                                        ylabel: o,
                                        start: s,
                                        end: l
                                    }));
                                }(e);
                            }
                        }
                    };
                }
            },
            {
                key: "brush",
                value: function(e) {
                    return V.extend(e, {
                        chart: {
                            toolbar: {
                                autoSelected: "selection",
                                show: !1
                            },
                            zoom: {
                                enabled: !1
                            }
                        },
                        dataLabels: {
                            enabled: !1
                        },
                        stroke: {
                            width: 1
                        },
                        tooltip: {
                            enabled: !1
                        },
                        xaxis: {
                            tooltip: {
                                enabled: !1
                            }
                        }
                    });
                }
            },
            {
                key: "stacked100",
                value: function(e) {
                    e.dataLabels = e.dataLabels || {}, e.dataLabels.formatter = e.dataLabels.formatter || void 0;
                    var a = e.dataLabels.formatter;
                    return e.yaxis.forEach(function(r, n) {
                        e.yaxis[n].min = 0, e.yaxis[n].max = 100;
                    }), e.chart.type === "bar" && (e.dataLabels.formatter = a || function(r) {
                        return typeof r == "number" && r ? r.toFixed(0) + "%" : r;
                    }), e;
                }
            },
            {
                key: "stackedBars",
                value: function() {
                    var e = this.bar();
                    return ye(ye({}, e), {}, {
                        plotOptions: ye(ye({}, e.plotOptions), {}, {
                            bar: ye(ye({}, e.plotOptions.bar), {}, {
                                borderRadiusApplication: "end",
                                borderRadiusWhenStacked: "last"
                            })
                        })
                    });
                }
            },
            {
                key: "convertCatToNumeric",
                value: function(e) {
                    return e.xaxis.convertedCatToNumeric = !0, e;
                }
            },
            {
                key: "convertCatToNumericXaxis",
                value: function(e, a, r) {
                    e.xaxis.type = "numeric", e.xaxis.labels = e.xaxis.labels || {}, e.xaxis.labels.formatter = e.xaxis.labels.formatter || function(o) {
                        return V.isNumber(o) ? Math.floor(o) : o;
                    };
                    var n = e.xaxis.labels.formatter, i = e.xaxis.categories && e.xaxis.categories.length ? e.xaxis.categories : e.labels;
                    return r && r.length && (i = r.map(function(o) {
                        return Array.isArray(o) ? o : String(o);
                    })), i && i.length && (e.xaxis.labels.formatter = function(o) {
                        return V.isNumber(o) ? n(i[Math.floor(o) - 1]) : n(o);
                    }), e.xaxis.categories = [], e.labels = [], e.xaxis.tickAmount = e.xaxis.tickAmount || "dataPoints", e;
                }
            },
            {
                key: "bubble",
                value: function() {
                    return {
                        dataLabels: {
                            style: {
                                colors: [
                                    "#fff"
                                ]
                            }
                        },
                        tooltip: {
                            shared: !1,
                            intersect: !0
                        },
                        xaxis: {
                            crosshairs: {
                                width: 0
                            }
                        },
                        fill: {
                            type: "solid",
                            gradient: {
                                shade: "light",
                                inverse: !0,
                                shadeIntensity: .55,
                                opacityFrom: .4,
                                opacityTo: .8
                            }
                        }
                    };
                }
            },
            {
                key: "scatter",
                value: function() {
                    return {
                        dataLabels: {
                            enabled: !1
                        },
                        tooltip: {
                            shared: !1,
                            intersect: !0
                        },
                        markers: {
                            size: 6,
                            strokeWidth: 1,
                            hover: {
                                sizeOffset: 2
                            }
                        }
                    };
                }
            },
            {
                key: "heatmap",
                value: function() {
                    return {
                        chart: {
                            stacked: !1
                        },
                        fill: {
                            opacity: 1
                        },
                        dataLabels: {
                            style: {
                                colors: [
                                    "#fff"
                                ]
                            }
                        },
                        stroke: {
                            colors: [
                                "#fff"
                            ]
                        },
                        tooltip: {
                            followCursor: !0,
                            marker: {
                                show: !1
                            },
                            x: {
                                show: !1
                            }
                        },
                        legend: {
                            position: "top",
                            markers: {
                                shape: "square"
                            }
                        },
                        grid: {
                            padding: {
                                right: 20
                            }
                        }
                    };
                }
            },
            {
                key: "treemap",
                value: function() {
                    return {
                        chart: {
                            zoom: {
                                enabled: !1
                            }
                        },
                        dataLabels: {
                            style: {
                                fontSize: 14,
                                fontWeight: 600,
                                colors: [
                                    "#fff"
                                ]
                            }
                        },
                        stroke: {
                            show: !0,
                            width: 2,
                            colors: [
                                "#fff"
                            ]
                        },
                        legend: {
                            show: !1
                        },
                        fill: {
                            opacity: 1,
                            gradient: {
                                stops: [
                                    0,
                                    100
                                ]
                            }
                        },
                        tooltip: {
                            followCursor: !0,
                            x: {
                                show: !1
                            }
                        },
                        grid: {
                            padding: {
                                left: 0,
                                right: 0
                            }
                        },
                        xaxis: {
                            crosshairs: {
                                show: !1
                            },
                            tooltip: {
                                enabled: !1
                            }
                        }
                    };
                }
            },
            {
                key: "pie",
                value: function() {
                    return {
                        chart: {
                            toolbar: {
                                show: !1
                            }
                        },
                        plotOptions: {
                            pie: {
                                donut: {
                                    labels: {
                                        show: !1
                                    }
                                }
                            }
                        },
                        dataLabels: {
                            formatter: function(e) {
                                return e.toFixed(1) + "%";
                            },
                            style: {
                                colors: [
                                    "#fff"
                                ]
                            },
                            background: {
                                enabled: !1
                            },
                            dropShadow: {
                                enabled: !0
                            }
                        },
                        stroke: {
                            colors: [
                                "#fff"
                            ]
                        },
                        fill: {
                            opacity: 1,
                            gradient: {
                                shade: "light",
                                stops: [
                                    0,
                                    100
                                ]
                            }
                        },
                        tooltip: {
                            theme: "dark",
                            fillSeriesColor: !0
                        },
                        legend: {
                            position: "right"
                        },
                        grid: {
                            padding: {
                                left: 0,
                                right: 0,
                                top: 0,
                                bottom: 0
                            }
                        }
                    };
                }
            },
            {
                key: "donut",
                value: function() {
                    return {
                        chart: {
                            toolbar: {
                                show: !1
                            }
                        },
                        dataLabels: {
                            formatter: function(e) {
                                return e.toFixed(1) + "%";
                            },
                            style: {
                                colors: [
                                    "#fff"
                                ]
                            },
                            background: {
                                enabled: !1
                            },
                            dropShadow: {
                                enabled: !0
                            }
                        },
                        stroke: {
                            colors: [
                                "#fff"
                            ]
                        },
                        fill: {
                            opacity: 1,
                            gradient: {
                                shade: "light",
                                shadeIntensity: .35,
                                stops: [
                                    80,
                                    100
                                ],
                                opacityFrom: 1,
                                opacityTo: 1
                            }
                        },
                        tooltip: {
                            theme: "dark",
                            fillSeriesColor: !0
                        },
                        legend: {
                            position: "right"
                        },
                        grid: {
                            padding: {
                                left: 0,
                                right: 0,
                                top: 0,
                                bottom: 0
                            }
                        }
                    };
                }
            },
            {
                key: "polarArea",
                value: function() {
                    return {
                        chart: {
                            toolbar: {
                                show: !1
                            }
                        },
                        dataLabels: {
                            formatter: function(e) {
                                return e.toFixed(1) + "%";
                            },
                            enabled: !1
                        },
                        stroke: {
                            show: !0,
                            width: 2
                        },
                        fill: {
                            opacity: .7
                        },
                        tooltip: {
                            theme: "dark",
                            fillSeriesColor: !0
                        },
                        legend: {
                            position: "right"
                        },
                        grid: {
                            padding: {
                                left: 0,
                                right: 0,
                                top: 0,
                                bottom: 0
                            }
                        }
                    };
                }
            },
            {
                key: "radar",
                value: function() {
                    return this.opts.yaxis[0].labels.offsetY = this.opts.yaxis[0].labels.offsetY ? this.opts.yaxis[0].labels.offsetY : 6, {
                        dataLabels: {
                            enabled: !1,
                            style: {
                                fontSize: "11px"
                            }
                        },
                        stroke: {
                            width: 2
                        },
                        markers: {
                            size: 5,
                            strokeWidth: 1,
                            strokeOpacity: 1
                        },
                        fill: {
                            opacity: .2
                        },
                        tooltip: {
                            shared: !1,
                            intersect: !0,
                            followCursor: !0
                        },
                        grid: {
                            show: !1,
                            padding: {
                                left: 0,
                                right: 0,
                                top: 0,
                                bottom: 0
                            }
                        },
                        xaxis: {
                            labels: {
                                formatter: function(e) {
                                    return e;
                                },
                                style: {
                                    colors: [
                                        "#a8a8a8"
                                    ],
                                    fontSize: "11px"
                                }
                            },
                            tooltip: {
                                enabled: !1
                            },
                            crosshairs: {
                                show: !1
                            }
                        }
                    };
                }
            },
            {
                key: "radialBar",
                value: function() {
                    return {
                        chart: {
                            animations: {
                                dynamicAnimation: {
                                    enabled: !0,
                                    speed: 800
                                }
                            },
                            toolbar: {
                                show: !1
                            }
                        },
                        fill: {
                            gradient: {
                                shade: "dark",
                                shadeIntensity: .4,
                                inverseColors: !1,
                                type: "diagonal2",
                                opacityFrom: 1,
                                opacityTo: 1,
                                stops: [
                                    70,
                                    98,
                                    100
                                ]
                            }
                        },
                        legend: {
                            show: !1,
                            position: "right"
                        },
                        tooltip: {
                            enabled: !1,
                            fillSeriesColor: !0
                        },
                        grid: {
                            padding: {
                                left: 0,
                                right: 0,
                                top: 0,
                                bottom: 0
                            }
                        }
                    };
                }
            },
            {
                key: "_getBoxTooltip",
                value: function(e, a, r, n, i) {
                    var o = e.globals.seriesCandleO[a][r], s = e.globals.seriesCandleH[a][r], l = e.globals.seriesCandleM[a][r], u = e.globals.seriesCandleL[a][r], c = e.globals.seriesCandleC[a][r];
                    return e.config.series[a].type && e.config.series[a].type !== i ? `<div class="apexcharts-custom-tooltip">
          `.concat(e.config.series[a].name ? e.config.series[a].name : "series-" + (a + 1), ": <strong>").concat(e.globals.series[a][r], `</strong>
        </div>`) : '<div class="apexcharts-tooltip-box apexcharts-tooltip-'.concat(e.config.chart.type, '">') + "<div>".concat(n[0], ': <span class="value">') + o + "</span></div>" + "<div>".concat(n[1], ': <span class="value">') + s + "</span></div>" + (l ? "<div>".concat(n[2], ': <span class="value">') + l + "</span></div>" : "") + "<div>".concat(n[3], ': <span class="value">') + u + "</span></div>" + "<div>".concat(n[4], ': <span class="value">') + c + "</span></div></div>";
                }
            }
        ]), t;
    }(), Ao = function() {
        function t(e) {
            Ae(this, t), this.opts = e;
        }
        return De(t, [
            {
                key: "init",
                value: function(e) {
                    var a = e.responsiveOverride, r = this.opts, n = new pn, i = new Co(r);
                    this.chartType = r.chart.type, r = this.extendYAxis(r), r = this.extendAnnotations(r);
                    var o = n.init(), s = {};
                    if (r && Ci(r) === "object") {
                        var l, u, c, d, h, m, f, p, g, v, b = {};
                        b = [
                            "line",
                            "area",
                            "bar",
                            "candlestick",
                            "boxPlot",
                            "rangeBar",
                            "rangeArea",
                            "bubble",
                            "scatter",
                            "heatmap",
                            "treemap",
                            "pie",
                            "polarArea",
                            "donut",
                            "radar",
                            "radialBar"
                        ].indexOf(r.chart.type) !== -1 ? i[r.chart.type]() : i.line(), (l = r.plotOptions) !== null && l !== void 0 && (u = l.bar) !== null && u !== void 0 && u.isFunnel && (b = i.funnel()), r.chart.stacked && r.chart.type === "bar" && (b = i.stackedBars()), (c = r.chart.brush) !== null && c !== void 0 && c.enabled && (b = i.brush(b)), (d = r.plotOptions) !== null && d !== void 0 && (h = d.line) !== null && h !== void 0 && h.isSlopeChart && (b = i.slope()), r.chart.stacked && r.chart.stackType === "100%" && (r = i.stacked100(r)), (m = r.plotOptions) !== null && m !== void 0 && (f = m.bar) !== null && f !== void 0 && f.isDumbbell && (r = i.dumbbell(r)), this.checkForDarkTheme(window.Apex), this.checkForDarkTheme(r), r.xaxis = r.xaxis || window.Apex.xaxis || {}, a || (r.xaxis.convertedCatToNumeric = !1), ((p = (r = this.checkForCatToNumericXAxis(this.chartType, b, r)).chart.sparkline) !== null && p !== void 0 && p.enabled || (g = window.Apex.chart) !== null && g !== void 0 && (v = g.sparkline) !== null && v !== void 0 && v.enabled) && (b = i.sparkline(b)), s = V.extend(o, b);
                    }
                    var k = V.extend(s, window.Apex);
                    return o = V.extend(k, r), o = this.handleUserInputErrors(o);
                }
            },
            {
                key: "checkForCatToNumericXAxis",
                value: function(e, a, r) {
                    var n, i, o = new Co(r), s = (e === "bar" || e === "boxPlot") && ((n = r.plotOptions) === null || n === void 0 || (i = n.bar) === null || i === void 0 ? void 0 : i.horizontal), l = e === "pie" || e === "polarArea" || e === "donut" || e === "radar" || e === "radialBar" || e === "heatmap", u = r.xaxis.type !== "datetime" && r.xaxis.type !== "numeric", c = r.xaxis.tickPlacement ? r.xaxis.tickPlacement : a.xaxis && a.xaxis.tickPlacement;
                    return s || l || !u || c === "between" || (r = o.convertCatToNumeric(r)), r;
                }
            },
            {
                key: "extendYAxis",
                value: function(e, a) {
                    var r = new pn;
                    (e.yaxis === void 0 || !e.yaxis || Array.isArray(e.yaxis) && e.yaxis.length === 0) && (e.yaxis = {}), e.yaxis.constructor !== Array && window.Apex.yaxis && window.Apex.yaxis.constructor !== Array && (e.yaxis = V.extend(e.yaxis, window.Apex.yaxis)), e.yaxis.constructor !== Array ? e.yaxis = [
                        V.extend(r.yAxis, e.yaxis)
                    ] : e.yaxis = V.extendArray(e.yaxis, r.yAxis);
                    var n = !1;
                    e.yaxis.forEach(function(o) {
                        o.logarithmic && (n = !0);
                    });
                    var i = e.series;
                    return a && !i && (i = a.config.series), n && i.length !== e.yaxis.length && i.length && (e.yaxis = i.map(function(o, s) {
                        if (o.name || (i[s].name = "series-".concat(s + 1)), e.yaxis[s]) return e.yaxis[s].seriesName = i[s].name, e.yaxis[s];
                        var l = V.extend(r.yAxis, e.yaxis[0]);
                        return l.show = !1, l;
                    })), n && i.length > 1 && i.length !== e.yaxis.length && console.warn("A multi-series logarithmic chart should have equal number of series and y-axes"), e;
                }
            },
            {
                key: "extendAnnotations",
                value: function(e) {
                    return e.annotations === void 0 && (e.annotations = {}, e.annotations.yaxis = [], e.annotations.xaxis = [], e.annotations.points = []), e = this.extendYAxisAnnotations(e), e = this.extendXAxisAnnotations(e), e = this.extendPointAnnotations(e);
                }
            },
            {
                key: "extendYAxisAnnotations",
                value: function(e) {
                    var a = new pn;
                    return e.annotations.yaxis = V.extendArray(e.annotations.yaxis !== void 0 ? e.annotations.yaxis : [], a.yAxisAnnotation), e;
                }
            },
            {
                key: "extendXAxisAnnotations",
                value: function(e) {
                    var a = new pn;
                    return e.annotations.xaxis = V.extendArray(e.annotations.xaxis !== void 0 ? e.annotations.xaxis : [], a.xAxisAnnotation), e;
                }
            },
            {
                key: "extendPointAnnotations",
                value: function(e) {
                    var a = new pn;
                    return e.annotations.points = V.extendArray(e.annotations.points !== void 0 ? e.annotations.points : [], a.pointAnnotation), e;
                }
            },
            {
                key: "checkForDarkTheme",
                value: function(e) {
                    e.theme && e.theme.mode === "dark" && (e.tooltip || (e.tooltip = {}), e.tooltip.theme !== "light" && (e.tooltip.theme = "dark"), e.chart.foreColor || (e.chart.foreColor = "#f6f7f8"), e.theme.palette || (e.theme.palette = "palette4"));
                }
            },
            {
                key: "handleUserInputErrors",
                value: function(e) {
                    var a = e;
                    if (a.tooltip.shared && a.tooltip.intersect) throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");
                    if (a.chart.type === "bar" && a.plotOptions.bar.horizontal) {
                        if (a.yaxis.length > 1) throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");
                        a.yaxis[0].reversed && (a.yaxis[0].opposite = !0), a.xaxis.tooltip.enabled = !1, a.yaxis[0].tooltip.enabled = !1, a.chart.zoom.enabled = !1;
                    }
                    return a.chart.type !== "bar" && a.chart.type !== "rangeBar" || a.tooltip.shared && a.xaxis.crosshairs.width === "barWidth" && a.series.length > 1 && (a.xaxis.crosshairs.width = "tickWidth"), a.chart.type !== "candlestick" && a.chart.type !== "boxPlot" || a.yaxis[0].reversed && (console.warn("Reversed y-axis in ".concat(a.chart.type, " chart is not supported.")), a.yaxis[0].reversed = !1), a;
                }
            }
        ]), t;
    }(), G1 = function() {
        function t() {
            Ae(this, t);
        }
        return De(t, [
            {
                key: "initGlobalVars",
                value: function(e) {
                    e.series = [], e.seriesCandleO = [], e.seriesCandleH = [], e.seriesCandleM = [], e.seriesCandleL = [], e.seriesCandleC = [], e.seriesRangeStart = [], e.seriesRangeEnd = [], e.seriesRange = [], e.seriesPercent = [], e.seriesGoals = [], e.seriesX = [], e.seriesZ = [], e.seriesNames = [], e.seriesTotals = [], e.seriesLog = [], e.seriesColors = [], e.stackedSeriesTotals = [], e.seriesXvalues = [], e.seriesYvalues = [], e.labels = [], e.hasXaxisGroups = !1, e.groups = [], e.barGroups = [], e.lineGroups = [], e.areaGroups = [], e.hasSeriesGroups = !1, e.seriesGroups = [], e.categoryLabels = [], e.timescaleLabels = [], e.noLabelsProvided = !1, e.resizeTimer = null, e.selectionResizeTimer = null, e.lastWheelExecution = 0, e.delayedElements = [], e.pointsArray = [], e.dataLabelsRects = [], e.isXNumeric = !1, e.skipLastTimelinelabel = !1, e.skipFirstTimelinelabel = !1, e.isDataXYZ = !1, e.isMultiLineX = !1, e.isMultipleYAxis = !1, e.maxY = -Number.MAX_VALUE, e.minY = Number.MIN_VALUE, e.minYArr = [], e.maxYArr = [], e.maxX = -Number.MAX_VALUE, e.minX = Number.MAX_VALUE, e.initialMaxX = -Number.MAX_VALUE, e.initialMinX = Number.MAX_VALUE, e.maxDate = 0, e.minDate = Number.MAX_VALUE, e.minZ = Number.MAX_VALUE, e.maxZ = -Number.MAX_VALUE, e.minXDiff = Number.MAX_VALUE, e.yAxisScale = [], e.xAxisScale = null, e.xAxisTicksPositions = [], e.yLabelsCoords = [], e.yTitleCoords = [], e.barPadForNumericAxis = 0, e.padHorizontal = 0, e.xRange = 0, e.yRange = [], e.zRange = 0, e.dataPoints = 0, e.xTickAmount = 0, e.multiAxisTickAmount = 0;
                }
            },
            {
                key: "globalVars",
                value: function(e) {
                    return {
                        chartID: null,
                        cuid: null,
                        events: {
                            beforeMount: [],
                            mounted: [],
                            updated: [],
                            clicked: [],
                            selection: [],
                            dataPointSelection: [],
                            zoomed: [],
                            scrolled: []
                        },
                        colors: [],
                        clientX: null,
                        clientY: null,
                        fill: {
                            colors: []
                        },
                        stroke: {
                            colors: []
                        },
                        dataLabels: {
                            style: {
                                colors: []
                            }
                        },
                        radarPolygons: {
                            fill: {
                                colors: []
                            }
                        },
                        markers: {
                            colors: [],
                            size: e.markers.size,
                            largestSize: 0
                        },
                        animationEnded: !1,
                        isTouchDevice: "ontouchstart" in window || navigator.msMaxTouchPoints,
                        isDirty: !1,
                        isExecCalled: !1,
                        initialConfig: null,
                        initialSeries: [],
                        lastXAxis: [],
                        lastYAxis: [],
                        columnSeries: null,
                        labels: [],
                        timescaleLabels: [],
                        noLabelsProvided: !1,
                        allSeriesCollapsed: !1,
                        collapsedSeries: [],
                        collapsedSeriesIndices: [],
                        ancillaryCollapsedSeries: [],
                        ancillaryCollapsedSeriesIndices: [],
                        risingSeries: [],
                        dataFormatXNumeric: !1,
                        capturedSeriesIndex: -1,
                        capturedDataPointIndex: -1,
                        selectedDataPoints: [],
                        invalidLogScale: !1,
                        ignoreYAxisIndexes: [],
                        maxValsInArrayIndex: 0,
                        radialSize: 0,
                        selection: void 0,
                        zoomEnabled: e.chart.toolbar.autoSelected === "zoom" && e.chart.toolbar.tools.zoom && e.chart.zoom.enabled,
                        panEnabled: e.chart.toolbar.autoSelected === "pan" && e.chart.toolbar.tools.pan,
                        selectionEnabled: e.chart.toolbar.autoSelected === "selection" && e.chart.toolbar.tools.selection,
                        yaxis: null,
                        mousedown: !1,
                        lastClientPosition: {},
                        visibleXRange: void 0,
                        yValueDecimal: 0,
                        total: 0,
                        SVGNS: "http://www.w3.org/2000/svg",
                        svgWidth: 0,
                        svgHeight: 0,
                        noData: !1,
                        locale: {},
                        dom: {},
                        memory: {
                            methodsToExec: []
                        },
                        shouldAnimate: !0,
                        skipLastTimelinelabel: !1,
                        skipFirstTimelinelabel: !1,
                        delayedElements: [],
                        axisCharts: !0,
                        isDataXYZ: !1,
                        isSlopeChart: e.plotOptions.line.isSlopeChart,
                        resized: !1,
                        resizeTimer: null,
                        comboCharts: !1,
                        dataChanged: !1,
                        previousPaths: [],
                        allSeriesHasEqualX: !0,
                        pointsArray: [],
                        dataLabelsRects: [],
                        lastDrawnDataLabelsIndexes: [],
                        hasNullValues: !1,
                        zoomed: !1,
                        gridWidth: 0,
                        gridHeight: 0,
                        rotateXLabels: !1,
                        defaultLabels: !1,
                        xLabelFormatter: void 0,
                        yLabelFormatters: [],
                        xaxisTooltipFormatter: void 0,
                        ttKeyFormatter: void 0,
                        ttVal: void 0,
                        ttZFormatter: void 0,
                        LINE_HEIGHT_RATIO: 1.618,
                        xAxisLabelsHeight: 0,
                        xAxisGroupLabelsHeight: 0,
                        xAxisLabelsWidth: 0,
                        yAxisLabelsWidth: 0,
                        scaleX: 1,
                        scaleY: 1,
                        translateX: 0,
                        translateY: 0,
                        translateYAxisX: [],
                        yAxisWidths: [],
                        translateXAxisY: 0,
                        translateXAxisX: 0,
                        tooltip: null,
                        niceScaleAllowedMagMsd: [
                            [
                                1,
                                1,
                                2,
                                5,
                                5,
                                5,
                                10,
                                10,
                                10,
                                10,
                                10
                            ],
                            [
                                1,
                                1,
                                2,
                                5,
                                5,
                                5,
                                10,
                                10,
                                10,
                                10,
                                10
                            ]
                        ],
                        niceScaleDefaultTicks: [
                            1,
                            2,
                            4,
                            4,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            6,
                            12,
                            12,
                            12,
                            12,
                            12,
                            12,
                            12,
                            12,
                            12,
                            24
                        ],
                        seriesYAxisMap: [],
                        seriesYAxisReverseMap: []
                    };
                }
            },
            {
                key: "init",
                value: function(e) {
                    var a = this.globalVars(e);
                    return this.initGlobalVars(a), a.initialConfig = V.extend({}, e), a.initialSeries = V.clone(e.series), a.lastXAxis = V.clone(a.initialConfig.xaxis), a.lastYAxis = V.clone(a.initialConfig.yaxis), a;
                }
            }
        ]), t;
    }(), aI = function() {
        function t(e) {
            Ae(this, t), this.opts = e;
        }
        return De(t, [
            {
                key: "init",
                value: function() {
                    var e = new Ao(this.opts).init({
                        responsiveOverride: !1
                    });
                    return {
                        config: e,
                        globals: new G1().init(e)
                    };
                }
            }
        ]), t;
    }(), hr = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.opts = null, this.seriesIndex = 0, this.patternIDs = [];
        }
        return De(t, [
            {
                key: "clippedImgArea",
                value: function(e) {
                    var a = this.w, r = a.config, n = parseInt(a.globals.gridWidth, 10), i = parseInt(a.globals.gridHeight, 10), o = n > i ? n : i, s = e.image, l = 0, u = 0;
                    e.width === void 0 && e.height === void 0 ? r.fill.image.width !== void 0 && r.fill.image.height !== void 0 ? (l = r.fill.image.width + 1, u = r.fill.image.height) : (l = o + 1, u = o) : (l = e.width, u = e.height);
                    var c = document.createElementNS(a.globals.SVGNS, "pattern");
                    he.setAttrs(c, {
                        id: e.patternID,
                        patternUnits: e.patternUnits ? e.patternUnits : "userSpaceOnUse",
                        width: l + "px",
                        height: u + "px"
                    });
                    var d = document.createElementNS(a.globals.SVGNS, "image");
                    c.appendChild(d), d.setAttributeNS(window.SVG.xlink, "href", s), he.setAttrs(d, {
                        x: 0,
                        y: 0,
                        preserveAspectRatio: "none",
                        width: l + "px",
                        height: u + "px"
                    }), d.style.opacity = e.opacity, a.globals.dom.elDefs.node.appendChild(c);
                }
            },
            {
                key: "getSeriesIndex",
                value: function(e) {
                    var a = this.w, r = a.config.chart.type;
                    return (r === "bar" || r === "rangeBar") && a.config.plotOptions.bar.distributed || r === "heatmap" || r === "treemap" ? this.seriesIndex = e.seriesNumber : this.seriesIndex = e.seriesNumber % a.globals.series.length, this.seriesIndex;
                }
            },
            {
                key: "computeColorStops",
                value: function(e, a) {
                    var r, n = this.w, i = null, o = null, s = ro(e);
                    try {
                        for(s.s(); !(r = s.n()).done;){
                            var l = r.value;
                            l >= a.threshold ? (i === null || l > i) && (i = l) : (o === null || l < o) && (o = l);
                        }
                    } catch (d) {
                        s.e(d);
                    } finally{
                        s.f();
                    }
                    i === null && (i = a.threshold), o === null && (o = a.threshold);
                    var u = i - a.threshold + (a.threshold - o);
                    u === 0 && (u = 1);
                    var c = 100 - (a.threshold - o) / u * 100;
                    return [
                        {
                            offset: c = Math.max(0, Math.min(c, 100)),
                            color: a.colorAboveThreshold,
                            opacity: n.config.fill.opacity
                        },
                        {
                            offset: 0,
                            color: a.colorBelowThreshold,
                            opacity: n.config.fill.opacity
                        }
                    ];
                }
            },
            {
                key: "fillPath",
                value: function(e) {
                    var a, r, n, i = this.w;
                    this.opts = e;
                    var o, s, l, u = this.w.config;
                    this.seriesIndex = this.getSeriesIndex(e);
                    var c = u.plotOptions.line.colors.colorAboveThreshold && u.plotOptions.line.colors.colorBelowThreshold, d = this.getFillColors()[this.seriesIndex];
                    i.globals.seriesColors[this.seriesIndex] !== void 0 && (d = i.globals.seriesColors[this.seriesIndex]), typeof d == "function" && (d = d({
                        seriesIndex: this.seriesIndex,
                        dataPointIndex: e.dataPointIndex,
                        value: e.value,
                        w: i
                    }));
                    var h, m, f, p = e.fillType ? e.fillType : this.getFillType(this.seriesIndex), g = Array.isArray(u.fill.opacity) ? u.fill.opacity[this.seriesIndex] : u.fill.opacity, v = p === "gradient" || c;
                    e.color && (d = e.color), (a = i.config.series[this.seriesIndex]) !== null && a !== void 0 && (r = a.data) !== null && r !== void 0 && (n = r[e.dataPointIndex]) !== null && n !== void 0 && n.fillColor && (d = (h = i.config.series[this.seriesIndex]) === null || h === void 0 || (m = h.data) === null || m === void 0 || (f = m[e.dataPointIndex]) === null || f === void 0 ? void 0 : f.fillColor), d || (d = "#fff", console.warn("undefined color - ApexCharts"));
                    var b = d;
                    if (d.indexOf("rgb") === -1 ? d.indexOf("#") === -1 ? b = d : d.length < 9 && (b = V.hexToRgba(d, g)) : d.indexOf("rgba") > -1 ? g = V.getOpacityFromRGBA(d) : b = V.hexToRgba(V.rgb2hex(d), g), e.opacity && (g = e.opacity), p === "pattern" && (s = this.handlePatternFill({
                        fillConfig: e.fillConfig,
                        patternFill: s,
                        fillColor: d,
                        fillOpacity: g,
                        defaultColor: b
                    })), v) {
                        var k = Qt(u.fill.gradient.colorStops) || [], S = u.fill.gradient.type;
                        c && (k[this.seriesIndex] = this.computeColorStops(i.globals.series[this.seriesIndex], u.plotOptions.line.colors), S = "vertical"), l = this.handleGradientFill({
                            type: S,
                            fillConfig: e.fillConfig,
                            fillColor: d,
                            fillOpacity: g,
                            colorStops: k,
                            i: this.seriesIndex
                        });
                    }
                    if (p === "image") {
                        var x = u.fill.image.src, C = e.patternID ? e.patternID : "", w = "pattern".concat(i.globals.cuid).concat(e.seriesNumber + 1).concat(C);
                        this.patternIDs.indexOf(w) === -1 && (this.clippedImgArea({
                            opacity: g,
                            image: Array.isArray(x) ? e.seriesNumber < x.length ? x[e.seriesNumber] : x[0] : x,
                            width: e.width ? e.width : void 0,
                            height: e.height ? e.height : void 0,
                            patternUnits: e.patternUnits,
                            patternID: w
                        }), this.patternIDs.push(w)), o = "url(#".concat(w, ")");
                    } else o = v ? l : p === "pattern" ? s : b;
                    return e.solid && (o = b), o;
                }
            },
            {
                key: "getFillType",
                value: function(e) {
                    var a = this.w;
                    return Array.isArray(a.config.fill.type) ? a.config.fill.type[e] : a.config.fill.type;
                }
            },
            {
                key: "getFillColors",
                value: function() {
                    var e = this.w, a = e.config, r = this.opts, n = [];
                    return e.globals.comboCharts ? e.config.series[this.seriesIndex].type === "line" ? Array.isArray(e.globals.stroke.colors) ? n = e.globals.stroke.colors : n.push(e.globals.stroke.colors) : Array.isArray(e.globals.fill.colors) ? n = e.globals.fill.colors : n.push(e.globals.fill.colors) : a.chart.type === "line" ? Array.isArray(e.globals.stroke.colors) ? n = e.globals.stroke.colors : n.push(e.globals.stroke.colors) : Array.isArray(e.globals.fill.colors) ? n = e.globals.fill.colors : n.push(e.globals.fill.colors), r.fillColors !== void 0 && (n = [], Array.isArray(r.fillColors) ? n = r.fillColors.slice() : n.push(r.fillColors)), n;
                }
            },
            {
                key: "handlePatternFill",
                value: function(e) {
                    var a = e.fillConfig, r = e.patternFill, n = e.fillColor, i = e.fillOpacity, o = e.defaultColor, s = this.w.config.fill;
                    a && (s = a);
                    var l = this.opts, u = new he(this.ctx), c = Array.isArray(s.pattern.strokeWidth) ? s.pattern.strokeWidth[this.seriesIndex] : s.pattern.strokeWidth, d = n;
                    return Array.isArray(s.pattern.style) ? r = s.pattern.style[l.seriesNumber] !== void 0 ? u.drawPattern(s.pattern.style[l.seriesNumber], s.pattern.width, s.pattern.height, d, c, i) : o : r = u.drawPattern(s.pattern.style, s.pattern.width, s.pattern.height, d, c, i), r;
                }
            },
            {
                key: "handleGradientFill",
                value: function(e) {
                    var a = e.type, r = e.fillColor, n = e.fillOpacity, i = e.fillConfig, o = e.colorStops, s = e.i, l = this.w.config.fill;
                    i && (l = ye(ye({}, l), i));
                    var u = this.opts, c = new he(this.ctx), d = new V;
                    a = a || l.gradient.type;
                    var h, m = r, f = l.gradient.opacityFrom === void 0 ? n : Array.isArray(l.gradient.opacityFrom) ? l.gradient.opacityFrom[s] : l.gradient.opacityFrom;
                    m.indexOf("rgba") > -1 && (f = V.getOpacityFromRGBA(m));
                    var p = l.gradient.opacityTo === void 0 ? n : Array.isArray(l.gradient.opacityTo) ? l.gradient.opacityTo[s] : l.gradient.opacityTo;
                    if (l.gradient.gradientToColors === void 0 || l.gradient.gradientToColors.length === 0) h = l.gradient.shade === "dark" ? d.shadeColor(-1 * parseFloat(l.gradient.shadeIntensity), r.indexOf("rgb") > -1 ? V.rgb2hex(r) : r) : d.shadeColor(parseFloat(l.gradient.shadeIntensity), r.indexOf("rgb") > -1 ? V.rgb2hex(r) : r);
                    else if (l.gradient.gradientToColors[u.seriesNumber]) {
                        var g = l.gradient.gradientToColors[u.seriesNumber];
                        h = g, g.indexOf("rgba") > -1 && (p = V.getOpacityFromRGBA(g));
                    } else h = r;
                    if (l.gradient.gradientFrom && (m = l.gradient.gradientFrom), l.gradient.gradientTo && (h = l.gradient.gradientTo), l.gradient.inverseColors) {
                        var v = m;
                        m = h, h = v;
                    }
                    return m.indexOf("rgb") > -1 && (m = V.rgb2hex(m)), h.indexOf("rgb") > -1 && (h = V.rgb2hex(h)), c.drawGradient(a, m, h, f, p, u.size, l.gradient.stops, o, s);
                }
            }
        ]), t;
    }(), Ui = function() {
        function t(e, a) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "setGlobalMarkerSize",
                value: function() {
                    var e = this.w;
                    if (e.globals.markers.size = Array.isArray(e.config.markers.size) ? e.config.markers.size : [
                        e.config.markers.size
                    ], e.globals.markers.size.length > 0) {
                        if (e.globals.markers.size.length < e.globals.series.length + 1) for(var a = 0; a <= e.globals.series.length; a++)e.globals.markers.size[a] === void 0 && e.globals.markers.size.push(e.globals.markers.size[0]);
                    } else e.globals.markers.size = e.config.series.map(function(r) {
                        return e.config.markers.size;
                    });
                }
            },
            {
                key: "plotChartMarkers",
                value: function(e) {
                    var a = e.pointsPos, r = e.seriesIndex, n = e.j, i = e.pSize, o = e.alwaysDrawMarker, s = o !== void 0 && o, l = e.isVirtualPoint, u = l !== void 0 && l, c = this.w, d = r, h = a, m = null, f = new he(this.ctx), p = c.config.markers.discrete && c.config.markers.discrete.length;
                    if (Array.isArray(h.x)) for(var g = 0; g < h.x.length; g++){
                        var v = void 0, b = n, k = !V.isNumber(h.y[g]);
                        c.globals.markers.largestSize === 0 && c.globals.hasNullValues && c.globals.series[d][n + 1] !== null && !u && (k = !0), n === 1 && g === 0 && (b = 0), n === 1 && g === 1 && (b = 1);
                        var S = "apexcharts-marker";
                        if (c.config.chart.type !== "line" && c.config.chart.type !== "area" || c.globals.comboCharts || c.config.tooltip.intersect || (S += " no-pointer-events"), (Array.isArray(c.config.markers.size) ? c.globals.markers.size[r] > 0 : c.config.markers.size > 0) || s || p) {
                            k || (S += " w".concat(V.randomId()));
                            var x = this.getMarkerConfig({
                                cssClass: S,
                                seriesIndex: r,
                                dataPointIndex: b
                            });
                            c.config.series[d].data[b] && (c.config.series[d].data[b].fillColor && (x.pointFillColor = c.config.series[d].data[b].fillColor), c.config.series[d].data[b].strokeColor && (x.pointStrokeColor = c.config.series[d].data[b].strokeColor)), i !== void 0 && (x.pSize = i), (h.x[g] < -c.globals.markers.largestSize || h.x[g] > c.globals.gridWidth + c.globals.markers.largestSize || h.y[g] < -c.globals.markers.largestSize || h.y[g] > c.globals.gridHeight + c.globals.markers.largestSize) && (x.pSize = 0), !k && ((c.globals.markers.size[r] > 0 || s || p) && !m && (m = f.group({
                                class: s || p ? "" : "apexcharts-series-markers"
                            })).attr("clip-path", "url(#gridRectMarkerMask".concat(c.globals.cuid, ")")), (v = f.drawMarker(h.x[g], h.y[g], x)).attr("rel", b), v.attr("j", b), v.attr("index", r), v.node.setAttribute("default-marker-size", x.pSize), new ca(this.ctx).setSelectionFilter(v, r, b), this.addEvents(v), m && m.add(v));
                        } else c.globals.pointsArray[r] === void 0 && (c.globals.pointsArray[r] = []), c.globals.pointsArray[r].push([
                            h.x[g],
                            h.y[g]
                        ]);
                    }
                    return m;
                }
            },
            {
                key: "getMarkerConfig",
                value: function(e) {
                    var a = e.cssClass, r = e.seriesIndex, n = e.dataPointIndex, i = n === void 0 ? null : n, o = e.radius, s = o === void 0 ? null : o, l = e.size, u = l === void 0 ? null : l, c = e.strokeWidth, d = c === void 0 ? null : c, h = this.w, m = this.getMarkerStyle(r), f = u === null ? h.globals.markers.size[r] : u, p = h.config.markers;
                    return i !== null && p.discrete.length && p.discrete.map(function(g) {
                        g.seriesIndex === r && g.dataPointIndex === i && (m.pointStrokeColor = g.strokeColor, m.pointFillColor = g.fillColor, f = g.size, m.pointShape = g.shape);
                    }), {
                        pSize: s === null ? f : s,
                        pRadius: s !== null ? s : p.radius,
                        pointStrokeWidth: d !== null ? d : Array.isArray(p.strokeWidth) ? p.strokeWidth[r] : p.strokeWidth,
                        pointStrokeColor: m.pointStrokeColor,
                        pointFillColor: m.pointFillColor,
                        shape: m.pointShape || (Array.isArray(p.shape) ? p.shape[r] : p.shape),
                        class: a,
                        pointStrokeOpacity: Array.isArray(p.strokeOpacity) ? p.strokeOpacity[r] : p.strokeOpacity,
                        pointStrokeDashArray: Array.isArray(p.strokeDashArray) ? p.strokeDashArray[r] : p.strokeDashArray,
                        pointFillOpacity: Array.isArray(p.fillOpacity) ? p.fillOpacity[r] : p.fillOpacity,
                        seriesIndex: r
                    };
                }
            },
            {
                key: "addEvents",
                value: function(e) {
                    var a = this.w, r = new he(this.ctx);
                    e.node.addEventListener("mouseenter", r.pathMouseEnter.bind(this.ctx, e)), e.node.addEventListener("mouseleave", r.pathMouseLeave.bind(this.ctx, e)), e.node.addEventListener("mousedown", r.pathMouseDown.bind(this.ctx, e)), e.node.addEventListener("click", a.config.markers.onClick), e.node.addEventListener("dblclick", a.config.markers.onDblClick), e.node.addEventListener("touchstart", r.pathMouseDown.bind(this.ctx, e), {
                        passive: !0
                    });
                }
            },
            {
                key: "getMarkerStyle",
                value: function(e) {
                    var a = this.w, r = a.globals.markers.colors, n = a.config.markers.strokeColor || a.config.markers.strokeColors;
                    return {
                        pointStrokeColor: Array.isArray(n) ? n[e] : n,
                        pointFillColor: Array.isArray(r) ? r[e] : r
                    };
                }
            }
        ]), t;
    }(), $1 = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.initialAnim = this.w.config.chart.animations.enabled;
        }
        return De(t, [
            {
                key: "draw",
                value: function(e, a, r) {
                    var n = this.w, i = new he(this.ctx), o = r.realIndex, s = r.pointsPos, l = r.zRatio, u = r.elParent, c = i.group({
                        class: "apexcharts-series-markers apexcharts-series-".concat(n.config.chart.type)
                    });
                    if (c.attr("clip-path", "url(#gridRectMarkerMask".concat(n.globals.cuid, ")")), Array.isArray(s.x)) for(var d = 0; d < s.x.length; d++){
                        var h = a + 1, m = !0;
                        a === 0 && d === 0 && (h = 0), a === 0 && d === 1 && (h = 1);
                        var f = n.globals.markers.size[o];
                        if (l !== 1 / 0) {
                            var p = n.config.plotOptions.bubble;
                            f = n.globals.seriesZ[o][h], p.zScaling && (f /= l), p.minBubbleRadius && f < p.minBubbleRadius && (f = p.minBubbleRadius), p.maxBubbleRadius && f > p.maxBubbleRadius && (f = p.maxBubbleRadius);
                        }
                        var g = s.x[d], v = s.y[d];
                        if (f = f || 0, v !== null && n.globals.series[o][h] !== void 0 || (m = !1), m) {
                            var b = this.drawPoint(g, v, f, o, h, a);
                            c.add(b);
                        }
                        u.add(c);
                    }
                }
            },
            {
                key: "drawPoint",
                value: function(e, a, r, n, i, o) {
                    var s = this.w, l = n, u = new Vi(this.ctx), c = new ca(this.ctx), d = new hr(this.ctx), h = new Ui(this.ctx), m = new he(this.ctx), f = h.getMarkerConfig({
                        cssClass: "apexcharts-marker",
                        seriesIndex: l,
                        dataPointIndex: i,
                        radius: s.config.chart.type === "bubble" || s.globals.comboCharts && s.config.series[n] && s.config.series[n].type === "bubble" ? r : null
                    }), p = d.fillPath({
                        seriesNumber: n,
                        dataPointIndex: i,
                        color: f.pointFillColor,
                        patternUnits: "objectBoundingBox",
                        value: s.globals.series[n][o]
                    }), g = m.drawMarker(e, a, f);
                    if (s.config.series[l].data[i] && s.config.series[l].data[i].fillColor && (p = s.config.series[l].data[i].fillColor), g.attr({
                        fill: p
                    }), s.config.chart.dropShadow.enabled) {
                        var v = s.config.chart.dropShadow;
                        c.dropShadow(g, v, n);
                    }
                    if (!this.initialAnim || s.globals.dataChanged || s.globals.resized) s.globals.animationEnded = !0;
                    else {
                        var b = s.config.chart.animations.speed;
                        u.animateMarker(g, b, s.globals.easing, function() {
                            window.setTimeout(function() {
                                u.animationCompleted(g);
                            }, 100);
                        });
                    }
                    return g.attr({
                        rel: i,
                        j: i,
                        index: n,
                        "default-marker-size": f.pSize
                    }), c.setSelectionFilter(g, n, i), h.addEvents(g), g.node.classList.add("apexcharts-marker"), g;
                }
            },
            {
                key: "centerTextInBubble",
                value: function(e) {
                    var a = this.w;
                    return {
                        y: e += parseInt(a.config.dataLabels.style.fontSize, 10) / 4
                    };
                }
            }
        ]), t;
    }(), Ai = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "dataLabelsCorrection",
                value: function(e, a, r, n, i, o, s) {
                    var l = this.w, u = !1, c = new he(this.ctx).getTextRects(r, s), d = c.width, h = c.height;
                    a < 0 && (a = 0), a > l.globals.gridHeight + h && (a = l.globals.gridHeight + h / 2), l.globals.dataLabelsRects[n] === void 0 && (l.globals.dataLabelsRects[n] = []), l.globals.dataLabelsRects[n].push({
                        x: e,
                        y: a,
                        width: d,
                        height: h
                    });
                    var m = l.globals.dataLabelsRects[n].length - 2, f = l.globals.lastDrawnDataLabelsIndexes[n] !== void 0 ? l.globals.lastDrawnDataLabelsIndexes[n][l.globals.lastDrawnDataLabelsIndexes[n].length - 1] : 0;
                    if (l.globals.dataLabelsRects[n][m] !== void 0) {
                        var p = l.globals.dataLabelsRects[n][f];
                        (e > p.x + p.width || a > p.y + p.height || a + h < p.y || e + d < p.x) && (u = !0);
                    }
                    return (i === 0 || o) && (u = !0), {
                        x: e,
                        y: a,
                        textRects: c,
                        drawnextLabel: u
                    };
                }
            },
            {
                key: "drawDataLabel",
                value: function(e) {
                    var a = this, r = e.type, n = e.pos, i = e.i, o = e.j, s = e.isRangeStart, l = e.strokeWidth, u = l === void 0 ? 2 : l, c = this.w, d = new he(this.ctx), h = c.config.dataLabels, m = 0, f = 0, p = o, g = null;
                    if (c.globals.collapsedSeriesIndices.indexOf(i) !== -1 || !h.enabled || !Array.isArray(n.x)) return g;
                    g = d.group({
                        class: "apexcharts-data-labels"
                    });
                    for(var v = 0; v < n.x.length; v++)if (m = n.x[v] + h.offsetX, f = n.y[v] + h.offsetY + u, !isNaN(m)) {
                        o === 1 && v === 0 && (p = 0), o === 1 && v === 1 && (p = 1);
                        var b = c.globals.series[i][p];
                        r === "rangeArea" && (b = s ? c.globals.seriesRangeStart[i][p] : c.globals.seriesRangeEnd[i][p]);
                        var k = "", S = function(C) {
                            return c.config.dataLabels.formatter(C, {
                                ctx: a.ctx,
                                seriesIndex: i,
                                dataPointIndex: p,
                                w: c
                            });
                        };
                        c.config.chart.type === "bubble" ? (k = S(b = c.globals.seriesZ[i][p]), f = n.y[v], f = new $1(this.ctx).centerTextInBubble(f, i, p).y) : b !== void 0 && (k = S(b));
                        var x = c.config.dataLabels.textAnchor;
                        c.globals.isSlopeChart && (x = p === 0 ? "end" : p === c.config.series[i].data.length - 1 ? "start" : "middle"), this.plotDataLabelsText({
                            x: m,
                            y: f,
                            text: k,
                            i,
                            j: p,
                            parent: g,
                            offsetCorrection: !0,
                            dataLabelsConfig: c.config.dataLabels,
                            textAnchor: x
                        });
                    }
                    return g;
                }
            },
            {
                key: "plotDataLabelsText",
                value: function(e) {
                    var a = this.w, r = new he(this.ctx), n = e.x, i = e.y, o = e.i, s = e.j, l = e.text, u = e.textAnchor, c = e.fontSize, d = e.parent, h = e.dataLabelsConfig, m = e.color, f = e.alwaysDrawDataLabel, p = e.offsetCorrection, g = e.className, v = null;
                    if (Array.isArray(a.config.dataLabels.enabledOnSeries) && a.config.dataLabels.enabledOnSeries.indexOf(o) < 0) return v;
                    var b = {
                        x: n,
                        y: i,
                        drawnextLabel: !0,
                        textRects: null
                    };
                    p && (b = this.dataLabelsCorrection(n, i, l, o, s, f, parseInt(h.style.fontSize, 10))), a.globals.zoomed || (n = b.x, i = b.y), b.textRects && (n < -20 - b.textRects.width || n > a.globals.gridWidth + b.textRects.width + 30) && (l = "");
                    var k = a.globals.dataLabels.style.colors[o];
                    ((a.config.chart.type === "bar" || a.config.chart.type === "rangeBar") && a.config.plotOptions.bar.distributed || a.config.dataLabels.distributed) && (k = a.globals.dataLabels.style.colors[s]), typeof k == "function" && (k = k({
                        series: a.globals.series,
                        seriesIndex: o,
                        dataPointIndex: s,
                        w: a
                    })), m && (k = m);
                    var S = h.offsetX, x = h.offsetY;
                    if (a.config.chart.type !== "bar" && a.config.chart.type !== "rangeBar" || (S = 0, x = 0), a.globals.isSlopeChart && (s !== 0 && (S = -2 * h.offsetX + 5), s !== 0 && s !== a.config.series[o].data.length - 1 && (S = 0)), b.drawnextLabel) {
                        if ((v = r.drawText({
                            width: 100,
                            height: parseInt(h.style.fontSize, 10),
                            x: n + S,
                            y: i + x,
                            foreColor: k,
                            textAnchor: u || h.textAnchor,
                            text: l,
                            fontSize: c || h.style.fontSize,
                            fontFamily: h.style.fontFamily,
                            fontWeight: h.style.fontWeight || "normal"
                        })).attr({
                            class: g || "apexcharts-datalabel",
                            cx: n,
                            cy: i
                        }), h.dropShadow.enabled) {
                            var C = h.dropShadow;
                            new ca(this.ctx).dropShadow(v, C);
                        }
                        d.add(v), a.globals.lastDrawnDataLabelsIndexes[o] === void 0 && (a.globals.lastDrawnDataLabelsIndexes[o] = []), a.globals.lastDrawnDataLabelsIndexes[o].push(s);
                    }
                    return v;
                }
            },
            {
                key: "addBackgroundToDataLabel",
                value: function(e, a) {
                    var r = this.w, n = r.config.dataLabels.background, i = n.padding, o = n.padding / 2, s = a.width, l = a.height, u = new he(this.ctx).drawRect(a.x - i, a.y - o / 2, s + 2 * i, l + o, n.borderRadius, r.config.chart.background !== "transparent" && r.config.chart.background ? r.config.chart.background : "#fff", n.opacity, n.borderWidth, n.borderColor);
                    return n.dropShadow.enabled && new ca(this.ctx).dropShadow(u, n.dropShadow), u;
                }
            },
            {
                key: "dataLabelsBackground",
                value: function() {
                    var e = this.w;
                    if (e.config.chart.type !== "bubble") for(var a = e.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"), r = 0; r < a.length; r++){
                        var n = a[r], i = n.getBBox(), o = null;
                        if (i.width && i.height && (o = this.addBackgroundToDataLabel(n, i)), o) {
                            n.parentNode.insertBefore(o.node, n);
                            var s = e.config.dataLabels.background.backgroundColor || n.getAttribute("fill");
                            e.config.chart.animations.enabled && !e.globals.resized && !e.globals.dataChanged ? o.animate().attr({
                                fill: s
                            }) : o.attr({
                                fill: s
                            }), n.setAttribute("fill", e.config.dataLabels.background.foreColor);
                        }
                    }
                }
            },
            {
                key: "bringForward",
                value: function() {
                    for(var e = this.w, a = e.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels"), r = e.globals.dom.baseEl.querySelector(".apexcharts-plot-series:last-child"), n = 0; n < a.length; n++)r && r.insertBefore(a[n], r.nextSibling);
                }
            }
        ]), t;
    }(), nr = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.legendInactiveClass = "legend-mouseover-inactive";
        }
        return De(t, [
            {
                key: "getAllSeriesEls",
                value: function() {
                    return this.w.globals.dom.baseEl.getElementsByClassName("apexcharts-series");
                }
            },
            {
                key: "getSeriesByName",
                value: function(e) {
                    return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner .apexcharts-series[seriesName='".concat(V.escapeString(e), "']"));
                }
            },
            {
                key: "isSeriesHidden",
                value: function(e) {
                    var a = this.getSeriesByName(e), r = parseInt(a.getAttribute("data:realIndex"), 10);
                    return {
                        isHidden: a.classList.contains("apexcharts-series-collapsed"),
                        realIndex: r
                    };
                }
            },
            {
                key: "addCollapsedClassToSeries",
                value: function(e, a) {
                    var r = this.w;
                    function n(i) {
                        for(var o = 0; o < i.length; o++)i[o].index === a && e.node.classList.add("apexcharts-series-collapsed");
                    }
                    n(r.globals.collapsedSeries), n(r.globals.ancillaryCollapsedSeries);
                }
            },
            {
                key: "toggleSeries",
                value: function(e) {
                    var a = this.isSeriesHidden(e);
                    return this.ctx.legend.legendHelpers.toggleDataSeries(a.realIndex, a.isHidden), a.isHidden;
                }
            },
            {
                key: "showSeries",
                value: function(e) {
                    var a = this.isSeriesHidden(e);
                    a.isHidden && this.ctx.legend.legendHelpers.toggleDataSeries(a.realIndex, !0);
                }
            },
            {
                key: "hideSeries",
                value: function(e) {
                    var a = this.isSeriesHidden(e);
                    a.isHidden || this.ctx.legend.legendHelpers.toggleDataSeries(a.realIndex, !1);
                }
            },
            {
                key: "resetSeries",
                value: function() {
                    var e = !(arguments.length > 0 && arguments[0] !== void 0) || arguments[0], a = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1], r = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2], n = this.w, i = V.clone(n.globals.initialSeries);
                    n.globals.previousPaths = [], r ? (n.globals.collapsedSeries = [], n.globals.ancillaryCollapsedSeries = [], n.globals.collapsedSeriesIndices = [], n.globals.ancillaryCollapsedSeriesIndices = []) : i = this.emptyCollapsedSeries(i), n.config.series = i, e && (a && (n.globals.zoomed = !1, this.ctx.updateHelpers.revertDefaultAxisMinMax()), this.ctx.updateHelpers._updateSeries(i, n.config.chart.animations.dynamicAnimation.enabled));
                }
            },
            {
                key: "emptyCollapsedSeries",
                value: function(e) {
                    for(var a = this.w, r = 0; r < e.length; r++)a.globals.collapsedSeriesIndices.indexOf(r) > -1 && (e[r].data = []);
                    return e;
                }
            },
            {
                key: "highlightSeries",
                value: function(e) {
                    var a = this.w, r = this.getSeriesByName(e), n = parseInt(r?.getAttribute("data:realIndex"), 10), i = a.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis"), o = null, s = null, l = null;
                    if (a.globals.axisCharts || a.config.chart.type === "radialBar") if (a.globals.axisCharts) {
                        o = a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(n, "']")), s = a.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(n, "']"));
                        var u = a.globals.seriesYAxisReverseMap[n];
                        l = a.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(u, "']"));
                    } else o = a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(n + 1, "']"));
                    else o = a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(n + 1, "'] path"));
                    for(var c = 0; c < i.length; c++)i[c].classList.add(this.legendInactiveClass);
                    if (o) a.globals.axisCharts || o.parentNode.classList.remove(this.legendInactiveClass), o.classList.remove(this.legendInactiveClass), s !== null && s.classList.remove(this.legendInactiveClass), l !== null && l.classList.remove(this.legendInactiveClass);
                    else for(var d = 0; d < i.length; d++)i[d].classList.remove(this.legendInactiveClass);
                }
            },
            {
                key: "toggleSeriesOnHover",
                value: function(e, a) {
                    var r = this.w;
                    a || (a = e.target);
                    var n = r.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels, .apexcharts-yaxis");
                    if (e.type === "mousemove") {
                        var i = parseInt(a.getAttribute("rel"), 10) - 1;
                        this.highlightSeries(r.globals.seriesNames[i]);
                    } else if (e.type === "mouseout") for(var o = 0; o < n.length; o++)n[o].classList.remove(this.legendInactiveClass);
                }
            },
            {
                key: "highlightRangeInSeries",
                value: function(e, a) {
                    var r = this, n = this.w, i = n.globals.dom.baseEl.getElementsByClassName("apexcharts-heatmap-rect"), o = function(u) {
                        for(var c = 0; c < i.length; c++)i[c].classList[u](r.legendInactiveClass);
                    };
                    if (e.type === "mousemove") {
                        var s = parseInt(a.getAttribute("rel"), 10) - 1;
                        o("add");
                        var l = n.config.plotOptions.heatmap.colorScale.ranges;
                        (function(u, c) {
                            for(var d = 0; d < i.length; d++){
                                var h = Number(i[d].getAttribute("val"));
                                h >= u.from && (h < u.to || u.to === c && h === c) && i[d].classList.remove(r.legendInactiveClass);
                            }
                        })(l[s], l.reduce(function(u, c) {
                            return Math.max(u, c.to);
                        }, 0));
                    } else e.type === "mouseout" && o("remove");
                }
            },
            {
                key: "getActiveConfigSeriesIndex",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "asc", a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [], r = this.w, n = 0;
                    if (r.config.series.length > 1) {
                        for(var i = r.config.series.map(function(s, l) {
                            return s.data && s.data.length > 0 && r.globals.collapsedSeriesIndices.indexOf(l) === -1 && (!r.globals.comboCharts || a.length === 0 || a.length && a.indexOf(r.config.series[l].type) > -1) ? l : -1;
                        }), o = e === "asc" ? 0 : i.length - 1; e === "asc" ? o < i.length : o >= 0; e === "asc" ? o++ : o--)if (i[o] !== -1) {
                            n = i[o];
                            break;
                        }
                    }
                    return n;
                }
            },
            {
                key: "getBarSeriesIndices",
                value: function() {
                    return this.w.globals.comboCharts ? this.w.config.series.map(function(e, a) {
                        return e.type === "bar" || e.type === "column" ? a : -1;
                    }).filter(function(e) {
                        return e !== -1;
                    }) : this.w.config.series.map(function(e, a) {
                        return a;
                    });
                }
            },
            {
                key: "getPreviousPaths",
                value: function() {
                    var e = this.w;
                    function a(o, s, l) {
                        for(var u = o[s].childNodes, c = {
                            type: l,
                            paths: [],
                            realIndex: o[s].getAttribute("data:realIndex")
                        }, d = 0; d < u.length; d++)if (u[d].hasAttribute("pathTo")) {
                            var h = u[d].getAttribute("pathTo");
                            c.paths.push({
                                d: h
                            });
                        }
                        e.globals.previousPaths.push(c);
                    }
                    e.globals.previousPaths = [], [
                        "line",
                        "area",
                        "bar",
                        "rangebar",
                        "rangeArea",
                        "candlestick",
                        "radar"
                    ].forEach(function(o) {
                        for(var s, l = (s = o, e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(s, "-series .apexcharts-series"))), u = 0; u < l.length; u++)a(l, u, o);
                    });
                    var r = e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(e.config.chart.type, " .apexcharts-series"));
                    if (r.length > 0) for(var n = function(o) {
                        for(var s = e.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(e.config.chart.type, " .apexcharts-series[data\\:realIndex='").concat(o, "'] rect")), l = [], u = function(d) {
                            var h = function(f) {
                                return s[d].getAttribute(f);
                            }, m = {
                                x: parseFloat(h("x")),
                                y: parseFloat(h("y")),
                                width: parseFloat(h("width")),
                                height: parseFloat(h("height"))
                            };
                            l.push({
                                rect: m,
                                color: s[d].getAttribute("color")
                            });
                        }, c = 0; c < s.length; c++)u(c);
                        e.globals.previousPaths.push(l);
                    }, i = 0; i < r.length; i++)n(i);
                    e.globals.axisCharts || (e.globals.previousPaths = e.globals.series);
                }
            },
            {
                key: "clearPreviousPaths",
                value: function() {
                    var e = this.w;
                    e.globals.previousPaths = [], e.globals.allSeriesCollapsed = !1;
                }
            },
            {
                key: "handleNoData",
                value: function() {
                    var e = this.w, a = e.config.noData, r = new he(this.ctx), n = e.globals.svgWidth / 2, i = e.globals.svgHeight / 2, o = "middle";
                    if (e.globals.noData = !0, e.globals.animationEnded = !0, a.align === "left" ? (n = 10, o = "start") : a.align === "right" && (n = e.globals.svgWidth - 10, o = "end"), a.verticalAlign === "top" ? i = 50 : a.verticalAlign === "bottom" && (i = e.globals.svgHeight - 50), n += a.offsetX, i = i + parseInt(a.style.fontSize, 10) + 2 + a.offsetY, a.text !== void 0 && a.text !== "") {
                        var s = r.drawText({
                            x: n,
                            y: i,
                            text: a.text,
                            textAnchor: o,
                            fontSize: a.style.fontSize,
                            fontFamily: a.style.fontFamily,
                            foreColor: a.style.color,
                            opacity: 1,
                            class: "apexcharts-text-nodata"
                        });
                        e.globals.dom.Paper.add(s);
                    }
                }
            },
            {
                key: "setNullSeriesToZeroValues",
                value: function(e) {
                    for(var a = this.w, r = 0; r < e.length; r++)if (e[r].length === 0) for(var n = 0; n < e[a.globals.maxValsInArrayIndex].length; n++)e[r].push(0);
                    return e;
                }
            },
            {
                key: "hasAllSeriesEqualX",
                value: function() {
                    for(var e = !0, a = this.w, r = this.filteredSeriesX(), n = 0; n < r.length - 1; n++)if (r[n][0] !== r[n + 1][0]) {
                        e = !1;
                        break;
                    }
                    return a.globals.allSeriesHasEqualX = e, e;
                }
            },
            {
                key: "filteredSeriesX",
                value: function() {
                    var e = this.w.globals.seriesX.map(function(a) {
                        return a.length > 0 ? a : [];
                    });
                    return e;
                }
            }
        ]), t;
    }(), bf = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.twoDSeries = [], this.threeDSeries = [], this.twoDSeriesX = [], this.seriesGoals = [], this.coreUtils = new Ht(this.ctx);
        }
        return De(t, [
            {
                key: "isMultiFormat",
                value: function() {
                    return this.isFormatXY() || this.isFormat2DArray();
                }
            },
            {
                key: "isFormatXY",
                value: function() {
                    var e = this.w.config.series.slice(), a = new nr(this.ctx);
                    if (this.activeSeriesIndex = a.getActiveConfigSeriesIndex(), e[this.activeSeriesIndex].data !== void 0 && e[this.activeSeriesIndex].data.length > 0 && e[this.activeSeriesIndex].data[0] !== null && e[this.activeSeriesIndex].data[0].x !== void 0 && e[this.activeSeriesIndex].data[0] !== null) return !0;
                }
            },
            {
                key: "isFormat2DArray",
                value: function() {
                    var e = this.w.config.series.slice(), a = new nr(this.ctx);
                    if (this.activeSeriesIndex = a.getActiveConfigSeriesIndex(), e[this.activeSeriesIndex].data !== void 0 && e[this.activeSeriesIndex].data.length > 0 && e[this.activeSeriesIndex].data[0] !== void 0 && e[this.activeSeriesIndex].data[0] !== null && e[this.activeSeriesIndex].data[0].constructor === Array) return !0;
                }
            },
            {
                key: "handleFormat2DArray",
                value: function(e, a) {
                    for(var r = this.w.config, n = this.w.globals, i = r.chart.type === "boxPlot" || r.series[a].type === "boxPlot", o = 0; o < e[a].data.length; o++)if (e[a].data[o][1] !== void 0 && (Array.isArray(e[a].data[o][1]) && e[a].data[o][1].length === 4 && !i ? this.twoDSeries.push(V.parseNumber(e[a].data[o][1][3])) : e[a].data[o].length >= 5 ? this.twoDSeries.push(V.parseNumber(e[a].data[o][4])) : this.twoDSeries.push(V.parseNumber(e[a].data[o][1])), n.dataFormatXNumeric = !0), r.xaxis.type === "datetime") {
                        var s = new Date(e[a].data[o][0]);
                        s = new Date(s).getTime(), this.twoDSeriesX.push(s);
                    } else this.twoDSeriesX.push(e[a].data[o][0]);
                    for(var l = 0; l < e[a].data.length; l++)e[a].data[l][2] !== void 0 && (this.threeDSeries.push(e[a].data[l][2]), n.isDataXYZ = !0);
                }
            },
            {
                key: "handleFormatXY",
                value: function(e, a) {
                    var r = this.w.config, n = this.w.globals, i = new ua(this.ctx), o = a;
                    n.collapsedSeriesIndices.indexOf(a) > -1 && (o = this.activeSeriesIndex);
                    for(var s = 0; s < e[a].data.length; s++)e[a].data[s].y !== void 0 && (Array.isArray(e[a].data[s].y) ? this.twoDSeries.push(V.parseNumber(e[a].data[s].y[e[a].data[s].y.length - 1])) : this.twoDSeries.push(V.parseNumber(e[a].data[s].y))), e[a].data[s].goals !== void 0 && Array.isArray(e[a].data[s].goals) ? (this.seriesGoals[a] === void 0 && (this.seriesGoals[a] = []), this.seriesGoals[a].push(e[a].data[s].goals)) : (this.seriesGoals[a] === void 0 && (this.seriesGoals[a] = []), this.seriesGoals[a].push(null));
                    for(var l = 0; l < e[o].data.length; l++){
                        var u = typeof e[o].data[l].x == "string", c = Array.isArray(e[o].data[l].x), d = !c && !!i.isValidDate(e[o].data[l].x);
                        if (u || d) if (u || r.xaxis.convertedCatToNumeric) {
                            var h = n.isBarHorizontal && n.isRangeData;
                            r.xaxis.type !== "datetime" || h ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(e[o].data[l].x), isNaN(e[o].data[l].x) || this.w.config.xaxis.type === "category" || typeof e[o].data[l].x == "string" || (n.isXNumeric = !0)) : this.twoDSeriesX.push(i.parseDate(e[o].data[l].x));
                        } else r.xaxis.type === "datetime" ? this.twoDSeriesX.push(i.parseDate(e[o].data[l].x.toString())) : (n.dataFormatXNumeric = !0, n.isXNumeric = !0, this.twoDSeriesX.push(parseFloat(e[o].data[l].x)));
                        else c ? (this.fallbackToCategory = !0, this.twoDSeriesX.push(e[o].data[l].x)) : (n.isXNumeric = !0, n.dataFormatXNumeric = !0, this.twoDSeriesX.push(e[o].data[l].x));
                    }
                    if (e[a].data[0] && e[a].data[0].z !== void 0) {
                        for(var m = 0; m < e[a].data.length; m++)this.threeDSeries.push(e[a].data[m].z);
                        n.isDataXYZ = !0;
                    }
                }
            },
            {
                key: "handleRangeData",
                value: function(e, a) {
                    var r = this.w.globals, n = {};
                    return this.isFormat2DArray() ? n = this.handleRangeDataFormat("array", e, a) : this.isFormatXY() && (n = this.handleRangeDataFormat("xy", e, a)), r.seriesRangeStart[a] = n.start === void 0 ? [] : n.start, r.seriesRangeEnd[a] = n.end === void 0 ? [] : n.end, r.seriesRange[a] = n.rangeUniques, r.seriesRange.forEach(function(i, o) {
                        i && i.forEach(function(s, l) {
                            s.y.forEach(function(u, c) {
                                for(var d = 0; d < s.y.length; d++)if (c !== d) {
                                    var h = u.y1, m = u.y2, f = s.y[d].y1;
                                    h <= s.y[d].y2 && f <= m && (s.overlaps.indexOf(u.rangeName) < 0 && s.overlaps.push(u.rangeName), s.overlaps.indexOf(s.y[d].rangeName) < 0 && s.overlaps.push(s.y[d].rangeName));
                                }
                            });
                        });
                    }), n;
                }
            },
            {
                key: "handleCandleStickBoxData",
                value: function(e, a) {
                    var r = this.w.globals, n = {};
                    return this.isFormat2DArray() ? n = this.handleCandleStickBoxDataFormat("array", e, a) : this.isFormatXY() && (n = this.handleCandleStickBoxDataFormat("xy", e, a)), r.seriesCandleO[a] = n.o, r.seriesCandleH[a] = n.h, r.seriesCandleM[a] = n.m, r.seriesCandleL[a] = n.l, r.seriesCandleC[a] = n.c, n;
                }
            },
            {
                key: "handleRangeDataFormat",
                value: function(e, a, r) {
                    var n = [], i = [], o = a[r].data.filter(function(c, d, h) {
                        return d === h.findIndex(function(m) {
                            return m.x === c.x;
                        });
                    }).map(function(c, d) {
                        return {
                            x: c.x,
                            overlaps: [],
                            y: []
                        };
                    });
                    if (e === "array") for(var s = 0; s < a[r].data.length; s++)Array.isArray(a[r].data[s]) ? (n.push(a[r].data[s][1][0]), i.push(a[r].data[s][1][1])) : (n.push(a[r].data[s]), i.push(a[r].data[s]));
                    else if (e === "xy") for(var l = function(c) {
                        var d = Array.isArray(a[r].data[c].y), h = V.randomId(), m = a[r].data[c].x, f = {
                            y1: d ? a[r].data[c].y[0] : a[r].data[c].y,
                            y2: d ? a[r].data[c].y[1] : a[r].data[c].y,
                            rangeName: h
                        };
                        a[r].data[c].rangeName = h;
                        var p = o.findIndex(function(g) {
                            return g.x === m;
                        });
                        o[p].y.push(f), n.push(f.y1), i.push(f.y2);
                    }, u = 0; u < a[r].data.length; u++)l(u);
                    return {
                        start: n,
                        end: i,
                        rangeUniques: o
                    };
                }
            },
            {
                key: "handleCandleStickBoxDataFormat",
                value: function(e, a, r) {
                    var n = this.w, i = n.config.chart.type === "boxPlot" || n.config.series[r].type === "boxPlot", o = [], s = [], l = [], u = [], c = [];
                    if (e === "array") if (i && a[r].data[0].length === 6 || !i && a[r].data[0].length === 5) for(var d = 0; d < a[r].data.length; d++)o.push(a[r].data[d][1]), s.push(a[r].data[d][2]), i ? (l.push(a[r].data[d][3]), u.push(a[r].data[d][4]), c.push(a[r].data[d][5])) : (u.push(a[r].data[d][3]), c.push(a[r].data[d][4]));
                    else for(var h = 0; h < a[r].data.length; h++)Array.isArray(a[r].data[h][1]) && (o.push(a[r].data[h][1][0]), s.push(a[r].data[h][1][1]), i ? (l.push(a[r].data[h][1][2]), u.push(a[r].data[h][1][3]), c.push(a[r].data[h][1][4])) : (u.push(a[r].data[h][1][2]), c.push(a[r].data[h][1][3])));
                    else if (e === "xy") for(var m = 0; m < a[r].data.length; m++)Array.isArray(a[r].data[m].y) && (o.push(a[r].data[m].y[0]), s.push(a[r].data[m].y[1]), i ? (l.push(a[r].data[m].y[2]), u.push(a[r].data[m].y[3]), c.push(a[r].data[m].y[4])) : (u.push(a[r].data[m].y[2]), c.push(a[r].data[m].y[3])));
                    return {
                        o,
                        h: s,
                        m: l,
                        l: u,
                        c
                    };
                }
            },
            {
                key: "parseDataAxisCharts",
                value: function(e) {
                    var a = this, r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.ctx, n = this.w.config, i = this.w.globals, o = new ua(r), s = n.labels.length > 0 ? n.labels.slice() : n.xaxis.categories.slice();
                    i.isRangeBar = n.chart.type === "rangeBar" && i.isBarHorizontal, i.hasXaxisGroups = n.xaxis.type === "category" && n.xaxis.group.groups.length > 0, i.hasXaxisGroups && (i.groups = n.xaxis.group.groups), e.forEach(function(m, f) {
                        m.name !== void 0 ? i.seriesNames.push(m.name) : i.seriesNames.push("series-" + parseInt(f + 1, 10));
                    }), this.coreUtils.setSeriesYAxisMappings();
                    var l = [], u = Qt(new Set(n.series.map(function(m) {
                        return m.group;
                    })));
                    n.series.forEach(function(m, f) {
                        var p = u.indexOf(m.group);
                        l[p] || (l[p] = []), l[p].push(i.seriesNames[f]);
                    }), i.seriesGroups = l;
                    for(var c = function() {
                        for(var m = 0; m < s.length; m++)if (typeof s[m] == "string") {
                            if (!o.isValidDate(s[m])) throw new Error("You have provided invalid Date format. Please provide a valid JavaScript Date");
                            a.twoDSeriesX.push(o.parseDate(s[m]));
                        } else a.twoDSeriesX.push(s[m]);
                    }, d = 0; d < e.length; d++){
                        if (this.twoDSeries = [], this.twoDSeriesX = [], this.threeDSeries = [], e[d].data === void 0) return void console.error("It is a possibility that you may have not included 'data' property in series.");
                        if (n.chart.type !== "rangeBar" && n.chart.type !== "rangeArea" && e[d].type !== "rangeBar" && e[d].type !== "rangeArea" || (i.isRangeData = !0, this.handleRangeData(e, d)), this.isMultiFormat()) this.isFormat2DArray() ? this.handleFormat2DArray(e, d) : this.isFormatXY() && this.handleFormatXY(e, d), n.chart.type !== "candlestick" && e[d].type !== "candlestick" && n.chart.type !== "boxPlot" && e[d].type !== "boxPlot" || this.handleCandleStickBoxData(e, d), i.series.push(this.twoDSeries), i.labels.push(this.twoDSeriesX), i.seriesX.push(this.twoDSeriesX), i.seriesGoals = this.seriesGoals, d !== this.activeSeriesIndex || this.fallbackToCategory || (i.isXNumeric = !0);
                        else {
                            n.xaxis.type === "datetime" ? (i.isXNumeric = !0, c(), i.seriesX.push(this.twoDSeriesX)) : n.xaxis.type === "numeric" && (i.isXNumeric = !0, s.length > 0 && (this.twoDSeriesX = s, i.seriesX.push(this.twoDSeriesX))), i.labels.push(this.twoDSeriesX);
                            var h = e[d].data.map(function(m) {
                                return V.parseNumber(m);
                            });
                            i.series.push(h);
                        }
                        i.seriesZ.push(this.threeDSeries), e[d].color !== void 0 ? i.seriesColors.push(e[d].color) : i.seriesColors.push(void 0);
                    }
                    return this.w;
                }
            },
            {
                key: "parseDataNonAxisCharts",
                value: function(e) {
                    var a = this.w.globals, r = this.w.config;
                    a.series = e.slice(), a.seriesNames = r.labels.slice();
                    for(var n = 0; n < a.series.length; n++)a.seriesNames[n] === void 0 && a.seriesNames.push("series-" + (n + 1));
                    return this.w;
                }
            },
            {
                key: "handleExternalLabelsData",
                value: function(e) {
                    var a = this.w.config, r = this.w.globals;
                    a.xaxis.categories.length > 0 ? r.labels = a.xaxis.categories : a.labels.length > 0 ? r.labels = a.labels.slice() : this.fallbackToCategory ? (r.labels = r.labels[0], r.seriesRange.length && (r.seriesRange.map(function(n) {
                        n.forEach(function(i) {
                            r.labels.indexOf(i.x) < 0 && i.x && r.labels.push(i.x);
                        });
                    }), r.labels = Array.from(new Set(r.labels.map(JSON.stringify)), JSON.parse)), a.xaxis.convertedCatToNumeric && (new Co(a).convertCatToNumericXaxis(a, this.ctx, r.seriesX[0]), this._generateExternalLabels(e))) : this._generateExternalLabels(e);
                }
            },
            {
                key: "_generateExternalLabels",
                value: function(e) {
                    var a = this.w.globals, r = this.w.config, n = [];
                    if (a.axisCharts) {
                        if (a.series.length > 0) if (this.isFormatXY()) for(var i = r.series.map(function(d, h) {
                            return d.data.filter(function(m, f, p) {
                                return p.findIndex(function(g) {
                                    return g.x === m.x;
                                }) === f;
                            });
                        }), o = i.reduce(function(d, h, m, f) {
                            return f[d].length > h.length ? d : m;
                        }, 0), s = 0; s < i[o].length; s++)n.push(s + 1);
                        else for(var l = 0; l < a.series[a.maxValsInArrayIndex].length; l++)n.push(l + 1);
                        a.seriesX = [];
                        for(var u = 0; u < e.length; u++)a.seriesX.push(n);
                        this.w.globals.isBarHorizontal || (a.isXNumeric = !0);
                    }
                    if (n.length === 0) {
                        n = a.axisCharts ? [] : a.series.map(function(d, h) {
                            return h + 1;
                        });
                        for(var c = 0; c < e.length; c++)a.seriesX.push(n);
                    }
                    a.labels = n, r.xaxis.convertedCatToNumeric && (a.categoryLabels = n.map(function(d) {
                        return r.xaxis.labels.formatter(d);
                    })), a.noLabelsProvided = !0;
                }
            },
            {
                key: "parseData",
                value: function(e) {
                    var a = this.w, r = a.config, n = a.globals;
                    if (this.excludeCollapsedSeriesInYAxis(), this.fallbackToCategory = !1, this.ctx.core.resetGlobals(), this.ctx.core.isMultipleY(), n.axisCharts ? (this.parseDataAxisCharts(e), this.coreUtils.getLargestSeries()) : this.parseDataNonAxisCharts(e), r.chart.stacked) {
                        var i = new nr(this.ctx);
                        n.series = i.setNullSeriesToZeroValues(n.series);
                    }
                    this.coreUtils.getSeriesTotals(), n.axisCharts && (n.stackedSeriesTotals = this.coreUtils.getStackedSeriesTotals(), n.stackedSeriesTotalsByGroups = this.coreUtils.getStackedSeriesTotalsByGroups()), this.coreUtils.getPercentSeries(), n.dataFormatXNumeric || n.isXNumeric && (r.xaxis.type !== "numeric" || r.labels.length !== 0 || r.xaxis.categories.length !== 0) || this.handleExternalLabelsData(e);
                    for(var o = this.coreUtils.getCategoryLabels(n.labels), s = 0; s < o.length; s++)if (Array.isArray(o[s])) {
                        n.isMultiLineX = !0;
                        break;
                    }
                }
            },
            {
                key: "excludeCollapsedSeriesInYAxis",
                value: function() {
                    var e = this.w, a = [];
                    e.globals.seriesYAxisMap.forEach(function(r, n) {
                        var i = 0;
                        r.forEach(function(o) {
                            e.globals.collapsedSeriesIndices.indexOf(o) !== -1 && i++;
                        }), i > 0 && i == r.length && a.push(n);
                    }), e.globals.ignoreYAxisIndexes = a.map(function(r) {
                        return r;
                    });
                }
            }
        ]), t;
    }(), so = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "svgStringToNode",
                value: function(e) {
                    return new DOMParser().parseFromString(e, "image/svg+xml").documentElement;
                }
            },
            {
                key: "scaleSvgNode",
                value: function(e, a) {
                    var r = parseFloat(e.getAttributeNS(null, "width")), n = parseFloat(e.getAttributeNS(null, "height"));
                    e.setAttributeNS(null, "width", r * a), e.setAttributeNS(null, "height", n * a), e.setAttributeNS(null, "viewBox", "0 0 " + r + " " + n);
                }
            },
            {
                key: "getSvgString",
                value: function(e) {
                    var a = this;
                    return new Promise(function(r) {
                        var n = a.w, i = e || n.config.chart.toolbar.export.scale || n.config.chart.toolbar.export.width / n.globals.svgWidth;
                        i || (i = 1);
                        var o = n.globals.svgWidth * i, s = n.globals.svgHeight * i, l = n.globals.dom.elWrap.cloneNode(!0);
                        l.style.width = o + "px", l.style.height = s + "px";
                        var u = new XMLSerializer().serializeToString(l), c = `
        <svg xmlns="http://www.w3.org/2000/svg"
          version="1.1"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          class="apexcharts-svg"
          xmlns:data="ApexChartsNS"
          transform="translate(0, 0)"
          width="`.concat(n.globals.svgWidth, 'px" height="').concat(n.globals.svgHeight, `px">
          <foreignObject width="100%" height="100%">
            <div xmlns="http://www.w3.org/1999/xhtml" style="width:`).concat(o, "px; height:").concat(s, `px;">
            <style type="text/css">
              .apexcharts-tooltip, .apexcharts-toolbar, .apexcharts-xaxistooltip, .apexcharts-yaxistooltip, .apexcharts-xcrosshairs, .apexcharts-ycrosshairs, .apexcharts-zoom-rect, .apexcharts-selection-rect {
                display: none;
              }
            </style>
              `).concat(u, `
            </div>
          </foreignObject>
        </svg>
      `), d = a.svgStringToNode(c);
                        i !== 1 && a.scaleSvgNode(d, i), a.convertImagesToBase64(d).then(function() {
                            c = new XMLSerializer().serializeToString(d), r(c.replace(/&nbsp;/g, "&#160;"));
                        });
                    });
                }
            },
            {
                key: "convertImagesToBase64",
                value: function(e) {
                    var a = this, r = e.getElementsByTagName("image"), n = Array.from(r).map(function(i) {
                        var o = i.getAttributeNS("http://www.w3.org/1999/xlink", "href");
                        return o && !o.startsWith("data:") ? a.getBase64FromUrl(o).then(function(s) {
                            i.setAttributeNS("http://www.w3.org/1999/xlink", "href", s);
                        }).catch(function(s) {
                            console.error("Error converting image to base64:", s);
                        }) : Promise.resolve();
                    });
                    return Promise.all(n);
                }
            },
            {
                key: "getBase64FromUrl",
                value: function(e) {
                    return new Promise(function(a, r) {
                        var n = new Image;
                        n.crossOrigin = "Anonymous", n.onload = function() {
                            var i = document.createElement("canvas");
                            i.width = n.width, i.height = n.height, i.getContext("2d").drawImage(n, 0, 0), a(i.toDataURL());
                        }, n.onerror = r, n.src = e;
                    });
                }
            },
            {
                key: "svgUrl",
                value: function() {
                    var e = this;
                    return new Promise(function(a) {
                        e.getSvgString().then(function(r) {
                            var n = new Blob([
                                r
                            ], {
                                type: "image/svg+xml;charset=utf-8"
                            });
                            a(URL.createObjectURL(n));
                        });
                    });
                }
            },
            {
                key: "dataURI",
                value: function(e) {
                    var a = this;
                    return new Promise(function(r) {
                        var n = a.w, i = e ? e.scale || e.width / n.globals.svgWidth : 1, o = document.createElement("canvas");
                        o.width = n.globals.svgWidth * i, o.height = parseInt(n.globals.dom.elWrap.style.height, 10) * i;
                        var s = n.config.chart.background !== "transparent" && n.config.chart.background ? n.config.chart.background : "#fff", l = o.getContext("2d");
                        l.fillStyle = s, l.fillRect(0, 0, o.width * i, o.height * i), a.getSvgString(i).then(function(u) {
                            var c = "data:image/svg+xml," + encodeURIComponent(u), d = new Image;
                            d.crossOrigin = "anonymous", d.onload = function() {
                                if (l.drawImage(d, 0, 0), o.msToBlob) {
                                    var h = o.msToBlob();
                                    r({
                                        blob: h
                                    });
                                } else {
                                    var m = o.toDataURL("image/png");
                                    r({
                                        imgURI: m
                                    });
                                }
                            }, d.src = c;
                        });
                    });
                }
            },
            {
                key: "exportToSVG",
                value: function() {
                    var e = this;
                    this.svgUrl().then(function(a) {
                        e.triggerDownload(a, e.w.config.chart.toolbar.export.svg.filename, ".svg");
                    });
                }
            },
            {
                key: "exportToPng",
                value: function() {
                    var e = this, a = this.w.config.chart.toolbar.export.scale, r = this.w.config.chart.toolbar.export.width, n = a ? {
                        scale: a
                    } : r ? {
                        width: r
                    } : void 0;
                    this.dataURI(n).then(function(i) {
                        var o = i.imgURI, s = i.blob;
                        s ? navigator.msSaveOrOpenBlob(s, e.w.globals.chartID + ".png") : e.triggerDownload(o, e.w.config.chart.toolbar.export.png.filename, ".png");
                    });
                }
            },
            {
                key: "exportToCSV",
                value: function(e) {
                    var a = this, r = e.series, n = e.fileName, i = e.columnDelimiter, o = i === void 0 ? "," : i, s = e.lineDelimiter, l = s === void 0 ? `
` : s, u = this.w;
                    r || (r = u.config.series);
                    var c = [], d = [], h = "", m = u.globals.series.map(function(x, C) {
                        return u.globals.collapsedSeriesIndices.indexOf(C) === -1 ? x : [];
                    }), f = function(x) {
                        return typeof u.config.chart.toolbar.export.csv.categoryFormatter == "function" ? u.config.chart.toolbar.export.csv.categoryFormatter(x) : u.config.xaxis.type === "datetime" && String(x).length >= 10 ? new Date(x).toDateString() : V.isNumber(x) ? x : x.split(o).join("");
                    }, p = function(x) {
                        return typeof u.config.chart.toolbar.export.csv.valueFormatter == "function" ? u.config.chart.toolbar.export.csv.valueFormatter(x) : x;
                    }, g = Math.max.apply(Math, Qt(r.map(function(x) {
                        return x.data ? x.data.length : 0;
                    }))), v = new bf(this.ctx), b = new tn(this.ctx), k = function(x) {
                        var C = "";
                        if (u.globals.axisCharts) {
                            if (u.config.xaxis.type === "category" || u.config.xaxis.convertedCatToNumeric) if (u.globals.isBarHorizontal) {
                                var w = u.globals.yLabelFormatters[0], F = new nr(a.ctx).getActiveConfigSeriesIndex();
                                C = w(u.globals.labels[x], {
                                    seriesIndex: F,
                                    dataPointIndex: x,
                                    w: u
                                });
                            } else C = b.getLabel(u.globals.labels, u.globals.timescaleLabels, 0, x).text;
                            u.config.xaxis.type === "datetime" && (u.config.xaxis.categories.length ? C = u.config.xaxis.categories[x] : u.config.labels.length && (C = u.config.labels[x]));
                        } else C = u.config.labels[x];
                        return C === null ? "nullvalue" : (Array.isArray(C) && (C = C.join(" ")), V.isNumber(C) ? C : C.split(o).join(""));
                    }, S = function(x, C) {
                        if (c.length && C === 0 && d.push(c.join(o)), x.data) {
                            x.data = x.data.length && x.data || Qt(Array(g)).map(function() {
                                return "";
                            });
                            for(var w = 0; w < x.data.length; w++){
                                c = [];
                                var F = k(w);
                                if (F !== "nullvalue") {
                                    if (F || (v.isFormatXY() ? F = r[C].data[w].x : v.isFormat2DArray() && (F = r[C].data[w] ? r[C].data[w][0] : "")), C === 0) {
                                        c.push(f(F));
                                        for(var D = 0; D < u.globals.series.length; D++){
                                            var _, A = v.isFormatXY() ? (_ = r[D].data[w]) === null || _ === void 0 ? void 0 : _.y : m[D][w];
                                            c.push(p(A));
                                        }
                                    }
                                    (u.config.chart.type === "candlestick" || x.type && x.type === "candlestick") && (c.pop(), c.push(u.globals.seriesCandleO[C][w]), c.push(u.globals.seriesCandleH[C][w]), c.push(u.globals.seriesCandleL[C][w]), c.push(u.globals.seriesCandleC[C][w])), (u.config.chart.type === "boxPlot" || x.type && x.type === "boxPlot") && (c.pop(), c.push(u.globals.seriesCandleO[C][w]), c.push(u.globals.seriesCandleH[C][w]), c.push(u.globals.seriesCandleM[C][w]), c.push(u.globals.seriesCandleL[C][w]), c.push(u.globals.seriesCandleC[C][w])), u.config.chart.type === "rangeBar" && (c.pop(), c.push(u.globals.seriesRangeStart[C][w]), c.push(u.globals.seriesRangeEnd[C][w])), c.length && d.push(c.join(o));
                                }
                            }
                        }
                    };
                    c.push(u.config.chart.toolbar.export.csv.headerCategory), u.config.chart.type === "boxPlot" ? (c.push("minimum"), c.push("q1"), c.push("median"), c.push("q3"), c.push("maximum")) : u.config.chart.type === "candlestick" ? (c.push("open"), c.push("high"), c.push("low"), c.push("close")) : u.config.chart.type === "rangeBar" ? (c.push("minimum"), c.push("maximum")) : r.map(function(x, C) {
                        var w = (x.name ? x.name : "series-".concat(C)) + "";
                        u.globals.axisCharts && c.push(w.split(o).join("") ? w.split(o).join("") : "series-".concat(C));
                    }), u.globals.axisCharts || (c.push(u.config.chart.toolbar.export.csv.headerValue), d.push(c.join(o))), u.globals.allSeriesHasEqualX || !u.globals.axisCharts || u.config.xaxis.categories.length || u.config.labels.length ? r.map(function(x, C) {
                        u.globals.axisCharts ? S(x, C) : ((c = []).push(f(u.globals.labels[C])), c.push(p(m[C])), d.push(c.join(o)));
                    }) : function() {
                        var x = new Set, C = {};
                        r.forEach(function(w, F) {
                            w?.data.forEach(function(D) {
                                var _, A;
                                if (v.isFormatXY()) _ = D.x, A = D.y;
                                else {
                                    if (!v.isFormat2DArray()) return;
                                    _ = D[0], A = D[1];
                                }
                                C[_] || (C[_] = Array(r.length).fill("")), C[_][F] = p(A), x.add(_);
                            });
                        }), c.length && d.push(c.join(o)), Array.from(x).sort().forEach(function(w) {
                            d.push([
                                f(w),
                                C[w].join(o)
                            ]);
                        });
                    }(), h += d.join(l), this.triggerDownload("data:text/csv; charset=utf-8," + encodeURIComponent("\uFEFF" + h), n || u.config.chart.toolbar.export.csv.filename, ".csv");
                }
            },
            {
                key: "triggerDownload",
                value: function(e, a, r) {
                    var n = document.createElement("a");
                    n.href = e, n.download = (a || this.w.globals.chartID) + r, document.body.appendChild(n), n.click(), document.body.removeChild(n);
                }
            }
        ]), t;
    }(), Do = function() {
        function t(e, a) {
            Ae(this, t), this.ctx = e, this.elgrid = a, this.w = e.w;
            var r = this.w;
            this.axesUtils = new tn(e), this.xaxisLabels = r.globals.labels.slice(), r.globals.timescaleLabels.length > 0 && !r.globals.isBarHorizontal && (this.xaxisLabels = r.globals.timescaleLabels.slice()), r.config.xaxis.overwriteCategories && (this.xaxisLabels = r.config.xaxis.overwriteCategories), this.drawnLabels = [], this.drawnLabelsRects = [], r.config.xaxis.position === "top" ? this.offY = 0 : this.offY = r.globals.gridHeight, this.offY = this.offY + r.config.xaxis.axisBorder.offsetY, this.isCategoryBarHorizontal = r.config.chart.type === "bar" && r.config.plotOptions.bar.horizontal, this.xaxisFontSize = r.config.xaxis.labels.style.fontSize, this.xaxisFontFamily = r.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = r.config.xaxis.labels.style.colors, this.xaxisBorderWidth = r.config.xaxis.axisBorder.width, this.isCategoryBarHorizontal && (this.xaxisBorderWidth = r.config.yaxis[0].axisBorder.width.toString()), this.xaxisBorderWidth.indexOf("%") > -1 ? this.xaxisBorderWidth = r.globals.gridWidth * parseInt(this.xaxisBorderWidth, 10) / 100 : this.xaxisBorderWidth = parseInt(this.xaxisBorderWidth, 10), this.xaxisBorderHeight = r.config.xaxis.axisBorder.height, this.yaxis = r.config.yaxis[0];
        }
        return De(t, [
            {
                key: "drawXaxis",
                value: function() {
                    var e = this.w, a = new he(this.ctx), r = a.group({
                        class: "apexcharts-xaxis",
                        transform: "translate(".concat(e.config.xaxis.offsetX, ", ").concat(e.config.xaxis.offsetY, ")")
                    }), n = a.group({
                        class: "apexcharts-xaxis-texts-g",
                        transform: "translate(".concat(e.globals.translateXAxisX, ", ").concat(e.globals.translateXAxisY, ")")
                    });
                    r.add(n);
                    for(var i = [], o = 0; o < this.xaxisLabels.length; o++)i.push(this.xaxisLabels[o]);
                    if (this.drawXAxisLabelAndGroup(!0, a, n, i, e.globals.isXNumeric, function(f, p) {
                        return p;
                    }), e.globals.hasXaxisGroups) {
                        var s = e.globals.groups;
                        i = [];
                        for(var l = 0; l < s.length; l++)i.push(s[l].title);
                        var u = {};
                        e.config.xaxis.group.style && (u.xaxisFontSize = e.config.xaxis.group.style.fontSize, u.xaxisFontFamily = e.config.xaxis.group.style.fontFamily, u.xaxisForeColors = e.config.xaxis.group.style.colors, u.fontWeight = e.config.xaxis.group.style.fontWeight, u.cssClass = e.config.xaxis.group.style.cssClass), this.drawXAxisLabelAndGroup(!1, a, n, i, !1, function(f, p) {
                            return s[f].cols * p;
                        }, u);
                    }
                    if (e.config.xaxis.title.text !== void 0) {
                        var c = a.group({
                            class: "apexcharts-xaxis-title"
                        }), d = a.drawText({
                            x: e.globals.gridWidth / 2 + e.config.xaxis.title.offsetX,
                            y: this.offY + parseFloat(this.xaxisFontSize) + (e.config.xaxis.position === "bottom" ? e.globals.xAxisLabelsHeight : -e.globals.xAxisLabelsHeight - 10) + e.config.xaxis.title.offsetY,
                            text: e.config.xaxis.title.text,
                            textAnchor: "middle",
                            fontSize: e.config.xaxis.title.style.fontSize,
                            fontFamily: e.config.xaxis.title.style.fontFamily,
                            fontWeight: e.config.xaxis.title.style.fontWeight,
                            foreColor: e.config.xaxis.title.style.color,
                            cssClass: "apexcharts-xaxis-title-text " + e.config.xaxis.title.style.cssClass
                        });
                        c.add(d), r.add(c);
                    }
                    if (e.config.xaxis.axisBorder.show) {
                        var h = e.globals.barPadForNumericAxis, m = a.drawLine(e.globals.padHorizontal + e.config.xaxis.axisBorder.offsetX - h, this.offY, this.xaxisBorderWidth + h, this.offY, e.config.xaxis.axisBorder.color, 0, this.xaxisBorderHeight);
                        this.elgrid && this.elgrid.elGridBorders && e.config.grid.show ? this.elgrid.elGridBorders.add(m) : r.add(m);
                    }
                    return r;
                }
            },
            {
                key: "drawXAxisLabelAndGroup",
                value: function(e, a, r, n, i, o) {
                    var s, l = this, u = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : {}, c = [], d = [], h = this.w, m = u.xaxisFontSize || this.xaxisFontSize, f = u.xaxisFontFamily || this.xaxisFontFamily, p = u.xaxisForeColors || this.xaxisForeColors, g = u.fontWeight || h.config.xaxis.labels.style.fontWeight, v = u.cssClass || h.config.xaxis.labels.style.cssClass, b = h.globals.padHorizontal, k = n.length, S = h.config.xaxis.type === "category" ? h.globals.dataPoints : k;
                    if (S === 0 && k > S && (S = k), i) {
                        var x = Math.max(Number(h.config.xaxis.tickAmount) || 1, S > 1 ? S - 1 : S);
                        s = h.globals.gridWidth / Math.min(x, k - 1), b = b + o(0, s) / 2 + h.config.xaxis.labels.offsetX;
                    } else s = h.globals.gridWidth / S, b = b + o(0, s) + h.config.xaxis.labels.offsetX;
                    for(var C = function(F) {
                        var D = b - o(F, s) / 2 + h.config.xaxis.labels.offsetX;
                        F === 0 && k === 1 && s / 2 === b && S === 1 && (D = h.globals.gridWidth / 2);
                        var _ = l.axesUtils.getLabel(n, h.globals.timescaleLabels, D, F, c, m, e), A = 28;
                        if (h.globals.rotateXLabels && e && (A = 22), h.config.xaxis.title.text && h.config.xaxis.position === "top" && (A += parseFloat(h.config.xaxis.title.style.fontSize) + 2), e || (A = A + parseFloat(m) + (h.globals.xAxisLabelsHeight - h.globals.xAxisGroupLabelsHeight) + (h.globals.rotateXLabels ? 10 : 0)), _ = h.config.xaxis.tickAmount !== void 0 && h.config.xaxis.tickAmount !== "dataPoints" && h.config.xaxis.type !== "datetime" ? l.axesUtils.checkLabelBasedOnTickamount(F, _, k) : l.axesUtils.checkForOverflowingLabels(F, _, k, c, d), h.config.xaxis.labels.show) {
                            var E = a.drawText({
                                x: _.x,
                                y: l.offY + h.config.xaxis.labels.offsetY + A - (h.config.xaxis.position === "top" ? h.globals.xAxisHeight + h.config.xaxis.axisTicks.height - 2 : 0),
                                text: _.text,
                                textAnchor: "middle",
                                fontWeight: _.isBold ? 600 : g,
                                fontSize: m,
                                fontFamily: f,
                                foreColor: Array.isArray(p) ? e && h.config.xaxis.convertedCatToNumeric ? p[h.globals.minX + F - 1] : p[F] : p,
                                isPlainText: !1,
                                cssClass: (e ? "apexcharts-xaxis-label " : "apexcharts-xaxis-group-label ") + v
                            });
                            if (r.add(E), E.on("click", function(P) {
                                if (typeof h.config.chart.events.xAxisLabelClick == "function") {
                                    var M = Object.assign({}, h, {
                                        labelIndex: F
                                    });
                                    h.config.chart.events.xAxisLabelClick(P, l.ctx, M);
                                }
                            }), e) {
                                var B = document.createElementNS(h.globals.SVGNS, "title");
                                B.textContent = Array.isArray(_.text) ? _.text.join(" ") : _.text, E.node.appendChild(B), _.text !== "" && (c.push(_.text), d.push(_));
                            }
                        }
                        F < k - 1 && (b += o(F + 1, s));
                    }, w = 0; w <= k - 1; w++)C(w);
                }
            },
            {
                key: "drawXaxisInversed",
                value: function(e) {
                    var a, r, n = this, i = this.w, o = new he(this.ctx), s = i.config.yaxis[0].opposite ? i.globals.translateYAxisX[e] : 0, l = o.group({
                        class: "apexcharts-yaxis apexcharts-xaxis-inversed",
                        rel: e
                    }), u = o.group({
                        class: "apexcharts-yaxis-texts-g apexcharts-xaxis-inversed-texts-g",
                        transform: "translate(" + s + ", 0)"
                    });
                    l.add(u);
                    var c = [];
                    if (i.config.yaxis[e].show) for(var d = 0; d < this.xaxisLabels.length; d++)c.push(this.xaxisLabels[d]);
                    a = i.globals.gridHeight / c.length, r = -a / 2.2;
                    var h = i.globals.yLabelFormatters[0], m = i.config.yaxis[0].labels;
                    if (m.show) for(var f = function(x) {
                        var C = c[x] === void 0 ? "" : c[x];
                        C = h(C, {
                            seriesIndex: e,
                            dataPointIndex: x,
                            w: i
                        });
                        var w = n.axesUtils.getYAxisForeColor(m.style.colors, e), F = 0;
                        Array.isArray(C) && (F = C.length / 2 * parseInt(m.style.fontSize, 10));
                        var D = m.offsetX - 15, _ = "end";
                        n.yaxis.opposite && (_ = "start"), i.config.yaxis[0].labels.align === "left" ? (D = m.offsetX, _ = "start") : i.config.yaxis[0].labels.align === "center" ? (D = m.offsetX, _ = "middle") : i.config.yaxis[0].labels.align === "right" && (_ = "end");
                        var A = o.drawText({
                            x: D,
                            y: r + a + m.offsetY - F,
                            text: C,
                            textAnchor: _,
                            foreColor: Array.isArray(w) ? w[x] : w,
                            fontSize: m.style.fontSize,
                            fontFamily: m.style.fontFamily,
                            fontWeight: m.style.fontWeight,
                            isPlainText: !1,
                            cssClass: "apexcharts-yaxis-label " + m.style.cssClass,
                            maxWidth: m.maxWidth
                        });
                        u.add(A), A.on("click", function(P) {
                            if (typeof i.config.chart.events.xAxisLabelClick == "function") {
                                var M = Object.assign({}, i, {
                                    labelIndex: x
                                });
                                i.config.chart.events.xAxisLabelClick(P, n.ctx, M);
                            }
                        });
                        var E = document.createElementNS(i.globals.SVGNS, "title");
                        if (E.textContent = Array.isArray(C) ? C.join(" ") : C, A.node.appendChild(E), i.config.yaxis[e].labels.rotate !== 0) {
                            var B = o.rotateAroundCenter(A.node);
                            A.node.setAttribute("transform", "rotate(".concat(i.config.yaxis[e].labels.rotate, " 0 ").concat(B.y, ")"));
                        }
                        r += a;
                    }, p = 0; p <= c.length - 1; p++)f(p);
                    if (i.config.yaxis[0].title.text !== void 0) {
                        var g = o.group({
                            class: "apexcharts-yaxis-title apexcharts-xaxis-title-inversed",
                            transform: "translate(" + s + ", 0)"
                        }), v = o.drawText({
                            x: i.config.yaxis[0].title.offsetX,
                            y: i.globals.gridHeight / 2 + i.config.yaxis[0].title.offsetY,
                            text: i.config.yaxis[0].title.text,
                            textAnchor: "middle",
                            foreColor: i.config.yaxis[0].title.style.color,
                            fontSize: i.config.yaxis[0].title.style.fontSize,
                            fontWeight: i.config.yaxis[0].title.style.fontWeight,
                            fontFamily: i.config.yaxis[0].title.style.fontFamily,
                            cssClass: "apexcharts-yaxis-title-text " + i.config.yaxis[0].title.style.cssClass
                        });
                        g.add(v), l.add(g);
                    }
                    var b = 0;
                    this.isCategoryBarHorizontal && i.config.yaxis[0].opposite && (b = i.globals.gridWidth);
                    var k = i.config.xaxis.axisBorder;
                    if (k.show) {
                        var S = o.drawLine(i.globals.padHorizontal + k.offsetX + b, 1 + k.offsetY, i.globals.padHorizontal + k.offsetX + b, i.globals.gridHeight + k.offsetY, k.color, 0);
                        this.elgrid && this.elgrid.elGridBorders && i.config.grid.show ? this.elgrid.elGridBorders.add(S) : l.add(S);
                    }
                    return i.config.yaxis[0].axisTicks.show && this.axesUtils.drawYAxisTicks(b, c.length, i.config.yaxis[0].axisBorder, i.config.yaxis[0].axisTicks, 0, a, l), l;
                }
            },
            {
                key: "drawXaxisTicks",
                value: function(e, a, r) {
                    var n = this.w, i = e;
                    if (!(e < 0 || e - 2 > n.globals.gridWidth)) {
                        var o = this.offY + n.config.xaxis.axisTicks.offsetY;
                        if (a = a + o + n.config.xaxis.axisTicks.height, n.config.xaxis.position === "top" && (a = o - n.config.xaxis.axisTicks.height), n.config.xaxis.axisTicks.show) {
                            var s = new he(this.ctx).drawLine(e + n.config.xaxis.axisTicks.offsetX, o + n.config.xaxis.offsetY, i + n.config.xaxis.axisTicks.offsetX, a + n.config.xaxis.offsetY, n.config.xaxis.axisTicks.color);
                            r.add(s), s.node.classList.add("apexcharts-xaxis-tick");
                        }
                    }
                }
            },
            {
                key: "getXAxisTicksPositions",
                value: function() {
                    var e = this.w, a = [], r = this.xaxisLabels.length, n = e.globals.padHorizontal;
                    if (e.globals.timescaleLabels.length > 0) for(var i = 0; i < r; i++)n = this.xaxisLabels[i].position, a.push(n);
                    else for(var o = r, s = 0; s < o; s++){
                        var l = o;
                        e.globals.isXNumeric && e.config.chart.type !== "bar" && (l -= 1), n += e.globals.gridWidth / l, a.push(n);
                    }
                    return a;
                }
            },
            {
                key: "xAxisLabelCorrections",
                value: function() {
                    var e = this.w, a = new he(this.ctx), r = e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g"), n = e.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-texts-g text:not(.apexcharts-xaxis-group-label)"), i = e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-inversed text"), o = e.globals.dom.baseEl.querySelectorAll(".apexcharts-xaxis-inversed-texts-g text tspan");
                    if (e.globals.rotateXLabels || e.config.xaxis.labels.rotateAlways) for(var s = 0; s < n.length; s++){
                        var l = a.rotateAroundCenter(n[s]);
                        l.y = l.y - 1, l.x = l.x + 1, n[s].setAttribute("transform", "rotate(".concat(e.config.xaxis.labels.rotate, " ").concat(l.x, " ").concat(l.y, ")")), n[s].setAttribute("text-anchor", "end"), r.setAttribute("transform", "translate(0, ".concat(-10, ")"));
                        var u = n[s].childNodes;
                        e.config.xaxis.labels.trim && Array.prototype.forEach.call(u, function(m) {
                            a.placeTextWithEllipsis(m, m.textContent, e.globals.xAxisLabelsHeight - (e.config.legend.position === "bottom" ? 20 : 10));
                        });
                    }
                    else (function() {
                        for(var m = e.globals.gridWidth / (e.globals.labels.length + 1), f = 0; f < n.length; f++){
                            var p = n[f].childNodes;
                            e.config.xaxis.labels.trim && e.config.xaxis.type !== "datetime" && Array.prototype.forEach.call(p, function(g) {
                                a.placeTextWithEllipsis(g, g.textContent, m);
                            });
                        }
                    })();
                    if (i.length > 0) {
                        var c = i[i.length - 1].getBBox(), d = i[0].getBBox();
                        c.x < -20 && i[i.length - 1].parentNode.removeChild(i[i.length - 1]), d.x + d.width > e.globals.gridWidth && !e.globals.isBarHorizontal && i[0].parentNode.removeChild(i[0]);
                        for(var h = 0; h < o.length; h++)a.placeTextWithEllipsis(o[h], o[h].textContent, e.config.yaxis[0].labels.maxWidth - (e.config.yaxis[0].title.text ? 2 * parseFloat(e.config.yaxis[0].title.style.fontSize) : 0) - 15);
                    }
                }
            }
        ]), t;
    }(), U1 = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
            var a = this.w;
            this.xaxisLabels = a.globals.labels.slice(), this.axesUtils = new tn(e), this.isRangeBar = a.globals.seriesRange.length && a.globals.isBarHorizontal, a.globals.timescaleLabels.length > 0 && (this.xaxisLabels = a.globals.timescaleLabels.slice());
        }
        return De(t, [
            {
                key: "drawGridArea",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, a = this.w, r = new he(this.ctx);
                    e || (e = r.group({
                        class: "apexcharts-grid"
                    }));
                    var n = r.drawLine(a.globals.padHorizontal, 1, a.globals.padHorizontal, a.globals.gridHeight, "transparent"), i = r.drawLine(a.globals.padHorizontal, a.globals.gridHeight, a.globals.gridWidth, a.globals.gridHeight, "transparent");
                    return e.add(i), e.add(n), e;
                }
            },
            {
                key: "drawGrid",
                value: function() {
                    if (this.w.globals.axisCharts) {
                        var e = this.renderGrid();
                        return this.drawGridArea(e.el), e;
                    }
                    return null;
                }
            },
            {
                key: "createGridMask",
                value: function() {
                    var e = this.w, a = e.globals, r = new he(this.ctx), n = Array.isArray(e.config.stroke.width) ? Math.max.apply(Math, Qt(e.config.stroke.width)) : e.config.stroke.width, i = function(c) {
                        var d = document.createElementNS(a.SVGNS, "clipPath");
                        return d.setAttribute("id", c), d;
                    };
                    a.dom.elGridRectMask = i("gridRectMask".concat(a.cuid)), a.dom.elGridRectBarMask = i("gridRectBarMask".concat(a.cuid)), a.dom.elGridRectMarkerMask = i("gridRectMarkerMask".concat(a.cuid)), a.dom.elForecastMask = i("forecastMask".concat(a.cuid)), a.dom.elNonForecastMask = i("nonForecastMask".concat(a.cuid));
                    var o = 0, s = 0;
                    ([
                        "bar",
                        "rangeBar",
                        "candlestick",
                        "boxPlot"
                    ].includes(e.config.chart.type) || e.globals.comboBarCount > 0) && e.globals.isXNumeric && !e.globals.isBarHorizontal && (o = Math.max(e.config.grid.padding.left, a.barPadForNumericAxis), s = Math.max(e.config.grid.padding.right, a.barPadForNumericAxis)), a.dom.elGridRect = r.drawRect(-n / 2 - 2, -n / 2 - 2, a.gridWidth + n + 4, a.gridHeight + n + 4, 0, "#fff"), a.dom.elGridRectBar = r.drawRect(-n / 2 - o - 2, -n / 2 - 2, a.gridWidth + n + s + o + 4, a.gridHeight + n + 4, 0, "#fff");
                    var l = e.globals.markers.largestSize;
                    a.dom.elGridRectMarker = r.drawRect(-l, -l, a.gridWidth + 2 * l, a.gridHeight + 2 * l, 0, "#fff"), a.dom.elGridRectMask.appendChild(a.dom.elGridRect.node), a.dom.elGridRectBarMask.appendChild(a.dom.elGridRectBar.node), a.dom.elGridRectMarkerMask.appendChild(a.dom.elGridRectMarker.node);
                    var u = a.dom.baseEl.querySelector("defs");
                    u.appendChild(a.dom.elGridRectMask), u.appendChild(a.dom.elGridRectBarMask), u.appendChild(a.dom.elGridRectMarkerMask), u.appendChild(a.dom.elForecastMask), u.appendChild(a.dom.elNonForecastMask);
                }
            },
            {
                key: "_drawGridLines",
                value: function(e) {
                    var a = e.i, r = e.x1, n = e.y1, i = e.x2, o = e.y2, s = e.xCount, l = e.parent, u = this.w;
                    if (!(a === 0 && u.globals.skipFirstTimelinelabel || a === s - 1 && u.globals.skipLastTimelinelabel && !u.config.xaxis.labels.formatter || u.config.chart.type === "radar")) {
                        u.config.grid.xaxis.lines.show && this._drawGridLine({
                            i: a,
                            x1: r,
                            y1: n,
                            x2: i,
                            y2: o,
                            xCount: s,
                            parent: l
                        });
                        var c = 0;
                        if (u.globals.hasXaxisGroups && u.config.xaxis.tickPlacement === "between") {
                            var d = u.globals.groups;
                            if (d) {
                                for(var h = 0, m = 0; h < a && m < d.length; m++)h += d[m].cols;
                                h === a && (c = .6 * u.globals.xAxisLabelsHeight);
                            }
                        }
                        new Do(this.ctx).drawXaxisTicks(r, c, u.globals.dom.elGraphical);
                    }
                }
            },
            {
                key: "_drawGridLine",
                value: function(e) {
                    var a = e.i, r = e.x1, n = e.y1, i = e.x2, o = e.y2, s = e.xCount, l = e.parent, u = this.w, c = l.node.classList.contains("apexcharts-gridlines-horizontal"), d = u.globals.barPadForNumericAxis, h = n === 0 && o === 0 || r === 0 && i === 0 || n === u.globals.gridHeight && o === u.globals.gridHeight || u.globals.isBarHorizontal && (a === 0 || a === s - 1), m = new he(this).drawLine(r - (c ? d : 0), n, i + (c ? d : 0), o, u.config.grid.borderColor, u.config.grid.strokeDashArray);
                    m.node.classList.add("apexcharts-gridline"), h && u.config.grid.show ? this.elGridBorders.add(m) : l.add(m);
                }
            },
            {
                key: "_drawGridBandRect",
                value: function(e) {
                    var a = e.c, r = e.x1, n = e.y1, i = e.x2, o = e.y2, s = e.type, l = this.w, u = new he(this.ctx), c = l.globals.barPadForNumericAxis, d = l.config.grid[s].colors[a], h = u.drawRect(r - (s === "row" ? c : 0), n, i + (s === "row" ? 2 * c : 0), o, 0, d, l.config.grid[s].opacity);
                    this.elg.add(h), h.attr("clip-path", "url(#gridRectMask".concat(l.globals.cuid, ")")), h.node.classList.add("apexcharts-grid-".concat(s));
                }
            },
            {
                key: "_drawXYLines",
                value: function(e) {
                    var a = this, r = e.xCount, n = e.tickAmount, i = this.w;
                    if (i.config.grid.xaxis.lines.show || i.config.xaxis.axisTicks.show) {
                        var o, s = i.globals.padHorizontal, l = i.globals.gridHeight;
                        i.globals.timescaleLabels.length ? function(f) {
                            for(var p = f.xC, g = f.x1, v = f.y1, b = f.x2, k = f.y2, S = 0; S < p; S++)g = a.xaxisLabels[S].position, b = a.xaxisLabels[S].position, a._drawGridLines({
                                i: S,
                                x1: g,
                                y1: v,
                                x2: b,
                                y2: k,
                                xCount: r,
                                parent: a.elgridLinesV
                            });
                        }({
                            xC: r,
                            x1: s,
                            y1: 0,
                            x2: o,
                            y2: l
                        }) : (i.globals.isXNumeric && (r = i.globals.xAxisScale.result.length), function(f) {
                            for(var p = f.xC, g = f.x1, v = f.y1, b = f.x2, k = f.y2, S = 0; S < p + (i.globals.isXNumeric ? 0 : 1); S++)S === 0 && p === 1 && i.globals.dataPoints === 1 && (b = g = i.globals.gridWidth / 2), a._drawGridLines({
                                i: S,
                                x1: g,
                                y1: v,
                                x2: b,
                                y2: k,
                                xCount: r,
                                parent: a.elgridLinesV
                            }), b = g += i.globals.gridWidth / (i.globals.isXNumeric ? p - 1 : p);
                        }({
                            xC: r,
                            x1: s,
                            y1: 0,
                            x2: o,
                            y2: l
                        }));
                    }
                    if (i.config.grid.yaxis.lines.show) {
                        var u = 0, c = 0, d = i.globals.gridWidth, h = n + 1;
                        this.isRangeBar && (h = i.globals.labels.length);
                        for(var m = 0; m < h + (this.isRangeBar ? 1 : 0); m++)this._drawGridLine({
                            i: m,
                            xCount: h + (this.isRangeBar ? 1 : 0),
                            x1: 0,
                            y1: u,
                            x2: d,
                            y2: c,
                            parent: this.elgridLinesH
                        }), c = u += i.globals.gridHeight / (this.isRangeBar ? h : n);
                    }
                }
            },
            {
                key: "_drawInvertedXYLines",
                value: function(e) {
                    var a = e.xCount, r = this.w;
                    if (r.config.grid.xaxis.lines.show || r.config.xaxis.axisTicks.show) for(var n, i = r.globals.padHorizontal, o = r.globals.gridHeight, s = 0; s < a + 1; s++)r.config.grid.xaxis.lines.show && this._drawGridLine({
                        i: s,
                        xCount: a + 1,
                        x1: i,
                        y1: 0,
                        x2: n,
                        y2: o,
                        parent: this.elgridLinesV
                    }), new Do(this.ctx).drawXaxisTicks(i, 0, r.globals.dom.elGraphical), n = i += r.globals.gridWidth / a;
                    if (r.config.grid.yaxis.lines.show) for(var l = 0, u = 0, c = r.globals.gridWidth, d = 0; d < r.globals.dataPoints + 1; d++)this._drawGridLine({
                        i: d,
                        xCount: r.globals.dataPoints + 1,
                        x1: 0,
                        y1: l,
                        x2: c,
                        y2: u,
                        parent: this.elgridLinesH
                    }), u = l += r.globals.gridHeight / r.globals.dataPoints;
                }
            },
            {
                key: "renderGrid",
                value: function() {
                    var e = this.w, a = e.globals, r = new he(this.ctx);
                    this.elg = r.group({
                        class: "apexcharts-grid"
                    }), this.elgridLinesH = r.group({
                        class: "apexcharts-gridlines-horizontal"
                    }), this.elgridLinesV = r.group({
                        class: "apexcharts-gridlines-vertical"
                    }), this.elGridBorders = r.group({
                        class: "apexcharts-grid-borders"
                    }), this.elg.add(this.elgridLinesH), this.elg.add(this.elgridLinesV), e.config.grid.show || (this.elgridLinesV.hide(), this.elgridLinesH.hide(), this.elGridBorders.hide());
                    for(var n = 0; n < a.seriesYAxisMap.length && a.ignoreYAxisIndexes.includes(n);)n++;
                    n === a.seriesYAxisMap.length && (n = 0);
                    var i, o = a.yAxisScale[n].result.length - 1;
                    if (!a.isBarHorizontal || this.isRangeBar) {
                        var s, l, u;
                        i = this.xaxisLabels.length, this.isRangeBar && (o = a.labels.length, e.config.xaxis.tickAmount && e.config.xaxis.labels.formatter && (i = e.config.xaxis.tickAmount), ((s = a.yAxisScale) === null || s === void 0 || (l = s[n]) === null || l === void 0 || (u = l.result) === null || u === void 0 ? void 0 : u.length) > 0 && e.config.xaxis.type !== "datetime" && (i = a.yAxisScale[n].result.length - 1)), this._drawXYLines({
                            xCount: i,
                            tickAmount: o
                        });
                    } else i = o, o = a.xTickAmount, this._drawInvertedXYLines({
                        xCount: i,
                        tickAmount: o
                    });
                    return this.drawGridBands(i, o), {
                        el: this.elg,
                        elGridBorders: this.elGridBorders,
                        xAxisTickWidth: a.gridWidth / i
                    };
                }
            },
            {
                key: "drawGridBands",
                value: function(e, a) {
                    var r, n, i = this, o = this.w;
                    if (((r = o.config.grid.row.colors) === null || r === void 0 ? void 0 : r.length) > 0 && function(f, p, g, v, b, k) {
                        for(var S = 0, x = 0; S < p; S++, x++)x >= o.config.grid[f].colors.length && (x = 0), i._drawGridBandRect({
                            c: x,
                            x1: g,
                            y1: v,
                            x2: b,
                            y2: k,
                            type: f
                        }), v += o.globals.gridHeight / a;
                    }("row", a, 0, 0, o.globals.gridWidth, o.globals.gridHeight / a), ((n = o.config.grid.column.colors) === null || n === void 0 ? void 0 : n.length) > 0) {
                        var s = o.globals.isBarHorizontal || o.config.xaxis.tickPlacement !== "on" || o.config.xaxis.type !== "category" && !o.config.xaxis.convertedCatToNumeric ? e : e - 1;
                        o.globals.isXNumeric && (s = o.globals.xAxisScale.result.length - 1);
                        for(var l = o.globals.padHorizontal, u = o.globals.padHorizontal + o.globals.gridWidth / s, c = o.globals.gridHeight, d = 0, h = 0; d < e; d++, h++){
                            var m;
                            h >= o.config.grid.column.colors.length && (h = 0), o.config.xaxis.type === "datetime" && (l = this.xaxisLabels[d].position, u = (((m = this.xaxisLabels[d + 1]) === null || m === void 0 ? void 0 : m.position) || o.globals.gridWidth) - this.xaxisLabels[d].position), this._drawGridBandRect({
                                c: h,
                                x1: l,
                                y1: 0,
                                x2: u,
                                y2: c,
                                type: "column"
                            }), l += o.globals.gridWidth / s;
                        }
                    }
                }
            }
        ]), t;
    }(), j1 = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.coreUtils = new Ht(this.ctx);
        }
        return De(t, [
            {
                key: "niceScale",
                value: function(e, a) {
                    var r, n, i, o, s = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0, l = 1e-11, u = this.w, c = u.globals;
                    c.isBarHorizontal ? (r = u.config.xaxis, n = Math.max((c.svgWidth - 100) / 25, 2)) : (r = u.config.yaxis[s], n = Math.max((c.svgHeight - 100) / 15, 2)), V.isNumber(n) || (n = 10), i = r.min !== void 0 && r.min !== null, o = r.max !== void 0 && r.min !== null;
                    var d = r.stepSize !== void 0 && r.stepSize !== null, h = r.tickAmount !== void 0 && r.tickAmount !== null, m = h ? r.tickAmount : c.niceScaleDefaultTicks[Math.min(Math.round(n / 2), c.niceScaleDefaultTicks.length - 1)];
                    if (c.isMultipleYAxis && !h && c.multiAxisTickAmount > 0 && (m = c.multiAxisTickAmount, h = !0), m = m === "dataPoints" ? c.dataPoints - 1 : Math.abs(Math.round(m)), (e === Number.MIN_VALUE && a === 0 || !V.isNumber(e) && !V.isNumber(a) || e === Number.MIN_VALUE && a === -Number.MAX_VALUE) && (e = V.isNumber(r.min) ? r.min : 0, a = V.isNumber(r.max) ? r.max : e + m, c.allSeriesCollapsed = !1), e > a) {
                        console.warn("axis.min cannot be greater than axis.max: swapping min and max");
                        var f = a;
                        a = e, e = f;
                    } else e === a && (e = e === 0 ? 0 : e - 1, a = a === 0 ? 2 : a + 1);
                    var p = [];
                    m < 1 && (m = 1);
                    var g = m, v = Math.abs(a - e);
                    !i && e > 0 && e / v < .15 && (e = 0, i = !0), !o && a < 0 && -a / v < .15 && (a = 0, o = !0);
                    var b = (v = Math.abs(a - e)) / g, k = b, S = Math.floor(Math.log10(k)), x = Math.pow(10, S), C = Math.ceil(k / x);
                    if (b = k = (C = c.niceScaleAllowedMagMsd[c.yValueDecimal === 0 ? 0 : 1][C]) * x, c.isBarHorizontal && r.stepSize && r.type !== "datetime" ? (b = r.stepSize, d = !0) : d && (b = r.stepSize), d && r.forceNiceScale) {
                        var w = Math.floor(Math.log10(b));
                        b *= Math.pow(10, S - w);
                    }
                    if (i && o) {
                        var F = v / g;
                        if (h) if (d) if (V.mod(v, b) != 0) {
                            var D = V.getGCD(b, F);
                            b = F / D < 10 ? D : F;
                        } else V.mod(b, F) == 0 ? b = F : (F = b, h = !1);
                        else b = F;
                        else if (d) V.mod(v, b) == 0 ? F = b : b = F;
                        else if (V.mod(v, b) == 0) F = b;
                        else {
                            F = v / (g = Math.ceil(v / b));
                            var _ = V.getGCD(v, b);
                            v / _ < n && (F = _), b = F;
                        }
                        g = Math.round(v / b);
                    } else {
                        if (i || o) {
                            if (o) if (h) e = a - b * g;
                            else {
                                var A = e;
                                e = b * Math.floor(e / b), Math.abs(a - e) / V.getGCD(v, b) > n && (e = a - b * m, e += b * Math.floor((A - e) / b));
                            }
                            else if (i) if (h) a = e + b * g;
                            else {
                                var E = a;
                                a = b * Math.ceil(a / b), Math.abs(a - e) / V.getGCD(v, b) > n && (a = e + b * m, a += b * Math.ceil((E - a) / b));
                            }
                        } else if (c.isMultipleYAxis && h) {
                            var B = b * Math.floor(e / b), P = B + b * g;
                            P < a && (b *= 2), P = a, a = (e = B) + b * g, v = Math.abs(a - e), e > 0 && e < Math.abs(P - a) && (e = 0, a = b * g), a < 0 && -a < Math.abs(B - e) && (a = 0, e = -b * g);
                        } else e = b * Math.floor(e / b), a = b * Math.ceil(a / b);
                        v = Math.abs(a - e), b = V.getGCD(v, b), g = Math.round(v / b);
                    }
                    if (h || i || o || (g = Math.ceil((v - l) / (b + l))) > 16 && V.getPrimeFactors(g).length < 2 && g++, !h && r.forceNiceScale && c.yValueDecimal === 0 && g > v && (g = v, b = Math.round(v / g)), g > n && (!h && !d || r.forceNiceScale)) {
                        var M = V.getPrimeFactors(g), R = M.length - 1, z = g;
                        e: for(var N = 0; N < R; N++)for(var H = 0; H <= R - N; H++){
                            for(var I = Math.min(H + N, R), L = z, G = 1, q = H; q <= I; q++)G *= M[q];
                            if ((L /= G) < n) {
                                z = L;
                                break e;
                            }
                        }
                        b = z === g ? v : v / z, g = Math.round(v / b);
                    }
                    c.isMultipleYAxis && c.multiAxisTickAmount == 0 && c.ignoreYAxisIndexes.indexOf(s) < 0 && (c.multiAxisTickAmount = g);
                    var X = e - b, ue = b * l;
                    do X += b, p.push(V.stripNumber(X, 7));
                    while (a - X > ue);
                    return {
                        result: p,
                        niceMin: p[0],
                        niceMax: p[p.length - 1]
                    };
                }
            },
            {
                key: "linearScale",
                value: function(e, a) {
                    var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 10, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0, i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : void 0, o = Math.abs(a - e), s = [];
                    if (e === a) return {
                        result: s = [
                            e
                        ],
                        niceMin: s[0],
                        niceMax: s[s.length - 1]
                    };
                    (r = this._adjustTicksForSmallRange(r, n, o)) === "dataPoints" && (r = this.w.globals.dataPoints - 1), i || (i = o / r), i = Math.round(100 * (i + Number.EPSILON)) / 100, r === Number.MAX_VALUE && (r = 5, i = 1);
                    for(var l = e; r >= 0;)s.push(l), l = V.preciseAddition(l, i), r -= 1;
                    return {
                        result: s,
                        niceMin: s[0],
                        niceMax: s[s.length - 1]
                    };
                }
            },
            {
                key: "logarithmicScaleNice",
                value: function(e, a, r) {
                    a <= 0 && (a = Math.max(e, r)), e <= 0 && (e = Math.min(a, r));
                    for(var n = [], i = Math.ceil(Math.log(a) / Math.log(r) + 1), o = Math.floor(Math.log(e) / Math.log(r)); o < i; o++)n.push(Math.pow(r, o));
                    return {
                        result: n,
                        niceMin: n[0],
                        niceMax: n[n.length - 1]
                    };
                }
            },
            {
                key: "logarithmicScale",
                value: function(e, a, r) {
                    a <= 0 && (a = Math.max(e, r)), e <= 0 && (e = Math.min(a, r));
                    for(var n = [], i = Math.log(a) / Math.log(r), o = Math.log(e) / Math.log(r), s = i - o, l = Math.round(s), u = s / l, c = 0, d = o; c < l; c++, d += u)n.push(Math.pow(r, d));
                    return n.push(Math.pow(r, i)), {
                        result: n,
                        niceMin: e,
                        niceMax: a
                    };
                }
            },
            {
                key: "_adjustTicksForSmallRange",
                value: function(e, a, r) {
                    var n = e;
                    if (a !== void 0 && this.w.config.yaxis[a].labels.formatter && this.w.config.yaxis[a].tickAmount === void 0) {
                        var i = Number(this.w.config.yaxis[a].labels.formatter(1));
                        V.isNumber(i) && this.w.globals.yValueDecimal === 0 && (n = Math.ceil(r));
                    }
                    return n < e ? n : e;
                }
            },
            {
                key: "setYScaleForIndex",
                value: function(e, a, r) {
                    var n = this.w.globals, i = this.w.config, o = n.isBarHorizontal ? i.xaxis : i.yaxis[e];
                    n.yAxisScale[e] === void 0 && (n.yAxisScale[e] = []);
                    var s = Math.abs(r - a);
                    o.logarithmic && s <= 5 && (n.invalidLogScale = !0), o.logarithmic && s > 5 ? (n.allSeriesCollapsed = !1, n.yAxisScale[e] = o.forceNiceScale ? this.logarithmicScaleNice(a, r, o.logBase) : this.logarithmicScale(a, r, o.logBase)) : r !== -Number.MAX_VALUE && V.isNumber(r) && a !== Number.MAX_VALUE && V.isNumber(a) ? (n.allSeriesCollapsed = !1, n.yAxisScale[e] = this.niceScale(a, r, e)) : n.yAxisScale[e] = this.niceScale(Number.MIN_VALUE, 0, e);
                }
            },
            {
                key: "setXScale",
                value: function(e, a) {
                    var r = this.w, n = r.globals;
                    if (a !== -Number.MAX_VALUE && V.isNumber(a)) {
                        var i = n.xTickAmount;
                        n.xAxisScale = this.linearScale(e, a, i, 0, r.config.xaxis.stepSize);
                    } else n.xAxisScale = this.linearScale(0, 10, 10);
                    return n.xAxisScale;
                }
            },
            {
                key: "scaleMultipleYAxes",
                value: function() {
                    var e = this, a = this.w.config, r = this.w.globals;
                    this.coreUtils.setSeriesYAxisMappings();
                    var n = r.seriesYAxisMap, i = r.minYArr, o = r.maxYArr;
                    r.allSeriesCollapsed = !0, r.barGroups = [], n.forEach(function(s, l) {
                        var u = [];
                        s.forEach(function(c) {
                            var d, h = (d = a.series[c]) === null || d === void 0 ? void 0 : d.group;
                            u.indexOf(h) < 0 && u.push(h);
                        }), s.length > 0 ? function() {
                            var c, d, h = Number.MAX_VALUE, m = -Number.MAX_VALUE, f = h, p = m;
                            if (a.chart.stacked) (function() {
                                var b = new Array(r.dataPoints).fill(0), k = [], S = [], x = [];
                                u.forEach(function() {
                                    k.push(b.map(function() {
                                        return Number.MIN_VALUE;
                                    })), S.push(b.map(function() {
                                        return Number.MIN_VALUE;
                                    })), x.push(b.map(function() {
                                        return Number.MIN_VALUE;
                                    }));
                                });
                                for(var C = function(F) {
                                    !c && a.series[s[F]].type && (c = a.series[s[F]].type);
                                    var D = s[F];
                                    d = a.series[D].group ? a.series[D].group : "axis-".concat(l), !(r.collapsedSeriesIndices.indexOf(D) < 0 && r.ancillaryCollapsedSeriesIndices.indexOf(D) < 0) || (r.allSeriesCollapsed = !1, u.forEach(function(_, A) {
                                        if (a.series[D].group === _) for(var E = 0; E < r.series[D].length; E++){
                                            var B = r.series[D][E];
                                            B >= 0 ? S[A][E] += B : x[A][E] += B, k[A][E] += B, f = Math.min(f, B), p = Math.max(p, B);
                                        }
                                    })), c !== "bar" && c !== "column" || r.barGroups.push(d);
                                }, w = 0; w < s.length; w++)C(w);
                                c || (c = a.chart.type), c === "bar" || c === "column" ? u.forEach(function(F, D) {
                                    h = Math.min(h, Math.min.apply(null, x[D])), m = Math.max(m, Math.max.apply(null, S[D]));
                                }) : (u.forEach(function(F, D) {
                                    f = Math.min(f, Math.min.apply(null, k[D])), p = Math.max(p, Math.max.apply(null, k[D]));
                                }), h = f, m = p), h === Number.MIN_VALUE && m === Number.MIN_VALUE && (m = -Number.MAX_VALUE);
                            })();
                            else for(var g = 0; g < s.length; g++){
                                var v = s[g];
                                h = Math.min(h, i[v]), m = Math.max(m, o[v]), !(r.collapsedSeriesIndices.indexOf(v) < 0 && r.ancillaryCollapsedSeriesIndices.indexOf(v) < 0) || (r.allSeriesCollapsed = !1);
                            }
                            a.yaxis[l].min !== void 0 && (h = typeof a.yaxis[l].min == "function" ? a.yaxis[l].min(h) : a.yaxis[l].min), a.yaxis[l].max !== void 0 && (m = typeof a.yaxis[l].max == "function" ? a.yaxis[l].max(m) : a.yaxis[l].max), r.barGroups = r.barGroups.filter(function(b, k, S) {
                                return S.indexOf(b) === k;
                            }), e.setYScaleForIndex(l, h, m), s.forEach(function(b) {
                                i[b] = r.yAxisScale[l].niceMin, o[b] = r.yAxisScale[l].niceMax;
                            });
                        }() : e.setYScaleForIndex(l, 0, -Number.MAX_VALUE);
                    });
                }
            }
        ]), t;
    }(), $h = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.scales = new j1(e);
        }
        return De(t, [
            {
                key: "init",
                value: function() {
                    this.setYRange(), this.setXRange(), this.setZRange();
                }
            },
            {
                key: "getMinYMaxY",
                value: function(e) {
                    var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Number.MAX_VALUE, r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : -Number.MAX_VALUE, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null, i = this.w.config, o = this.w.globals, s = -Number.MAX_VALUE, l = Number.MIN_VALUE;
                    n === null && (n = e + 1);
                    var u = o.series, c = u, d = u;
                    i.chart.type === "candlestick" ? (c = o.seriesCandleL, d = o.seriesCandleH) : i.chart.type === "boxPlot" ? (c = o.seriesCandleO, d = o.seriesCandleC) : o.isRangeData && (c = o.seriesRangeStart, d = o.seriesRangeEnd);
                    var h = !1;
                    if (o.seriesX.length >= n) {
                        var m, f = (m = o.brushSource) === null || m === void 0 ? void 0 : m.w.config.chart.brush;
                        (i.chart.zoom.enabled && i.chart.zoom.autoScaleYaxis || f != null && f.enabled && f != null && f.autoScaleYaxis) && (h = !0);
                    }
                    for(var p = e; p < n; p++){
                        o.dataPoints = Math.max(o.dataPoints, u[p].length);
                        var g = i.series[p].type;
                        o.categoryLabels.length && (o.dataPoints = o.categoryLabels.filter(function(D) {
                            return D !== void 0;
                        }).length), o.labels.length && i.xaxis.type !== "datetime" && o.series.reduce(function(D, _) {
                            return D + _.length;
                        }, 0) !== 0 && (o.dataPoints = Math.max(o.dataPoints, o.labels.length));
                        var v = 0, b = u[p].length - 1;
                        if (h) {
                            if (i.xaxis.min) for(; v < b && o.seriesX[p][v] < i.xaxis.min; v++);
                            if (i.xaxis.max) for(; b > v && o.seriesX[p][b] > i.xaxis.max; b--);
                        }
                        for(var k = v; k <= b && k < o.series[p].length; k++){
                            var S = u[p][k];
                            if (S !== null && V.isNumber(S)) {
                                var x, C, w, F;
                                switch(((x = d[p]) === null || x === void 0 ? void 0 : x[k]) !== void 0 && (s = Math.max(s, d[p][k]), a = Math.min(a, d[p][k])), ((C = c[p]) === null || C === void 0 ? void 0 : C[k]) !== void 0 && (a = Math.min(a, c[p][k]), r = Math.max(r, c[p][k])), g){
                                    case "candlestick":
                                        o.seriesCandleC[p][k] !== void 0 && (s = Math.max(s, o.seriesCandleH[p][k]), a = Math.min(a, o.seriesCandleL[p][k]));
                                        break;
                                    case "boxPlot":
                                        o.seriesCandleC[p][k] !== void 0 && (s = Math.max(s, o.seriesCandleC[p][k]), a = Math.min(a, o.seriesCandleO[p][k]));
                                }
                                g && g !== "candlestick" && g !== "boxPlot" && g !== "rangeArea" && g !== "rangeBar" && (s = Math.max(s, o.series[p][k]), a = Math.min(a, o.series[p][k])), o.seriesGoals[p] && o.seriesGoals[p][k] && Array.isArray(o.seriesGoals[p][k]) && o.seriesGoals[p][k].forEach(function(D) {
                                    s = Math.max(s, D.value), a = Math.min(a, D.value);
                                }), r = s, S = V.noExponents(S), V.isFloat(S) && (o.yValueDecimal = Math.max(o.yValueDecimal, S.toString().split(".")[1].length)), l > ((w = c[p]) === null || w === void 0 ? void 0 : w[k]) && ((F = c[p]) === null || F === void 0 ? void 0 : F[k]) < 0 && (l = c[p][k]);
                            } else o.hasNullValues = !0;
                        }
                        g !== "bar" && g !== "column" || (l < 0 && s < 0 && (s = 0, r = Math.max(r, 0)), l === Number.MIN_VALUE && (l = 0, a = Math.min(a, 0)));
                    }
                    return i.chart.type === "rangeBar" && o.seriesRangeStart.length && o.isBarHorizontal && (l = a), i.chart.type === "bar" && (l < 0 && s < 0 && (s = 0), l === Number.MIN_VALUE && (l = 0)), {
                        minY: l,
                        maxY: s,
                        lowestY: a,
                        highestY: r
                    };
                }
            },
            {
                key: "setYRange",
                value: function() {
                    var e = this.w.globals, a = this.w.config;
                    e.maxY = -Number.MAX_VALUE, e.minY = Number.MIN_VALUE;
                    var r, n = Number.MAX_VALUE;
                    if (e.isMultipleYAxis) {
                        n = Number.MAX_VALUE;
                        for(var i = 0; i < e.series.length; i++)r = this.getMinYMaxY(i), e.minYArr[i] = r.lowestY, e.maxYArr[i] = r.highestY, n = Math.min(n, r.lowestY);
                    }
                    return r = this.getMinYMaxY(0, n, null, e.series.length), a.chart.type === "bar" ? (e.minY = r.minY, e.maxY = r.maxY) : (e.minY = r.lowestY, e.maxY = r.highestY), n = r.lowestY, a.chart.stacked && this._setStackedMinMax(), a.chart.type === "line" || a.chart.type === "area" || a.chart.type === "scatter" || a.chart.type === "candlestick" || a.chart.type === "boxPlot" || a.chart.type === "rangeBar" && !e.isBarHorizontal ? e.minY === Number.MIN_VALUE && n !== -Number.MAX_VALUE && n !== e.maxY && (e.minY = n) : e.minY = e.minY !== Number.MIN_VALUE ? Math.min(r.minY, e.minY) : r.minY, a.yaxis.forEach(function(o, s) {
                        o.max !== void 0 && (typeof o.max == "number" ? e.maxYArr[s] = o.max : typeof o.max == "function" && (e.maxYArr[s] = o.max(e.isMultipleYAxis ? e.maxYArr[s] : e.maxY)), e.maxY = e.maxYArr[s]), o.min !== void 0 && (typeof o.min == "number" ? e.minYArr[s] = o.min : typeof o.min == "function" && (e.minYArr[s] = o.min(e.isMultipleYAxis ? e.minYArr[s] === Number.MIN_VALUE ? 0 : e.minYArr[s] : e.minY)), e.minY = e.minYArr[s]);
                    }), e.isBarHorizontal && [
                        "min",
                        "max"
                    ].forEach(function(o) {
                        a.xaxis[o] !== void 0 && typeof a.xaxis[o] == "number" && (o === "min" ? e.minY = a.xaxis[o] : e.maxY = a.xaxis[o]);
                    }), e.isMultipleYAxis ? (this.scales.scaleMultipleYAxes(), e.minY = n) : (this.scales.setYScaleForIndex(0, e.minY, e.maxY), e.minY = e.yAxisScale[0].niceMin, e.maxY = e.yAxisScale[0].niceMax, e.minYArr[0] = e.minY, e.maxYArr[0] = e.maxY), e.barGroups = [], e.lineGroups = [], e.areaGroups = [], a.series.forEach(function(o) {
                        switch(o.type || a.chart.type){
                            case "bar":
                            case "column":
                                e.barGroups.push(o.group);
                                break;
                            case "line":
                                e.lineGroups.push(o.group);
                                break;
                            case "area":
                                e.areaGroups.push(o.group);
                        }
                    }), e.barGroups = e.barGroups.filter(function(o, s, l) {
                        return l.indexOf(o) === s;
                    }), e.lineGroups = e.lineGroups.filter(function(o, s, l) {
                        return l.indexOf(o) === s;
                    }), e.areaGroups = e.areaGroups.filter(function(o, s, l) {
                        return l.indexOf(o) === s;
                    }), {
                        minY: e.minY,
                        maxY: e.maxY,
                        minYArr: e.minYArr,
                        maxYArr: e.maxYArr,
                        yAxisScale: e.yAxisScale
                    };
                }
            },
            {
                key: "setXRange",
                value: function() {
                    var e = this.w.globals, a = this.w.config, r = a.xaxis.type === "numeric" || a.xaxis.type === "datetime" || a.xaxis.type === "category" && !e.noLabelsProvided || e.noLabelsProvided || e.isXNumeric;
                    if (e.isXNumeric && function() {
                        for(var l = 0; l < e.series.length; l++)if (e.labels[l]) for(var u = 0; u < e.labels[l].length; u++)e.labels[l][u] !== null && V.isNumber(e.labels[l][u]) && (e.maxX = Math.max(e.maxX, e.labels[l][u]), e.initialMaxX = Math.max(e.maxX, e.labels[l][u]), e.minX = Math.min(e.minX, e.labels[l][u]), e.initialMinX = Math.min(e.minX, e.labels[l][u]));
                    }(), e.noLabelsProvided && a.xaxis.categories.length === 0 && (e.maxX = e.labels[e.labels.length - 1], e.initialMaxX = e.labels[e.labels.length - 1], e.minX = 1, e.initialMinX = 1), e.isXNumeric || e.noLabelsProvided || e.dataFormatXNumeric) {
                        var n = 10;
                        if (a.xaxis.tickAmount === void 0) n = Math.round(e.svgWidth / 150), a.xaxis.type === "numeric" && e.dataPoints < 30 && (n = e.dataPoints - 1), n > e.dataPoints && e.dataPoints !== 0 && (n = e.dataPoints - 1);
                        else if (a.xaxis.tickAmount === "dataPoints") {
                            if (e.series.length > 1 && (n = e.series[e.maxValsInArrayIndex].length - 1), e.isXNumeric) {
                                var i = Math.round(e.maxX - e.minX);
                                i < 30 && (n = i - 1);
                            }
                        } else n = a.xaxis.tickAmount;
                        if (e.xTickAmount = n, a.xaxis.max !== void 0 && typeof a.xaxis.max == "number" && (e.maxX = a.xaxis.max), a.xaxis.min !== void 0 && typeof a.xaxis.min == "number" && (e.minX = a.xaxis.min), a.xaxis.range !== void 0 && (e.minX = e.maxX - a.xaxis.range), e.minX !== Number.MAX_VALUE && e.maxX !== -Number.MAX_VALUE) if (a.xaxis.convertedCatToNumeric && !e.dataFormatXNumeric) {
                            for(var o = [], s = e.minX - 1; s < e.maxX; s++)o.push(s + 1);
                            e.xAxisScale = {
                                result: o,
                                niceMin: o[0],
                                niceMax: o[o.length - 1]
                            };
                        } else e.xAxisScale = this.scales.setXScale(e.minX, e.maxX);
                        else e.xAxisScale = this.scales.linearScale(0, n, n, 0, a.xaxis.stepSize), e.noLabelsProvided && e.labels.length > 0 && (e.xAxisScale = this.scales.linearScale(1, e.labels.length, n - 1, 0, a.xaxis.stepSize), e.seriesX = e.labels.slice());
                        r && (e.labels = e.xAxisScale.result.slice());
                    }
                    return e.isBarHorizontal && e.labels.length && (e.xTickAmount = e.labels.length), this._handleSingleDataPoint(), this._getMinXDiff(), {
                        minX: e.minX,
                        maxX: e.maxX
                    };
                }
            },
            {
                key: "setZRange",
                value: function() {
                    var e = this.w.globals;
                    if (e.isDataXYZ) {
                        for(var a = 0; a < e.series.length; a++)if (e.seriesZ[a] !== void 0) for(var r = 0; r < e.seriesZ[a].length; r++)e.seriesZ[a][r] !== null && V.isNumber(e.seriesZ[a][r]) && (e.maxZ = Math.max(e.maxZ, e.seriesZ[a][r]), e.minZ = Math.min(e.minZ, e.seriesZ[a][r]));
                    }
                }
            },
            {
                key: "_handleSingleDataPoint",
                value: function() {
                    var e = this.w.globals, a = this.w.config;
                    if (e.minX === e.maxX) {
                        var r = new ua(this.ctx);
                        if (a.xaxis.type === "datetime") {
                            var n = r.getDate(e.minX);
                            a.xaxis.labels.datetimeUTC ? n.setUTCDate(n.getUTCDate() - 2) : n.setDate(n.getDate() - 2), e.minX = new Date(n).getTime();
                            var i = r.getDate(e.maxX);
                            a.xaxis.labels.datetimeUTC ? i.setUTCDate(i.getUTCDate() + 2) : i.setDate(i.getDate() + 2), e.maxX = new Date(i).getTime();
                        } else (a.xaxis.type === "numeric" || a.xaxis.type === "category" && !e.noLabelsProvided) && (e.minX = e.minX - 2, e.initialMinX = e.minX, e.maxX = e.maxX + 2, e.initialMaxX = e.maxX);
                    }
                }
            },
            {
                key: "_getMinXDiff",
                value: function() {
                    var e = this.w.globals;
                    e.isXNumeric && e.seriesX.forEach(function(a, r) {
                        if (a.length) {
                            a.length === 1 && a.push(e.seriesX[e.maxValsInArrayIndex][e.seriesX[e.maxValsInArrayIndex].length - 1]);
                            var n = a.slice();
                            n.sort(function(i, o) {
                                return i - o;
                            }), n.forEach(function(i, o) {
                                if (o > 0) {
                                    var s = i - n[o - 1];
                                    s > 0 && (e.minXDiff = Math.min(s, e.minXDiff));
                                }
                            }), e.dataPoints !== 1 && e.minXDiff !== Number.MAX_VALUE || (e.minXDiff = .5);
                        }
                    });
                }
            },
            {
                key: "_setStackedMinMax",
                value: function() {
                    var e = this, a = this.w.globals;
                    if (a.series.length) {
                        var r = a.seriesGroups;
                        r.length || (r = [
                            this.w.globals.seriesNames.map(function(o) {
                                return o;
                            })
                        ]);
                        var n = {}, i = {};
                        r.forEach(function(o) {
                            n[o] = [], i[o] = [], e.w.config.series.map(function(s, l) {
                                return o.indexOf(a.seriesNames[l]) > -1 ? l : null;
                            }).filter(function(s) {
                                return s !== null;
                            }).forEach(function(s) {
                                for(var l = 0; l < a.series[a.maxValsInArrayIndex].length; l++){
                                    var u, c, d, h;
                                    n[o][l] === void 0 && (n[o][l] = 0, i[o][l] = 0), (e.w.config.chart.stacked && !a.comboCharts || e.w.config.chart.stacked && a.comboCharts && (!e.w.config.chart.stackOnlyBar || ((u = e.w.config.series) === null || u === void 0 || (c = u[s]) === null || c === void 0 ? void 0 : c.type) === "bar" || ((d = e.w.config.series) === null || d === void 0 || (h = d[s]) === null || h === void 0 ? void 0 : h.type) === "column")) && a.series[s][l] !== null && V.isNumber(a.series[s][l]) && (a.series[s][l] > 0 ? n[o][l] += parseFloat(a.series[s][l]) + 1e-4 : i[o][l] += parseFloat(a.series[s][l]));
                                }
                            });
                        }), Object.entries(n).forEach(function(o) {
                            var s = f1(o, 1)[0];
                            n[s].forEach(function(l, u) {
                                a.maxY = Math.max(a.maxY, n[s][u]), a.minY = Math.min(a.minY, i[s][u]);
                            });
                        });
                    }
                }
            }
        ]), t;
    }(), Ff = function() {
        function t(e, a) {
            Ae(this, t), this.ctx = e, this.elgrid = a, this.w = e.w;
            var r = this.w;
            this.xaxisFontSize = r.config.xaxis.labels.style.fontSize, this.axisFontFamily = r.config.xaxis.labels.style.fontFamily, this.xaxisForeColors = r.config.xaxis.labels.style.colors, this.isCategoryBarHorizontal = r.config.chart.type === "bar" && r.config.plotOptions.bar.horizontal, this.xAxisoffX = r.config.xaxis.position === "bottom" ? r.globals.gridHeight : 0, this.drawnLabels = [], this.axesUtils = new tn(e);
        }
        return De(t, [
            {
                key: "drawYaxis",
                value: function(e) {
                    var a = this.w, r = new he(this.ctx), n = a.config.yaxis[e].labels.style, i = n.fontSize, o = n.fontFamily, s = n.fontWeight, l = r.group({
                        class: "apexcharts-yaxis",
                        rel: e,
                        transform: "translate(".concat(a.globals.translateYAxisX[e], ", 0)")
                    });
                    if (this.axesUtils.isYAxisHidden(e)) return l;
                    var u = r.group({
                        class: "apexcharts-yaxis-texts-g"
                    });
                    l.add(u);
                    var c = a.globals.yAxisScale[e].result.length - 1, d = a.globals.gridHeight / c, h = a.globals.yLabelFormatters[e], m = this.axesUtils.checkForReversedLabels(e, a.globals.yAxisScale[e].result.slice());
                    if (a.config.yaxis[e].labels.show) {
                        var f = a.globals.translateY + a.config.yaxis[e].labels.offsetY;
                        a.globals.isBarHorizontal ? f = 0 : a.config.chart.type === "heatmap" && (f -= d / 2), f += parseInt(i, 10) / 3;
                        for(var p = c; p >= 0; p--){
                            var g = h(m[p], p, a), v = a.config.yaxis[e].labels.padding;
                            a.config.yaxis[e].opposite && a.config.yaxis.length !== 0 && (v *= -1);
                            var b = this.getTextAnchor(a.config.yaxis[e].labels.align, a.config.yaxis[e].opposite), k = this.axesUtils.getYAxisForeColor(n.colors, e), S = Array.isArray(k) ? k[p] : k, x = V.listToArray(a.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(e, "'] .apexcharts-yaxis-label tspan"))).map(function(w) {
                                return w.textContent;
                            }), C = r.drawText({
                                x: v,
                                y: f,
                                text: x.includes(g) && !a.config.yaxis[e].labels.showDuplicates ? "" : g,
                                textAnchor: b,
                                fontSize: i,
                                fontFamily: o,
                                fontWeight: s,
                                maxWidth: a.config.yaxis[e].labels.maxWidth,
                                foreColor: S,
                                isPlainText: !1,
                                cssClass: "apexcharts-yaxis-label ".concat(n.cssClass)
                            });
                            u.add(C), this.addTooltip(C, g), a.config.yaxis[e].labels.rotate !== 0 && this.rotateLabel(r, C, firstLabel, a.config.yaxis[e].labels.rotate), f += d;
                        }
                    }
                    return this.addYAxisTitle(r, l, e), this.addAxisBorder(r, l, e, c, d), l;
                }
            },
            {
                key: "getTextAnchor",
                value: function(e, a) {
                    return e === "left" ? "start" : e === "center" ? "middle" : e === "right" ? "end" : a ? "start" : "end";
                }
            },
            {
                key: "addTooltip",
                value: function(e, a) {
                    var r = document.createElementNS(this.w.globals.SVGNS, "title");
                    r.textContent = Array.isArray(a) ? a.join(" ") : a, e.node.appendChild(r);
                }
            },
            {
                key: "rotateLabel",
                value: function(e, a, r, n) {
                    var i = e.rotateAroundCenter(r.node), o = e.rotateAroundCenter(a.node);
                    a.node.setAttribute("transform", "rotate(".concat(n, " ").concat(i.x, " ").concat(o.y, ")"));
                }
            },
            {
                key: "addYAxisTitle",
                value: function(e, a, r) {
                    var n = this.w;
                    if (n.config.yaxis[r].title.text !== void 0) {
                        var i = e.group({
                            class: "apexcharts-yaxis-title"
                        }), o = n.config.yaxis[r].opposite ? n.globals.translateYAxisX[r] : 0, s = e.drawText({
                            x: o,
                            y: n.globals.gridHeight / 2 + n.globals.translateY + n.config.yaxis[r].title.offsetY,
                            text: n.config.yaxis[r].title.text,
                            textAnchor: "end",
                            foreColor: n.config.yaxis[r].title.style.color,
                            fontSize: n.config.yaxis[r].title.style.fontSize,
                            fontWeight: n.config.yaxis[r].title.style.fontWeight,
                            fontFamily: n.config.yaxis[r].title.style.fontFamily,
                            cssClass: "apexcharts-yaxis-title-text ".concat(n.config.yaxis[r].title.style.cssClass)
                        });
                        i.add(s), a.add(i);
                    }
                }
            },
            {
                key: "addAxisBorder",
                value: function(e, a, r, n, i) {
                    var o = this.w, s = o.config.yaxis[r].axisBorder, l = 31 + s.offsetX;
                    if (o.config.yaxis[r].opposite && (l = -31 - s.offsetX), s.show) {
                        var u = e.drawLine(l, o.globals.translateY + s.offsetY - 2, l, o.globals.gridHeight + o.globals.translateY + s.offsetY + 2, s.color, 0, s.width);
                        a.add(u);
                    }
                    o.config.yaxis[r].axisTicks.show && this.axesUtils.drawYAxisTicks(l, n, s, o.config.yaxis[r].axisTicks, r, i, a);
                }
            },
            {
                key: "drawYaxisInversed",
                value: function(e) {
                    var a = this.w, r = new he(this.ctx), n = r.group({
                        class: "apexcharts-xaxis apexcharts-yaxis-inversed"
                    }), i = r.group({
                        class: "apexcharts-xaxis-texts-g",
                        transform: "translate(".concat(a.globals.translateXAxisX, ", ").concat(a.globals.translateXAxisY, ")")
                    });
                    n.add(i);
                    var o = a.globals.yAxisScale[e].result.length - 1, s = a.globals.gridWidth / o + .1, l = s + a.config.xaxis.labels.offsetX, u = a.globals.xLabelFormatter, c = this.axesUtils.checkForReversedLabels(e, a.globals.yAxisScale[e].result.slice()), d = a.globals.timescaleLabels;
                    if (d.length > 0 && (this.xaxisLabels = d.slice(), o = (c = d.slice()).length), a.config.xaxis.labels.show) for(var h = d.length ? 0 : o; d.length ? h < d.length : h >= 0; d.length ? h++ : h--){
                        var m = u(c[h], h, a), f = a.globals.gridWidth + a.globals.padHorizontal - (l - s + a.config.xaxis.labels.offsetX);
                        if (d.length) {
                            var p = this.axesUtils.getLabel(c, d, f, h, this.drawnLabels, this.xaxisFontSize);
                            f = p.x, m = p.text, this.drawnLabels.push(p.text), h === 0 && a.globals.skipFirstTimelinelabel && (m = ""), h === c.length - 1 && a.globals.skipLastTimelinelabel && (m = "");
                        }
                        var g = r.drawText({
                            x: f,
                            y: this.xAxisoffX + a.config.xaxis.labels.offsetY + 30 - (a.config.xaxis.position === "top" ? a.globals.xAxisHeight + a.config.xaxis.axisTicks.height - 2 : 0),
                            text: m,
                            textAnchor: "middle",
                            foreColor: Array.isArray(this.xaxisForeColors) ? this.xaxisForeColors[e] : this.xaxisForeColors,
                            fontSize: this.xaxisFontSize,
                            fontFamily: this.xaxisFontFamily,
                            fontWeight: a.config.xaxis.labels.style.fontWeight,
                            isPlainText: !1,
                            cssClass: "apexcharts-xaxis-label ".concat(a.config.xaxis.labels.style.cssClass)
                        });
                        i.add(g), g.tspan(m), this.addTooltip(g, m), l += s;
                    }
                    return this.inversedYAxisTitleText(n), this.inversedYAxisBorder(n), n;
                }
            },
            {
                key: "inversedYAxisBorder",
                value: function(e) {
                    var a = this.w, r = new he(this.ctx), n = a.config.xaxis.axisBorder;
                    if (n.show) {
                        var i = 0;
                        a.config.chart.type === "bar" && a.globals.isXNumeric && (i -= 15);
                        var o = r.drawLine(a.globals.padHorizontal + i + n.offsetX, this.xAxisoffX, a.globals.gridWidth, this.xAxisoffX, n.color, 0, n.height);
                        this.elgrid && this.elgrid.elGridBorders && a.config.grid.show ? this.elgrid.elGridBorders.add(o) : e.add(o);
                    }
                }
            },
            {
                key: "inversedYAxisTitleText",
                value: function(e) {
                    var a = this.w, r = new he(this.ctx);
                    if (a.config.xaxis.title.text !== void 0) {
                        var n = r.group({
                            class: "apexcharts-xaxis-title apexcharts-yaxis-title-inversed"
                        }), i = r.drawText({
                            x: a.globals.gridWidth / 2 + a.config.xaxis.title.offsetX,
                            y: this.xAxisoffX + parseFloat(this.xaxisFontSize) + parseFloat(a.config.xaxis.title.style.fontSize) + a.config.xaxis.title.offsetY + 20,
                            text: a.config.xaxis.title.text,
                            textAnchor: "middle",
                            fontSize: a.config.xaxis.title.style.fontSize,
                            fontFamily: a.config.xaxis.title.style.fontFamily,
                            fontWeight: a.config.xaxis.title.style.fontWeight,
                            foreColor: a.config.xaxis.title.style.color,
                            cssClass: "apexcharts-xaxis-title-text ".concat(a.config.xaxis.title.style.cssClass)
                        });
                        n.add(i), e.add(n);
                    }
                }
            },
            {
                key: "yAxisTitleRotate",
                value: function(e, a) {
                    var r = this.w, n = new he(this.ctx), i = r.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(e, "'] .apexcharts-yaxis-texts-g")), o = i ? i.getBoundingClientRect() : {
                        width: 0,
                        height: 0
                    }, s = r.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(e, "'] .apexcharts-yaxis-title text")), l = s ? s.getBoundingClientRect() : {
                        width: 0,
                        height: 0
                    };
                    if (s) {
                        var u = this.xPaddingForYAxisTitle(e, o, l, a);
                        s.setAttribute("x", u.xPos - (a ? 10 : 0));
                        var c = n.rotateAroundCenter(s);
                        s.setAttribute("transform", "rotate(".concat(a ? -1 * r.config.yaxis[e].title.rotate : r.config.yaxis[e].title.rotate, " ").concat(c.x, " ").concat(c.y, ")"));
                    }
                }
            },
            {
                key: "xPaddingForYAxisTitle",
                value: function(e, a, r, n) {
                    var i = this.w, o = 0, s = 10;
                    return i.config.yaxis[e].title.text === void 0 || e < 0 ? {
                        xPos: o,
                        padd: 0
                    } : (n ? o = a.width + i.config.yaxis[e].title.offsetX + r.width / 2 + s / 2 : (o = -1 * a.width + i.config.yaxis[e].title.offsetX + s / 2 + r.width / 2, i.globals.isBarHorizontal && (s = 25, o = -1 * a.width - i.config.yaxis[e].title.offsetX - s)), {
                        xPos: o,
                        padd: s
                    });
                }
            },
            {
                key: "setYAxisXPosition",
                value: function(e, a) {
                    var r = this.w, n = 0, i = 0, o = 18, s = 1;
                    r.config.yaxis.length > 1 && (this.multipleYs = !0), r.config.yaxis.forEach(function(l, u) {
                        var c = r.globals.ignoreYAxisIndexes.includes(u) || !l.show || l.floating || e[u].width === 0, d = e[u].width + a[u].width;
                        l.opposite ? r.globals.isBarHorizontal ? (i = r.globals.gridWidth + r.globals.translateX - 1, r.globals.translateYAxisX[u] = i - l.labels.offsetX) : (i = r.globals.gridWidth + r.globals.translateX + s, c || (s += d + 20), r.globals.translateYAxisX[u] = i - l.labels.offsetX + 20) : (n = r.globals.translateX - o, c || (o += d + 20), r.globals.translateYAxisX[u] = n + l.labels.offsetX);
                    });
                }
            },
            {
                key: "setYAxisTextAlignments",
                value: function() {
                    var e = this.w;
                    V.listToArray(e.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis")).forEach(function(a, r) {
                        var n = e.config.yaxis[r];
                        if (n && !n.floating && n.labels.align !== void 0) {
                            var i = e.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(r, "'] .apexcharts-yaxis-texts-g")), o = V.listToArray(e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(r, "'] .apexcharts-yaxis-label"))), s = i.getBoundingClientRect();
                            o.forEach(function(l) {
                                l.setAttribute("text-anchor", n.labels.align);
                            }), n.labels.align !== "left" || n.opposite ? n.labels.align === "center" ? i.setAttribute("transform", "translate(".concat(s.width / 2 * (n.opposite ? 1 : -1), ", 0)")) : n.labels.align === "right" && n.opposite && i.setAttribute("transform", "translate(".concat(s.width, ", 0)")) : i.setAttribute("transform", "translate(-".concat(s.width, ", 0)"));
                        }
                    });
                }
            }
        ]), t;
    }(), rI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.documentEvent = V.bind(this.documentEvent, this);
        }
        return De(t, [
            {
                key: "addEventListener",
                value: function(e, a) {
                    var r = this.w;
                    r.globals.events.hasOwnProperty(e) ? r.globals.events[e].push(a) : r.globals.events[e] = [
                        a
                    ];
                }
            },
            {
                key: "removeEventListener",
                value: function(e, a) {
                    var r = this.w;
                    if (r.globals.events.hasOwnProperty(e)) {
                        var n = r.globals.events[e].indexOf(a);
                        n !== -1 && r.globals.events[e].splice(n, 1);
                    }
                }
            },
            {
                key: "fireEvent",
                value: function(e, a) {
                    var r = this.w;
                    if (r.globals.events.hasOwnProperty(e)) {
                        a && a.length || (a = []);
                        for(var n = r.globals.events[e], i = n.length, o = 0; o < i; o++)n[o].apply(null, a);
                    }
                }
            },
            {
                key: "setupEventHandlers",
                value: function() {
                    var e = this, a = this.w, r = this.ctx, n = a.globals.dom.baseEl.querySelector(a.globals.chartClass);
                    this.ctx.eventList.forEach(function(i) {
                        n.addEventListener(i, function(o) {
                            var s = o.target.getAttribute("i") === null && a.globals.capturedSeriesIndex !== -1 ? a.globals.capturedSeriesIndex : o.target.getAttribute("i"), l = o.target.getAttribute("j") === null && a.globals.capturedDataPointIndex !== -1 ? a.globals.capturedDataPointIndex : o.target.getAttribute("j"), u = Object.assign({}, a, {
                                seriesIndex: a.globals.axisCharts ? s : 0,
                                dataPointIndex: l
                            });
                            o.type === "mousemove" || o.type === "touchmove" ? typeof a.config.chart.events.mouseMove == "function" && a.config.chart.events.mouseMove(o, r, u) : o.type === "mouseleave" || o.type === "touchleave" ? typeof a.config.chart.events.mouseLeave == "function" && a.config.chart.events.mouseLeave(o, r, u) : (o.type === "mouseup" && o.which === 1 || o.type === "touchend") && (typeof a.config.chart.events.click == "function" && a.config.chart.events.click(o, r, u), r.ctx.events.fireEvent("click", [
                                o,
                                r,
                                u
                            ]));
                        }, {
                            capture: !1,
                            passive: !0
                        });
                    }), this.ctx.eventList.forEach(function(i) {
                        a.globals.dom.baseEl.addEventListener(i, e.documentEvent, {
                            passive: !0
                        });
                    }), this.ctx.core.setupBrushHandler();
                }
            },
            {
                key: "documentEvent",
                value: function(e) {
                    var a = this.w, r = e.target.className;
                    if (e.type === "click") {
                        var n = a.globals.dom.baseEl.querySelector(".apexcharts-menu");
                        n && n.classList.contains("apexcharts-menu-open") && r !== "apexcharts-menu-icon" && n.classList.remove("apexcharts-menu-open");
                    }
                    a.globals.clientX = e.type === "touchmove" ? e.touches[0].clientX : e.clientX, a.globals.clientY = e.type === "touchmove" ? e.touches[0].clientY : e.clientY;
                }
            }
        ]), t;
    }(), nI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "setCurrentLocaleValues",
                value: function(e) {
                    var a = this.w.config.chart.locales;
                    window.Apex.chart && window.Apex.chart.locales && window.Apex.chart.locales.length > 0 && (a = this.w.config.chart.locales.concat(window.Apex.chart.locales));
                    var r = a.filter(function(i) {
                        return i.name === e;
                    })[0];
                    if (!r) throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");
                    var n = V.extend(W1, r);
                    this.w.globals.locale = n.options;
                }
            }
        ]), t;
    }(), iI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "drawAxis",
                value: function(e, a) {
                    var r, n, i = this, o = this.w.globals, s = this.w.config, l = new Do(this.ctx, a), u = new Ff(this.ctx, a);
                    o.axisCharts && e !== "radar" && (o.isBarHorizontal ? (n = u.drawYaxisInversed(0), r = l.drawXaxisInversed(0), o.dom.elGraphical.add(r), o.dom.elGraphical.add(n)) : (r = l.drawXaxis(), o.dom.elGraphical.add(r), s.yaxis.map(function(c, d) {
                        if (o.ignoreYAxisIndexes.indexOf(d) === -1 && (n = u.drawYaxis(d), o.dom.Paper.add(n), i.w.config.grid.position === "back")) {
                            var h = o.dom.Paper.children()[1];
                            h.remove(), o.dom.Paper.add(h);
                        }
                    })));
                }
            }
        ]), t;
    }(), Uh = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "drawXCrosshairs",
                value: function() {
                    var e = this.w, a = new he(this.ctx), r = new ca(this.ctx), n = e.config.xaxis.crosshairs.fill.gradient, i = e.config.xaxis.crosshairs.dropShadow, o = e.config.xaxis.crosshairs.fill.type, s = n.colorFrom, l = n.colorTo, u = n.opacityFrom, c = n.opacityTo, d = n.stops, h = i.enabled, m = i.left, f = i.top, p = i.blur, g = i.color, v = i.opacity, b = e.config.xaxis.crosshairs.fill.color;
                    if (e.config.xaxis.crosshairs.show) {
                        o === "gradient" && (b = a.drawGradient("vertical", s, l, u, c, null, d, null));
                        var k = a.drawRect();
                        e.config.xaxis.crosshairs.width === 1 && (k = a.drawLine());
                        var S = e.globals.gridHeight;
                        (!V.isNumber(S) || S < 0) && (S = 0);
                        var x = e.config.xaxis.crosshairs.width;
                        (!V.isNumber(x) || x < 0) && (x = 0), k.attr({
                            class: "apexcharts-xcrosshairs",
                            x: 0,
                            y: 0,
                            y2: S,
                            width: x,
                            height: S,
                            fill: b,
                            filter: "none",
                            "fill-opacity": e.config.xaxis.crosshairs.opacity,
                            stroke: e.config.xaxis.crosshairs.stroke.color,
                            "stroke-width": e.config.xaxis.crosshairs.stroke.width,
                            "stroke-dasharray": e.config.xaxis.crosshairs.stroke.dashArray
                        }), h && (k = r.dropShadow(k, {
                            left: m,
                            top: f,
                            blur: p,
                            color: g,
                            opacity: v
                        })), e.globals.dom.elGraphical.add(k);
                    }
                }
            },
            {
                key: "drawYCrosshairs",
                value: function() {
                    var e = this.w, a = new he(this.ctx), r = e.config.yaxis[0].crosshairs, n = e.globals.barPadForNumericAxis;
                    if (e.config.yaxis[0].crosshairs.show) {
                        var i = a.drawLine(-n, 0, e.globals.gridWidth + n, 0, r.stroke.color, r.stroke.dashArray, r.stroke.width);
                        i.attr({
                            class: "apexcharts-ycrosshairs"
                        }), e.globals.dom.elGraphical.add(i);
                    }
                    var o = a.drawLine(-n, 0, e.globals.gridWidth + n, 0, r.stroke.color, 0, 0);
                    o.attr({
                        class: "apexcharts-ycrosshairs-hidden"
                    }), e.globals.dom.elGraphical.add(o);
                }
            }
        ]), t;
    }(), oI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "checkResponsiveConfig",
                value: function(e) {
                    var a = this, r = this.w, n = r.config;
                    if (n.responsive.length !== 0) {
                        var i = n.responsive.slice();
                        i.sort(function(u, c) {
                            return u.breakpoint > c.breakpoint ? 1 : c.breakpoint > u.breakpoint ? -1 : 0;
                        }).reverse();
                        var o = new Ao({}), s = function() {
                            var u = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, c = i[0].breakpoint, d = window.innerWidth > 0 ? window.innerWidth : screen.width;
                            if (d > c) {
                                var h = V.clone(r.globals.initialConfig);
                                h.series = V.clone(r.config.series);
                                var m = Ht.extendArrayProps(o, h, r);
                                u = V.extend(m, u), u = V.extend(r.config, u), a.overrideResponsiveOptions(u);
                            } else for(var f = 0; f < i.length; f++)d < i[f].breakpoint && (u = Ht.extendArrayProps(o, i[f].options, r), u = V.extend(r.config, u), a.overrideResponsiveOptions(u));
                        };
                        if (e) {
                            var l = Ht.extendArrayProps(o, e, r);
                            l = V.extend(r.config, l), s(l = V.extend(l, e));
                        } else s({});
                    }
                }
            },
            {
                key: "overrideResponsiveOptions",
                value: function(e) {
                    var a = new Ao(e).init({
                        responsiveOverride: !0
                    });
                    this.w.config = a;
                }
            }
        ]), t;
    }(), sI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.colors = [], this.isColorFn = !1, this.isHeatmapDistributed = this.checkHeatmapDistributed(), this.isBarDistributed = this.checkBarDistributed();
        }
        return De(t, [
            {
                key: "checkHeatmapDistributed",
                value: function() {
                    var e = this.w.config, a = e.chart, r = e.plotOptions;
                    return a.type === "treemap" && r.treemap && r.treemap.distributed || a.type === "heatmap" && r.heatmap && r.heatmap.distributed;
                }
            },
            {
                key: "checkBarDistributed",
                value: function() {
                    var e = this.w.config, a = e.chart, r = e.plotOptions;
                    return r.bar && r.bar.distributed && (a.type === "bar" || a.type === "rangeBar");
                }
            },
            {
                key: "init",
                value: function() {
                    this.setDefaultColors();
                }
            },
            {
                key: "setDefaultColors",
                value: function() {
                    var e = this.w, a = new V;
                    e.globals.dom.elWrap.classList.add("apexcharts-theme-".concat(e.config.theme.mode || "light"));
                    var r = Qt(e.config.colors || e.config.fill.colors || []);
                    e.globals.colors = this.getColors(r), this.applySeriesColors(e.globals.seriesColors, e.globals.colors), e.config.theme.monochrome.enabled && (e.globals.colors = this.getMonochromeColors(e.config.theme.monochrome, e.globals.series, a));
                    var n = e.globals.colors.slice();
                    this.pushExtraColors(e.globals.colors), this.applyColorTypes([
                        "fill",
                        "stroke"
                    ], n), this.applyDataLabelsColors(n), this.applyRadarPolygonsColors(), this.applyMarkersColors(n);
                }
            },
            {
                key: "getColors",
                value: function(e) {
                    var a = this, r = this.w;
                    return e && e.length !== 0 ? Array.isArray(e) && e.length > 0 && typeof e[0] == "function" ? (this.isColorFn = !0, r.config.series.map(function(n, i) {
                        var o = e[i] || e[0];
                        return typeof o == "function" ? o({
                            value: r.globals.axisCharts ? r.globals.series[i][0] || 0 : r.globals.series[i],
                            seriesIndex: i,
                            dataPointIndex: i,
                            w: a.w
                        }) : o;
                    })) : e : this.predefined();
                }
            },
            {
                key: "applySeriesColors",
                value: function(e, a) {
                    e.forEach(function(r, n) {
                        r && (a[n] = r);
                    });
                }
            },
            {
                key: "getMonochromeColors",
                value: function(e, a, r) {
                    var n = e.color, i = e.shadeIntensity, o = e.shadeTo, s = this.isBarDistributed || this.isHeatmapDistributed ? a[0].length * a.length : a.length, l = 1 / (s / i), u = 0;
                    return Array.from({
                        length: s
                    }, function() {
                        var c = o === "dark" ? r.shadeColor(-1 * u, n) : r.shadeColor(u, n);
                        return u += l, c;
                    });
                }
            },
            {
                key: "applyColorTypes",
                value: function(e, a) {
                    var r = this, n = this.w;
                    e.forEach(function(i) {
                        n.globals[i].colors = n.config[i].colors === void 0 ? r.isColorFn ? n.config.colors : a : n.config[i].colors.slice(), r.pushExtraColors(n.globals[i].colors);
                    });
                }
            },
            {
                key: "applyDataLabelsColors",
                value: function(e) {
                    var a = this.w;
                    a.globals.dataLabels.style.colors = a.config.dataLabels.style.colors === void 0 ? e : a.config.dataLabels.style.colors.slice(), this.pushExtraColors(a.globals.dataLabels.style.colors, 50);
                }
            },
            {
                key: "applyRadarPolygonsColors",
                value: function() {
                    var e = this.w;
                    e.globals.radarPolygons.fill.colors = e.config.plotOptions.radar.polygons.fill.colors === void 0 ? [
                        e.config.theme.mode === "dark" ? "#343A3F" : "none"
                    ] : e.config.plotOptions.radar.polygons.fill.colors.slice(), this.pushExtraColors(e.globals.radarPolygons.fill.colors, 20);
                }
            },
            {
                key: "applyMarkersColors",
                value: function(e) {
                    var a = this.w;
                    a.globals.markers.colors = a.config.markers.colors === void 0 ? e : a.config.markers.colors.slice(), this.pushExtraColors(a.globals.markers.colors);
                }
            },
            {
                key: "pushExtraColors",
                value: function(e, a) {
                    var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, n = this.w, i = a || n.globals.series.length;
                    if (r === null && (r = this.isBarDistributed || this.isHeatmapDistributed || n.config.chart.type === "heatmap" && n.config.plotOptions.heatmap && n.config.plotOptions.heatmap.colorScale.inverse), r && n.globals.series.length && (i = n.globals.series[n.globals.maxValsInArrayIndex].length * n.globals.series.length), e.length < i) for(var o = i - e.length, s = 0; s < o; s++)e.push(e[s]);
                }
            },
            {
                key: "updateThemeOptions",
                value: function(e) {
                    e.chart = e.chart || {}, e.tooltip = e.tooltip || {};
                    var a = e.theme.mode, r = a === "dark" ? "palette4" : a === "light" ? "palette1" : e.theme.palette || "palette1", n = a === "dark" ? "#f6f7f8" : a === "light" ? "#373d3f" : e.chart.foreColor || "#373d3f";
                    return e.tooltip.theme = a || "light", e.chart.foreColor = n, e.theme.palette = r, e;
                }
            },
            {
                key: "predefined",
                value: function() {
                    var e = {
                        palette1: [
                            "#008FFB",
                            "#00E396",
                            "#FEB019",
                            "#FF4560",
                            "#775DD0"
                        ],
                        palette2: [
                            "#3f51b5",
                            "#03a9f4",
                            "#4caf50",
                            "#f9ce1d",
                            "#FF9800"
                        ],
                        palette3: [
                            "#33b2df",
                            "#546E7A",
                            "#d4526e",
                            "#13d8aa",
                            "#A5978B"
                        ],
                        palette4: [
                            "#4ecdc4",
                            "#c7f464",
                            "#81D4FA",
                            "#fd6a6a",
                            "#546E7A"
                        ],
                        palette5: [
                            "#2b908f",
                            "#f9a3a4",
                            "#90ee7e",
                            "#fa4443",
                            "#69d2e7"
                        ],
                        palette6: [
                            "#449DD1",
                            "#F86624",
                            "#EA3546",
                            "#662E9B",
                            "#C5D86D"
                        ],
                        palette7: [
                            "#D7263D",
                            "#1B998B",
                            "#2E294E",
                            "#F46036",
                            "#E2C044"
                        ],
                        palette8: [
                            "#662E9B",
                            "#F86624",
                            "#F9C80E",
                            "#EA3546",
                            "#43BCCD"
                        ],
                        palette9: [
                            "#5C4742",
                            "#A5978B",
                            "#8D5B4C",
                            "#5A2A27",
                            "#C4BBAF"
                        ],
                        palette10: [
                            "#A300D6",
                            "#7D02EB",
                            "#5653FE",
                            "#2983FF",
                            "#00B1F2"
                        ],
                        default: [
                            "#008FFB",
                            "#00E396",
                            "#FEB019",
                            "#FF4560",
                            "#775DD0"
                        ]
                    };
                    return e[this.w.config.theme.palette] || e.default;
                }
            }
        ]), t;
    }(), lI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "draw",
                value: function() {
                    this.drawTitleSubtitle("title"), this.drawTitleSubtitle("subtitle");
                }
            },
            {
                key: "drawTitleSubtitle",
                value: function(e) {
                    var a = this.w, r = e === "title" ? a.config.title : a.config.subtitle, n = a.globals.svgWidth / 2, i = r.offsetY, o = "middle";
                    if (r.align === "left" ? (n = 10, o = "start") : r.align === "right" && (n = a.globals.svgWidth - 10, o = "end"), n += r.offsetX, i = i + parseInt(r.style.fontSize, 10) + r.margin / 2, r.text !== void 0) {
                        var s = new he(this.ctx).drawText({
                            x: n,
                            y: i,
                            text: r.text,
                            textAnchor: o,
                            fontSize: r.style.fontSize,
                            fontFamily: r.style.fontFamily,
                            fontWeight: r.style.fontWeight,
                            foreColor: r.style.color,
                            opacity: 1
                        });
                        s.node.setAttribute("class", "apexcharts-".concat(e, "-text")), a.globals.dom.Paper.add(s);
                    }
                }
            }
        ]), t;
    }(), uI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.dCtx = e;
        }
        return De(t, [
            {
                key: "getTitleSubtitleCoords",
                value: function(e) {
                    var a = this.w, r = 0, n = 0, i = e === "title" ? a.config.title.floating : a.config.subtitle.floating, o = a.globals.dom.baseEl.querySelector(".apexcharts-".concat(e, "-text"));
                    if (o !== null && !i) {
                        var s = o.getBoundingClientRect();
                        r = s.width, n = a.globals.axisCharts ? s.height + 5 : s.height;
                    }
                    return {
                        width: r,
                        height: n
                    };
                }
            },
            {
                key: "getLegendsRect",
                value: function() {
                    var e = this.w, a = e.globals.dom.elLegendWrap;
                    e.config.legend.height || e.config.legend.position !== "top" && e.config.legend.position !== "bottom" || (a.style.maxHeight = e.globals.svgHeight / 2 + "px");
                    var r = Object.assign({}, V.getBoundingClientRect(a));
                    return a !== null && !e.config.legend.floating && e.config.legend.show ? this.dCtx.lgRect = {
                        x: r.x,
                        y: r.y,
                        height: r.height,
                        width: r.height === 0 ? 0 : r.width
                    } : this.dCtx.lgRect = {
                        x: 0,
                        y: 0,
                        height: 0,
                        width: 0
                    }, e.config.legend.position !== "left" && e.config.legend.position !== "right" || 1.5 * this.dCtx.lgRect.width > e.globals.svgWidth && (this.dCtx.lgRect.width = e.globals.svgWidth / 1.5), this.dCtx.lgRect;
                }
            },
            {
                key: "getDatalabelsRect",
                value: function() {
                    var e = this, a = this.w, r = [];
                    a.config.series.forEach(function(l, u) {
                        l.data.forEach(function(c, d) {
                            var h;
                            h = a.globals.series[u][d], n = a.config.dataLabels.formatter(h, {
                                ctx: e.dCtx.ctx,
                                seriesIndex: u,
                                dataPointIndex: d,
                                w: a
                            }), r.push(n);
                        });
                    });
                    var n = V.getLargestStringFromArr(r), i = new he(this.dCtx.ctx), o = a.config.dataLabels.style, s = i.getTextRects(n, parseInt(o.fontSize), o.fontFamily);
                    return {
                        width: 1.05 * s.width,
                        height: s.height
                    };
                }
            },
            {
                key: "getLargestStringFromMultiArr",
                value: function(e, a) {
                    var r = e;
                    if (this.w.globals.isMultiLineX) {
                        var n = a.map(function(o, s) {
                            return Array.isArray(o) ? o.length : 1;
                        }), i = Math.max.apply(Math, Qt(n));
                        r = a[n.indexOf(i)];
                    }
                    return r;
                }
            }
        ]), t;
    }(), cI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.dCtx = e;
        }
        return De(t, [
            {
                key: "getxAxisLabelsCoords",
                value: function() {
                    var e, a = this.w, r = a.globals.labels.slice();
                    if (a.config.xaxis.convertedCatToNumeric && r.length === 0 && (r = a.globals.categoryLabels), a.globals.timescaleLabels.length > 0) {
                        var n = this.getxAxisTimeScaleLabelsCoords();
                        e = {
                            width: n.width,
                            height: n.height
                        }, a.globals.rotateXLabels = !1;
                    } else {
                        this.dCtx.lgWidthForSideLegends = a.config.legend.position !== "left" && a.config.legend.position !== "right" || a.config.legend.floating ? 0 : this.dCtx.lgRect.width;
                        var i = a.globals.xLabelFormatter, o = V.getLargestStringFromArr(r), s = this.dCtx.dimHelpers.getLargestStringFromMultiArr(o, r);
                        a.globals.isBarHorizontal && (s = o = a.globals.yAxisScale[0].result.reduce(function(f, p) {
                            return f.length > p.length ? f : p;
                        }, 0));
                        var l = new as(this.dCtx.ctx), u = o;
                        o = l.xLabelFormat(i, o, u, {
                            i: void 0,
                            dateFormatter: new ua(this.dCtx.ctx).formatDate,
                            w: a
                        }), s = l.xLabelFormat(i, s, u, {
                            i: void 0,
                            dateFormatter: new ua(this.dCtx.ctx).formatDate,
                            w: a
                        }), (a.config.xaxis.convertedCatToNumeric && o === void 0 || String(o).trim() === "") && (s = o = "1");
                        var c = new he(this.dCtx.ctx), d = c.getTextRects(o, a.config.xaxis.labels.style.fontSize), h = d;
                        if (o !== s && (h = c.getTextRects(s, a.config.xaxis.labels.style.fontSize)), (e = {
                            width: d.width >= h.width ? d.width : h.width,
                            height: d.height >= h.height ? d.height : h.height
                        }).width * r.length > a.globals.svgWidth - this.dCtx.lgWidthForSideLegends - this.dCtx.yAxisWidth - this.dCtx.gridPad.left - this.dCtx.gridPad.right && a.config.xaxis.labels.rotate !== 0 || a.config.xaxis.labels.rotateAlways) {
                            if (!a.globals.isBarHorizontal) {
                                a.globals.rotateXLabels = !0;
                                var m = function(f) {
                                    return c.getTextRects(f, a.config.xaxis.labels.style.fontSize, a.config.xaxis.labels.style.fontFamily, "rotate(".concat(a.config.xaxis.labels.rotate, " 0 0)"), !1);
                                };
                                d = m(o), o !== s && (h = m(s)), e.height = (d.height > h.height ? d.height : h.height) / 1.5, e.width = d.width > h.width ? d.width : h.width;
                            }
                        } else a.globals.rotateXLabels = !1;
                    }
                    return a.config.xaxis.labels.show || (e = {
                        width: 0,
                        height: 0
                    }), {
                        width: e.width,
                        height: e.height
                    };
                }
            },
            {
                key: "getxAxisGroupLabelsCoords",
                value: function() {
                    var e, a = this.w;
                    if (!a.globals.hasXaxisGroups) return {
                        width: 0,
                        height: 0
                    };
                    var r, n = ((e = a.config.xaxis.group.style) === null || e === void 0 ? void 0 : e.fontSize) || a.config.xaxis.labels.style.fontSize, i = a.globals.groups.map(function(d) {
                        return d.title;
                    }), o = V.getLargestStringFromArr(i), s = this.dCtx.dimHelpers.getLargestStringFromMultiArr(o, i), l = new he(this.dCtx.ctx), u = l.getTextRects(o, n), c = u;
                    return o !== s && (c = l.getTextRects(s, n)), r = {
                        width: u.width >= c.width ? u.width : c.width,
                        height: u.height >= c.height ? u.height : c.height
                    }, a.config.xaxis.labels.show || (r = {
                        width: 0,
                        height: 0
                    }), {
                        width: r.width,
                        height: r.height
                    };
                }
            },
            {
                key: "getxAxisTitleCoords",
                value: function() {
                    var e = this.w, a = 0, r = 0;
                    if (e.config.xaxis.title.text !== void 0) {
                        var n = new he(this.dCtx.ctx).getTextRects(e.config.xaxis.title.text, e.config.xaxis.title.style.fontSize);
                        a = n.width, r = n.height;
                    }
                    return {
                        width: a,
                        height: r
                    };
                }
            },
            {
                key: "getxAxisTimeScaleLabelsCoords",
                value: function() {
                    var e, a = this.w;
                    this.dCtx.timescaleLabels = a.globals.timescaleLabels.slice();
                    var r = this.dCtx.timescaleLabels.map(function(i) {
                        return i.value;
                    }), n = r.reduce(function(i, o) {
                        return i === void 0 ? (console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"), 0) : i.length > o.length ? i : o;
                    }, 0);
                    return 1.05 * (e = new he(this.dCtx.ctx).getTextRects(n, a.config.xaxis.labels.style.fontSize)).width * r.length > a.globals.gridWidth && a.config.xaxis.labels.rotate !== 0 && (a.globals.overlappingXLabels = !0), e;
                }
            },
            {
                key: "additionalPaddingXLabels",
                value: function(e) {
                    var a = this, r = this.w, n = r.globals, i = r.config, o = i.xaxis.type, s = e.width;
                    n.skipLastTimelinelabel = !1, n.skipFirstTimelinelabel = !1;
                    var l = r.config.yaxis[0].opposite && r.globals.isBarHorizontal, u = function(c, d) {
                        i.yaxis.length > 1 && function(h) {
                            return n.collapsedSeriesIndices.indexOf(h) !== -1;
                        }(d) || function(h) {
                            if (a.dCtx.timescaleLabels && a.dCtx.timescaleLabels.length) {
                                var m = a.dCtx.timescaleLabels[0], f = a.dCtx.timescaleLabels[a.dCtx.timescaleLabels.length - 1].position + s / 1.75 - a.dCtx.yAxisWidthRight, p = m.position - s / 1.75 + a.dCtx.yAxisWidthLeft, g = r.config.legend.position === "right" && a.dCtx.lgRect.width > 0 ? a.dCtx.lgRect.width : 0;
                                f > n.svgWidth - n.translateX - g && (n.skipLastTimelinelabel = !0), p < -(h.show && !h.floating || i.chart.type !== "bar" && i.chart.type !== "candlestick" && i.chart.type !== "rangeBar" && i.chart.type !== "boxPlot" ? 10 : s / 1.75) && (n.skipFirstTimelinelabel = !0);
                            } else o === "datetime" ? a.dCtx.gridPad.right < s && !n.rotateXLabels && (n.skipLastTimelinelabel = !0) : o !== "datetime" && a.dCtx.gridPad.right < s / 2 - a.dCtx.yAxisWidthRight && !n.rotateXLabels && !r.config.xaxis.labels.trim && (a.dCtx.xPadRight = s / 2 + 1);
                        }(c);
                    };
                    i.yaxis.forEach(function(c, d) {
                        l ? (a.dCtx.gridPad.left < s && (a.dCtx.xPadLeft = s / 2 + 1), a.dCtx.xPadRight = s / 2 + 1) : u(c, d);
                    });
                }
            }
        ]), t;
    }(), dI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.dCtx = e;
        }
        return De(t, [
            {
                key: "getyAxisLabelsCoords",
                value: function() {
                    var e = this, a = this.w, r = [], n = 10, i = new tn(this.dCtx.ctx);
                    return a.config.yaxis.map(function(o, s) {
                        var l = {
                            seriesIndex: s,
                            dataPointIndex: -1,
                            w: a
                        }, u = a.globals.yAxisScale[s], c = 0;
                        if (!i.isYAxisHidden(s) && o.labels.show && o.labels.minWidth !== void 0 && (c = o.labels.minWidth), !i.isYAxisHidden(s) && o.labels.show && u.result.length) {
                            var d = a.globals.yLabelFormatters[s], h = u.niceMin === Number.MIN_VALUE ? 0 : u.niceMin, m = u.result.reduce(function(S, x) {
                                var C, w;
                                return ((C = String(d(S, l))) === null || C === void 0 ? void 0 : C.length) > ((w = String(d(x, l))) === null || w === void 0 ? void 0 : w.length) ? S : x;
                            }, h), f = m = d(m, l);
                            if (m !== void 0 && m.length !== 0 || (m = u.niceMax), a.globals.isBarHorizontal) {
                                n = 0;
                                var p = a.globals.labels.slice();
                                m = V.getLargestStringFromArr(p), m = d(m, {
                                    seriesIndex: s,
                                    dataPointIndex: -1,
                                    w: a
                                }), f = e.dCtx.dimHelpers.getLargestStringFromMultiArr(m, p);
                            }
                            var g = new he(e.dCtx.ctx), v = "rotate(".concat(o.labels.rotate, " 0 0)"), b = g.getTextRects(m, o.labels.style.fontSize, o.labels.style.fontFamily, v, !1), k = b;
                            m !== f && (k = g.getTextRects(f, o.labels.style.fontSize, o.labels.style.fontFamily, v, !1)), r.push({
                                width: (c > k.width || c > b.width ? c : k.width > b.width ? k.width : b.width) + n,
                                height: k.height > b.height ? k.height : b.height
                            });
                        } else r.push({
                            width: 0,
                            height: 0
                        });
                    }), r;
                }
            },
            {
                key: "getyAxisTitleCoords",
                value: function() {
                    var e = this, a = this.w, r = [];
                    return a.config.yaxis.map(function(n, i) {
                        if (n.show && n.title.text !== void 0) {
                            var o = new he(e.dCtx.ctx), s = "rotate(".concat(n.title.rotate, " 0 0)"), l = o.getTextRects(n.title.text, n.title.style.fontSize, n.title.style.fontFamily, s, !1);
                            r.push({
                                width: l.width,
                                height: l.height
                            });
                        } else r.push({
                            width: 0,
                            height: 0
                        });
                    }), r;
                }
            },
            {
                key: "getTotalYAxisWidth",
                value: function() {
                    var e = this.w, a = 0, r = 0, n = 0, i = e.globals.yAxisScale.length > 1 ? 10 : 0, o = new tn(this.dCtx.ctx), s = function(l, u) {
                        var c = e.config.yaxis[u].floating, d = 0;
                        l.width > 0 && !c ? (d = l.width + i, function(h) {
                            return e.globals.ignoreYAxisIndexes.indexOf(h) > -1;
                        }(u) && (d = d - l.width - i)) : d = c || o.isYAxisHidden(u) ? 0 : 5, e.config.yaxis[u].opposite ? n += d : r += d, a += d;
                    };
                    return e.globals.yLabelsCoords.map(function(l, u) {
                        s(l, u);
                    }), e.globals.yTitleCoords.map(function(l, u) {
                        s(l, u);
                    }), e.globals.isBarHorizontal && !e.config.yaxis[0].floating && (a = e.globals.yLabelsCoords[0].width + e.globals.yTitleCoords[0].width + 15), this.dCtx.yAxisWidthLeft = r, this.dCtx.yAxisWidthRight = n, a;
                }
            }
        ]), t;
    }(), hI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.dCtx = e;
        }
        return De(t, [
            {
                key: "gridPadForColumnsInNumericAxis",
                value: function(e) {
                    var a = this.w, r = a.config, n = a.globals;
                    if (n.noData || n.collapsedSeries.length + n.ancillaryCollapsedSeries.length === r.series.length) return 0;
                    var i = function(m) {
                        return [
                            "bar",
                            "rangeBar",
                            "candlestick",
                            "boxPlot"
                        ].includes(m);
                    }, o = r.chart.type, s = 0, l = i(o) ? r.series.length : 1;
                    n.comboBarCount > 0 && (l = n.comboBarCount), n.collapsedSeries.forEach(function(m) {
                        i(m.type) && (l -= 1);
                    }), r.chart.stacked && (l = 1);
                    var u = i(o) || n.comboBarCount > 0, c = Math.abs(n.initialMaxX - n.initialMinX);
                    if (u && n.isXNumeric && !n.isBarHorizontal && l > 0 && c !== 0) {
                        c <= 3 && (c = n.dataPoints);
                        var d = c / e, h = n.minXDiff && n.minXDiff / d > 0 ? n.minXDiff / d : 0;
                        h > e / 2 && (h /= 2), (s = h * parseInt(r.plotOptions.bar.columnWidth, 10) / 100) < 1 && (s = 1), n.barPadForNumericAxis = s;
                    }
                    return s;
                }
            },
            {
                key: "gridPadFortitleSubtitle",
                value: function() {
                    var e = this, a = this.w, r = a.globals, n = this.dCtx.isSparkline || !r.axisCharts ? 0 : 10;
                    [
                        "title",
                        "subtitle"
                    ].forEach(function(s) {
                        a.config[s].text !== void 0 ? n += a.config[s].margin : n += e.dCtx.isSparkline || !r.axisCharts ? 0 : 5;
                    }), !a.config.legend.show || a.config.legend.position !== "bottom" || a.config.legend.floating || r.axisCharts || (n += 10);
                    var i = this.dCtx.dimHelpers.getTitleSubtitleCoords("title"), o = this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");
                    r.gridHeight -= i.height + o.height + n, r.translateY += i.height + o.height + n;
                }
            },
            {
                key: "setGridXPosForDualYAxis",
                value: function(e, a) {
                    var r = this.w, n = new tn(this.dCtx.ctx);
                    r.config.yaxis.forEach(function(i, o) {
                        r.globals.ignoreYAxisIndexes.indexOf(o) !== -1 || i.floating || n.isYAxisHidden(o) || (i.opposite && (r.globals.translateX -= a[o].width + e[o].width + parseInt(i.labels.style.fontSize, 10) / 1.2 + 12), r.globals.translateX < 2 && (r.globals.translateX = 2));
                    });
                }
            }
        ]), t;
    }(), el = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.lgRect = {}, this.yAxisWidth = 0, this.yAxisWidthLeft = 0, this.yAxisWidthRight = 0, this.xAxisHeight = 0, this.isSparkline = this.w.config.chart.sparkline.enabled, this.dimHelpers = new uI(this), this.dimYAxis = new dI(this), this.dimXAxis = new cI(this), this.dimGrid = new hI(this), this.lgWidthForSideLegends = 0, this.gridPad = this.w.config.grid.padding, this.xPadRight = 0, this.xPadLeft = 0;
        }
        return De(t, [
            {
                key: "plotCoords",
                value: function() {
                    var e = this, a = this.w, r = a.globals;
                    this.lgRect = this.dimHelpers.getLegendsRect(), this.datalabelsCoords = {
                        width: 0,
                        height: 0
                    };
                    var n = Array.isArray(a.config.stroke.width) ? Math.max.apply(Math, Qt(a.config.stroke.width)) : a.config.stroke.width;
                    this.isSparkline && ((a.config.markers.discrete.length > 0 || a.config.markers.size > 0) && Object.entries(this.gridPad).forEach(function(o) {
                        var s = f1(o, 2), l = s[0], u = s[1];
                        e.gridPad[l] = Math.max(u, e.w.globals.markers.largestSize / 1.5);
                    }), this.gridPad.top = Math.max(n / 2, this.gridPad.top), this.gridPad.bottom = Math.max(n / 2, this.gridPad.bottom)), r.axisCharts ? this.setDimensionsForAxisCharts() : this.setDimensionsForNonAxisCharts(), this.dimGrid.gridPadFortitleSubtitle(), r.gridHeight = r.gridHeight - this.gridPad.top - this.gridPad.bottom, r.gridWidth = r.gridWidth - this.gridPad.left - this.gridPad.right - this.xPadRight - this.xPadLeft;
                    var i = this.dimGrid.gridPadForColumnsInNumericAxis(r.gridWidth);
                    r.gridWidth = r.gridWidth - 2 * i, r.translateX = r.translateX + this.gridPad.left + this.xPadLeft + (i > 0 ? i : 0), r.translateY = r.translateY + this.gridPad.top;
                }
            },
            {
                key: "setDimensionsForAxisCharts",
                value: function() {
                    var e = this, a = this.w, r = a.globals, n = this.dimYAxis.getyAxisLabelsCoords(), i = this.dimYAxis.getyAxisTitleCoords();
                    r.isSlopeChart && (this.datalabelsCoords = this.dimHelpers.getDatalabelsRect()), a.globals.yLabelsCoords = [], a.globals.yTitleCoords = [], a.config.yaxis.map(function(m, f) {
                        a.globals.yLabelsCoords.push({
                            width: n[f].width,
                            index: f
                        }), a.globals.yTitleCoords.push({
                            width: i[f].width,
                            index: f
                        });
                    }), this.yAxisWidth = this.dimYAxis.getTotalYAxisWidth();
                    var o = this.dimXAxis.getxAxisLabelsCoords(), s = this.dimXAxis.getxAxisGroupLabelsCoords(), l = this.dimXAxis.getxAxisTitleCoords();
                    this.conditionalChecksForAxisCoords(o, l, s), r.translateXAxisY = a.globals.rotateXLabels ? this.xAxisHeight / 8 : -4, r.translateXAxisX = a.globals.rotateXLabels && a.globals.isXNumeric && a.config.xaxis.labels.rotate <= -45 ? -this.xAxisWidth / 4 : 0, a.globals.isBarHorizontal && (r.rotateXLabels = !1, r.translateXAxisY = parseInt(a.config.xaxis.labels.style.fontSize, 10) / 1.5 * -1), r.translateXAxisY = r.translateXAxisY + a.config.xaxis.labels.offsetY, r.translateXAxisX = r.translateXAxisX + a.config.xaxis.labels.offsetX;
                    var u = this.yAxisWidth, c = this.xAxisHeight;
                    r.xAxisLabelsHeight = this.xAxisHeight - l.height, r.xAxisGroupLabelsHeight = r.xAxisLabelsHeight - o.height, r.xAxisLabelsWidth = this.xAxisWidth, r.xAxisHeight = this.xAxisHeight;
                    var d = 10;
                    (a.config.chart.type === "radar" || this.isSparkline) && (u = 0, c = 0), this.isSparkline && (this.lgRect = {
                        height: 0,
                        width: 0
                    }), (this.isSparkline || a.config.chart.type === "treemap") && (u = 0, c = 0, d = 0), this.isSparkline || a.config.chart.type === "treemap" || this.dimXAxis.additionalPaddingXLabels(o);
                    var h = function() {
                        r.translateX = u + e.datalabelsCoords.width, r.gridHeight = r.svgHeight - e.lgRect.height - c - (e.isSparkline || a.config.chart.type === "treemap" ? 0 : a.globals.rotateXLabels ? 10 : 15), r.gridWidth = r.svgWidth - u - 2 * e.datalabelsCoords.width;
                    };
                    switch(a.config.xaxis.position === "top" && (d = r.xAxisHeight - a.config.xaxis.axisTicks.height - 5), a.config.legend.position){
                        case "bottom":
                            r.translateY = d, h();
                            break;
                        case "top":
                            r.translateY = this.lgRect.height + d, h();
                            break;
                        case "left":
                            r.translateY = d, r.translateX = this.lgRect.width + u + this.datalabelsCoords.width, r.gridHeight = r.svgHeight - c - 12, r.gridWidth = r.svgWidth - this.lgRect.width - u - 2 * this.datalabelsCoords.width;
                            break;
                        case "right":
                            r.translateY = d, r.translateX = u + this.datalabelsCoords.width, r.gridHeight = r.svgHeight - c - 12, r.gridWidth = r.svgWidth - this.lgRect.width - u - 2 * this.datalabelsCoords.width - 5;
                            break;
                        default:
                            throw new Error("Legend position not supported");
                    }
                    this.dimGrid.setGridXPosForDualYAxis(i, n), new Ff(this.ctx).setYAxisXPosition(n, i);
                }
            },
            {
                key: "setDimensionsForNonAxisCharts",
                value: function() {
                    var e = this.w, a = e.globals, r = e.config, n = 0;
                    e.config.legend.show && !e.config.legend.floating && (n = 20);
                    var i = r.chart.type === "pie" || r.chart.type === "polarArea" || r.chart.type === "donut" ? "pie" : "radialBar", o = r.plotOptions[i].offsetY, s = r.plotOptions[i].offsetX;
                    if (!r.legend.show || r.legend.floating) {
                        a.gridHeight = a.svgHeight;
                        var l = a.dom.elWrap.getBoundingClientRect().width;
                        return a.gridWidth = Math.min(l, a.gridHeight), a.translateY = o, void (a.translateX = s + (a.svgWidth - a.gridWidth) / 2);
                    }
                    switch(r.legend.position){
                        case "bottom":
                            a.gridHeight = a.svgHeight - this.lgRect.height, a.gridWidth = a.svgWidth, a.translateY = o - 10, a.translateX = s + (a.svgWidth - a.gridWidth) / 2;
                            break;
                        case "top":
                            a.gridHeight = a.svgHeight - this.lgRect.height, a.gridWidth = a.svgWidth, a.translateY = this.lgRect.height + o + 10, a.translateX = s + (a.svgWidth - a.gridWidth) / 2;
                            break;
                        case "left":
                            a.gridWidth = a.svgWidth - this.lgRect.width - n, a.gridHeight = r.chart.height !== "auto" ? a.svgHeight : a.gridWidth, a.translateY = o, a.translateX = s + this.lgRect.width + n;
                            break;
                        case "right":
                            a.gridWidth = a.svgWidth - this.lgRect.width - n - 5, a.gridHeight = r.chart.height !== "auto" ? a.svgHeight : a.gridWidth, a.translateY = o, a.translateX = s + 10;
                            break;
                        default:
                            throw new Error("Legend position not supported");
                    }
                }
            },
            {
                key: "conditionalChecksForAxisCoords",
                value: function(e, a, r) {
                    var n = this.w, i = n.globals.hasXaxisGroups ? 2 : 1, o = r.height + e.height + a.height, s = n.globals.isMultiLineX ? 1.2 : n.globals.LINE_HEIGHT_RATIO, l = n.globals.rotateXLabels ? 22 : 10, u = n.globals.rotateXLabels && n.config.legend.position === "bottom" ? 10 : 0;
                    this.xAxisHeight = o * s + i * l + u, this.xAxisWidth = e.width, this.xAxisHeight - a.height > n.config.xaxis.labels.maxHeight && (this.xAxisHeight = n.config.xaxis.labels.maxHeight), n.config.xaxis.labels.minHeight && this.xAxisHeight < n.config.xaxis.labels.minHeight && (this.xAxisHeight = n.config.xaxis.labels.minHeight), n.config.xaxis.floating && (this.xAxisHeight = 0);
                    var c = 0, d = 0;
                    n.config.yaxis.forEach(function(h) {
                        c += h.labels.minWidth, d += h.labels.maxWidth;
                    }), this.yAxisWidth < c && (this.yAxisWidth = c), this.yAxisWidth > d && (this.yAxisWidth = d);
                }
            }
        ]), t;
    }(), mI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.lgCtx = e;
        }
        return De(t, [
            {
                key: "getLegendStyles",
                value: function() {
                    var e, a, r, n = document.createElement("style");
                    n.setAttribute("type", "text/css");
                    var i = ((e = this.lgCtx.ctx) === null || e === void 0 || (a = e.opts) === null || a === void 0 || (r = a.chart) === null || r === void 0 ? void 0 : r.nonce) || this.w.config.chart.nonce;
                    i && n.setAttribute("nonce", i);
                    var o = document.createTextNode(`
      .apexcharts-flip-y {
        transform: scaleY(-1) translateY(-100%);
        transform-origin: top;
        transform-box: fill-box;
      }
      .apexcharts-flip-x {
        transform: scaleX(-1);
        transform-origin: center;
        transform-box: fill-box;
      }
      .apexcharts-legend {
        display: flex;
        overflow: auto;
        padding: 0 10px;
      }
      .apexcharts-legend.apexcharts-legend-group-horizontal {
        flex-direction: column;
      }
      .apexcharts-legend-group {
        display: flex;
      }
      .apexcharts-legend-group-vertical {
        flex-direction: column-reverse;
      }
      .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {
        flex-wrap: wrap
      }
      .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {
        flex-direction: column;
        bottom: 0;
      }
      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {
        justify-content: flex-start;
        align-items: flex-start;
      }
      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {
        justify-content: center;
        align-items: center;
      }
      .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {
        justify-content: flex-end;
        align-items: flex-end;
      }
      .apexcharts-legend-series {
        cursor: pointer;
        line-height: normal;
        display: flex;
        align-items: center;
      }
      .apexcharts-legend-text {
        position: relative;
        font-size: 14px;
      }
      .apexcharts-legend-text *, .apexcharts-legend-marker * {
        pointer-events: none;
      }
      .apexcharts-legend-marker {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        margin-right: 1px;
      }

      .apexcharts-legend-series.apexcharts-no-click {
        cursor: auto;
      }
      .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {
        display: none !important;
      }
      .apexcharts-inactive-legend {
        opacity: 0.45;
      }

    `);
                    return n.appendChild(o), n;
                }
            },
            {
                key: "getLegendDimensions",
                value: function() {
                    var e = this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(), a = e.width;
                    return {
                        clwh: e.height,
                        clww: a
                    };
                }
            },
            {
                key: "appendToForeignObject",
                value: function() {
                    this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles());
                }
            },
            {
                key: "toggleDataSeries",
                value: function(e, a) {
                    var r = this, n = this.w;
                    if (n.globals.axisCharts || n.config.chart.type === "radialBar") {
                        n.globals.resized = !0;
                        var i = null, o = null;
                        n.globals.risingSeries = [], n.globals.axisCharts ? (i = n.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(e, "']")), o = parseInt(i.getAttribute("data:realIndex"), 10)) : (i = n.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(e + 1, "']")), o = parseInt(i.getAttribute("rel"), 10) - 1), a ? [
                            {
                                cs: n.globals.collapsedSeries,
                                csi: n.globals.collapsedSeriesIndices
                            },
                            {
                                cs: n.globals.ancillaryCollapsedSeries,
                                csi: n.globals.ancillaryCollapsedSeriesIndices
                            }
                        ].forEach(function(c) {
                            r.riseCollapsedSeries(c.cs, c.csi, o);
                        }) : this.hideSeries({
                            seriesEl: i,
                            realIndex: o
                        });
                    } else {
                        var s = n.globals.dom.Paper.findOne(" .apexcharts-series[rel='".concat(e + 1, "'] path")), l = n.config.chart.type;
                        if (l === "pie" || l === "polarArea" || l === "donut") {
                            var u = n.config.plotOptions.pie.donut.labels;
                            new he(this.lgCtx.ctx).pathMouseDown(s, null), this.lgCtx.ctx.pie.printDataLabelsInner(s.node, u);
                        }
                        s.fire("click");
                    }
                }
            },
            {
                key: "getSeriesAfterCollapsing",
                value: function(e) {
                    var a = e.realIndex, r = this.w, n = r.globals, i = V.clone(r.config.series);
                    if (n.axisCharts) {
                        var o = r.config.yaxis[n.seriesYAxisReverseMap[a]], s = {
                            index: a,
                            data: i[a].data.slice(),
                            type: i[a].type || r.config.chart.type
                        };
                        if (o && o.show && o.showAlways) n.ancillaryCollapsedSeriesIndices.indexOf(a) < 0 && (n.ancillaryCollapsedSeries.push(s), n.ancillaryCollapsedSeriesIndices.push(a));
                        else if (n.collapsedSeriesIndices.indexOf(a) < 0) {
                            n.collapsedSeries.push(s), n.collapsedSeriesIndices.push(a);
                            var l = n.risingSeries.indexOf(a);
                            n.risingSeries.splice(l, 1);
                        }
                    } else n.collapsedSeries.push({
                        index: a,
                        data: i[a]
                    }), n.collapsedSeriesIndices.push(a);
                    return n.allSeriesCollapsed = n.collapsedSeries.length + n.ancillaryCollapsedSeries.length === r.config.series.length, this._getSeriesBasedOnCollapsedState(i);
                }
            },
            {
                key: "hideSeries",
                value: function(e) {
                    for(var a = e.seriesEl, r = e.realIndex, n = this.w, i = this.getSeriesAfterCollapsing({
                        realIndex: r
                    }), o = a.childNodes, s = 0; s < o.length; s++)o[s].classList.contains("apexcharts-series-markers-wrap") && (o[s].classList.contains("apexcharts-hide") ? o[s].classList.remove("apexcharts-hide") : o[s].classList.add("apexcharts-hide"));
                    this.lgCtx.ctx.updateHelpers._updateSeries(i, n.config.chart.animations.dynamicAnimation.enabled);
                }
            },
            {
                key: "riseCollapsedSeries",
                value: function(e, a, r) {
                    var n = this.w, i = V.clone(n.config.series);
                    if (e.length > 0) {
                        for(var o = 0; o < e.length; o++)e[o].index === r && (n.globals.axisCharts ? i[r].data = e[o].data.slice() : i[r] = e[o].data, typeof i[r] != "number" && (i[r].hidden = !1), e.splice(o, 1), a.splice(o, 1), n.globals.risingSeries.push(r));
                        i = this._getSeriesBasedOnCollapsedState(i), this.lgCtx.ctx.updateHelpers._updateSeries(i, n.config.chart.animations.dynamicAnimation.enabled);
                    }
                }
            },
            {
                key: "_getSeriesBasedOnCollapsedState",
                value: function(e) {
                    var a = this.w, r = 0;
                    return a.globals.axisCharts ? e.forEach(function(n, i) {
                        a.globals.collapsedSeriesIndices.indexOf(i) < 0 && a.globals.ancillaryCollapsedSeriesIndices.indexOf(i) < 0 || (e[i].data = [], r++);
                    }) : e.forEach(function(n, i) {
                        !a.globals.collapsedSeriesIndices.indexOf(i) < 0 && (e[i] = 0, r++);
                    }), a.globals.allSeriesCollapsed = r === e.length, e;
                }
            }
        ]), t;
    }(), Y1 = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.onLegendClick = this.onLegendClick.bind(this), this.onLegendHovered = this.onLegendHovered.bind(this), this.isBarsDistributed = this.w.config.chart.type === "bar" && this.w.config.plotOptions.bar.distributed && this.w.config.series.length === 1, this.legendHelpers = new mI(this);
        }
        return De(t, [
            {
                key: "init",
                value: function() {
                    var e = this.w, a = e.globals, r = e.config, n = r.legend.showForSingleSeries && a.series.length === 1 || this.isBarsDistributed || a.series.length > 1;
                    if (this.legendHelpers.appendToForeignObject(), (n || !a.axisCharts) && r.legend.show) {
                        for(; a.dom.elLegendWrap.firstChild;)a.dom.elLegendWrap.removeChild(a.dom.elLegendWrap.firstChild);
                        this.drawLegends(), r.legend.position === "bottom" || r.legend.position === "top" ? this.legendAlignHorizontal() : r.legend.position !== "right" && r.legend.position !== "left" || this.legendAlignVertical();
                    }
                }
            },
            {
                key: "createLegendMarker",
                value: function(e) {
                    var a = e.i, r = e.fillcolor, n = this.w, i = document.createElement("span");
                    i.classList.add("apexcharts-legend-marker");
                    var o = n.config.legend.markers.shape || n.config.markers.shape, s = o;
                    Array.isArray(o) && (s = o[a]);
                    var l = Array.isArray(n.config.legend.markers.size) ? parseFloat(n.config.legend.markers.size[a]) : parseFloat(n.config.legend.markers.size), u = Array.isArray(n.config.legend.markers.offsetX) ? parseFloat(n.config.legend.markers.offsetX[a]) : parseFloat(n.config.legend.markers.offsetX), c = Array.isArray(n.config.legend.markers.offsetY) ? parseFloat(n.config.legend.markers.offsetY[a]) : parseFloat(n.config.legend.markers.offsetY), d = Array.isArray(n.config.legend.markers.strokeWidth) ? parseFloat(n.config.legend.markers.strokeWidth[a]) : parseFloat(n.config.legend.markers.strokeWidth), h = i.style;
                    if (h.height = 2 * (l + d) + "px", h.width = 2 * (l + d) + "px", h.left = u + "px", h.top = c + "px", n.config.legend.markers.customHTML) h.background = "transparent", h.color = r[a], Array.isArray(n.config.legend.markers.customHTML) ? n.config.legend.markers.customHTML[a] && (i.innerHTML = n.config.legend.markers.customHTML[a]()) : i.innerHTML = n.config.legend.markers.customHTML();
                    else {
                        var m = new Ui(this.ctx).getMarkerConfig({
                            cssClass: "apexcharts-legend-marker apexcharts-marker apexcharts-marker-".concat(s),
                            seriesIndex: a,
                            strokeWidth: d,
                            size: l
                        }), f = window.SVG().addTo(i).size("100%", "100%"), p = new he(this.ctx).drawMarker(0, 0, ye(ye({}, m), {}, {
                            pointFillColor: Array.isArray(r) ? r[a] : m.pointFillColor,
                            shape: s
                        }));
                        n.globals.dom.Paper.find(".apexcharts-legend-marker.apexcharts-marker").forEach(function(g) {
                            g.node.classList.contains("apexcharts-marker-triangle") ? g.node.style.transform = "translate(50%, 45%)" : g.node.style.transform = "translate(50%, 50%)";
                        }), f.add(p);
                    }
                    return i;
                }
            },
            {
                key: "drawLegends",
                value: function() {
                    var e = this, a = this, r = this.w, n = r.config.legend.fontFamily, i = r.globals.seriesNames, o = r.config.legend.markers.fillColors ? r.config.legend.markers.fillColors.slice() : r.globals.colors.slice();
                    if (r.config.chart.type === "heatmap") {
                        var s = r.config.plotOptions.heatmap.colorScale.ranges;
                        i = s.map(function(m) {
                            return m.name ? m.name : m.from + " - " + m.to;
                        }), o = s.map(function(m) {
                            return m.color;
                        });
                    } else this.isBarsDistributed && (i = r.globals.labels.slice());
                    r.config.legend.customLegendItems.length && (i = r.config.legend.customLegendItems);
                    var l = r.globals.legendFormatter, u = r.config.legend.inverseOrder, c = [];
                    r.globals.seriesGroups.length > 1 && r.config.legend.clusterGroupedSeries && r.globals.seriesGroups.forEach(function(m, f) {
                        c[f] = document.createElement("div"), c[f].classList.add("apexcharts-legend-group", "apexcharts-legend-group-".concat(f)), r.config.legend.clusterGroupedSeriesOrientation === "horizontal" ? r.globals.dom.elLegendWrap.classList.add("apexcharts-legend-group-horizontal") : c[f].classList.add("apexcharts-legend-group-vertical");
                    });
                    for(var d = function(m) {
                        var f, p = l(i[m], {
                            seriesIndex: m,
                            w: r
                        }), g = !1, v = !1;
                        if (r.globals.collapsedSeries.length > 0) for(var b = 0; b < r.globals.collapsedSeries.length; b++)r.globals.collapsedSeries[b].index === m && (g = !0);
                        if (r.globals.ancillaryCollapsedSeriesIndices.length > 0) for(var k = 0; k < r.globals.ancillaryCollapsedSeriesIndices.length; k++)r.globals.ancillaryCollapsedSeriesIndices[k] === m && (v = !0);
                        var S = e.createLegendMarker({
                            i: m,
                            fillcolor: o
                        });
                        he.setAttrs(S, {
                            rel: m + 1,
                            "data:collapsed": g || v
                        }), (g || v) && S.classList.add("apexcharts-inactive-legend");
                        var x = document.createElement("div"), C = document.createElement("span");
                        C.classList.add("apexcharts-legend-text"), C.innerHTML = Array.isArray(p) ? p.join(" ") : p;
                        var w = r.config.legend.labels.useSeriesColors ? r.globals.colors[m] : Array.isArray(r.config.legend.labels.colors) ? (f = r.config.legend.labels.colors) === null || f === void 0 ? void 0 : f[m] : r.config.legend.labels.colors;
                        w || (w = r.config.chart.foreColor), C.style.color = w, C.style.fontSize = parseFloat(r.config.legend.fontSize) + "px", C.style.fontWeight = r.config.legend.fontWeight, C.style.fontFamily = n || r.config.chart.fontFamily, he.setAttrs(C, {
                            rel: m + 1,
                            i: m,
                            "data:default-text": encodeURIComponent(p),
                            "data:collapsed": g || v
                        }), x.appendChild(S), x.appendChild(C);
                        var F = new Ht(e.ctx);
                        r.config.legend.showForZeroSeries || F.getSeriesTotalByIndex(m) === 0 && F.seriesHaveSameValues(m) && !F.isSeriesNull(m) && r.globals.collapsedSeriesIndices.indexOf(m) === -1 && r.globals.ancillaryCollapsedSeriesIndices.indexOf(m) === -1 && x.classList.add("apexcharts-hidden-zero-series"), r.config.legend.showForNullSeries || F.isSeriesNull(m) && r.globals.collapsedSeriesIndices.indexOf(m) === -1 && r.globals.ancillaryCollapsedSeriesIndices.indexOf(m) === -1 && x.classList.add("apexcharts-hidden-null-series"), c.length ? r.globals.seriesGroups.forEach(function(D, _) {
                            var A;
                            D.includes((A = r.config.series[m]) === null || A === void 0 ? void 0 : A.name) && (r.globals.dom.elLegendWrap.appendChild(c[_]), c[_].appendChild(x));
                        }) : r.globals.dom.elLegendWrap.appendChild(x), r.globals.dom.elLegendWrap.classList.add("apexcharts-align-".concat(r.config.legend.horizontalAlign)), r.globals.dom.elLegendWrap.classList.add("apx-legend-position-" + r.config.legend.position), x.classList.add("apexcharts-legend-series"), x.style.margin = "".concat(r.config.legend.itemMargin.vertical, "px ").concat(r.config.legend.itemMargin.horizontal, "px"), r.globals.dom.elLegendWrap.style.width = r.config.legend.width ? r.config.legend.width + "px" : "", r.globals.dom.elLegendWrap.style.height = r.config.legend.height ? r.config.legend.height + "px" : "", he.setAttrs(x, {
                            rel: m + 1,
                            seriesName: V.escapeString(i[m]),
                            "data:collapsed": g || v
                        }), (g || v) && x.classList.add("apexcharts-inactive-legend"), r.config.legend.onItemClick.toggleDataSeries || x.classList.add("apexcharts-no-click");
                    }, h = u ? i.length - 1 : 0; u ? h >= 0 : h <= i.length - 1; u ? h-- : h++)d(h);
                    r.globals.dom.elWrap.addEventListener("click", a.onLegendClick, !0), r.config.legend.onItemHover.highlightDataSeries && r.config.legend.customLegendItems.length === 0 && (r.globals.dom.elWrap.addEventListener("mousemove", a.onLegendHovered, !0), r.globals.dom.elWrap.addEventListener("mouseout", a.onLegendHovered, !0));
                }
            },
            {
                key: "setLegendWrapXY",
                value: function(e, a) {
                    var r = this.w, n = r.globals.dom.elLegendWrap, i = n.clientHeight, o = 0, s = 0;
                    if (r.config.legend.position === "bottom") s = r.globals.svgHeight - Math.min(i, r.globals.svgHeight / 2) - 5;
                    else if (r.config.legend.position === "top") {
                        var l = new el(this.ctx), u = l.dimHelpers.getTitleSubtitleCoords("title").height, c = l.dimHelpers.getTitleSubtitleCoords("subtitle").height;
                        s = (u > 0 ? u - 10 : 0) + (c > 0 ? c - 10 : 0);
                    }
                    n.style.position = "absolute", o = o + e + r.config.legend.offsetX, s = s + a + r.config.legend.offsetY, n.style.left = o + "px", n.style.top = s + "px", r.config.legend.position === "right" && (n.style.left = "auto", n.style.right = 25 + r.config.legend.offsetX + "px"), [
                        "width",
                        "height"
                    ].forEach(function(d) {
                        n.style[d] && (n.style[d] = parseInt(r.config.legend[d], 10) + "px");
                    });
                }
            },
            {
                key: "legendAlignHorizontal",
                value: function() {
                    var e = this.w;
                    e.globals.dom.elLegendWrap.style.right = 0;
                    var a = new el(this.ctx), r = a.dimHelpers.getTitleSubtitleCoords("title"), n = a.dimHelpers.getTitleSubtitleCoords("subtitle"), i = 0;
                    e.config.legend.position === "top" && (i = r.height + n.height + e.config.title.margin + e.config.subtitle.margin - 10), this.setLegendWrapXY(20, i);
                }
            },
            {
                key: "legendAlignVertical",
                value: function() {
                    var e = this.w, a = this.legendHelpers.getLegendDimensions(), r = 0;
                    e.config.legend.position === "left" && (r = 20), e.config.legend.position === "right" && (r = e.globals.svgWidth - a.clww - 10), this.setLegendWrapXY(r, 20);
                }
            },
            {
                key: "onLegendHovered",
                value: function(e) {
                    var a = this.w, r = e.target.classList.contains("apexcharts-legend-series") || e.target.classList.contains("apexcharts-legend-text") || e.target.classList.contains("apexcharts-legend-marker");
                    if (a.config.chart.type === "heatmap" || this.isBarsDistributed) {
                        if (r) {
                            var n = parseInt(e.target.getAttribute("rel"), 10) - 1;
                            this.ctx.events.fireEvent("legendHover", [
                                this.ctx,
                                n,
                                this.w
                            ]), new nr(this.ctx).highlightRangeInSeries(e, e.target);
                        }
                    } else !e.target.classList.contains("apexcharts-inactive-legend") && r && new nr(this.ctx).toggleSeriesOnHover(e, e.target);
                }
            },
            {
                key: "onLegendClick",
                value: function(e) {
                    var a = this.w;
                    if (!a.config.legend.customLegendItems.length && (e.target.classList.contains("apexcharts-legend-series") || e.target.classList.contains("apexcharts-legend-text") || e.target.classList.contains("apexcharts-legend-marker"))) {
                        var r = parseInt(e.target.getAttribute("rel"), 10) - 1, n = e.target.getAttribute("data:collapsed") === "true", i = this.w.config.chart.events.legendClick;
                        typeof i == "function" && i(this.ctx, r, this.w), this.ctx.events.fireEvent("legendClick", [
                            this.ctx,
                            r,
                            this.w
                        ]);
                        var o = this.w.config.legend.markers.onClick;
                        typeof o == "function" && e.target.classList.contains("apexcharts-legend-marker") && (o(this.ctx, r, this.w), this.ctx.events.fireEvent("legendMarkerClick", [
                            this.ctx,
                            r,
                            this.w
                        ])), a.config.chart.type !== "treemap" && a.config.chart.type !== "heatmap" && !this.isBarsDistributed && a.config.legend.onItemClick.toggleDataSeries && this.legendHelpers.toggleDataSeries(r, n);
                    }
                }
            }
        ]), t;
    }(), q1 = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
            var a = this.w;
            this.ev = this.w.config.chart.events, this.selectedClass = "apexcharts-selected", this.localeValues = this.w.globals.locale.toolbar, this.minX = a.globals.minX, this.maxX = a.globals.maxX;
        }
        return De(t, [
            {
                key: "createToolbar",
                value: function() {
                    var e = this, a = this.w, r = function() {
                        return document.createElement("div");
                    }, n = r();
                    if (n.setAttribute("class", "apexcharts-toolbar"), n.style.top = a.config.chart.toolbar.offsetY + "px", n.style.right = 3 - a.config.chart.toolbar.offsetX + "px", a.globals.dom.elWrap.appendChild(n), this.elZoom = r(), this.elZoomIn = r(), this.elZoomOut = r(), this.elPan = r(), this.elSelection = r(), this.elZoomReset = r(), this.elMenuIcon = r(), this.elMenu = r(), this.elCustomIcons = [], this.t = a.config.chart.toolbar.tools, Array.isArray(this.t.customIcons)) for(var i = 0; i < this.t.customIcons.length; i++)this.elCustomIcons.push(r());
                    var o = [], s = function(d, h, m) {
                        var f = d.toLowerCase();
                        e.t[f] && a.config.chart.zoom.enabled && o.push({
                            el: h,
                            icon: typeof e.t[f] == "string" ? e.t[f] : m,
                            title: e.localeValues[d],
                            class: "apexcharts-".concat(f, "-icon")
                        });
                    };
                    s("zoomIn", this.elZoomIn, `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
    <path d="M0 0h24v24H0z" fill="none"/>
    <path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>
</svg>
`), s("zoomOut", this.elZoomOut, `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
    <path d="M0 0h24v24H0z" fill="none"/>
    <path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>
</svg>
`);
                    var l = function(d) {
                        e.t[d] && a.config.chart[d].enabled && o.push({
                            el: d === "zoom" ? e.elZoom : e.elSelection,
                            icon: typeof e.t[d] == "string" ? e.t[d] : d === "zoom" ? `<svg xmlns="http://www.w3.org/2000/svg" fill="#000000" height="24" viewBox="0 0 24 24" width="24">
    <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
    <path d="M0 0h24v24H0V0z" fill="none"/>
    <path d="M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z"/>
</svg>` : `<svg fill="#6E8192" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
    <path d="M0 0h24v24H0z" fill="none"/>
    <path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2z"/>
</svg>`,
                            title: e.localeValues[d === "zoom" ? "selectionZoom" : "selection"],
                            class: a.globals.isTouchDevice ? "apexcharts-element-hidden" : "apexcharts-".concat(d, "-icon")
                        });
                    };
                    l("zoom"), l("selection"), this.t.pan && a.config.chart.zoom.enabled && o.push({
                        el: this.elPan,
                        icon: typeof this.t.pan == "string" ? this.t.pan : `<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="#000000" height="24" viewBox="0 0 24 24" width="24">
    <defs>
        <path d="M0 0h24v24H0z" id="a"/>
    </defs>
    <clipPath id="b">
        <use overflow="visible" xlink:href="#a"/>
    </clipPath>
    <path clip-path="url(#b)" d="M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z"/>
</svg>`,
                        title: this.localeValues.pan,
                        class: a.globals.isTouchDevice ? "apexcharts-element-hidden" : "apexcharts-pan-icon"
                    }), s("reset", this.elZoomReset, `<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
    <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>
    <path d="M0 0h24v24H0z" fill="none"/>
</svg>`), this.t.download && o.push({
                        el: this.elMenuIcon,
                        icon: typeof this.t.download == "string" ? this.t.download : '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>',
                        title: this.localeValues.menu,
                        class: "apexcharts-menu-icon"
                    });
                    for(var u = 0; u < this.elCustomIcons.length; u++)o.push({
                        el: this.elCustomIcons[u],
                        icon: this.t.customIcons[u].icon,
                        title: this.t.customIcons[u].title,
                        index: this.t.customIcons[u].index,
                        class: "apexcharts-toolbar-custom-icon " + this.t.customIcons[u].class
                    });
                    o.forEach(function(d, h) {
                        d.index && V.moveIndexInArray(o, h, d.index);
                    });
                    for(var c = 0; c < o.length; c++)he.setAttrs(o[c].el, {
                        class: o[c].class,
                        title: o[c].title
                    }), o[c].el.innerHTML = o[c].icon, n.appendChild(o[c].el);
                    this._createHamburgerMenu(n), a.globals.zoomEnabled ? this.elZoom.classList.add(this.selectedClass) : a.globals.panEnabled ? this.elPan.classList.add(this.selectedClass) : a.globals.selectionEnabled && this.elSelection.classList.add(this.selectedClass), this.addToolbarEventListeners();
                }
            },
            {
                key: "_createHamburgerMenu",
                value: function(e) {
                    this.elMenuItems = [], e.appendChild(this.elMenu), he.setAttrs(this.elMenu, {
                        class: "apexcharts-menu"
                    });
                    for(var a = [
                        {
                            name: "exportSVG",
                            title: this.localeValues.exportToSVG
                        },
                        {
                            name: "exportPNG",
                            title: this.localeValues.exportToPNG
                        },
                        {
                            name: "exportCSV",
                            title: this.localeValues.exportToCSV
                        }
                    ], r = 0; r < a.length; r++)this.elMenuItems.push(document.createElement("div")), this.elMenuItems[r].innerHTML = a[r].title, he.setAttrs(this.elMenuItems[r], {
                        class: "apexcharts-menu-item ".concat(a[r].name),
                        title: a[r].title
                    }), this.elMenu.appendChild(this.elMenuItems[r]);
                }
            },
            {
                key: "addToolbarEventListeners",
                value: function() {
                    var e = this;
                    this.elZoomReset.addEventListener("click", this.handleZoomReset.bind(this)), this.elSelection.addEventListener("click", this.toggleZoomSelection.bind(this, "selection")), this.elZoom.addEventListener("click", this.toggleZoomSelection.bind(this, "zoom")), this.elZoomIn.addEventListener("click", this.handleZoomIn.bind(this)), this.elZoomOut.addEventListener("click", this.handleZoomOut.bind(this)), this.elPan.addEventListener("click", this.togglePanning.bind(this)), this.elMenuIcon.addEventListener("click", this.toggleMenu.bind(this)), this.elMenuItems.forEach(function(r) {
                        r.classList.contains("exportSVG") ? r.addEventListener("click", e.handleDownload.bind(e, "svg")) : r.classList.contains("exportPNG") ? r.addEventListener("click", e.handleDownload.bind(e, "png")) : r.classList.contains("exportCSV") && r.addEventListener("click", e.handleDownload.bind(e, "csv"));
                    });
                    for(var a = 0; a < this.t.customIcons.length; a++)this.elCustomIcons[a].addEventListener("click", this.t.customIcons[a].click.bind(this, this.ctx, this.ctx.w));
                }
            },
            {
                key: "toggleZoomSelection",
                value: function(e) {
                    this.ctx.getSyncedCharts().forEach(function(a) {
                        a.ctx.toolbar.toggleOtherControls();
                        var r = e === "selection" ? a.ctx.toolbar.elSelection : a.ctx.toolbar.elZoom, n = e === "selection" ? "selectionEnabled" : "zoomEnabled";
                        a.w.globals[n] = !a.w.globals[n], r.classList.contains(a.ctx.toolbar.selectedClass) ? r.classList.remove(a.ctx.toolbar.selectedClass) : r.classList.add(a.ctx.toolbar.selectedClass);
                    });
                }
            },
            {
                key: "getToolbarIconsReference",
                value: function() {
                    var e = this.w;
                    this.elZoom || (this.elZoom = e.globals.dom.baseEl.querySelector(".apexcharts-zoom-icon")), this.elPan || (this.elPan = e.globals.dom.baseEl.querySelector(".apexcharts-pan-icon")), this.elSelection || (this.elSelection = e.globals.dom.baseEl.querySelector(".apexcharts-selection-icon"));
                }
            },
            {
                key: "enableZoomPanFromToolbar",
                value: function(e) {
                    this.toggleOtherControls(), e === "pan" ? this.w.globals.panEnabled = !0 : this.w.globals.zoomEnabled = !0;
                    var a = e === "pan" ? this.elPan : this.elZoom, r = e === "pan" ? this.elZoom : this.elPan;
                    a && a.classList.add(this.selectedClass), r && r.classList.remove(this.selectedClass);
                }
            },
            {
                key: "togglePanning",
                value: function() {
                    this.ctx.getSyncedCharts().forEach(function(e) {
                        e.ctx.toolbar.toggleOtherControls(), e.w.globals.panEnabled = !e.w.globals.panEnabled, e.ctx.toolbar.elPan.classList.contains(e.ctx.toolbar.selectedClass) ? e.ctx.toolbar.elPan.classList.remove(e.ctx.toolbar.selectedClass) : e.ctx.toolbar.elPan.classList.add(e.ctx.toolbar.selectedClass);
                    });
                }
            },
            {
                key: "toggleOtherControls",
                value: function() {
                    var e = this, a = this.w;
                    a.globals.panEnabled = !1, a.globals.zoomEnabled = !1, a.globals.selectionEnabled = !1, this.getToolbarIconsReference(), [
                        this.elPan,
                        this.elSelection,
                        this.elZoom
                    ].forEach(function(r) {
                        r && r.classList.remove(e.selectedClass);
                    });
                }
            },
            {
                key: "handleZoomIn",
                value: function() {
                    var e = this.w;
                    e.globals.isRangeBar && (this.minX = e.globals.minY, this.maxX = e.globals.maxY);
                    var a = (this.minX + this.maxX) / 2, r = (this.minX + a) / 2, n = (this.maxX + a) / 2, i = this._getNewMinXMaxX(r, n);
                    e.globals.disableZoomIn || this.zoomUpdateOptions(i.minX, i.maxX);
                }
            },
            {
                key: "handleZoomOut",
                value: function() {
                    var e = this.w;
                    if (e.globals.isRangeBar && (this.minX = e.globals.minY, this.maxX = e.globals.maxY), !(e.config.xaxis.type === "datetime" && new Date(this.minX).getUTCFullYear() < 1e3)) {
                        var a = (this.minX + this.maxX) / 2, r = this.minX - (a - this.minX), n = this.maxX - (a - this.maxX), i = this._getNewMinXMaxX(r, n);
                        e.globals.disableZoomOut || this.zoomUpdateOptions(i.minX, i.maxX);
                    }
                }
            },
            {
                key: "_getNewMinXMaxX",
                value: function(e, a) {
                    var r = this.w.config.xaxis.convertedCatToNumeric;
                    return {
                        minX: r ? Math.floor(e) : e,
                        maxX: r ? Math.floor(a) : a
                    };
                }
            },
            {
                key: "zoomUpdateOptions",
                value: function(e, a) {
                    var r = this.w;
                    if (e !== void 0 || a !== void 0) {
                        if (!(r.config.xaxis.convertedCatToNumeric && (e < 1 && (e = 1, a = r.globals.dataPoints), a - e < 2))) {
                            var n = {
                                min: e,
                                max: a
                            }, i = this.getBeforeZoomRange(n);
                            i && (n = i.xaxis);
                            var o = {
                                xaxis: n
                            }, s = V.clone(r.globals.initialConfig.yaxis);
                            r.config.chart.group || (o.yaxis = s), this.w.globals.zoomed = !0, this.ctx.updateHelpers._updateOptions(o, !1, this.w.config.chart.animations.dynamicAnimation.enabled), this.zoomCallback(n, s);
                        }
                    } else this.handleZoomReset();
                }
            },
            {
                key: "zoomCallback",
                value: function(e, a) {
                    typeof this.ev.zoomed == "function" && (this.ev.zoomed(this.ctx, {
                        xaxis: e,
                        yaxis: a
                    }), this.ctx.events.fireEvent("zoomed", {
                        xaxis: e,
                        yaxis: a
                    }));
                }
            },
            {
                key: "getBeforeZoomRange",
                value: function(e, a) {
                    var r = null;
                    return typeof this.ev.beforeZoom == "function" && (r = this.ev.beforeZoom(this, {
                        xaxis: e,
                        yaxis: a
                    })), r;
                }
            },
            {
                key: "toggleMenu",
                value: function() {
                    var e = this;
                    window.setTimeout(function() {
                        e.elMenu.classList.contains("apexcharts-menu-open") ? e.elMenu.classList.remove("apexcharts-menu-open") : e.elMenu.classList.add("apexcharts-menu-open");
                    }, 0);
                }
            },
            {
                key: "handleDownload",
                value: function(e) {
                    var a = this.w, r = new so(this.ctx);
                    switch(e){
                        case "svg":
                            r.exportToSVG(this.ctx);
                            break;
                        case "png":
                            r.exportToPng(this.ctx);
                            break;
                        case "csv":
                            r.exportToCSV({
                                series: a.config.series,
                                columnDelimiter: a.config.chart.toolbar.export.csv.columnDelimiter
                            });
                    }
                }
            },
            {
                key: "handleZoomReset",
                value: function(e) {
                    this.ctx.getSyncedCharts().forEach(function(a) {
                        var r = a.w;
                        if (r.globals.lastXAxis.min = r.globals.initialConfig.xaxis.min, r.globals.lastXAxis.max = r.globals.initialConfig.xaxis.max, a.updateHelpers.revertDefaultAxisMinMax(), typeof r.config.chart.events.beforeResetZoom == "function") {
                            var n = r.config.chart.events.beforeResetZoom(a, r);
                            n && a.updateHelpers.revertDefaultAxisMinMax(n);
                        }
                        typeof r.config.chart.events.zoomed == "function" && a.ctx.toolbar.zoomCallback({
                            min: r.config.xaxis.min,
                            max: r.config.xaxis.max
                        }), r.globals.zoomed = !1;
                        var i = a.ctx.series.emptyCollapsedSeries(V.clone(r.globals.initialSeries));
                        a.updateHelpers._updateSeries(i, r.config.chart.animations.dynamicAnimation.enabled);
                    });
                }
            },
            {
                key: "destroy",
                value: function() {
                    this.elZoom = null, this.elZoomIn = null, this.elZoomOut = null, this.elPan = null, this.elSelection = null, this.elZoomReset = null, this.elMenuIcon = null;
                }
            }
        ]), t;
    }(), fI = function(t) {
        Zo(a, q1);
        var e = Jo(a);
        function a(r) {
            var n;
            return Ae(this, a), (n = e.call(this, r)).ctx = r, n.w = r.w, n.dragged = !1, n.graphics = new he(n.ctx), n.eventList = [
                "mousedown",
                "mouseleave",
                "mousemove",
                "touchstart",
                "touchmove",
                "mouseup",
                "touchend",
                "wheel"
            ], n.clientX = 0, n.clientY = 0, n.startX = 0, n.endX = 0, n.dragX = 0, n.startY = 0, n.endY = 0, n.dragY = 0, n.moveDirection = "none", n.debounceTimer = null, n.debounceDelay = 100, n.wheelDelay = 400, n;
        }
        return De(a, [
            {
                key: "init",
                value: function(r) {
                    var n = this, i = r.xyRatios, o = this.w, s = this;
                    this.xyRatios = i, this.zoomRect = this.graphics.drawRect(0, 0, 0, 0), this.selectionRect = this.graphics.drawRect(0, 0, 0, 0), this.gridRect = o.globals.dom.baseEl.querySelector(".apexcharts-grid"), this.constraints = new Ot(0, 0, o.globals.gridWidth, o.globals.gridHeight), this.zoomRect.node.classList.add("apexcharts-zoom-rect"), this.selectionRect.node.classList.add("apexcharts-selection-rect"), o.globals.dom.Paper.add(this.zoomRect), o.globals.dom.Paper.add(this.selectionRect), o.config.chart.selection.type === "x" ? this.slDraggableRect = this.selectionRect.draggable({
                        minX: 0,
                        minY: 0,
                        maxX: o.globals.gridWidth,
                        maxY: o.globals.gridHeight
                    }).on("dragmove.namespace", this.selectionDragging.bind(this, "dragging")) : o.config.chart.selection.type === "y" ? this.slDraggableRect = this.selectionRect.draggable({
                        minX: 0,
                        maxX: o.globals.gridWidth
                    }).on("dragmove.namespace", this.selectionDragging.bind(this, "dragging")) : this.slDraggableRect = this.selectionRect.draggable().on("dragmove.namespace", this.selectionDragging.bind(this, "dragging")), this.preselectedSelection(), this.hoverArea = o.globals.dom.baseEl.querySelector("".concat(o.globals.chartClass, " .apexcharts-svg")), this.hoverArea.classList.add("apexcharts-zoomable"), this.eventList.forEach(function(l) {
                        n.hoverArea.addEventListener(l, s.svgMouseEvents.bind(s, i), {
                            capture: !1,
                            passive: !0
                        });
                    }), o.config.chart.zoom.enabled && o.config.chart.zoom.allowMouseWheelZoom && this.hoverArea.addEventListener("wheel", s.mouseWheelEvent.bind(s), {
                        capture: !1,
                        passive: !1
                    });
                }
            },
            {
                key: "destroy",
                value: function() {
                    this.slDraggableRect && (this.slDraggableRect.draggable(!1), this.slDraggableRect.off(), this.selectionRect.off()), this.selectionRect = null, this.zoomRect = null, this.gridRect = null;
                }
            },
            {
                key: "svgMouseEvents",
                value: function(r, n) {
                    var i = this.w, o = this.ctx.toolbar, s = i.globals.zoomEnabled ? i.config.chart.zoom.type : i.config.chart.selection.type, l = i.config.chart.toolbar.autoSelected;
                    if (n.shiftKey ? (this.shiftWasPressed = !0, o.enableZoomPanFromToolbar(l === "pan" ? "zoom" : "pan")) : this.shiftWasPressed && (o.enableZoomPanFromToolbar(l), this.shiftWasPressed = !1), n.target) {
                        var u, c = n.target.classList;
                        if (n.target.parentNode && n.target.parentNode !== null && (u = n.target.parentNode.classList), !(c.contains("apexcharts-legend-marker") || c.contains("apexcharts-legend-text") || u && u.contains("apexcharts-toolbar"))) {
                            if (this.clientX = n.type === "touchmove" || n.type === "touchstart" ? n.touches[0].clientX : n.type === "touchend" ? n.changedTouches[0].clientX : n.clientX, this.clientY = n.type === "touchmove" || n.type === "touchstart" ? n.touches[0].clientY : n.type === "touchend" ? n.changedTouches[0].clientY : n.clientY, n.type === "mousedown" && n.which === 1 || n.type === "touchstart") {
                                var d = this.gridRect.getBoundingClientRect();
                                this.startX = this.clientX - d.left - i.globals.barPadForNumericAxis, this.startY = this.clientY - d.top, this.dragged = !1, this.w.globals.mousedown = !0;
                            }
                            (n.type === "mousemove" && n.which === 1 || n.type === "touchmove") && (this.dragged = !0, i.globals.panEnabled ? (i.globals.selection = null, this.w.globals.mousedown && this.panDragging({
                                context: this,
                                zoomtype: s,
                                xyRatios: r
                            })) : (this.w.globals.mousedown && i.globals.zoomEnabled || this.w.globals.mousedown && i.globals.selectionEnabled) && (this.selection = this.selectionDrawing({
                                context: this,
                                zoomtype: s
                            }))), n.type !== "mouseup" && n.type !== "touchend" && n.type !== "mouseleave" || this.handleMouseUp({
                                zoomtype: s
                            }), this.makeSelectionRectDraggable();
                        }
                    }
                }
            },
            {
                key: "handleMouseUp",
                value: function(r) {
                    var n, i = r.zoomtype, o = r.isResized, s = this.w, l = (n = this.gridRect) === null || n === void 0 ? void 0 : n.getBoundingClientRect();
                    l && (this.w.globals.mousedown || o) && (this.endX = this.clientX - l.left - s.globals.barPadForNumericAxis, this.endY = this.clientY - l.top, this.dragX = Math.abs(this.endX - this.startX), this.dragY = Math.abs(this.endY - this.startY), (s.globals.zoomEnabled || s.globals.selectionEnabled) && this.selectionDrawn({
                        context: this,
                        zoomtype: i
                    })), s.globals.zoomEnabled && this.hideSelectionRect(this.selectionRect), this.dragged = !1, this.w.globals.mousedown = !1;
                }
            },
            {
                key: "mouseWheelEvent",
                value: function(r) {
                    var n = this, i = this.w;
                    r.preventDefault();
                    var o = Date.now();
                    o - i.globals.lastWheelExecution > this.wheelDelay && (this.executeMouseWheelZoom(r), i.globals.lastWheelExecution = o), this.debounceTimer && clearTimeout(this.debounceTimer), this.debounceTimer = setTimeout(function() {
                        o - i.globals.lastWheelExecution > n.wheelDelay && (n.executeMouseWheelZoom(r), i.globals.lastWheelExecution = o);
                    }, this.debounceDelay);
                }
            },
            {
                key: "executeMouseWheelZoom",
                value: function(r) {
                    var n, i = this.w;
                    this.minX = i.globals.isRangeBar ? i.globals.minY : i.globals.minX, this.maxX = i.globals.isRangeBar ? i.globals.maxY : i.globals.maxX;
                    var o = (n = this.gridRect) === null || n === void 0 ? void 0 : n.getBoundingClientRect();
                    if (o) {
                        var s, l, u, c = (r.clientX - o.left) / o.width, d = this.minX, h = this.maxX, m = h - d;
                        if (r.deltaY < 0) {
                            var f = d + c * m;
                            l = f - (s = .5 * m) / 2, u = f + s / 2;
                        } else l = d - (s = 1.5 * m) / 2, u = h + s / 2;
                        if (!i.globals.isRangeBar) {
                            l = Math.max(l, i.globals.initialMinX), u = Math.min(u, i.globals.initialMaxX);
                            var p = .01 * (i.globals.initialMaxX - i.globals.initialMinX);
                            if (u - l < p) {
                                var g = (l + u) / 2;
                                l = g - p / 2, u = g + p / 2;
                            }
                        }
                        var v = this._getNewMinXMaxX(l, u);
                        isNaN(v.minX) || isNaN(v.maxX) || this.zoomUpdateOptions(v.minX, v.maxX);
                    }
                }
            },
            {
                key: "makeSelectionRectDraggable",
                value: function() {
                    var r = this, n = this.w;
                    if (this.selectionRect) {
                        var i = this.selectionRect.node.getBoundingClientRect();
                        i.width > 0 && i.height > 0 && (this.selectionRect.select(!1).resize(!1), this.selectionRect.select({
                            createRot: function() {},
                            updateRot: function() {},
                            createHandle: function(o, s, l, u, c) {
                                return c === "l" || c === "r" ? o.circle(8).css({
                                    "stroke-width": 1,
                                    stroke: "#333",
                                    fill: "#fff"
                                }) : o.circle(0);
                            },
                            updateHandle: function(o, s) {
                                return o.center(s[0], s[1]);
                            }
                        }).resize().on("resize", function() {
                            var o = n.globals.zoomEnabled ? n.config.chart.zoom.type : n.config.chart.selection.type;
                            r.handleMouseUp({
                                zoomtype: o,
                                isResized: !0
                            });
                        }));
                    }
                }
            },
            {
                key: "preselectedSelection",
                value: function() {
                    var r = this.w, n = this.xyRatios;
                    if (!r.globals.zoomEnabled) {
                        if (r.globals.selection !== void 0 && r.globals.selection !== null) this.drawSelectionRect(ye(ye({}, r.globals.selection), {}, {
                            translateX: r.globals.translateX,
                            translateY: r.globals.translateY
                        }));
                        else if (r.config.chart.selection.xaxis.min !== void 0 && r.config.chart.selection.xaxis.max !== void 0) {
                            var i = (r.config.chart.selection.xaxis.min - r.globals.minX) / n.xRatio, o = r.globals.gridWidth - (r.globals.maxX - r.config.chart.selection.xaxis.max) / n.xRatio - i;
                            r.globals.isRangeBar && (i = (r.config.chart.selection.xaxis.min - r.globals.yAxisScale[0].niceMin) / n.invertedYRatio, o = (r.config.chart.selection.xaxis.max - r.config.chart.selection.xaxis.min) / n.invertedYRatio);
                            var s = {
                                x: i,
                                y: 0,
                                width: o,
                                height: r.globals.gridHeight,
                                translateX: r.globals.translateX,
                                translateY: r.globals.translateY,
                                selectionEnabled: !0
                            };
                            this.drawSelectionRect(s), this.makeSelectionRectDraggable(), typeof r.config.chart.events.selection == "function" && r.config.chart.events.selection(this.ctx, {
                                xaxis: {
                                    min: r.config.chart.selection.xaxis.min,
                                    max: r.config.chart.selection.xaxis.max
                                },
                                yaxis: {}
                            });
                        }
                    }
                }
            },
            {
                key: "drawSelectionRect",
                value: function(r) {
                    var n = r.x, i = r.y, o = r.width, s = r.height, l = r.translateX, u = l === void 0 ? 0 : l, c = r.translateY, d = c === void 0 ? 0 : c, h = this.w, m = this.zoomRect, f = this.selectionRect;
                    if (this.dragged || h.globals.selection !== null) {
                        var p = {
                            transform: "translate(" + u + ", " + d + ")"
                        };
                        h.globals.zoomEnabled && this.dragged && (o < 0 && (o = 1), m.attr({
                            x: n,
                            y: i,
                            width: o,
                            height: s,
                            fill: h.config.chart.zoom.zoomedArea.fill.color,
                            "fill-opacity": h.config.chart.zoom.zoomedArea.fill.opacity,
                            stroke: h.config.chart.zoom.zoomedArea.stroke.color,
                            "stroke-width": h.config.chart.zoom.zoomedArea.stroke.width,
                            "stroke-opacity": h.config.chart.zoom.zoomedArea.stroke.opacity
                        }), he.setAttrs(m.node, p)), h.globals.selectionEnabled && (f.attr({
                            x: n,
                            y: i,
                            width: o > 0 ? o : 0,
                            height: s > 0 ? s : 0,
                            fill: h.config.chart.selection.fill.color,
                            "fill-opacity": h.config.chart.selection.fill.opacity,
                            stroke: h.config.chart.selection.stroke.color,
                            "stroke-width": h.config.chart.selection.stroke.width,
                            "stroke-dasharray": h.config.chart.selection.stroke.dashArray,
                            "stroke-opacity": h.config.chart.selection.stroke.opacity
                        }), he.setAttrs(f.node, p));
                    }
                }
            },
            {
                key: "hideSelectionRect",
                value: function(r) {
                    r && r.attr({
                        x: 0,
                        y: 0,
                        width: 0,
                        height: 0
                    });
                }
            },
            {
                key: "selectionDrawing",
                value: function(r) {
                    var n = r.context, i = r.zoomtype, o = this.w, s = n, l = this.gridRect.getBoundingClientRect(), u = s.startX - 1, c = s.startY, d = !1, h = !1, m = s.clientX - l.left - o.globals.barPadForNumericAxis, f = s.clientY - l.top, p = m - u, g = f - c, v = {
                        translateX: o.globals.translateX,
                        translateY: o.globals.translateY
                    };
                    return Math.abs(p + u) > o.globals.gridWidth ? p = o.globals.gridWidth - u : m < 0 && (p = u), u > m && (d = !0, p = Math.abs(p)), c > f && (h = !0, g = Math.abs(g)), v = ye(ye({}, v = i === "x" ? {
                        x: d ? u - p : u,
                        y: 0,
                        width: p,
                        height: o.globals.gridHeight
                    } : i === "y" ? {
                        x: 0,
                        y: h ? c - g : c,
                        width: o.globals.gridWidth,
                        height: g
                    } : {
                        x: d ? u - p : u,
                        y: h ? c - g : c,
                        width: p,
                        height: g
                    }), {}, {
                        translateX: o.globals.translateX,
                        translateY: o.globals.translateY
                    }), s.drawSelectionRect(v), s.selectionDragging("resizing"), v;
                }
            },
            {
                key: "selectionDragging",
                value: function(r, n) {
                    var i = this, o = this.w;
                    if (n) {
                        n.preventDefault();
                        var s = n.detail, l = s.handler, u = s.box, c = u.x, d = u.y;
                        c < this.constraints.x && (c = this.constraints.x), d < this.constraints.y && (d = this.constraints.y), u.x2 > this.constraints.x2 && (c = this.constraints.x2 - u.w), u.y2 > this.constraints.y2 && (d = this.constraints.y2 - u.h), l.move(c, d);
                        var h = this.xyRatios, m = this.selectionRect, f = 0;
                        r === "resizing" && (f = 30);
                        var p = function(v) {
                            return parseFloat(m.node.getAttribute(v));
                        }, g = {
                            x: p("x"),
                            y: p("y"),
                            width: p("width"),
                            height: p("height")
                        };
                        o.globals.selection = g, typeof o.config.chart.events.selection == "function" && o.globals.selectionEnabled && (clearTimeout(this.w.globals.selectionResizeTimer), this.w.globals.selectionResizeTimer = window.setTimeout(function() {
                            var v, b, k, S, x = i.gridRect.getBoundingClientRect(), C = m.node.getBoundingClientRect();
                            o.globals.isRangeBar ? (v = o.globals.yAxisScale[0].niceMin + (C.left - x.left) * h.invertedYRatio, b = o.globals.yAxisScale[0].niceMin + (C.right - x.left) * h.invertedYRatio, k = 0, S = 1) : (v = o.globals.xAxisScale.niceMin + (C.left - x.left) * h.xRatio, b = o.globals.xAxisScale.niceMin + (C.right - x.left) * h.xRatio, k = o.globals.yAxisScale[0].niceMin + (x.bottom - C.bottom) * h.yRatio[0], S = o.globals.yAxisScale[0].niceMax - (C.top - x.top) * h.yRatio[0]);
                            var w = {
                                xaxis: {
                                    min: v,
                                    max: b
                                },
                                yaxis: {
                                    min: k,
                                    max: S
                                }
                            };
                            o.config.chart.events.selection(i.ctx, w), o.config.chart.brush.enabled && o.config.chart.events.brushScrolled !== void 0 && o.config.chart.events.brushScrolled(i.ctx, w);
                        }, f));
                    }
                }
            },
            {
                key: "selectionDrawn",
                value: function(r) {
                    var n, i, o = r.context, s = r.zoomtype, l = this.w, u = o, c = this.xyRatios, d = this.ctx.toolbar, h = l.globals.zoomEnabled ? u.zoomRect.node.getBoundingClientRect() : u.selectionRect.node.getBoundingClientRect(), m = u.gridRect.getBoundingClientRect(), f = h.left - m.left - l.globals.barPadForNumericAxis, p = h.right - m.left - l.globals.barPadForNumericAxis, g = h.top - m.top, v = h.bottom - m.top;
                    l.globals.isRangeBar ? (n = l.globals.yAxisScale[0].niceMin + f * c.invertedYRatio, i = l.globals.yAxisScale[0].niceMin + p * c.invertedYRatio) : (n = l.globals.xAxisScale.niceMin + f * c.xRatio, i = l.globals.xAxisScale.niceMin + p * c.xRatio);
                    var b = [], k = [];
                    if (l.config.yaxis.forEach(function(_, A) {
                        var E = l.globals.seriesYAxisMap[A][0], B = l.globals.yAxisScale[A].niceMax - c.yRatio[E] * g, P = l.globals.yAxisScale[A].niceMax - c.yRatio[E] * v;
                        b.push(B), k.push(P);
                    }), u.dragged && (u.dragX > 10 || u.dragY > 10) && n !== i) {
                        if (l.globals.zoomEnabled) {
                            var S = V.clone(l.globals.initialConfig.yaxis), x = V.clone(l.globals.initialConfig.xaxis);
                            if (l.globals.zoomed = !0, l.config.xaxis.convertedCatToNumeric && (n = Math.floor(n), i = Math.floor(i), n < 1 && (n = 1, i = l.globals.dataPoints), i - n < 2 && (i = n + 1)), s !== "xy" && s !== "x" || (x = {
                                min: n,
                                max: i
                            }), s !== "xy" && s !== "y" || S.forEach(function(_, A) {
                                S[A].min = k[A], S[A].max = b[A];
                            }), d) {
                                var C = d.getBeforeZoomRange(x, S);
                                C && (x = C.xaxis ? C.xaxis : x, S = C.yaxis ? C.yaxis : S);
                            }
                            var w = {
                                xaxis: x
                            };
                            l.config.chart.group || (w.yaxis = S), u.ctx.updateHelpers._updateOptions(w, !1, u.w.config.chart.animations.dynamicAnimation.enabled), typeof l.config.chart.events.zoomed == "function" && d.zoomCallback(x, S);
                        } else if (l.globals.selectionEnabled) {
                            var F, D = null;
                            F = {
                                min: n,
                                max: i
                            }, s !== "xy" && s !== "y" || (D = V.clone(l.config.yaxis)).forEach(function(_, A) {
                                D[A].min = k[A], D[A].max = b[A];
                            }), l.globals.selection = u.selection, typeof l.config.chart.events.selection == "function" && l.config.chart.events.selection(u.ctx, {
                                xaxis: F,
                                yaxis: D
                            });
                        }
                    }
                }
            },
            {
                key: "panDragging",
                value: function(r) {
                    var n = r.context, i = this.w, o = n;
                    if (i.globals.lastClientPosition.x !== void 0) {
                        var s = i.globals.lastClientPosition.x - o.clientX, l = i.globals.lastClientPosition.y - o.clientY;
                        Math.abs(s) > Math.abs(l) && s > 0 ? this.moveDirection = "left" : Math.abs(s) > Math.abs(l) && s < 0 ? this.moveDirection = "right" : Math.abs(l) > Math.abs(s) && l > 0 ? this.moveDirection = "up" : Math.abs(l) > Math.abs(s) && l < 0 && (this.moveDirection = "down");
                    }
                    i.globals.lastClientPosition = {
                        x: o.clientX,
                        y: o.clientY
                    };
                    var u = i.globals.isRangeBar ? i.globals.minY : i.globals.minX, c = i.globals.isRangeBar ? i.globals.maxY : i.globals.maxX;
                    o.panScrolled(u, c);
                }
            },
            {
                key: "panScrolled",
                value: function(r, n) {
                    var i = this.w, o = this.xyRatios, s = V.clone(i.globals.initialConfig.yaxis), l = o.xRatio, u = i.globals.minX, c = i.globals.maxX;
                    i.globals.isRangeBar && (l = o.invertedYRatio, u = i.globals.minY, c = i.globals.maxY), this.moveDirection === "left" ? (r = u + i.globals.gridWidth / 15 * l, n = c + i.globals.gridWidth / 15 * l) : this.moveDirection === "right" && (r = u - i.globals.gridWidth / 15 * l, n = c - i.globals.gridWidth / 15 * l), i.globals.isRangeBar || (r < i.globals.initialMinX || n > i.globals.initialMaxX) && (r = u, n = c);
                    var d = {
                        xaxis: {
                            min: r,
                            max: n
                        }
                    };
                    i.config.chart.group || (d.yaxis = s), this.updateScrolledChart(d, r, n);
                }
            },
            {
                key: "updateScrolledChart",
                value: function(r, n, i) {
                    var o = this.w;
                    if (this.ctx.updateHelpers._updateOptions(r, !1, !1), typeof o.config.chart.events.scrolled == "function") {
                        var s = {
                            xaxis: {
                                min: n,
                                max: i
                            }
                        };
                        o.config.chart.events.scrolled(this.ctx, s), this.ctx.events.fireEvent("scrolled", s);
                    }
                }
            }
        ]), a;
    }(), K1 = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.ttCtx = e, this.ctx = e.ctx;
        }
        return De(t, [
            {
                key: "getNearestValues",
                value: function(e) {
                    var a = e.hoverArea, r = e.elGrid, n = e.clientX, i = e.clientY, o = this.w, s = r.getBoundingClientRect(), l = s.width, u = s.height, c = l / (o.globals.dataPoints - 1), d = u / o.globals.dataPoints, h = this.hasBars();
                    !o.globals.comboCharts && !h || o.config.xaxis.convertedCatToNumeric || (c = l / o.globals.dataPoints);
                    var m = n - s.left - o.globals.barPadForNumericAxis, f = i - s.top;
                    m < 0 || f < 0 || m > l || f > u ? (a.classList.remove("hovering-zoom"), a.classList.remove("hovering-pan")) : o.globals.zoomEnabled ? (a.classList.remove("hovering-pan"), a.classList.add("hovering-zoom")) : o.globals.panEnabled && (a.classList.remove("hovering-zoom"), a.classList.add("hovering-pan"));
                    var p = Math.round(m / c), g = Math.floor(f / d);
                    h && !o.config.xaxis.convertedCatToNumeric && (p = Math.ceil(m / c), p -= 1);
                    var v = null, b = null, k = o.globals.seriesXvalues.map(function(F) {
                        return F.filter(function(D) {
                            return V.isNumber(D);
                        });
                    }), S = o.globals.seriesYvalues.map(function(F) {
                        return F.filter(function(D) {
                            return V.isNumber(D);
                        });
                    });
                    if (o.globals.isXNumeric) {
                        var x = this.ttCtx.getElGrid().getBoundingClientRect(), C = m * (x.width / l), w = f * (x.height / u);
                        v = (b = this.closestInMultiArray(C, w, k, S)).index, p = b.j, v !== null && o.globals.hasNullValues && (k = o.globals.seriesXvalues[v], p = (b = this.closestInArray(C, k)).j);
                    }
                    return o.globals.capturedSeriesIndex = v === null ? -1 : v, (!p || p < 1) && (p = 0), o.globals.isBarHorizontal ? o.globals.capturedDataPointIndex = g : o.globals.capturedDataPointIndex = p, {
                        capturedSeries: v,
                        j: o.globals.isBarHorizontal ? g : p,
                        hoverX: m,
                        hoverY: f
                    };
                }
            },
            {
                key: "getFirstActiveXArray",
                value: function(e) {
                    for(var a = this.w, r = 0, n = e.map(function(o, s) {
                        return o.length > 0 ? s : -1;
                    }), i = 0; i < n.length; i++)if (n[i] !== -1 && a.globals.collapsedSeriesIndices.indexOf(i) === -1 && a.globals.ancillaryCollapsedSeriesIndices.indexOf(i) === -1) {
                        r = n[i];
                        break;
                    }
                    return r;
                }
            },
            {
                key: "closestInMultiArray",
                value: function(e, a, r, n) {
                    for(var i, o = this.w, s = 1 / 0, l = null, u = null, c = 0; c < r.length; c++)if (i = c, o.globals.collapsedSeriesIndices.indexOf(i) === -1 && o.globals.ancillaryCollapsedSeriesIndices.indexOf(i) === -1) for(var d = r[c], h = n[c], m = Math.min(d.length, h.length), f = 0; f < m; f++){
                        var p = e - d[f], g = Math.sqrt(p * p);
                        if (!o.globals.allSeriesHasEqualX) {
                            var v = a - h[f];
                            g = Math.sqrt(p * p + v * v);
                        }
                        g < s && (s = g, l = c, u = f);
                    }
                    return {
                        index: l,
                        j: u
                    };
                }
            },
            {
                key: "closestInArray",
                value: function(e, a) {
                    for(var r = a[0], n = null, i = Math.abs(e - r), o = 0; o < a.length; o++){
                        var s = Math.abs(e - a[o]);
                        s < i && (i = s, n = o);
                    }
                    return {
                        j: n
                    };
                }
            },
            {
                key: "isXoverlap",
                value: function(e) {
                    var a = [], r = this.w.globals.seriesX.filter(function(i) {
                        return i[0] !== void 0;
                    });
                    if (r.length > 0) for(var n = 0; n < r.length - 1; n++)r[n][e] !== void 0 && r[n + 1][e] !== void 0 && r[n][e] !== r[n + 1][e] && a.push("unEqual");
                    return a.length === 0;
                }
            },
            {
                key: "isInitialSeriesSameLen",
                value: function() {
                    for(var e = !0, a = this.w.globals.initialSeries, r = 0; r < a.length - 1; r++)if (a[r].data.length !== a[r + 1].data.length) {
                        e = !1;
                        break;
                    }
                    return e;
                }
            },
            {
                key: "getBarsHeight",
                value: function(e) {
                    return Qt(e).reduce(function(a, r) {
                        return a + r.getBBox().height;
                    }, 0);
                }
            },
            {
                key: "getElMarkers",
                value: function(e) {
                    return typeof e == "number" ? this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:realIndex='".concat(e, "'] .apexcharts-series-markers-wrap > *")) : this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap > *");
                }
            },
            {
                key: "getAllMarkers",
                value: function() {
                    var e = this, a = arguments.length > 0 && arguments[0] !== void 0 && arguments[0], r = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap");
                    r = Qt(r), a && (r = r.filter(function(i) {
                        var o = Number(i.getAttribute("data:realIndex"));
                        return e.w.globals.collapsedSeriesIndices.indexOf(o) === -1;
                    })), r.sort(function(i, o) {
                        var s = Number(i.getAttribute("data:realIndex")), l = Number(o.getAttribute("data:realIndex"));
                        return l < s ? 1 : l > s ? -1 : 0;
                    });
                    var n = [];
                    return r.forEach(function(i) {
                        n.push(i.querySelector(".apexcharts-marker"));
                    }), n;
                }
            },
            {
                key: "hasMarkers",
                value: function(e) {
                    return this.getElMarkers(e).length > 0;
                }
            },
            {
                key: "getPathFromPoint",
                value: function(e, a) {
                    var r = Number(e.getAttribute("cx")), n = Number(e.getAttribute("cy")), i = e.getAttribute("shape");
                    return new he(this.ctx).getMarkerPath(r, n, i, a);
                }
            },
            {
                key: "getElBars",
                value: function() {
                    return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series,  .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series");
                }
            },
            {
                key: "hasBars",
                value: function() {
                    return this.getElBars().length > 0;
                }
            },
            {
                key: "getHoverMarkerSize",
                value: function(e) {
                    var a = this.w, r = a.config.markers.hover.size;
                    return r === void 0 && (r = a.globals.markers.size[e] + a.config.markers.hover.sizeOffset), r;
                }
            },
            {
                key: "toggleAllTooltipSeriesGroups",
                value: function(e) {
                    var a = this.w, r = this.ttCtx;
                    r.allTooltipSeriesGroups.length === 0 && (r.allTooltipSeriesGroups = a.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));
                    for(var n = r.allTooltipSeriesGroups, i = 0; i < n.length; i++)e === "enable" ? (n[i].classList.add("apexcharts-active"), n[i].style.display = a.config.tooltip.items.display) : (n[i].classList.remove("apexcharts-active"), n[i].style.display = "none");
                }
            }
        ]), t;
    }(), pI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.ctx = e.ctx, this.ttCtx = e, this.tooltipUtil = new K1(e);
        }
        return De(t, [
            {
                key: "drawSeriesTexts",
                value: function(e) {
                    var a = e.shared, r = a === void 0 || a, n = e.ttItems, i = e.i, o = i === void 0 ? 0 : i, s = e.j, l = s === void 0 ? null : s, u = e.y1, c = e.y2, d = e.e, h = this.w;
                    h.config.tooltip.custom !== void 0 ? this.handleCustomTooltip({
                        i: o,
                        j: l,
                        y1: u,
                        y2: c,
                        w: h
                    }) : this.toggleActiveInactiveSeries(r, o);
                    var m = this.getValuesToPrint({
                        i: o,
                        j: l
                    });
                    this.printLabels({
                        i: o,
                        j: l,
                        values: m,
                        ttItems: n,
                        shared: r,
                        e: d
                    });
                    var f = this.ttCtx.getElTooltip();
                    this.ttCtx.tooltipRect.ttWidth = f.getBoundingClientRect().width, this.ttCtx.tooltipRect.ttHeight = f.getBoundingClientRect().height;
                }
            },
            {
                key: "printLabels",
                value: function(e) {
                    var a, r = this, n = e.i, i = e.j, o = e.values, s = e.ttItems, l = e.shared, u = e.e, c = this.w, d = [], h = function(x) {
                        return c.globals.seriesGoals[x] && c.globals.seriesGoals[x][i] && Array.isArray(c.globals.seriesGoals[x][i]);
                    }, m = o.xVal, f = o.zVal, p = o.xAxisTTVal, g = "", v = c.globals.colors[n];
                    i !== null && c.config.plotOptions.bar.distributed && (v = c.globals.colors[i]);
                    for(var b = function(x, C) {
                        var w = r.getFormatters(n);
                        g = r.getSeriesName({
                            fn: w.yLbTitleFormatter,
                            index: n,
                            seriesIndex: n,
                            j: i
                        }), c.config.chart.type === "treemap" && (g = w.yLbTitleFormatter(String(c.config.series[n].data[i].x), {
                            series: c.globals.series,
                            seriesIndex: n,
                            dataPointIndex: i,
                            w: c
                        }));
                        var F = c.config.tooltip.inverseOrder ? C : x;
                        if (c.globals.axisCharts) {
                            var D = function(E) {
                                var B, P, M, R;
                                return c.globals.isRangeData ? w.yLbFormatter((B = c.globals.seriesRangeStart) === null || B === void 0 || (P = B[E]) === null || P === void 0 ? void 0 : P[i], {
                                    series: c.globals.seriesRangeStart,
                                    seriesIndex: E,
                                    dataPointIndex: i,
                                    w: c
                                }) + " - " + w.yLbFormatter((M = c.globals.seriesRangeEnd) === null || M === void 0 || (R = M[E]) === null || R === void 0 ? void 0 : R[i], {
                                    series: c.globals.seriesRangeEnd,
                                    seriesIndex: E,
                                    dataPointIndex: i,
                                    w: c
                                }) : w.yLbFormatter(c.globals.series[E][i], {
                                    series: c.globals.series,
                                    seriesIndex: E,
                                    dataPointIndex: i,
                                    w: c
                                });
                            };
                            if (l) w = r.getFormatters(F), g = r.getSeriesName({
                                fn: w.yLbTitleFormatter,
                                index: F,
                                seriesIndex: n,
                                j: i
                            }), v = c.globals.colors[F], a = D(F), h(F) && (d = c.globals.seriesGoals[F][i].map(function(E) {
                                return {
                                    attrs: E,
                                    val: w.yLbFormatter(E.value, {
                                        seriesIndex: F,
                                        dataPointIndex: i,
                                        w: c
                                    })
                                };
                            }));
                            else {
                                var _, A = u == null || (_ = u.target) === null || _ === void 0 ? void 0 : _.getAttribute("fill");
                                A && (A.indexOf("url") !== -1 ? A.indexOf("Pattern") !== -1 && (v = c.globals.dom.baseEl.querySelector(A.substr(4).slice(0, -1)).childNodes[0].getAttribute("stroke")) : v = A), a = D(n), h(n) && Array.isArray(c.globals.seriesGoals[n][i]) && (d = c.globals.seriesGoals[n][i].map(function(E) {
                                    return {
                                        attrs: E,
                                        val: w.yLbFormatter(E.value, {
                                            seriesIndex: n,
                                            dataPointIndex: i,
                                            w: c
                                        })
                                    };
                                }));
                            }
                        }
                        i === null && (a = w.yLbFormatter(c.globals.series[n], ye(ye({}, c), {}, {
                            seriesIndex: n,
                            dataPointIndex: n
                        }))), r.DOMHandling({
                            i: n,
                            t: F,
                            j: i,
                            ttItems: s,
                            values: {
                                val: a,
                                goalVals: d,
                                xVal: m,
                                xAxisTTVal: p,
                                zVal: f
                            },
                            seriesName: g,
                            shared: l,
                            pColor: v
                        });
                    }, k = 0, S = c.globals.series.length - 1; k < c.globals.series.length; k++, S--)b(k, S);
                }
            },
            {
                key: "getFormatters",
                value: function(e) {
                    var a, r = this.w, n = r.globals.yLabelFormatters[e];
                    return r.globals.ttVal !== void 0 ? Array.isArray(r.globals.ttVal) ? (n = r.globals.ttVal[e] && r.globals.ttVal[e].formatter, a = r.globals.ttVal[e] && r.globals.ttVal[e].title && r.globals.ttVal[e].title.formatter) : (n = r.globals.ttVal.formatter, typeof r.globals.ttVal.title.formatter == "function" && (a = r.globals.ttVal.title.formatter)) : a = r.config.tooltip.y.title.formatter, typeof n != "function" && (n = r.globals.yLabelFormatters[0] ? r.globals.yLabelFormatters[0] : function(i) {
                        return i;
                    }), typeof a != "function" && (a = function(i) {
                        return i ? i + ": " : "";
                    }), {
                        yLbFormatter: n,
                        yLbTitleFormatter: a
                    };
                }
            },
            {
                key: "getSeriesName",
                value: function(e) {
                    var a = e.fn, r = e.index, n = e.seriesIndex, i = e.j, o = this.w;
                    return a(String(o.globals.seriesNames[r]), {
                        series: o.globals.series,
                        seriesIndex: n,
                        dataPointIndex: i,
                        w: o
                    });
                }
            },
            {
                key: "DOMHandling",
                value: function(e) {
                    e.i;
                    var a = e.t, r = e.j, n = e.ttItems, i = e.values, o = e.seriesName, s = e.shared, l = e.pColor, u = this.w, c = this.ttCtx, d = i.val, h = i.goalVals, m = i.xVal, f = i.xAxisTTVal, p = i.zVal, g = null;
                    g = n[a].children, u.config.tooltip.fillSeriesColor && (n[a].style.backgroundColor = l, g[0].style.display = "none"), c.showTooltipTitle && (c.tooltipTitle === null && (c.tooltipTitle = u.globals.dom.baseEl.querySelector(".apexcharts-tooltip-title")), c.tooltipTitle.innerHTML = m), c.isXAxisTooltipEnabled && (c.xaxisTooltipText.innerHTML = f !== "" ? f : m);
                    var v = n[a].querySelector(".apexcharts-tooltip-text-y-label");
                    v && (v.innerHTML = o || "");
                    var b = n[a].querySelector(".apexcharts-tooltip-text-y-value");
                    b && (b.innerHTML = d !== void 0 ? d : ""), g[0] && g[0].classList.contains("apexcharts-tooltip-marker") && (u.config.tooltip.marker.fillColors && Array.isArray(u.config.tooltip.marker.fillColors) && (l = u.config.tooltip.marker.fillColors[a]), u.config.tooltip.fillSeriesColor ? g[0].style.backgroundColor = l : g[0].style.color = l), u.config.tooltip.marker.show || (g[0].style.display = "none");
                    var k = n[a].querySelector(".apexcharts-tooltip-text-goals-label"), S = n[a].querySelector(".apexcharts-tooltip-text-goals-value");
                    if (h.length && u.globals.seriesGoals[a]) {
                        var x = function() {
                            var F = "<div>", D = "<div>";
                            h.forEach(function(_, A) {
                                F += ' <div style="display: flex"><span class="apexcharts-tooltip-marker" style="background-color: '.concat(_.attrs.strokeColor, '; height: 3px; border-radius: 0; top: 5px;"></span> ').concat(_.attrs.name, "</div>"), D += "<div>".concat(_.val, "</div>");
                            }), k.innerHTML = F + "</div>", S.innerHTML = D + "</div>";
                        };
                        s ? u.globals.seriesGoals[a][r] && Array.isArray(u.globals.seriesGoals[a][r]) ? x() : (k.innerHTML = "", S.innerHTML = "") : x();
                    } else k.innerHTML = "", S.innerHTML = "";
                    if (p !== null && (n[a].querySelector(".apexcharts-tooltip-text-z-label").innerHTML = u.config.tooltip.z.title, n[a].querySelector(".apexcharts-tooltip-text-z-value").innerHTML = p !== void 0 ? p : ""), s && g[0]) {
                        if (u.config.tooltip.hideEmptySeries) {
                            var C = n[a].querySelector(".apexcharts-tooltip-marker"), w = n[a].querySelector(".apexcharts-tooltip-text");
                            parseFloat(d) == 0 ? (C.style.display = "none", w.style.display = "none") : (C.style.display = "block", w.style.display = "block");
                        }
                        d == null || u.globals.ancillaryCollapsedSeriesIndices.indexOf(a) > -1 || u.globals.collapsedSeriesIndices.indexOf(a) > -1 || Array.isArray(c.tConfig.enabledOnSeries) && c.tConfig.enabledOnSeries.indexOf(a) === -1 ? g[0].parentNode.style.display = "none" : g[0].parentNode.style.display = u.config.tooltip.items.display;
                    } else Array.isArray(c.tConfig.enabledOnSeries) && c.tConfig.enabledOnSeries.indexOf(a) === -1 && (g[0].parentNode.style.display = "none");
                }
            },
            {
                key: "toggleActiveInactiveSeries",
                value: function(e, a) {
                    var r = this.w;
                    if (e) this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");
                    else {
                        this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");
                        var n = r.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group-".concat(a));
                        n && (n.classList.add("apexcharts-active"), n.style.display = r.config.tooltip.items.display);
                    }
                }
            },
            {
                key: "getValuesToPrint",
                value: function(e) {
                    var a = e.i, r = e.j, n = this.w, i = this.ctx.series.filteredSeriesX(), o = "", s = "", l = null, u = null, c = {
                        series: n.globals.series,
                        seriesIndex: a,
                        dataPointIndex: r,
                        w: n
                    }, d = n.globals.ttZFormatter;
                    r === null ? u = n.globals.series[a] : n.globals.isXNumeric && n.config.chart.type !== "treemap" ? (o = i[a][r], i[a].length === 0 && (o = i[this.tooltipUtil.getFirstActiveXArray(i)][r])) : o = new bf(this.ctx).isFormatXY() ? n.config.series[a].data[r] !== void 0 ? n.config.series[a].data[r].x : "" : n.globals.labels[r] !== void 0 ? n.globals.labels[r] : "";
                    var h = o;
                    return n.globals.isXNumeric && n.config.xaxis.type === "datetime" ? o = new as(this.ctx).xLabelFormat(n.globals.ttKeyFormatter, h, h, {
                        i: void 0,
                        dateFormatter: new ua(this.ctx).formatDate,
                        w: this.w
                    }) : o = n.globals.isBarHorizontal ? n.globals.yLabelFormatters[0](h, c) : n.globals.xLabelFormatter(h, c), n.config.tooltip.x.formatter !== void 0 && (o = n.globals.ttKeyFormatter(h, c)), n.globals.seriesZ.length > 0 && n.globals.seriesZ[a].length > 0 && (l = d(n.globals.seriesZ[a][r], n)), s = typeof n.config.xaxis.tooltip.formatter == "function" ? n.globals.xaxisTooltipFormatter(h, c) : o, {
                        val: Array.isArray(u) ? u.join(" ") : u,
                        xVal: Array.isArray(o) ? o.join(" ") : o,
                        xAxisTTVal: Array.isArray(s) ? s.join(" ") : s,
                        zVal: l
                    };
                }
            },
            {
                key: "handleCustomTooltip",
                value: function(e) {
                    var a = e.i, r = e.j, n = e.y1, i = e.y2, o = e.w, s = this.ttCtx.getElTooltip(), l = o.config.tooltip.custom;
                    Array.isArray(l) && l[a] && (l = l[a]);
                    var u = l({
                        ctx: this.ctx,
                        series: o.globals.series,
                        seriesIndex: a,
                        dataPointIndex: r,
                        y1: n,
                        y2: i,
                        w: o
                    });
                    typeof u == "string" || typeof u == "number" ? s.innerHTML = u : (u instanceof Element || typeof u.nodeName == "string") && (s.innerHTML = "", s.appendChild(u.cloneNode(!0)));
                }
            }
        ]), t;
    }(), X1 = function() {
        function t(e) {
            Ae(this, t), this.ttCtx = e, this.ctx = e.ctx, this.w = e.w;
        }
        return De(t, [
            {
                key: "moveXCrosshairs",
                value: function(e) {
                    var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, r = this.ttCtx, n = this.w, i = r.getElXCrosshairs(), o = e - r.xcrosshairsWidth / 2, s = n.globals.labels.slice().length;
                    if (a !== null && (o = n.globals.gridWidth / s * a), i === null || n.globals.isBarHorizontal || (i.setAttribute("x", o), i.setAttribute("x1", o), i.setAttribute("x2", o), i.setAttribute("y2", n.globals.gridHeight), i.classList.add("apexcharts-active")), o < 0 && (o = 0), o > n.globals.gridWidth && (o = n.globals.gridWidth), r.isXAxisTooltipEnabled) {
                        var l = o;
                        n.config.xaxis.crosshairs.width !== "tickWidth" && n.config.xaxis.crosshairs.width !== "barWidth" || (l = o + r.xcrosshairsWidth / 2), this.moveXAxisTooltip(l);
                    }
                }
            },
            {
                key: "moveYCrosshairs",
                value: function(e) {
                    var a = this.ttCtx;
                    a.ycrosshairs !== null && he.setAttrs(a.ycrosshairs, {
                        y1: e,
                        y2: e
                    }), a.ycrosshairsHidden !== null && he.setAttrs(a.ycrosshairsHidden, {
                        y1: e,
                        y2: e
                    });
                }
            },
            {
                key: "moveXAxisTooltip",
                value: function(e) {
                    var a = this.w, r = this.ttCtx;
                    if (r.xaxisTooltip !== null && r.xcrosshairsWidth !== 0) {
                        r.xaxisTooltip.classList.add("apexcharts-active");
                        var n = r.xaxisOffY + a.config.xaxis.tooltip.offsetY + a.globals.translateY + 1 + a.config.xaxis.offsetY;
                        if (e -= r.xaxisTooltip.getBoundingClientRect().width / 2, !isNaN(e)) {
                            e += a.globals.translateX;
                            var i;
                            i = new he(this.ctx).getTextRects(r.xaxisTooltipText.innerHTML), r.xaxisTooltipText.style.minWidth = i.width + "px", r.xaxisTooltip.style.left = e + "px", r.xaxisTooltip.style.top = n + "px";
                        }
                    }
                }
            },
            {
                key: "moveYAxisTooltip",
                value: function(e) {
                    var a = this.w, r = this.ttCtx;
                    r.yaxisTTEls === null && (r.yaxisTTEls = a.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));
                    var n = parseInt(r.ycrosshairsHidden.getAttribute("y1"), 10), i = a.globals.translateY + n, o = r.yaxisTTEls[e].getBoundingClientRect(), s = o.height, l = a.globals.translateYAxisX[e] - 2;
                    a.config.yaxis[e].opposite && (l -= o.width), i -= s / 2, a.globals.ignoreYAxisIndexes.indexOf(e) === -1 && i > 0 && i < a.globals.gridHeight ? (r.yaxisTTEls[e].classList.add("apexcharts-active"), r.yaxisTTEls[e].style.top = i + "px", r.yaxisTTEls[e].style.left = l + a.config.yaxis[e].tooltip.offsetX + "px") : r.yaxisTTEls[e].classList.remove("apexcharts-active");
                }
            },
            {
                key: "moveTooltip",
                value: function(e, a) {
                    var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, n = this.w, i = this.ttCtx, o = i.getElTooltip(), s = i.tooltipRect, l = r !== null ? parseFloat(r) : 1, u = parseFloat(e) + l + 5, c = parseFloat(a) + l / 2;
                    if (u > n.globals.gridWidth / 2 && (u = u - s.ttWidth - l - 10), u > n.globals.gridWidth - s.ttWidth - 10 && (u = n.globals.gridWidth - s.ttWidth), u < -20 && (u = -20), n.config.tooltip.followCursor) {
                        var d = i.getElGrid().getBoundingClientRect();
                        (u = i.e.clientX - d.left) > n.globals.gridWidth / 2 && (u -= i.tooltipRect.ttWidth), (c = i.e.clientY + n.globals.translateY - d.top) > n.globals.gridHeight / 2 && (c -= i.tooltipRect.ttHeight);
                    } else n.globals.isBarHorizontal || s.ttHeight / 2 + c > n.globals.gridHeight && (c = n.globals.gridHeight - s.ttHeight + n.globals.translateY);
                    isNaN(u) || (u += n.globals.translateX, o.style.left = u + "px", o.style.top = c + "px");
                }
            },
            {
                key: "moveMarkers",
                value: function(e, a) {
                    var r = this.w, n = this.ttCtx;
                    if (r.globals.markers.size[e] > 0) for(var i = r.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(e, "'] .apexcharts-marker")), o = 0; o < i.length; o++)parseInt(i[o].getAttribute("rel"), 10) === a && (n.marker.resetPointsSize(), n.marker.enlargeCurrentPoint(a, i[o]));
                    else n.marker.resetPointsSize(), this.moveDynamicPointOnHover(a, e);
                }
            },
            {
                key: "moveDynamicPointOnHover",
                value: function(e, a) {
                    var r, n, i, o, s = this.w, l = this.ttCtx, u = new he(this.ctx), c = s.globals.pointsArray, d = l.tooltipUtil.getHoverMarkerSize(a), h = s.config.series[a].type;
                    if (!h || h !== "column" && h !== "candlestick" && h !== "boxPlot") {
                        i = (r = c[a][e]) === null || r === void 0 ? void 0 : r[0], o = ((n = c[a][e]) === null || n === void 0 ? void 0 : n[1]) || 0;
                        var m = s.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(a, "'] .apexcharts-series-markers path"));
                        if (m && o < s.globals.gridHeight && o > 0) {
                            var f = m.getAttribute("shape"), p = u.getMarkerPath(i, o, f, 1.5 * d);
                            m.setAttribute("d", p);
                        }
                        this.moveXCrosshairs(i), l.fixedTooltip || this.moveTooltip(i, o, d);
                    }
                }
            },
            {
                key: "moveDynamicPointsOnHover",
                value: function(e) {
                    var a, r = this.ttCtx, n = r.w, i = 0, o = 0, s = n.globals.pointsArray, l = new nr(this.ctx), u = new he(this.ctx);
                    a = l.getActiveConfigSeriesIndex("asc", [
                        "line",
                        "area",
                        "scatter",
                        "bubble"
                    ]);
                    var c = r.tooltipUtil.getHoverMarkerSize(a);
                    if (s[a] && (i = s[a][e][0], o = s[a][e][1]), !isNaN(i)) {
                        var d = r.tooltipUtil.getAllMarkers();
                        if (d.length) for(var h = 0; h < n.globals.series.length; h++){
                            var m = s[h];
                            if (n.globals.comboCharts && m === void 0 && d.splice(h, 0, null), m && m.length) {
                                var f = s[h][e][1], p = void 0;
                                d[h].setAttribute("cx", i);
                                var g = d[h].getAttribute("shape");
                                if (n.config.chart.type === "rangeArea" && !n.globals.comboCharts) {
                                    var v = e + n.globals.series[h].length;
                                    p = s[h][v][1], f -= Math.abs(f - p) / 2;
                                }
                                if (f !== null && !isNaN(f) && f < n.globals.gridHeight + c && f + c > 0) {
                                    var b = u.getMarkerPath(i, f, g, c);
                                    d[h].setAttribute("d", b);
                                } else d[h].setAttribute("d", "");
                            }
                        }
                        this.moveXCrosshairs(i), r.fixedTooltip || this.moveTooltip(i, o || n.globals.gridHeight, c);
                    }
                }
            },
            {
                key: "moveStickyTooltipOverBars",
                value: function(e, a) {
                    var r = this.w, n = this.ttCtx, i = r.globals.columnSeries ? r.globals.columnSeries.length : r.globals.series.length;
                    r.config.chart.stacked && (i = r.globals.barGroups.length);
                    var o = i >= 2 && i % 2 == 0 ? Math.floor(i / 2) : Math.floor(i / 2) + 1;
                    r.globals.isBarHorizontal && (o = new nr(this.ctx).getActiveConfigSeriesIndex("desc") + 1);
                    var s = r.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(o, "'] path[j='").concat(e, "'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(o, "'] path[j='").concat(e, "'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(o, "'] path[j='").concat(e, "'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(o, "'] path[j='").concat(e, "']"));
                    s || typeof a != "number" || (s = r.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[data\\:realIndex='".concat(a, "'] path[j='").concat(e, `'],
        .apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='`).concat(a, "'] path[j='").concat(e, `'],
        .apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='`).concat(a, "'] path[j='").concat(e, `'],
        .apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='`).concat(a, "'] path[j='").concat(e, "']")));
                    var l = s ? parseFloat(s.getAttribute("cx")) : 0, u = s ? parseFloat(s.getAttribute("cy")) : 0, c = s ? parseFloat(s.getAttribute("barWidth")) : 0, d = n.getElGrid().getBoundingClientRect(), h = s && (s.classList.contains("apexcharts-candlestick-area") || s.classList.contains("apexcharts-boxPlot-area"));
                    r.globals.isXNumeric ? (s && !h && (l -= i % 2 != 0 ? c / 2 : 0), s && h && (l -= c / 2)) : r.globals.isBarHorizontal || (l = n.xAxisTicksPositions[e - 1] + n.dataPointsDividedWidth / 2, isNaN(l) && (l = n.xAxisTicksPositions[e] - n.dataPointsDividedWidth / 2)), r.globals.isBarHorizontal ? u -= n.tooltipRect.ttHeight : r.config.tooltip.followCursor ? u = n.e.clientY - d.top - n.tooltipRect.ttHeight / 2 : u + n.tooltipRect.ttHeight + 15 > r.globals.gridHeight && (u = r.globals.gridHeight), r.globals.isBarHorizontal || this.moveXCrosshairs(l), n.fixedTooltip || this.moveTooltip(l, u || r.globals.gridHeight);
                }
            }
        ]), t;
    }(), gI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.ttCtx = e, this.ctx = e.ctx, this.tooltipPosition = new X1(e);
        }
        return De(t, [
            {
                key: "drawDynamicPoints",
                value: function() {
                    var e = this.w, a = new he(this.ctx), r = new Ui(this.ctx), n = e.globals.dom.baseEl.querySelectorAll(".apexcharts-series");
                    n = Qt(n), e.config.chart.stacked && n.sort(function(d, h) {
                        return parseFloat(d.getAttribute("data:realIndex")) - parseFloat(h.getAttribute("data:realIndex"));
                    });
                    for(var i = 0; i < n.length; i++){
                        var o = n[i].querySelector(".apexcharts-series-markers-wrap");
                        if (o !== null) {
                            var s = void 0, l = "apexcharts-marker w".concat((Math.random() + 1).toString(36).substring(4));
                            e.config.chart.type !== "line" && e.config.chart.type !== "area" || e.globals.comboCharts || e.config.tooltip.intersect || (l += " no-pointer-events");
                            var u = r.getMarkerConfig({
                                cssClass: l,
                                seriesIndex: Number(o.getAttribute("data:realIndex"))
                            });
                            (s = a.drawMarker(0, 0, u)).node.setAttribute("default-marker-size", 0);
                            var c = document.createElementNS(e.globals.SVGNS, "g");
                            c.classList.add("apexcharts-series-markers"), c.appendChild(s.node), o.appendChild(c);
                        }
                    }
                }
            },
            {
                key: "enlargeCurrentPoint",
                value: function(e, a) {
                    var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, n = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null, i = this.w;
                    i.config.chart.type !== "bubble" && this.newPointSize(e, a);
                    var o = a.getAttribute("cx"), s = a.getAttribute("cy");
                    if (r !== null && n !== null && (o = r, s = n), this.tooltipPosition.moveXCrosshairs(o), !this.fixedTooltip) {
                        if (i.config.chart.type === "radar") {
                            var l = this.ttCtx.getElGrid().getBoundingClientRect();
                            o = this.ttCtx.e.clientX - l.left;
                        }
                        this.tooltipPosition.moveTooltip(o, s, i.config.markers.hover.size);
                    }
                }
            },
            {
                key: "enlargePoints",
                value: function(e) {
                    for(var a = this.w, r = this, n = this.ttCtx, i = e, o = a.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"), s = a.config.markers.hover.size, l = 0; l < o.length; l++){
                        var u = o[l].getAttribute("rel"), c = o[l].getAttribute("index");
                        if (s === void 0 && (s = a.globals.markers.size[c] + a.config.markers.hover.sizeOffset), i === parseInt(u, 10)) {
                            r.newPointSize(i, o[l]);
                            var d = o[l].getAttribute("cx"), h = o[l].getAttribute("cy");
                            r.tooltipPosition.moveXCrosshairs(d), n.fixedTooltip || r.tooltipPosition.moveTooltip(d, h, s);
                        } else r.oldPointSize(o[l]);
                    }
                }
            },
            {
                key: "newPointSize",
                value: function(e, a) {
                    var r = this.w, n = r.config.markers.hover.size, i = e === 0 ? a.parentNode.firstChild : a.parentNode.lastChild;
                    if (i.getAttribute("default-marker-size") !== "0") {
                        var o = parseInt(i.getAttribute("index"), 10);
                        n === void 0 && (n = r.globals.markers.size[o] + r.config.markers.hover.sizeOffset), n < 0 && (n = 0);
                        var s = this.ttCtx.tooltipUtil.getPathFromPoint(a, n);
                        a.setAttribute("d", s);
                    }
                }
            },
            {
                key: "oldPointSize",
                value: function(e) {
                    var a = parseFloat(e.getAttribute("default-marker-size")), r = this.ttCtx.tooltipUtil.getPathFromPoint(e, a);
                    e.setAttribute("d", r);
                }
            },
            {
                key: "resetPointsSize",
                value: function() {
                    for(var e = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"), a = 0; a < e.length; a++){
                        var r = parseFloat(e[a].getAttribute("default-marker-size"));
                        if (V.isNumber(r) && r > 0) {
                            var n = this.ttCtx.tooltipUtil.getPathFromPoint(e[a], r);
                            e[a].setAttribute("d", n);
                        } else e[a].setAttribute("d", "M0,0");
                    }
                }
            }
        ]), t;
    }(), vI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w;
            var a = this.w;
            this.ttCtx = e, this.isVerticalGroupedRangeBar = !a.globals.isBarHorizontal && a.config.chart.type === "rangeBar" && a.config.plotOptions.bar.rangeBarGroupRows;
        }
        return De(t, [
            {
                key: "getAttr",
                value: function(e, a) {
                    return parseFloat(e.target.getAttribute(a));
                }
            },
            {
                key: "handleHeatTreeTooltip",
                value: function(e) {
                    var a = e.e, r = e.opt, n = e.x, i = e.y, o = e.type, s = this.ttCtx, l = this.w;
                    if (a.target.classList.contains("apexcharts-".concat(o, "-rect"))) {
                        var u = this.getAttr(a, "i"), c = this.getAttr(a, "j"), d = this.getAttr(a, "cx"), h = this.getAttr(a, "cy"), m = this.getAttr(a, "width"), f = this.getAttr(a, "height");
                        if (s.tooltipLabels.drawSeriesTexts({
                            ttItems: r.ttItems,
                            i: u,
                            j: c,
                            shared: !1,
                            e: a
                        }), l.globals.capturedSeriesIndex = u, l.globals.capturedDataPointIndex = c, n = d + s.tooltipRect.ttWidth / 2 + m, i = h + s.tooltipRect.ttHeight / 2 - f / 2, s.tooltipPosition.moveXCrosshairs(d + m / 2), n > l.globals.gridWidth / 2 && (n = d - s.tooltipRect.ttWidth / 2 + m), s.w.config.tooltip.followCursor) {
                            var p = l.globals.dom.elWrap.getBoundingClientRect();
                            n = l.globals.clientX - p.left - (n > l.globals.gridWidth / 2 ? s.tooltipRect.ttWidth : 0), i = l.globals.clientY - p.top - (i > l.globals.gridHeight / 2 ? s.tooltipRect.ttHeight : 0);
                        }
                    }
                    return {
                        x: n,
                        y: i
                    };
                }
            },
            {
                key: "handleMarkerTooltip",
                value: function(e) {
                    var a, r, n = e.e, i = e.opt, o = e.x, s = e.y, l = this.w, u = this.ttCtx;
                    if (n.target.classList.contains("apexcharts-marker")) {
                        var c = parseInt(i.paths.getAttribute("cx"), 10), d = parseInt(i.paths.getAttribute("cy"), 10), h = parseFloat(i.paths.getAttribute("val"));
                        if (r = parseInt(i.paths.getAttribute("rel"), 10), a = parseInt(i.paths.parentNode.parentNode.parentNode.getAttribute("rel"), 10) - 1, u.intersect) {
                            var m = V.findAncestor(i.paths, "apexcharts-series");
                            m && (a = parseInt(m.getAttribute("data:realIndex"), 10));
                        }
                        if (u.tooltipLabels.drawSeriesTexts({
                            ttItems: i.ttItems,
                            i: a,
                            j: r,
                            shared: !u.showOnIntersect && l.config.tooltip.shared,
                            e: n
                        }), n.type === "mouseup" && u.markerClick(n, a, r), l.globals.capturedSeriesIndex = a, l.globals.capturedDataPointIndex = r, o = c, s = d + l.globals.translateY - 1.4 * u.tooltipRect.ttHeight, u.w.config.tooltip.followCursor) {
                            var f = u.getElGrid().getBoundingClientRect();
                            s = u.e.clientY + l.globals.translateY - f.top;
                        }
                        h < 0 && (s = d), u.marker.enlargeCurrentPoint(r, i.paths, o, s);
                    }
                    return {
                        x: o,
                        y: s
                    };
                }
            },
            {
                key: "handleBarTooltip",
                value: function(e) {
                    var a, r, n = e.e, i = e.opt, o = this.w, s = this.ttCtx, l = s.getElTooltip(), u = 0, c = 0, d = 0, h = this.getBarTooltipXY({
                        e: n,
                        opt: i
                    });
                    if (h.j !== null || h.barHeight !== 0 || h.barWidth !== 0) {
                        a = h.i;
                        var m = h.j;
                        if (o.globals.capturedSeriesIndex = a, o.globals.capturedDataPointIndex = m, o.globals.isBarHorizontal && s.tooltipUtil.hasBars() || !o.config.tooltip.shared ? (c = h.x, d = h.y, r = Array.isArray(o.config.stroke.width) ? o.config.stroke.width[a] : o.config.stroke.width, u = c) : o.globals.comboCharts || o.config.tooltip.shared || (u /= 2), isNaN(d) && (d = o.globals.svgHeight - s.tooltipRect.ttHeight), parseInt(i.paths.parentNode.getAttribute("data:realIndex"), 10), c + s.tooltipRect.ttWidth > o.globals.gridWidth ? c -= s.tooltipRect.ttWidth : c < 0 && (c = 0), s.w.config.tooltip.followCursor) {
                            var f = s.getElGrid().getBoundingClientRect();
                            d = s.e.clientY - f.top;
                        }
                        s.tooltip === null && (s.tooltip = o.globals.dom.baseEl.querySelector(".apexcharts-tooltip")), o.config.tooltip.shared || (o.globals.comboBarCount > 0 ? s.tooltipPosition.moveXCrosshairs(u + r / 2) : s.tooltipPosition.moveXCrosshairs(u)), !s.fixedTooltip && (!o.config.tooltip.shared || o.globals.isBarHorizontal && s.tooltipUtil.hasBars()) && (d = d + o.globals.translateY - s.tooltipRect.ttHeight / 2, l.style.left = c + o.globals.translateX + "px", l.style.top = d + "px");
                    }
                }
            },
            {
                key: "getBarTooltipXY",
                value: function(e) {
                    var a = this, r = e.e, n = e.opt, i = this.w, o = null, s = this.ttCtx, l = 0, u = 0, c = 0, d = 0, h = 0, m = r.target.classList;
                    if (m.contains("apexcharts-bar-area") || m.contains("apexcharts-candlestick-area") || m.contains("apexcharts-boxPlot-area") || m.contains("apexcharts-rangebar-area")) {
                        var f = r.target, p = f.getBoundingClientRect(), g = n.elGrid.getBoundingClientRect(), v = p.height;
                        h = p.height;
                        var b = p.width, k = parseInt(f.getAttribute("cx"), 10), S = parseInt(f.getAttribute("cy"), 10);
                        d = parseFloat(f.getAttribute("barWidth"));
                        var x = r.type === "touchmove" ? r.touches[0].clientX : r.clientX;
                        o = parseInt(f.getAttribute("j"), 10), l = parseInt(f.parentNode.getAttribute("rel"), 10) - 1;
                        var C = f.getAttribute("data-range-y1"), w = f.getAttribute("data-range-y2");
                        i.globals.comboCharts && (l = parseInt(f.parentNode.getAttribute("data:realIndex"), 10));
                        var F = function(_) {
                            return i.globals.isXNumeric ? k - b / 2 : a.isVerticalGroupedRangeBar ? k + b / 2 : k - s.dataPointsDividedWidth + b / 2;
                        }, D = function() {
                            return S - s.dataPointsDividedHeight + v / 2 - s.tooltipRect.ttHeight / 2;
                        };
                        s.tooltipLabels.drawSeriesTexts({
                            ttItems: n.ttItems,
                            i: l,
                            j: o,
                            y1: C ? parseInt(C, 10) : null,
                            y2: w ? parseInt(w, 10) : null,
                            shared: !s.showOnIntersect && i.config.tooltip.shared,
                            e: r
                        }), i.config.tooltip.followCursor ? i.globals.isBarHorizontal ? (u = x - g.left + 15, c = D()) : (u = F(), c = r.clientY - g.top - s.tooltipRect.ttHeight / 2 - 15) : i.globals.isBarHorizontal ? ((u = k) < s.xyRatios.baseLineInvertedY && (u = k - s.tooltipRect.ttWidth), c = D()) : (u = F(), c = S);
                    }
                    return {
                        x: u,
                        y: c,
                        barHeight: h,
                        barWidth: d,
                        i: l,
                        j: o
                    };
                }
            }
        ]), t;
    }(), yI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.ttCtx = e;
        }
        return De(t, [
            {
                key: "drawXaxisTooltip",
                value: function() {
                    var e = this.w, a = this.ttCtx, r = e.config.xaxis.position === "bottom";
                    a.xaxisOffY = r ? e.globals.gridHeight + 1 : -e.globals.xAxisHeight - e.config.xaxis.axisTicks.height + 3;
                    var n = r ? "apexcharts-xaxistooltip apexcharts-xaxistooltip-bottom" : "apexcharts-xaxistooltip apexcharts-xaxistooltip-top", i = e.globals.dom.elWrap;
                    a.isXAxisTooltipEnabled && e.globals.dom.baseEl.querySelector(".apexcharts-xaxistooltip") === null && (a.xaxisTooltip = document.createElement("div"), a.xaxisTooltip.setAttribute("class", n + " apexcharts-theme-" + e.config.tooltip.theme), i.appendChild(a.xaxisTooltip), a.xaxisTooltipText = document.createElement("div"), a.xaxisTooltipText.classList.add("apexcharts-xaxistooltip-text"), a.xaxisTooltipText.style.fontFamily = e.config.xaxis.tooltip.style.fontFamily || e.config.chart.fontFamily, a.xaxisTooltipText.style.fontSize = e.config.xaxis.tooltip.style.fontSize, a.xaxisTooltip.appendChild(a.xaxisTooltipText));
                }
            },
            {
                key: "drawYaxisTooltip",
                value: function() {
                    for(var e = this.w, a = this.ttCtx, r = 0; r < e.config.yaxis.length; r++){
                        var n = e.config.yaxis[r].opposite || e.config.yaxis[r].crosshairs.opposite;
                        a.yaxisOffX = n ? e.globals.gridWidth + 1 : 1;
                        var i = "apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(r, n ? " apexcharts-yaxistooltip-right" : " apexcharts-yaxistooltip-left"), o = e.globals.dom.elWrap;
                        e.globals.dom.baseEl.querySelector(".apexcharts-yaxistooltip apexcharts-yaxistooltip-".concat(r)) === null && (a.yaxisTooltip = document.createElement("div"), a.yaxisTooltip.setAttribute("class", i + " apexcharts-theme-" + e.config.tooltip.theme), o.appendChild(a.yaxisTooltip), r === 0 && (a.yaxisTooltipText = []), a.yaxisTooltipText[r] = document.createElement("div"), a.yaxisTooltipText[r].classList.add("apexcharts-yaxistooltip-text"), a.yaxisTooltip.appendChild(a.yaxisTooltipText[r]));
                    }
                }
            },
            {
                key: "setXCrosshairWidth",
                value: function() {
                    var e = this.w, a = this.ttCtx, r = a.getElXCrosshairs();
                    if (a.xcrosshairsWidth = parseInt(e.config.xaxis.crosshairs.width, 10), e.globals.comboCharts) {
                        var n = e.globals.dom.baseEl.querySelector(".apexcharts-bar-area");
                        if (n !== null && e.config.xaxis.crosshairs.width === "barWidth") {
                            var i = parseFloat(n.getAttribute("barWidth"));
                            a.xcrosshairsWidth = i;
                        } else if (e.config.xaxis.crosshairs.width === "tickWidth") {
                            var o = e.globals.labels.length;
                            a.xcrosshairsWidth = e.globals.gridWidth / o;
                        }
                    } else if (e.config.xaxis.crosshairs.width === "tickWidth") {
                        var s = e.globals.labels.length;
                        a.xcrosshairsWidth = e.globals.gridWidth / s;
                    } else if (e.config.xaxis.crosshairs.width === "barWidth") {
                        var l = e.globals.dom.baseEl.querySelector(".apexcharts-bar-area");
                        if (l !== null) {
                            var u = parseFloat(l.getAttribute("barWidth"));
                            a.xcrosshairsWidth = u;
                        } else a.xcrosshairsWidth = 1;
                    }
                    e.globals.isBarHorizontal && (a.xcrosshairsWidth = 0), r !== null && a.xcrosshairsWidth > 0 && r.setAttribute("width", a.xcrosshairsWidth);
                }
            },
            {
                key: "handleYCrosshair",
                value: function() {
                    var e = this.w, a = this.ttCtx;
                    a.ycrosshairs = e.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"), a.ycrosshairsHidden = e.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden");
                }
            },
            {
                key: "drawYaxisTooltipText",
                value: function(e, a, r) {
                    var n = this.ttCtx, i = this.w, o = i.globals, s = o.seriesYAxisMap[e];
                    if (n.yaxisTooltips[e] && s.length > 0) {
                        var l = o.yLabelFormatters[e], u = n.getElGrid().getBoundingClientRect(), c = s[0], d = 0;
                        r.yRatio.length > 1 && (d = c);
                        var h = (a - u.top) * r.yRatio[d], m = o.maxYArr[c] - o.minYArr[c], f = o.minYArr[c] + (m - h);
                        i.config.yaxis[e].reversed && (f = o.maxYArr[c] - (m - h)), n.tooltipPosition.moveYCrosshairs(a - u.top), n.yaxisTooltipText[e].innerHTML = l(f), n.tooltipPosition.moveYAxisTooltip(e);
                    }
                }
            }
        ]), t;
    }(), my = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
            var a = this.w;
            this.tConfig = a.config.tooltip, this.tooltipUtil = new K1(this), this.tooltipLabels = new pI(this), this.tooltipPosition = new X1(this), this.marker = new gI(this), this.intersect = new vI(this), this.axesTooltip = new yI(this), this.showOnIntersect = this.tConfig.intersect, this.showTooltipTitle = this.tConfig.x.show, this.fixedTooltip = this.tConfig.fixed.enabled, this.xaxisTooltip = null, this.yaxisTTEls = null, this.isBarShared = !a.globals.isBarHorizontal && this.tConfig.shared, this.lastHoverTime = Date.now();
        }
        return De(t, [
            {
                key: "getElTooltip",
                value: function(e) {
                    return e || (e = this), e.w.globals.dom.baseEl ? e.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip") : null;
                }
            },
            {
                key: "getElXCrosshairs",
                value: function() {
                    return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs");
                }
            },
            {
                key: "getElGrid",
                value: function() {
                    return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid");
                }
            },
            {
                key: "drawTooltip",
                value: function(e) {
                    var a = this.w;
                    this.xyRatios = e, this.isXAxisTooltipEnabled = a.config.xaxis.tooltip.enabled && a.globals.axisCharts, this.yaxisTooltips = a.config.yaxis.map(function(o, s) {
                        return !!(o.show && o.tooltip.enabled && a.globals.axisCharts);
                    }), this.allTooltipSeriesGroups = [], a.globals.axisCharts || (this.showTooltipTitle = !1);
                    var r = document.createElement("div");
                    if (r.classList.add("apexcharts-tooltip"), a.config.tooltip.cssClass && r.classList.add(a.config.tooltip.cssClass), r.classList.add("apexcharts-theme-".concat(this.tConfig.theme || "light")), a.globals.dom.elWrap.appendChild(r), a.globals.axisCharts) {
                        this.axesTooltip.drawXaxisTooltip(), this.axesTooltip.drawYaxisTooltip(), this.axesTooltip.setXCrosshairWidth(), this.axesTooltip.handleYCrosshair();
                        var n = new Do(this.ctx);
                        this.xAxisTicksPositions = n.getXAxisTicksPositions();
                    }
                    if (!a.globals.comboCharts && !this.tConfig.intersect && a.config.chart.type !== "rangeBar" || this.tConfig.shared || (this.showOnIntersect = !0), a.config.markers.size !== 0 && a.globals.markers.largestSize !== 0 || this.marker.drawDynamicPoints(this), a.globals.collapsedSeries.length !== a.globals.series.length) {
                        this.dataPointsDividedHeight = a.globals.gridHeight / a.globals.dataPoints, this.dataPointsDividedWidth = a.globals.gridWidth / a.globals.dataPoints, this.showTooltipTitle && (this.tooltipTitle = document.createElement("div"), this.tooltipTitle.classList.add("apexcharts-tooltip-title"), this.tooltipTitle.style.fontFamily = this.tConfig.style.fontFamily || a.config.chart.fontFamily, this.tooltipTitle.style.fontSize = this.tConfig.style.fontSize, r.appendChild(this.tooltipTitle));
                        var i = a.globals.series.length;
                        (a.globals.xyCharts || a.globals.comboCharts) && this.tConfig.shared && (i = this.showOnIntersect ? 1 : a.globals.series.length), this.legendLabels = a.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"), this.ttItems = this.createTTElements(i), this.addSVGEvents();
                    }
                }
            },
            {
                key: "createTTElements",
                value: function(e) {
                    for(var a = this, r = this.w, n = [], i = this.getElTooltip(), o = function(l) {
                        var u = document.createElement("div");
                        u.classList.add("apexcharts-tooltip-series-group", "apexcharts-tooltip-series-group-".concat(l)), u.style.order = r.config.tooltip.inverseOrder ? e - l : l + 1;
                        var c = document.createElement("span");
                        c.classList.add("apexcharts-tooltip-marker"), r.config.tooltip.fillSeriesColor ? c.style.backgroundColor = r.globals.colors[l] : c.style.color = r.globals.colors[l];
                        var d = r.config.markers.shape, h = d;
                        Array.isArray(d) && (h = d[l]), c.setAttribute("shape", h), u.appendChild(c);
                        var m = document.createElement("div");
                        m.classList.add("apexcharts-tooltip-text"), m.style.fontFamily = a.tConfig.style.fontFamily || r.config.chart.fontFamily, m.style.fontSize = a.tConfig.style.fontSize, [
                            "y",
                            "goals",
                            "z"
                        ].forEach(function(f) {
                            var p = document.createElement("div");
                            p.classList.add("apexcharts-tooltip-".concat(f, "-group"));
                            var g = document.createElement("span");
                            g.classList.add("apexcharts-tooltip-text-".concat(f, "-label")), p.appendChild(g);
                            var v = document.createElement("span");
                            v.classList.add("apexcharts-tooltip-text-".concat(f, "-value")), p.appendChild(v), m.appendChild(p);
                        }), u.appendChild(m), i.appendChild(u), n.push(u);
                    }, s = 0; s < e; s++)o(s);
                    return n;
                }
            },
            {
                key: "addSVGEvents",
                value: function() {
                    var e = this.w, a = e.config.chart.type, r = this.getElTooltip(), n = !(a !== "bar" && a !== "candlestick" && a !== "boxPlot" && a !== "rangeBar"), i = a === "area" || a === "line" || a === "scatter" || a === "bubble" || a === "radar", o = e.globals.dom.Paper.node, s = this.getElGrid();
                    s && (this.seriesBound = s.getBoundingClientRect());
                    var l, u = [], c = [], d = {
                        hoverArea: o,
                        elGrid: s,
                        tooltipEl: r,
                        tooltipY: u,
                        tooltipX: c,
                        ttItems: this.ttItems
                    };
                    if (e.globals.axisCharts && (i ? l = e.globals.dom.baseEl.querySelectorAll(".apexcharts-series[data\\:longestSeries='true'] .apexcharts-marker") : n ? l = e.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-bar-area, .apexcharts-series .apexcharts-candlestick-area, .apexcharts-series .apexcharts-boxPlot-area, .apexcharts-series .apexcharts-rangebar-area") : a !== "heatmap" && a !== "treemap" || (l = e.globals.dom.baseEl.querySelectorAll(".apexcharts-series .apexcharts-heatmap, .apexcharts-series .apexcharts-treemap")), l && l.length)) for(var h = 0; h < l.length; h++)u.push(l[h].getAttribute("cy")), c.push(l[h].getAttribute("cx"));
                    if (e.globals.xyCharts && !this.showOnIntersect || e.globals.comboCharts && !this.showOnIntersect || n && this.tooltipUtil.hasBars() && this.tConfig.shared) this.addPathsEventListeners([
                        o
                    ], d);
                    else if (n && !e.globals.comboCharts || i && this.showOnIntersect) this.addDatapointEventsListeners(d);
                    else if (!e.globals.axisCharts || a === "heatmap" || a === "treemap") {
                        var m = e.globals.dom.baseEl.querySelectorAll(".apexcharts-series");
                        this.addPathsEventListeners(m, d);
                    }
                    if (this.showOnIntersect) {
                        var f = e.globals.dom.baseEl.querySelectorAll(".apexcharts-line-series .apexcharts-marker, .apexcharts-area-series .apexcharts-marker");
                        f.length > 0 && this.addPathsEventListeners(f, d), this.tooltipUtil.hasBars() && !this.tConfig.shared && this.addDatapointEventsListeners(d);
                    }
                }
            },
            {
                key: "drawFixedTooltipRect",
                value: function() {
                    var e = this.w, a = this.getElTooltip(), r = a.getBoundingClientRect(), n = r.width + 10, i = r.height + 10, o = this.tConfig.fixed.offsetX, s = this.tConfig.fixed.offsetY, l = this.tConfig.fixed.position.toLowerCase();
                    return l.indexOf("right") > -1 && (o = o + e.globals.svgWidth - n + 10), l.indexOf("bottom") > -1 && (s = s + e.globals.svgHeight - i - 10), a.style.left = o + "px", a.style.top = s + "px", {
                        x: o,
                        y: s,
                        ttWidth: n,
                        ttHeight: i
                    };
                }
            },
            {
                key: "addDatapointEventsListeners",
                value: function(e) {
                    var a = this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");
                    this.addPathsEventListeners(a, e);
                }
            },
            {
                key: "addPathsEventListeners",
                value: function(e, a) {
                    for(var r = this, n = function(o) {
                        var s = {
                            paths: e[o],
                            tooltipEl: a.tooltipEl,
                            tooltipY: a.tooltipY,
                            tooltipX: a.tooltipX,
                            elGrid: a.elGrid,
                            hoverArea: a.hoverArea,
                            ttItems: a.ttItems
                        };
                        [
                            "mousemove",
                            "mouseup",
                            "touchmove",
                            "mouseout",
                            "touchend"
                        ].map(function(l) {
                            return e[o].addEventListener(l, r.onSeriesHover.bind(r, s), {
                                capture: !1,
                                passive: !0
                            });
                        });
                    }, i = 0; i < e.length; i++)n(i);
                }
            },
            {
                key: "onSeriesHover",
                value: function(e, a) {
                    var r = this, n = Date.now() - this.lastHoverTime;
                    n >= 20 ? this.seriesHover(e, a) : (clearTimeout(this.seriesHoverTimeout), this.seriesHoverTimeout = setTimeout(function() {
                        r.seriesHover(e, a);
                    }, 20 - n));
                }
            },
            {
                key: "seriesHover",
                value: function(e, a) {
                    var r = this;
                    this.lastHoverTime = Date.now();
                    var n = [], i = this.w;
                    i.config.chart.group && (n = this.ctx.getGroupedCharts()), i.globals.axisCharts && (i.globals.minX === -1 / 0 && i.globals.maxX === 1 / 0 || i.globals.dataPoints === 0) || (n.length ? n.forEach(function(o) {
                        var s = r.getElTooltip(o), l = {
                            paths: e.paths,
                            tooltipEl: s,
                            tooltipY: e.tooltipY,
                            tooltipX: e.tooltipX,
                            elGrid: e.elGrid,
                            hoverArea: e.hoverArea,
                            ttItems: o.w.globals.tooltip.ttItems
                        };
                        o.w.globals.minX === r.w.globals.minX && o.w.globals.maxX === r.w.globals.maxX && o.w.globals.tooltip.seriesHoverByContext({
                            chartCtx: o,
                            ttCtx: o.w.globals.tooltip,
                            opt: l,
                            e: a
                        });
                    }) : this.seriesHoverByContext({
                        chartCtx: this.ctx,
                        ttCtx: this.w.globals.tooltip,
                        opt: e,
                        e: a
                    }));
                }
            },
            {
                key: "seriesHoverByContext",
                value: function(e) {
                    var a = e.chartCtx, r = e.ttCtx, n = e.opt, i = e.e, o = a.w, s = this.getElTooltip(a);
                    s && (r.tooltipRect = {
                        x: 0,
                        y: 0,
                        ttWidth: s.getBoundingClientRect().width,
                        ttHeight: s.getBoundingClientRect().height
                    }, r.e = i, r.tooltipUtil.hasBars() && !o.globals.comboCharts && !r.isBarShared && this.tConfig.onDatasetHover.highlightDataSeries && new nr(a).toggleSeriesOnHover(i, i.target.parentNode), o.globals.axisCharts ? r.axisChartsTooltips({
                        e: i,
                        opt: n,
                        tooltipRect: r.tooltipRect
                    }) : r.nonAxisChartsTooltips({
                        e: i,
                        opt: n,
                        tooltipRect: r.tooltipRect
                    }), r.fixedTooltip && r.drawFixedTooltipRect());
                }
            },
            {
                key: "axisChartsTooltips",
                value: function(e) {
                    var a, r, n = e.e, i = e.opt, o = this.w, s = i.elGrid.getBoundingClientRect(), l = n.type === "touchmove" ? n.touches[0].clientX : n.clientX, u = n.type === "touchmove" ? n.touches[0].clientY : n.clientY;
                    if (this.clientY = u, this.clientX = l, o.globals.capturedSeriesIndex = -1, o.globals.capturedDataPointIndex = -1, u < s.top || u > s.top + s.height) this.handleMouseOut(i);
                    else {
                        if (Array.isArray(this.tConfig.enabledOnSeries) && !o.config.tooltip.shared) {
                            var c = parseInt(i.paths.getAttribute("index"), 10);
                            if (this.tConfig.enabledOnSeries.indexOf(c) < 0) return void this.handleMouseOut(i);
                        }
                        var d = this.getElTooltip(), h = this.getElXCrosshairs(), m = [];
                        o.config.chart.group && (m = this.ctx.getSyncedCharts());
                        var f = o.globals.xyCharts || o.config.chart.type === "bar" && !o.globals.isBarHorizontal && this.tooltipUtil.hasBars() && this.tConfig.shared || o.globals.comboCharts && this.tooltipUtil.hasBars();
                        if (n.type === "mousemove" || n.type === "touchmove" || n.type === "mouseup") {
                            if (o.globals.collapsedSeries.length + o.globals.ancillaryCollapsedSeries.length === o.globals.series.length) return;
                            h !== null && h.classList.add("apexcharts-active");
                            var p = this.yaxisTooltips.filter(function(b) {
                                return b === !0;
                            });
                            if (this.ycrosshairs !== null && p.length && this.ycrosshairs.classList.add("apexcharts-active"), f && !this.showOnIntersect || m.length > 1) this.handleStickyTooltip(n, l, u, i);
                            else if (o.config.chart.type === "heatmap" || o.config.chart.type === "treemap") {
                                var g = this.intersect.handleHeatTreeTooltip({
                                    e: n,
                                    opt: i,
                                    x: a,
                                    y: r,
                                    type: o.config.chart.type
                                });
                                a = g.x, r = g.y, d.style.left = a + "px", d.style.top = r + "px";
                            } else this.tooltipUtil.hasBars() && this.intersect.handleBarTooltip({
                                e: n,
                                opt: i
                            }), this.tooltipUtil.hasMarkers() && this.intersect.handleMarkerTooltip({
                                e: n,
                                opt: i,
                                x: a,
                                y: r
                            });
                            if (this.yaxisTooltips.length) for(var v = 0; v < o.config.yaxis.length; v++)this.axesTooltip.drawYaxisTooltipText(v, u, this.xyRatios);
                            o.globals.dom.baseEl.classList.add("apexcharts-tooltip-active"), i.tooltipEl.classList.add("apexcharts-active");
                        } else n.type !== "mouseout" && n.type !== "touchend" || this.handleMouseOut(i);
                    }
                }
            },
            {
                key: "nonAxisChartsTooltips",
                value: function(e) {
                    var a = e.e, r = e.opt, n = e.tooltipRect, i = this.w, o = r.paths.getAttribute("rel"), s = this.getElTooltip(), l = i.globals.dom.elWrap.getBoundingClientRect();
                    if (a.type === "mousemove" || a.type === "touchmove") {
                        i.globals.dom.baseEl.classList.add("apexcharts-tooltip-active"), s.classList.add("apexcharts-active"), this.tooltipLabels.drawSeriesTexts({
                            ttItems: r.ttItems,
                            i: parseInt(o, 10) - 1,
                            shared: !1
                        });
                        var u = i.globals.clientX - l.left - n.ttWidth / 2, c = i.globals.clientY - l.top - n.ttHeight - 10;
                        if (s.style.left = u + "px", s.style.top = c + "px", i.config.legend.tooltipHoverFormatter) {
                            var d = o - 1, h = (0, i.config.legend.tooltipHoverFormatter)(this.legendLabels[d].getAttribute("data:default-text"), {
                                seriesIndex: d,
                                dataPointIndex: d,
                                w: i
                            });
                            this.legendLabels[d].innerHTML = h;
                        }
                    } else a.type !== "mouseout" && a.type !== "touchend" || (s.classList.remove("apexcharts-active"), i.globals.dom.baseEl.classList.remove("apexcharts-tooltip-active"), i.config.legend.tooltipHoverFormatter && this.legendLabels.forEach(function(m) {
                        var f = m.getAttribute("data:default-text");
                        m.innerHTML = decodeURIComponent(f);
                    }));
                }
            },
            {
                key: "handleStickyTooltip",
                value: function(e, a, r, n) {
                    var i = this.w, o = this.tooltipUtil.getNearestValues({
                        context: this,
                        hoverArea: n.hoverArea,
                        elGrid: n.elGrid,
                        clientX: a,
                        clientY: r
                    }), s = o.j, l = o.capturedSeries;
                    i.globals.collapsedSeriesIndices.includes(l) && (l = null);
                    var u = n.elGrid.getBoundingClientRect();
                    if (o.hoverX < 0 || o.hoverX > u.width) this.handleMouseOut(n);
                    else if (l !== null) this.handleStickyCapturedSeries(e, l, n, s);
                    else if (this.tooltipUtil.isXoverlap(s) || i.globals.isBarHorizontal) {
                        var c = i.globals.series.findIndex(function(d, h) {
                            return !i.globals.collapsedSeriesIndices.includes(h);
                        });
                        this.create(e, this, c, s, n.ttItems);
                    }
                }
            },
            {
                key: "handleStickyCapturedSeries",
                value: function(e, a, r, n) {
                    var i = this.w;
                    if (!this.tConfig.shared && i.globals.series[a][n] === null) return void this.handleMouseOut(r);
                    if (i.globals.series[a][n] !== void 0) this.tConfig.shared && this.tooltipUtil.isXoverlap(n) && this.tooltipUtil.isInitialSeriesSameLen() ? this.create(e, this, a, n, r.ttItems) : this.create(e, this, a, n, r.ttItems, !1);
                    else if (this.tooltipUtil.isXoverlap(n)) {
                        var o = i.globals.series.findIndex(function(s, l) {
                            return !i.globals.collapsedSeriesIndices.includes(l);
                        });
                        this.create(e, this, o, n, r.ttItems);
                    }
                }
            },
            {
                key: "deactivateHoverFilter",
                value: function() {
                    for(var e = this.w, a = new he(this.ctx), r = e.globals.dom.Paper.find(".apexcharts-bar-area"), n = 0; n < r.length; n++)a.pathMouseLeave(r[n]);
                }
            },
            {
                key: "handleMouseOut",
                value: function(e) {
                    var a = this.w, r = this.getElXCrosshairs();
                    if (a.globals.dom.baseEl.classList.remove("apexcharts-tooltip-active"), e.tooltipEl.classList.remove("apexcharts-active"), this.deactivateHoverFilter(), a.config.chart.type !== "bubble" && this.marker.resetPointsSize(), r !== null && r.classList.remove("apexcharts-active"), this.ycrosshairs !== null && this.ycrosshairs.classList.remove("apexcharts-active"), this.isXAxisTooltipEnabled && this.xaxisTooltip.classList.remove("apexcharts-active"), this.yaxisTooltips.length) {
                        this.yaxisTTEls === null && (this.yaxisTTEls = a.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));
                        for(var n = 0; n < this.yaxisTTEls.length; n++)this.yaxisTTEls[n].classList.remove("apexcharts-active");
                    }
                    a.config.legend.tooltipHoverFormatter && this.legendLabels.forEach(function(i) {
                        var o = i.getAttribute("data:default-text");
                        i.innerHTML = decodeURIComponent(o);
                    });
                }
            },
            {
                key: "markerClick",
                value: function(e, a, r) {
                    var n = this.w;
                    typeof n.config.chart.events.markerClick == "function" && n.config.chart.events.markerClick(e, this.ctx, {
                        seriesIndex: a,
                        dataPointIndex: r,
                        w: n
                    }), this.ctx.events.fireEvent("markerClick", [
                        e,
                        this.ctx,
                        {
                            seriesIndex: a,
                            dataPointIndex: r,
                            w: n
                        }
                    ]);
                }
            },
            {
                key: "create",
                value: function(e, a, r, n, i) {
                    var o, s, l, u, c, d, h, m, f, p, g, v, b, k, S, x, C = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : null, w = this.w, F = a;
                    e.type === "mouseup" && this.markerClick(e, r, n), C === null && (C = this.tConfig.shared);
                    var D = this.tooltipUtil.hasMarkers(r), _ = this.tooltipUtil.getElBars(), A = function() {
                        w.globals.markers.largestSize > 0 ? F.marker.enlargePoints(n) : F.tooltipPosition.moveDynamicPointsOnHover(n);
                    };
                    if (w.config.legend.tooltipHoverFormatter) {
                        var E = w.config.legend.tooltipHoverFormatter, B = Array.from(this.legendLabels);
                        B.forEach(function(q) {
                            var X = q.getAttribute("data:default-text");
                            q.innerHTML = decodeURIComponent(X);
                        });
                        for(var P = 0; P < B.length; P++){
                            var M = B[P], R = parseInt(M.getAttribute("i"), 10), z = decodeURIComponent(M.getAttribute("data:default-text")), N = E(z, {
                                seriesIndex: C ? R : r,
                                dataPointIndex: n,
                                w
                            });
                            if (C) M.innerHTML = w.globals.collapsedSeriesIndices.indexOf(R) < 0 ? N : z;
                            else if (M.innerHTML = R === r ? N : z, r === R) break;
                        }
                    }
                    var H = ye(ye({
                        ttItems: i,
                        i: r,
                        j: n
                    }, ((o = w.globals.seriesRange) === null || o === void 0 || (s = o[r]) === null || s === void 0 || (l = s[n]) === null || l === void 0 || (u = l.y[0]) === null || u === void 0 ? void 0 : u.y1) !== void 0 && {
                        y1: (c = w.globals.seriesRange) === null || c === void 0 || (d = c[r]) === null || d === void 0 || (h = d[n]) === null || h === void 0 || (m = h.y[0]) === null || m === void 0 ? void 0 : m.y1
                    }), ((f = w.globals.seriesRange) === null || f === void 0 || (p = f[r]) === null || p === void 0 || (g = p[n]) === null || g === void 0 || (v = g.y[0]) === null || v === void 0 ? void 0 : v.y2) !== void 0 && {
                        y2: (b = w.globals.seriesRange) === null || b === void 0 || (k = b[r]) === null || k === void 0 || (S = k[n]) === null || S === void 0 || (x = S.y[0]) === null || x === void 0 ? void 0 : x.y2
                    });
                    if (C) {
                        if (F.tooltipLabels.drawSeriesTexts(ye(ye({}, H), {}, {
                            shared: !this.showOnIntersect && this.tConfig.shared
                        })), D) A();
                        else if (this.tooltipUtil.hasBars() && (this.barSeriesHeight = this.tooltipUtil.getBarsHeight(_), this.barSeriesHeight > 0)) {
                            var I = new he(this.ctx), L = w.globals.dom.Paper.find(".apexcharts-bar-area[j='".concat(n, "']"));
                            this.deactivateHoverFilter(), F.tooltipUtil.getAllMarkers(!0).length && !this.barSeriesHeight && A(), F.tooltipPosition.moveStickyTooltipOverBars(n, r);
                            for(var G = 0; G < L.length; G++)I.pathMouseEnter(L[G]);
                        }
                    } else F.tooltipLabels.drawSeriesTexts(ye({
                        shared: !1
                    }, H)), this.tooltipUtil.hasBars() && F.tooltipPosition.moveStickyTooltipOverBars(n, r), D && F.tooltipPosition.moveMarkers(r, n);
                }
            }
        ]), t;
    }(), bI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.barCtx = e, this.totalFormatter = this.w.config.plotOptions.bar.dataLabels.total.formatter, this.totalFormatter || (this.totalFormatter = this.w.config.dataLabels.formatter);
        }
        return De(t, [
            {
                key: "handleBarDataLabels",
                value: function(e) {
                    var a, r, n = e.x, i = e.y, o = e.y1, s = e.y2, l = e.i, u = e.j, c = e.realIndex, d = e.columnGroupIndex, h = e.series, m = e.barHeight, f = e.barWidth, p = e.barXPosition, g = e.barYPosition, v = e.visibleSeries, b = this.w, k = new he(this.barCtx.ctx), S = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[c] : this.barCtx.strokeWidth;
                    b.globals.isXNumeric && !b.globals.isBarHorizontal ? (a = n + parseFloat(f * (v + 1)), r = i + parseFloat(m * (v + 1)) - S) : (a = n + parseFloat(f * v), r = i + parseFloat(m * v));
                    var x, C = null, w = n, F = i, D = {}, _ = b.config.dataLabels, A = this.barCtx.barOptions.dataLabels, E = this.barCtx.barOptions.dataLabels.total;
                    g !== void 0 && this.barCtx.isRangeBar && (r = g, F = g), p !== void 0 && this.barCtx.isVerticalGroupedRangeBar && (a = p, w = p);
                    var B = _.offsetX, P = _.offsetY, M = {
                        width: 0,
                        height: 0
                    };
                    if (b.config.dataLabels.enabled) {
                        var R = b.globals.series[l][u];
                        M = k.getTextRects(b.config.dataLabels.formatter ? b.config.dataLabels.formatter(R, ye(ye({}, b), {}, {
                            seriesIndex: l,
                            dataPointIndex: u,
                            w: b
                        })) : b.globals.yLabelFormatters[0](R), parseFloat(_.style.fontSize));
                    }
                    var z = {
                        x: n,
                        y: i,
                        i: l,
                        j: u,
                        realIndex: c,
                        columnGroupIndex: d,
                        bcx: a,
                        bcy: r,
                        barHeight: m,
                        barWidth: f,
                        textRects: M,
                        strokeWidth: S,
                        dataLabelsX: w,
                        dataLabelsY: F,
                        dataLabelsConfig: _,
                        barDataLabelsConfig: A,
                        barTotalDataLabelsConfig: E,
                        offX: B,
                        offY: P
                    };
                    return D = this.barCtx.isHorizontal ? this.calculateBarsDataLabelsPosition(z) : this.calculateColumnsDataLabelsPosition(z), x = this.drawCalculatedDataLabels({
                        x: D.dataLabelsX,
                        y: D.dataLabelsY,
                        val: this.barCtx.isRangeBar ? [
                            o,
                            s
                        ] : b.config.chart.stackType === "100%" ? h[c][u] : b.globals.series[c][u],
                        i: c,
                        j: u,
                        barWidth: f,
                        barHeight: m,
                        textRects: M,
                        dataLabelsConfig: _
                    }), b.config.chart.stacked && E.enabled && (C = this.drawTotalDataLabels({
                        x: D.totalDataLabelsX,
                        y: D.totalDataLabelsY,
                        barWidth: f,
                        barHeight: m,
                        realIndex: c,
                        textAnchor: D.totalDataLabelsAnchor,
                        val: this.getStackedTotalDataLabel({
                            realIndex: c,
                            j: u
                        }),
                        dataLabelsConfig: _,
                        barTotalDataLabelsConfig: E
                    })), {
                        dataLabelsPos: D,
                        dataLabels: x,
                        totalDataLabels: C
                    };
                }
            },
            {
                key: "getStackedTotalDataLabel",
                value: function(e) {
                    var a = e.realIndex, r = e.j, n = this.w, i = this.barCtx.stackedSeriesTotals[r];
                    return this.totalFormatter && (i = this.totalFormatter(i, ye(ye({}, n), {}, {
                        seriesIndex: a,
                        dataPointIndex: r,
                        w: n
                    }))), i;
                }
            },
            {
                key: "calculateColumnsDataLabelsPosition",
                value: function(e) {
                    var a = this, r = this.w, n = e.i, i = e.j, o = e.realIndex;
                    e.columnGroupIndex;
                    var s, l, u = e.y, c = e.bcx, d = e.barWidth, h = e.barHeight, m = e.textRects, f = e.dataLabelsX, p = e.dataLabelsY, g = e.dataLabelsConfig, v = e.barDataLabelsConfig, b = e.barTotalDataLabelsConfig, k = e.strokeWidth, S = e.offX, x = e.offY, C = c;
                    h = Math.abs(h);
                    var w = r.config.plotOptions.bar.dataLabels.orientation === "vertical", F = this.barCtx.barHelpers.getZeroValueEncounters({
                        i: n,
                        j: i
                    }).zeroEncounters;
                    c -= k / 2;
                    var D = r.globals.gridWidth / r.globals.dataPoints;
                    this.barCtx.isVerticalGroupedRangeBar ? f += d / 2 : (f = r.globals.isXNumeric ? c - d / 2 + S : c - D + d / 2 + S, !r.config.chart.stacked && F > 0 && r.config.plotOptions.bar.hideZeroBarsWhenGrouped && (f -= d * F)), w && (f = f + m.height / 2 - k / 2 - 2);
                    var _ = r.globals.series[n][i] < 0, A = u;
                    switch(this.barCtx.isReversed && (A = u + (_ ? h : -h)), v.position){
                        case "center":
                            p = w ? _ ? A - h / 2 + x : A + h / 2 - x : _ ? A - h / 2 + m.height / 2 + x : A + h / 2 + m.height / 2 - x;
                            break;
                        case "bottom":
                            p = w ? _ ? A - h + x : A + h - x : _ ? A - h + m.height + k + x : A + h - m.height / 2 + k - x;
                            break;
                        case "top":
                            p = w ? _ ? A + x : A - x : _ ? A - m.height / 2 - x : A + m.height + x;
                    }
                    var E = A;
                    if (r.globals.seriesGroups.forEach(function(M) {
                        var R;
                        (R = a.barCtx[M.join(",")]) === null || R === void 0 || R.prevY.forEach(function(z) {
                            E = _ ? Math.max(z[i], E) : Math.min(z[i], E);
                        });
                    }), this.barCtx.lastActiveBarSerieIndex === o && b.enabled) {
                        var B = new he(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({
                            realIndex: o,
                            j: i
                        }), g.fontSize);
                        s = _ ? E - B.height / 2 - x - b.offsetY + 18 : E + B.height + x + b.offsetY - 18;
                        var P = D;
                        l = C + (r.globals.isXNumeric ? -d * r.globals.barGroups.length / 2 : r.globals.barGroups.length * d / 2 - (r.globals.barGroups.length - 1) * d - P) + b.offsetX;
                    }
                    return r.config.chart.stacked || (p < 0 ? p = 0 + k : p + m.height / 3 > r.globals.gridHeight && (p = r.globals.gridHeight - k)), {
                        bcx: c,
                        bcy: u,
                        dataLabelsX: f,
                        dataLabelsY: p,
                        totalDataLabelsX: l,
                        totalDataLabelsY: s,
                        totalDataLabelsAnchor: "middle"
                    };
                }
            },
            {
                key: "calculateBarsDataLabelsPosition",
                value: function(e) {
                    var a = this, r = this.w, n = e.x, i = e.i, o = e.j, s = e.realIndex, l = e.bcy, u = e.barHeight, c = e.barWidth, d = e.textRects, h = e.dataLabelsX, m = e.strokeWidth, f = e.dataLabelsConfig, p = e.barDataLabelsConfig, g = e.barTotalDataLabelsConfig, v = e.offX, b = e.offY, k = r.globals.gridHeight / r.globals.dataPoints, S = this.barCtx.barHelpers.getZeroValueEncounters({
                        i,
                        j: o
                    }).zeroEncounters;
                    c = Math.abs(c);
                    var x, C, w = l - (this.barCtx.isRangeBar ? 0 : k) + u / 2 + d.height / 2 + b - 3;
                    !r.config.chart.stacked && S > 0 && r.config.plotOptions.bar.hideZeroBarsWhenGrouped && (w -= u * S);
                    var F = "start", D = r.globals.series[i][o] < 0, _ = n;
                    switch(this.barCtx.isReversed && (_ = n + (D ? -c : c), F = D ? "start" : "end"), p.position){
                        case "center":
                            h = D ? _ + c / 2 - v : Math.max(d.width / 2, _ - c / 2) + v;
                            break;
                        case "bottom":
                            h = D ? _ + c - m - v : _ - c + m + v;
                            break;
                        case "top":
                            h = D ? _ - m - v : _ - m + v;
                    }
                    var A = _;
                    if (r.globals.seriesGroups.forEach(function(B) {
                        var P;
                        (P = a.barCtx[B.join(",")]) === null || P === void 0 || P.prevX.forEach(function(M) {
                            A = D ? Math.min(M[o], A) : Math.max(M[o], A);
                        });
                    }), this.barCtx.lastActiveBarSerieIndex === s && g.enabled) {
                        var E = new he(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({
                            realIndex: s,
                            j: o
                        }), f.fontSize);
                        D ? (x = A - m - v - g.offsetX, F = "end") : x = A + v + g.offsetX + (this.barCtx.isReversed ? -(c + m) : m), C = w - d.height / 2 + E.height / 2 + g.offsetY + m, r.globals.barGroups.length > 1 && (C -= r.globals.barGroups.length / 2 * (u / 2));
                    }
                    return r.config.chart.stacked || (f.textAnchor === "start" ? h - d.width < 0 ? h = D ? d.width + m : m : h + d.width > r.globals.gridWidth && (h = D ? r.globals.gridWidth - m : r.globals.gridWidth - d.width - m) : f.textAnchor === "middle" ? h - d.width / 2 < 0 ? h = d.width / 2 + m : h + d.width / 2 > r.globals.gridWidth && (h = r.globals.gridWidth - d.width / 2 - m) : f.textAnchor === "end" && (h < 1 ? h = d.width + m : h + 1 > r.globals.gridWidth && (h = r.globals.gridWidth - d.width - m))), {
                        bcx: n,
                        bcy: l,
                        dataLabelsX: h,
                        dataLabelsY: w,
                        totalDataLabelsX: x,
                        totalDataLabelsY: C,
                        totalDataLabelsAnchor: F
                    };
                }
            },
            {
                key: "drawCalculatedDataLabels",
                value: function(e) {
                    var a = e.x, r = e.y, n = e.val, i = e.i, o = e.j, s = e.textRects, l = e.barHeight, u = e.barWidth, c = e.dataLabelsConfig, d = this.w, h = "rotate(0)";
                    d.config.plotOptions.bar.dataLabels.orientation === "vertical" && (h = "rotate(-90, ".concat(a, ", ").concat(r, ")"));
                    var m = new Ai(this.barCtx.ctx), f = new he(this.barCtx.ctx), p = c.formatter, g = null, v = d.globals.collapsedSeriesIndices.indexOf(i) > -1;
                    if (c.enabled && !v) {
                        g = f.group({
                            class: "apexcharts-data-labels",
                            transform: h
                        });
                        var b = "";
                        n !== void 0 && (b = p(n, ye(ye({}, d), {}, {
                            seriesIndex: i,
                            dataPointIndex: o,
                            w: d
                        }))), !n && d.config.plotOptions.bar.hideZeroBarsWhenGrouped && (b = "");
                        var k = d.globals.series[i][o] < 0, S = d.config.plotOptions.bar.dataLabels.position;
                        d.config.plotOptions.bar.dataLabels.orientation === "vertical" && (S === "top" && (c.textAnchor = k ? "end" : "start"), S === "center" && (c.textAnchor = "middle"), S === "bottom" && (c.textAnchor = k ? "end" : "start")), this.barCtx.isRangeBar && this.barCtx.barOptions.dataLabels.hideOverflowingLabels && u < f.getTextRects(b, parseFloat(c.style.fontSize)).width && (b = ""), d.config.chart.stacked && this.barCtx.barOptions.dataLabels.hideOverflowingLabels && (this.barCtx.isHorizontal ? s.width / 1.6 > Math.abs(u) && (b = "") : s.height / 1.6 > Math.abs(l) && (b = ""));
                        var x = ye({}, c);
                        this.barCtx.isHorizontal && n < 0 && (c.textAnchor === "start" ? x.textAnchor = "end" : c.textAnchor === "end" && (x.textAnchor = "start")), m.plotDataLabelsText({
                            x: a,
                            y: r,
                            text: b,
                            i,
                            j: o,
                            parent: g,
                            dataLabelsConfig: x,
                            alwaysDrawDataLabel: !0,
                            offsetCorrection: !0
                        });
                    }
                    return g;
                }
            },
            {
                key: "drawTotalDataLabels",
                value: function(e) {
                    var a = e.x, r = e.y, n = e.val, i = e.realIndex, o = e.textAnchor, s = e.barTotalDataLabelsConfig;
                    this.w;
                    var l, u = new he(this.barCtx.ctx);
                    return s.enabled && a !== void 0 && r !== void 0 && this.barCtx.lastActiveBarSerieIndex === i && (l = u.drawText({
                        x: a,
                        y: r,
                        foreColor: s.style.color,
                        text: n,
                        textAnchor: o,
                        fontFamily: s.style.fontFamily,
                        fontSize: s.style.fontSize,
                        fontWeight: s.style.fontWeight
                    })), l;
                }
            }
        ]), t;
    }(), FI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.barCtx = e;
        }
        return De(t, [
            {
                key: "initVariables",
                value: function(e) {
                    var a = this.w;
                    this.barCtx.series = e, this.barCtx.totalItems = 0, this.barCtx.seriesLen = 0, this.barCtx.visibleI = -1, this.barCtx.visibleItems = 1;
                    for(var r = 0; r < e.length; r++)if (e[r].length > 0 && (this.barCtx.seriesLen = this.barCtx.seriesLen + 1, this.barCtx.totalItems += e[r].length), a.globals.isXNumeric) for(var n = 0; n < e[r].length; n++)a.globals.seriesX[r][n] > a.globals.minX && a.globals.seriesX[r][n] < a.globals.maxX && this.barCtx.visibleItems++;
                    else this.barCtx.visibleItems = a.globals.dataPoints;
                    this.arrBorderRadius = this.createBorderRadiusArr(a.globals.series), V.isSafari() && (this.arrBorderRadius = this.arrBorderRadius.map(function(i) {
                        return i.map(function(o) {
                            return "none";
                        });
                    })), this.barCtx.seriesLen === 0 && (this.barCtx.seriesLen = 1), this.barCtx.zeroSerieses = [], a.globals.comboCharts || this.checkZeroSeries({
                        series: e
                    });
                }
            },
            {
                key: "initialPositions",
                value: function(e) {
                    var a, r, n, i, o, s, l, u, c = this.w, d = c.globals.dataPoints;
                    this.barCtx.isRangeBar && (d = c.globals.labels.length);
                    var h = this.barCtx.seriesLen;
                    if (c.config.plotOptions.bar.rangeBarGroupRows && (h = 1), this.barCtx.isHorizontal) o = (n = c.globals.gridHeight / d) / h, c.globals.isXNumeric && (o = (n = c.globals.gridHeight / this.barCtx.totalItems) / this.barCtx.seriesLen), o = o * parseInt(this.barCtx.barOptions.barHeight, 10) / 100, String(this.barCtx.barOptions.barHeight).indexOf("%") === -1 && (o = parseInt(this.barCtx.barOptions.barHeight, 10)), u = this.barCtx.baseLineInvertedY + c.globals.padHorizontal + (this.barCtx.isReversed ? c.globals.gridWidth : 0) - (this.barCtx.isReversed ? 2 * this.barCtx.baseLineInvertedY : 0), this.barCtx.isFunnel && (u = c.globals.gridWidth / 2), r = (n - o * this.barCtx.seriesLen) / 2;
                    else {
                        if (i = c.globals.gridWidth / this.barCtx.visibleItems, c.config.xaxis.convertedCatToNumeric && (i = c.globals.gridWidth / c.globals.dataPoints), s = i / h * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100, c.globals.isXNumeric) {
                            var m = this.barCtx.xRatio;
                            c.globals.minXDiff && c.globals.minXDiff !== .5 && c.globals.minXDiff / m > 0 && (i = c.globals.minXDiff / m), (s = i / h * parseInt(this.barCtx.barOptions.columnWidth, 10) / 100) < 1 && (s = 1);
                        }
                        String(this.barCtx.barOptions.columnWidth).indexOf("%") === -1 && (s = parseInt(this.barCtx.barOptions.columnWidth, 10)), l = c.globals.gridHeight - this.barCtx.baseLineY[this.barCtx.translationsIndex] - (this.barCtx.isReversed ? c.globals.gridHeight : 0) + (this.barCtx.isReversed ? 2 * this.barCtx.baseLineY[this.barCtx.translationsIndex] : 0), c.globals.isXNumeric ? a = this.barCtx.getBarXForNumericXAxis({
                            x: a,
                            j: 0,
                            realIndex: e,
                            barWidth: s
                        }).x : a = c.globals.padHorizontal + V.noExponents(i - s * this.barCtx.seriesLen) / 2;
                    }
                    return c.globals.barHeight = o, c.globals.barWidth = s, {
                        x: a,
                        y: r,
                        yDivision: n,
                        xDivision: i,
                        barHeight: o,
                        barWidth: s,
                        zeroH: l,
                        zeroW: u
                    };
                }
            },
            {
                key: "initializeStackedPrevVars",
                value: function(e) {
                    e.w.globals.seriesGroups.forEach(function(a) {
                        e[a] || (e[a] = {}), e[a].prevY = [], e[a].prevX = [], e[a].prevYF = [], e[a].prevXF = [], e[a].prevYVal = [], e[a].prevXVal = [];
                    });
                }
            },
            {
                key: "initializeStackedXYVars",
                value: function(e) {
                    e.w.globals.seriesGroups.forEach(function(a) {
                        e[a] || (e[a] = {}), e[a].xArrj = [], e[a].xArrjF = [], e[a].xArrjVal = [], e[a].yArrj = [], e[a].yArrjF = [], e[a].yArrjVal = [];
                    });
                }
            },
            {
                key: "getPathFillColor",
                value: function(e, a, r, n) {
                    var i, o, s, l, u = this.w, c = this.barCtx.ctx.fill, d = null, h = this.barCtx.barOptions.distributed ? r : a, m = !1;
                    return this.barCtx.barOptions.colors.ranges.length > 0 && this.barCtx.barOptions.colors.ranges.map(function(f) {
                        e[a][r] >= f.from && e[a][r] <= f.to && (d = f.color, m = !0);
                    }), {
                        color: c.fillPath({
                            seriesNumber: this.barCtx.barOptions.distributed ? h : n,
                            dataPointIndex: r,
                            color: d,
                            value: e[a][r],
                            fillConfig: (i = u.config.series[a].data[r]) === null || i === void 0 ? void 0 : i.fill,
                            fillType: (o = u.config.series[a].data[r]) !== null && o !== void 0 && (s = o.fill) !== null && s !== void 0 && s.type ? (l = u.config.series[a].data[r]) === null || l === void 0 ? void 0 : l.fill.type : Array.isArray(u.config.fill.type) ? u.config.fill.type[n] : u.config.fill.type
                        }),
                        useRangeColor: m
                    };
                }
            },
            {
                key: "getStrokeWidth",
                value: function(e, a, r) {
                    var n = 0, i = this.w;
                    return this.barCtx.series[e][a] === void 0 || this.barCtx.series[e][a] === null ? this.barCtx.isNullValue = !0 : this.barCtx.isNullValue = !1, i.config.stroke.show && (this.barCtx.isNullValue || (n = Array.isArray(this.barCtx.strokeWidth) ? this.barCtx.strokeWidth[r] : this.barCtx.strokeWidth)), n;
                }
            },
            {
                key: "createBorderRadiusArr",
                value: function(e) {
                    var a, r = this.w, n = !this.w.config.chart.stacked || r.config.plotOptions.bar.borderRadius <= 0, i = e.length, o = 0 | ((a = e[0]) === null || a === void 0 ? void 0 : a.length), s = Array.from({
                        length: i
                    }, function() {
                        return Array(o).fill(n ? "top" : "none");
                    });
                    if (n) return s;
                    for(var l = 0; l < o; l++){
                        for(var u = [], c = [], d = 0, h = 0; h < i; h++){
                            var m = e[h][l];
                            m > 0 ? (u.push(h), d++) : m < 0 && (c.push(h), d++);
                        }
                        if (u.length > 0 && c.length === 0) if (u.length === 1) s[u[0]][l] = "both";
                        else {
                            var f, p = u[0], g = u[u.length - 1], v = ro(u);
                            try {
                                for(v.s(); !(f = v.n()).done;){
                                    var b = f.value;
                                    s[b][l] = b === p ? "bottom" : b === g ? "top" : "none";
                                }
                            } catch (R) {
                                v.e(R);
                            } finally{
                                v.f();
                            }
                        }
                        else if (c.length > 0 && u.length === 0) if (c.length === 1) s[c[0]][l] = "both";
                        else {
                            var k, S = Math.max.apply(Math, c), x = Math.min.apply(Math, c), C = ro(c);
                            try {
                                for(C.s(); !(k = C.n()).done;){
                                    var w = k.value;
                                    s[w][l] = w === S ? "bottom" : w === x ? "top" : "none";
                                }
                            } catch (R) {
                                C.e(R);
                            } finally{
                                C.f();
                            }
                        }
                        else if (u.length > 0 && c.length > 0) {
                            var F, D = u[u.length - 1], _ = ro(u);
                            try {
                                for(_.s(); !(F = _.n()).done;){
                                    var A = F.value;
                                    s[A][l] = A === D ? "top" : "none";
                                }
                            } catch (R) {
                                _.e(R);
                            } finally{
                                _.f();
                            }
                            var E, B = Math.max.apply(Math, c), P = ro(c);
                            try {
                                for(P.s(); !(E = P.n()).done;){
                                    var M = E.value;
                                    s[M][l] = M === B ? "bottom" : "none";
                                }
                            } catch (R) {
                                P.e(R);
                            } finally{
                                P.f();
                            }
                        } else d === 1 && (s[u[0] || c[0]][l] = "both");
                    }
                    return s;
                }
            },
            {
                key: "barBackground",
                value: function(e) {
                    var a = e.j, r = e.i, n = e.x1, i = e.x2, o = e.y1, s = e.y2, l = e.elSeries, u = this.w, c = new he(this.barCtx.ctx), d = new nr(this.barCtx.ctx).getActiveConfigSeriesIndex();
                    if (this.barCtx.barOptions.colors.backgroundBarColors.length > 0 && d === r) {
                        a >= this.barCtx.barOptions.colors.backgroundBarColors.length && (a %= this.barCtx.barOptions.colors.backgroundBarColors.length);
                        var h = this.barCtx.barOptions.colors.backgroundBarColors[a], m = c.drawRect(n !== void 0 ? n : 0, o !== void 0 ? o : 0, i !== void 0 ? i : u.globals.gridWidth, s !== void 0 ? s : u.globals.gridHeight, this.barCtx.barOptions.colors.backgroundBarRadius, h, this.barCtx.barOptions.colors.backgroundBarOpacity);
                        l.add(m), m.node.classList.add("apexcharts-backgroundBar");
                    }
                }
            },
            {
                key: "getColumnPaths",
                value: function(e) {
                    var a, r = e.barWidth, n = e.barXPosition, i = e.y1, o = e.y2, s = e.strokeWidth, l = e.isReversed, u = e.series, c = e.seriesGroup, d = e.realIndex, h = e.i, m = e.j, f = e.w, p = new he(this.barCtx.ctx);
                    (s = Array.isArray(s) ? s[d] : s) || (s = 0);
                    var g = r, v = n;
                    (a = f.config.series[d].data[m]) !== null && a !== void 0 && a.columnWidthOffset && (v = n - f.config.series[d].data[m].columnWidthOffset / 2, g = r + f.config.series[d].data[m].columnWidthOffset);
                    var b = s / 2, k = v + b, S = v + g - b, x = (u[h][m] >= 0 ? 1 : -1) * (l ? -1 : 1);
                    i += .001 - b * x, o += .001 + b * x;
                    var C = p.move(k, i), w = p.move(k, i), F = p.line(S, i);
                    if (f.globals.previousPaths.length > 0 && (w = this.barCtx.getPreviousPath(d, m, !1)), C = C + p.line(k, o) + p.line(S, o) + F + (f.config.plotOptions.bar.borderRadiusApplication === "around" || this.arrBorderRadius[d][m] === "both" ? " Z" : " z"), w = w + p.line(k, i) + F + F + F + F + F + p.line(k, i) + (f.config.plotOptions.bar.borderRadiusApplication === "around" || this.arrBorderRadius[d][m] === "both" ? " Z" : " z"), this.arrBorderRadius[d][m] !== "none" && (C = p.roundPathCorners(C, f.config.plotOptions.bar.borderRadius)), f.config.chart.stacked) {
                        var D = this.barCtx;
                        (D = this.barCtx[c]).yArrj.push(o - b * x), D.yArrjF.push(Math.abs(i - o + s * x)), D.yArrjVal.push(this.barCtx.series[h][m]);
                    }
                    return {
                        pathTo: C,
                        pathFrom: w
                    };
                }
            },
            {
                key: "getBarpaths",
                value: function(e) {
                    var a, r = e.barYPosition, n = e.barHeight, i = e.x1, o = e.x2, s = e.strokeWidth, l = e.isReversed, u = e.series, c = e.seriesGroup, d = e.realIndex, h = e.i, m = e.j, f = e.w, p = new he(this.barCtx.ctx);
                    (s = Array.isArray(s) ? s[d] : s) || (s = 0);
                    var g = r, v = n;
                    (a = f.config.series[d].data[m]) !== null && a !== void 0 && a.barHeightOffset && (g = r - f.config.series[d].data[m].barHeightOffset / 2, v = n + f.config.series[d].data[m].barHeightOffset);
                    var b = s / 2, k = g + b, S = g + v - b, x = (u[h][m] >= 0 ? 1 : -1) * (l ? -1 : 1);
                    i += .001 + b * x, o += .001 - b * x;
                    var C = p.move(i, k), w = p.move(i, k);
                    f.globals.previousPaths.length > 0 && (w = this.barCtx.getPreviousPath(d, m, !1));
                    var F = p.line(i, S);
                    if (C = C + p.line(o, k) + p.line(o, S) + F + (f.config.plotOptions.bar.borderRadiusApplication === "around" || this.arrBorderRadius[d][m] === "both" ? " Z" : " z"), w = w + p.line(i, k) + F + F + F + F + F + p.line(i, k) + (f.config.plotOptions.bar.borderRadiusApplication === "around" || this.arrBorderRadius[d][m] === "both" ? " Z" : " z"), this.arrBorderRadius[d][m] !== "none" && (C = p.roundPathCorners(C, f.config.plotOptions.bar.borderRadius)), f.config.chart.stacked) {
                        var D = this.barCtx;
                        (D = this.barCtx[c]).xArrj.push(o + b * x), D.xArrjF.push(Math.abs(i - o - s * x)), D.xArrjVal.push(this.barCtx.series[h][m]);
                    }
                    return {
                        pathTo: C,
                        pathFrom: w
                    };
                }
            },
            {
                key: "checkZeroSeries",
                value: function(e) {
                    for(var a = e.series, r = this.w, n = 0; n < a.length; n++){
                        for(var i = 0, o = 0; o < a[r.globals.maxValsInArrayIndex].length; o++)i += a[n][o];
                        i === 0 && this.barCtx.zeroSerieses.push(n);
                    }
                }
            },
            {
                key: "getXForValue",
                value: function(e, a) {
                    var r = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2] ? a : null;
                    return e != null && (r = a + e / this.barCtx.invertedYRatio - 2 * (this.barCtx.isReversed ? e / this.barCtx.invertedYRatio : 0)), r;
                }
            },
            {
                key: "getYForValue",
                value: function(e, a, r) {
                    var n = !(arguments.length > 3 && arguments[3] !== void 0) || arguments[3] ? a : null;
                    return e != null && (n = a - e / this.barCtx.yRatio[r] + 2 * (this.barCtx.isReversed ? e / this.barCtx.yRatio[r] : 0)), n;
                }
            },
            {
                key: "getGoalValues",
                value: function(e, a, r, n, i, o) {
                    var s = this, l = this.w, u = [], c = function(m, f) {
                        var p;
                        u.push((Xs(p = {}, e, e === "x" ? s.getXForValue(m, a, !1) : s.getYForValue(m, r, o, !1)), Xs(p, "attrs", f), p));
                    };
                    if (l.globals.seriesGoals[n] && l.globals.seriesGoals[n][i] && Array.isArray(l.globals.seriesGoals[n][i]) && l.globals.seriesGoals[n][i].forEach(function(m) {
                        c(m.value, m);
                    }), this.barCtx.barOptions.isDumbbell && l.globals.seriesRange.length) {
                        var d = this.barCtx.barOptions.dumbbellColors ? this.barCtx.barOptions.dumbbellColors : l.globals.colors, h = {
                            strokeHeight: e === "x" ? 0 : l.globals.markers.size[n],
                            strokeWidth: e === "x" ? l.globals.markers.size[n] : 0,
                            strokeDashArray: 0,
                            strokeLineCap: "round",
                            strokeColor: Array.isArray(d[n]) ? d[n][0] : d[n]
                        };
                        c(l.globals.seriesRangeStart[n][i], h), c(l.globals.seriesRangeEnd[n][i], ye(ye({}, h), {}, {
                            strokeColor: Array.isArray(d[n]) ? d[n][1] : d[n]
                        }));
                    }
                    return u;
                }
            },
            {
                key: "drawGoalLine",
                value: function(e) {
                    var a = e.barXPosition, r = e.barYPosition, n = e.goalX, i = e.goalY, o = e.barWidth, s = e.barHeight, l = new he(this.barCtx.ctx), u = l.group({
                        className: "apexcharts-bar-goals-groups"
                    });
                    u.node.classList.add("apexcharts-element-hidden"), this.barCtx.w.globals.delayedElements.push({
                        el: u.node
                    }), u.attr("clip-path", "url(#gridRectMarkerMask".concat(this.barCtx.w.globals.cuid, ")"));
                    var c = null;
                    return this.barCtx.isHorizontal ? Array.isArray(n) && n.forEach(function(d) {
                        if (d.x >= -1 && d.x <= l.w.globals.gridWidth + 1) {
                            var h = d.attrs.strokeHeight !== void 0 ? d.attrs.strokeHeight : s / 2, m = r + h + s / 2;
                            c = l.drawLine(d.x, m - 2 * h, d.x, m, d.attrs.strokeColor ? d.attrs.strokeColor : void 0, d.attrs.strokeDashArray, d.attrs.strokeWidth ? d.attrs.strokeWidth : 2, d.attrs.strokeLineCap), u.add(c);
                        }
                    }) : Array.isArray(i) && i.forEach(function(d) {
                        if (d.y >= -1 && d.y <= l.w.globals.gridHeight + 1) {
                            var h = d.attrs.strokeWidth !== void 0 ? d.attrs.strokeWidth : o / 2, m = a + h + o / 2;
                            c = l.drawLine(m - 2 * h, d.y, m, d.y, d.attrs.strokeColor ? d.attrs.strokeColor : void 0, d.attrs.strokeDashArray, d.attrs.strokeHeight ? d.attrs.strokeHeight : 2, d.attrs.strokeLineCap), u.add(c);
                        }
                    }), u;
                }
            },
            {
                key: "drawBarShadow",
                value: function(e) {
                    var a = e.prevPaths, r = e.currPaths, n = e.color, i = this.w, o = a.x, s = a.x1, l = a.barYPosition, u = r.x, c = r.x1, d = r.barYPosition, h = l + r.barHeight, m = new he(this.barCtx.ctx), f = new V, p = m.move(s, h) + m.line(o, h) + m.line(u, d) + m.line(c, d) + m.line(s, h) + (i.config.plotOptions.bar.borderRadiusApplication === "around" || this.arrBorderRadius[realIndex][j] === "both" ? " Z" : " z");
                    return m.drawPath({
                        d: p,
                        fill: f.shadeColor(.5, V.rgb2hex(n)),
                        stroke: "none",
                        strokeWidth: 0,
                        fillOpacity: 1,
                        classes: "apexcharts-bar-shadow apexcharts-decoration-element"
                    });
                }
            },
            {
                key: "getZeroValueEncounters",
                value: function(e) {
                    var a, r = e.i, n = e.j, i = this.w, o = 0, s = 0;
                    return (i.config.plotOptions.bar.horizontal ? i.globals.series.map(function(l, u) {
                        return u;
                    }) : ((a = i.globals.columnSeries) === null || a === void 0 ? void 0 : a.i.map(function(l) {
                        return l;
                    })) || []).forEach(function(l) {
                        var u = i.globals.seriesPercent[l][n];
                        u && o++, l < r && u === 0 && s++;
                    }), {
                        nonZeroColumns: o,
                        zeroEncounters: s
                    };
                }
            },
            {
                key: "getGroupIndex",
                value: function(e) {
                    var a = this.w, r = a.globals.seriesGroups.findIndex(function(o) {
                        return o.indexOf(a.globals.seriesNames[e]) > -1;
                    }), n = this.barCtx.columnGroupIndices, i = n.indexOf(r);
                    return i < 0 && (n.push(r), i = n.length - 1), {
                        groupIndex: r,
                        columnGroupIndex: i
                    };
                }
            }
        ]), t;
    }(), Di = function() {
        function t(e, a) {
            Ae(this, t), this.ctx = e, this.w = e.w;
            var r = this.w;
            this.barOptions = r.config.plotOptions.bar, this.isHorizontal = this.barOptions.horizontal, this.strokeWidth = r.config.stroke.width, this.isNullValue = !1, this.isRangeBar = r.globals.seriesRange.length && this.isHorizontal, this.isVerticalGroupedRangeBar = !r.globals.isBarHorizontal && r.globals.seriesRange.length && r.config.plotOptions.bar.rangeBarGroupRows, this.isFunnel = this.barOptions.isFunnel, this.xyRatios = a, this.xyRatios !== null && (this.xRatio = a.xRatio, this.yRatio = a.yRatio, this.invertedXRatio = a.invertedXRatio, this.invertedYRatio = a.invertedYRatio, this.baseLineY = a.baseLineY, this.baseLineInvertedY = a.baseLineInvertedY), this.yaxisIndex = 0, this.translationsIndex = 0, this.seriesLen = 0, this.pathArr = [];
            var n = new nr(this.ctx);
            this.lastActiveBarSerieIndex = n.getActiveConfigSeriesIndex("desc", [
                "bar",
                "column"
            ]), this.columnGroupIndices = [];
            var i = n.getBarSeriesIndices(), o = new Ht(this.ctx);
            this.stackedSeriesTotals = o.getStackedSeriesTotals(this.w.config.series.map(function(s, l) {
                return i.indexOf(l) === -1 ? l : -1;
            }).filter(function(s) {
                return s !== -1;
            })), this.barHelpers = new FI(this);
        }
        return De(t, [
            {
                key: "draw",
                value: function(e, a) {
                    var r = this.w, n = new he(this.ctx), i = new Ht(this.ctx, r);
                    e = i.getLogSeries(e), this.series = e, this.yRatio = i.getLogYRatios(this.yRatio), this.barHelpers.initVariables(e);
                    var o = n.group({
                        class: "apexcharts-bar-series apexcharts-plot-series"
                    });
                    r.config.dataLabels.enabled && this.totalItems > this.barOptions.dataLabels.maxItems && console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering - ApexCharts");
                    for(var s = 0, l = 0; s < e.length; s++, l++){
                        var u, c, d, h, m = void 0, f = void 0, p = [], g = [], v = r.globals.comboCharts ? a[s] : s, b = this.barHelpers.getGroupIndex(v).columnGroupIndex, k = n.group({
                            class: "apexcharts-series",
                            rel: s + 1,
                            seriesName: V.escapeString(r.globals.seriesNames[v]),
                            "data:realIndex": v
                        });
                        this.ctx.series.addCollapsedClassToSeries(k, v), e[s].length > 0 && (this.visibleI = this.visibleI + 1);
                        var S = 0, x = 0;
                        this.yRatio.length > 1 && (this.yaxisIndex = r.globals.seriesYAxisReverseMap[v], this.translationsIndex = v);
                        var C = this.translationsIndex;
                        this.isReversed = r.config.yaxis[this.yaxisIndex] && r.config.yaxis[this.yaxisIndex].reversed;
                        var w = this.barHelpers.initialPositions(v);
                        f = w.y, S = w.barHeight, c = w.yDivision, h = w.zeroW, m = w.x, x = w.barWidth, u = w.xDivision, d = w.zeroH, this.isHorizontal || g.push(m + x / 2);
                        var F = n.group({
                            class: "apexcharts-datalabels",
                            "data:realIndex": v
                        });
                        r.globals.delayedElements.push({
                            el: F.node
                        }), F.node.classList.add("apexcharts-element-hidden");
                        var D = n.group({
                            class: "apexcharts-bar-goals-markers"
                        }), _ = n.group({
                            class: "apexcharts-bar-shadows"
                        });
                        r.globals.delayedElements.push({
                            el: _.node
                        }), _.node.classList.add("apexcharts-element-hidden");
                        for(var A = 0; A < e[s].length; A++){
                            var E = this.barHelpers.getStrokeWidth(s, A, v), B = null, P = {
                                indexes: {
                                    i: s,
                                    j: A,
                                    realIndex: v,
                                    translationsIndex: C,
                                    bc: l
                                },
                                x: m,
                                y: f,
                                strokeWidth: E,
                                elSeries: k
                            };
                            this.isHorizontal ? (B = this.drawBarPaths(ye(ye({}, P), {}, {
                                barHeight: S,
                                zeroW: h,
                                yDivision: c
                            })), x = this.series[s][A] / this.invertedYRatio) : (B = this.drawColumnPaths(ye(ye({}, P), {}, {
                                xDivision: u,
                                barWidth: x,
                                zeroH: d
                            })), S = this.series[s][A] / this.yRatio[C]);
                            var M = this.barHelpers.getPathFillColor(e, s, A, v);
                            if (this.isFunnel && this.barOptions.isFunnel3d && this.pathArr.length && A > 0) {
                                var R, z = this.barHelpers.drawBarShadow({
                                    color: typeof M.color == "string" && ((R = M.color) === null || R === void 0 ? void 0 : R.indexOf("url")) === -1 ? M.color : V.hexToRgba(r.globals.colors[s]),
                                    prevPaths: this.pathArr[this.pathArr.length - 1],
                                    currPaths: B
                                });
                                _.add(z), r.config.chart.dropShadow.enabled && new ca(this.ctx).dropShadow(z, r.config.chart.dropShadow, v);
                            }
                            this.pathArr.push(B);
                            var N = this.barHelpers.drawGoalLine({
                                barXPosition: B.barXPosition,
                                barYPosition: B.barYPosition,
                                goalX: B.goalX,
                                goalY: B.goalY,
                                barHeight: S,
                                barWidth: x
                            });
                            N && D.add(N), f = B.y, m = B.x, A > 0 && g.push(m + x / 2), p.push(f), this.renderSeries(ye(ye({
                                realIndex: v,
                                pathFill: M.color
                            }, M.useRangeColor ? {
                                lineFill: M.color
                            } : {}), {}, {
                                j: A,
                                i: s,
                                columnGroupIndex: b,
                                pathFrom: B.pathFrom,
                                pathTo: B.pathTo,
                                strokeWidth: E,
                                elSeries: k,
                                x: m,
                                y: f,
                                series: e,
                                barHeight: Math.abs(B.barHeight ? B.barHeight : S),
                                barWidth: Math.abs(B.barWidth ? B.barWidth : x),
                                elDataLabelsWrap: F,
                                elGoalsMarkers: D,
                                elBarShadows: _,
                                visibleSeries: this.visibleI,
                                type: "bar"
                            }));
                        }
                        r.globals.seriesXvalues[v] = g, r.globals.seriesYvalues[v] = p, o.add(k);
                    }
                    return o;
                }
            },
            {
                key: "renderSeries",
                value: function(e) {
                    var a = e.realIndex, r = e.pathFill, n = e.lineFill, i = e.j, o = e.i, s = e.columnGroupIndex, l = e.pathFrom, u = e.pathTo, c = e.strokeWidth, d = e.elSeries, h = e.x, m = e.y, f = e.y1, p = e.y2, g = e.series, v = e.barHeight, b = e.barWidth, k = e.barXPosition, S = e.barYPosition, x = e.elDataLabelsWrap, C = e.elGoalsMarkers, w = e.elBarShadows, F = e.visibleSeries, D = e.type, _ = e.classes, A = this.w, E = new he(this.ctx), B = !1;
                    if (!n) {
                        var P = typeof A.globals.stroke.colors[a] == "function" ? function(H) {
                            var I, L = A.config.stroke.colors;
                            return Array.isArray(L) && L.length > 0 && ((I = L[H]) || (I = ""), typeof I == "function") ? I({
                                value: A.globals.series[H][i],
                                dataPointIndex: i,
                                w: A
                            }) : I;
                        }(a) : A.globals.stroke.colors[a];
                        n = this.barOptions.distributed ? A.globals.stroke.colors[i] : P;
                    }
                    var M = new bI(this).handleBarDataLabels({
                        x: h,
                        y: m,
                        y1: f,
                        y2: p,
                        i: o,
                        j: i,
                        series: g,
                        realIndex: a,
                        columnGroupIndex: s,
                        barHeight: v,
                        barWidth: b,
                        barXPosition: k,
                        barYPosition: S,
                        visibleSeries: F
                    });
                    A.globals.isBarHorizontal || (M.dataLabelsPos.dataLabelsX + b < 0 || M.dataLabelsPos.dataLabelsX - b > A.globals.gridWidth) && (B = !0), A.config.series[o].data[i] && A.config.series[o].data[i].strokeColor && (n = A.config.series[o].data[i].strokeColor), this.isNullValue && (r = "none");
                    var R = i / A.config.chart.animations.animateGradually.delay * (A.config.chart.animations.speed / A.globals.dataPoints) / 2.4;
                    if (!B) {
                        var z = E.renderPaths({
                            i: o,
                            j: i,
                            realIndex: a,
                            pathFrom: l,
                            pathTo: u,
                            stroke: n,
                            strokeWidth: c,
                            strokeLineCap: A.config.stroke.lineCap,
                            fill: r,
                            animationDelay: R,
                            initialSpeed: A.config.chart.animations.speed,
                            dataChangeSpeed: A.config.chart.animations.dynamicAnimation.speed,
                            className: "apexcharts-".concat(D, "-area ").concat(_),
                            chartType: D
                        });
                        z.attr("clip-path", "url(#gridRectBarMask".concat(A.globals.cuid, ")"));
                        var N = A.config.forecastDataPoints;
                        N.count > 0 && i >= A.globals.dataPoints - N.count && (z.node.setAttribute("stroke-dasharray", N.dashArray), z.node.setAttribute("stroke-width", N.strokeWidth), z.node.setAttribute("fill-opacity", N.fillOpacity)), f !== void 0 && p !== void 0 && (z.attr("data-range-y1", f), z.attr("data-range-y2", p)), new ca(this.ctx).setSelectionFilter(z, a, i), d.add(z), z.attr({
                            cy: M.dataLabelsPos.bcy,
                            cx: M.dataLabelsPos.bcx,
                            j: i,
                            val: A.globals.series[o][i],
                            barHeight: v,
                            barWidth: b
                        }), M.dataLabels !== null && x.add(M.dataLabels), M.totalDataLabels && x.add(M.totalDataLabels), d.add(x), C && d.add(C), w && d.add(w);
                    }
                    return d;
                }
            },
            {
                key: "drawBarPaths",
                value: function(e) {
                    var a, r = e.indexes, n = e.barHeight, i = e.strokeWidth, o = e.zeroW, s = e.x, l = e.y, u = e.yDivision, c = e.elSeries, d = this.w, h = r.i, m = r.j;
                    if (d.globals.isXNumeric) a = (l = (d.globals.seriesX[h][m] - d.globals.minX) / this.invertedXRatio - n) + n * this.visibleI;
                    else if (d.config.plotOptions.bar.hideZeroBarsWhenGrouped) {
                        var f = this.barHelpers.getZeroValueEncounters({
                            i: h,
                            j: m
                        }), p = f.nonZeroColumns, g = f.zeroEncounters;
                        p > 0 && (n = this.seriesLen * n / p), a = l + n * this.visibleI, a -= n * g;
                    } else a = l + n * this.visibleI;
                    this.isFunnel && (o -= (this.barHelpers.getXForValue(this.series[h][m], o) - o) / 2), s = this.barHelpers.getXForValue(this.series[h][m], o);
                    var v = this.barHelpers.getBarpaths({
                        barYPosition: a,
                        barHeight: n,
                        x1: o,
                        x2: s,
                        strokeWidth: i,
                        isReversed: this.isReversed,
                        series: this.series,
                        realIndex: r.realIndex,
                        i: h,
                        j: m,
                        w: d
                    });
                    return d.globals.isXNumeric || (l += u), this.barHelpers.barBackground({
                        j: m,
                        i: h,
                        y1: a - n * this.visibleI,
                        y2: n * this.seriesLen,
                        elSeries: c
                    }), {
                        pathTo: v.pathTo,
                        pathFrom: v.pathFrom,
                        x1: o,
                        x: s,
                        y: l,
                        goalX: this.barHelpers.getGoalValues("x", o, null, h, m),
                        barYPosition: a,
                        barHeight: n
                    };
                }
            },
            {
                key: "drawColumnPaths",
                value: function(e) {
                    var a, r = e.indexes, n = e.x, i = e.y, o = e.xDivision, s = e.barWidth, l = e.zeroH, u = e.strokeWidth, c = e.elSeries, d = this.w, h = r.realIndex, m = r.translationsIndex, f = r.i, p = r.j, g = r.bc;
                    if (d.globals.isXNumeric) {
                        var v = this.getBarXForNumericXAxis({
                            x: n,
                            j: p,
                            realIndex: h,
                            barWidth: s
                        });
                        n = v.x, a = v.barXPosition;
                    } else if (d.config.plotOptions.bar.hideZeroBarsWhenGrouped) {
                        var b = this.barHelpers.getZeroValueEncounters({
                            i: f,
                            j: p
                        }), k = b.nonZeroColumns, S = b.zeroEncounters;
                        k > 0 && (s = this.seriesLen * s / k), a = n + s * this.visibleI, a -= s * S;
                    } else a = n + s * this.visibleI;
                    i = this.barHelpers.getYForValue(this.series[f][p], l, m);
                    var x = this.barHelpers.getColumnPaths({
                        barXPosition: a,
                        barWidth: s,
                        y1: l,
                        y2: i,
                        strokeWidth: u,
                        isReversed: this.isReversed,
                        series: this.series,
                        realIndex: h,
                        i: f,
                        j: p,
                        w: d
                    });
                    return d.globals.isXNumeric || (n += o), this.barHelpers.barBackground({
                        bc: g,
                        j: p,
                        i: f,
                        x1: a - u / 2 - s * this.visibleI,
                        x2: s * this.seriesLen + u / 2,
                        elSeries: c
                    }), {
                        pathTo: x.pathTo,
                        pathFrom: x.pathFrom,
                        x: n,
                        y: i,
                        goalY: this.barHelpers.getGoalValues("y", null, l, f, p, m),
                        barXPosition: a,
                        barWidth: s
                    };
                }
            },
            {
                key: "getBarXForNumericXAxis",
                value: function(e) {
                    var a = e.x, r = e.barWidth, n = e.realIndex, i = e.j, o = this.w, s = n;
                    return o.globals.seriesX[n].length || (s = o.globals.maxValsInArrayIndex), V.isNumber(o.globals.seriesX[s][i]) && (a = (o.globals.seriesX[s][i] - o.globals.minX) / this.xRatio - r * this.seriesLen / 2), {
                        barXPosition: a + r * this.visibleI,
                        x: a
                    };
                }
            },
            {
                key: "getPreviousPath",
                value: function(e, a) {
                    for(var r = this.w, n = "M 0 0", i = 0; i < r.globals.previousPaths.length; i++){
                        var o = r.globals.previousPaths[i];
                        o.paths && o.paths.length > 0 && parseInt(o.realIndex, 10) === parseInt(e, 10) && r.globals.previousPaths[i].paths[a] !== void 0 && (n = r.globals.previousPaths[i].paths[a].d);
                    }
                    return n;
                }
            }
        ]), t;
    }(), fy = function(t) {
        Zo(a, Di);
        var e = Jo(a);
        function a() {
            return Ae(this, a), e.apply(this, arguments);
        }
        return De(a, [
            {
                key: "draw",
                value: function(r, n) {
                    var i = this, o = this.w;
                    this.graphics = new he(this.ctx), this.bar = new Di(this.ctx, this.xyRatios);
                    var s = new Ht(this.ctx, o);
                    r = s.getLogSeries(r), this.yRatio = s.getLogYRatios(this.yRatio), this.barHelpers.initVariables(r), o.config.chart.stackType === "100%" && (r = o.globals.comboCharts ? n.map(function(f) {
                        return o.globals.seriesPercent[f];
                    }) : o.globals.seriesPercent.slice()), this.series = r, this.barHelpers.initializeStackedPrevVars(this);
                    for(var l = this.graphics.group({
                        class: "apexcharts-bar-series apexcharts-plot-series"
                    }), u = 0, c = 0, d = function(f, p) {
                        var g = void 0, v = void 0, b = void 0, k = void 0, S = o.globals.comboCharts ? n[f] : f, x = i.barHelpers.getGroupIndex(S), C = x.groupIndex, w = x.columnGroupIndex;
                        i.groupCtx = i[o.globals.seriesGroups[C]];
                        var F = [], D = [], _ = 0;
                        i.yRatio.length > 1 && (i.yaxisIndex = o.globals.seriesYAxisReverseMap[S][0], _ = S), i.isReversed = o.config.yaxis[i.yaxisIndex] && o.config.yaxis[i.yaxisIndex].reversed;
                        var A = i.graphics.group({
                            class: "apexcharts-series",
                            seriesName: V.escapeString(o.globals.seriesNames[S]),
                            rel: f + 1,
                            "data:realIndex": S
                        });
                        i.ctx.series.addCollapsedClassToSeries(A, S);
                        var E = i.graphics.group({
                            class: "apexcharts-datalabels",
                            "data:realIndex": S
                        }), B = i.graphics.group({
                            class: "apexcharts-bar-goals-markers"
                        }), P = 0, M = 0, R = i.initialPositions(u, c, g, v, b, k, _);
                        c = R.y, P = R.barHeight, v = R.yDivision, k = R.zeroW, u = R.x, M = R.barWidth, g = R.xDivision, b = R.zeroH, o.globals.barHeight = P, o.globals.barWidth = M, i.barHelpers.initializeStackedXYVars(i), i.groupCtx.prevY.length === 1 && i.groupCtx.prevY[0].every(function(ue) {
                            return isNaN(ue);
                        }) && (i.groupCtx.prevY[0] = i.groupCtx.prevY[0].map(function() {
                            return b;
                        }), i.groupCtx.prevYF[0] = i.groupCtx.prevYF[0].map(function() {
                            return 0;
                        }));
                        for(var z = 0; z < o.globals.dataPoints; z++){
                            var N = i.barHelpers.getStrokeWidth(f, z, S), H = {
                                indexes: {
                                    i: f,
                                    j: z,
                                    realIndex: S,
                                    translationsIndex: _,
                                    bc: p
                                },
                                strokeWidth: N,
                                x: u,
                                y: c,
                                elSeries: A,
                                columnGroupIndex: w,
                                seriesGroup: o.globals.seriesGroups[C]
                            }, I = null;
                            i.isHorizontal ? (I = i.drawStackedBarPaths(ye(ye({}, H), {}, {
                                zeroW: k,
                                barHeight: P,
                                yDivision: v
                            })), M = i.series[f][z] / i.invertedYRatio) : (I = i.drawStackedColumnPaths(ye(ye({}, H), {}, {
                                xDivision: g,
                                barWidth: M,
                                zeroH: b
                            })), P = i.series[f][z] / i.yRatio[_]);
                            var L = i.barHelpers.drawGoalLine({
                                barXPosition: I.barXPosition,
                                barYPosition: I.barYPosition,
                                goalX: I.goalX,
                                goalY: I.goalY,
                                barHeight: P,
                                barWidth: M
                            });
                            L && B.add(L), c = I.y, u = I.x, F.push(u), D.push(c);
                            var G = i.barHelpers.getPathFillColor(r, f, z, S), q = "", X = o.globals.isBarHorizontal ? "apexcharts-flip-x" : "apexcharts-flip-y";
                            (i.barHelpers.arrBorderRadius[S][z] === "bottom" && o.globals.series[S][z] > 0 || i.barHelpers.arrBorderRadius[S][z] === "top" && o.globals.series[S][z] < 0) && (q = X), A = i.renderSeries(ye(ye({
                                realIndex: S,
                                pathFill: G.color
                            }, G.useRangeColor ? {
                                lineFill: G.color
                            } : {}), {}, {
                                j: z,
                                i: f,
                                columnGroupIndex: w,
                                pathFrom: I.pathFrom,
                                pathTo: I.pathTo,
                                strokeWidth: N,
                                elSeries: A,
                                x: u,
                                y: c,
                                series: r,
                                barHeight: P,
                                barWidth: M,
                                elDataLabelsWrap: E,
                                elGoalsMarkers: B,
                                type: "bar",
                                visibleSeries: w,
                                classes: q
                            }));
                        }
                        o.globals.seriesXvalues[S] = F, o.globals.seriesYvalues[S] = D, i.groupCtx.prevY.push(i.groupCtx.yArrj), i.groupCtx.prevYF.push(i.groupCtx.yArrjF), i.groupCtx.prevYVal.push(i.groupCtx.yArrjVal), i.groupCtx.prevX.push(i.groupCtx.xArrj), i.groupCtx.prevXF.push(i.groupCtx.xArrjF), i.groupCtx.prevXVal.push(i.groupCtx.xArrjVal), l.add(A);
                    }, h = 0, m = 0; h < r.length; h++, m++)d(h, m);
                    return l;
                }
            },
            {
                key: "initialPositions",
                value: function(r, n, i, o, s, l, u) {
                    var c, d, h = this.w;
                    if (this.isHorizontal) {
                        o = h.globals.gridHeight / h.globals.dataPoints;
                        var m = h.config.plotOptions.bar.barHeight;
                        c = String(m).indexOf("%") === -1 ? parseInt(m, 10) : o * parseInt(m, 10) / 100, l = h.globals.padHorizontal + (this.isReversed ? h.globals.gridWidth - this.baseLineInvertedY : this.baseLineInvertedY), n = (o - c) / 2;
                    } else {
                        d = i = h.globals.gridWidth / h.globals.dataPoints;
                        var f = h.config.plotOptions.bar.columnWidth;
                        h.globals.isXNumeric && h.globals.dataPoints > 1 ? d = (i = h.globals.minXDiff / this.xRatio) * parseInt(this.barOptions.columnWidth, 10) / 100 : String(f).indexOf("%") === -1 ? d = parseInt(f, 10) : d *= parseInt(f, 10) / 100, s = this.isReversed ? this.baseLineY[u] : h.globals.gridHeight - this.baseLineY[u], r = h.globals.padHorizontal + (i - d) / 2;
                    }
                    var p = h.globals.barGroups.length || 1;
                    return {
                        x: r,
                        y: n,
                        yDivision: o,
                        xDivision: i,
                        barHeight: c / p,
                        barWidth: d / p,
                        zeroH: s,
                        zeroW: l
                    };
                }
            },
            {
                key: "drawStackedBarPaths",
                value: function(r) {
                    for(var n, i = r.indexes, o = r.barHeight, s = r.strokeWidth, l = r.zeroW, u = r.x, c = r.y, d = r.columnGroupIndex, h = r.seriesGroup, m = r.yDivision, f = r.elSeries, p = this.w, g = c + d * o, v = i.i, b = i.j, k = i.realIndex, S = i.translationsIndex, x = 0, C = 0; C < this.groupCtx.prevXF.length; C++)x += this.groupCtx.prevXF[C][b];
                    var w = v;
                    if (p.config.series[k].name && (w = h.indexOf(p.config.series[k].name)), w > 0) {
                        var F = l;
                        this.groupCtx.prevXVal[w - 1][b] < 0 ? F = this.series[v][b] >= 0 ? this.groupCtx.prevX[w - 1][b] + x - 2 * (this.isReversed ? x : 0) : this.groupCtx.prevX[w - 1][b] : this.groupCtx.prevXVal[w - 1][b] >= 0 && (F = this.series[v][b] >= 0 ? this.groupCtx.prevX[w - 1][b] : this.groupCtx.prevX[w - 1][b] - x + 2 * (this.isReversed ? x : 0)), n = F;
                    } else n = l;
                    u = this.series[v][b] === null ? n : n + this.series[v][b] / this.invertedYRatio - 2 * (this.isReversed ? this.series[v][b] / this.invertedYRatio : 0);
                    var D = this.barHelpers.getBarpaths({
                        barYPosition: g,
                        barHeight: o,
                        x1: n,
                        x2: u,
                        strokeWidth: s,
                        isReversed: this.isReversed,
                        series: this.series,
                        realIndex: i.realIndex,
                        seriesGroup: h,
                        i: v,
                        j: b,
                        w: p
                    });
                    return this.barHelpers.barBackground({
                        j: b,
                        i: v,
                        y1: g,
                        y2: o,
                        elSeries: f
                    }), c += m, {
                        pathTo: D.pathTo,
                        pathFrom: D.pathFrom,
                        goalX: this.barHelpers.getGoalValues("x", l, null, v, b, S),
                        barXPosition: n,
                        barYPosition: g,
                        x: u,
                        y: c
                    };
                }
            },
            {
                key: "drawStackedColumnPaths",
                value: function(r) {
                    var n = r.indexes, i = r.x, o = r.y, s = r.xDivision, l = r.barWidth, u = r.zeroH, c = r.columnGroupIndex, d = r.seriesGroup, h = r.elSeries, m = this.w, f = n.i, p = n.j, g = n.bc, v = n.realIndex, b = n.translationsIndex;
                    if (m.globals.isXNumeric) {
                        var k = m.globals.seriesX[v][p];
                        k || (k = 0), i = (k - m.globals.minX) / this.xRatio - l / 2 * m.globals.barGroups.length;
                    }
                    for(var S, x = i + c * l, C = 0, w = 0; w < this.groupCtx.prevYF.length; w++)C += isNaN(this.groupCtx.prevYF[w][p]) ? 0 : this.groupCtx.prevYF[w][p];
                    var F = f;
                    if (d && (F = d.indexOf(m.globals.seriesNames[v])), F > 0 && !m.globals.isXNumeric || F > 0 && m.globals.isXNumeric && m.globals.seriesX[v - 1][p] === m.globals.seriesX[v][p]) {
                        var D, _, A, E = Math.min(this.yRatio.length + 1, v + 1);
                        if (this.groupCtx.prevY[F - 1] !== void 0 && this.groupCtx.prevY[F - 1].length) for(var B = 1; B < E; B++){
                            var P;
                            if (!isNaN((P = this.groupCtx.prevY[F - B]) === null || P === void 0 ? void 0 : P[p])) {
                                A = this.groupCtx.prevY[F - B][p];
                                break;
                            }
                        }
                        for(var M = 1; M < E; M++){
                            var R, z;
                            if (((R = this.groupCtx.prevYVal[F - M]) === null || R === void 0 ? void 0 : R[p]) < 0) {
                                _ = this.series[f][p] >= 0 ? A - C + 2 * (this.isReversed ? C : 0) : A;
                                break;
                            }
                            if (((z = this.groupCtx.prevYVal[F - M]) === null || z === void 0 ? void 0 : z[p]) >= 0) {
                                _ = this.series[f][p] >= 0 ? A : A + C - 2 * (this.isReversed ? C : 0);
                                break;
                            }
                        }
                        _ === void 0 && (_ = m.globals.gridHeight), S = (D = this.groupCtx.prevYF[0]) !== null && D !== void 0 && D.every(function(H) {
                            return H === 0;
                        }) && this.groupCtx.prevYF.slice(1, F).every(function(H) {
                            return H.every(function(I) {
                                return isNaN(I);
                            });
                        }) ? u : _;
                    } else S = u;
                    o = this.series[f][p] ? S - this.series[f][p] / this.yRatio[b] + 2 * (this.isReversed ? this.series[f][p] / this.yRatio[b] : 0) : S;
                    var N = this.barHelpers.getColumnPaths({
                        barXPosition: x,
                        barWidth: l,
                        y1: S,
                        y2: o,
                        yRatio: this.yRatio[b],
                        strokeWidth: this.strokeWidth,
                        isReversed: this.isReversed,
                        series: this.series,
                        seriesGroup: d,
                        realIndex: n.realIndex,
                        i: f,
                        j: p,
                        w: m
                    });
                    return this.barHelpers.barBackground({
                        bc: g,
                        j: p,
                        i: f,
                        x1: x,
                        x2: l,
                        elSeries: h
                    }), {
                        pathTo: N.pathTo,
                        pathFrom: N.pathFrom,
                        goalY: this.barHelpers.getGoalValues("y", null, u, f, p),
                        barXPosition: x,
                        x: m.globals.isXNumeric ? i : i + s,
                        y: o
                    };
                }
            }
        ]), a;
    }(), Vd = function(t) {
        Zo(a, Di);
        var e = Jo(a);
        function a() {
            return Ae(this, a), e.apply(this, arguments);
        }
        return De(a, [
            {
                key: "draw",
                value: function(r, n, i) {
                    var o = this, s = this.w, l = new he(this.ctx), u = s.globals.comboCharts ? n : s.config.chart.type, c = new hr(this.ctx);
                    this.candlestickOptions = this.w.config.plotOptions.candlestick, this.boxOptions = this.w.config.plotOptions.boxPlot, this.isHorizontal = s.config.plotOptions.bar.horizontal, this.isOHLC = this.candlestickOptions && this.candlestickOptions.type === "ohlc";
                    var d = new Ht(this.ctx, s);
                    r = d.getLogSeries(r), this.series = r, this.yRatio = d.getLogYRatios(this.yRatio), this.barHelpers.initVariables(r);
                    for(var h = l.group({
                        class: "apexcharts-".concat(u, "-series apexcharts-plot-series")
                    }), m = function(p) {
                        o.isBoxPlot = s.config.chart.type === "boxPlot" || s.config.series[p].type === "boxPlot";
                        var g, v, b, k, S = void 0, x = void 0, C = [], w = [], F = s.globals.comboCharts ? i[p] : p, D = o.barHelpers.getGroupIndex(F).columnGroupIndex, _ = l.group({
                            class: "apexcharts-series",
                            seriesName: V.escapeString(s.globals.seriesNames[F]),
                            rel: p + 1,
                            "data:realIndex": F
                        });
                        o.ctx.series.addCollapsedClassToSeries(_, F), r[p].length > 0 && (o.visibleI = o.visibleI + 1);
                        var A, E, B = 0;
                        o.yRatio.length > 1 && (o.yaxisIndex = s.globals.seriesYAxisReverseMap[F][0], B = F);
                        var P = o.barHelpers.initialPositions(F);
                        x = P.y, A = P.barHeight, v = P.yDivision, k = P.zeroW, S = P.x, E = P.barWidth, g = P.xDivision, b = P.zeroH, w.push(S + E / 2);
                        for(var M = l.group({
                            class: "apexcharts-datalabels",
                            "data:realIndex": F
                        }), R = l.group({
                            class: "apexcharts-bar-goals-markers"
                        }), z = function(H) {
                            var I = o.barHelpers.getStrokeWidth(p, H, F), L = null, G = {
                                indexes: {
                                    i: p,
                                    j: H,
                                    realIndex: F,
                                    translationsIndex: B
                                },
                                x: S,
                                y: x,
                                strokeWidth: I,
                                elSeries: _
                            };
                            L = o.isHorizontal ? o.drawHorizontalBoxPaths(ye(ye({}, G), {}, {
                                yDivision: v,
                                barHeight: A,
                                zeroW: k
                            })) : o.drawVerticalBoxPaths(ye(ye({}, G), {}, {
                                xDivision: g,
                                barWidth: E,
                                zeroH: b
                            })), x = L.y, S = L.x;
                            var q = o.barHelpers.drawGoalLine({
                                barXPosition: L.barXPosition,
                                barYPosition: L.barYPosition,
                                goalX: L.goalX,
                                goalY: L.goalY,
                                barHeight: A,
                                barWidth: E
                            });
                            q && R.add(q), H > 0 && w.push(S + E / 2), C.push(x), L.pathTo.forEach(function(X, ue) {
                                var J = !o.isBoxPlot && o.candlestickOptions.wick.useFillColor ? L.color[ue] : s.globals.stroke.colors[p], U = c.fillPath({
                                    seriesNumber: F,
                                    dataPointIndex: H,
                                    color: L.color[ue],
                                    value: r[p][H]
                                });
                                o.renderSeries({
                                    realIndex: F,
                                    pathFill: U,
                                    lineFill: J,
                                    j: H,
                                    i: p,
                                    pathFrom: L.pathFrom,
                                    pathTo: X,
                                    strokeWidth: I,
                                    elSeries: _,
                                    x: S,
                                    y: x,
                                    series: r,
                                    columnGroupIndex: D,
                                    barHeight: A,
                                    barWidth: E,
                                    elDataLabelsWrap: M,
                                    elGoalsMarkers: R,
                                    visibleSeries: o.visibleI,
                                    type: s.config.chart.type
                                });
                            });
                        }, N = 0; N < s.globals.dataPoints; N++)z(N);
                        s.globals.seriesXvalues[F] = w, s.globals.seriesYvalues[F] = C, h.add(_);
                    }, f = 0; f < r.length; f++)m(f);
                    return h;
                }
            },
            {
                key: "drawVerticalBoxPaths",
                value: function(r) {
                    var n = r.indexes, i = r.x;
                    r.y;
                    var o = r.xDivision, s = r.barWidth, l = r.zeroH, u = r.strokeWidth, c = this.w, d = new he(this.ctx), h = n.i, m = n.j, f = c.config.plotOptions.candlestick.colors, p = this.boxOptions.colors, g = n.realIndex, v = function(N) {
                        return Array.isArray(N) ? N[g] : N;
                    }, b = v(f.upward), k = v(f.downward), S = this.yRatio[n.translationsIndex], x = this.getOHLCValue(g, m), C = l, w = l, F = x.o < x.c ? [
                        b
                    ] : [
                        k
                    ];
                    this.isBoxPlot && (F = [
                        v(p.lower),
                        v(p.upper)
                    ]);
                    var D = Math.min(x.o, x.c), _ = Math.max(x.o, x.c), A = x.m;
                    c.globals.isXNumeric && (i = (c.globals.seriesX[g][m] - c.globals.minX) / this.xRatio - s / 2);
                    var E = i + s * this.visibleI;
                    this.series[h][m] === void 0 || this.series[h][m] === null ? (D = l, _ = l) : (D = l - D / S, _ = l - _ / S, C = l - x.h / S, w = l - x.l / S, A = l - x.m / S);
                    var B = d.move(E, l), P = d.move(E + s / 2, D);
                    if (c.globals.previousPaths.length > 0 && (P = this.getPreviousPath(g, m, !0)), this.isOHLC) {
                        var M = E + s / 2, R = l - x.o / S, z = l - x.c / S;
                        B = [
                            d.move(M, C) + d.line(M, w) + d.move(M, R) + d.line(E, R) + d.move(M, z) + d.line(E + s, z)
                        ];
                    } else B = this.isBoxPlot ? [
                        d.move(E, D) + d.line(E + s / 2, D) + d.line(E + s / 2, C) + d.line(E + s / 4, C) + d.line(E + s - s / 4, C) + d.line(E + s / 2, C) + d.line(E + s / 2, D) + d.line(E + s, D) + d.line(E + s, A) + d.line(E, A) + d.line(E, D + u / 2),
                        d.move(E, A) + d.line(E + s, A) + d.line(E + s, _) + d.line(E + s / 2, _) + d.line(E + s / 2, w) + d.line(E + s - s / 4, w) + d.line(E + s / 4, w) + d.line(E + s / 2, w) + d.line(E + s / 2, _) + d.line(E, _) + d.line(E, A) + "z"
                    ] : [
                        d.move(E, _) + d.line(E + s / 2, _) + d.line(E + s / 2, C) + d.line(E + s / 2, _) + d.line(E + s, _) + d.line(E + s, D) + d.line(E + s / 2, D) + d.line(E + s / 2, w) + d.line(E + s / 2, D) + d.line(E, D) + d.line(E, _ - u / 2)
                    ];
                    return P += d.move(E, D), c.globals.isXNumeric || (i += o), {
                        pathTo: B,
                        pathFrom: P,
                        x: i,
                        y: _,
                        goalY: this.barHelpers.getGoalValues("y", null, l, h, m, n.translationsIndex),
                        barXPosition: E,
                        color: F
                    };
                }
            },
            {
                key: "drawHorizontalBoxPaths",
                value: function(r) {
                    var n = r.indexes;
                    r.x;
                    var i = r.y, o = r.yDivision, s = r.barHeight, l = r.zeroW, u = r.strokeWidth, c = this.w, d = new he(this.ctx), h = n.i, m = n.j, f = this.boxOptions.colors.lower;
                    this.isBoxPlot && (f = [
                        this.boxOptions.colors.lower,
                        this.boxOptions.colors.upper
                    ]);
                    var p = this.invertedYRatio, g = n.realIndex, v = this.getOHLCValue(g, m), b = l, k = l, S = Math.min(v.o, v.c), x = Math.max(v.o, v.c), C = v.m;
                    c.globals.isXNumeric && (i = (c.globals.seriesX[g][m] - c.globals.minX) / this.invertedXRatio - s / 2);
                    var w = i + s * this.visibleI;
                    this.series[h][m] === void 0 || this.series[h][m] === null ? (S = l, x = l) : (S = l + S / p, x = l + x / p, b = l + v.h / p, k = l + v.l / p, C = l + v.m / p);
                    var F = d.move(l, w), D = d.move(S, w + s / 2);
                    return c.globals.previousPaths.length > 0 && (D = this.getPreviousPath(g, m, !0)), F = [
                        d.move(S, w) + d.line(S, w + s / 2) + d.line(b, w + s / 2) + d.line(b, w + s / 2 - s / 4) + d.line(b, w + s / 2 + s / 4) + d.line(b, w + s / 2) + d.line(S, w + s / 2) + d.line(S, w + s) + d.line(C, w + s) + d.line(C, w) + d.line(S + u / 2, w),
                        d.move(C, w) + d.line(C, w + s) + d.line(x, w + s) + d.line(x, w + s / 2) + d.line(k, w + s / 2) + d.line(k, w + s - s / 4) + d.line(k, w + s / 4) + d.line(k, w + s / 2) + d.line(x, w + s / 2) + d.line(x, w) + d.line(C, w) + "z"
                    ], D += d.move(S, w), c.globals.isXNumeric || (i += o), {
                        pathTo: F,
                        pathFrom: D,
                        x,
                        y: i,
                        goalX: this.barHelpers.getGoalValues("x", l, null, h, m),
                        barYPosition: w,
                        color: f
                    };
                }
            },
            {
                key: "getOHLCValue",
                value: function(r, n) {
                    var i = this.w, o = new Ht(this.ctx, i), s = o.getLogValAtSeriesIndex(i.globals.seriesCandleH[r][n], r), l = o.getLogValAtSeriesIndex(i.globals.seriesCandleO[r][n], r), u = o.getLogValAtSeriesIndex(i.globals.seriesCandleM[r][n], r), c = o.getLogValAtSeriesIndex(i.globals.seriesCandleC[r][n], r), d = o.getLogValAtSeriesIndex(i.globals.seriesCandleL[r][n], r);
                    return {
                        o: this.isBoxPlot ? s : l,
                        h: this.isBoxPlot ? l : s,
                        m: u,
                        l: this.isBoxPlot ? c : d,
                        c: this.isBoxPlot ? d : c
                    };
                }
            }
        ]), a;
    }(), J1 = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "checkColorRange",
                value: function() {
                    var e = this.w, a = !1, r = e.config.plotOptions[e.config.chart.type];
                    return r.colorScale.ranges.length > 0 && r.colorScale.ranges.map(function(n, i) {
                        n.from <= 0 && (a = !0);
                    }), a;
                }
            },
            {
                key: "getShadeColor",
                value: function(e, a, r, n) {
                    var i = this.w, o = 1, s = i.config.plotOptions[e].shadeIntensity, l = this.determineColor(e, a, r);
                    i.globals.hasNegs || n ? o = i.config.plotOptions[e].reverseNegativeShade ? l.percent < 0 ? l.percent / 100 * (1.25 * s) : (1 - l.percent / 100) * (1.25 * s) : l.percent <= 0 ? 1 - (1 + l.percent / 100) * s : (1 - l.percent / 100) * s : (o = 1 - l.percent / 100, e === "treemap" && (o = (1 - l.percent / 100) * (1.25 * s)));
                    var u = l.color, c = new V;
                    if (i.config.plotOptions[e].enableShades) if (this.w.config.theme.mode === "dark") {
                        var d = c.shadeColor(-1 * o, l.color);
                        u = V.hexToRgba(V.isColorHex(d) ? d : V.rgb2hex(d), i.config.fill.opacity);
                    } else {
                        var h = c.shadeColor(o, l.color);
                        u = V.hexToRgba(V.isColorHex(h) ? h : V.rgb2hex(h), i.config.fill.opacity);
                    }
                    return {
                        color: u,
                        colorProps: l
                    };
                }
            },
            {
                key: "determineColor",
                value: function(e, a, r) {
                    var n = this.w, i = n.globals.series[a][r], o = n.config.plotOptions[e], s = o.colorScale.inverse ? r : a;
                    o.distributed && n.config.chart.type === "treemap" && (s = r);
                    var l = n.globals.colors[s], u = null, c = Math.min.apply(Math, Qt(n.globals.series[a])), d = Math.max.apply(Math, Qt(n.globals.series[a]));
                    o.distributed || e !== "heatmap" || (c = n.globals.minY, d = n.globals.maxY), o.colorScale.min !== void 0 && (c = o.colorScale.min < n.globals.minY ? o.colorScale.min : n.globals.minY, d = o.colorScale.max > n.globals.maxY ? o.colorScale.max : n.globals.maxY);
                    var h = Math.abs(d) + Math.abs(c), m = 100 * i / (h === 0 ? h - 1e-6 : h);
                    return o.colorScale.ranges.length > 0 && o.colorScale.ranges.map(function(f, p) {
                        if (i >= f.from && i <= f.to) {
                            l = f.color, u = f.foreColor ? f.foreColor : null, c = f.from, d = f.to;
                            var g = Math.abs(d) + Math.abs(c);
                            m = 100 * i / (g === 0 ? g - 1e-6 : g);
                        }
                    }), {
                        color: l,
                        foreColor: u,
                        percent: m
                    };
                }
            },
            {
                key: "calculateDataLabels",
                value: function(e) {
                    var a = e.text, r = e.x, n = e.y, i = e.i, o = e.j, s = e.colorProps, l = e.fontSize, u = this.w.config.dataLabels, c = new he(this.ctx), d = new Ai(this.ctx), h = null;
                    if (u.enabled) {
                        h = c.group({
                            class: "apexcharts-data-labels"
                        });
                        var m = u.offsetX, f = u.offsetY, p = r + m, g = n + parseFloat(u.style.fontSize) / 3 + f;
                        d.plotDataLabelsText({
                            x: p,
                            y: g,
                            text: a,
                            i,
                            j: o,
                            color: s.foreColor,
                            parent: h,
                            fontSize: l,
                            dataLabelsConfig: u
                        });
                    }
                    return h;
                }
            },
            {
                key: "addListeners",
                value: function(e) {
                    var a = new he(this.ctx);
                    e.node.addEventListener("mouseenter", a.pathMouseEnter.bind(this, e)), e.node.addEventListener("mouseleave", a.pathMouseLeave.bind(this, e)), e.node.addEventListener("mousedown", a.pathMouseDown.bind(this, e));
                }
            }
        ]), t;
    }(), kI = function() {
        function t(e, a) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.xRatio = a.xRatio, this.yRatio = a.yRatio, this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.helpers = new J1(e), this.rectRadius = this.w.config.plotOptions.heatmap.radius, this.strokeWidth = this.w.config.stroke.show ? this.w.config.stroke.width : 0;
        }
        return De(t, [
            {
                key: "draw",
                value: function(e) {
                    var a = this.w, r = new he(this.ctx), n = r.group({
                        class: "apexcharts-heatmap"
                    });
                    n.attr("clip-path", "url(#gridRectMask".concat(a.globals.cuid, ")"));
                    var i = a.globals.gridWidth / a.globals.dataPoints, o = a.globals.gridHeight / a.globals.series.length, s = 0, l = !1;
                    this.negRange = this.helpers.checkColorRange();
                    var u = e.slice();
                    a.config.yaxis[0].reversed && (l = !0, u.reverse());
                    for(var c = l ? 0 : u.length - 1; l ? c < u.length : c >= 0; l ? c++ : c--){
                        var d = r.group({
                            class: "apexcharts-series apexcharts-heatmap-series",
                            seriesName: V.escapeString(a.globals.seriesNames[c]),
                            rel: c + 1,
                            "data:realIndex": c
                        });
                        if (this.ctx.series.addCollapsedClassToSeries(d, c), a.config.chart.dropShadow.enabled) {
                            var h = a.config.chart.dropShadow;
                            new ca(this.ctx).dropShadow(d, h, c);
                        }
                        for(var m = 0, f = a.config.plotOptions.heatmap.shadeIntensity, p = 0, g = 0; g < a.globals.dataPoints; g++)if (a.globals.seriesX.length && !a.globals.allSeriesHasEqualX && a.globals.minX + a.globals.minXDiff * g < a.globals.seriesX[c][p]) m += i;
                        else {
                            if (p >= u[c].length) break;
                            var v = this.helpers.getShadeColor(a.config.chart.type, c, p, this.negRange), b = v.color, k = v.colorProps;
                            a.config.fill.type === "image" && (b = new hr(this.ctx).fillPath({
                                seriesNumber: c,
                                dataPointIndex: p,
                                opacity: a.globals.hasNegs ? k.percent < 0 ? 1 - (1 + k.percent / 100) : f + k.percent / 100 : k.percent / 100,
                                patternID: V.randomId(),
                                width: a.config.fill.image.width ? a.config.fill.image.width : i,
                                height: a.config.fill.image.height ? a.config.fill.image.height : o
                            }));
                            var S = this.rectRadius, x = r.drawRect(m, s, i, o, S);
                            if (x.attr({
                                cx: m,
                                cy: s
                            }), x.node.classList.add("apexcharts-heatmap-rect"), d.add(x), x.attr({
                                fill: b,
                                i: c,
                                index: c,
                                j: p,
                                val: e[c][p],
                                "stroke-width": this.strokeWidth,
                                stroke: a.config.plotOptions.heatmap.useFillColorAsStroke ? b : a.globals.stroke.colors[0],
                                color: b
                            }), this.helpers.addListeners(x), a.config.chart.animations.enabled && !a.globals.dataChanged) {
                                var C = 1;
                                a.globals.resized || (C = a.config.chart.animations.speed), this.animateHeatMap(x, m, s, i, o, C);
                            }
                            if (a.globals.dataChanged) {
                                var w = 1;
                                if (this.dynamicAnim.enabled && a.globals.shouldAnimate) {
                                    w = this.dynamicAnim.speed;
                                    var F = a.globals.previousPaths[c] && a.globals.previousPaths[c][p] && a.globals.previousPaths[c][p].color;
                                    F || (F = "rgba(255, 255, 255, 0)"), this.animateHeatColor(x, V.isColorHex(F) ? F : V.rgb2hex(F), V.isColorHex(b) ? b : V.rgb2hex(b), w);
                                }
                            }
                            var D = (0, a.config.dataLabels.formatter)(a.globals.series[c][p], {
                                value: a.globals.series[c][p],
                                seriesIndex: c,
                                dataPointIndex: p,
                                w: a
                            }), _ = this.helpers.calculateDataLabels({
                                text: D,
                                x: m + i / 2,
                                y: s + o / 2,
                                i: c,
                                j: p,
                                colorProps: k,
                                series: u
                            });
                            _ !== null && d.add(_), m += i, p++;
                        }
                        s += o, n.add(d);
                    }
                    var A = a.globals.yAxisScale[0].result.slice();
                    return a.config.yaxis[0].reversed ? A.unshift("") : A.push(""), a.globals.yAxisScale[0].result = A, n;
                }
            },
            {
                key: "animateHeatMap",
                value: function(e, a, r, n, i, o) {
                    var s = new Vi(this.ctx);
                    s.animateRect(e, {
                        x: a + n / 2,
                        y: r + i / 2,
                        width: 0,
                        height: 0
                    }, {
                        x: a,
                        y: r,
                        width: n,
                        height: i
                    }, o, function() {
                        s.animationCompleted(e);
                    });
                }
            },
            {
                key: "animateHeatColor",
                value: function(e, a, r, n) {
                    e.attr({
                        fill: a
                    }).animate(n).attr({
                        fill: r
                    });
                }
            }
        ]), t;
    }(), Z1 = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "drawYAxisTexts",
                value: function(e, a, r, n) {
                    var i = this.w, o = i.config.yaxis[0], s = i.globals.yLabelFormatters[0];
                    return new he(this.ctx).drawText({
                        x: e + o.labels.offsetX,
                        y: a + o.labels.offsetY,
                        text: s(n, r),
                        textAnchor: "middle",
                        fontSize: o.labels.style.fontSize,
                        fontFamily: o.labels.style.fontFamily,
                        foreColor: Array.isArray(o.labels.style.colors) ? o.labels.style.colors[r] : o.labels.style.colors
                    });
                }
            }
        ]), t;
    }(), Q1 = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
            var a = this.w;
            this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animBeginArr = [
                0
            ], this.animDur = 0, this.donutDataLabels = this.w.config.plotOptions.pie.donut.labels, this.lineColorArr = a.globals.stroke.colors !== void 0 ? a.globals.stroke.colors : a.globals.colors, this.defaultSize = Math.min(a.globals.gridWidth, a.globals.gridHeight), this.centerY = this.defaultSize / 2, this.centerX = a.globals.gridWidth / 2, a.config.chart.type === "radialBar" ? this.fullAngle = 360 : this.fullAngle = Math.abs(a.config.plotOptions.pie.endAngle - a.config.plotOptions.pie.startAngle), this.initialAngle = a.config.plotOptions.pie.startAngle % this.fullAngle, a.globals.radialSize = this.defaultSize / 2.05 - a.config.stroke.width - (a.config.chart.sparkline.enabled ? 0 : a.config.chart.dropShadow.blur), this.donutSize = a.globals.radialSize * parseInt(a.config.plotOptions.pie.donut.size, 10) / 100;
            var r = a.config.plotOptions.pie.customScale, n = a.globals.gridWidth / 2, i = a.globals.gridHeight / 2;
            this.translateX = n - n * r, this.translateY = i - i * r, this.dataLabelsGroup = new he(this.ctx).group({
                class: "apexcharts-datalabels-group",
                transform: "translate(".concat(this.translateX, ", ").concat(this.translateY, ") scale(").concat(r, ")")
            }), this.maxY = 0, this.sliceLabels = [], this.sliceSizes = [], this.prevSectorAngleArr = [];
        }
        return De(t, [
            {
                key: "draw",
                value: function(e) {
                    var a = this, r = this.w, n = new he(this.ctx), i = n.group({
                        class: "apexcharts-pie"
                    });
                    if (r.globals.noData) return i;
                    for(var o = 0, s = 0; s < e.length; s++)o += V.negToZero(e[s]);
                    var l = [], u = n.group();
                    o === 0 && (o = 1e-5), e.forEach(function(k) {
                        a.maxY = Math.max(a.maxY, k);
                    }), r.config.yaxis[0].max && (this.maxY = r.config.yaxis[0].max), r.config.grid.position === "back" && this.chartType === "polarArea" && this.drawPolarElements(i);
                    for(var c = 0; c < e.length; c++){
                        var d = this.fullAngle * V.negToZero(e[c]) / o;
                        l.push(d), this.chartType === "polarArea" ? (l[c] = this.fullAngle / e.length, this.sliceSizes.push(r.globals.radialSize * e[c] / this.maxY)) : this.sliceSizes.push(r.globals.radialSize);
                    }
                    if (r.globals.dataChanged) {
                        for(var h, m = 0, f = 0; f < r.globals.previousPaths.length; f++)m += V.negToZero(r.globals.previousPaths[f]);
                        for(var p = 0; p < r.globals.previousPaths.length; p++)h = this.fullAngle * V.negToZero(r.globals.previousPaths[p]) / m, this.prevSectorAngleArr.push(h);
                    }
                    if (this.donutSize < 0 && (this.donutSize = 0), this.chartType === "donut") {
                        var g = n.drawCircle(this.donutSize);
                        g.attr({
                            cx: this.centerX,
                            cy: this.centerY,
                            fill: r.config.plotOptions.pie.donut.background ? r.config.plotOptions.pie.donut.background : "transparent"
                        }), u.add(g);
                    }
                    var v = this.drawArcs(l, e);
                    if (this.sliceLabels.forEach(function(k) {
                        v.add(k);
                    }), u.attr({
                        transform: "translate(".concat(this.translateX, ", ").concat(this.translateY, ") scale(").concat(r.config.plotOptions.pie.customScale, ")")
                    }), u.add(v), i.add(u), this.donutDataLabels.show) {
                        var b = this.renderInnerDataLabels(this.dataLabelsGroup, this.donutDataLabels, {
                            hollowSize: this.donutSize,
                            centerX: this.centerX,
                            centerY: this.centerY,
                            opacity: this.donutDataLabels.show
                        });
                        i.add(b);
                    }
                    return r.config.grid.position === "front" && this.chartType === "polarArea" && this.drawPolarElements(i), i;
                }
            },
            {
                key: "drawArcs",
                value: function(e, a) {
                    var r = this.w, n = new ca(this.ctx), i = new he(this.ctx), o = new hr(this.ctx), s = i.group({
                        class: "apexcharts-slices"
                    }), l = this.initialAngle, u = this.initialAngle, c = this.initialAngle, d = this.initialAngle;
                    this.strokeWidth = r.config.stroke.show ? r.config.stroke.width : 0;
                    for(var h = 0; h < e.length; h++){
                        var m = i.group({
                            class: "apexcharts-series apexcharts-pie-series",
                            seriesName: V.escapeString(r.globals.seriesNames[h]),
                            rel: h + 1,
                            "data:realIndex": h
                        });
                        s.add(m), u = d, c = (l = c) + e[h], d = u + this.prevSectorAngleArr[h];
                        var f = c < l ? this.fullAngle + c - l : c - l, p = o.fillPath({
                            seriesNumber: h,
                            size: this.sliceSizes[h],
                            value: a[h]
                        }), g = this.getChangedPath(u, d), v = i.drawPath({
                            d: g,
                            stroke: Array.isArray(this.lineColorArr) ? this.lineColorArr[h] : this.lineColorArr,
                            strokeWidth: 0,
                            fill: p,
                            fillOpacity: r.config.fill.opacity,
                            classes: "apexcharts-pie-area apexcharts-".concat(this.chartType.toLowerCase(), "-slice-").concat(h)
                        });
                        if (v.attr({
                            index: 0,
                            j: h
                        }), n.setSelectionFilter(v, 0, h), r.config.chart.dropShadow.enabled) {
                            var b = r.config.chart.dropShadow;
                            n.dropShadow(v, b, h);
                        }
                        this.addListeners(v, this.donutDataLabels), he.setAttrs(v.node, {
                            "data:angle": f,
                            "data:startAngle": l,
                            "data:strokeWidth": this.strokeWidth,
                            "data:value": a[h]
                        });
                        var k = {
                            x: 0,
                            y: 0
                        };
                        this.chartType === "pie" || this.chartType === "polarArea" ? k = V.polarToCartesian(this.centerX, this.centerY, r.globals.radialSize / 1.25 + r.config.plotOptions.pie.dataLabels.offset, (l + f / 2) % this.fullAngle) : this.chartType === "donut" && (k = V.polarToCartesian(this.centerX, this.centerY, (r.globals.radialSize + this.donutSize) / 2 + r.config.plotOptions.pie.dataLabels.offset, (l + f / 2) % this.fullAngle)), m.add(v);
                        var S = 0;
                        if (!this.initialAnim || r.globals.resized || r.globals.dataChanged ? this.animBeginArr.push(0) : ((S = f / this.fullAngle * r.config.chart.animations.speed) === 0 && (S = 1), this.animDur = S + this.animDur, this.animBeginArr.push(this.animDur)), this.dynamicAnim && r.globals.dataChanged ? this.animatePaths(v, {
                            size: this.sliceSizes[h],
                            endAngle: c,
                            startAngle: l,
                            prevStartAngle: u,
                            prevEndAngle: d,
                            animateStartingPos: !0,
                            i: h,
                            animBeginArr: this.animBeginArr,
                            shouldSetPrevPaths: !0,
                            dur: r.config.chart.animations.dynamicAnimation.speed
                        }) : this.animatePaths(v, {
                            size: this.sliceSizes[h],
                            endAngle: c,
                            startAngle: l,
                            i: h,
                            totalItems: e.length - 1,
                            animBeginArr: this.animBeginArr,
                            dur: S
                        }), r.config.plotOptions.pie.expandOnClick && this.chartType !== "polarArea" && v.node.addEventListener("mouseup", this.pieClicked.bind(this, h)), r.globals.selectedDataPoints[0] !== void 0 && r.globals.selectedDataPoints[0].indexOf(h) > -1 && this.pieClicked(h), r.config.dataLabels.enabled) {
                            var x = k.x, C = k.y, w = 100 * f / this.fullAngle + "%";
                            if (f !== 0 && r.config.plotOptions.pie.dataLabels.minAngleToShowLabel < e[h]) {
                                var F = r.config.dataLabels.formatter;
                                F !== void 0 && (w = F(r.globals.seriesPercent[h][0], {
                                    seriesIndex: h,
                                    w: r
                                }));
                                var D = r.globals.dataLabels.style.colors[h], _ = i.group({
                                    class: "apexcharts-datalabels"
                                }), A = i.drawText({
                                    x,
                                    y: C,
                                    text: w,
                                    textAnchor: "middle",
                                    fontSize: r.config.dataLabels.style.fontSize,
                                    fontFamily: r.config.dataLabels.style.fontFamily,
                                    fontWeight: r.config.dataLabels.style.fontWeight,
                                    foreColor: D
                                });
                                if (_.add(A), r.config.dataLabels.dropShadow.enabled) {
                                    var E = r.config.dataLabels.dropShadow;
                                    n.dropShadow(A, E);
                                }
                                A.node.classList.add("apexcharts-pie-label"), r.config.chart.animations.animate && r.globals.resized === !1 && (A.node.classList.add("apexcharts-pie-label-delay"), A.node.style.animationDelay = r.config.chart.animations.speed / 940 + "s"), this.sliceLabels.push(_);
                            }
                        }
                    }
                    return s;
                }
            },
            {
                key: "addListeners",
                value: function(e, a) {
                    var r = new he(this.ctx);
                    e.node.addEventListener("mouseenter", r.pathMouseEnter.bind(this, e)), e.node.addEventListener("mouseleave", r.pathMouseLeave.bind(this, e)), e.node.addEventListener("mouseleave", this.revertDataLabelsInner.bind(this, e.node, a)), e.node.addEventListener("mousedown", r.pathMouseDown.bind(this, e)), this.donutDataLabels.total.showAlways || (e.node.addEventListener("mouseenter", this.printDataLabelsInner.bind(this, e.node, a)), e.node.addEventListener("mousedown", this.printDataLabelsInner.bind(this, e.node, a)));
                }
            },
            {
                key: "animatePaths",
                value: function(e, a) {
                    var r = this.w, n = a.endAngle < a.startAngle ? this.fullAngle + a.endAngle - a.startAngle : a.endAngle - a.startAngle, i = n, o = a.startAngle, s = a.startAngle;
                    a.prevStartAngle !== void 0 && a.prevEndAngle !== void 0 && (o = a.prevEndAngle, i = a.prevEndAngle < a.prevStartAngle ? this.fullAngle + a.prevEndAngle - a.prevStartAngle : a.prevEndAngle - a.prevStartAngle), a.i === r.config.series.length - 1 && (n + s > this.fullAngle ? a.endAngle = a.endAngle - (n + s) : n + s < this.fullAngle && (a.endAngle = a.endAngle + (this.fullAngle - (n + s)))), n === this.fullAngle && (n = this.fullAngle - .01), this.animateArc(e, o, s, n, i, a);
                }
            },
            {
                key: "animateArc",
                value: function(e, a, r, n, i, o) {
                    var s, l = this, u = this.w, c = new Vi(this.ctx), d = o.size;
                    (isNaN(a) || isNaN(i)) && (a = r, i = n, o.dur = 0);
                    var h = n, m = r, f = a < r ? this.fullAngle + a - r : a - r;
                    u.globals.dataChanged && o.shouldSetPrevPaths && o.prevEndAngle && (s = l.getPiePath({
                        me: l,
                        startAngle: o.prevStartAngle,
                        angle: o.prevEndAngle < o.prevStartAngle ? this.fullAngle + o.prevEndAngle - o.prevStartAngle : o.prevEndAngle - o.prevStartAngle,
                        size: d
                    }), e.attr({
                        d: s
                    })), o.dur !== 0 ? e.animate(o.dur, o.animBeginArr[o.i]).after(function() {
                        l.chartType !== "pie" && l.chartType !== "donut" && l.chartType !== "polarArea" || this.animate(u.config.chart.animations.dynamicAnimation.speed).attr({
                            "stroke-width": l.strokeWidth
                        }), o.i === u.config.series.length - 1 && c.animationCompleted(e);
                    }).during(function(p) {
                        h = f + (n - f) * p, o.animateStartingPos && (h = i + (n - i) * p, m = a - i + (r - (a - i)) * p), s = l.getPiePath({
                            me: l,
                            startAngle: m,
                            angle: h,
                            size: d
                        }), e.node.setAttribute("data:pathOrig", s), e.attr({
                            d: s
                        });
                    }) : (s = l.getPiePath({
                        me: l,
                        startAngle: m,
                        angle: n,
                        size: d
                    }), o.isTrack || (u.globals.animationEnded = !0), e.node.setAttribute("data:pathOrig", s), e.attr({
                        d: s,
                        "stroke-width": l.strokeWidth
                    }));
                }
            },
            {
                key: "pieClicked",
                value: function(e) {
                    var a, r = this.w, n = this, i = n.sliceSizes[e] + (r.config.plotOptions.pie.expandOnClick ? 4 : 0), o = r.globals.dom.Paper.findOne(".apexcharts-".concat(n.chartType.toLowerCase(), "-slice-").concat(e));
                    if (o.attr("data:pieClicked") !== "true") {
                        var s = r.globals.dom.baseEl.getElementsByClassName("apexcharts-pie-area");
                        Array.prototype.forEach.call(s, function(d) {
                            d.setAttribute("data:pieClicked", "false");
                            var h = d.getAttribute("data:pathOrig");
                            h && d.setAttribute("d", h);
                        }), r.globals.capturedDataPointIndex = e, o.attr("data:pieClicked", "true");
                        var l = parseInt(o.attr("data:startAngle"), 10), u = parseInt(o.attr("data:angle"), 10);
                        a = n.getPiePath({
                            me: n,
                            startAngle: l,
                            angle: u,
                            size: i
                        }), u !== 360 && o.plot(a);
                    } else {
                        o.attr({
                            "data:pieClicked": "false"
                        }), this.revertDataLabelsInner(o.node, this.donutDataLabels);
                        var c = o.attr("data:pathOrig");
                        o.attr({
                            d: c
                        });
                    }
                }
            },
            {
                key: "getChangedPath",
                value: function(e, a) {
                    var r = "";
                    return this.dynamicAnim && this.w.globals.dataChanged && (r = this.getPiePath({
                        me: this,
                        startAngle: e,
                        angle: a - e,
                        size: this.size
                    })), r;
                }
            },
            {
                key: "getPiePath",
                value: function(e) {
                    var a, r = e.me, n = e.startAngle, i = e.angle, o = e.size, s = new he(this.ctx), l = n, u = Math.PI * (l - 90) / 180, c = i + n;
                    Math.ceil(c) >= this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle && (c = this.fullAngle + this.w.config.plotOptions.pie.startAngle % this.fullAngle - .01), Math.ceil(c) > this.fullAngle && (c -= this.fullAngle);
                    var d = Math.PI * (c - 90) / 180, h = r.centerX + o * Math.cos(u), m = r.centerY + o * Math.sin(u), f = r.centerX + o * Math.cos(d), p = r.centerY + o * Math.sin(d), g = V.polarToCartesian(r.centerX, r.centerY, r.donutSize, c), v = V.polarToCartesian(r.centerX, r.centerY, r.donutSize, l), b = i > 180 ? 1 : 0, k = [
                        "M",
                        h,
                        m,
                        "A",
                        o,
                        o,
                        0,
                        b,
                        1,
                        f,
                        p
                    ];
                    return a = r.chartType === "donut" ? [].concat(k, [
                        "L",
                        g.x,
                        g.y,
                        "A",
                        r.donutSize,
                        r.donutSize,
                        0,
                        b,
                        0,
                        v.x,
                        v.y,
                        "L",
                        h,
                        m,
                        "z"
                    ]).join(" ") : r.chartType === "pie" || r.chartType === "polarArea" ? [].concat(k, [
                        "L",
                        r.centerX,
                        r.centerY,
                        "L",
                        h,
                        m
                    ]).join(" ") : [].concat(k).join(" "), s.roundPathCorners(a, 2 * this.strokeWidth);
                }
            },
            {
                key: "drawPolarElements",
                value: function(e) {
                    var a = this.w, r = new j1(this.ctx), n = new he(this.ctx), i = new Z1(this.ctx), o = n.group(), s = n.group(), l = r.niceScale(0, Math.ceil(this.maxY), 0), u = l.result.reverse(), c = l.result.length;
                    this.maxY = l.niceMax;
                    for(var d = a.globals.radialSize, h = d / (c - 1), m = 0; m < c - 1; m++){
                        var f = n.drawCircle(d);
                        if (f.attr({
                            cx: this.centerX,
                            cy: this.centerY,
                            fill: "none",
                            "stroke-width": a.config.plotOptions.polarArea.rings.strokeWidth,
                            stroke: a.config.plotOptions.polarArea.rings.strokeColor
                        }), a.config.yaxis[0].show) {
                            var p = i.drawYAxisTexts(this.centerX, this.centerY - d + parseInt(a.config.yaxis[0].labels.style.fontSize, 10) / 2, m, u[m]);
                            s.add(p);
                        }
                        o.add(f), d -= h;
                    }
                    this.drawSpokes(e), e.add(o), e.add(s);
                }
            },
            {
                key: "renderInnerDataLabels",
                value: function(e, a, r) {
                    var n = this.w, i = new he(this.ctx), o = a.total.show;
                    e.node.innerHTML = "", e.node.style.opacity = r.opacity;
                    var s, l, u = r.centerX, c = this.donutDataLabels.total.label ? r.centerY : r.centerY - r.centerY / 6;
                    s = a.name.color === void 0 ? n.globals.colors[0] : a.name.color;
                    var d = a.name.fontSize, h = a.name.fontFamily, m = a.name.fontWeight;
                    l = a.value.color === void 0 ? n.config.chart.foreColor : a.value.color;
                    var f = a.value.formatter, p = "", g = "";
                    if (o ? (s = a.total.color, d = a.total.fontSize, h = a.total.fontFamily, m = a.total.fontWeight, g = this.donutDataLabels.total.label ? a.total.label : "", p = a.total.formatter(n)) : n.globals.series.length === 1 && (p = f(n.globals.series[0], n), g = n.globals.seriesNames[0]), g && (g = a.name.formatter(g, a.total.show, n)), a.name.show) {
                        var v = i.drawText({
                            x: u,
                            y: c + parseFloat(a.name.offsetY),
                            text: g,
                            textAnchor: "middle",
                            foreColor: s,
                            fontSize: d,
                            fontWeight: m,
                            fontFamily: h
                        });
                        v.node.classList.add("apexcharts-datalabel-label"), e.add(v);
                    }
                    if (a.value.show) {
                        var b = a.name.show ? parseFloat(a.value.offsetY) + 16 : a.value.offsetY, k = i.drawText({
                            x: u,
                            y: c + b,
                            text: p,
                            textAnchor: "middle",
                            foreColor: l,
                            fontWeight: a.value.fontWeight,
                            fontSize: a.value.fontSize,
                            fontFamily: a.value.fontFamily
                        });
                        k.node.classList.add("apexcharts-datalabel-value"), e.add(k);
                    }
                    return e;
                }
            },
            {
                key: "printInnerLabels",
                value: function(e, a, r, n) {
                    var i, o = this.w;
                    n ? i = e.name.color === void 0 ? o.globals.colors[parseInt(n.parentNode.getAttribute("rel"), 10) - 1] : e.name.color : o.globals.series.length > 1 && e.total.show && (i = e.total.color);
                    var s = o.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"), l = o.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");
                    r = (0, e.value.formatter)(r, o), n || typeof e.total.formatter != "function" || (r = e.total.formatter(o));
                    var u = a === e.total.label;
                    a = this.donutDataLabels.total.label ? e.name.formatter(a, u, o) : "", s !== null && (s.textContent = a), l !== null && (l.textContent = r), s !== null && (s.style.fill = i);
                }
            },
            {
                key: "printDataLabelsInner",
                value: function(e, a) {
                    var r = this.w, n = e.getAttribute("data:value"), i = r.globals.seriesNames[parseInt(e.parentNode.getAttribute("rel"), 10) - 1];
                    r.globals.series.length > 1 && this.printInnerLabels(a, i, n, e);
                    var o = r.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");
                    o !== null && (o.style.opacity = 1);
                }
            },
            {
                key: "drawSpokes",
                value: function(e) {
                    var a = this, r = this.w, n = new he(this.ctx), i = r.config.plotOptions.polarArea.spokes;
                    if (i.strokeWidth !== 0) {
                        for(var o = [], s = 360 / r.globals.series.length, l = 0; l < r.globals.series.length; l++)o.push(V.polarToCartesian(this.centerX, this.centerY, r.globals.radialSize, r.config.plotOptions.pie.startAngle + s * l));
                        o.forEach(function(u, c) {
                            var d = n.drawLine(u.x, u.y, a.centerX, a.centerY, Array.isArray(i.connectorColors) ? i.connectorColors[c] : i.connectorColors);
                            e.add(d);
                        });
                    }
                }
            },
            {
                key: "revertDataLabelsInner",
                value: function() {
                    var e = this.w;
                    if (this.donutDataLabels.show) {
                        var a = e.globals.dom.Paper.findOne(".apexcharts-datalabels-group"), r = this.renderInnerDataLabels(a, this.donutDataLabels, {
                            hollowSize: this.donutSize,
                            centerX: this.centerX,
                            centerY: this.centerY,
                            opacity: this.donutDataLabels.show
                        });
                        e.globals.dom.Paper.findOne(".apexcharts-radialbar, .apexcharts-pie").add(r);
                    }
                }
            }
        ]), t;
    }(), xI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.chartType = this.w.config.chart.type, this.initialAnim = this.w.config.chart.animations.enabled, this.dynamicAnim = this.initialAnim && this.w.config.chart.animations.dynamicAnimation.enabled, this.animDur = 0;
            var a = this.w;
            this.graphics = new he(this.ctx), this.lineColorArr = a.globals.stroke.colors !== void 0 ? a.globals.stroke.colors : a.globals.colors, this.defaultSize = a.globals.svgHeight < a.globals.svgWidth ? a.globals.gridHeight : a.globals.gridWidth, this.isLog = a.config.yaxis[0].logarithmic, this.logBase = a.config.yaxis[0].logBase, this.coreUtils = new Ht(this.ctx), this.maxValue = this.isLog ? this.coreUtils.getLogVal(this.logBase, a.globals.maxY, 0) : a.globals.maxY, this.minValue = this.isLog ? this.coreUtils.getLogVal(this.logBase, this.w.globals.minY, 0) : a.globals.minY, this.polygons = a.config.plotOptions.radar.polygons, this.strokeWidth = a.config.stroke.show ? a.config.stroke.width : 0, this.size = this.defaultSize / 2.1 - this.strokeWidth - a.config.chart.dropShadow.blur, a.config.xaxis.labels.show && (this.size = this.size - a.globals.xAxisLabelsWidth / 1.75), a.config.plotOptions.radar.size !== void 0 && (this.size = a.config.plotOptions.radar.size), this.dataRadiusOfPercent = [], this.dataRadius = [], this.angleArr = [], this.yaxisLabelsTextsPos = [];
        }
        return De(t, [
            {
                key: "draw",
                value: function(e) {
                    var a = this, r = this.w, n = new hr(this.ctx), i = [], o = new Ai(this.ctx);
                    e.length && (this.dataPointsLen = e[r.globals.maxValsInArrayIndex].length), this.disAngle = 2 * Math.PI / this.dataPointsLen;
                    var s = r.globals.gridWidth / 2, l = r.globals.gridHeight / 2, u = s + r.config.plotOptions.radar.offsetX, c = l + r.config.plotOptions.radar.offsetY, d = this.graphics.group({
                        class: "apexcharts-radar-series apexcharts-plot-series",
                        transform: "translate(".concat(u || 0, ", ").concat(c || 0, ")")
                    }), h = [], m = null, f = null;
                    if (this.yaxisLabels = this.graphics.group({
                        class: "apexcharts-yaxis"
                    }), e.forEach(function(g, v) {
                        var b = g.length === r.globals.dataPoints, k = a.graphics.group().attr({
                            class: "apexcharts-series",
                            "data:longestSeries": b,
                            seriesName: V.escapeString(r.globals.seriesNames[v]),
                            rel: v + 1,
                            "data:realIndex": v
                        });
                        a.dataRadiusOfPercent[v] = [], a.dataRadius[v] = [], a.angleArr[v] = [], g.forEach(function(B, P) {
                            var M = Math.abs(a.maxValue - a.minValue);
                            B -= a.minValue, a.isLog && (B = a.coreUtils.getLogVal(a.logBase, B, 0)), a.dataRadiusOfPercent[v][P] = B / M, a.dataRadius[v][P] = a.dataRadiusOfPercent[v][P] * a.size, a.angleArr[v][P] = P * a.disAngle;
                        }), h = a.getDataPointsPos(a.dataRadius[v], a.angleArr[v]);
                        var S = a.createPaths(h, {
                            x: 0,
                            y: 0
                        });
                        m = a.graphics.group({
                            class: "apexcharts-series-markers-wrap apexcharts-element-hidden"
                        }), f = a.graphics.group({
                            class: "apexcharts-datalabels",
                            "data:realIndex": v
                        }), r.globals.delayedElements.push({
                            el: m.node,
                            index: v
                        });
                        var x = {
                            i: v,
                            realIndex: v,
                            animationDelay: v,
                            initialSpeed: r.config.chart.animations.speed,
                            dataChangeSpeed: r.config.chart.animations.dynamicAnimation.speed,
                            className: "apexcharts-radar",
                            shouldClipToGrid: !1,
                            bindEventsOnPaths: !1,
                            stroke: r.globals.stroke.colors[v],
                            strokeLineCap: r.config.stroke.lineCap
                        }, C = null;
                        r.globals.previousPaths.length > 0 && (C = a.getPreviousPath(v));
                        for(var w = 0; w < S.linePathsTo.length; w++){
                            var F = a.graphics.renderPaths(ye(ye({}, x), {}, {
                                pathFrom: C === null ? S.linePathsFrom[w] : C,
                                pathTo: S.linePathsTo[w],
                                strokeWidth: Array.isArray(a.strokeWidth) ? a.strokeWidth[v] : a.strokeWidth,
                                fill: "none",
                                drawShadow: !1
                            }));
                            k.add(F);
                            var D = n.fillPath({
                                seriesNumber: v
                            }), _ = a.graphics.renderPaths(ye(ye({}, x), {}, {
                                pathFrom: C === null ? S.areaPathsFrom[w] : C,
                                pathTo: S.areaPathsTo[w],
                                strokeWidth: 0,
                                fill: D,
                                drawShadow: !1
                            }));
                            if (r.config.chart.dropShadow.enabled) {
                                var A = new ca(a.ctx), E = r.config.chart.dropShadow;
                                A.dropShadow(_, Object.assign({}, E, {
                                    noUserSpaceOnUse: !0
                                }), v);
                            }
                            k.add(_);
                        }
                        g.forEach(function(B, P) {
                            var M = new Ui(a.ctx).getMarkerConfig({
                                cssClass: "apexcharts-marker",
                                seriesIndex: v,
                                dataPointIndex: P
                            }), R = a.graphics.drawMarker(h[P].x, h[P].y, M);
                            R.attr("rel", P), R.attr("j", P), R.attr("index", v), R.node.setAttribute("default-marker-size", M.pSize);
                            var z = a.graphics.group({
                                class: "apexcharts-series-markers"
                            });
                            z && z.add(R), m.add(z), k.add(m);
                            var N = r.config.dataLabels;
                            if (N.enabled) {
                                var H = N.formatter(r.globals.series[v][P], {
                                    seriesIndex: v,
                                    dataPointIndex: P,
                                    w: r
                                });
                                o.plotDataLabelsText({
                                    x: h[P].x,
                                    y: h[P].y,
                                    text: H,
                                    textAnchor: "middle",
                                    i: v,
                                    j: v,
                                    parent: f,
                                    offsetCorrection: !1,
                                    dataLabelsConfig: ye({}, N)
                                });
                            }
                            k.add(f);
                        }), i.push(k);
                    }), this.drawPolygons({
                        parent: d
                    }), r.config.xaxis.labels.show) {
                        var p = this.drawXAxisTexts();
                        d.add(p);
                    }
                    return i.forEach(function(g) {
                        d.add(g);
                    }), d.add(this.yaxisLabels), d;
                }
            },
            {
                key: "drawPolygons",
                value: function(e) {
                    for(var a = this, r = this.w, n = e.parent, i = new Z1(this.ctx), o = r.globals.yAxisScale[0].result.reverse(), s = o.length, l = [], u = this.size / (s - 1), c = 0; c < s; c++)l[c] = u * c;
                    l.reverse();
                    var d = [], h = [];
                    l.forEach(function(m, f) {
                        var p = V.getPolygonPos(m, a.dataPointsLen), g = "";
                        p.forEach(function(v, b) {
                            if (f === 0) {
                                var k = a.graphics.drawLine(v.x, v.y, 0, 0, Array.isArray(a.polygons.connectorColors) ? a.polygons.connectorColors[b] : a.polygons.connectorColors);
                                h.push(k);
                            }
                            b === 0 && a.yaxisLabelsTextsPos.push({
                                x: v.x,
                                y: v.y
                            }), g += v.x + "," + v.y + " ";
                        }), d.push(g);
                    }), d.forEach(function(m, f) {
                        var p = a.polygons.strokeColors, g = a.polygons.strokeWidth, v = a.graphics.drawPolygon(m, Array.isArray(p) ? p[f] : p, Array.isArray(g) ? g[f] : g, r.globals.radarPolygons.fill.colors[f]);
                        n.add(v);
                    }), h.forEach(function(m) {
                        n.add(m);
                    }), r.config.yaxis[0].show && this.yaxisLabelsTextsPos.forEach(function(m, f) {
                        var p = i.drawYAxisTexts(m.x, m.y, f, o[f]);
                        a.yaxisLabels.add(p);
                    });
                }
            },
            {
                key: "drawXAxisTexts",
                value: function() {
                    var e = this, a = this.w, r = a.config.xaxis.labels, n = this.graphics.group({
                        class: "apexcharts-xaxis"
                    }), i = V.getPolygonPos(this.size, this.dataPointsLen);
                    return a.globals.labels.forEach(function(o, s) {
                        var l = a.config.xaxis.labels.formatter, u = new Ai(e.ctx);
                        if (i[s]) {
                            var c = e.getTextPos(i[s], e.size), d = l(o, {
                                seriesIndex: -1,
                                dataPointIndex: s,
                                w: a
                            });
                            u.plotDataLabelsText({
                                x: c.newX,
                                y: c.newY,
                                text: d,
                                textAnchor: c.textAnchor,
                                i: s,
                                j: s,
                                parent: n,
                                className: "apexcharts-xaxis-label",
                                color: Array.isArray(r.style.colors) && r.style.colors[s] ? r.style.colors[s] : "#a8a8a8",
                                dataLabelsConfig: ye({
                                    textAnchor: c.textAnchor,
                                    dropShadow: {
                                        enabled: !1
                                    }
                                }, r),
                                offsetCorrection: !1
                            }).on("click", function(h) {
                                if (typeof a.config.chart.events.xAxisLabelClick == "function") {
                                    var m = Object.assign({}, a, {
                                        labelIndex: s
                                    });
                                    a.config.chart.events.xAxisLabelClick(h, e.ctx, m);
                                }
                            });
                        }
                    }), n;
                }
            },
            {
                key: "createPaths",
                value: function(e, a) {
                    var r = this, n = [], i = [], o = [], s = [];
                    if (e.length) {
                        i = [
                            this.graphics.move(a.x, a.y)
                        ], s = [
                            this.graphics.move(a.x, a.y)
                        ];
                        var l = this.graphics.move(e[0].x, e[0].y), u = this.graphics.move(e[0].x, e[0].y);
                        e.forEach(function(c, d) {
                            l += r.graphics.line(c.x, c.y), u += r.graphics.line(c.x, c.y), d === e.length - 1 && (l += "Z", u += "Z");
                        }), n.push(l), o.push(u);
                    }
                    return {
                        linePathsFrom: i,
                        linePathsTo: n,
                        areaPathsFrom: s,
                        areaPathsTo: o
                    };
                }
            },
            {
                key: "getTextPos",
                value: function(e, a) {
                    var r = "middle", n = e.x, i = e.y;
                    return Math.abs(e.x) >= 10 ? e.x > 0 ? (r = "start", n += 10) : e.x < 0 && (r = "end", n -= 10) : r = "middle", Math.abs(e.y) >= a - 10 && (e.y < 0 ? i -= 10 : e.y > 0 && (i += 10)), {
                        textAnchor: r,
                        newX: n,
                        newY: i
                    };
                }
            },
            {
                key: "getPreviousPath",
                value: function(e) {
                    for(var a = this.w, r = null, n = 0; n < a.globals.previousPaths.length; n++){
                        var i = a.globals.previousPaths[n];
                        i.paths.length > 0 && parseInt(i.realIndex, 10) === parseInt(e, 10) && a.globals.previousPaths[n].paths[0] !== void 0 && (r = a.globals.previousPaths[n].paths[0].d);
                    }
                    return r;
                }
            },
            {
                key: "getDataPointsPos",
                value: function(e, a) {
                    var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : this.dataPointsLen;
                    e = e || [], a = a || [];
                    for(var n = [], i = 0; i < r; i++){
                        var o = {};
                        o.x = e[i] * Math.sin(a[i]), o.y = -e[i] * Math.cos(a[i]), n.push(o);
                    }
                    return n;
                }
            }
        ]), t;
    }(), wI = function(t) {
        Zo(a, Q1);
        var e = Jo(a);
        function a(r) {
            var n;
            Ae(this, a), (n = e.call(this, r)).ctx = r, n.w = r.w, n.animBeginArr = [
                0
            ], n.animDur = 0;
            var i = n.w;
            return n.startAngle = i.config.plotOptions.radialBar.startAngle, n.endAngle = i.config.plotOptions.radialBar.endAngle, n.totalAngle = Math.abs(i.config.plotOptions.radialBar.endAngle - i.config.plotOptions.radialBar.startAngle), n.trackStartAngle = i.config.plotOptions.radialBar.track.startAngle, n.trackEndAngle = i.config.plotOptions.radialBar.track.endAngle, n.barLabels = n.w.config.plotOptions.radialBar.barLabels, n.donutDataLabels = n.w.config.plotOptions.radialBar.dataLabels, n.radialDataLabels = n.donutDataLabels, n.trackStartAngle || (n.trackStartAngle = n.startAngle), n.trackEndAngle || (n.trackEndAngle = n.endAngle), n.endAngle === 360 && (n.endAngle = 359.99), n.margin = parseInt(i.config.plotOptions.radialBar.track.margin, 10), n.onBarLabelClick = n.onBarLabelClick.bind(h1(n)), n;
        }
        return De(a, [
            {
                key: "draw",
                value: function(r) {
                    var n = this.w, i = new he(this.ctx), o = i.group({
                        class: "apexcharts-radialbar"
                    });
                    if (n.globals.noData) return o;
                    var s = i.group(), l = this.defaultSize / 2, u = n.globals.gridWidth / 2, c = this.defaultSize / 2.05;
                    n.config.chart.sparkline.enabled || (c = c - n.config.stroke.width - n.config.chart.dropShadow.blur);
                    var d = n.globals.fill.colors;
                    if (n.config.plotOptions.radialBar.track.show) {
                        var h = this.drawTracks({
                            size: c,
                            centerX: u,
                            centerY: l,
                            colorArr: d,
                            series: r
                        });
                        s.add(h);
                    }
                    var m = this.drawArcs({
                        size: c,
                        centerX: u,
                        centerY: l,
                        colorArr: d,
                        series: r
                    }), f = 360;
                    n.config.plotOptions.radialBar.startAngle < 0 && (f = this.totalAngle);
                    var p = (360 - f) / 360;
                    if (n.globals.radialSize = c - c * p, this.radialDataLabels.value.show) {
                        var g = Math.max(this.radialDataLabels.value.offsetY, this.radialDataLabels.name.offsetY);
                        n.globals.radialSize += g * p;
                    }
                    return s.add(m.g), n.config.plotOptions.radialBar.hollow.position === "front" && (m.g.add(m.elHollow), m.dataLabels && m.g.add(m.dataLabels)), o.add(s), o;
                }
            },
            {
                key: "drawTracks",
                value: function(r) {
                    var n = this.w, i = new he(this.ctx), o = i.group({
                        class: "apexcharts-tracks"
                    }), s = new ca(this.ctx), l = new hr(this.ctx), u = this.getStrokeWidth(r);
                    r.size = r.size - u / 2;
                    for(var c = 0; c < r.series.length; c++){
                        var d = i.group({
                            class: "apexcharts-radialbar-track apexcharts-track"
                        });
                        o.add(d), d.attr({
                            rel: c + 1
                        }), r.size = r.size - u - this.margin;
                        var h = n.config.plotOptions.radialBar.track, m = l.fillPath({
                            seriesNumber: 0,
                            size: r.size,
                            fillColors: Array.isArray(h.background) ? h.background[c] : h.background,
                            solid: !0
                        }), f = this.trackStartAngle, p = this.trackEndAngle;
                        Math.abs(p) + Math.abs(f) >= 360 && (p = 360 - Math.abs(this.startAngle) - .1);
                        var g = i.drawPath({
                            d: "",
                            stroke: m,
                            strokeWidth: u * parseInt(h.strokeWidth, 10) / 100,
                            fill: "none",
                            strokeOpacity: h.opacity,
                            classes: "apexcharts-radialbar-area"
                        });
                        if (h.dropShadow.enabled) {
                            var v = h.dropShadow;
                            s.dropShadow(g, v);
                        }
                        d.add(g), g.attr("id", "apexcharts-radialbarTrack-" + c), this.animatePaths(g, {
                            centerX: r.centerX,
                            centerY: r.centerY,
                            endAngle: p,
                            startAngle: f,
                            size: r.size,
                            i: c,
                            totalItems: 2,
                            animBeginArr: 0,
                            dur: 0,
                            isTrack: !0
                        });
                    }
                    return o;
                }
            },
            {
                key: "drawArcs",
                value: function(r) {
                    var n = this.w, i = new he(this.ctx), o = new hr(this.ctx), s = new ca(this.ctx), l = i.group(), u = this.getStrokeWidth(r);
                    r.size = r.size - u / 2;
                    var c = n.config.plotOptions.radialBar.hollow.background, d = r.size - u * r.series.length - this.margin * r.series.length - u * parseInt(n.config.plotOptions.radialBar.track.strokeWidth, 10) / 100 / 2, h = d - n.config.plotOptions.radialBar.hollow.margin;
                    n.config.plotOptions.radialBar.hollow.image !== void 0 && (c = this.drawHollowImage(r, l, d, c));
                    var m = this.drawHollow({
                        size: h,
                        centerX: r.centerX,
                        centerY: r.centerY,
                        fill: c || "transparent"
                    });
                    if (n.config.plotOptions.radialBar.hollow.dropShadow.enabled) {
                        var f = n.config.plotOptions.radialBar.hollow.dropShadow;
                        s.dropShadow(m, f);
                    }
                    var p = 1;
                    !this.radialDataLabels.total.show && n.globals.series.length > 1 && (p = 0);
                    var g = null;
                    if (this.radialDataLabels.show) {
                        var v = n.globals.dom.Paper.findOne(".apexcharts-datalabels-group");
                        g = this.renderInnerDataLabels(v, this.radialDataLabels, {
                            hollowSize: d,
                            centerX: r.centerX,
                            centerY: r.centerY,
                            opacity: p
                        });
                    }
                    n.config.plotOptions.radialBar.hollow.position === "back" && (l.add(m), g && l.add(g));
                    var b = !1;
                    n.config.plotOptions.radialBar.inverseOrder && (b = !0);
                    for(var k = b ? r.series.length - 1 : 0; b ? k >= 0 : k < r.series.length; b ? k-- : k++){
                        var S = i.group({
                            class: "apexcharts-series apexcharts-radial-series",
                            seriesName: V.escapeString(n.globals.seriesNames[k])
                        });
                        l.add(S), S.attr({
                            rel: k + 1,
                            "data:realIndex": k
                        }), this.ctx.series.addCollapsedClassToSeries(S, k), r.size = r.size - u - this.margin;
                        var x = o.fillPath({
                            seriesNumber: k,
                            size: r.size,
                            value: r.series[k]
                        }), C = this.startAngle, w = void 0, F = V.negToZero(r.series[k] > 100 ? 100 : r.series[k]) / 100, D = Math.round(this.totalAngle * F) + this.startAngle, _ = void 0;
                        n.globals.dataChanged && (w = this.startAngle, _ = Math.round(this.totalAngle * V.negToZero(n.globals.previousPaths[k]) / 100) + w), Math.abs(D) + Math.abs(C) > 360 && (D -= .01), Math.abs(_) + Math.abs(w) > 360 && (_ -= .01);
                        var A = D - C, E = Array.isArray(n.config.stroke.dashArray) ? n.config.stroke.dashArray[k] : n.config.stroke.dashArray, B = i.drawPath({
                            d: "",
                            stroke: x,
                            strokeWidth: u,
                            fill: "none",
                            fillOpacity: n.config.fill.opacity,
                            classes: "apexcharts-radialbar-area apexcharts-radialbar-slice-" + k,
                            strokeDashArray: E
                        });
                        if (he.setAttrs(B.node, {
                            "data:angle": A,
                            "data:value": r.series[k]
                        }), n.config.chart.dropShadow.enabled) {
                            var P = n.config.chart.dropShadow;
                            s.dropShadow(B, P, k);
                        }
                        if (s.setSelectionFilter(B, 0, k), this.addListeners(B, this.radialDataLabels), S.add(B), B.attr({
                            index: 0,
                            j: k
                        }), this.barLabels.enabled) {
                            var M = V.polarToCartesian(r.centerX, r.centerY, r.size, C), R = this.barLabels.formatter(n.globals.seriesNames[k], {
                                seriesIndex: k,
                                w: n
                            }), z = [
                                "apexcharts-radialbar-label"
                            ];
                            this.barLabels.onClick || z.push("apexcharts-no-click");
                            var N = this.barLabels.useSeriesColors ? n.globals.colors[k] : n.config.chart.foreColor;
                            N || (N = n.config.chart.foreColor);
                            var H = M.x + this.barLabels.offsetX, I = M.y + this.barLabels.offsetY, L = i.drawText({
                                x: H,
                                y: I,
                                text: R,
                                textAnchor: "end",
                                dominantBaseline: "middle",
                                fontFamily: this.barLabels.fontFamily,
                                fontWeight: this.barLabels.fontWeight,
                                fontSize: this.barLabels.fontSize,
                                foreColor: N,
                                cssClass: z.join(" ")
                            });
                            L.on("click", this.onBarLabelClick), L.attr({
                                rel: k + 1
                            }), C !== 0 && L.attr({
                                "transform-origin": "".concat(H, " ").concat(I),
                                transform: "rotate(".concat(C, " 0 0)")
                            }), S.add(L);
                        }
                        var G = 0;
                        !this.initialAnim || n.globals.resized || n.globals.dataChanged || (G = n.config.chart.animations.speed), n.globals.dataChanged && (G = n.config.chart.animations.dynamicAnimation.speed), this.animDur = G / (1.2 * r.series.length) + this.animDur, this.animBeginArr.push(this.animDur), this.animatePaths(B, {
                            centerX: r.centerX,
                            centerY: r.centerY,
                            endAngle: D,
                            startAngle: C,
                            prevEndAngle: _,
                            prevStartAngle: w,
                            size: r.size,
                            i: k,
                            totalItems: 2,
                            animBeginArr: this.animBeginArr,
                            dur: G,
                            shouldSetPrevPaths: !0
                        });
                    }
                    return {
                        g: l,
                        elHollow: m,
                        dataLabels: g
                    };
                }
            },
            {
                key: "drawHollow",
                value: function(r) {
                    var n = new he(this.ctx).drawCircle(2 * r.size);
                    return n.attr({
                        class: "apexcharts-radialbar-hollow",
                        cx: r.centerX,
                        cy: r.centerY,
                        r: r.size,
                        fill: r.fill
                    }), n;
                }
            },
            {
                key: "drawHollowImage",
                value: function(r, n, i, o) {
                    var s = this.w, l = new hr(this.ctx), u = V.randomId(), c = s.config.plotOptions.radialBar.hollow.image;
                    if (s.config.plotOptions.radialBar.hollow.imageClipped) l.clippedImgArea({
                        width: i,
                        height: i,
                        image: c,
                        patternID: "pattern".concat(s.globals.cuid).concat(u)
                    }), o = "url(#pattern".concat(s.globals.cuid).concat(u, ")");
                    else {
                        var d = s.config.plotOptions.radialBar.hollow.imageWidth, h = s.config.plotOptions.radialBar.hollow.imageHeight;
                        if (d === void 0 && h === void 0) {
                            var m = s.globals.dom.Paper.image(c, function(p) {
                                this.move(r.centerX - p.width / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetX, r.centerY - p.height / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetY);
                            });
                            n.add(m);
                        } else {
                            var f = s.globals.dom.Paper.image(c, function(p) {
                                this.move(r.centerX - d / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetX, r.centerY - h / 2 + s.config.plotOptions.radialBar.hollow.imageOffsetY), this.size(d, h);
                            });
                            n.add(f);
                        }
                    }
                    return o;
                }
            },
            {
                key: "getStrokeWidth",
                value: function(r) {
                    var n = this.w;
                    return r.size * (100 - parseInt(n.config.plotOptions.radialBar.hollow.size, 10)) / 100 / (r.series.length + 1) - this.margin;
                }
            },
            {
                key: "onBarLabelClick",
                value: function(r) {
                    var n = parseInt(r.target.getAttribute("rel"), 10) - 1, i = this.barLabels.onClick, o = this.w;
                    i && i(o.globals.seriesNames[n], {
                        w: o,
                        seriesIndex: n
                    });
                }
            }
        ]), a;
    }(), SI = function(t) {
        Zo(a, Di);
        var e = Jo(a);
        function a() {
            return Ae(this, a), e.apply(this, arguments);
        }
        return De(a, [
            {
                key: "draw",
                value: function(r, n) {
                    var i = this.w, o = new he(this.ctx);
                    this.rangeBarOptions = this.w.config.plotOptions.rangeBar, this.series = r, this.seriesRangeStart = i.globals.seriesRangeStart, this.seriesRangeEnd = i.globals.seriesRangeEnd, this.barHelpers.initVariables(r);
                    for(var s = o.group({
                        class: "apexcharts-rangebar-series apexcharts-plot-series"
                    }), l = 0; l < r.length; l++){
                        var u, c, d, h, m = void 0, f = void 0, p = i.globals.comboCharts ? n[l] : l, g = this.barHelpers.getGroupIndex(p).columnGroupIndex, v = o.group({
                            class: "apexcharts-series",
                            seriesName: V.escapeString(i.globals.seriesNames[p]),
                            rel: l + 1,
                            "data:realIndex": p
                        });
                        this.ctx.series.addCollapsedClassToSeries(v, p), r[l].length > 0 && (this.visibleI = this.visibleI + 1);
                        var b = 0, k = 0, S = 0;
                        this.yRatio.length > 1 && (this.yaxisIndex = i.globals.seriesYAxisReverseMap[p][0], S = p);
                        var x = this.barHelpers.initialPositions(p);
                        f = x.y, h = x.zeroW, m = x.x, k = x.barWidth, b = x.barHeight, u = x.xDivision, c = x.yDivision, d = x.zeroH;
                        for(var C = o.group({
                            class: "apexcharts-datalabels",
                            "data:realIndex": p
                        }), w = o.group({
                            class: "apexcharts-rangebar-goals-markers"
                        }), F = 0; F < i.globals.dataPoints; F++){
                            var D = this.barHelpers.getStrokeWidth(l, F, p), _ = this.seriesRangeStart[l][F], A = this.seriesRangeEnd[l][F], E = null, B = null, P = null, M = {
                                x: m,
                                y: f,
                                strokeWidth: D,
                                elSeries: v
                            }, R = this.seriesLen;
                            if (i.config.plotOptions.bar.rangeBarGroupRows && (R = 1), i.config.series[l].data[F] === void 0) break;
                            if (this.isHorizontal) {
                                P = f + b * this.visibleI;
                                var z = (c - b * R) / 2;
                                if (i.config.series[l].data[F].x) {
                                    var N = this.detectOverlappingBars({
                                        i: l,
                                        j: F,
                                        barYPosition: P,
                                        srty: z,
                                        barHeight: b,
                                        yDivision: c,
                                        initPositions: x
                                    });
                                    b = N.barHeight, P = N.barYPosition;
                                }
                                k = (E = this.drawRangeBarPaths(ye({
                                    indexes: {
                                        i: l,
                                        j: F,
                                        realIndex: p
                                    },
                                    barHeight: b,
                                    barYPosition: P,
                                    zeroW: h,
                                    yDivision: c,
                                    y1: _,
                                    y2: A
                                }, M))).barWidth;
                            } else {
                                i.globals.isXNumeric && (m = (i.globals.seriesX[l][F] - i.globals.minX) / this.xRatio - k / 2), B = m + k * this.visibleI;
                                var H = (u - k * R) / 2;
                                if (i.config.series[l].data[F].x) {
                                    var I = this.detectOverlappingBars({
                                        i: l,
                                        j: F,
                                        barXPosition: B,
                                        srtx: H,
                                        barWidth: k,
                                        xDivision: u,
                                        initPositions: x
                                    });
                                    k = I.barWidth, B = I.barXPosition;
                                }
                                b = (E = this.drawRangeColumnPaths(ye({
                                    indexes: {
                                        i: l,
                                        j: F,
                                        realIndex: p,
                                        translationsIndex: S
                                    },
                                    barWidth: k,
                                    barXPosition: B,
                                    zeroH: d,
                                    xDivision: u
                                }, M))).barHeight;
                            }
                            var L = this.barHelpers.drawGoalLine({
                                barXPosition: E.barXPosition,
                                barYPosition: P,
                                goalX: E.goalX,
                                goalY: E.goalY,
                                barHeight: b,
                                barWidth: k
                            });
                            L && w.add(L), f = E.y, m = E.x;
                            var G = this.barHelpers.getPathFillColor(r, l, F, p);
                            this.renderSeries({
                                realIndex: p,
                                pathFill: G.color,
                                lineFill: G.useRangeColor ? G.color : i.globals.stroke.colors[p],
                                j: F,
                                i: l,
                                x: m,
                                y: f,
                                y1: _,
                                y2: A,
                                pathFrom: E.pathFrom,
                                pathTo: E.pathTo,
                                strokeWidth: D,
                                elSeries: v,
                                series: r,
                                barHeight: b,
                                barWidth: k,
                                barXPosition: B,
                                barYPosition: P,
                                columnGroupIndex: g,
                                elDataLabelsWrap: C,
                                elGoalsMarkers: w,
                                visibleSeries: this.visibleI,
                                type: "rangebar"
                            });
                        }
                        s.add(v);
                    }
                    return s;
                }
            },
            {
                key: "detectOverlappingBars",
                value: function(r) {
                    var n = r.i, i = r.j, o = r.barYPosition, s = r.barXPosition, l = r.srty, u = r.srtx, c = r.barHeight, d = r.barWidth, h = r.yDivision, m = r.xDivision, f = r.initPositions, p = this.w, g = [], v = p.config.series[n].data[i].rangeName, b = p.config.series[n].data[i].x, k = Array.isArray(b) ? b.join(" ") : b, S = p.globals.labels.map(function(C) {
                        return Array.isArray(C) ? C.join(" ") : C;
                    }).indexOf(k), x = p.globals.seriesRange[n].findIndex(function(C) {
                        return C.x === k && C.overlaps.length > 0;
                    });
                    return this.isHorizontal ? (o = p.config.plotOptions.bar.rangeBarGroupRows ? l + h * S : l + c * this.visibleI + h * S, x > -1 && !p.config.plotOptions.bar.rangeBarOverlap && (g = p.globals.seriesRange[n][x].overlaps).indexOf(v) > -1 && (o = (c = f.barHeight / g.length) * this.visibleI + h * (100 - parseInt(this.barOptions.barHeight, 10)) / 100 / 2 + c * (this.visibleI + g.indexOf(v)) + h * S)) : (S > -1 && !p.globals.timescaleLabels.length && (s = p.config.plotOptions.bar.rangeBarGroupRows ? u + m * S : u + d * this.visibleI + m * S), x > -1 && !p.config.plotOptions.bar.rangeBarOverlap && (g = p.globals.seriesRange[n][x].overlaps).indexOf(v) > -1 && (s = (d = f.barWidth / g.length) * this.visibleI + m * (100 - parseInt(this.barOptions.barWidth, 10)) / 100 / 2 + d * (this.visibleI + g.indexOf(v)) + m * S)), {
                        barYPosition: o,
                        barXPosition: s,
                        barHeight: c,
                        barWidth: d
                    };
                }
            },
            {
                key: "drawRangeColumnPaths",
                value: function(r) {
                    var n = r.indexes, i = r.x, o = r.xDivision, s = r.barWidth, l = r.barXPosition, u = r.zeroH, c = this.w, d = n.i, h = n.j, m = n.realIndex, f = n.translationsIndex, p = this.yRatio[f], g = this.getRangeValue(m, h), v = Math.min(g.start, g.end), b = Math.max(g.start, g.end);
                    this.series[d][h] === void 0 || this.series[d][h] === null ? v = u : (v = u - v / p, b = u - b / p);
                    var k = Math.abs(b - v), S = this.barHelpers.getColumnPaths({
                        barXPosition: l,
                        barWidth: s,
                        y1: v,
                        y2: b,
                        strokeWidth: this.strokeWidth,
                        series: this.seriesRangeEnd,
                        realIndex: m,
                        i: m,
                        j: h,
                        w: c
                    });
                    if (c.globals.isXNumeric) {
                        var x = this.getBarXForNumericXAxis({
                            x: i,
                            j: h,
                            realIndex: m,
                            barWidth: s
                        });
                        i = x.x, l = x.barXPosition;
                    } else i += o;
                    return {
                        pathTo: S.pathTo,
                        pathFrom: S.pathFrom,
                        barHeight: k,
                        x: i,
                        y: g.start < 0 && g.end < 0 ? v : b,
                        goalY: this.barHelpers.getGoalValues("y", null, u, d, h, f),
                        barXPosition: l
                    };
                }
            },
            {
                key: "preventBarOverflow",
                value: function(r) {
                    var n = this.w;
                    return r < 0 && (r = 0), r > n.globals.gridWidth && (r = n.globals.gridWidth), r;
                }
            },
            {
                key: "drawRangeBarPaths",
                value: function(r) {
                    var n = r.indexes, i = r.y, o = r.y1, s = r.y2, l = r.yDivision, u = r.barHeight, c = r.barYPosition, d = r.zeroW, h = this.w, m = n.realIndex, f = n.j, p = this.preventBarOverflow(d + o / this.invertedYRatio), g = this.preventBarOverflow(d + s / this.invertedYRatio), v = this.getRangeValue(m, f), b = Math.abs(g - p), k = this.barHelpers.getBarpaths({
                        barYPosition: c,
                        barHeight: u,
                        x1: p,
                        x2: g,
                        strokeWidth: this.strokeWidth,
                        series: this.seriesRangeEnd,
                        i: m,
                        realIndex: m,
                        j: f,
                        w: h
                    });
                    return h.globals.isXNumeric || (i += l), {
                        pathTo: k.pathTo,
                        pathFrom: k.pathFrom,
                        barWidth: b,
                        x: v.start < 0 && v.end < 0 ? p : g,
                        goalX: this.barHelpers.getGoalValues("x", d, null, m, f),
                        y: i
                    };
                }
            },
            {
                key: "getRangeValue",
                value: function(r, n) {
                    var i = this.w;
                    return {
                        start: i.globals.seriesRangeStart[r][n],
                        end: i.globals.seriesRangeEnd[r][n]
                    };
                }
            }
        ]), a;
    }(), CI = function() {
        function t(e) {
            Ae(this, t), this.w = e.w, this.lineCtx = e;
        }
        return De(t, [
            {
                key: "sameValueSeriesFix",
                value: function(e, a) {
                    var r = this.w;
                    if ((r.config.fill.type === "gradient" || r.config.fill.type[e] === "gradient") && new Ht(this.lineCtx.ctx, r).seriesHaveSameValues(e)) {
                        var n = a[e].slice();
                        n[n.length - 1] = n[n.length - 1] + 1e-6, a[e] = n;
                    }
                    return a;
                }
            },
            {
                key: "calculatePoints",
                value: function(e) {
                    var a = e.series, r = e.realIndex, n = e.x, i = e.y, o = e.i, s = e.j, l = e.prevY, u = this.w, c = [], d = [], h = this.lineCtx.categoryAxisCorrection + u.config.markers.offsetX;
                    return u.globals.isXNumeric && (h = (u.globals.seriesX[r][0] - u.globals.minX) / this.lineCtx.xRatio + u.config.markers.offsetX), s === 0 && (c.push(h), d.push(V.isNumber(a[o][0]) ? l + u.config.markers.offsetY : null)), c.push(n + u.config.markers.offsetX), d.push(V.isNumber(a[o][s + 1]) ? i + u.config.markers.offsetY : null), {
                        x: c,
                        y: d
                    };
                }
            },
            {
                key: "checkPreviousPaths",
                value: function(e) {
                    for(var a = e.pathFromLine, r = e.pathFromArea, n = e.realIndex, i = this.w, o = 0; o < i.globals.previousPaths.length; o++){
                        var s = i.globals.previousPaths[o];
                        (s.type === "line" || s.type === "area") && s.paths.length > 0 && parseInt(s.realIndex, 10) === parseInt(n, 10) && (s.type === "line" ? (this.lineCtx.appendPathFrom = !1, a = i.globals.previousPaths[o].paths[0].d) : s.type === "area" && (this.lineCtx.appendPathFrom = !1, r = i.globals.previousPaths[o].paths[0].d, i.config.stroke.show && i.globals.previousPaths[o].paths[1] && (a = i.globals.previousPaths[o].paths[1].d)));
                    }
                    return {
                        pathFromLine: a,
                        pathFromArea: r
                    };
                }
            },
            {
                key: "determineFirstPrevY",
                value: function(e) {
                    var a, r, n, i = e.i, o = e.realIndex, s = e.series, l = e.prevY, u = e.lineYPosition, c = e.translationsIndex, d = this.w, h = d.config.chart.stacked && !d.globals.comboCharts || d.config.chart.stacked && d.globals.comboCharts && (!this.w.config.chart.stackOnlyBar || ((a = this.w.config.series[o]) === null || a === void 0 ? void 0 : a.type) === "bar" || ((r = this.w.config.series[o]) === null || r === void 0 ? void 0 : r.type) === "column");
                    if (((n = s[i]) === null || n === void 0 ? void 0 : n[0]) !== void 0) l = (u = h && i > 0 ? this.lineCtx.prevSeriesY[i - 1][0] : this.lineCtx.zeroY) - s[i][0] / this.lineCtx.yRatio[c] + 2 * (this.lineCtx.isReversed ? s[i][0] / this.lineCtx.yRatio[c] : 0);
                    else if (h && i > 0 && s[i][0] === void 0) {
                        for(var m = i - 1; m >= 0; m--)if (s[m][0] !== null && s[m][0] !== void 0) {
                            l = u = this.lineCtx.prevSeriesY[m][0];
                            break;
                        }
                    }
                    return {
                        prevY: l,
                        lineYPosition: u
                    };
                }
            }
        ]), t;
    }(), AI = function(t) {
        for(var e, a, r, n, i = function(c) {
            for(var d = [], h = c[0], m = c[1], f = d[0] = Wd(h, m), p = 1, g = c.length - 1; p < g; p++)h = m, m = c[p + 1], d[p] = .5 * (f + (f = Wd(h, m)));
            return d[p] = f, d;
        }(t), o = t.length - 1, s = [], l = 0; l < o; l++)r = Wd(t[l], t[l + 1]), Math.abs(r) < 1e-6 ? i[l] = i[l + 1] = 0 : (n = (e = i[l] / r) * e + (a = i[l + 1] / r) * a) > 9 && (n = 3 * r / Math.sqrt(n), i[l] = n * e, i[l + 1] = n * a);
        for(var u = 0; u <= o; u++)n = (t[Math.min(o, u + 1)][0] - t[Math.max(0, u - 1)][0]) / (6 * (1 + i[u] * i[u])), s.push([
            n || 0,
            i[u] * n || 0
        ]);
        return s;
    }, DI = function(t) {
        var e = AI(t), a = t[1], r = t[0], n = [], i = e[1], o = e[0];
        n.push(r, [
            r[0] + o[0],
            r[1] + o[1],
            a[0] - i[0],
            a[1] - i[1],
            a[0],
            a[1]
        ]);
        for(var s = 2, l = e.length; s < l; s++){
            var u = t[s], c = e[s];
            n.push([
                u[0] - c[0],
                u[1] - c[1],
                u[0],
                u[1]
            ]);
        }
        return n;
    }, TI = function(t, e, a) {
        var r = t.slice(e, a);
        if (e) {
            if (a - e > 1 && r[1].length < 6) {
                var n = r[0].length;
                r[1] = [
                    2 * r[0][n - 2] - r[0][n - 4],
                    2 * r[0][n - 1] - r[0][n - 3]
                ].concat(r[1]);
            }
            r[0] = r[0].slice(-2);
        }
        return r;
    };
    function Wd(t, e) {
        return (e[1] - t[1]) / (e[0] - t[0]);
    }
    var Gd = function() {
        function t(e, a, r) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.xyRatios = a, this.pointsChart = !(this.w.config.chart.type !== "bubble" && this.w.config.chart.type !== "scatter") || r, this.scatter = new $1(this.ctx), this.noNegatives = this.w.globals.minX === Number.MAX_VALUE, this.lineHelpers = new CI(this), this.markers = new Ui(this.ctx), this.prevSeriesY = [], this.categoryAxisCorrection = 0, this.yaxisIndex = 0;
        }
        return De(t, [
            {
                key: "draw",
                value: function(e, a, r, n) {
                    var i, o = this.w, s = new he(this.ctx), l = o.globals.comboCharts ? a : o.config.chart.type, u = s.group({
                        class: "apexcharts-".concat(l, "-series apexcharts-plot-series")
                    }), c = new Ht(this.ctx, o);
                    this.yRatio = this.xyRatios.yRatio, this.zRatio = this.xyRatios.zRatio, this.xRatio = this.xyRatios.xRatio, this.baseLineY = this.xyRatios.baseLineY, e = c.getLogSeries(e), this.yRatio = c.getLogYRatios(this.yRatio), this.prevSeriesY = [];
                    for(var d = [], h = 0; h < e.length; h++){
                        e = this.lineHelpers.sameValueSeriesFix(h, e);
                        var m = o.globals.comboCharts ? r[h] : h, f = this.yRatio.length > 1 ? m : 0;
                        this._initSerieVariables(e, h, m);
                        var p = [], g = [], v = [], b = o.globals.padHorizontal + this.categoryAxisCorrection;
                        this.ctx.series.addCollapsedClassToSeries(this.elSeries, m), o.globals.isXNumeric && o.globals.seriesX.length > 0 && (b = (o.globals.seriesX[m][0] - o.globals.minX) / this.xRatio), v.push(b);
                        var k, S = b, x = void 0, C = S, w = this.zeroY, F = this.zeroY;
                        w = this.lineHelpers.determineFirstPrevY({
                            i: h,
                            realIndex: m,
                            series: e,
                            prevY: w,
                            lineYPosition: 0,
                            translationsIndex: f
                        }).prevY, o.config.stroke.curve === "monotoneCubic" && e[h][0] === null ? p.push(null) : p.push(w), k = w, l === "rangeArea" && (x = F = this.lineHelpers.determineFirstPrevY({
                            i: h,
                            realIndex: m,
                            series: n,
                            prevY: F,
                            lineYPosition: 0,
                            translationsIndex: f
                        }).prevY, g.push(p[0] !== null ? F : null));
                        var D = this._calculatePathsFrom({
                            type: l,
                            series: e,
                            i: h,
                            realIndex: m,
                            translationsIndex: f,
                            prevX: C,
                            prevY: w,
                            prevY2: F
                        }), _ = [
                            p[0]
                        ], A = [
                            g[0]
                        ], E = {
                            type: l,
                            series: e,
                            realIndex: m,
                            translationsIndex: f,
                            i: h,
                            x: b,
                            y: 1,
                            pX: S,
                            pY: k,
                            pathsFrom: D,
                            linePaths: [],
                            areaPaths: [],
                            seriesIndex: r,
                            lineYPosition: 0,
                            xArrj: v,
                            yArrj: p,
                            y2Arrj: g,
                            seriesRangeEnd: n
                        }, B = this._iterateOverDataPoints(ye(ye({}, E), {}, {
                            iterations: l === "rangeArea" ? e[h].length - 1 : void 0,
                            isRangeStart: !0
                        }));
                        if (l === "rangeArea") {
                            for(var P = this._calculatePathsFrom({
                                series: n,
                                i: h,
                                realIndex: m,
                                prevX: C,
                                prevY: F
                            }), M = this._iterateOverDataPoints(ye(ye({}, E), {}, {
                                series: n,
                                xArrj: [
                                    b
                                ],
                                yArrj: _,
                                y2Arrj: A,
                                pY: x,
                                areaPaths: B.areaPaths,
                                pathsFrom: P,
                                iterations: n[h].length - 1,
                                isRangeStart: !1
                            })), R = B.linePaths.length / 2, z = 0; z < R; z++)B.linePaths[z] = M.linePaths[z + R] + B.linePaths[z];
                            B.linePaths.splice(R), B.pathFromLine = M.pathFromLine + B.pathFromLine;
                        } else B.pathFromArea += "z";
                        this._handlePaths({
                            type: l,
                            realIndex: m,
                            i: h,
                            paths: B
                        }), this.elSeries.add(this.elPointsMain), this.elSeries.add(this.elDataLabelsWrap), d.push(this.elSeries);
                    }
                    if (((i = o.config.series[0]) === null || i === void 0 ? void 0 : i.zIndex) !== void 0 && d.sort(function(I, L) {
                        return Number(I.node.getAttribute("zIndex")) - Number(L.node.getAttribute("zIndex"));
                    }), o.config.chart.stacked) for(var N = d.length - 1; N >= 0; N--)u.add(d[N]);
                    else for(var H = 0; H < d.length; H++)u.add(d[H]);
                    return u;
                }
            },
            {
                key: "_initSerieVariables",
                value: function(e, a, r) {
                    var n = this.w, i = new he(this.ctx);
                    this.xDivision = n.globals.gridWidth / (n.globals.dataPoints - (n.config.xaxis.tickPlacement === "on" ? 1 : 0)), this.strokeWidth = Array.isArray(n.config.stroke.width) ? n.config.stroke.width[r] : n.config.stroke.width;
                    var o = 0;
                    if (this.yRatio.length > 1 && (this.yaxisIndex = n.globals.seriesYAxisReverseMap[r], o = r), this.isReversed = n.config.yaxis[this.yaxisIndex] && n.config.yaxis[this.yaxisIndex].reversed, this.zeroY = n.globals.gridHeight - this.baseLineY[o] - (this.isReversed ? n.globals.gridHeight : 0) + (this.isReversed ? 2 * this.baseLineY[o] : 0), this.areaBottomY = this.zeroY, (this.zeroY > n.globals.gridHeight || n.config.plotOptions.area.fillTo === "end") && (this.areaBottomY = n.globals.gridHeight), this.categoryAxisCorrection = this.xDivision / 2, this.elSeries = i.group({
                        class: "apexcharts-series",
                        zIndex: n.config.series[r].zIndex !== void 0 ? n.config.series[r].zIndex : r,
                        seriesName: V.escapeString(n.globals.seriesNames[r])
                    }), this.elPointsMain = i.group({
                        class: "apexcharts-series-markers-wrap",
                        "data:realIndex": r
                    }), n.globals.hasNullValues) {
                        var s = this.markers.plotChartMarkers({
                            pointsPos: {
                                x: [
                                    0
                                ],
                                y: [
                                    n.globals.gridHeight + n.globals.markers.largestSize
                                ]
                            },
                            seriesIndex: a,
                            j: 0,
                            pSize: .1,
                            alwaysDrawMarker: !0,
                            isVirtualPoint: !0
                        });
                        s !== null && this.elPointsMain.add(s);
                    }
                    this.elDataLabelsWrap = i.group({
                        class: "apexcharts-datalabels",
                        "data:realIndex": r
                    });
                    var l = e[a].length === n.globals.dataPoints;
                    this.elSeries.attr({
                        "data:longestSeries": l,
                        rel: a + 1,
                        "data:realIndex": r
                    }), this.appendPathFrom = !0;
                }
            },
            {
                key: "_calculatePathsFrom",
                value: function(e) {
                    var a, r, n, i, o = e.type, s = e.series, l = e.i, u = e.realIndex, c = e.translationsIndex, d = e.prevX, h = e.prevY, m = e.prevY2, f = this.w, p = new he(this.ctx);
                    if (s[l][0] === null) {
                        for(var g = 0; g < s[l].length; g++)if (s[l][g] !== null) {
                            d = this.xDivision * g, h = this.zeroY - s[l][g] / this.yRatio[c], a = p.move(d, h), r = p.move(d, this.areaBottomY);
                            break;
                        }
                    } else a = p.move(d, h), o === "rangeArea" && (a = p.move(d, m) + p.line(d, h)), r = p.move(d, this.areaBottomY) + p.line(d, h);
                    if (n = p.move(0, this.areaBottomY) + p.line(0, this.areaBottomY), i = p.move(0, this.areaBottomY) + p.line(0, this.areaBottomY), f.globals.previousPaths.length > 0) {
                        var v = this.lineHelpers.checkPreviousPaths({
                            pathFromLine: n,
                            pathFromArea: i,
                            realIndex: u
                        });
                        n = v.pathFromLine, i = v.pathFromArea;
                    }
                    return {
                        prevX: d,
                        prevY: h,
                        linePath: a,
                        areaPath: r,
                        pathFromLine: n,
                        pathFromArea: i
                    };
                }
            },
            {
                key: "_handlePaths",
                value: function(e) {
                    var a = e.type, r = e.realIndex, n = e.i, i = e.paths, o = this.w, s = new he(this.ctx), l = new hr(this.ctx);
                    this.prevSeriesY.push(i.yArrj), o.globals.seriesXvalues[r] = i.xArrj, o.globals.seriesYvalues[r] = i.yArrj;
                    var u = o.config.forecastDataPoints;
                    if (u.count > 0 && a !== "rangeArea") {
                        var c = o.globals.seriesXvalues[r][o.globals.seriesXvalues[r].length - u.count - 1], d = s.drawRect(c, 0, o.globals.gridWidth, o.globals.gridHeight, 0);
                        o.globals.dom.elForecastMask.appendChild(d.node);
                        var h = s.drawRect(0, 0, c, o.globals.gridHeight, 0);
                        o.globals.dom.elNonForecastMask.appendChild(h.node);
                    }
                    this.pointsChart || o.globals.delayedElements.push({
                        el: this.elPointsMain.node,
                        index: r
                    });
                    var m = {
                        i: n,
                        realIndex: r,
                        animationDelay: n,
                        initialSpeed: o.config.chart.animations.speed,
                        dataChangeSpeed: o.config.chart.animations.dynamicAnimation.speed,
                        className: "apexcharts-".concat(a)
                    };
                    if (a === "area") for(var f = l.fillPath({
                        seriesNumber: r
                    }), p = 0; p < i.areaPaths.length; p++){
                        var g = s.renderPaths(ye(ye({}, m), {}, {
                            pathFrom: i.pathFromArea,
                            pathTo: i.areaPaths[p],
                            stroke: "none",
                            strokeWidth: 0,
                            strokeLineCap: null,
                            fill: f
                        }));
                        this.elSeries.add(g);
                    }
                    if (o.config.stroke.show && !this.pointsChart) {
                        var v = null;
                        if (a === "line") v = l.fillPath({
                            seriesNumber: r,
                            i: n
                        });
                        else if (o.config.stroke.fill.type === "solid") v = o.globals.stroke.colors[r];
                        else {
                            var b = o.config.fill;
                            o.config.fill = o.config.stroke.fill, v = l.fillPath({
                                seriesNumber: r,
                                i: n
                            }), o.config.fill = b;
                        }
                        for(var k = 0; k < i.linePaths.length; k++){
                            var S = v;
                            a === "rangeArea" && (S = l.fillPath({
                                seriesNumber: r
                            }));
                            var x = ye(ye({}, m), {}, {
                                pathFrom: i.pathFromLine,
                                pathTo: i.linePaths[k],
                                stroke: v,
                                strokeWidth: this.strokeWidth,
                                strokeLineCap: o.config.stroke.lineCap,
                                fill: a === "rangeArea" ? S : "none"
                            }), C = s.renderPaths(x);
                            if (this.elSeries.add(C), C.attr("fill-rule", "evenodd"), u.count > 0 && a !== "rangeArea") {
                                var w = s.renderPaths(x);
                                w.node.setAttribute("stroke-dasharray", u.dashArray), u.strokeWidth && w.node.setAttribute("stroke-width", u.strokeWidth), this.elSeries.add(w), w.attr("clip-path", "url(#forecastMask".concat(o.globals.cuid, ")")), C.attr("clip-path", "url(#nonForecastMask".concat(o.globals.cuid, ")"));
                            }
                        }
                    }
                }
            },
            {
                key: "_iterateOverDataPoints",
                value: function(e) {
                    var a, r, n = this, i = e.type, o = e.series, s = e.iterations, l = e.realIndex, u = e.translationsIndex, c = e.i, d = e.x, h = e.y, m = e.pX, f = e.pY, p = e.pathsFrom, g = e.linePaths, v = e.areaPaths, b = e.seriesIndex, k = e.lineYPosition, S = e.xArrj, x = e.yArrj, C = e.y2Arrj, w = e.isRangeStart, F = e.seriesRangeEnd, D = this.w, _ = new he(this.ctx), A = this.yRatio, E = p.prevY, B = p.linePath, P = p.areaPath, M = p.pathFromLine, R = p.pathFromArea, z = V.isNumber(D.globals.minYArr[l]) ? D.globals.minYArr[l] : D.globals.minY;
                    s || (s = D.globals.dataPoints > 1 ? D.globals.dataPoints - 1 : D.globals.dataPoints);
                    var N = function(fe, ee) {
                        return ee - fe / A[u] + 2 * (n.isReversed ? fe / A[u] : 0);
                    }, H = h, I = D.config.chart.stacked && !D.globals.comboCharts || D.config.chart.stacked && D.globals.comboCharts && (!this.w.config.chart.stackOnlyBar || ((a = this.w.config.series[l]) === null || a === void 0 ? void 0 : a.type) === "bar" || ((r = this.w.config.series[l]) === null || r === void 0 ? void 0 : r.type) === "column"), L = D.config.stroke.curve;
                    Array.isArray(L) && (L = Array.isArray(b) ? L[b[c]] : L[c]);
                    for(var G, q = 0, X = 0; X < s && o[c].length !== 0; X++){
                        var ue = o[c][X + 1] === void 0 || o[c][X + 1] === null;
                        if (D.globals.isXNumeric) {
                            var J = D.globals.seriesX[l][X + 1];
                            D.globals.seriesX[l][X + 1] === void 0 && (J = D.globals.seriesX[l][s - 1]), d = (J - D.globals.minX) / this.xRatio;
                        } else d += this.xDivision;
                        I ? c > 0 && D.globals.collapsedSeries.length < D.config.series.length - 1 ? k = this.prevSeriesY[function(fe) {
                            for(var ee = fe; ee > 0; ee--){
                                if (!(D.globals.collapsedSeriesIndices.indexOf(b?.[ee] || ee) > -1)) return ee;
                                ee--;
                            }
                            return 0;
                        }(c - 1)][X + 1] : k = this.zeroY : k = this.zeroY, ue ? h = N(z, k) : (h = N(o[c][X + 1], k), i === "rangeArea" && (H = N(F[c][X + 1], k))), S.push(o[c][X + 1] === null ? null : d), !ue || D.config.stroke.curve !== "smooth" && D.config.stroke.curve !== "monotoneCubic" ? (x.push(h), C.push(H)) : (x.push(null), C.push(null));
                        var U = this.lineHelpers.calculatePoints({
                            series: o,
                            x: d,
                            y: h,
                            realIndex: l,
                            i: c,
                            j: X,
                            prevY: E
                        }), le = this._createPaths({
                            type: i,
                            series: o,
                            i: c,
                            realIndex: l,
                            j: X,
                            x: d,
                            y: h,
                            y2: H,
                            xArrj: S,
                            yArrj: x,
                            y2Arrj: C,
                            pX: m,
                            pY: f,
                            pathState: q,
                            segmentStartX: G,
                            linePath: B,
                            areaPath: P,
                            linePaths: g,
                            areaPaths: v,
                            curve: L,
                            isRangeStart: w
                        });
                        v = le.areaPaths, g = le.linePaths, m = le.pX, f = le.pY, q = le.pathState, G = le.segmentStartX, P = le.areaPath, B = le.linePath, !this.appendPathFrom || D.globals.hasNullValues || L === "monotoneCubic" && i === "rangeArea" || (M += _.line(d, this.areaBottomY), R += _.line(d, this.areaBottomY)), this.handleNullDataPoints(o, U, c, X, l), this._handleMarkersAndLabels({
                            type: i,
                            pointsPos: U,
                            i: c,
                            j: X,
                            realIndex: l,
                            isRangeStart: w
                        });
                    }
                    return {
                        yArrj: x,
                        xArrj: S,
                        pathFromArea: R,
                        areaPaths: v,
                        pathFromLine: M,
                        linePaths: g,
                        linePath: B,
                        areaPath: P
                    };
                }
            },
            {
                key: "_handleMarkersAndLabels",
                value: function(e) {
                    var a = e.type, r = e.pointsPos, n = e.isRangeStart, i = e.i, o = e.j, s = e.realIndex, l = this.w, u = new Ai(this.ctx);
                    if (this.pointsChart) this.scatter.draw(this.elSeries, o, {
                        realIndex: s,
                        pointsPos: r,
                        zRatio: this.zRatio,
                        elParent: this.elPointsMain
                    });
                    else {
                        l.globals.series[i].length > 1 && this.elPointsMain.node.classList.add("apexcharts-element-hidden");
                        var c = this.markers.plotChartMarkers({
                            pointsPos: r,
                            seriesIndex: s,
                            j: o + 1
                        });
                        c !== null && this.elPointsMain.add(c);
                    }
                    var d = u.drawDataLabel({
                        type: a,
                        isRangeStart: n,
                        pos: r,
                        i: s,
                        j: o + 1
                    });
                    d !== null && this.elDataLabelsWrap.add(d);
                }
            },
            {
                key: "_createPaths",
                value: function(e) {
                    var a = e.type, r = e.series, n = e.i;
                    e.realIndex;
                    var i, o = e.j, s = e.x, l = e.y, u = e.xArrj, c = e.yArrj, d = e.y2, h = e.y2Arrj, m = e.pX, f = e.pY, p = e.pathState, g = e.segmentStartX, v = e.linePath, b = e.areaPath, k = e.linePaths, S = e.areaPaths, x = e.curve, C = e.isRangeStart, w = new he(this.ctx), F = this.areaBottomY, D = a === "rangeArea", _ = a === "rangeArea" && C;
                    switch(x){
                        case "monotoneCubic":
                            var A = C ? c : h;
                            switch(p){
                                case 0:
                                    if (A[o + 1] === null) break;
                                    p = 1;
                                case 1:
                                    if (!(D ? u.length === r[n].length : o === r[n].length - 2)) break;
                                case 2:
                                    var E = C ? u : u.slice().reverse(), B = C ? A : A.slice().reverse(), P = (i = B, E.map(function(J, U) {
                                        return [
                                            J,
                                            i[U]
                                        ];
                                    }).filter(function(J) {
                                        return J[1] !== null;
                                    })), M = P.length > 1 ? DI(P) : P, R = [];
                                    D && (_ ? S = P : R = S.reverse());
                                    var z = 0, N = 0;
                                    if (function(J, U) {
                                        for(var le = function(se) {
                                            var pe = [], ke = 0;
                                            return se.forEach(function(be) {
                                                be !== null ? ke++ : ke > 0 && (pe.push(ke), ke = 0);
                                            }), ke > 0 && pe.push(ke), pe;
                                        }(J), fe = [], ee = 0, ae = 0; ee < le.length; ae += le[ee++])fe[ee] = TI(U, ae, ae + le[ee]);
                                        return fe;
                                    }(B, M).forEach(function(J) {
                                        z++;
                                        var U = function(ee) {
                                            for(var ae = "", se = 0; se < ee.length; se++){
                                                var pe = ee[se], ke = pe.length;
                                                ke > 4 ? (ae += "C".concat(pe[0], ", ").concat(pe[1]), ae += ", ".concat(pe[2], ", ").concat(pe[3]), ae += ", ".concat(pe[4], ", ").concat(pe[5])) : ke > 2 && (ae += "S".concat(pe[0], ", ").concat(pe[1]), ae += ", ".concat(pe[2], ", ").concat(pe[3]));
                                            }
                                            return ae;
                                        }(J), le = N, fe = (N += J.length) - 1;
                                        _ ? v = w.move(P[le][0], P[le][1]) + U : D ? v = w.move(R[le][0], R[le][1]) + w.line(P[le][0], P[le][1]) + U + w.line(R[fe][0], R[fe][1]) : (v = w.move(P[le][0], P[le][1]) + U, b = v + w.line(P[fe][0], F) + w.line(P[le][0], F) + "z", S.push(b)), k.push(v);
                                    }), D && z > 1 && !_) {
                                        var H = k.slice(z).reverse();
                                        k.splice(z), H.forEach(function(J) {
                                            return k.push(J);
                                        });
                                    }
                                    p = 0;
                            }
                            break;
                        case "smooth":
                            var I = .35 * (s - m);
                            if (r[n][o] === null) p = 0;
                            else switch(p){
                                case 0:
                                    if (g = m, v = _ ? w.move(m, h[o]) + w.line(m, f) : w.move(m, f), b = w.move(m, f), r[n][o + 1] === null || r[n][o + 1] === void 0) {
                                        k.push(v), S.push(b);
                                        break;
                                    }
                                    if (p = 1, o < r[n].length - 2) {
                                        var L = w.curve(m + I, f, s - I, l, s, l);
                                        v += L, b += L;
                                        break;
                                    }
                                case 1:
                                    if (r[n][o + 1] === null) v += _ ? w.line(m, d) : w.move(m, f), b += w.line(m, F) + w.line(g, F) + "z", k.push(v), S.push(b), p = -1;
                                    else {
                                        var G = w.curve(m + I, f, s - I, l, s, l);
                                        v += G, b += G, o >= r[n].length - 2 && (_ && (v += w.curve(s, l, s, l, s, d) + w.move(s, d)), b += w.curve(s, l, s, l, s, F) + w.line(g, F) + "z", k.push(v), S.push(b), p = -1);
                                    }
                            }
                            m = s, f = l;
                            break;
                        default:
                            var q = function(J, U, le) {
                                var fe = [];
                                switch(J){
                                    case "stepline":
                                        fe = w.line(U, null, "H") + w.line(null, le, "V");
                                        break;
                                    case "linestep":
                                        fe = w.line(null, le, "V") + w.line(U, null, "H");
                                        break;
                                    case "straight":
                                        fe = w.line(U, le);
                                }
                                return fe;
                            };
                            if (r[n][o] === null) p = 0;
                            else switch(p){
                                case 0:
                                    if (g = m, v = _ ? w.move(m, h[o]) + w.line(m, f) : w.move(m, f), b = w.move(m, f), r[n][o + 1] === null || r[n][o + 1] === void 0) {
                                        k.push(v), S.push(b);
                                        break;
                                    }
                                    if (p = 1, o < r[n].length - 2) {
                                        var X = q(x, s, l);
                                        v += X, b += X;
                                        break;
                                    }
                                case 1:
                                    if (r[n][o + 1] === null) v += _ ? w.line(m, d) : w.move(m, f), b += w.line(m, F) + w.line(g, F) + "z", k.push(v), S.push(b), p = -1;
                                    else {
                                        var ue = q(x, s, l);
                                        v += ue, b += ue, o >= r[n].length - 2 && (_ && (v += w.line(s, d)), b += w.line(s, F) + w.line(g, F) + "z", k.push(v), S.push(b), p = -1);
                                    }
                            }
                            m = s, f = l;
                    }
                    return {
                        linePaths: k,
                        areaPaths: S,
                        pX: m,
                        pY: f,
                        pathState: p,
                        segmentStartX: g,
                        linePath: v,
                        areaPath: b
                    };
                }
            },
            {
                key: "handleNullDataPoints",
                value: function(e, a, r, n, i) {
                    var o = this.w;
                    if (e[r][n] === null && o.config.markers.showNullDataPoints || e[r].length === 1) {
                        var s = this.strokeWidth - o.config.markers.strokeWidth / 2;
                        s > 0 || (s = 0);
                        var l = this.markers.plotChartMarkers({
                            pointsPos: a,
                            seriesIndex: i,
                            j: n + 1,
                            pSize: s,
                            alwaysDrawMarker: !0
                        });
                        l !== null && this.elPointsMain.add(l);
                    }
                }
            }
        ]), t;
    }();
    window.TreemapSquared = {}, window.TreemapSquared.generate = function() {
        function t(s, l, u, c) {
            this.xoffset = s, this.yoffset = l, this.height = c, this.width = u, this.shortestEdge = function() {
                return Math.min(this.height, this.width);
            }, this.getCoordinates = function(d) {
                var h, m = [], f = this.xoffset, p = this.yoffset, g = i(d) / this.height, v = i(d) / this.width;
                if (this.width >= this.height) for(h = 0; h < d.length; h++)m.push([
                    f,
                    p,
                    f + g,
                    p + d[h] / g
                ]), p += d[h] / g;
                else for(h = 0; h < d.length; h++)m.push([
                    f,
                    p,
                    f + d[h] / v,
                    p + v
                ]), f += d[h] / v;
                return m;
            }, this.cutArea = function(d) {
                var h;
                if (this.width >= this.height) {
                    var m = d / this.height, f = this.width - m;
                    h = new t(this.xoffset + m, this.yoffset, f, this.height);
                } else {
                    var p = d / this.width, g = this.height - p;
                    h = new t(this.xoffset, this.yoffset + p, this.width, g);
                }
                return h;
            };
        }
        function e(s, l, u, c, d) {
            c = c === void 0 ? 0 : c, d = d === void 0 ? 0 : d;
            var h = a(function(m, f) {
                var p, g = [], v = f / i(m);
                for(p = 0; p < m.length; p++)g[p] = m[p] * v;
                return g;
            }(s, l * u), [], new t(c, d, l, u), []);
            return function(m) {
                var f, p, g = [];
                for(f = 0; f < m.length; f++)for(p = 0; p < m[f].length; p++)g.push(m[f][p]);
                return g;
            }(h);
        }
        function a(s, l, u, c) {
            var d, h, m;
            if (s.length !== 0) return d = u.shortestEdge(), function(f, p, g) {
                var v;
                if (f.length === 0) return !0;
                (v = f.slice()).push(p);
                var b = r(f, g), k = r(v, g);
                return b >= k;
            }(l, h = s[0], d) ? (l.push(h), a(s.slice(1), l, u, c)) : (m = u.cutArea(i(l), c), c.push(u.getCoordinates(l)), a(s, [], m, c)), c;
            c.push(u.getCoordinates(l));
        }
        function r(s, l) {
            var u = Math.min.apply(Math, s), c = Math.max.apply(Math, s), d = i(s);
            return Math.max(Math.pow(l, 2) * c / Math.pow(d, 2), Math.pow(d, 2) / (Math.pow(l, 2) * u));
        }
        function n(s) {
            return s && s.constructor === Array;
        }
        function i(s) {
            var l, u = 0;
            for(l = 0; l < s.length; l++)u += s[l];
            return u;
        }
        function o(s) {
            var l, u = 0;
            if (n(s[0])) for(l = 0; l < s.length; l++)u += o(s[l]);
            else u = i(s);
            return u;
        }
        return function s(l, u, c, d, h) {
            d = d === void 0 ? 0 : d, h = h === void 0 ? 0 : h;
            var m, f, p = [], g = [];
            if (n(l[0])) {
                for(f = 0; f < l.length; f++)p[f] = o(l[f]);
                for(m = e(p, u, c, d, h), f = 0; f < l.length; f++)g.push(s(l[f], m[f][2] - m[f][0], m[f][3] - m[f][1], m[f][0], m[f][1]));
            } else g = e(l, u, c, d, h);
            return g;
        };
    }();
    var EI = function() {
        function t(e, a) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.strokeWidth = this.w.config.stroke.width, this.helpers = new J1(e), this.dynamicAnim = this.w.config.chart.animations.dynamicAnimation, this.labels = [];
        }
        return De(t, [
            {
                key: "draw",
                value: function(e) {
                    var a = this, r = this.w, n = new he(this.ctx), i = new hr(this.ctx), o = n.group({
                        class: "apexcharts-treemap"
                    });
                    if (r.globals.noData) return o;
                    var s = [];
                    return e.forEach(function(l) {
                        var u = l.map(function(c) {
                            return Math.abs(c);
                        });
                        s.push(u);
                    }), this.negRange = this.helpers.checkColorRange(), r.config.series.forEach(function(l, u) {
                        l.data.forEach(function(c) {
                            Array.isArray(a.labels[u]) || (a.labels[u] = []), a.labels[u].push(c.x);
                        });
                    }), window.TreemapSquared.generate(s, r.globals.gridWidth, r.globals.gridHeight).forEach(function(l, u) {
                        var c = n.group({
                            class: "apexcharts-series apexcharts-treemap-series",
                            seriesName: V.escapeString(r.globals.seriesNames[u]),
                            rel: u + 1,
                            "data:realIndex": u
                        });
                        if (r.config.chart.dropShadow.enabled) {
                            var d = r.config.chart.dropShadow;
                            new ca(a.ctx).dropShadow(o, d, u);
                        }
                        var h = n.group({
                            class: "apexcharts-data-labels"
                        }), m = {
                            xMin: 1 / 0,
                            yMin: 1 / 0,
                            xMax: -1 / 0,
                            yMax: -1 / 0
                        };
                        l.forEach(function(M, R) {
                            var z = M[0], N = M[1], H = M[2], I = M[3];
                            m.xMin = Math.min(m.xMin, z), m.yMin = Math.min(m.yMin, N), m.xMax = Math.max(m.xMax, H), m.yMax = Math.max(m.yMax, I);
                            var L = a.helpers.getShadeColor(r.config.chart.type, u, R, a.negRange), G = L.color, q = i.fillPath({
                                color: G,
                                seriesNumber: u,
                                dataPointIndex: R
                            }), X = n.drawRect(z, N, H - z, I - N, r.config.plotOptions.treemap.borderRadius, "#fff", 1, a.strokeWidth, r.config.plotOptions.treemap.useFillColorAsStroke ? G : r.globals.stroke.colors[u]);
                            X.attr({
                                cx: z,
                                cy: N,
                                index: u,
                                i: u,
                                j: R,
                                width: H - z,
                                height: I - N,
                                fill: q
                            }), X.node.classList.add("apexcharts-treemap-rect"), a.helpers.addListeners(X);
                            var ue = {
                                x: z + (H - z) / 2,
                                y: N + (I - N) / 2,
                                width: 0,
                                height: 0
                            }, J = {
                                x: z,
                                y: N,
                                width: H - z,
                                height: I - N
                            };
                            if (r.config.chart.animations.enabled && !r.globals.dataChanged) {
                                var U = 1;
                                r.globals.resized || (U = r.config.chart.animations.speed), a.animateTreemap(X, ue, J, U);
                            }
                            if (r.globals.dataChanged) {
                                var le = 1;
                                a.dynamicAnim.enabled && r.globals.shouldAnimate && (le = a.dynamicAnim.speed, r.globals.previousPaths[u] && r.globals.previousPaths[u][R] && r.globals.previousPaths[u][R].rect && (ue = r.globals.previousPaths[u][R].rect), a.animateTreemap(X, ue, J, le));
                            }
                            var fe = a.getFontSize(M), ee = r.config.dataLabels.formatter(a.labels[u][R], {
                                value: r.globals.series[u][R],
                                seriesIndex: u,
                                dataPointIndex: R,
                                w: r
                            });
                            r.config.plotOptions.treemap.dataLabels.format === "truncate" && (fe = parseInt(r.config.dataLabels.style.fontSize, 10), ee = a.truncateLabels(ee, fe, z, N, H, I));
                            var ae = null;
                            r.globals.series[u][R] && (ae = a.helpers.calculateDataLabels({
                                text: ee,
                                x: (z + H) / 2,
                                y: (N + I) / 2 + a.strokeWidth / 2 + fe / 3,
                                i: u,
                                j: R,
                                colorProps: L,
                                fontSize: fe,
                                series: e
                            })), r.config.dataLabels.enabled && ae && a.rotateToFitLabel(ae, fe, ee, z, N, H, I), c.add(X), ae !== null && c.add(ae);
                        });
                        var f = r.config.plotOptions.treemap.seriesTitle;
                        if (r.config.series.length > 1 && f && f.show) {
                            var p = r.config.series[u].name || "";
                            if (p && m.xMin < 1 / 0 && m.yMin < 1 / 0) {
                                var g = f.offsetX, v = f.offsetY, b = f.borderColor, k = f.borderWidth, S = f.borderRadius, x = f.style, C = x.color || r.config.chart.foreColor, w = {
                                    left: x.padding.left,
                                    right: x.padding.right,
                                    top: x.padding.top,
                                    bottom: x.padding.bottom
                                }, F = n.getTextRects(p, x.fontSize, x.fontFamily), D = F.width + w.left + w.right, _ = F.height + w.top + w.bottom, A = m.xMin + (g || 0), E = m.yMin + (v || 0), B = n.drawRect(A, E, D, _, S, x.background, 1, k, b), P = n.drawText({
                                    x: A + w.left,
                                    y: E + w.top + .75 * F.height,
                                    text: p,
                                    fontSize: x.fontSize,
                                    fontFamily: x.fontFamily,
                                    fontWeight: x.fontWeight,
                                    foreColor: C,
                                    cssClass: x.cssClass || ""
                                });
                                c.add(B), c.add(P);
                            }
                        }
                        c.add(h), o.add(c);
                    }), o;
                }
            },
            {
                key: "getFontSize",
                value: function(e) {
                    var a = this.w, r = function n(i) {
                        var o, s = 0;
                        if (Array.isArray(i[0])) for(o = 0; o < i.length; o++)s += n(i[o]);
                        else for(o = 0; o < i.length; o++)s += i[o].length;
                        return s;
                    }(this.labels) / function n(i) {
                        var o, s = 0;
                        if (Array.isArray(i[0])) for(o = 0; o < i.length; o++)s += n(i[o]);
                        else for(o = 0; o < i.length; o++)s += 1;
                        return s;
                    }(this.labels);
                    return function(n, i) {
                        var o = n * i, s = Math.pow(o, .5);
                        return Math.min(s / r, parseInt(a.config.dataLabels.style.fontSize, 10));
                    }(e[2] - e[0], e[3] - e[1]);
                }
            },
            {
                key: "rotateToFitLabel",
                value: function(e, a, r, n, i, o, s) {
                    var l = new he(this.ctx), u = l.getTextRects(r, a);
                    if (u.width + this.w.config.stroke.width + 5 > o - n && u.width <= s - i) {
                        var c = l.rotateAroundCenter(e.node);
                        e.node.setAttribute("transform", "rotate(-90 ".concat(c.x, " ").concat(c.y, ") translate(").concat(u.height / 3, ")"));
                    }
                }
            },
            {
                key: "truncateLabels",
                value: function(e, a, r, n, i, o) {
                    var s = new he(this.ctx), l = s.getTextRects(e, a).width + this.w.config.stroke.width + 5 > i - r && o - n > i - r ? o - n : i - r, u = s.getTextBasedOnMaxWidth({
                        text: e,
                        maxWidth: l,
                        fontSize: a
                    });
                    return e.length !== u.length && l / a < 5 ? "" : u;
                }
            },
            {
                key: "animateTreemap",
                value: function(e, a, r, n) {
                    var i = new Vi(this.ctx);
                    i.animateRect(e, a, r, n, function() {
                        i.animationCompleted(e);
                    });
                }
            }
        ]), t;
    }(), ek = 86400, _I = 10 / ek, PI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w, this.timeScaleArray = [], this.utc = this.w.config.xaxis.labels.datetimeUTC;
        }
        return De(t, [
            {
                key: "calculateTimeScaleTicks",
                value: function(e, a) {
                    var r = this, n = this.w;
                    if (n.globals.allSeriesCollapsed) return n.globals.labels = [], n.globals.timescaleLabels = [], [];
                    var i = new ua(this.ctx), o = (a - e) / 864e5;
                    this.determineInterval(o), n.globals.disableZoomIn = !1, n.globals.disableZoomOut = !1, o < _I ? n.globals.disableZoomIn = !0 : o > 5e4 && (n.globals.disableZoomOut = !0);
                    var s = i.getTimeUnitsfromTimestamp(e, a, this.utc), l = n.globals.gridWidth / o, u = l / 24, c = u / 60, d = c / 60, h = Math.floor(24 * o), m = Math.floor(1440 * o), f = Math.floor(o * ek), p = Math.floor(o), g = Math.floor(o / 30), v = Math.floor(o / 365), b = {
                        minMillisecond: s.minMillisecond,
                        minSecond: s.minSecond,
                        minMinute: s.minMinute,
                        minHour: s.minHour,
                        minDate: s.minDate,
                        minMonth: s.minMonth,
                        minYear: s.minYear
                    }, k = {
                        firstVal: b,
                        currentMillisecond: b.minMillisecond,
                        currentSecond: b.minSecond,
                        currentMinute: b.minMinute,
                        currentHour: b.minHour,
                        currentMonthDate: b.minDate,
                        currentDate: b.minDate,
                        currentMonth: b.minMonth,
                        currentYear: b.minYear,
                        daysWidthOnXAxis: l,
                        hoursWidthOnXAxis: u,
                        minutesWidthOnXAxis: c,
                        secondsWidthOnXAxis: d,
                        numberOfSeconds: f,
                        numberOfMinutes: m,
                        numberOfHours: h,
                        numberOfDays: p,
                        numberOfMonths: g,
                        numberOfYears: v
                    };
                    switch(this.tickInterval){
                        case "years":
                            this.generateYearScale(k);
                            break;
                        case "months":
                        case "half_year":
                            this.generateMonthScale(k);
                            break;
                        case "months_days":
                        case "months_fortnight":
                        case "days":
                        case "week_days":
                            this.generateDayScale(k);
                            break;
                        case "hours":
                            this.generateHourScale(k);
                            break;
                        case "minutes_fives":
                        case "minutes":
                            this.generateMinuteScale(k);
                            break;
                        case "seconds_tens":
                        case "seconds_fives":
                        case "seconds":
                            this.generateSecondScale(k);
                    }
                    var S = this.timeScaleArray.map(function(x) {
                        var C = {
                            position: x.position,
                            unit: x.unit,
                            year: x.year,
                            day: x.day ? x.day : 1,
                            hour: x.hour ? x.hour : 0,
                            month: x.month + 1
                        };
                        return x.unit === "month" ? ye(ye({}, C), {}, {
                            day: 1,
                            value: x.value + 1
                        }) : x.unit === "day" || x.unit === "hour" ? ye(ye({}, C), {}, {
                            value: x.value
                        }) : x.unit === "minute" ? ye(ye({}, C), {}, {
                            value: x.value,
                            minute: x.value
                        }) : x.unit === "second" ? ye(ye({}, C), {}, {
                            value: x.value,
                            minute: x.minute,
                            second: x.second
                        }) : x;
                    });
                    return S.filter(function(x) {
                        var C = 1, w = Math.ceil(n.globals.gridWidth / 120), F = x.value;
                        n.config.xaxis.tickAmount !== void 0 && (w = n.config.xaxis.tickAmount), S.length > w && (C = Math.floor(S.length / w));
                        var D = !1, _ = !1;
                        switch(r.tickInterval){
                            case "years":
                                x.unit === "year" && (D = !0);
                                break;
                            case "half_year":
                                C = 7, x.unit === "year" && (D = !0);
                                break;
                            case "months":
                                C = 1, x.unit === "year" && (D = !0);
                                break;
                            case "months_fortnight":
                                C = 15, x.unit !== "year" && x.unit !== "month" || (D = !0), F === 30 && (_ = !0);
                                break;
                            case "months_days":
                                C = 10, x.unit === "month" && (D = !0), F === 30 && (_ = !0);
                                break;
                            case "week_days":
                                C = 8, x.unit === "month" && (D = !0);
                                break;
                            case "days":
                                C = 1, x.unit === "month" && (D = !0);
                                break;
                            case "hours":
                                x.unit === "day" && (D = !0);
                                break;
                            case "minutes_fives":
                            case "seconds_fives":
                                F % 5 != 0 && (_ = !0);
                                break;
                            case "seconds_tens":
                                F % 10 != 0 && (_ = !0);
                        }
                        if (r.tickInterval === "hours" || r.tickInterval === "minutes_fives" || r.tickInterval === "seconds_tens" || r.tickInterval === "seconds_fives") {
                            if (!_) return !0;
                        } else if ((F % C == 0 || D) && !_) return !0;
                    });
                }
            },
            {
                key: "recalcDimensionsBasedOnFormat",
                value: function(e, a) {
                    var r = this.w, n = this.formatDates(e), i = this.removeOverlappingTS(n);
                    r.globals.timescaleLabels = i.slice(), new el(this.ctx).plotCoords();
                }
            },
            {
                key: "determineInterval",
                value: function(e) {
                    var a = 24 * e, r = 60 * a;
                    switch(!0){
                        case e / 365 > 5:
                            this.tickInterval = "years";
                            break;
                        case e > 800:
                            this.tickInterval = "half_year";
                            break;
                        case e > 180:
                            this.tickInterval = "months";
                            break;
                        case e > 90:
                            this.tickInterval = "months_fortnight";
                            break;
                        case e > 60:
                            this.tickInterval = "months_days";
                            break;
                        case e > 30:
                            this.tickInterval = "week_days";
                            break;
                        case e > 2:
                            this.tickInterval = "days";
                            break;
                        case a > 2.4:
                            this.tickInterval = "hours";
                            break;
                        case r > 15:
                            this.tickInterval = "minutes_fives";
                            break;
                        case r > 5:
                            this.tickInterval = "minutes";
                            break;
                        case r > 1:
                            this.tickInterval = "seconds_tens";
                            break;
                        case 60 * r > 20:
                            this.tickInterval = "seconds_fives";
                            break;
                        default:
                            this.tickInterval = "seconds";
                    }
                }
            },
            {
                key: "generateYearScale",
                value: function(e) {
                    var a = e.firstVal, r = e.currentMonth, n = e.currentYear, i = e.daysWidthOnXAxis, o = e.numberOfYears, s = a.minYear, l = 0, u = new ua(this.ctx), c = "year";
                    if (a.minDate > 1 || a.minMonth > 0) {
                        var d = u.determineRemainingDaysOfYear(a.minYear, a.minMonth, a.minDate);
                        l = (u.determineDaysOfYear(a.minYear) - d + 1) * i, s = a.minYear + 1, this.timeScaleArray.push({
                            position: l,
                            value: s,
                            unit: c,
                            year: s,
                            month: V.monthMod(r + 1)
                        });
                    } else a.minDate === 1 && a.minMonth === 0 && this.timeScaleArray.push({
                        position: l,
                        value: s,
                        unit: c,
                        year: n,
                        month: V.monthMod(r + 1)
                    });
                    for(var h = s, m = l, f = 0; f < o; f++)h++, m = u.determineDaysOfYear(h - 1) * i + m, this.timeScaleArray.push({
                        position: m,
                        value: h,
                        unit: c,
                        year: h,
                        month: 1
                    });
                }
            },
            {
                key: "generateMonthScale",
                value: function(e) {
                    var a = e.firstVal, r = e.currentMonthDate, n = e.currentMonth, i = e.currentYear, o = e.daysWidthOnXAxis, s = e.numberOfMonths, l = n, u = 0, c = new ua(this.ctx), d = "month", h = 0;
                    if (a.minDate > 1) {
                        u = (c.determineDaysOfMonths(n + 1, a.minYear) - r + 1) * o, l = V.monthMod(n + 1);
                        var m = i + h, f = V.monthMod(l), p = l;
                        l === 0 && (d = "year", p = m, f = 1, m += h += 1), this.timeScaleArray.push({
                            position: u,
                            value: p,
                            unit: d,
                            year: m,
                            month: f
                        });
                    } else this.timeScaleArray.push({
                        position: u,
                        value: l,
                        unit: d,
                        year: i,
                        month: V.monthMod(n)
                    });
                    for(var g = l + 1, v = u, b = 0, k = 1; b < s; b++, k++){
                        (g = V.monthMod(g)) === 0 ? (d = "year", h += 1) : d = "month";
                        var S = this._getYear(i, g, h);
                        v = c.determineDaysOfMonths(g, S) * o + v;
                        var x = g === 0 ? S : g;
                        this.timeScaleArray.push({
                            position: v,
                            value: x,
                            unit: d,
                            year: S,
                            month: g === 0 ? 1 : g
                        }), g++;
                    }
                }
            },
            {
                key: "generateDayScale",
                value: function(e) {
                    var a = e.firstVal, r = e.currentMonth, n = e.currentYear, i = e.hoursWidthOnXAxis, o = e.numberOfDays, s = new ua(this.ctx), l = "day", u = a.minDate + 1, c = u, d = function(k, S, x) {
                        return k > s.determineDaysOfMonths(S + 1, x) && (c = 1, l = "month", m = S += 1), S;
                    }, h = (24 - a.minHour) * i, m = u, f = d(c, r, n);
                    a.minHour === 0 && a.minDate === 1 ? (h = 0, m = V.monthMod(a.minMonth), l = "month", c = a.minDate) : a.minDate !== 1 && a.minHour === 0 && a.minMinute === 0 && (h = 0, u = a.minDate, m = u, f = d(c = u, r, n), m !== 1 && (l = "day")), this.timeScaleArray.push({
                        position: h,
                        value: m,
                        unit: l,
                        year: this._getYear(n, f, 0),
                        month: V.monthMod(f),
                        day: c
                    });
                    for(var p = h, g = 0; g < o; g++){
                        l = "day", f = d(c += 1, f, this._getYear(n, f, 0));
                        var v = this._getYear(n, f, 0);
                        p = 24 * i + p;
                        var b = c === 1 ? V.monthMod(f) : c;
                        this.timeScaleArray.push({
                            position: p,
                            value: b,
                            unit: l,
                            year: v,
                            month: V.monthMod(f),
                            day: b
                        });
                    }
                }
            },
            {
                key: "generateHourScale",
                value: function(e) {
                    var a = e.firstVal, r = e.currentDate, n = e.currentMonth, i = e.currentYear, o = e.minutesWidthOnXAxis, s = e.numberOfHours, l = new ua(this.ctx), u = "hour", c = function(C, w) {
                        return C > l.determineDaysOfMonths(w + 1, i) && (g = 1, w += 1), {
                            month: w,
                            date: g
                        };
                    }, d = function(C, w) {
                        return C > l.determineDaysOfMonths(w + 1, i) ? w += 1 : w;
                    }, h = 60 - (a.minMinute + a.minSecond / 60), m = h * o, f = a.minHour + 1, p = f;
                    h === 60 && (m = 0, p = f = a.minHour);
                    var g = r;
                    p >= 24 && (p = 0, u = "day", f = g += 1);
                    var v = c(g, n).month;
                    v = d(g, v), f > 31 && (f = g = 1), this.timeScaleArray.push({
                        position: m,
                        value: f,
                        unit: u,
                        day: g,
                        hour: p,
                        year: i,
                        month: V.monthMod(v)
                    }), p++;
                    for(var b = m, k = 0; k < s; k++){
                        u = "hour", p >= 24 && (p = 0, u = "day", v = c(g += 1, v).month, v = d(g, v));
                        var S = this._getYear(i, v, 0);
                        b = 60 * o + b;
                        var x = p === 0 ? g : p;
                        this.timeScaleArray.push({
                            position: b,
                            value: x,
                            unit: u,
                            hour: p,
                            day: g,
                            year: S,
                            month: V.monthMod(v)
                        }), p++;
                    }
                }
            },
            {
                key: "generateMinuteScale",
                value: function(e) {
                    for(var a = e.currentMillisecond, r = e.currentSecond, n = e.currentMinute, i = e.currentHour, o = e.currentDate, s = e.currentMonth, l = e.currentYear, u = e.minutesWidthOnXAxis, c = e.secondsWidthOnXAxis, d = e.numberOfMinutes, h = n + 1, m = o, f = s, p = l, g = i, v = (60 - r - a / 1e3) * c, b = 0; b < d; b++)h >= 60 && (h = 0, (g += 1) === 24 && (g = 0)), this.timeScaleArray.push({
                        position: v,
                        value: h,
                        unit: "minute",
                        hour: g,
                        minute: h,
                        day: m,
                        year: this._getYear(p, f, 0),
                        month: V.monthMod(f)
                    }), v += u, h++;
                }
            },
            {
                key: "generateSecondScale",
                value: function(e) {
                    for(var a = e.currentMillisecond, r = e.currentSecond, n = e.currentMinute, i = e.currentHour, o = e.currentDate, s = e.currentMonth, l = e.currentYear, u = e.secondsWidthOnXAxis, c = e.numberOfSeconds, d = r + 1, h = n, m = o, f = s, p = l, g = i, v = (1e3 - a) / 1e3 * u, b = 0; b < c; b++)d >= 60 && (d = 0, ++h >= 60 && (h = 0, ++g === 24 && (g = 0))), this.timeScaleArray.push({
                        position: v,
                        value: d,
                        unit: "second",
                        hour: g,
                        minute: h,
                        second: d,
                        day: m,
                        year: this._getYear(p, f, 0),
                        month: V.monthMod(f)
                    }), v += u, d++;
                }
            },
            {
                key: "createRawDateString",
                value: function(e, a) {
                    var r = e.year;
                    return e.month === 0 && (e.month = 1), r += "-" + ("0" + e.month.toString()).slice(-2), e.unit === "day" ? r += e.unit === "day" ? "-" + ("0" + a).slice(-2) : "-01" : r += "-" + ("0" + (e.day ? e.day : "1")).slice(-2), e.unit === "hour" ? r += e.unit === "hour" ? "T" + ("0" + a).slice(-2) : "T00" : r += "T" + ("0" + (e.hour ? e.hour : "0")).slice(-2), e.unit === "minute" ? r += ":" + ("0" + a).slice(-2) : r += ":" + (e.minute ? ("0" + e.minute).slice(-2) : "00"), e.unit === "second" ? r += ":" + ("0" + a).slice(-2) : r += ":00", this.utc && (r += ".000Z"), r;
                }
            },
            {
                key: "formatDates",
                value: function(e) {
                    var a = this, r = this.w;
                    return e.map(function(n) {
                        var i = n.value.toString(), o = new ua(a.ctx), s = a.createRawDateString(n, i), l = o.getDate(o.parseDate(s));
                        if (a.utc || (l = o.getDate(o.parseDateWithTimezone(s))), r.config.xaxis.labels.format === void 0) {
                            var u = "dd MMM", c = r.config.xaxis.labels.datetimeFormatter;
                            n.unit === "year" && (u = c.year), n.unit === "month" && (u = c.month), n.unit === "day" && (u = c.day), n.unit === "hour" && (u = c.hour), n.unit === "minute" && (u = c.minute), n.unit === "second" && (u = c.second), i = o.formatDate(l, u);
                        } else i = o.formatDate(l, r.config.xaxis.labels.format);
                        return {
                            dateString: s,
                            position: n.position,
                            value: i,
                            unit: n.unit,
                            year: n.year,
                            month: n.month
                        };
                    });
                }
            },
            {
                key: "removeOverlappingTS",
                value: function(e) {
                    var a, r = this, n = new he(this.ctx), i = !1;
                    e.length > 0 && e[0].value && e.every(function(l) {
                        return l.value.length === e[0].value.length;
                    }) && (i = !0, a = n.getTextRects(e[0].value).width);
                    var o = 0, s = e.map(function(l, u) {
                        if (u > 0 && r.w.config.xaxis.labels.hideOverlappingLabels) {
                            var c = i ? a : n.getTextRects(e[o].value).width, d = e[o].position;
                            return l.position > d + c + 10 ? (o = u, l) : null;
                        }
                        return l;
                    });
                    return s = s.filter(function(l) {
                        return l !== null;
                    });
                }
            },
            {
                key: "_getYear",
                value: function(e, a, r) {
                    return e + Math.floor(a / 12) + r;
                }
            }
        ]), t;
    }(), BI = function() {
        function t(e, a) {
            Ae(this, t), this.ctx = a, this.w = a.w, this.el = e;
        }
        return De(t, [
            {
                key: "setupElements",
                value: function() {
                    var e = this.w, a = e.globals, r = e.config, n = r.chart.type;
                    a.axisCharts = [
                        "line",
                        "area",
                        "bar",
                        "rangeBar",
                        "rangeArea",
                        "candlestick",
                        "boxPlot",
                        "scatter",
                        "bubble",
                        "radar",
                        "heatmap",
                        "treemap"
                    ].includes(n), a.xyCharts = [
                        "line",
                        "area",
                        "bar",
                        "rangeBar",
                        "rangeArea",
                        "candlestick",
                        "boxPlot",
                        "scatter",
                        "bubble"
                    ].includes(n), a.isBarHorizontal = [
                        "bar",
                        "rangeBar",
                        "boxPlot"
                    ].includes(n) && r.plotOptions.bar.horizontal, a.chartClass = ".apexcharts".concat(a.chartID), a.dom.baseEl = this.el, a.dom.elWrap = document.createElement("div"), he.setAttrs(a.dom.elWrap, {
                        id: a.chartClass.substring(1),
                        class: "apexcharts-canvas ".concat(a.chartClass.substring(1))
                    }), this.el.appendChild(a.dom.elWrap), a.dom.Paper = window.SVG().addTo(a.dom.elWrap), a.dom.Paper.attr({
                        class: "apexcharts-svg",
                        "xmlns:data": "ApexChartsNS",
                        transform: "translate(".concat(r.chart.offsetX, ", ").concat(r.chart.offsetY, ")")
                    }), a.dom.Paper.node.style.background = r.theme.mode !== "dark" || r.chart.background ? r.theme.mode !== "light" || r.chart.background ? r.chart.background : "#fff" : "#343A3F", this.setSVGDimensions(), a.dom.elLegendForeign = document.createElementNS(a.SVGNS, "foreignObject"), he.setAttrs(a.dom.elLegendForeign, {
                        x: 0,
                        y: 0,
                        width: a.svgWidth,
                        height: a.svgHeight
                    }), a.dom.elLegendWrap = document.createElement("div"), a.dom.elLegendWrap.classList.add("apexcharts-legend"), a.dom.elWrap.appendChild(a.dom.elLegendWrap), a.dom.Paper.node.appendChild(a.dom.elLegendForeign), a.dom.elGraphical = a.dom.Paper.group().attr({
                        class: "apexcharts-inner apexcharts-graphical"
                    }), a.dom.elDefs = a.dom.Paper.defs(), a.dom.Paper.add(a.dom.elGraphical), a.dom.elGraphical.add(a.dom.elDefs);
                }
            },
            {
                key: "plotChartType",
                value: function(e, a) {
                    var r = this.w, n = this.ctx, i = r.config, o = r.globals, s = {
                        line: {
                            series: [],
                            i: []
                        },
                        area: {
                            series: [],
                            i: []
                        },
                        scatter: {
                            series: [],
                            i: []
                        },
                        bubble: {
                            series: [],
                            i: []
                        },
                        bar: {
                            series: [],
                            i: []
                        },
                        candlestick: {
                            series: [],
                            i: []
                        },
                        boxPlot: {
                            series: [],
                            i: []
                        },
                        rangeBar: {
                            series: [],
                            i: []
                        },
                        rangeArea: {
                            series: [],
                            seriesRangeEnd: [],
                            i: []
                        }
                    }, l = i.chart.type || "line", u = null, c = 0;
                    o.series.forEach(function(C, w) {
                        var F = e[w].type === "column" ? "bar" : e[w].type || (l === "column" ? "bar" : l);
                        s[F] ? (F === "rangeArea" ? (s[F].series.push(o.seriesRangeStart[w]), s[F].seriesRangeEnd.push(o.seriesRangeEnd[w])) : s[F].series.push(C), s[F].i.push(w), F === "bar" && (r.globals.columnSeries = s.bar)) : [
                            "heatmap",
                            "treemap",
                            "pie",
                            "donut",
                            "polarArea",
                            "radialBar",
                            "radar"
                        ].includes(F) ? u = F : console.warn("You have specified an unrecognized series type (".concat(F, ").")), l !== F && F !== "scatter" && c++;
                    }), c > 0 && (u && console.warn("Chart or series type ".concat(u, " cannot appear with other chart or series types.")), s.bar.series.length > 0 && i.plotOptions.bar.horizontal && (c -= s.bar.series.length, s.bar = {
                        series: [],
                        i: []
                    }, r.globals.columnSeries = {
                        series: [],
                        i: []
                    }, console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"))), o.comboCharts || (o.comboCharts = c > 0);
                    var d = new Gd(n, a), h = new Vd(n, a);
                    n.pie = new Q1(n);
                    var m = new wI(n);
                    n.rangeBar = new SI(n, a);
                    var f = new xI(n), p = [];
                    if (o.comboCharts) {
                        var g, v, b = new Ht(n);
                        if (s.area.series.length > 0 && (g = p).push.apply(g, Qt(b.drawSeriesByGroup(s.area, o.areaGroups, "area", d))), s.bar.series.length > 0) if (i.chart.stacked) {
                            var k = new fy(n, a);
                            p.push(k.draw(s.bar.series, s.bar.i));
                        } else n.bar = new Di(n, a), p.push(n.bar.draw(s.bar.series, s.bar.i));
                        if (s.rangeArea.series.length > 0 && p.push(d.draw(s.rangeArea.series, "rangeArea", s.rangeArea.i, s.rangeArea.seriesRangeEnd)), s.line.series.length > 0 && (v = p).push.apply(v, Qt(b.drawSeriesByGroup(s.line, o.lineGroups, "line", d))), s.candlestick.series.length > 0 && p.push(h.draw(s.candlestick.series, "candlestick", s.candlestick.i)), s.boxPlot.series.length > 0 && p.push(h.draw(s.boxPlot.series, "boxPlot", s.boxPlot.i)), s.rangeBar.series.length > 0 && p.push(n.rangeBar.draw(s.rangeBar.series, s.rangeBar.i)), s.scatter.series.length > 0) {
                            var S = new Gd(n, a, !0);
                            p.push(S.draw(s.scatter.series, "scatter", s.scatter.i));
                        }
                        if (s.bubble.series.length > 0) {
                            var x = new Gd(n, a, !0);
                            p.push(x.draw(s.bubble.series, "bubble", s.bubble.i));
                        }
                    } else switch(i.chart.type){
                        case "line":
                            p = d.draw(o.series, "line");
                            break;
                        case "area":
                            p = d.draw(o.series, "area");
                            break;
                        case "bar":
                            i.chart.stacked ? p = new fy(n, a).draw(o.series) : (n.bar = new Di(n, a), p = n.bar.draw(o.series));
                            break;
                        case "candlestick":
                            p = new Vd(n, a).draw(o.series, "candlestick");
                            break;
                        case "boxPlot":
                            p = new Vd(n, a).draw(o.series, i.chart.type);
                            break;
                        case "rangeBar":
                            p = n.rangeBar.draw(o.series);
                            break;
                        case "rangeArea":
                            p = d.draw(o.seriesRangeStart, "rangeArea", void 0, o.seriesRangeEnd);
                            break;
                        case "heatmap":
                            p = new kI(n, a).draw(o.series);
                            break;
                        case "treemap":
                            p = new EI(n, a).draw(o.series);
                            break;
                        case "pie":
                        case "donut":
                        case "polarArea":
                            p = n.pie.draw(o.series);
                            break;
                        case "radialBar":
                            p = m.draw(o.series);
                            break;
                        case "radar":
                            p = f.draw(o.series);
                            break;
                        default:
                            p = d.draw(o.series);
                    }
                    return p;
                }
            },
            {
                key: "setSVGDimensions",
                value: function() {
                    var e = this.w, a = e.globals, r = e.config;
                    r.chart.width = r.chart.width || "100%", r.chart.height = r.chart.height || "auto", a.svgWidth = r.chart.width, a.svgHeight = r.chart.height;
                    var n = V.getDimensions(this.el), i = r.chart.width.toString().split(/[0-9]+/g).pop();
                    i === "%" ? V.isNumber(n[0]) && (n[0].width === 0 && (n = V.getDimensions(this.el.parentNode)), a.svgWidth = n[0] * parseInt(r.chart.width, 10) / 100) : i !== "px" && i !== "" || (a.svgWidth = parseInt(r.chart.width, 10));
                    var o = String(r.chart.height).toString().split(/[0-9]+/g).pop();
                    if (a.svgHeight !== "auto" && a.svgHeight !== "") if (o === "%") {
                        var s = V.getDimensions(this.el.parentNode);
                        a.svgHeight = s[1] * parseInt(r.chart.height, 10) / 100;
                    } else a.svgHeight = parseInt(r.chart.height, 10);
                    else a.svgHeight = a.axisCharts ? a.svgWidth / 1.61 : a.svgWidth / 1.2;
                    if (a.svgWidth = Math.max(a.svgWidth, 0), a.svgHeight = Math.max(a.svgHeight, 0), he.setAttrs(a.dom.Paper.node, {
                        width: a.svgWidth,
                        height: a.svgHeight
                    }), o !== "%") {
                        var l = r.chart.sparkline.enabled ? 0 : a.axisCharts ? r.chart.parentHeightOffset : 0;
                        a.dom.Paper.node.parentNode.parentNode.style.minHeight = "".concat(a.svgHeight + l, "px");
                    }
                    a.dom.elWrap.style.width = "".concat(a.svgWidth, "px"), a.dom.elWrap.style.height = "".concat(a.svgHeight, "px");
                }
            },
            {
                key: "shiftGraphPosition",
                value: function() {
                    var e = this.w.globals, a = e.translateY, r = e.translateX;
                    he.setAttrs(e.dom.elGraphical.node, {
                        transform: "translate(".concat(r, ", ").concat(a, ")")
                    });
                }
            },
            {
                key: "resizeNonAxisCharts",
                value: function() {
                    var e = this.w, a = e.globals, r = 0, n = e.config.chart.sparkline.enabled ? 1 : 15;
                    n += e.config.grid.padding.bottom, [
                        "top",
                        "bottom"
                    ].includes(e.config.legend.position) && e.config.legend.show && !e.config.legend.floating && (r = new Y1(this.ctx).legendHelpers.getLegendDimensions().clwh + 7);
                    var i = e.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"), o = 2.05 * e.globals.radialSize;
                    if (i && !e.config.chart.sparkline.enabled && e.config.plotOptions.radialBar.startAngle !== 0) {
                        var s = V.getBoundingClientRect(i);
                        o = s.bottom;
                        var l = s.bottom - s.top;
                        o = Math.max(2.05 * e.globals.radialSize, l);
                    }
                    var u = Math.ceil(o + a.translateY + r + n);
                    a.dom.elLegendForeign && a.dom.elLegendForeign.setAttribute("height", u), e.config.chart.height && String(e.config.chart.height).includes("%") || (a.dom.elWrap.style.height = "".concat(u, "px"), he.setAttrs(a.dom.Paper.node, {
                        height: u
                    }), a.dom.Paper.node.parentNode.parentNode.style.minHeight = "".concat(u, "px"));
                }
            },
            {
                key: "coreCalculations",
                value: function() {
                    new $h(this.ctx).init();
                }
            },
            {
                key: "resetGlobals",
                value: function() {
                    var e = this, a = function() {
                        return e.w.config.series.map(function() {
                            return [];
                        });
                    }, r = new G1, n = this.w.globals;
                    r.initGlobalVars(n), n.seriesXvalues = a(), n.seriesYvalues = a();
                }
            },
            {
                key: "isMultipleY",
                value: function() {
                    return !!(Array.isArray(this.w.config.yaxis) && this.w.config.yaxis.length > 1) && (this.w.globals.isMultipleYAxis = !0, !0);
                }
            },
            {
                key: "xySettings",
                value: function() {
                    var e = this.w, a = null;
                    if (e.globals.axisCharts) {
                        if (e.config.xaxis.crosshairs.position === "back" && new Uh(this.ctx).drawXCrosshairs(), e.config.yaxis[0].crosshairs.position === "back" && new Uh(this.ctx).drawYCrosshairs(), e.config.xaxis.type === "datetime" && e.config.xaxis.labels.formatter === void 0) {
                            this.ctx.timeScale = new PI(this.ctx);
                            var r = [];
                            isFinite(e.globals.minX) && isFinite(e.globals.maxX) && !e.globals.isBarHorizontal ? r = this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX, e.globals.maxX) : e.globals.isBarHorizontal && (r = this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY, e.globals.maxY)), this.ctx.timeScale.recalcDimensionsBasedOnFormat(r);
                        }
                        a = new Ht(this.ctx).getCalculatedRatios();
                    }
                    return a;
                }
            },
            {
                key: "updateSourceChart",
                value: function(e) {
                    this.ctx.w.globals.selection = void 0, this.ctx.updateHelpers._updateOptions({
                        chart: {
                            selection: {
                                xaxis: {
                                    min: e.w.globals.minX,
                                    max: e.w.globals.maxX
                                }
                            }
                        }
                    }, !1, !1);
                }
            },
            {
                key: "setupBrushHandler",
                value: function() {
                    var e = this, a = this.ctx, r = this.w;
                    if (r.config.chart.brush.enabled && typeof r.config.chart.events.selection != "function") {
                        var n = Array.isArray(r.config.chart.brush.targets) ? r.config.chart.brush.targets : [
                            r.config.chart.brush.target
                        ];
                        n.forEach(function(i) {
                            var o = a.constructor.getChartByID(i);
                            o.w.globals.brushSource = e.ctx, typeof o.w.config.chart.events.zoomed != "function" && (o.w.config.chart.events.zoomed = function() {
                                return e.updateSourceChart(o);
                            }), typeof o.w.config.chart.events.scrolled != "function" && (o.w.config.chart.events.scrolled = function() {
                                return e.updateSourceChart(o);
                            });
                        }), r.config.chart.events.selection = function(i, o) {
                            n.forEach(function(s) {
                                a.constructor.getChartByID(s).ctx.updateHelpers._updateOptions({
                                    xaxis: {
                                        min: o.xaxis.min,
                                        max: o.xaxis.max
                                    }
                                }, !1, !1, !1, !1);
                            });
                        };
                    }
                }
            }
        ]), t;
    }(), MI = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "_updateOptions",
                value: function(e) {
                    var a = this, r = arguments.length > 1 && arguments[1] !== void 0 && arguments[1], n = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2], i = !(arguments.length > 3 && arguments[3] !== void 0) || arguments[3], o = arguments.length > 4 && arguments[4] !== void 0 && arguments[4];
                    return new Promise(function(s) {
                        var l = [
                            a.ctx
                        ];
                        i && (l = a.ctx.getSyncedCharts()), a.ctx.w.globals.isExecCalled && (l = [
                            a.ctx
                        ], a.ctx.w.globals.isExecCalled = !1), l.forEach(function(u, c) {
                            var d = u.w;
                            if (d.globals.shouldAnimate = n, r || (d.globals.resized = !0, d.globals.dataChanged = !0, n && u.series.getPreviousPaths()), e && Ci(e) === "object" && (u.config = new Ao(e), e = Ht.extendArrayProps(u.config, e, d), u.w.globals.chartID !== a.ctx.w.globals.chartID && delete e.series, d.config = V.extend(d.config, e), o && (d.globals.lastXAxis = e.xaxis ? V.clone(e.xaxis) : [], d.globals.lastYAxis = e.yaxis ? V.clone(e.yaxis) : [], d.globals.initialConfig = V.extend({}, d.config), d.globals.initialSeries = V.clone(d.config.series), e.series))) {
                                for(var h = 0; h < d.globals.collapsedSeriesIndices.length; h++){
                                    var m = d.config.series[d.globals.collapsedSeriesIndices[h]];
                                    d.globals.collapsedSeries[h].data = d.globals.axisCharts ? m.data.slice() : m;
                                }
                                for(var f = 0; f < d.globals.ancillaryCollapsedSeriesIndices.length; f++){
                                    var p = d.config.series[d.globals.ancillaryCollapsedSeriesIndices[f]];
                                    d.globals.ancillaryCollapsedSeries[f].data = d.globals.axisCharts ? p.data.slice() : p;
                                }
                                u.series.emptyCollapsedSeries(d.config.series);
                            }
                            return u.update(e).then(function() {
                                c === l.length - 1 && s(u);
                            });
                        });
                    });
                }
            },
            {
                key: "_updateSeries",
                value: function(e, a) {
                    var r = this, n = arguments.length > 2 && arguments[2] !== void 0 && arguments[2];
                    return new Promise(function(i) {
                        var o, s = r.w;
                        return s.globals.shouldAnimate = a, s.globals.dataChanged = !0, a && r.ctx.series.getPreviousPaths(), s.globals.axisCharts ? ((o = e.map(function(l, u) {
                            return r._extendSeries(l, u);
                        })).length === 0 && (o = [
                            {
                                data: []
                            }
                        ]), s.config.series = o) : s.config.series = e.slice(), n && (s.globals.initialConfig.series = V.clone(s.config.series), s.globals.initialSeries = V.clone(s.config.series)), r.ctx.update().then(function() {
                            i(r.ctx);
                        });
                    });
                }
            },
            {
                key: "_extendSeries",
                value: function(e, a) {
                    var r = this.w, n = r.config.series[a];
                    return ye(ye({}, r.config.series[a]), {}, {
                        name: e.name ? e.name : n?.name,
                        color: e.color ? e.color : n?.color,
                        type: e.type ? e.type : n?.type,
                        group: e.group ? e.group : n?.group,
                        hidden: e.hidden !== void 0 ? e.hidden : n?.hidden,
                        data: e.data ? e.data : n?.data,
                        zIndex: e.zIndex !== void 0 ? e.zIndex : a
                    });
                }
            },
            {
                key: "toggleDataPointSelection",
                value: function(e, a) {
                    var r = this.w, n = null, i = ".apexcharts-series[data\\:realIndex='".concat(e, "']");
                    return r.globals.axisCharts ? n = r.globals.dom.Paper.findOne("".concat(i, " path[j='").concat(a, "'], ").concat(i, " circle[j='").concat(a, "'], ").concat(i, " rect[j='").concat(a, "']")) : a === void 0 && (n = r.globals.dom.Paper.findOne("".concat(i, " path[j='").concat(e, "']")), r.config.chart.type !== "pie" && r.config.chart.type !== "polarArea" && r.config.chart.type !== "donut" || this.ctx.pie.pieClicked(e)), n ? (new he(this.ctx).pathMouseDown(n, null), n.node ? n.node : null) : (console.warn("toggleDataPointSelection: Element not found"), null);
                }
            },
            {
                key: "forceXAxisUpdate",
                value: function(e) {
                    var a = this.w;
                    if ([
                        "min",
                        "max"
                    ].forEach(function(n) {
                        e.xaxis[n] !== void 0 && (a.config.xaxis[n] = e.xaxis[n], a.globals.lastXAxis[n] = e.xaxis[n]);
                    }), e.xaxis.categories && e.xaxis.categories.length && (a.config.xaxis.categories = e.xaxis.categories), a.config.xaxis.convertedCatToNumeric) {
                        var r = new Co(e);
                        e = r.convertCatToNumericXaxis(e, this.ctx);
                    }
                    return e;
                }
            },
            {
                key: "forceYAxisUpdate",
                value: function(e) {
                    return e.chart && e.chart.stacked && e.chart.stackType === "100%" && (Array.isArray(e.yaxis) ? e.yaxis.forEach(function(a, r) {
                        e.yaxis[r].min = 0, e.yaxis[r].max = 100;
                    }) : (e.yaxis.min = 0, e.yaxis.max = 100)), e;
                }
            },
            {
                key: "revertDefaultAxisMinMax",
                value: function(e) {
                    var a = this, r = this.w, n = r.globals.lastXAxis, i = r.globals.lastYAxis;
                    e && e.xaxis && (n = e.xaxis), e && e.yaxis && (i = e.yaxis), r.config.xaxis.min = n.min, r.config.xaxis.max = n.max;
                    var o = function(s) {
                        i[s] !== void 0 && (r.config.yaxis[s].min = i[s].min, r.config.yaxis[s].max = i[s].max);
                    };
                    r.config.yaxis.map(function(s, l) {
                        r.globals.zoomed || i[l] !== void 0 ? o(l) : a.ctx.opts.yaxis[l] !== void 0 && (s.min = a.ctx.opts.yaxis[l].min, s.max = a.ctx.opts.yaxis[l].max);
                    });
                }
            }
        ]), t;
    }();
    (function() {
        function t() {
            for(var i = arguments.length > 0 && arguments[0] !== d ? arguments[0] : [], o = arguments.length > 1 ? arguments[1] : d, s = arguments.length > 2 ? arguments[2] : d, l = arguments.length > 3 ? arguments[3] : d, u = arguments.length > 4 ? arguments[4] : d, c = arguments.length > 5 ? arguments[5] : d, d = arguments.length > 6 ? arguments[6] : d, h = i.slice(o, s || d), m = l.slice(u, c || d), f = 0, p = {
                pos: [
                    0,
                    0
                ],
                start: [
                    0,
                    0
                ]
            }, g = {
                pos: [
                    0,
                    0
                ],
                start: [
                    0,
                    0
                ]
            }; h[f] = e.call(p, h[f]), m[f] = e.call(g, m[f]), h[f][0] != m[f][0] || h[f][0] == "M" || h[f][0] == "A" && (h[f][4] != m[f][4] || h[f][5] != m[f][5]) ? (Array.prototype.splice.apply(h, [
                f,
                1
            ].concat(r.call(p, h[f]))), Array.prototype.splice.apply(m, [
                f,
                1
            ].concat(r.call(g, m[f])))) : (h[f] = a.call(p, h[f]), m[f] = a.call(g, m[f])), !(++f == h.length && f == m.length);)f == h.length && h.push([
                "C",
                p.pos[0],
                p.pos[1],
                p.pos[0],
                p.pos[1],
                p.pos[0],
                p.pos[1]
            ]), f == m.length && m.push([
                "C",
                g.pos[0],
                g.pos[1],
                g.pos[0],
                g.pos[1],
                g.pos[0],
                g.pos[1]
            ]);
            return {
                start: h,
                dest: m
            };
        }
        function e(i) {
            switch(i[0]){
                case "z":
                case "Z":
                    i[0] = "L", i[1] = this.start[0], i[2] = this.start[1];
                    break;
                case "H":
                    i[0] = "L", i[2] = this.pos[1];
                    break;
                case "V":
                    i[0] = "L", i[2] = i[1], i[1] = this.pos[0];
                    break;
                case "T":
                    i[0] = "Q", i[3] = i[1], i[4] = i[2], i[1] = this.reflection[1], i[2] = this.reflection[0];
                    break;
                case "S":
                    i[0] = "C", i[6] = i[4], i[5] = i[3], i[4] = i[2], i[3] = i[1], i[2] = this.reflection[1], i[1] = this.reflection[0];
            }
            return i;
        }
        function a(i) {
            var o = i.length;
            return this.pos = [
                i[o - 2],
                i[o - 1]
            ], "SCQT".indexOf(i[0]) != -1 && (this.reflection = [
                2 * this.pos[0] - i[o - 4],
                2 * this.pos[1] - i[o - 3]
            ]), i;
        }
        function r(i) {
            var o = [
                i
            ];
            switch(i[0]){
                case "M":
                    return this.pos = this.start = [
                        i[1],
                        i[2]
                    ], o;
                case "L":
                    i[5] = i[3] = i[1], i[6] = i[4] = i[2], i[1] = this.pos[0], i[2] = this.pos[1];
                    break;
                case "Q":
                    i[6] = i[4], i[5] = i[3], i[4] = 1 * i[4] / 3 + 2 * i[2] / 3, i[3] = 1 * i[3] / 3 + 2 * i[1] / 3, i[2] = 1 * this.pos[1] / 3 + 2 * i[2] / 3, i[1] = 1 * this.pos[0] / 3 + 2 * i[1] / 3;
                    break;
                case "A":
                    o = function(s, l) {
                        var u, c, d, h, m, f, p, g, v, b, k, S, x, C, w, F, D, _, A, E, B, P, M, R, z, N, H = Math.abs(l[1]), I = Math.abs(l[2]), L = l[3] % 360, G = l[4], q = l[5], X = l[6], ue = l[7], J = new dt(s), U = new dt(X, ue), le = [];
                        if (H === 0 || I === 0 || J.x === U.x && J.y === U.y) return [
                            [
                                "C",
                                J.x,
                                J.y,
                                U.x,
                                U.y,
                                U.x,
                                U.y
                            ]
                        ];
                        for(u = new dt((J.x - U.x) / 2, (J.y - U.y) / 2).transform(new Ie().rotate(L)), c = u.x * u.x / (H * H) + u.y * u.y / (I * I), c > 1 && (H *= c = Math.sqrt(c), I *= c), d = new Ie().rotate(L).scale(1 / H, 1 / I).rotate(-L), J = J.transform(d), U = U.transform(d), h = [
                            U.x - J.x,
                            U.y - J.y
                        ], f = h[0] * h[0] + h[1] * h[1], m = Math.sqrt(f), h[0] /= m, h[1] /= m, p = f < 4 ? Math.sqrt(1 - f / 4) : 0, G === q && (p *= -1), g = new dt((U.x + J.x) / 2 + p * -h[1], (U.y + J.y) / 2 + p * h[0]), v = new dt(J.x - g.x, J.y - g.y), b = new dt(U.x - g.x, U.y - g.y), k = Math.acos(v.x / Math.sqrt(v.x * v.x + v.y * v.y)), v.y < 0 && (k *= -1), S = Math.acos(b.x / Math.sqrt(b.x * b.x + b.y * b.y)), b.y < 0 && (S *= -1), q && k > S && (S += 2 * Math.PI), !q && k < S && (S -= 2 * Math.PI), C = Math.ceil(2 * Math.abs(k - S) / Math.PI), F = [], D = k, x = (S - k) / C, w = 4 * Math.tan(x / 4) / 3, B = 0; B <= C; B++)A = Math.cos(D), _ = Math.sin(D), E = new dt(g.x + A, g.y + _), F[B] = [
                            new dt(E.x + w * _, E.y - w * A),
                            E,
                            new dt(E.x - w * _, E.y + w * A)
                        ], D += x;
                        for(F[0][0] = F[0][1].clone(), F[F.length - 1][2] = F[F.length - 1][1].clone(), d = new Ie().rotate(L).scale(H, I).rotate(-L), B = 0, P = F.length; B < P; B++)F[B][0] = F[B][0].transform(d), F[B][1] = F[B][1].transform(d), F[B][2] = F[B][2].transform(d);
                        for(B = 1, P = F.length; B < P; B++)M = (E = F[B - 1][2]).x, R = E.y, z = (E = F[B][0]).x, N = E.y, X = (E = F[B][1]).x, ue = E.y, le.push([
                            "C",
                            M,
                            R,
                            z,
                            N,
                            X,
                            ue
                        ]);
                        return le;
                    }(this.pos, i), i = o[0];
            }
            return i[0] = "C", this.pos = [
                i[5],
                i[6]
            ], this.reflection = [
                2 * i[5] - i[3],
                2 * i[6] - i[4]
            ], o;
        }
        function n() {
            var i = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], o = arguments.length > 1 ? arguments[1] : void 0;
            if (o === !1) return !1;
            for(var s = o, l = i.length; s < l; ++s)if (i[s][0] == "M") return s;
            return !1;
        }
        Ne(lr, {
            morph: function(i, o, s, l, u) {
                for(var c = this.parse(i), d = this.parse(o), h = 0, m = 0, f = !1, p = !1; h !== !1 || m !== !1;){
                    var g;
                    f = n(c, h !== !1 && h + 1), p = n(d, m !== !1 && m + 1), h === !1 && (h = (g = new lr(v.start).bbox()).height == 0 || g.width == 0 ? c.push(c[0]) - 1 : c.push([
                        "M",
                        g.x + g.width / 2,
                        g.y + g.height / 2
                    ]) - 1), m === !1 && (m = (g = new lr(v.dest).bbox()).height == 0 || g.width == 0 ? d.push(d[0]) - 1 : d.push([
                        "M",
                        g.x + g.width / 2,
                        g.y + g.height / 2
                    ]) - 1);
                    var v = t(c, h, f, d, m, p);
                    c = c.slice(0, h).concat(v.start, f === !1 ? [] : c.slice(f)), d = d.slice(0, m).concat(v.dest, p === !1 ? [] : d.slice(p)), h = f !== !1 && h + v.start.length, m = p !== !1 && m + v.dest.length;
                }
                this._array = c, this.destination = new lr, this.destination._array = d;
                var b = this.fromArray(c.map(function(k, S) {
                    var x = d[S].map(function(C, w) {
                        return w === 0 ? C : l.step(k[w], d[S][w], s, u[S], u);
                    });
                    return x;
                }));
                return b;
            }
        });
    })();
    const py = (t)=>(t.changedTouches && (t = t.changedTouches[0]), {
            x: t.clientX,
            y: t.clientY
        });
    class RI {
        constructor(e){
            e.remember("_draggable", this), this.el = e, this.drag = this.drag.bind(this), this.startDrag = this.startDrag.bind(this), this.endDrag = this.endDrag.bind(this);
        }
        init(e) {
            e ? (this.el.on("mousedown.drag", this.startDrag), this.el.on("touchstart.drag", this.startDrag, {
                passive: !1
            })) : (this.el.off("mousedown.drag"), this.el.off("touchstart.drag"));
        }
        startDrag(e) {
            const a = !e.type.indexOf("mouse");
            if (a && e.which !== 1 && e.buttons !== 0 || this.el.dispatch("beforedrag", {
                event: e,
                handler: this
            }).defaultPrevented) return;
            e.preventDefault(), e.stopPropagation(), this.init(!1), this.box = this.el.bbox(), this.lastClick = this.el.point(py(e));
            const r = (a ? "mouseup" : "touchend") + ".drag";
            Er(window, (a ? "mousemove" : "touchmove") + ".drag", this.drag, this, {
                passive: !1
            }), Er(window, r, this.endDrag, this, {
                passive: !1
            }), this.el.fire("dragstart", {
                event: e,
                handler: this,
                box: this.box
            });
        }
        drag(e) {
            const { box: a, lastClick: r } = this, n = this.el.point(py(e)), i = n.x - r.x, o = n.y - r.y;
            if (!i && !o) return a;
            const s = a.x + i, l = a.y + o;
            this.box = new Ot(s, l, a.w, a.h), this.lastClick = n, this.el.dispatch("dragmove", {
                event: e,
                handler: this,
                box: this.box
            }).defaultPrevented || this.move(s, l);
        }
        move(e, a) {
            this.el.type === "svg" ? qr.prototype.move.call(this.el, e, a) : this.el.move(e, a);
        }
        endDrag(e) {
            this.drag(e), this.el.fire("dragend", {
                event: e,
                handler: this,
                box: this.box
            }), rr(window, "mousemove.drag"), rr(window, "touchmove.drag"), rr(window, "mouseup.drag"), rr(window, "touchend.drag"), this.init(!0);
        }
    }
    function jh(t, e, a, r = null) {
        return function(n) {
            n.preventDefault(), n.stopPropagation();
            var i = n.pageX || n.touches[0].pageX, o = n.pageY || n.touches[0].pageY;
            e.fire(t, {
                x: i,
                y: o,
                event: n,
                index: r,
                points: a
            });
        };
    }
    function Yh([t, e], { a, b: r, c: n, d: i, e: o, f: s }) {
        return [
            t * a + e * n + o,
            t * r + e * i + s
        ];
    }
    Ne(fa, {
        draggable (t = !0) {
            return (this.remember("_draggable") || new RI(this)).init(t), this;
        }
    });
    let tk = class {
        constructor(t){
            this.el = t, t.remember("_selectHandler", this), this.selection = new qr, this.order = [
                "lt",
                "t",
                "rt",
                "r",
                "rb",
                "b",
                "lb",
                "l",
                "rot"
            ], this.mutationHandler = this.mutationHandler.bind(this);
            const e = Qo();
            this.observer = new e.MutationObserver(this.mutationHandler);
        }
        init(t) {
            this.createHandle = t.createHandle || this.createHandleFn, this.createRot = t.createRot || this.createRotFn, this.updateHandle = t.updateHandle || this.updateHandleFn, this.updateRot = t.updateRot || this.updateRotFn, this.el.root().put(this.selection), this.updatePoints(), this.createSelection(), this.createResizeHandles(), this.updateResizeHandles(), this.createRotationHandle(), this.updateRotationHandle(), this.observer.observe(this.el.node, {
                attributes: !0
            });
        }
        active(t, e) {
            if (!t) return this.selection.clear().remove(), void this.observer.disconnect();
            this.init(e);
        }
        createSelection() {
            this.selection.polygon(this.handlePoints).addClass("svg_select_shape");
        }
        updateSelection() {
            this.selection.get(0).plot(this.handlePoints);
        }
        createResizeHandles() {
            this.handlePoints.forEach((t, e, a)=>{
                const r = this.order[e];
                this.createHandle.call(this, this.selection, t, e, a, r), this.selection.get(e + 1).addClass("svg_select_handle svg_select_handle_" + r).on("mousedown.selection touchstart.selection", jh(r, this.el, this.handlePoints, e));
            });
        }
        createHandleFn(t) {
            t.polyline();
        }
        updateHandleFn(t, e, a, r) {
            const n = r.at(a - 1), i = r[(a + 1) % r.length], o = e, s = [
                o[0] - n[0],
                o[1] - n[1]
            ], l = [
                o[0] - i[0],
                o[1] - i[1]
            ], u = Math.sqrt(s[0] * s[0] + s[1] * s[1]), c = Math.sqrt(l[0] * l[0] + l[1] * l[1]), d = [
                s[0] / u,
                s[1] / u
            ], h = [
                l[0] / c,
                l[1] / c
            ], m = [
                o[0] - 10 * d[0],
                o[1] - 10 * d[1]
            ], f = [
                o[0] - 10 * h[0],
                o[1] - 10 * h[1]
            ];
            t.plot([
                m,
                o,
                f
            ]);
        }
        updateResizeHandles() {
            this.handlePoints.forEach((t, e, a)=>{
                const r = this.order[e];
                this.updateHandle.call(this, this.selection.get(e + 1), t, e, a, r);
            });
        }
        createRotFn(t) {
            t.line(), t.circle(5);
        }
        getPoint(t) {
            return this.handlePoints[this.order.indexOf(t)];
        }
        getPointHandle(t) {
            return this.selection.get(this.order.indexOf(t) + 1);
        }
        updateRotFn(t, e) {
            const a = this.getPoint("t");
            t.get(0).plot(a[0], a[1], e[0], e[1]), t.get(1).center(e[0], e[1]);
        }
        createRotationHandle() {
            const t = this.selection.group().addClass("svg_select_handle_rot").on("mousedown.selection touchstart.selection", jh("rot", this.el, this.handlePoints));
            this.createRot.call(this, t);
        }
        updateRotationHandle() {
            const t = this.selection.findOne("g.svg_select_handle_rot");
            this.updateRot(t, this.rotationPoint, this.handlePoints);
        }
        updatePoints() {
            const t = this.el.bbox(), e = this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM());
            this.handlePoints = this.getHandlePoints(t).map((a)=>Yh(a, e)), this.rotationPoint = Yh(this.getRotationPoint(t), e);
        }
        getHandlePoints({ x: t, x2: e, y: a, y2: r, cx: n, cy: i } = this.el.bbox()) {
            return [
                [
                    t,
                    a
                ],
                [
                    n,
                    a
                ],
                [
                    e,
                    a
                ],
                [
                    e,
                    i
                ],
                [
                    e,
                    r
                ],
                [
                    n,
                    r
                ],
                [
                    t,
                    r
                ],
                [
                    t,
                    i
                ]
            ];
        }
        getRotationPoint({ y: t, cx: e } = this.el.bbox()) {
            return [
                e,
                t - 20
            ];
        }
        mutationHandler() {
            this.updatePoints(), this.updateSelection(), this.updateResizeHandles(), this.updateRotationHandle();
        }
    };
    const gy = (t)=>function(e = !0, a = {}) {
            typeof e == "object" && (a = e, e = !0);
            let r = this.remember("_" + t.name);
            return r || (e.prototype instanceof tk ? (r = new e(this), e = !0) : r = new t(this), this.remember("_" + t.name, r)), r.active(e, a), this;
        };
    function qh(t, e, a, r = null) {
        return function(n) {
            n.preventDefault(), n.stopPropagation();
            var i = n.pageX || n.touches[0].pageX, o = n.pageY || n.touches[0].pageY;
            e.fire(t, {
                x: i,
                y: o,
                event: n,
                index: r,
                points: a
            });
        };
    }
    function Kh([t, e], { a, b: r, c: n, d: i, e: o, f: s }) {
        return [
            t * a + e * n + o,
            t * r + e * i + s
        ];
    }
    Ne(fa, {
        select: gy(tk)
    }), Ne([
        xn,
        wn,
        kn
    ], {
        pointSelect: gy(class {
            constructor(t){
                this.el = t, t.remember("_pointSelectHandler", this), this.selection = new qr, this.order = [
                    "lt",
                    "t",
                    "rt",
                    "r",
                    "rb",
                    "b",
                    "lb",
                    "l",
                    "rot"
                ], this.mutationHandler = this.mutationHandler.bind(this);
                const e = Qo();
                this.observer = new e.MutationObserver(this.mutationHandler);
            }
            init(t) {
                this.createHandle = t.createHandle || this.createHandleFn, this.updateHandle = t.updateHandle || this.updateHandleFn, this.el.root().put(this.selection), this.updatePoints(), this.createSelection(), this.createPointHandles(), this.updatePointHandles(), this.observer.observe(this.el.node, {
                    attributes: !0
                });
            }
            active(t, e) {
                if (!t) return this.selection.clear().remove(), void this.observer.disconnect();
                this.init(e);
            }
            createSelection() {
                this.selection.polygon(this.points).addClass("svg_select_shape_pointSelect");
            }
            updateSelection() {
                this.selection.get(0).plot(this.points);
            }
            createPointHandles() {
                this.points.forEach((t, e, a)=>{
                    this.createHandle.call(this, this.selection, t, e, a), this.selection.get(e + 1).addClass("svg_select_handle_point").on("mousedown.selection touchstart.selection", jh("point", this.el, this.points, e));
                });
            }
            createHandleFn(t) {
                t.circle(5);
            }
            updateHandleFn(t, e) {
                t.center(e[0], e[1]);
            }
            updatePointHandles() {
                this.points.forEach((t, e, a)=>{
                    this.updateHandle.call(this, this.selection.get(e + 1), t, e, a);
                });
            }
            updatePoints() {
                const t = this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM());
                this.points = this.el.array().map((e)=>Yh(e, t));
            }
            mutationHandler() {
                this.updatePoints(), this.updateSelection(), this.updatePointHandles();
            }
        })
    });
    class ak {
        constructor(e){
            this.el = e, e.remember("_selectHandler", this), this.selection = new qr, this.order = [
                "lt",
                "t",
                "rt",
                "r",
                "rb",
                "b",
                "lb",
                "l",
                "rot"
            ], this.mutationHandler = this.mutationHandler.bind(this);
            const a = Qo();
            this.observer = new a.MutationObserver(this.mutationHandler);
        }
        init(e) {
            this.createHandle = e.createHandle || this.createHandleFn, this.createRot = e.createRot || this.createRotFn, this.updateHandle = e.updateHandle || this.updateHandleFn, this.updateRot = e.updateRot || this.updateRotFn, this.el.root().put(this.selection), this.updatePoints(), this.createSelection(), this.createResizeHandles(), this.updateResizeHandles(), this.createRotationHandle(), this.updateRotationHandle(), this.observer.observe(this.el.node, {
                attributes: !0
            });
        }
        active(e, a) {
            if (!e) return this.selection.clear().remove(), void this.observer.disconnect();
            this.init(a);
        }
        createSelection() {
            this.selection.polygon(this.handlePoints).addClass("svg_select_shape");
        }
        updateSelection() {
            this.selection.get(0).plot(this.handlePoints);
        }
        createResizeHandles() {
            this.handlePoints.forEach((e, a, r)=>{
                const n = this.order[a];
                this.createHandle.call(this, this.selection, e, a, r, n), this.selection.get(a + 1).addClass("svg_select_handle svg_select_handle_" + n).on("mousedown.selection touchstart.selection", qh(n, this.el, this.handlePoints, a));
            });
        }
        createHandleFn(e) {
            e.polyline();
        }
        updateHandleFn(e, a, r, n) {
            const i = n.at(r - 1), o = n[(r + 1) % n.length], s = a, l = [
                s[0] - i[0],
                s[1] - i[1]
            ], u = [
                s[0] - o[0],
                s[1] - o[1]
            ], c = Math.sqrt(l[0] * l[0] + l[1] * l[1]), d = Math.sqrt(u[0] * u[0] + u[1] * u[1]), h = [
                l[0] / c,
                l[1] / c
            ], m = [
                u[0] / d,
                u[1] / d
            ], f = [
                s[0] - 10 * h[0],
                s[1] - 10 * h[1]
            ], p = [
                s[0] - 10 * m[0],
                s[1] - 10 * m[1]
            ];
            e.plot([
                f,
                s,
                p
            ]);
        }
        updateResizeHandles() {
            this.handlePoints.forEach((e, a, r)=>{
                const n = this.order[a];
                this.updateHandle.call(this, this.selection.get(a + 1), e, a, r, n);
            });
        }
        createRotFn(e) {
            e.line(), e.circle(5);
        }
        getPoint(e) {
            return this.handlePoints[this.order.indexOf(e)];
        }
        getPointHandle(e) {
            return this.selection.get(this.order.indexOf(e) + 1);
        }
        updateRotFn(e, a) {
            const r = this.getPoint("t");
            e.get(0).plot(r[0], r[1], a[0], a[1]), e.get(1).center(a[0], a[1]);
        }
        createRotationHandle() {
            const e = this.selection.group().addClass("svg_select_handle_rot").on("mousedown.selection touchstart.selection", qh("rot", this.el, this.handlePoints));
            this.createRot.call(this, e);
        }
        updateRotationHandle() {
            const e = this.selection.findOne("g.svg_select_handle_rot");
            this.updateRot(e, this.rotationPoint, this.handlePoints);
        }
        updatePoints() {
            const e = this.el.bbox(), a = this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM());
            this.handlePoints = this.getHandlePoints(e).map((r)=>Kh(r, a)), this.rotationPoint = Kh(this.getRotationPoint(e), a);
        }
        getHandlePoints({ x: e, x2: a, y: r, y2: n, cx: i, cy: o } = this.el.bbox()) {
            return [
                [
                    e,
                    r
                ],
                [
                    i,
                    r
                ],
                [
                    a,
                    r
                ],
                [
                    a,
                    o
                ],
                [
                    a,
                    n
                ],
                [
                    i,
                    n
                ],
                [
                    e,
                    n
                ],
                [
                    e,
                    o
                ]
            ];
        }
        getRotationPoint({ y: e, cx: a } = this.el.bbox()) {
            return [
                a,
                e - 20
            ];
        }
        mutationHandler() {
            this.updatePoints(), this.updateSelection(), this.updateResizeHandles(), this.updateRotationHandle();
        }
    }
    const vy = (t)=>function(e = !0, a = {}) {
            typeof e == "object" && (a = e, e = !0);
            let r = this.remember("_" + t.name);
            return r || (e.prototype instanceof ak ? (r = new e(this), e = !0) : r = new t(this), this.remember("_" + t.name, r)), r.active(e, a), this;
        };
    Ne(fa, {
        select: vy(ak)
    }), Ne([
        xn,
        wn,
        kn
    ], {
        pointSelect: vy(class {
            constructor(t){
                this.el = t, t.remember("_pointSelectHandler", this), this.selection = new qr, this.order = [
                    "lt",
                    "t",
                    "rt",
                    "r",
                    "rb",
                    "b",
                    "lb",
                    "l",
                    "rot"
                ], this.mutationHandler = this.mutationHandler.bind(this);
                const e = Qo();
                this.observer = new e.MutationObserver(this.mutationHandler);
            }
            init(t) {
                this.createHandle = t.createHandle || this.createHandleFn, this.updateHandle = t.updateHandle || this.updateHandleFn, this.el.root().put(this.selection), this.updatePoints(), this.createSelection(), this.createPointHandles(), this.updatePointHandles(), this.observer.observe(this.el.node, {
                    attributes: !0
                });
            }
            active(t, e) {
                if (!t) return this.selection.clear().remove(), void this.observer.disconnect();
                this.init(e);
            }
            createSelection() {
                this.selection.polygon(this.points).addClass("svg_select_shape_pointSelect");
            }
            updateSelection() {
                this.selection.get(0).plot(this.points);
            }
            createPointHandles() {
                this.points.forEach((t, e, a)=>{
                    this.createHandle.call(this, this.selection, t, e, a), this.selection.get(e + 1).addClass("svg_select_handle_point").on("mousedown.selection touchstart.selection", qh("point", this.el, this.points, e));
                });
            }
            createHandleFn(t) {
                t.circle(5);
            }
            updateHandleFn(t, e) {
                t.center(e[0], e[1]);
            }
            updatePointHandles() {
                this.points.forEach((t, e, a)=>{
                    this.updateHandle.call(this, this.selection.get(e + 1), t, e, a);
                });
            }
            updatePoints() {
                const t = this.el.parent().screenCTM().inverseO().multiplyO(this.el.screenCTM());
                this.points = this.el.array().map((e)=>Kh(e, t));
            }
            mutationHandler() {
                this.updatePoints(), this.updateSelection(), this.updatePointHandles();
            }
        })
    });
    const ys = (t)=>(t.changedTouches && (t = t.changedTouches[0]), {
            x: t.clientX,
            y: t.clientY
        }), yy = (t)=>{
        let e = 1 / 0, a = 1 / 0, r = -1 / 0, n = -1 / 0;
        for(let i = 0; i < t.length; i++){
            const o = t[i];
            e = Math.min(e, o[0]), a = Math.min(a, o[1]), r = Math.max(r, o[0]), n = Math.max(n, o[1]);
        }
        return new Ot(e, a, r - e, n - a);
    };
    class by {
        constructor(e){
            this.el = e, e.remember("_ResizeHandler", this), this.lastCoordinates = null, this.eventType = "", this.lastEvent = null, this.handleResize = this.handleResize.bind(this), this.resize = this.resize.bind(this), this.endResize = this.endResize.bind(this), this.rotate = this.rotate.bind(this), this.movePoint = this.movePoint.bind(this);
        }
        active(e, a) {
            this.preserveAspectRatio = a.preserveAspectRatio ?? !1, this.aroundCenter = a.aroundCenter ?? !1, this.grid = a.grid ?? 0, this.degree = a.degree ?? 0, this.el.off(".resize"), e && (this.el.on([
                "lt.resize",
                "rt.resize",
                "rb.resize",
                "lb.resize",
                "t.resize",
                "r.resize",
                "b.resize",
                "l.resize",
                "rot.resize",
                "point.resize"
            ], this.handleResize), this.lastEvent && (this.eventType === "rot" ? this.rotate(this.lastEvent) : this.eventType === "point" ? this.movePoint(this.lastEvent) : this.resize(this.lastEvent)));
        }
        handleResize(e) {
            this.eventType = e.type;
            const { event: a, index: r, points: n } = e.detail, i = !a.type.indexOf("mouse");
            if (i && (a.which || a.buttons) !== 1 || this.el.dispatch("beforeresize", {
                event: e,
                handler: this
            }).defaultPrevented) return;
            this.box = this.el.bbox(), this.startPoint = this.el.point(ys(a)), this.index = r, this.points = n.slice();
            const o = (i ? "mousemove" : "touchmove") + ".resize", s = (i ? "mouseup" : "touchcancel.resize touchend") + ".resize";
            e.type === "point" ? Er(window, o, this.movePoint) : e.type === "rot" ? Er(window, o, this.rotate) : Er(window, o, this.resize), Er(window, s, this.endResize);
        }
        resize(e) {
            this.lastEvent = e;
            const a = this.snapToGrid(this.el.point(ys(e)));
            let r = a.x - this.startPoint.x, n = a.y - this.startPoint.y;
            this.preserveAspectRatio && this.aroundCenter && (r *= 2, n *= 2);
            const i = this.box.x + r, o = this.box.y + n, s = this.box.x2 + r, l = this.box.y2 + n;
            let u = new Ot(this.box);
            if (this.eventType.includes("l") && (u.x = Math.min(i, this.box.x2), u.x2 = Math.max(i, this.box.x2)), this.eventType.includes("r") && (u.x = Math.min(s, this.box.x), u.x2 = Math.max(s, this.box.x)), this.eventType.includes("t") && (u.y = Math.min(o, this.box.y2), u.y2 = Math.max(o, this.box.y2)), this.eventType.includes("b") && (u.y = Math.min(l, this.box.y), u.y2 = Math.max(l, this.box.y)), u.width = u.x2 - u.x, u.height = u.y2 - u.y, this.preserveAspectRatio) {
                const c = u.width / this.box.width, d = u.height / this.box.height, h = [
                    "lt",
                    "t",
                    "rt",
                    "r",
                    "rb",
                    "b",
                    "lb",
                    "l"
                ], m = (h.indexOf(this.eventType) + 4) % h.length, f = this.aroundCenter ? [
                    this.box.cx,
                    this.box.cy
                ] : this.points[m];
                let p = this.eventType.includes("t") || this.eventType.includes("b") ? d : c;
                p = this.eventType.length === 2 ? Math.max(c, d) : p, u = function(g, v, b) {
                    const k = [
                        [
                            g.x,
                            g.y
                        ],
                        [
                            g.x + g.width,
                            g.y
                        ],
                        [
                            g.x + g.width,
                            g.y + g.height
                        ],
                        [
                            g.x,
                            g.y + g.height
                        ]
                    ].map(([S, x])=>{
                        const C = S - v[0], w = (x - v[1]) * b;
                        return [
                            C * b + v[0],
                            w + v[1]
                        ];
                    });
                    return yy(k);
                }(this.box, f, p);
            }
            this.el.dispatch("resize", {
                box: new Ot(u),
                angle: 0,
                eventType: this.eventType,
                event: e,
                handler: this
            }).defaultPrevented || this.el.size(u.width, u.height).move(u.x, u.y);
        }
        movePoint(e) {
            this.lastEvent = e;
            const { x: a, y: r } = this.snapToGrid(this.el.point(ys(e))), n = this.el.array().slice();
            n[this.index] = [
                a,
                r
            ], this.el.dispatch("resize", {
                box: yy(n),
                angle: 0,
                eventType: this.eventType,
                event: e,
                handler: this
            }).defaultPrevented || this.el.plot(n);
        }
        rotate(e) {
            this.lastEvent = e;
            const a = this.startPoint, r = this.el.point(ys(e)), { cx: n, cy: i } = this.box, o = a.x - n, s = a.y - i, l = r.x - n, u = r.y - i, c = Math.sqrt(o * o + s * s) * Math.sqrt(l * l + u * u);
            if (c === 0) return;
            let d = Math.acos((o * l + s * u) / c) / Math.PI * 180;
            if (!d) return;
            r.x < a.x && (d = -d);
            const h = new Ie(this.el), { x: m, y: f } = new dt(n, i).transformO(h), { rotate: p } = h.decompose(), g = this.snapToAngle(p + d) - p;
            this.el.dispatch("resize", {
                box: this.box,
                angle: g,
                eventType: this.eventType,
                event: e,
                handler: this
            }).defaultPrevented || this.el.transform(h.rotateO(g, m, f));
        }
        endResize(e) {
            this.eventType !== "rot" && this.eventType !== "point" && this.resize(e), this.lastEvent = null, this.eventType = "", rr(window, "mousemove.resize touchmove.resize"), rr(window, "mouseup.resize touchend.resize");
        }
        snapToGrid(e) {
            return this.grid && (e.x = Math.round(e.x / this.grid) * this.grid, e.y = Math.round(e.y / this.grid) * this.grid), e;
        }
        snapToAngle(e) {
            return this.degree && (e = Math.round(e / this.degree) * this.degree), e;
        }
    }
    Ne(fa, {
        resize: function(t = !0, e = {}) {
            typeof t == "object" && (e = t, t = !0);
            let a = this.remember("_ResizeHandler");
            return a || (t.prototype instanceof by ? (a = new t(this), t = !0) : a = new by(this), this.remember("_resizeHandler", a)), a.active(t, e), this;
        }
    }), window.SVG === void 0 && (window.SVG = KL), window.Apex === void 0 && (window.Apex = {});
    var Fy = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "initModules",
                value: function() {
                    this.ctx.publicMethods = [
                        "updateOptions",
                        "updateSeries",
                        "appendData",
                        "appendSeries",
                        "isSeriesHidden",
                        "highlightSeries",
                        "toggleSeries",
                        "showSeries",
                        "hideSeries",
                        "setLocale",
                        "resetSeries",
                        "zoomX",
                        "toggleDataPointSelection",
                        "dataURI",
                        "exportToCSV",
                        "addXaxisAnnotation",
                        "addYaxisAnnotation",
                        "addPointAnnotation",
                        "clearAnnotations",
                        "removeAnnotation",
                        "paper",
                        "destroy"
                    ], this.ctx.eventList = [
                        "click",
                        "mousedown",
                        "mousemove",
                        "mouseleave",
                        "touchstart",
                        "touchmove",
                        "touchleave",
                        "mouseup",
                        "touchend"
                    ], this.ctx.animations = new Vi(this.ctx), this.ctx.axes = new iI(this.ctx), this.ctx.core = new BI(this.ctx.el, this.ctx), this.ctx.config = new Ao({}), this.ctx.data = new bf(this.ctx), this.ctx.grid = new U1(this.ctx), this.ctx.graphics = new he(this.ctx), this.ctx.coreUtils = new Ht(this.ctx), this.ctx.crosshairs = new Uh(this.ctx), this.ctx.events = new rI(this.ctx), this.ctx.exports = new so(this.ctx), this.ctx.fill = new hr(this.ctx), this.ctx.localization = new nI(this.ctx), this.ctx.options = new pn, this.ctx.responsive = new oI(this.ctx), this.ctx.series = new nr(this.ctx), this.ctx.theme = new sI(this.ctx), this.ctx.formatters = new as(this.ctx), this.ctx.titleSubtitle = new lI(this.ctx), this.ctx.legend = new Y1(this.ctx), this.ctx.toolbar = new q1(this.ctx), this.ctx.tooltip = new my(this.ctx), this.ctx.dimensions = new el(this.ctx), this.ctx.updateHelpers = new MI(this.ctx), this.ctx.zoomPanSelection = new fI(this.ctx), this.ctx.w.globals.tooltip = new my(this.ctx);
                }
            }
        ]), t;
    }(), ky = function() {
        function t(e) {
            Ae(this, t), this.ctx = e, this.w = e.w;
        }
        return De(t, [
            {
                key: "clear",
                value: function(e) {
                    var a = e.isUpdating;
                    this.ctx.zoomPanSelection && this.ctx.zoomPanSelection.destroy(), this.ctx.toolbar && this.ctx.toolbar.destroy(), this.ctx.animations = null, this.ctx.axes = null, this.ctx.annotations = null, this.ctx.core = null, this.ctx.data = null, this.ctx.grid = null, this.ctx.series = null, this.ctx.responsive = null, this.ctx.theme = null, this.ctx.formatters = null, this.ctx.titleSubtitle = null, this.ctx.legend = null, this.ctx.dimensions = null, this.ctx.options = null, this.ctx.crosshairs = null, this.ctx.zoomPanSelection = null, this.ctx.updateHelpers = null, this.ctx.toolbar = null, this.ctx.localization = null, this.ctx.w.globals.tooltip = null, this.clearDomElements({
                        isUpdating: a
                    });
                }
            },
            {
                key: "killSVG",
                value: function(e) {
                    e.each(function() {
                        this.removeClass("*"), this.off();
                    }, !0), e.clear();
                }
            },
            {
                key: "clearDomElements",
                value: function(e) {
                    var a = this, r = e.isUpdating, n = this.w.globals.dom.Paper.node;
                    n.parentNode && n.parentNode.parentNode && !r && (n.parentNode.parentNode.style.minHeight = "unset");
                    var i = this.w.globals.dom.baseEl;
                    i && this.ctx.eventList.forEach(function(s) {
                        i.removeEventListener(s, a.ctx.events.documentEvent);
                    });
                    var o = this.w.globals.dom;
                    if (this.ctx.el !== null) for(; this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);
                    this.killSVG(o.Paper), o.Paper.remove(), o.elWrap = null, o.elGraphical = null, o.elLegendWrap = null, o.elLegendForeign = null, o.baseEl = null, o.elGridRect = null, o.elGridRectMask = null, o.elGridRectBarMask = null, o.elGridRectMarkerMask = null, o.elForecastMask = null, o.elNonForecastMask = null, o.elDefs = null;
                }
            }
        ]), t;
    }(), $d = new WeakMap, xy = function() {
        function t(e, a) {
            Ae(this, t), this.opts = a, this.ctx = this, this.w = new aI(a).init(), this.el = e, this.w.globals.cuid = V.randomId(), this.w.globals.chartID = this.w.config.chart.id ? V.escapeString(this.w.config.chart.id) : this.w.globals.cuid, new Fy(this).initModules(), this.lastUpdateOptions = null, this.create = V.bind(this.create, this), this.windowResizeHandler = this._windowResizeHandler.bind(this), this.parentResizeHandler = this._parentResizeCallback.bind(this);
        }
        return De(t, [
            {
                key: "render",
                value: function() {
                    var e = this;
                    return new Promise(function(a, r) {
                        if (V.elementExists(e.el)) {
                            Apex._chartInstances === void 0 && (Apex._chartInstances = []), e.w.config.chart.id && Apex._chartInstances.push({
                                id: e.w.globals.chartID,
                                group: e.w.config.chart.group,
                                chart: e
                            }), e.setLocale(e.w.config.chart.defaultLocale);
                            var n = e.w.config.chart.events.beforeMount;
                            typeof n == "function" && n(e, e.w), e.events.fireEvent("beforeMount", [
                                e,
                                e.w
                            ]), window.addEventListener("resize", e.windowResizeHandler), function(h, m) {
                                var f = !1;
                                if (h.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {
                                    var p = h.getBoundingClientRect();
                                    h.style.display !== "none" && p.width !== 0 || (f = !0);
                                }
                                var g = new ResizeObserver(function(v) {
                                    f && m.call(h, v), f = !0;
                                });
                                h.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? Array.from(h.children).forEach(function(v) {
                                    return g.observe(v);
                                }) : g.observe(h), $d.set(m, g);
                            }(e.el.parentNode, e.parentResizeHandler);
                            var i = e.el.getRootNode && e.el.getRootNode(), o = V.is("ShadowRoot", i), s = e.el.ownerDocument, l = o ? i.getElementById("apexcharts-css") : s.getElementById("apexcharts-css");
                            if (!l) {
                                var u;
                                (l = document.createElement("style")).id = "apexcharts-css", l.textContent = `@keyframes opaque {
  0% {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@keyframes resizeanim {

  0%,
  to {
    opacity: 0
  }
}

.apexcharts-canvas {
  position: relative;
  direction: ltr !important;
  user-select: none
}

.apexcharts-canvas ::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 6px
}

.apexcharts-canvas ::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: rgba(0, 0, 0, .5);
  box-shadow: 0 0 1px rgba(255, 255, 255, .5);
  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5)
}

.apexcharts-inner {
  position: relative
}

.apexcharts-text tspan {
  font-family: inherit
}

rect.legend-mouseover-inactive,
.legend-mouseover-inactive rect,
.legend-mouseover-inactive path,
.legend-mouseover-inactive circle,
.legend-mouseover-inactive line,
.legend-mouseover-inactive text.apexcharts-yaxis-title-text,
.legend-mouseover-inactive text.apexcharts-yaxis-label {
  transition: .15s ease all;
  opacity: .2
}

.apexcharts-legend-text {
  padding-left: 15px;
  margin-left: -15px;
}

.apexcharts-series-collapsed {
  opacity: 0
}

.apexcharts-tooltip {
  border-radius: 5px;
  box-shadow: 2px 2px 6px -4px #999;
  cursor: default;
  font-size: 14px;
  left: 62px;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 20px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  white-space: nowrap;
  z-index: 12;
  transition: .15s ease all
}

.apexcharts-tooltip.apexcharts-active {
  opacity: 1;
  transition: .15s ease all
}

.apexcharts-tooltip.apexcharts-theme-light {
  border: 1px solid #e3e3e3;
  background: rgba(255, 255, 255, .96)
}

.apexcharts-tooltip.apexcharts-theme-dark {
  color: #fff;
  background: rgba(30, 30, 30, .8)
}

.apexcharts-tooltip * {
  font-family: inherit
}

.apexcharts-tooltip-title {
  padding: 6px;
  font-size: 15px;
  margin-bottom: 4px
}

.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {
  background: #eceff1;
  border-bottom: 1px solid #ddd
}

.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
  background: rgba(0, 0, 0, .7);
  border-bottom: 1px solid #333
}

.apexcharts-tooltip-text-goals-value,
.apexcharts-tooltip-text-y-value,
.apexcharts-tooltip-text-z-value {
  display: inline-block;
  margin-left: 5px;
  font-weight: 600
}

.apexcharts-tooltip-text-goals-label:empty,
.apexcharts-tooltip-text-goals-value:empty,
.apexcharts-tooltip-text-y-label:empty,
.apexcharts-tooltip-text-y-value:empty,
.apexcharts-tooltip-text-z-value:empty,
.apexcharts-tooltip-title:empty {
  display: none
}

.apexcharts-tooltip-text-goals-label,
.apexcharts-tooltip-text-goals-value {
  padding: 6px 0 5px
}

.apexcharts-tooltip-goals-group,
.apexcharts-tooltip-text-goals-label,
.apexcharts-tooltip-text-goals-value {
  display: flex
}

.apexcharts-tooltip-text-goals-label:not(:empty),
.apexcharts-tooltip-text-goals-value:not(:empty) {
  margin-top: -6px
}

.apexcharts-tooltip-marker {
  display: inline-block;
  position: relative;
  width: 16px;
  height: 16px;
  font-size: 16px;
  line-height: 16px;
  margin-right: 4px;
  text-align: center;
  vertical-align: middle;
  color: inherit;
}

.apexcharts-tooltip-marker::before {
  content: "";
  display: inline-block;
  width: 100%;
  text-align: center;
  color: currentcolor;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-size: 26px;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 14px;
  font-weight: 900;
}

.apexcharts-tooltip-marker[shape="circle"]::before {
  content: "\\25CF";
}

.apexcharts-tooltip-marker[shape="square"]::before,
.apexcharts-tooltip-marker[shape="rect"]::before {
  content: "\\25A0";
  transform: translate(-1px, -2px);
}

.apexcharts-tooltip-marker[shape="line"]::before {
  content: "\\2500";
}

.apexcharts-tooltip-marker[shape="diamond"]::before {
  content: "\\25C6";
  font-size: 28px;
}

.apexcharts-tooltip-marker[shape="triangle"]::before {
  content: "\\25B2";
  font-size: 22px;
}

.apexcharts-tooltip-marker[shape="cross"]::before {
  content: "\\2715";
  font-size: 18px;
}

.apexcharts-tooltip-marker[shape="plus"]::before {
  content: "\\2715";
  transform: rotate(45deg) translate(-1px, -1px);
  font-size: 18px;
}

.apexcharts-tooltip-marker[shape="star"]::before {
  content: "\\2605";
  font-size: 18px;
}

.apexcharts-tooltip-marker[shape="sparkle"]::before {
  content: "\\2726";
  font-size: 20px;
}

.apexcharts-tooltip-series-group {
  padding: 0 10px;
  display: none;
  text-align: left;
  justify-content: left;
  align-items: center
}

.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {
  opacity: 1
}

.apexcharts-tooltip-series-group.apexcharts-active,
.apexcharts-tooltip-series-group:last-child {
  padding-bottom: 4px
}

.apexcharts-tooltip-y-group {
  padding: 6px 0 5px
}

.apexcharts-custom-tooltip,
.apexcharts-tooltip-box {
  padding: 4px 8px
}

.apexcharts-tooltip-boxPlot {
  display: flex;
  flex-direction: column-reverse
}

.apexcharts-tooltip-box>div {
  margin: 4px 0
}

.apexcharts-tooltip-box span.value {
  font-weight: 700
}

.apexcharts-tooltip-rangebar {
  padding: 5px 8px
}

.apexcharts-tooltip-rangebar .category {
  font-weight: 600;
  color: #777
}

.apexcharts-tooltip-rangebar .series-name {
  font-weight: 700;
  display: block;
  margin-bottom: 5px
}

.apexcharts-xaxistooltip,
.apexcharts-yaxistooltip {
  opacity: 0;
  pointer-events: none;
  color: #373d3f;
  font-size: 13px;
  text-align: center;
  border-radius: 2px;
  position: absolute;
  z-index: 10;
  background: #eceff1;
  border: 1px solid #90a4ae
}

.apexcharts-xaxistooltip {
  padding: 9px 10px;
  transition: .15s ease all
}

.apexcharts-xaxistooltip.apexcharts-theme-dark {
  background: rgba(0, 0, 0, .7);
  border: 1px solid rgba(0, 0, 0, .5);
  color: #fff
}

.apexcharts-xaxistooltip:after,
.apexcharts-xaxistooltip:before {
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none
}

.apexcharts-xaxistooltip:after {
  border-color: transparent;
  border-width: 6px;
  margin-left: -6px
}

.apexcharts-xaxistooltip:before {
  border-color: transparent;
  border-width: 7px;
  margin-left: -7px
}

.apexcharts-xaxistooltip-bottom:after,
.apexcharts-xaxistooltip-bottom:before {
  bottom: 100%
}

.apexcharts-xaxistooltip-top:after,
.apexcharts-xaxistooltip-top:before {
  top: 100%
}

.apexcharts-xaxistooltip-bottom:after {
  border-bottom-color: #eceff1
}

.apexcharts-xaxistooltip-bottom:before {
  border-bottom-color: #90a4ae
}

.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,
.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {
  border-bottom-color: rgba(0, 0, 0, .5)
}

.apexcharts-xaxistooltip-top:after {
  border-top-color: #eceff1
}

.apexcharts-xaxistooltip-top:before {
  border-top-color: #90a4ae
}

.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,
.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {
  border-top-color: rgba(0, 0, 0, .5)
}

.apexcharts-xaxistooltip.apexcharts-active {
  opacity: 1;
  transition: .15s ease all
}

.apexcharts-yaxistooltip {
  padding: 4px 10px
}

.apexcharts-yaxistooltip.apexcharts-theme-dark {
  background: rgba(0, 0, 0, .7);
  border: 1px solid rgba(0, 0, 0, .5);
  color: #fff
}

.apexcharts-yaxistooltip:after,
.apexcharts-yaxistooltip:before {
  top: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none
}

.apexcharts-yaxistooltip:after {
  border-color: transparent;
  border-width: 6px;
  margin-top: -6px
}

.apexcharts-yaxistooltip:before {
  border-color: transparent;
  border-width: 7px;
  margin-top: -7px
}

.apexcharts-yaxistooltip-left:after,
.apexcharts-yaxistooltip-left:before {
  left: 100%
}

.apexcharts-yaxistooltip-right:after,
.apexcharts-yaxistooltip-right:before {
  right: 100%
}

.apexcharts-yaxistooltip-left:after {
  border-left-color: #eceff1
}

.apexcharts-yaxistooltip-left:before {
  border-left-color: #90a4ae
}

.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,
.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {
  border-left-color: rgba(0, 0, 0, .5)
}

.apexcharts-yaxistooltip-right:after {
  border-right-color: #eceff1
}

.apexcharts-yaxistooltip-right:before {
  border-right-color: #90a4ae
}

.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,
.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {
  border-right-color: rgba(0, 0, 0, .5)
}

.apexcharts-yaxistooltip.apexcharts-active {
  opacity: 1
}

.apexcharts-yaxistooltip-hidden {
  display: none
}

.apexcharts-xcrosshairs,
.apexcharts-ycrosshairs {
  pointer-events: none;
  opacity: 0;
  transition: .15s ease all
}

.apexcharts-xcrosshairs.apexcharts-active,
.apexcharts-ycrosshairs.apexcharts-active {
  opacity: 1;
  transition: .15s ease all
}

.apexcharts-ycrosshairs-hidden {
  opacity: 0
}

.apexcharts-selection-rect {
  cursor: move
}

.svg_select_shape {
  stroke-width: 1;
  stroke-dasharray: 10 10;
  stroke: black;
  stroke-opacity: 0.1;
  pointer-events: none;
  fill: none;
}

.svg_select_handle {
  stroke-width: 3;
  stroke: black;
  fill: none;
}

.svg_select_handle_r {
  cursor: e-resize;
}

.svg_select_handle_l {
  cursor: w-resize;
}

.apexcharts-svg.apexcharts-zoomable.hovering-zoom {
  cursor: crosshair
}

.apexcharts-svg.apexcharts-zoomable.hovering-pan {
  cursor: move
}

.apexcharts-menu-icon,
.apexcharts-pan-icon,
.apexcharts-reset-icon,
.apexcharts-selection-icon,
.apexcharts-toolbar-custom-icon,
.apexcharts-zoom-icon,
.apexcharts-zoomin-icon,
.apexcharts-zoomout-icon {
  cursor: pointer;
  width: 20px;
  height: 20px;
  line-height: 24px;
  color: #6e8192;
  text-align: center
}

.apexcharts-menu-icon svg,
.apexcharts-reset-icon svg,
.apexcharts-zoom-icon svg,
.apexcharts-zoomin-icon svg,
.apexcharts-zoomout-icon svg {
  fill: #6e8192
}

.apexcharts-selection-icon svg {
  fill: #444;
  transform: scale(.76)
}

.apexcharts-theme-dark .apexcharts-menu-icon svg,
.apexcharts-theme-dark .apexcharts-pan-icon svg,
.apexcharts-theme-dark .apexcharts-reset-icon svg,
.apexcharts-theme-dark .apexcharts-selection-icon svg,
.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,
.apexcharts-theme-dark .apexcharts-zoom-icon svg,
.apexcharts-theme-dark .apexcharts-zoomin-icon svg,
.apexcharts-theme-dark .apexcharts-zoomout-icon svg {
  fill: #f3f4f5
}

.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,
.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,
.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {
  fill: #008ffb
}

.apexcharts-theme-light .apexcharts-menu-icon:hover svg,
.apexcharts-theme-light .apexcharts-reset-icon:hover svg,
.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,
.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,
.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,
.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {
  fill: #333
}

.apexcharts-menu-icon,
.apexcharts-selection-icon {
  position: relative
}

.apexcharts-reset-icon {
  margin-left: 5px
}

.apexcharts-menu-icon,
.apexcharts-reset-icon,
.apexcharts-zoom-icon {
  transform: scale(.85)
}

.apexcharts-zoomin-icon,
.apexcharts-zoomout-icon {
  transform: scale(.7)
}

.apexcharts-zoomout-icon {
  margin-right: 3px
}

.apexcharts-pan-icon {
  transform: scale(.62);
  position: relative;
  left: 1px;
  top: 0
}

.apexcharts-pan-icon svg {
  fill: #fff;
  stroke: #6e8192;
  stroke-width: 2
}

.apexcharts-pan-icon.apexcharts-selected svg {
  stroke: #008ffb
}

.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {
  stroke: #333
}

.apexcharts-toolbar {
  position: absolute;
  z-index: 11;
  max-width: 176px;
  text-align: right;
  border-radius: 3px;
  padding: 0 6px 2px;
  display: flex;
  justify-content: space-between;
  align-items: center
}

.apexcharts-menu {
  background: #fff;
  position: absolute;
  top: 100%;
  border: 1px solid #ddd;
  border-radius: 3px;
  padding: 3px;
  right: 10px;
  opacity: 0;
  min-width: 110px;
  transition: .15s ease all;
  pointer-events: none
}

.apexcharts-menu.apexcharts-menu-open {
  opacity: 1;
  pointer-events: all;
  transition: .15s ease all
}

.apexcharts-menu-item {
  padding: 6px 7px;
  font-size: 12px;
  cursor: pointer
}

.apexcharts-theme-light .apexcharts-menu-item:hover {
  background: #eee
}

.apexcharts-theme-dark .apexcharts-menu {
  background: rgba(0, 0, 0, .7);
  color: #fff
}

@media screen and (min-width:768px) {
  .apexcharts-canvas:hover .apexcharts-toolbar {
    opacity: 1
  }
}

.apexcharts-canvas .apexcharts-element-hidden,
.apexcharts-datalabel.apexcharts-element-hidden,
.apexcharts-hide .apexcharts-series-points {
  opacity: 0;
}

.apexcharts-hidden-element-shown {
  opacity: 1;
  transition: 0.25s ease all;
}

.apexcharts-datalabel,
.apexcharts-datalabel-label,
.apexcharts-datalabel-value,
.apexcharts-datalabels,
.apexcharts-pie-label {
  cursor: default;
  pointer-events: none
}

.apexcharts-pie-label-delay {
  opacity: 0;
  animation-name: opaque;
  animation-duration: .3s;
  animation-fill-mode: forwards;
  animation-timing-function: ease
}

.apexcharts-radialbar-label {
  cursor: pointer;
}

.apexcharts-annotation-rect,
.apexcharts-area-series .apexcharts-area,
.apexcharts-gridline,
.apexcharts-line,
.apexcharts-point-annotation-label,
.apexcharts-radar-series path:not(.apexcharts-marker),
.apexcharts-radar-series polygon,
.apexcharts-toolbar svg,
.apexcharts-tooltip .apexcharts-marker,
.apexcharts-xaxis-annotation-label,
.apexcharts-yaxis-annotation-label,
.apexcharts-zoom-rect,
.no-pointer-events {
  pointer-events: none
}

.apexcharts-tooltip-active .apexcharts-marker {
  transition: .15s ease all
}

.apexcharts-radar-series .apexcharts-yaxis {
  pointer-events: none;
}

.resize-triggers {
  animation: 1ms resizeanim;
  visibility: hidden;
  opacity: 0;
  height: 100%;
  width: 100%;
  overflow: hidden
}

.contract-trigger:before,
.resize-triggers,
.resize-triggers>div {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0
}

.resize-triggers>div {
  height: 100%;
  width: 100%;
  background: #eee;
  overflow: auto
}

.contract-trigger:before {
  overflow: hidden;
  width: 200%;
  height: 200%
}

.apexcharts-bar-goals-markers {
  pointer-events: none
}

.apexcharts-bar-shadows {
  pointer-events: none
}

.apexcharts-rangebar-goals-markers {
  pointer-events: none
}

.apexcharts-disable-transitions * {
  transition: none !important;
}`;
                                var c = ((u = e.opts.chart) === null || u === void 0 ? void 0 : u.nonce) || e.w.config.chart.nonce;
                                c && l.setAttribute("nonce", c), o ? i.prepend(l) : s.head.appendChild(l);
                            }
                            var d = e.create(e.w.config.series, {});
                            if (!d) return a(e);
                            e.mount(d).then(function() {
                                typeof e.w.config.chart.events.mounted == "function" && e.w.config.chart.events.mounted(e, e.w), e.events.fireEvent("mounted", [
                                    e,
                                    e.w
                                ]), a(d);
                            }).catch(function(h) {
                                r(h);
                            });
                        } else r(new Error("Element not found"));
                    });
                }
            },
            {
                key: "create",
                value: function(e, a) {
                    var r = this, n = this.w;
                    new Fy(this).initModules();
                    var i = this.w.globals;
                    if (i.noData = !1, i.animationEnded = !1, !V.elementExists(this.el) || (this.responsive.checkResponsiveConfig(a), n.config.xaxis.convertedCatToNumeric && new Co(n.config).convertCatToNumericXaxis(n.config, this.ctx), this.core.setupElements(), n.config.chart.type === "treemap" && (n.config.grid.show = !1, n.config.yaxis[0].show = !1), i.svgWidth === 0)) return i.animationEnded = !0, null;
                    var o = e;
                    e.forEach(function(h, m) {
                        h.hidden && (o = r.legend.legendHelpers.getSeriesAfterCollapsing({
                            realIndex: m
                        }));
                    });
                    var s = Ht.checkComboSeries(o, n.config.chart.type);
                    i.comboCharts = s.comboCharts, i.comboBarCount = s.comboBarCount;
                    var l = o.every(function(h) {
                        return h.data && h.data.length === 0;
                    });
                    (o.length === 0 || l && i.collapsedSeries.length < 1) && this.series.handleNoData(), this.events.setupEventHandlers(), this.data.parseData(o), this.theme.init(), new Ui(this).setGlobalMarkerSize(), this.formatters.setLabelFormatters(), this.titleSubtitle.draw(), i.noData && i.collapsedSeries.length !== i.series.length && !n.config.legend.showForSingleSeries || this.legend.init(), this.series.hasAllSeriesEqualX(), i.axisCharts && (this.core.coreCalculations(), n.config.xaxis.type !== "category" && this.formatters.setLabelFormatters(), this.ctx.toolbar.minX = n.globals.minX, this.ctx.toolbar.maxX = n.globals.maxX), this.formatters.heatmapLabelFormatters(), new Ht(this).getLargestMarkerSize(), this.dimensions.plotCoords();
                    var u = this.core.xySettings();
                    this.grid.createGridMask();
                    var c = this.core.plotChartType(o, u), d = new Ai(this);
                    return d.bringForward(), n.config.dataLabels.background.enabled && d.dataLabelsBackground(), this.core.shiftGraphPosition(), n.globals.dataPoints > 50 && n.globals.dom.elWrap.classList.add("apexcharts-disable-transitions"), {
                        elGraph: c,
                        xyRatios: u,
                        dimensions: {
                            plot: {
                                left: n.globals.translateX,
                                top: n.globals.translateY,
                                width: n.globals.gridWidth,
                                height: n.globals.gridHeight
                            }
                        }
                    };
                }
            },
            {
                key: "mount",
                value: function() {
                    var e = this, a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null, r = this, n = r.w;
                    return new Promise(function(i, o) {
                        if (r.el === null) return o(new Error("Not enough data to display or target element not found"));
                        (a === null || n.globals.allSeriesCollapsed) && r.series.handleNoData(), r.grid = new U1(r);
                        var s, l, u = r.grid.drawGrid();
                        if (r.annotations = new tI(r), r.annotations.drawImageAnnos(), r.annotations.drawTextAnnos(), n.config.grid.position === "back" && (u && n.globals.dom.elGraphical.add(u.el), u != null && (s = u.elGridBorders) !== null && s !== void 0 && s.node && n.globals.dom.elGraphical.add(u.elGridBorders)), Array.isArray(a.elGraph)) for(var c = 0; c < a.elGraph.length; c++)n.globals.dom.elGraphical.add(a.elGraph[c]);
                        else n.globals.dom.elGraphical.add(a.elGraph);
                        n.config.grid.position === "front" && (u && n.globals.dom.elGraphical.add(u.el), u != null && (l = u.elGridBorders) !== null && l !== void 0 && l.node && n.globals.dom.elGraphical.add(u.elGridBorders)), n.config.xaxis.crosshairs.position === "front" && r.crosshairs.drawXCrosshairs(), n.config.yaxis[0].crosshairs.position === "front" && r.crosshairs.drawYCrosshairs(), n.config.chart.type !== "treemap" && r.axes.drawAxis(n.config.chart.type, u);
                        var d = new Do(e.ctx, u), h = new Ff(e.ctx, u);
                        if (u !== null && (d.xAxisLabelCorrections(u.xAxisTickWidth), h.setYAxisTextAlignments(), n.config.yaxis.map(function(f, p) {
                            n.globals.ignoreYAxisIndexes.indexOf(p) === -1 && h.yAxisTitleRotate(p, f.opposite);
                        })), r.annotations.drawAxesAnnotations(), !n.globals.noData) {
                            if (n.config.tooltip.enabled && !n.globals.noData && r.w.globals.tooltip.drawTooltip(a.xyRatios), n.globals.axisCharts && (n.globals.isXNumeric || n.config.xaxis.convertedCatToNumeric || n.globals.isRangeBar)) (n.config.chart.zoom.enabled || n.config.chart.selection && n.config.chart.selection.enabled || n.config.chart.pan && n.config.chart.pan.enabled) && r.zoomPanSelection.init({
                                xyRatios: a.xyRatios
                            });
                            else {
                                var m = n.config.chart.toolbar.tools;
                                [
                                    "zoom",
                                    "zoomin",
                                    "zoomout",
                                    "selection",
                                    "pan",
                                    "reset"
                                ].forEach(function(f) {
                                    m[f] = !1;
                                });
                            }
                            n.config.chart.toolbar.show && !n.globals.allSeriesCollapsed && r.toolbar.createToolbar();
                        }
                        n.globals.memory.methodsToExec.length > 0 && n.globals.memory.methodsToExec.forEach(function(f) {
                            f.method(f.params, !1, f.context);
                        }), n.globals.axisCharts || n.globals.noData || r.core.resizeNonAxisCharts(), i(r);
                    });
                }
            },
            {
                key: "destroy",
                value: function() {
                    window.removeEventListener("resize", this.windowResizeHandler), function(a, r) {
                        var n = $d.get(r);
                        n && (n.disconnect(), $d.delete(r));
                    }(this.el.parentNode, this.parentResizeHandler);
                    var e = this.w.config.chart.id;
                    e && Apex._chartInstances.forEach(function(a, r) {
                        a.id === V.escapeString(e) && Apex._chartInstances.splice(r, 1);
                    }), new ky(this.ctx).clear({
                        isUpdating: !1
                    });
                }
            },
            {
                key: "updateOptions",
                value: function(e) {
                    var a = this, r = arguments.length > 1 && arguments[1] !== void 0 && arguments[1], n = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2], i = !(arguments.length > 3 && arguments[3] !== void 0) || arguments[3], o = !(arguments.length > 4 && arguments[4] !== void 0) || arguments[4], s = this.w;
                    return s.globals.selection = void 0, this.lastUpdateOptions && JSON.stringify(this.lastUpdateOptions) === JSON.stringify(e) ? resolve(this) : (this.lastUpdateOptions = V.clone(e), e.series && (this.series.resetSeries(!1, !0, !1), e.series.length && e.series[0].data && (e.series = e.series.map(function(l, u) {
                        return a.updateHelpers._extendSeries(l, u);
                    })), this.updateHelpers.revertDefaultAxisMinMax()), e.xaxis && (e = this.updateHelpers.forceXAxisUpdate(e)), e.yaxis && (e = this.updateHelpers.forceYAxisUpdate(e)), s.globals.collapsedSeriesIndices.length > 0 && this.series.clearPreviousPaths(), e.theme && (e = this.theme.updateThemeOptions(e)), this.updateHelpers._updateOptions(e, r, n, i, o));
                }
            },
            {
                key: "updateSeries",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], a = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1], r = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2];
                    return this.series.resetSeries(!1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(e, a, r);
                }
            },
            {
                key: "appendSeries",
                value: function(e) {
                    var a = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1], r = !(arguments.length > 2 && arguments[2] !== void 0) || arguments[2], n = this.w.config.series.slice();
                    return n.push(e), this.series.resetSeries(!1), this.updateHelpers.revertDefaultAxisMinMax(), this.updateHelpers._updateSeries(n, a, r);
                }
            },
            {
                key: "appendData",
                value: function(e) {
                    var a = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1], r = this;
                    r.w.globals.dataChanged = !0, r.series.getPreviousPaths();
                    for(var n = r.w.config.series.slice(), i = 0; i < n.length; i++)if (e[i] !== null && e[i] !== void 0) for(var o = 0; o < e[i].data.length; o++)n[i].data.push(e[i].data[o]);
                    return r.w.config.series = n, a && (r.w.globals.initialSeries = V.clone(r.w.config.series)), this.update();
                }
            },
            {
                key: "update",
                value: function(e) {
                    var a = this;
                    return new Promise(function(r, n) {
                        if (a.lastUpdateOptions && JSON.stringify(a.lastUpdateOptions) === JSON.stringify(e)) return r(a);
                        a.lastUpdateOptions = V.clone(e), new ky(a.ctx).clear({
                            isUpdating: !0
                        });
                        var i = a.create(a.w.config.series, e);
                        if (!i) return r(a);
                        a.mount(i).then(function() {
                            typeof a.w.config.chart.events.updated == "function" && a.w.config.chart.events.updated(a, a.w), a.events.fireEvent("updated", [
                                a,
                                a.w
                            ]), a.w.globals.isDirty = !0, r(a);
                        }).catch(function(o) {
                            n(o);
                        });
                    });
                }
            },
            {
                key: "getSyncedCharts",
                value: function() {
                    var e = this.getGroupedCharts(), a = [
                        this
                    ];
                    return e.length && (a = [], e.forEach(function(r) {
                        a.push(r);
                    })), a;
                }
            },
            {
                key: "getGroupedCharts",
                value: function() {
                    var e = this;
                    return Apex._chartInstances.filter(function(a) {
                        if (a.group) return !0;
                    }).map(function(a) {
                        return e.w.config.chart.group === a.group ? a.chart : e;
                    });
                }
            },
            {
                key: "toggleSeries",
                value: function(e) {
                    return this.series.toggleSeries(e);
                }
            },
            {
                key: "highlightSeriesOnLegendHover",
                value: function(e, a) {
                    return this.series.toggleSeriesOnHover(e, a);
                }
            },
            {
                key: "showSeries",
                value: function(e) {
                    this.series.showSeries(e);
                }
            },
            {
                key: "hideSeries",
                value: function(e) {
                    this.series.hideSeries(e);
                }
            },
            {
                key: "highlightSeries",
                value: function(e) {
                    this.series.highlightSeries(e);
                }
            },
            {
                key: "isSeriesHidden",
                value: function(e) {
                    this.series.isSeriesHidden(e);
                }
            },
            {
                key: "resetSeries",
                value: function() {
                    var e = !(arguments.length > 0 && arguments[0] !== void 0) || arguments[0], a = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1];
                    this.series.resetSeries(e, a);
                }
            },
            {
                key: "addEventListener",
                value: function(e, a) {
                    this.events.addEventListener(e, a);
                }
            },
            {
                key: "removeEventListener",
                value: function(e, a) {
                    this.events.removeEventListener(e, a);
                }
            },
            {
                key: "addXaxisAnnotation",
                value: function(e) {
                    var a = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1], r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : void 0, n = this;
                    r && (n = r), n.annotations.addXaxisAnnotationExternal(e, a, n);
                }
            },
            {
                key: "addYaxisAnnotation",
                value: function(e) {
                    var a = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1], r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : void 0, n = this;
                    r && (n = r), n.annotations.addYaxisAnnotationExternal(e, a, n);
                }
            },
            {
                key: "addPointAnnotation",
                value: function(e) {
                    var a = !(arguments.length > 1 && arguments[1] !== void 0) || arguments[1], r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : void 0, n = this;
                    r && (n = r), n.annotations.addPointAnnotationExternal(e, a, n);
                }
            },
            {
                key: "clearAnnotations",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : void 0, a = this;
                    e && (a = e), a.annotations.clearAnnotations(a);
                }
            },
            {
                key: "removeAnnotation",
                value: function(e) {
                    var a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : void 0, r = this;
                    a && (r = a), r.annotations.removeAnnotation(r, e);
                }
            },
            {
                key: "getChartArea",
                value: function() {
                    return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner");
                }
            },
            {
                key: "getSeriesTotalXRange",
                value: function(e, a) {
                    return this.coreUtils.getSeriesTotalsXRange(e, a);
                }
            },
            {
                key: "getHighestValueInSeries",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
                    return new $h(this.ctx).getMinYMaxY(e).highestY;
                }
            },
            {
                key: "getLowestValueInSeries",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
                    return new $h(this.ctx).getMinYMaxY(e).lowestY;
                }
            },
            {
                key: "getSeriesTotal",
                value: function() {
                    return this.w.globals.seriesTotals;
                }
            },
            {
                key: "toggleDataPointSelection",
                value: function(e, a) {
                    return this.updateHelpers.toggleDataPointSelection(e, a);
                }
            },
            {
                key: "zoomX",
                value: function(e, a) {
                    this.ctx.toolbar.zoomUpdateOptions(e, a);
                }
            },
            {
                key: "setLocale",
                value: function(e) {
                    this.localization.setCurrentLocaleValues(e);
                }
            },
            {
                key: "dataURI",
                value: function(e) {
                    return new so(this.ctx).dataURI(e);
                }
            },
            {
                key: "getSvgString",
                value: function(e) {
                    return new so(this.ctx).getSvgString(e);
                }
            },
            {
                key: "exportToCSV",
                value: function() {
                    var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
                    return new so(this.ctx).exportToCSV(e);
                }
            },
            {
                key: "paper",
                value: function() {
                    return this.w.globals.dom.Paper;
                }
            },
            {
                key: "_parentResizeCallback",
                value: function() {
                    this.w.globals.animationEnded && this.w.config.chart.redrawOnParentResize && this._windowResize();
                }
            },
            {
                key: "_windowResize",
                value: function() {
                    var e = this;
                    clearTimeout(this.w.globals.resizeTimer), this.w.globals.resizeTimer = window.setTimeout(function() {
                        e.w.globals.resized = !0, e.w.globals.dataChanged = !1, e.ctx.update();
                    }, 150);
                }
            },
            {
                key: "_windowResizeHandler",
                value: function() {
                    var e = this.w.config.chart.redrawOnWindowResize;
                    typeof e == "function" && (e = e()), e && this._windowResize();
                }
            }
        ], [
            {
                key: "getChartByID",
                value: function(e) {
                    var a = V.escapeString(e);
                    if (Apex._chartInstances) {
                        var r = Apex._chartInstances.filter(function(n) {
                            return n.id === a;
                        })[0];
                        return r && r.chart;
                    }
                }
            },
            {
                key: "initOnLoad",
                value: function() {
                    for(var e = document.querySelectorAll("[data-apexcharts]"), a = 0; a < e.length; a++)new t(e[a], JSON.parse(e[a].getAttribute("data-options"))).render();
                }
            },
            {
                key: "exec",
                value: function(e, a) {
                    var r = this.getChartByID(e);
                    if (r) {
                        r.w.globals.isExecCalled = !0;
                        var n = null;
                        if (r.publicMethods.indexOf(a) !== -1) {
                            for(var i = arguments.length, o = new Array(i > 2 ? i - 2 : 0), s = 2; s < i; s++)o[s - 2] = arguments[s];
                            n = r[a].apply(r, o);
                        }
                        return n;
                    }
                }
            },
            {
                key: "merge",
                value: function(e, a) {
                    return V.extend(e, a);
                }
            }
        ]), t;
    }();
    const wy = [
        "animationEnd",
        "beforeMount",
        "mounted",
        "updated",
        "click",
        "mouseMove",
        "mouseLeave",
        "legendClick",
        "markerClick",
        "selection",
        "dataPointSelection",
        "dataPointMouseEnter",
        "dataPointMouseLeave",
        "beforeZoom",
        "beforeResetZoom",
        "zoomed",
        "scrolled",
        "brushScrolled"
    ], tl = Ft({
        name: "apexchart",
        props: {
            options: {
                type: Object
            },
            type: {
                type: String
            },
            series: {
                type: Array,
                required: !0
            },
            width: {
                default: "100%"
            },
            height: {
                default: "auto"
            }
        },
        emits: wy,
        setup (t, { emit: e }) {
            const a = W(null), r = W(null), n = (A)=>A && typeof A == "object" && !Array.isArray(A) && A != null, i = (A, E)=>{
                typeof Object.assign != "function" && function() {
                    Object.assign = function(P) {
                        if (P == null) throw new TypeError("Cannot convert undefined or null to object");
                        let M = Object(P);
                        for(let R = 1; R < arguments.length; R++){
                            let z = arguments[R];
                            if (z != null) for(let N in z)z.hasOwnProperty(N) && (M[N] = z[N]);
                        }
                        return M;
                    };
                }();
                let B = Object.assign({}, A);
                return n(A) && n(E) && Object.keys(E).forEach((P)=>{
                    n(E[P]) ? P in A ? B[P] = i(A[P], E[P]) : Object.assign(B, {
                        [P]: E[P]
                    }) : Object.assign(B, {
                        [P]: E[P]
                    });
                }), B;
            }, o = async ()=>{
                if (await at(), r.value) return;
                const A = {
                    chart: {
                        type: t.type || t.options.chart.type || "line",
                        height: t.height,
                        width: t.width,
                        events: {}
                    },
                    series: t.series
                }, E = t.options.chart ? t.options.chart.events : null;
                wy.forEach((P)=>{
                    let M = (...R)=>e(P, ...R);
                    A.chart.events[P] = (...R)=>{
                        M(...R), E && E.hasOwnProperty(P) && E[P](...R);
                    };
                });
                const B = i(t.options, A);
                return r.value = new xy(a.value, B), r.value.render();
            }, s = ()=>(l(), o()), l = ()=>{
                r.value.destroy(), r.value = null;
            }, u = (A, E)=>r.value.updateSeries(A, E), c = (A, E, B, P)=>r.value.updateOptions(A, E, B, P), d = (A)=>r.value.toggleSeries(A), h = (A)=>{
                r.value.showSeries(A);
            }, m = (A)=>{
                r.value.hideSeries(A);
            }, f = (A, E)=>r.value.appendSeries(A, E), p = ()=>{
                r.value.resetSeries();
            }, g = (A, E)=>{
                r.value.toggleDataPointSelection(A, E);
            }, v = (A)=>r.value.appendData(A), b = (A, E)=>r.value.zoomX(A, E), k = (A)=>r.value.dataURI(A), S = (A)=>r.value.setLocale(A), x = (A, E)=>{
                r.value.addXaxisAnnotation(A, E);
            }, C = (A, E)=>{
                r.value.addYaxisAnnotation(A, E);
            }, w = (A, E)=>{
                r.value.addPointAnnotation(A, E);
            }, F = (A, E)=>{
                r.value.removeAnnotation(A, E);
            }, D = ()=>{
                r.value.clearAnnotations();
            };
            Mr(()=>{
                window.ApexCharts = xy;
            }), ea(()=>{
                a.value = nl().proxy.$el, o();
            }), ga(()=>{
                r.value && l();
            });
            const _ = Ei(t);
            return me(_.options, ()=>{
                !r.value && t.options ? o() : r.value.updateOptions(t.options);
            }), me(_.series, ()=>{
                !r.value && t.series ? o() : r.value.updateSeries(t.series);
            }, {
                deep: !0
            }), me(_.type, ()=>{
                s();
            }), me(_.width, ()=>{
                s();
            }), me(_.height, ()=>{
                s();
            }), {
                chart: r,
                init: o,
                refresh: s,
                destroy: l,
                updateOptions: c,
                updateSeries: u,
                toggleSeries: d,
                showSeries: h,
                hideSeries: m,
                resetSeries: p,
                zoomX: b,
                toggleDataPointSelection: g,
                appendData: v,
                appendSeries: f,
                addXaxisAnnotation: x,
                addYaxisAnnotation: C,
                addPointAnnotation: w,
                removeAnnotation: F,
                clearAnnotations: D,
                setLocale: S,
                dataURI: k
            };
        },
        render () {
            return On("div", {
                class: "vue-apexcharts"
            });
        }
    }), LI = (t)=>{
        t.component(tl.name, tl);
    };
    tl.install = LI;
    let II, zI, NI, OI, Sy, HI, VI, WI, GI, $I, UI, jI, YI, qI, KI, JI, ZI, QI;
    II = Ft({
        __name: "SpeedGraph",
        setup (t) {
            const { t: e } = qt(), a = _o(), { serverState: r } = gt(Yn()), n = Vm(), i = ka(), o = W(), s = {
                chart: {
                    sparkline: {
                        enabled: !0
                    },
                    animations: {
                        enabled: !1
                    }
                },
                colors: [
                    a.current.value.colors.upload,
                    a.current.value.colors.download
                ],
                stroke: {
                    show: !0,
                    curve: "smooth",
                    lineCap: "round",
                    width: 3,
                    dashArray: [
                        20,
                        20,
                        0,
                        0
                    ]
                },
                fill: {
                    type: "gradient",
                    gradient: {
                        shade: "dark",
                        type: "vertical",
                        shadeIntensity: .5,
                        opacityFrom: [
                            0,
                            0,
                            .6,
                            .6
                        ],
                        opacityTo: [
                            0,
                            0,
                            .5,
                            .5
                        ],
                        stops: [
                            0,
                            50,
                            100
                        ]
                    }
                },
                tooltip: {
                    fixed: {
                        enabled: !0,
                        position: "topLeft"
                    },
                    theme: "dark",
                    x: {
                        formatter: (d)=>jn(d).fromNow()
                    },
                    y: {
                        formatter: (d)=>to(d, i.useBitSpeed)
                    }
                }
            }, l = T(()=>n.downloadData.map(([d])=>[
                        d,
                        r.value?.dl_rate_limit
                    ])), u = T(()=>n.uploadData.map(([d])=>[
                        d,
                        r.value?.up_rate_limit
                    ])), c = T(()=>[
                    {
                        name: e("navbar.side.speed_graph.upload_limit_label"),
                        data: i.displayGraphLimits && r.value?.up_rate_limit ? u.value : []
                    },
                    {
                        name: e("navbar.side.speed_graph.download_limit_label"),
                        data: i.displayGraphLimits && r.value?.dl_rate_limit ? l.value : []
                    },
                    {
                        name: e("navbar.side.speed_graph.upload_label"),
                        data: n.uploadData
                    },
                    {
                        name: e("navbar.side.speed_graph.download_label"),
                        data: n.downloadData
                    }
                ]);
            return (d, h)=>(ve(), ze(Y(tl), {
                    ref_key: "chart",
                    ref: o,
                    type: "area",
                    options: s,
                    series: c.value
                }, null, 8, [
                    "series"
                ]));
        }
    });
    zI = {
        class: "text-subtitle-1 font-weight-bold"
    };
    NI = Ft({
        __name: "StringCard",
        props: {
            title: {},
            value: {},
            color: {}
        },
        setup (t) {
            return (e, a)=>(ve(), ze(Br, {
                    color: "secondary",
                    rounded: "lg",
                    class: "pa-3"
                }, {
                    default: O(()=>[
                            y(Pa, {
                                class: "text-select"
                            }, {
                                default: O(()=>[
                                        y(qe, {
                                            cols: "7",
                                            class: dr(`text-subtitle-1 text-${e.color}`)
                                        }, {
                                            default: O(()=>[
                                                    Pe(Se(e.title), 1)
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "class"
                                        ]),
                                        y(qe, {
                                            cols: "5",
                                            class: dr(`text-${e.color}`)
                                        }, {
                                            default: O(()=>[
                                                    nt("span", zI, Se(e.value), 1)
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "class"
                                        ])
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }));
        }
    });
    OI = {
        class: "d-flex flex-column flex-gap-row"
    };
    Sy = Ft({
        __name: "TransferStats",
        props: {
            session: {
                type: Boolean
            }
        },
        setup (t) {
            const e = t, { t: a } = qt(), r = Yn(), n = T(()=>e.session ? a("navbar.side.stats.session.title") : a("navbar.side.stats.alltime.title")), i = T(()=>(e.session ? r.serverState?.dl_info_data : r.serverState?.alltime_dl) ?? 0), o = T(()=>(e.session ? r.serverState?.up_info_data : r.serverState?.alltime_ul) ?? 0), s = T(()=>(e.session ? void 0 : r.serverState?.global_ratio) ?? 0);
            return (l, u)=>(ve(), ze(ri, {
                    variant: "flat",
                    class: "inherit-bg"
                }, {
                    default: O(()=>[
                            y(Hi, {
                                class: "px-0 text-uppercase text-white ml-1 font-weight-light text-subtitle-2"
                            }, {
                                default: O(()=>[
                                        Pe(Se(n.value), 1)
                                    ]),
                                _: 1
                            }),
                            y(ai, {
                                class: "px-0 pb-0"
                            }, {
                                default: O(()=>[
                                        nt("div", OI, [
                                            y(_h, {
                                                title: l.$t("navbar.side.stats.downloaded"),
                                                value: i.value,
                                                color: "download",
                                                icon: "mdi-arrow-down"
                                            }, null, 8, [
                                                "title",
                                                "value"
                                            ]),
                                            y(_h, {
                                                title: l.$t("navbar.side.stats.uploaded"),
                                                value: o.value,
                                                color: "upload",
                                                icon: "mdi-arrow-up"
                                            }, null, 8, [
                                                "title",
                                                "value"
                                            ]),
                                            l.session ? Dt("", !0) : (ve(), ze(NI, {
                                                key: 0,
                                                title: l.$t("navbar.side.stats.ratio"),
                                                value: s.value,
                                                color: "ratio"
                                            }, null, 8, [
                                                "title",
                                                "value"
                                            ]))
                                        ])
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }));
        }
    });
    HI = {
        class: "d-flex flex-column flex-gap-row mt-3"
    };
    VI = {
        key: 0
    };
    WI = {
        key: 1
    };
    GI = {
        key: 2
    };
    $I = Ft({
        __name: "ActiveFilters",
        setup (t) {
            const { mobile: e } = Ia(), { t: a, getTorrentStateString: r } = qt(), { isTextFilterActive: n, textFilter: i, isStatusFilterActive: o, statusFilter: s, isCategoryFilterActive: l, categoryFilter: u, isTagFilterActive: c, tagFilterInclude: d, tagFilterExclude: h, isTrackerFilterActive: m, trackerFilterInclude: f, trackerFilterExclude: p } = gt(Ka()), g = T(()=>{
                const fe = Array.from(d.value).map((ae)=>({
                        value: ae,
                        state: aa.INCLUDED
                    })), ee = Array.from(h.value).map((ae)=>({
                        value: ae,
                        state: aa.EXCLUDED
                    }));
                return [
                    ...fe,
                    ...ee
                ];
            }), v = T(()=>{
                const fe = Array.from(f.value).map((ae)=>({
                        value: ae,
                        state: aa.INCLUDED
                    })), ee = Array.from(p.value).map((ae)=>({
                        value: ae,
                        state: aa.EXCLUDED
                    }));
                return [
                    ...fe,
                    ...ee
                ];
            }), b = T(()=>n.value && k.value || o.value && S.value || l.value && x.value || c.value && C.value || m.value && w.value), k = T(()=>i.value.length > 0), S = T(()=>s.value.length > 0), x = T(()=>u.value.length > 0), C = T(()=>g.value.length > 0), w = T(()=>v.value.length > 0), F = T(()=>b.value ? "active-global" : "active-global-disabled"), D = T(()=>n.value ? "active-text" : "active-text-disabled"), _ = T(()=>o.value ? Vs(s.value[0]) : `${Vs(s.value[0])}-darken-2`), A = T(()=>o.value ? "active-status" : "active-status-disabled"), E = T(()=>l.value ? "active-category" : "active-category-disabled"), B = T(()=>c.value ? "active-tag" : "active-tag-disabled"), P = T(()=>m.value ? "active-tracker" : "active-tracker-disabled"), M = T(()=>Number(k.value) + Number(S.value) + Number(x.value) + Number(C.value) + Number(w.value)), R = T(()=>Number(k.value && n.value) + Number(S.value && o.value) + Number(x.value && l.value) + Number(C.value && c.value) + Number(w.value && m.value));
            function z() {
                b.value ? (n.value = !1, o.value = !1, l.value = !1, c.value = !1, m.value = !1) : (n.value = !0, o.value = !0, l.value = !0, c.value = !0, m.value = !0);
            }
            function N() {
                I(), G(), X(), J(), le();
            }
            function H() {
                n.value = !n.value;
            }
            function I() {
                i.value = "";
            }
            function L() {
                o.value = !o.value;
            }
            function G() {
                s.value = [];
            }
            function q() {
                l.value = !l.value;
            }
            function X() {
                u.value = [];
            }
            function ue() {
                c.value = !c.value;
            }
            function J() {
                d.value = [], h.value = [];
            }
            function U() {
                m.value = !m.value;
            }
            function le() {
                f.value = [], p.value = [];
            }
            return (fe, ee)=>(ve(), ze(Jr, {
                    "close-delay": "5",
                    "open-delay": "0",
                    "close-on-content-click": !1,
                    "open-on-click": Y(e),
                    "open-on-hover": "",
                    "open-on-focus": ""
                }, {
                    activator: O(({ props: ae })=>[
                            y(e0, null, {
                                default: O(()=>[
                                        M.value > 0 ? (ve(), ze(oa, Z({
                                            key: 0
                                        }, ae, {
                                            class: "ml-6",
                                            color: F.value,
                                            variant: "elevated",
                                            closable: "",
                                            onClick: ee[1] || (ee[1] = (se)=>Y(e) ? void 0 : z()),
                                            "onClick:close": ee[2] || (ee[2] = (se)=>N())
                                        }), {
                                            prepend: O(()=>[
                                                    y(_e, {
                                                        class: "mr-1",
                                                        onClick: ee[0] || (ee[0] = gn((se)=>Y(e) ? z() : void 0, [
                                                            "stop"
                                                        ]))
                                                    }, {
                                                        default: O(()=>[
                                                                Pe(Se(b.value ? "mdi-filter" : "mdi-filter-off"), 1)
                                                            ]),
                                                        _: 1
                                                    })
                                                ]),
                                            default: O(()=>[
                                                    Pe(" " + Se(Y(a)("navbar.top.active_filters.menu_label", R.value)), 1)
                                                ]),
                                            _: 2
                                        }, 1040, [
                                            "color"
                                        ])) : Dt("", !0)
                                    ]),
                                _: 2
                            }, 1024)
                        ]),
                    default: O(()=>[
                            nt("div", HI, [
                                k.value ? (ve(), ze(oa, {
                                    key: 0,
                                    color: D.value,
                                    variant: "elevated",
                                    closable: "",
                                    onClick: ee[3] || (ee[3] = (ae)=>H()),
                                    "onClick:close": ee[4] || (ee[4] = (ae)=>I())
                                }, {
                                    prepend: O(()=>[
                                            y(_e, {
                                                class: "mr-1"
                                            }, {
                                                default: O(()=>[
                                                        Pe(Se(Y(n) ? "mdi-filter" : "mdi-filter-off"), 1)
                                                    ]),
                                                _: 1
                                            })
                                        ]),
                                    default: O(()=>[
                                            Pe(" " + Se(Y(a)("navbar.top.active_filters.text", {
                                                value: Y(i)
                                            })), 1)
                                        ]),
                                    _: 1
                                }, 8, [
                                    "color"
                                ])) : Dt("", !0),
                                S.value ? (ve(), it(Ce, {
                                    key: 1
                                }, [
                                    Y(s).length === 1 ? (ve(), ze(oa, {
                                        key: 0,
                                        color: _.value,
                                        variant: "elevated",
                                        closable: "",
                                        onClick: ee[5] || (ee[5] = (ae)=>L()),
                                        "onClick:close": ee[6] || (ee[6] = (ae)=>G())
                                    }, {
                                        prepend: O(()=>[
                                                y(_e, {
                                                    class: "mr-1"
                                                }, {
                                                    default: O(()=>[
                                                            Pe(Se(Y(o) ? "mdi-filter" : "mdi-filter-off"), 1)
                                                        ]),
                                                    _: 1
                                                })
                                            ]),
                                        default: O(()=>[
                                                Pe(" " + Se(Y(a)("navbar.top.active_filters.state", {
                                                    value: Y(r)(Y(s)[0])
                                                })), 1)
                                            ]),
                                        _: 1
                                    }, 8, [
                                        "color"
                                    ])) : (ve(), ze(oa, {
                                        key: 1,
                                        color: A.value,
                                        variant: "elevated",
                                        closable: "",
                                        onClick: ee[7] || (ee[7] = (ae)=>L()),
                                        "onClick:close": ee[8] || (ee[8] = (ae)=>G())
                                    }, {
                                        prepend: O(()=>[
                                                y(_e, {
                                                    class: "mr-1"
                                                }, {
                                                    default: O(()=>[
                                                            Pe(Se(Y(o) ? "mdi-filter" : "mdi-filter-off"), 1)
                                                        ]),
                                                    _: 1
                                                })
                                            ]),
                                        default: O(()=>[
                                                Pe(" " + Se(Y(a)("navbar.top.active_filters.multiple_state", Y(s).length)), 1)
                                            ]),
                                        _: 1
                                    }, 8, [
                                        "color"
                                    ]))
                                ], 64)) : Dt("", !0),
                                x.value ? (ve(), it(Ce, {
                                    key: 2
                                }, [
                                    Y(u).length === 1 ? (ve(), ze(oa, {
                                        key: 0,
                                        color: E.value,
                                        variant: "elevated",
                                        closable: "",
                                        onClick: ee[9] || (ee[9] = (ae)=>q()),
                                        "onClick:close": ee[10] || (ee[10] = (ae)=>X())
                                    }, {
                                        prepend: O(()=>[
                                                y(_e, {
                                                    class: "mr-1"
                                                }, {
                                                    default: O(()=>[
                                                            Pe(Se(Y(l) ? "mdi-filter" : "mdi-filter-off"), 1)
                                                        ]),
                                                    _: 1
                                                })
                                            ]),
                                        default: O(()=>[
                                                Pe(" " + Se(Y(a)("navbar.top.active_filters.category", {
                                                    value: Y(u)[0] === "" ? Y(a)("navbar.side.filters.category.empty") : Y(u)[0]
                                                })), 1)
                                            ]),
                                        _: 1
                                    }, 8, [
                                        "color"
                                    ])) : (ve(), ze(oa, {
                                        key: 1,
                                        color: E.value,
                                        variant: "elevated",
                                        closable: "",
                                        onClick: ee[11] || (ee[11] = (ae)=>q()),
                                        "onClick:close": ee[12] || (ee[12] = (ae)=>X())
                                    }, {
                                        prepend: O(()=>[
                                                y(_e, {
                                                    class: "mr-1"
                                                }, {
                                                    default: O(()=>[
                                                            Pe(Se(Y(l) ? "mdi-filter" : "mdi-filter-off"), 1)
                                                        ]),
                                                    _: 1
                                                })
                                            ]),
                                        default: O(()=>[
                                                Pe(" " + Se(Y(a)("navbar.top.active_filters.multiple_category", Y(u).length)), 1)
                                            ]),
                                        _: 1
                                    }, 8, [
                                        "color"
                                    ]))
                                ], 64)) : Dt("", !0),
                                C.value ? (ve(), it(Ce, {
                                    key: 3
                                }, [
                                    g.value.length === 1 ? (ve(), ze(oa, {
                                        key: 0,
                                        color: B.value,
                                        variant: "elevated",
                                        closable: "",
                                        onClick: ee[13] || (ee[13] = (ae)=>ue()),
                                        "onClick:close": ee[14] || (ee[14] = (ae)=>J())
                                    }, {
                                        prepend: O(()=>[
                                                y(_e, {
                                                    class: "mr-1"
                                                }, {
                                                    default: O(()=>[
                                                            Pe(Se(Y(c) ? g.value[0].state === Y(aa).EXCLUDED ? "mdi-filter-minus" : "mdi-filter-plus" : "mdi-filter-off"), 1)
                                                        ]),
                                                    _: 1
                                                })
                                            ]),
                                        default: O(()=>[
                                                Pe(" " + Se(Y(a)("navbar.top.active_filters.tag", {
                                                    value: g.value[0].value === null ? Y(a)("navbar.side.filters.tag.empty") : g.value[0].value
                                                })), 1)
                                            ]),
                                        _: 1
                                    }, 8, [
                                        "color"
                                    ])) : (ve(), ze(oa, {
                                        key: 1,
                                        color: B.value,
                                        variant: "elevated",
                                        closable: "",
                                        onClick: ee[15] || (ee[15] = (ae)=>ue()),
                                        "onClick:close": ee[16] || (ee[16] = (ae)=>J())
                                    }, {
                                        prepend: O(()=>[
                                                y(_e, {
                                                    class: "mr-1"
                                                }, {
                                                    default: O(()=>[
                                                            Pe(Se(Y(c) ? "mdi-filter" : "mdi-filter-off"), 1)
                                                        ]),
                                                    _: 1
                                                })
                                            ]),
                                        default: O(()=>[
                                                Pe(" " + Se(Y(a)("navbar.top.active_filters.multiple_tag", g.value.length)), 1)
                                            ]),
                                        _: 1
                                    }, 8, [
                                        "color"
                                    ]))
                                ], 64)) : Dt("", !0),
                                w.value ? (ve(), it(Ce, {
                                    key: 4
                                }, [
                                    v.value.length === 1 ? (ve(), ze(oa, {
                                        key: 0,
                                        color: P.value,
                                        variant: "elevated",
                                        closable: "",
                                        onClick: ee[17] || (ee[17] = (ae)=>U()),
                                        "onClick:close": ee[18] || (ee[18] = (ae)=>le())
                                    }, {
                                        prepend: O(()=>[
                                                y(_e, {
                                                    class: "mr-1"
                                                }, {
                                                    default: O(()=>[
                                                            Pe(Se(Y(m) ? v.value[0].state === Y(aa).EXCLUDED ? "mdi-filter-minus" : "mdi-filter-plus" : "mdi-filter-off"), 1)
                                                        ]),
                                                    _: 1
                                                })
                                            ]),
                                        default: O(()=>[
                                                v.value[0].value === Y($a).UNTRACKED ? (ve(), it("span", VI, Se(Y(a)("navbar.top.active_filters.tracker", {
                                                    value: Y(a)("navbar.side.filters.tracker.empty")
                                                })), 1)) : v.value[0].value === Y($a).NOT_WORKING ? (ve(), it("span", WI, Se(Y(a)("navbar.top.active_filters.tracker", {
                                                    value: Y(a)("navbar.side.filters.tracker.not_working")
                                                })), 1)) : (ve(), it("span", GI, Se(Y(a)("navbar.top.active_filters.tracker", {
                                                    value: v.value[0].value
                                                })), 1))
                                            ]),
                                        _: 1
                                    }, 8, [
                                        "color"
                                    ])) : (ve(), ze(oa, {
                                        key: 1,
                                        color: P.value,
                                        variant: "elevated",
                                        closable: "",
                                        "onClick:close": ee[19] || (ee[19] = (ae)=>le())
                                    }, {
                                        prepend: O(()=>[
                                                y(_e, {
                                                    class: "mr-1"
                                                }, {
                                                    default: O(()=>[
                                                            Pe(Se(Y(m) ? "mdi-filter" : "mdi-filter-off"), 1)
                                                        ]),
                                                    _: 1
                                                })
                                            ]),
                                        default: O(()=>[
                                                Pe(" " + Se(Y(a)("navbar.top.active_filters.multiple_tracker", v.value.length)), 1)
                                            ]),
                                        _: 1
                                    }, 8, [
                                        "color"
                                    ]))
                                ], 64)) : Dt("", !0)
                            ])
                        ]),
                    _: 1
                }, 8, [
                    "open-on-click"
                ]));
        }
    });
    UI = $({
        ...we(),
        ...TM()
    }, "VForm");
    rk = te()({
        name: "VForm",
        props: UI(),
        emits: {
            "update:modelValue": (t)=>!0,
            submit: (t)=>!0
        },
        setup (t, e) {
            let { slots: a, emit: r } = e;
            const n = EM(t), i = W();
            function o(l) {
                l.preventDefault(), n.reset();
            }
            function s(l) {
                const u = l, c = n.validate();
                u.then = c.then.bind(c), u.catch = c.catch.bind(c), u.finally = c.finally.bind(c), r("submit", u), u.defaultPrevented || c.then((d)=>{
                    let { valid: h } = d;
                    h && i.value?.submit();
                }), u.preventDefault();
            }
            return ie(()=>y("form", {
                    ref: i,
                    class: [
                        "v-form",
                        t.class
                    ],
                    style: t.style,
                    novalidate: !0,
                    onReset: o,
                    onSubmit: s
                }, [
                    a.default?.(n)
                ])), Za(n, i);
        }
    });
    jI = {
        class: "d-flex flex-wrap flex-gap-small"
    };
    YI = {
        class: "pa-1 border wrap-anywhere"
    };
    qI = {
        class: "d-flex flex-row flex-gap align-center"
    };
    KI = {
        class: "text-red"
    };
    XI = Ft({
        __name: "ConfirmDeleteDialog",
        props: {
            guid: {},
            hashes: {}
        },
        setup (t) {
            const e = t, { isOpened: a } = bl(e.guid), r = hm(), n = ol(), { t: i } = qt(), o = kr(), s = No(), l = wl(), u = Ka(), c = ka(), d = W(), h = W(!1), m = T(()=>u.torrents.filter((S)=>e.hashes?.includes(S.hash))), f = T(()=>l.preferences.delete_torrent_content_files ?? c.deleteWithFiles), p = W(f.value);
            async function g() {
                const S = p.value;
                o.usesQbit5 ? (await l.setPreferences({
                    delete_torrent_content_files: S
                }), await l.fetchPreferences()) : c.deleteWithFiles = S;
            }
            async function v() {
                h.value && (await u.deleteTorrents(m.value.map((S)=>S.hash), p.value), s.unselectAllTorrents(), b(), r.name === "torrentDetail" && await n.push({
                    name: "dashboard"
                }));
            }
            const b = ()=>{
                a.value = !1;
            };
            function k(S) {
                if (S.key === "Enter") return S.preventDefault(), v(), !0;
            }
            return Mr(()=>{
                document.addEventListener("keydown", k);
            }), il(()=>{
                document.removeEventListener("keydown", k);
            }), (S, x)=>(ve(), ze(Pn, {
                    modelValue: Y(a),
                    "onUpdate:modelValue": x[3] || (x[3] = (C)=>Pt(a) ? a.value = C : null),
                    "max-width": "1000"
                }, {
                    default: O(()=>[
                            y(ri, null, {
                                default: O(()=>[
                                        y(Hi, null, {
                                            default: O(()=>[
                                                    Pe(Se(Y(i)("dialogs.delete.title", m.value.length)), 1)
                                                ]),
                                            _: 1
                                        }),
                                        y(ai, null, {
                                            default: O(()=>[
                                                    y(Y(rk), {
                                                        modelValue: h.value,
                                                        "onUpdate:modelValue": x[1] || (x[1] = (C)=>h.value = C),
                                                        ref_key: "form",
                                                        ref: d,
                                                        onSubmit: x[2] || (x[2] = gn(()=>{}, [
                                                            "prevent"
                                                        ]))
                                                    }, {
                                                        default: O(()=>[
                                                                nt("div", jI, [
                                                                    (ve(!0), it(Ce, null, dm(m.value, (C)=>(ve(), it("span", YI, Se(C.name), 1))), 256))
                                                                ]),
                                                                nt("div", qI, [
                                                                    y(Re, {
                                                                        disabled: p.value === f.value,
                                                                        color: "accent",
                                                                        variant: "text",
                                                                        icon: "mdi-content-save",
                                                                        onClick: g
                                                                    }, null, 8, [
                                                                        "disabled"
                                                                    ]),
                                                                    y(jr, {
                                                                        modelValue: p.value,
                                                                        "onUpdate:modelValue": x[0] || (x[0] = (C)=>p.value = C),
                                                                        "hide-details": "",
                                                                        label: S.$t("dialogs.delete.deleteWithFiles")
                                                                    }, null, 8, [
                                                                        "modelValue",
                                                                        "label"
                                                                    ])
                                                                ]),
                                                                y(QF, null, {
                                                                    default: O(()=>[
                                                                            mt(nt("div", KI, [
                                                                                y(_e, null, {
                                                                                    default: O(()=>x[4] || (x[4] = [
                                                                                            Pe("mdi-alert")
                                                                                        ])),
                                                                                    _: 1
                                                                                }),
                                                                                Pe(" " + Se(S.$t("dialogs.delete.warnDelete")), 1)
                                                                            ], 512), [
                                                                                [
                                                                                    Ca,
                                                                                    p.value
                                                                                ]
                                                                            ])
                                                                        ]),
                                                                    _: 1
                                                                })
                                                            ]),
                                                        _: 1
                                                    }, 8, [
                                                        "modelValue"
                                                    ])
                                                ]),
                                            _: 1
                                        }),
                                        y(Oi, null, {
                                            default: O(()=>[
                                                    y(un),
                                                    y(Re, {
                                                        onClick: b
                                                    }, {
                                                        default: O(()=>[
                                                                Pe(Se(S.$t("common.cancel")), 1)
                                                            ]),
                                                        _: 1
                                                    }),
                                                    y(Re, {
                                                        color: "error",
                                                        disabled: !h.value,
                                                        onClick: v
                                                    }, {
                                                        default: O(()=>[
                                                                Pe(Se(S.$t("common.delete")), 1)
                                                            ]),
                                                        _: 1
                                                    }, 8, [
                                                        "disabled"
                                                    ])
                                                ]),
                                            _: 1
                                        })
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }, 8, [
                    "modelValue"
                ]));
        }
    });
    JI = Ft({
        __name: "TopActions",
        emits: [
            "resumeTorrents",
            "pauseTorrents",
            "deleteTorrents",
            "openSearchEngine",
            "openRssArticles",
            "openTorrentCreator",
            "openLogs",
            "openSettings"
        ],
        setup (t) {
            const { usesQbit5: e } = gt(kr());
            return (a, r)=>(ve(), it(Ce, null, [
                    y(sa, {
                        text: a.$t("topbar.actions.resume"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: n })=>[
                                y(Re, Z({
                                    icon: "mdi-play"
                                }, n, {
                                    onClick: r[0] || (r[0] = (i)=>a.$emit("resumeTorrents"))
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ]),
                    y(sa, {
                        text: a.$t("topbar.actions.pause"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: n })=>[
                                y(Re, Z({
                                    icon: "mdi-pause"
                                }, n, {
                                    onClick: r[1] || (r[1] = (i)=>a.$emit("pauseTorrents"))
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ]),
                    y(sa, {
                        text: a.$t("topbar.actions.delete"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: n })=>[
                                y(Re, Z({
                                    icon: "mdi-delete"
                                }, n, {
                                    onClick: r[2] || (r[2] = (i)=>a.$emit("deleteTorrents"))
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ]),
                    y(_a, {
                        vertical: "",
                        inset: ""
                    }),
                    y(sa, {
                        text: a.$t("topbar.actions.searchEngine"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: n })=>[
                                y(Re, Z({
                                    icon: "mdi-search-web"
                                }, n, {
                                    onClick: r[3] || (r[3] = (i)=>a.$emit("openSearchEngine"))
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ]),
                    y(sa, {
                        text: a.$t("topbar.actions.rssArticles"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: n })=>[
                                y(Re, Z({
                                    icon: "mdi-rss"
                                }, n, {
                                    onClick: r[4] || (r[4] = (i)=>a.$emit("openRssArticles"))
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ]),
                    Y(e) ? (ve(), ze(sa, {
                        key: 0,
                        text: a.$t("topbar.actions.torrentCreator"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: n })=>[
                                y(Re, Z({
                                    icon: "mdi-file-plus"
                                }, n, {
                                    onClick: r[5] || (r[5] = (i)=>a.$emit("openTorrentCreator"))
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ])) : Dt("", !0),
                    y(sa, {
                        text: a.$t("topbar.actions.logs"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: n })=>[
                                y(Re, Z({
                                    icon: "mdi-file-document-multiple"
                                }, n, {
                                    onClick: r[6] || (r[6] = (i)=>a.$emit("openLogs"))
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ]),
                    y(sa, {
                        text: a.$t("topbar.actions.settings"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: n })=>[
                                y(Re, Z({
                                    icon: "mdi-cog"
                                }, n, {
                                    onClick: r[7] || (r[7] = (i)=>a.$emit("openSettings"))
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ])
                ], 64));
        }
    });
    ZI = Ft({
        __name: "TopOverflow",
        emits: [
            "resumeTorrents",
            "pauseTorrents",
            "deleteTorrents",
            "openSearchEngine",
            "openRssArticles",
            "openTorrentCreator",
            "openLogs",
            "openSettings"
        ],
        setup (t) {
            const { usesQbit5: e } = gt(kr());
            return (a, r)=>(ve(), ze(Jr, {
                    location: "bottom"
                }, {
                    activator: O(({ props: n })=>[
                            y(Re, Z({
                                icon: "mdi-dots-vertical"
                            }, n), null, 16)
                        ]),
                    default: O(()=>[
                            y(Qn, null, {
                                default: O(()=>[
                                        y(tt, {
                                            title: a.$t("topbar.overflow.resume"),
                                            onClick: r[0] || (r[0] = (n)=>a.$emit("resumeTorrents"))
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, null, {
                                                        default: O(()=>r[8] || (r[8] = [
                                                                Pe("mdi-play")
                                                            ])),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "title"
                                        ]),
                                        y(tt, {
                                            title: a.$t("topbar.overflow.pause"),
                                            onClick: r[1] || (r[1] = (n)=>a.$emit("pauseTorrents"))
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, null, {
                                                        default: O(()=>r[9] || (r[9] = [
                                                                Pe("mdi-pause")
                                                            ])),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "title"
                                        ]),
                                        y(tt, {
                                            title: a.$t("topbar.overflow.delete"),
                                            onClick: r[2] || (r[2] = (n)=>a.$emit("deleteTorrents"))
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, null, {
                                                        default: O(()=>r[10] || (r[10] = [
                                                                Pe("mdi-delete")
                                                            ])),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "title"
                                        ]),
                                        y(_a),
                                        y(tt, {
                                            title: a.$t("topbar.overflow.searchEngine"),
                                            onClick: r[3] || (r[3] = (n)=>a.$emit("openSearchEngine"))
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, null, {
                                                        default: O(()=>r[11] || (r[11] = [
                                                                Pe("mdi-search-web")
                                                            ])),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "title"
                                        ]),
                                        y(tt, {
                                            title: a.$t("topbar.overflow.rssArticles"),
                                            onClick: r[4] || (r[4] = (n)=>a.$emit("openRssArticles"))
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, null, {
                                                        default: O(()=>r[12] || (r[12] = [
                                                                Pe("mdi-rss")
                                                            ])),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "title"
                                        ]),
                                        Y(e) ? (ve(), ze(tt, {
                                            key: 0,
                                            title: a.$t("topbar.overflow.torrentCreator"),
                                            onClick: r[5] || (r[5] = (n)=>a.$emit("openTorrentCreator"))
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, null, {
                                                        default: O(()=>r[13] || (r[13] = [
                                                                Pe("mdi-file-plus")
                                                            ])),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "title"
                                        ])) : Dt("", !0),
                                        y(tt, {
                                            title: a.$t("topbar.overflow.logs"),
                                            onClick: r[6] || (r[6] = (n)=>a.$emit("openLogs"))
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, null, {
                                                        default: O(()=>r[14] || (r[14] = [
                                                                Pe("mdi-file-document-multiple")
                                                            ])),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "title"
                                        ]),
                                        y(tt, {
                                            title: a.$t("topbar.overflow.settings"),
                                            onClick: r[7] || (r[7] = (n)=>a.$emit("openSettings"))
                                        }, {
                                            prepend: O(()=>[
                                                    y(_e, null, {
                                                        default: O(()=>r[15] || (r[15] = [
                                                                Pe("mdi-cog")
                                                            ])),
                                                        _: 1
                                                    })
                                                ]),
                                            _: 1
                                        }, 8, [
                                            "title"
                                        ])
                                    ]),
                                _: 1
                            })
                        ]),
                    _: 1
                }));
        }
    });
    QI = Ft({
        __name: "TopContainer",
        setup (t) {
            const e = hm(), a = ol(), r = No(), n = Bi(), i = eM(), o = Ka(), s = T(()=>e.name === "torrentDetail"), l = T(()=>s.value ? [
                    e.params.hash
                ] : r.selectedTorrents);
            function u() {
                n.createDialog(ko);
            }
            async function c() {
                await o.resumeTorrents(l.value);
            }
            async function d() {
                await o.pauseTorrents(l.value);
            }
            function h() {
                l.value.length && n.createDialog(XI, {
                    hashes: [
                        ...l.value
                    ]
                });
            }
            function m() {
                a.push({
                    name: "searchEngine"
                });
            }
            function f() {
                a.push({
                    name: "rssArticles",
                    params: {
                        tab: i.lastView
                    }
                });
            }
            function p() {
                a.push({
                    name: "torrentCreator"
                });
            }
            function g() {
                a.push({
                    name: "logs"
                });
            }
            function v() {
                a.push({
                    name: "settings"
                });
            }
            return (b, k)=>(ve(), it(Ce, null, [
                    y(sa, {
                        text: b.$t("topbar.addTorrents"),
                        location: "bottom"
                    }, {
                        activator: O(({ props: S })=>[
                                y(Re, Z({
                                    icon: "mdi-plus"
                                }, S, {
                                    onClick: u
                                }), null, 16)
                            ]),
                        _: 1
                    }, 8, [
                        "text"
                    ]),
                    y(_a, {
                        inset: "",
                        vertical: ""
                    }),
                    b.$vuetify.display.smAndDown ? (ve(), ze(ZI, {
                        key: 0,
                        onDeleteTorrents: h,
                        onOpenLogs: g,
                        onOpenSearchEngine: m,
                        onOpenSettings: v,
                        onOpenRssArticles: f,
                        onOpenTorrentCreator: p,
                        onPauseTorrents: d,
                        onResumeTorrents: c
                    })) : (ve(), ze(JI, {
                        key: 1,
                        onDeleteTorrents: h,
                        onOpenLogs: g,
                        onOpenSearchEngine: m,
                        onOpenSettings: v,
                        onOpenRssArticles: f,
                        onOpenTorrentCreator: p,
                        onPauseTorrents: d,
                        onResumeTorrents: c
                    }))
                ], 64));
        }
    });
    var Ud, Cy;
    function e4() {
        if (Cy) return Ud;
        Cy = 1;
        var t = "Expected a function", e = NaN, a = "[object Symbol]", r = /^\s+|\s+$/g, n = /^[-+]0x[0-9a-f]+$/i, i = /^0b[01]+$/i, o = /^0o[0-7]+$/i, s = parseInt, l = typeof pi == "object" && pi && pi.Object === Object && pi, u = typeof self == "object" && self && self.Object === Object && self, c = l || u || Function("return this")(), d = Object.prototype, h = d.toString, m = Math.max, f = Math.min, p = function() {
            return c.Date.now();
        };
        function g(x, C, w) {
            var F, D, _, A, E, B, P = 0, M = !1, R = !1, z = !0;
            if (typeof x != "function") throw new TypeError(t);
            C = S(C) || 0, v(w) && (M = !!w.leading, R = "maxWait" in w, _ = R ? m(S(w.maxWait) || 0, C) : _, z = "trailing" in w ? !!w.trailing : z);
            function N(U) {
                var le = F, fe = D;
                return F = D = void 0, P = U, A = x.apply(fe, le), A;
            }
            function H(U) {
                return P = U, E = setTimeout(G, C), M ? N(U) : A;
            }
            function I(U) {
                var le = U - B, fe = U - P, ee = C - le;
                return R ? f(ee, _ - fe) : ee;
            }
            function L(U) {
                var le = U - B, fe = U - P;
                return B === void 0 || le >= C || le < 0 || R && fe >= _;
            }
            function G() {
                var U = p();
                if (L(U)) return q(U);
                E = setTimeout(G, I(U));
            }
            function q(U) {
                return E = void 0, z && F ? N(U) : (F = D = void 0, A);
            }
            function X() {
                E !== void 0 && clearTimeout(E), P = 0, F = B = D = E = void 0;
            }
            function ue() {
                return E === void 0 ? A : q(p());
            }
            function J() {
                var U = p(), le = L(U);
                if (F = arguments, D = this, B = U, le) {
                    if (E === void 0) return H(B);
                    if (R) return E = setTimeout(G, C), N(B);
                }
                return E === void 0 && (E = setTimeout(G, C)), A;
            }
            return J.cancel = X, J.flush = ue, J;
        }
        function v(x) {
            var C = typeof x;
            return !!x && (C == "object" || C == "function");
        }
        function b(x) {
            return !!x && typeof x == "object";
        }
        function k(x) {
            return typeof x == "symbol" || b(x) && h.call(x) == a;
        }
        function S(x) {
            if (typeof x == "number") return x;
            if (k(x)) return e;
            if (v(x)) {
                var C = typeof x.valueOf == "function" ? x.valueOf() : x;
                x = v(C) ? C + "" : C;
            }
            if (typeof x != "string") return x === 0 ? x : +x;
            x = x.replace(r, "");
            var w = i.test(x);
            return w || o.test(x) ? s(x.slice(2), w ? 2 : 8) : n.test(x) ? e : +x;
        }
        return Ud = g, Ud;
    }
    var t4 = e4();
    let n4;
    a4 = Ti(t4);
    r4 = Ft({
        __name: "TorrentSearchbar",
        setup (t) {
            const { t: e } = qt(), a = Ka();
            function r() {
                a.textFilter = "";
            }
            const n = T({
                get: ()=>a.textFilter,
                set: a4((i)=>{
                    a.textFilter = i ?? "";
                }, 300)
            });
            return (i, o)=>(ve(), ze(ya, {
                    id: "searchInput",
                    modelValue: n.value,
                    "onUpdate:modelValue": o[0] || (o[0] = (s)=>n.value = s),
                    label: Y(e)("dashboard.searchInputLabel"),
                    clearable: "",
                    density: "compact",
                    "single-line": "",
                    "hide-details": "",
                    "prepend-inner-icon": "mdi-magnify",
                    variant: "solo",
                    "base-color": "white",
                    "onClick:clear": o[1] || (o[1] = (s)=>r())
                }, null, 8, [
                    "modelValue",
                    "label"
                ]));
        }
    });
    n4 = $({
        scrollTarget: {
            type: String
        },
        scrollThreshold: {
            type: [
                String,
                Number
            ],
            default: 300
        }
    }, "scroll");
    function i4(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
        const { canScroll: a } = e;
        let r = 0, n = 0;
        const i = W(null), o = de(0), s = de(0), l = de(0), u = de(!1), c = de(!1), d = T(()=>Number(t.scrollThreshold)), h = T(()=>Rt((d.value - o.value) / d.value || 0)), m = ()=>{
            const f = i.value;
            if (!f || a && !a.value) return;
            r = o.value, o.value = "window" in f ? f.pageYOffset : f.scrollTop;
            const p = f instanceof Window ? document.documentElement.scrollHeight : f.scrollHeight;
            if (n !== p) {
                n = p;
                return;
            }
            c.value = o.value < r, l.value = Math.abs(o.value - d.value);
        };
        return me(c, ()=>{
            s.value = s.value || o.value;
        }), me(u, ()=>{
            s.value = 0;
        }), ea(()=>{
            me(()=>t.scrollTarget, (f)=>{
                const p = f ? document.querySelector(f) : window;
                p && p !== i.value && (i.value?.removeEventListener("scroll", m), i.value = p, i.value.addEventListener("scroll", m, {
                    passive: !0
                }));
            }, {
                immediate: !0
            });
        }), ga(()=>{
            i.value?.removeEventListener("scroll", m);
        }), a && me(a, m, {
            immediate: !0
        }), {
            scrollThreshold: d,
            currentScroll: o,
            currentThreshold: l,
            isScrollActive: u,
            scrollRatio: h,
            isScrollingUp: c,
            savedScroll: s
        };
    }
    const o4 = $({
        scrollBehavior: String,
        modelValue: {
            type: Boolean,
            default: !0
        },
        location: {
            type: String,
            default: "top",
            validator: (t)=>[
                    "top",
                    "bottom"
                ].includes(t)
        },
        ...o1(),
        ...Gn(),
        ...n4(),
        height: {
            type: [
                Number,
                String
            ],
            default: 64
        }
    }, "VAppBar"), nk = te()({
        name: "VAppBar",
        props: o4(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = W(), n = Be(t, "modelValue"), i = T(()=>{
                const b = new Set(t.scrollBehavior?.split(" ") ?? []);
                return {
                    hide: b.has("hide"),
                    fullyHide: b.has("fully-hide"),
                    inverted: b.has("inverted"),
                    collapse: b.has("collapse"),
                    elevate: b.has("elevate"),
                    fadeImage: b.has("fade-image")
                };
            }), o = T(()=>{
                const b = i.value;
                return b.hide || b.fullyHide || b.inverted || b.collapse || b.elevate || b.fadeImage || !n.value;
            }), { currentScroll: s, scrollThreshold: l, isScrollingUp: u, scrollRatio: c } = i4(t, {
                canScroll: o
            }), d = T(()=>i.value.hide || i.value.fullyHide), h = T(()=>t.collapse || i.value.collapse && (i.value.inverted ? c.value > 0 : c.value === 0)), m = T(()=>t.flat || i.value.fullyHide && !n.value || i.value.elevate && (i.value.inverted ? s.value > 0 : s.value === 0)), f = T(()=>i.value.fadeImage ? i.value.inverted ? 1 - c.value : c.value : void 0), p = T(()=>{
                if (i.value.hide && i.value.inverted) return 0;
                const b = r.value?.contentHeight ?? 0, k = r.value?.extensionHeight ?? 0;
                return d.value ? s.value < l.value || i.value.fullyHide ? b + k : b : b + k;
            });
            Ma(T(()=>!!t.scrollBehavior), ()=>{
                Lt(()=>{
                    d.value ? i.value.inverted ? n.value = s.value > l.value : n.value = u.value || s.value < l.value : n.value = !0;
                });
            });
            const { ssrBootStyles: g } = Zn(), { layoutItemStyles: v } = Wn({
                id: t.name,
                order: T(()=>parseInt(t.order, 10)),
                position: K(t, "location"),
                layoutSize: p,
                elementSize: de(void 0),
                active: n,
                absolute: K(t, "absolute")
            });
            return ie(()=>{
                const b = Ks.filterProps(t);
                return y(Ks, Z({
                    ref: r,
                    class: [
                        "v-app-bar",
                        {
                            "v-app-bar--bottom": t.location === "bottom"
                        },
                        t.class
                    ],
                    style: [
                        {
                            ...v.value,
                            "--v-toolbar-image-opacity": f.value,
                            height: void 0,
                            ...g.value
                        },
                        t.style
                    ]
                }, b, {
                    collapse: h.value,
                    flat: m.value
                }), a);
            }), {};
        }
    }), s4 = $({
        ...Il({
            icon: "$menu",
            variant: "text"
        })
    }, "VAppBarNavIcon"), ik = te()({
        name: "VAppBarNavIcon",
        props: s4(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y(Re, Z(t, {
                    class: [
                        "v-app-bar-nav-icon"
                    ]
                }), a)), {};
        }
    }), l4 = te()({
        name: "VAppBarTitle",
        props: i1(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y(zl, Z(t, {
                    class: "v-app-bar-title"
                }), a)), {};
        }
    });
    function u4(t) {
        let { rootEl: e, isSticky: a, layoutItemStyles: r } = t;
        const n = de(!1), i = de(0), o = T(()=>{
            const u = typeof n.value == "boolean" ? "top" : n.value;
            return [
                a.value ? {
                    top: "auto",
                    bottom: "auto",
                    height: void 0
                } : void 0,
                n.value ? {
                    [u]: xe(i.value)
                } : {
                    top: r.value.top
                }
            ];
        });
        ea(()=>{
            me(a, (u)=>{
                u ? window.addEventListener("scroll", l, {
                    passive: !0
                }) : window.removeEventListener("scroll", l);
            }, {
                immediate: !0
            });
        }), ga(()=>{
            window.removeEventListener("scroll", l);
        });
        let s = 0;
        function l() {
            const u = s > window.scrollY ? "up" : "down", c = e.value.getBoundingClientRect(), d = parseFloat(r.value.top ?? 0), h = window.scrollY - Math.max(0, i.value - d), m = c.height + Math.max(i.value, d) - window.scrollY - window.innerHeight, f = parseFloat(getComputedStyle(e.value).getPropertyValue("--v-body-scroll-y")) || 0;
            c.height < window.innerHeight - d ? (n.value = "top", i.value = d) : u === "up" && n.value === "bottom" || u === "down" && n.value === "top" ? (i.value = window.scrollY + c.top - f, n.value = !0) : u === "down" && m <= 0 ? (i.value = 0, n.value = "bottom") : u === "up" && h <= 0 && (f ? n.value !== "top" && (i.value = -h + f + d, n.value = "top") : (i.value = c.top + h, n.value = "top")), s = window.scrollY;
        }
        return {
            isStuck: n,
            stickyStyles: o
        };
    }
    const c4 = 100, d4 = 20;
    function Ay(t) {
        return (t < 0 ? -1 : 1) * Math.sqrt(Math.abs(t)) * 1.41421356237;
    }
    function Dy(t) {
        if (t.length < 2) return 0;
        if (t.length === 2) return t[1].t === t[0].t ? 0 : (t[1].d - t[0].d) / (t[1].t - t[0].t);
        let e = 0;
        for(let a = t.length - 1; a > 0; a--){
            if (t[a].t === t[a - 1].t) continue;
            const r = Ay(e), n = (t[a].d - t[a - 1].d) / (t[a].t - t[a - 1].t);
            e += (n - r) * Math.abs(n), a === t.length - 1 && (e *= .5);
        }
        return Ay(e) * 1e3;
    }
    function h4() {
        const t = {};
        function e(n) {
            Array.from(n.changedTouches).forEach((i)=>{
                (t[i.identifier] ?? (t[i.identifier] = new iw(d4))).push([
                    n.timeStamp,
                    i
                ]);
            });
        }
        function a(n) {
            Array.from(n.changedTouches).forEach((i)=>{
                delete t[i.identifier];
            });
        }
        function r(n) {
            const i = t[n]?.values().reverse();
            if (!i) throw new Error(`No samples for touch id ${n}`);
            const o = i[0], s = [], l = [];
            for (const u of i){
                if (o[0] - u[0] > c4) break;
                s.push({
                    t: u[0],
                    d: u[1].clientX
                }), l.push({
                    t: u[0],
                    d: u[1].clientY
                });
            }
            return {
                x: Dy(s),
                y: Dy(l),
                get direction () {
                    const { x: u, y: c } = this, [d, h] = [
                        Math.abs(u),
                        Math.abs(c)
                    ];
                    return d > h && u >= 0 ? "right" : d > h && u <= 0 ? "left" : h > d && c >= 0 ? "down" : h > d && c <= 0 ? "up" : m4();
                }
            };
        }
        return {
            addMovement: e,
            endTouch: a,
            getVelocity: r
        };
    }
    function m4() {
        throw new Error;
    }
    function f4(t) {
        let { el: e, isActive: a, isTemporary: r, width: n, touchless: i, position: o } = t;
        ea(()=>{
            window.addEventListener("touchstart", b, {
                passive: !0
            }), window.addEventListener("touchmove", k, {
                passive: !1
            }), window.addEventListener("touchend", S, {
                passive: !0
            });
        }), ga(()=>{
            window.removeEventListener("touchstart", b), window.removeEventListener("touchmove", k), window.removeEventListener("touchend", S);
        });
        const s = T(()=>[
                "left",
                "right"
            ].includes(o.value)), { addMovement: l, endTouch: u, getVelocity: c } = h4();
        let d = !1;
        const h = de(!1), m = de(0), f = de(0);
        let p;
        function g(C, w) {
            return (o.value === "left" ? C : o.value === "right" ? document.documentElement.clientWidth - C : o.value === "top" ? C : o.value === "bottom" ? document.documentElement.clientHeight - C : hi()) - (w ? n.value : 0);
        }
        function v(C) {
            let w = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
            const F = o.value === "left" ? (C - f.value) / n.value : o.value === "right" ? (document.documentElement.clientWidth - C - f.value) / n.value : o.value === "top" ? (C - f.value) / n.value : o.value === "bottom" ? (document.documentElement.clientHeight - C - f.value) / n.value : hi();
            return w ? Math.max(0, Math.min(1, F)) : F;
        }
        function b(C) {
            if (i.value) return;
            const w = C.changedTouches[0].clientX, F = C.changedTouches[0].clientY, D = 25, _ = o.value === "left" ? w < D : o.value === "right" ? w > document.documentElement.clientWidth - D : o.value === "top" ? F < D : o.value === "bottom" ? F > document.documentElement.clientHeight - D : hi(), A = a.value && (o.value === "left" ? w < n.value : o.value === "right" ? w > document.documentElement.clientWidth - n.value : o.value === "top" ? F < n.value : o.value === "bottom" ? F > document.documentElement.clientHeight - n.value : hi());
            (_ || A || a.value && r.value) && (p = [
                w,
                F
            ], f.value = g(s.value ? w : F, a.value), m.value = v(s.value ? w : F), d = f.value > -20 && f.value < 80, u(C), l(C));
        }
        function k(C) {
            const w = C.changedTouches[0].clientX, F = C.changedTouches[0].clientY;
            if (d) {
                if (!C.cancelable) {
                    d = !1;
                    return;
                }
                const _ = Math.abs(w - p[0]), A = Math.abs(F - p[1]);
                (s.value ? _ > A && _ > 3 : A > _ && A > 3) ? (h.value = !0, d = !1) : (s.value ? A : _) > 3 && (d = !1);
            }
            if (!h.value) return;
            C.preventDefault(), l(C);
            const D = v(s.value ? w : F, !1);
            m.value = Math.max(0, Math.min(1, D)), D > 1 ? f.value = g(s.value ? w : F, !0) : D < 0 && (f.value = g(s.value ? w : F, !1));
        }
        function S(C) {
            if (d = !1, !h.value) return;
            l(C), h.value = !1;
            const w = c(C.changedTouches[0].identifier), F = Math.abs(w.x), D = Math.abs(w.y);
            (s.value ? F > D && F > 400 : D > F && D > 3) ? a.value = w.direction === ({
                left: "right",
                right: "left",
                top: "down",
                bottom: "up"
            }[o.value] || hi()) : a.value = m.value > .5;
        }
        const x = T(()=>h.value ? {
                transform: o.value === "left" ? `translateX(calc(-100% + ${m.value * n.value}px))` : o.value === "right" ? `translateX(calc(100% - ${m.value * n.value}px))` : o.value === "top" ? `translateY(calc(-100% + ${m.value * n.value}px))` : o.value === "bottom" ? `translateY(calc(100% - ${m.value * n.value}px))` : hi(),
                transition: "none"
            } : void 0);
        return Ma(h, ()=>{
            const C = e.value?.style.transform ?? null, w = e.value?.style.transition ?? null;
            Lt(()=>{
                e.value?.style.setProperty("transform", x.value?.transform || "none"), e.value?.style.setProperty("transition", x.value?.transition || null);
            }), pa(()=>{
                e.value?.style.setProperty("transform", C), e.value?.style.setProperty("transition", w);
            });
        }), {
            isDragging: h,
            dragProgress: m,
            dragStyles: x
        };
    }
    function hi() {
        throw new Error;
    }
    const p4 = [
        "start",
        "end",
        "left",
        "right",
        "top",
        "bottom"
    ], g4 = $({
        color: String,
        disableResizeWatcher: Boolean,
        disableRouteWatcher: Boolean,
        expandOnHover: Boolean,
        floating: Boolean,
        modelValue: {
            type: Boolean,
            default: null
        },
        permanent: Boolean,
        rail: {
            type: Boolean,
            default: null
        },
        railWidth: {
            type: [
                Number,
                String
            ],
            default: 56
        },
        scrim: {
            type: [
                Boolean,
                String
            ],
            default: !0
        },
        image: String,
        temporary: Boolean,
        persistent: Boolean,
        touchless: Boolean,
        width: {
            type: [
                Number,
                String
            ],
            default: 256
        },
        location: {
            type: String,
            default: "start",
            validator: (t)=>p4.includes(t)
        },
        sticky: Boolean,
        ...Na(),
        ...we(),
        ...Xm(),
        ...Vn({
            mobile: null
        }),
        ...Jt(),
        ...Gn(),
        ...Ct(),
        ...We({
            tag: "nav"
        }),
        ...Qe()
    }, "VNavigationDrawer"), ok = te()({
        name: "VNavigationDrawer",
        props: g4(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:rail": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, emit: r, slots: n } = e;
            const { isRtl: i } = Xt(), { themeClasses: o } = ut(t), { borderClasses: s } = Xa(t), { backgroundColorClasses: l, backgroundColorStyles: u } = ft(K(t, "color")), { elevationClasses: c } = na(t), { displayClasses: d, mobile: h } = Ia(t), { roundedClasses: m } = Mt(t), f = c0(), p = Be(t, "modelValue", null, (I)=>!!I), { ssrBootStyles: g } = Zn(), { scopeId: v } = ei(), b = W(), k = de(!1), { runOpenDelay: S, runCloseDelay: x } = Jm(t, (I)=>{
                k.value = I;
            }), C = T(()=>t.rail && t.expandOnHover && k.value ? Number(t.width) : Number(t.rail ? t.railWidth : t.width)), w = T(()=>ow(t.location, i.value)), F = T(()=>t.persistent), D = T(()=>!t.permanent && (h.value || t.temporary)), _ = T(()=>t.sticky && !D.value && w.value !== "bottom");
            Ma(()=>t.expandOnHover && t.rail != null, ()=>{
                me(k, (I)=>r("update:rail", !I));
            }), Ma(()=>!t.disableResizeWatcher, ()=>{
                me(D, (I)=>!t.permanent && at(()=>p.value = !I));
            }), Ma(()=>!t.disableRouteWatcher && !!f, ()=>{
                me(f.currentRoute, ()=>D.value && (p.value = !1));
            }), me(()=>t.permanent, (I)=>{
                I && (p.value = !0);
            }), t.modelValue == null && !D.value && (p.value = t.permanent || !h.value);
            const { isDragging: A, dragProgress: E } = f4({
                el: b,
                isActive: p,
                isTemporary: D,
                width: C,
                touchless: K(t, "touchless"),
                position: w
            }), B = T(()=>{
                const I = D.value ? 0 : t.rail && t.expandOnHover ? Number(t.railWidth) : C.value;
                return A.value ? I * E.value : I;
            }), { layoutItemStyles: P, layoutItemScrimStyles: M } = Wn({
                id: t.name,
                order: T(()=>parseInt(t.order, 10)),
                position: w,
                layoutSize: B,
                elementSize: C,
                active: Eo(p),
                disableTransitions: T(()=>A.value),
                absolute: T(()=>t.absolute || _.value && typeof R.value != "string")
            }), { isStuck: R, stickyStyles: z } = u4({
                rootEl: b,
                isSticky: _,
                layoutItemStyles: P
            }), N = ft(T(()=>typeof t.scrim == "string" ? t.scrim : null)), H = T(()=>({
                    ...A.value ? {
                        opacity: E.value * .2,
                        transition: "none"
                    } : void 0,
                    ...M.value
                }));
            return Bt({
                VList: {
                    bgColor: "transparent"
                }
            }), ie(()=>{
                const I = n.image || t.image;
                return y(Ce, null, [
                    y(t.tag, Z({
                        ref: b,
                        onMouseenter: S,
                        onMouseleave: x,
                        class: [
                            "v-navigation-drawer",
                            `v-navigation-drawer--${w.value}`,
                            {
                                "v-navigation-drawer--expand-on-hover": t.expandOnHover,
                                "v-navigation-drawer--floating": t.floating,
                                "v-navigation-drawer--is-hovering": k.value,
                                "v-navigation-drawer--rail": t.rail,
                                "v-navigation-drawer--temporary": D.value,
                                "v-navigation-drawer--persistent": F.value,
                                "v-navigation-drawer--active": p.value,
                                "v-navigation-drawer--sticky": _.value
                            },
                            o.value,
                            l.value,
                            s.value,
                            d.value,
                            c.value,
                            m.value,
                            t.class
                        ],
                        style: [
                            u.value,
                            P.value,
                            g.value,
                            z.value,
                            t.style
                        ]
                    }, v, a), {
                        default: ()=>[
                                I && y("div", {
                                    key: "image",
                                    class: "v-navigation-drawer__img"
                                }, [
                                    n.image ? y(Ge, {
                                        key: "image-defaults",
                                        disabled: !t.image,
                                        defaults: {
                                            VImg: {
                                                alt: "",
                                                cover: !0,
                                                height: "inherit",
                                                src: t.image
                                            }
                                        }
                                    }, n.image) : y(_r, {
                                        key: "image-img",
                                        alt: "",
                                        cover: !0,
                                        height: "inherit",
                                        src: t.image
                                    }, null)
                                ]),
                                n.prepend && y("div", {
                                    class: "v-navigation-drawer__prepend"
                                }, [
                                    n.prepend?.()
                                ]),
                                y("div", {
                                    class: "v-navigation-drawer__content"
                                }, [
                                    n.default?.()
                                ]),
                                n.append && y("div", {
                                    class: "v-navigation-drawer__append"
                                }, [
                                    n.append?.()
                                ])
                            ]
                    }),
                    y(Kr, {
                        name: "fade-transition"
                    }, {
                        default: ()=>[
                                D.value && (A.value || p.value) && !!t.scrim && y("div", Z({
                                    class: [
                                        "v-navigation-drawer__scrim",
                                        N.backgroundColorClasses.value
                                    ],
                                    style: [
                                        H.value,
                                        N.backgroundColorStyles.value
                                    ],
                                    onClick: ()=>{
                                        F.value || (p.value = !1);
                                    }
                                }, v), null)
                            ]
                    })
                ]);
            }), {
                isStuck: R
            };
        }
    }), v4 = {
        class: "d-flex justify-center text-accent text-select"
    }, y4 = {
        key: 0,
        class: "text-accent"
    }, b4 = {
        key: 1
    }, F4 = Ft({
        __name: "Navbar",
        setup (t) {
            const e = ol(), a = No(), { isDrawerOpen: r } = gt(Vm()), { isDrawerRight: n, showCurrentSpeed: i, showSpeedGraph: o, showAlltimeStat: s, showSessionStat: l, showFreeSpace: u } = gt(ka()), c = ()=>{
                r.value = !r.value;
            }, d = ()=>{
                e.push({
                    name: "dashboard"
                });
            };
            return (h, m)=>(ve(), it(Ce, null, [
                    y(ok, {
                        class: "ios-padding",
                        modelValue: Y(r),
                        "onUpdate:modelValue": m[0] || (m[0] = (f)=>Pt(r) ? r.value = f : null),
                        location: Y(n) ? "right" : "left",
                        color: "navbar",
                        "disable-route-watcher": ""
                    }, {
                        append: O(()=>[
                                y(cL)
                            ]),
                        default: O(()=>[
                                y(Qn, {
                                    class: "clean-px px-2 pt-0"
                                }, {
                                    default: O(()=>[
                                            Y(i) ? (ve(), ze(tt, {
                                                key: 0
                                            }, {
                                                default: O(()=>[
                                                        y(dL)
                                                    ]),
                                                _: 1
                                            })) : Dt("", !0),
                                            Y(o) ? (ve(), ze(tt, {
                                                key: 1
                                            }, {
                                                default: O(()=>[
                                                        y(II)
                                                    ]),
                                                _: 1
                                            })) : Dt("", !0),
                                            Y(s) ? (ve(), ze(tt, {
                                                key: 2
                                            }, {
                                                default: O(()=>[
                                                        y(Sy, {
                                                            session: !1
                                                        })
                                                    ]),
                                                _: 1
                                            })) : Dt("", !0),
                                            Y(l) ? (ve(), ze(tt, {
                                                key: 3
                                            }, {
                                                default: O(()=>[
                                                        y(Sy, {
                                                            session: !0
                                                        })
                                                    ]),
                                                _: 1
                                            })) : Dt("", !0),
                                            Y(u) ? (ve(), ze(tt, {
                                                key: 4
                                            }, {
                                                default: O(()=>[
                                                        y(bL)
                                                    ]),
                                                _: 1
                                            })) : Dt("", !0),
                                            y(tt, null, {
                                                default: O(()=>[
                                                        y(gL)
                                                    ]),
                                                _: 1
                                            }),
                                            y(tt, {
                                                density: "compact"
                                            }, {
                                                default: O(()=>[
                                                        nt("div", v4, Se(Y(a).torrentCountString), 1)
                                                    ]),
                                                _: 1
                                            })
                                        ]),
                                    _: 1
                                })
                            ]),
                        _: 1
                    }, 8, [
                        "modelValue",
                        "location"
                    ]),
                    y(nk, {
                        class: "ios-padding"
                    }, {
                        default: O(()=>[
                                y(ik, {
                                    onClick: c
                                }),
                                nt("div", {
                                    class: "title-wrapper cursor-pointer",
                                    onClick: d
                                }, [
                                    h.$vuetify.display.smAndUp ? (ve(), it("span", y4, "Vue")) : Dt("", !0),
                                    h.$vuetify.display.smAndUp ? (ve(), it("span", b4, "Torrent")) : Dt("", !0)
                                ]),
                                y($I),
                                h.$vuetify.display.lgAndUp ? (ve(), ze(r4, {
                                    key: 0,
                                    "bg-color": "background",
                                    class: "px-6"
                                })) : (ve(), ze(un, {
                                    key: 1
                                })),
                                y(QI)
                            ]),
                        _: 1
                    })
                ], 64));
        }
    }), k4 = d1(F4, [
        [
            "__scopeId",
            "data-v-79145840"
        ]
    ]), x4 = $({
        ...we(),
        ...jy({
            fullHeight: !0
        }),
        ...Qe()
    }, "VApp"), sk = te()({
        name: "VApp",
        props: x4(),
        setup (t, e) {
            let { slots: a } = e;
            const r = ut(t), { layoutClasses: n, getLayoutItem: i, items: o, layoutRef: s } = Uy(t), { rtlClasses: l } = Xt();
            return ie(()=>y("div", {
                    ref: s,
                    class: [
                        "v-application",
                        r.themeClasses.value,
                        n.value,
                        l.value,
                        t.class
                    ],
                    style: [
                        t.style
                    ]
                }, [
                    y("div", {
                        class: "v-application__wrap"
                    }, [
                        a.default?.()
                    ])
                ])), {
                getLayoutItem: i,
                items: o,
                theme: r
            };
        }
    }), w4 = $({
        scrollable: Boolean,
        ...we(),
        ...Ut(),
        ...We({
            tag: "main"
        })
    }, "VMain"), lk = te()({
        name: "VMain",
        props: w4(),
        setup (t, e) {
            let { slots: a } = e;
            const { dimensionStyles: r } = jt(t), { mainStyles: n } = Yy(), { ssrBootStyles: i } = Zn();
            return ie(()=>y(t.tag, {
                    class: [
                        "v-main",
                        {
                            "v-main--scrollable": t.scrollable
                        },
                        t.class
                    ],
                    style: [
                        n.value,
                        i.value,
                        r.value,
                        t.style
                    ]
                }, {
                    default: ()=>[
                            t.scrollable ? y("div", {
                                class: "v-main__scroller"
                            }, [
                                a.default?.()
                            ]) : a.default?.()
                        ]
                })), {};
        }
    }), S4 = Ft({
        __name: "App",
        setup (t) {
            const { t: e } = qt(), a = Sl(), r = kr(), n = No(), i = Bi(), o = LF(), s = Yn(), { serverState: l } = gt(s), u = Ka(), { torrents: c } = gt(u), d = wl(), { routerDomKey: h } = gt(JB()), m = ka(), { language: f, uiTitleCustom: p, uiTitleType: g, useBitSpeed: v } = gt(m), b = [
                yu(n, "vuetorrent_dashboard", {
                    whitelist: [
                        "displayMode"
                    ]
                }),
                yu(u, "vuetorrent_torrents", {
                    whitelist: [
                        "sortCriterias"
                    ]
                }),
                yu(m, "vuetorrent_webuiSettings", {
                    blacklist: [
                        "uiTitleCustom"
                    ]
                })
            ], k = async ()=>{
                const C = r.fetchAuthStatus(), w = setTimeout(()=>gr.promise(C, {
                        pending: e("login.pending")
                    }), 1e3);
                C.then(()=>clearTimeout(w));
            }, S = ()=>{
                document.addEventListener("contextmenu", (C)=>{
                    if (!C.target) return;
                    const w = C.target, F = w.nodeName.toLowerCase(), D = w.getAttribute("type")?.toLowerCase() ?? "";
                    if (![
                        "textarea",
                        "a",
                        "img"
                    ].includes(F) && !(F === "input" && [
                        "text",
                        "password",
                        "email",
                        "number"
                    ].includes(D))) return C.preventDefault(), !1;
                });
            };
            function x() {
                window.launchQueue?.setConsumer(async (w)=>{
                    w.files && w.files.length && (await Promise.all(w.files.map(async (F)=>a.pushTorrentToQueue(await F.getFile()))), i.createDialog(ko));
                });
            }
            return Mr(()=>{
                m.updateTheme(), m.setLanguage(f.value), k(), S(), x();
            }), ea(()=>{
                sessionStorage.setItem("vuetorrent_mounted", "true");
            }), me(()=>r.isAuthenticated, async (C)=>{
                C ? (s.forceMaindataSync(), await d.fetchPreferences(), await o.cleanAndFetchLogs(), oh.ping().then(async (w)=>{
                    w && (await Promise.allSettled(b.map((F)=>F.loadState())), b.forEach((F)=>F.registerWatcher()));
                })) : (s.stopMaindataSync(), b.forEach((w)=>w.cancelWatcher()));
            }, {
                immediate: !0
            }), Lt(()=>{
                const C = d.preferences?.app_instance_name, w = C && C.length ? C : "VueTorrent";
                switch(g.value){
                    case bn.GLOBAL_SPEED:
                        const D = to(l.value?.dl_info_speed ?? 0, v.value), _ = to(l.value?.up_info_speed ?? 0, v.value);
                        document.title = `[D: ${D}, U: ${_}] ${w}`;
                        break;
                    case bn.FIRST_TORRENT_STATUS:
                        const A = c.value.at(0);
                        if (A) {
                            const E = to(A.dlspeed, v.value), B = to(A.upspeed, v.value), P = pD(A.progress);
                            document.title = `[D: ${E}, U: ${B}, ${P}] ${w}`;
                        } else document.title = `[N/A] ${w}`;
                        break;
                    case bn.CUSTOM:
                        document.title = p.value;
                        break;
                    case bn.DEFAULT:
                    default:
                        document.title = w;
                        break;
                }
            }), (C, w)=>{
                const F = Ny("router-view");
                return ve(), ze(sk, {
                    class: "text-noselect"
                }, {
                    default: O(()=>[
                            (ve(!0), it(Ce, null, dm(Y(i).dialogs.values(), (D)=>(ve(), ze(Iy(D.component), Z({
                                    ref_for: !0
                                }, {
                                    guid: D.guid,
                                    ...D.props
                                }), null, 16))), 256)),
                            Y(r).isAuthenticated ? (ve(), ze(k4, {
                                key: 0
                            })) : Dt("", !0),
                            y(lk, null, {
                                default: O(()=>[
                                        (ve(), ze(F, {
                                            key: Y(h)
                                        }))
                                    ]),
                                _: 1
                            }),
                            Y(r).isAuthenticated ? (ve(), ze(WR, {
                                key: 1
                            })) : Dt("", !0),
                            y(qR)
                        ]),
                    _: 1
                });
            };
        }
    }), C4 = [
        {
            name: "dashboard",
            path: "/",
            component: ()=>Cr(()=>import("./Dashboard-BZtcH2qk.js"), __vite__mapDeps([0,1,2,3,4,5]), import.meta.url)
        },
        {
            name: "settings",
            path: "/settings/:tab?/:subtab?",
            component: ()=>Cr(()=>import("./Settings-BUcyxfe-.js"), __vite__mapDeps([6,1,7,4,3,8]), import.meta.url)
        },
        {
            name: "rssArticles",
            path: "/rss/:tab?/:feedId?",
            component: ()=>Cr(()=>import("./RssArticles-B9paJCad.js"), __vite__mapDeps([9,1,3,10]), import.meta.url)
        },
        {
            name: "logs",
            path: "/logs",
            component: ()=>Cr(()=>import("./Logs-CsUeAlEP.js"), __vite__mapDeps([11,1,3]), import.meta.url)
        },
        {
            name: "searchEngine",
            path: "/search",
            component: ()=>Cr(()=>import("./SearchEngine-BGj6UdDJ.js"), __vite__mapDeps([12,1,3,13]), import.meta.url)
        },
        {
            name: "torrentCreator",
            path: "/torrentCreator",
            component: ()=>Cr(()=>import("./TorrentCreator-oSAIEirv.js"), __vite__mapDeps([14,1,3]), import.meta.url)
        },
        {
            name: "torrentDetail",
            path: "/torrent/:hash/:tab?",
            component: ()=>Cr(()=>import("./TorrentDetail-HtdwmSWK.js").then(async (m)=>{
                        await m.__tla;
                        return m;
                    }).then((t)=>t.ap), __vite__mapDeps([15,2,1,3,16]), import.meta.url)
        },
        {
            name: "magnetHandler",
            path: "/magnet/:url",
            alias: "/download=:url",
            component: ()=>Cr(()=>import("./MagnetHandler-VhtXokMs.js"), __vite__mapDeps([17,1,3]), import.meta.url)
        },
        {
            name: "login",
            path: "/login",
            component: ()=>Cr(()=>import("./Login-DEqdiTBW.js"), __vite__mapDeps([18,1,7,3]), import.meta.url),
            meta: {
                public: !0
            }
        },
        {
            path: "/:any+",
            redirect: "/"
        }
    ];
    var A4 = {};
    const uk = Bx({
        history: Mx(A4.BASE_URL),
        routes: C4
    });
    uk.beforeResolve((t, e, a)=>{
        const { isAuthenticated: r } = gt(kr());
        return !(t.meta.public === !0) && !r.value ? a({
            name: "login",
            query: {
                redirect: location.hash.slice(1)
            }
        }) : a();
    });
    let ck, D4, T4, E4, _4, P4, B4, R4, dk, hk, L4, I4, z4, O4, mk, H4, fk, V4, W4, pk, gk, Vl, G4, $4, Wl, U4, j4, Y4, q4, K4;
    ck = br("v-alert-title");
    D4 = [
        "success",
        "info",
        "warning",
        "error"
    ];
    T4 = $({
        border: {
            type: [
                Boolean,
                String
            ],
            validator: (t)=>typeof t == "boolean" || [
                    "top",
                    "end",
                    "bottom",
                    "start"
                ].includes(t)
        },
        borderColor: String,
        closable: Boolean,
        closeIcon: {
            type: Me,
            default: "$close"
        },
        closeLabel: {
            type: String,
            default: "$vuetify.close"
        },
        icon: {
            type: [
                Boolean,
                String,
                Function,
                Object
            ],
            default: null
        },
        modelValue: {
            type: Boolean,
            default: !0
        },
        prominent: Boolean,
        title: String,
        text: String,
        type: {
            type: String,
            validator: (t)=>D4.includes(t)
        },
        ...we(),
        ...ta(),
        ...Ut(),
        ...Jt(),
        ...zr(),
        ...zi(),
        ...Ct(),
        ...We(),
        ...Qe(),
        ...or({
            variant: "flat"
        })
    }, "VAlert");
    E4 = te()({
        name: "VAlert",
        props: T4(),
        emits: {
            "click:close": (t)=>!0,
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const n = Be(t, "modelValue"), i = T(()=>{
                if (t.icon !== !1) return t.type ? t.icon ?? `$${t.type}` : t.icon;
            }), o = T(()=>({
                    color: t.color ?? t.type,
                    variant: t.variant
                })), { themeClasses: s } = ut(t), { colorClasses: l, colorStyles: u, variantClasses: c } = qn(o), { densityClasses: d } = xa(t), { dimensionStyles: h } = jt(t), { elevationClasses: m } = na(t), { locationStyles: f } = ti(t), { positionClasses: p } = Ni(t), { roundedClasses: g } = Mt(t), { textColorClasses: v, textColorStyles: b } = ha(K(t, "borderColor")), { t: k } = zt(), S = T(()=>({
                    "aria-label": k(t.closeLabel),
                    onClick (x) {
                        n.value = !1, a("click:close", x);
                    }
                }));
            return ()=>{
                const x = !!(r.prepend || i.value), C = !!(r.title || t.title), w = !!(r.close || t.closable);
                return n.value && y(t.tag, {
                    class: [
                        "v-alert",
                        t.border && {
                            "v-alert--border": !!t.border,
                            [`v-alert--border-${t.border === !0 ? "start" : t.border}`]: !0
                        },
                        {
                            "v-alert--prominent": t.prominent
                        },
                        s.value,
                        l.value,
                        d.value,
                        m.value,
                        p.value,
                        g.value,
                        c.value,
                        t.class
                    ],
                    style: [
                        u.value,
                        h.value,
                        f.value,
                        t.style
                    ],
                    role: "alert"
                }, {
                    default: ()=>[
                            sn(!1, "v-alert"),
                            t.border && y("div", {
                                key: "border",
                                class: [
                                    "v-alert__border",
                                    v.value
                                ],
                                style: b.value
                            }, null),
                            x && y("div", {
                                key: "prepend",
                                class: "v-alert__prepend"
                            }, [
                                r.prepend ? y(Ge, {
                                    key: "prepend-defaults",
                                    disabled: !i.value,
                                    defaults: {
                                        VIcon: {
                                            density: t.density,
                                            icon: i.value,
                                            size: t.prominent ? 44 : 28
                                        }
                                    }
                                }, r.prepend) : y(_e, {
                                    key: "prepend-icon",
                                    density: t.density,
                                    icon: i.value,
                                    size: t.prominent ? 44 : 28
                                }, null)
                            ]),
                            y("div", {
                                class: "v-alert__content"
                            }, [
                                C && y(ck, {
                                    key: "title"
                                }, {
                                    default: ()=>[
                                            r.title?.() ?? t.title
                                        ]
                                }),
                                r.text?.() ?? t.text,
                                r.default?.()
                            ]),
                            r.append && y("div", {
                                key: "append",
                                class: "v-alert__append"
                            }, [
                                r.append()
                            ]),
                            w && y("div", {
                                key: "close",
                                class: "v-alert__close"
                            }, [
                                r.close ? y(Ge, {
                                    key: "close-defaults",
                                    defaults: {
                                        VBtn: {
                                            icon: t.closeIcon,
                                            size: "x-small",
                                            variant: "text"
                                        }
                                    }
                                }, {
                                    default: ()=>[
                                            r.close?.({
                                                props: S.value
                                            })
                                        ]
                                }) : y(Re, Z({
                                    key: "close-btn",
                                    icon: t.closeIcon,
                                    size: "x-small",
                                    variant: "text"
                                }, S.value), null)
                            ])
                        ]
                });
            };
        }
    });
    _4 = $({
        autoSelectFirst: {
            type: [
                Boolean,
                String
            ]
        },
        clearOnSelect: Boolean,
        search: String,
        ...Ko({
            filterKeys: [
                "title"
            ]
        }),
        ...tf(),
        ...It(qo({
            modelValue: null,
            role: "combobox"
        }), [
            "validationValue",
            "dirty",
            "appendInnerIcon"
        ]),
        ...fr({
            transition: !1
        })
    }, "VAutocomplete");
    P4 = te()({
        name: "VAutocomplete",
        props: _4(),
        emits: {
            "update:focused": (t)=>!0,
            "update:search": (t)=>!0,
            "update:modelValue": (t)=>!0,
            "update:menu": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { t: r } = zt(), n = W(), i = de(!1), o = de(!0), s = de(!1), l = W(), u = W(), c = de(-1), d = T(()=>n.value?.color), { items: h, transformIn: m, transformOut: f } = Km(t), { textColorClasses: p, textColorStyles: g } = ha(d), v = Be(t, "search", ""), b = Be(t, "modelValue", [], (ae)=>m(ae === null ? [
                    null
                ] : Tt(ae)), (ae)=>{
                const se = f(ae);
                return t.multiple ? se : se[0] ?? null;
            }), k = T(()=>typeof t.counterValue == "function" ? t.counterValue(b.value) : typeof t.counterValue == "number" ? t.counterValue : b.value.length), S = Vo(t), { filteredItems: x, getMatches: C } = Xo(t, h, ()=>o.value ? "" : v.value), w = T(()=>t.hideSelected ? x.value.filter((ae)=>!b.value.some((se)=>se.value === ae.value)) : x.value), F = T(()=>!!(t.chips || a.chip)), D = T(()=>F.value || !!a.selection), _ = T(()=>b.value.map((ae)=>ae.props.value)), A = T(()=>(t.autoSelectFirst === !0 || t.autoSelectFirst === "exact" && v.value === w.value[0]?.title) && w.value.length > 0 && !o.value && !s.value), E = T(()=>t.hideNoData && !w.value.length || S.isReadonly.value || S.isDisabled.value), B = Be(t, "menu"), P = T({
                get: ()=>B.value,
                set: (ae)=>{
                    B.value && !ae && l.value?.ΨopenChildren.size || ae && E.value || (B.value = ae);
                }
            }), M = T(()=>P.value ? t.closeText : t.openText), R = W(), z = ef(R, n);
            function N(ae) {
                t.openOnClear && (P.value = !0), v.value = "";
            }
            function H() {
                E.value || (P.value = !0);
            }
            function I(ae) {
                E.value || (i.value && (ae.preventDefault(), ae.stopPropagation()), P.value = !P.value);
            }
            function L(ae) {
                ae.key !== " " && wi(ae) && n.value?.focus();
            }
            function G(ae) {
                if (S.isReadonly.value) return;
                const se = n.value?.selectionStart, pe = b.value.length;
                if ([
                    "Enter",
                    "ArrowDown",
                    "ArrowUp"
                ].includes(ae.key) && ae.preventDefault(), [
                    "Enter",
                    "ArrowDown"
                ].includes(ae.key) && (P.value = !0), [
                    "Escape"
                ].includes(ae.key) && (P.value = !1), A.value && [
                    "Enter",
                    "Tab"
                ].includes(ae.key) && !b.value.some((ke)=>{
                    let { value: be } = ke;
                    return be === w.value[0].value;
                }) && ee(w.value[0]), ae.key === "ArrowDown" && A.value && R.value?.focus("next"), [
                    "Backspace",
                    "Delete"
                ].includes(ae.key)) {
                    if (!t.multiple && D.value && b.value.length > 0 && !v.value) return ee(b.value[0], !1);
                    if (~c.value) {
                        ae.preventDefault();
                        const ke = c.value;
                        ee(b.value[c.value], !1), c.value = ke >= pe - 1 ? pe - 2 : ke;
                    } else ae.key === "Backspace" && !v.value && (c.value = pe - 1);
                    return;
                }
                if (t.multiple) if (ae.key === "ArrowLeft") {
                    if (c.value < 0 && se && se > 0) return;
                    const ke = c.value > -1 ? c.value - 1 : pe - 1;
                    if (b.value[ke]) c.value = ke;
                    else {
                        const be = v.value?.length ?? null;
                        c.value = -1, n.value?.setSelectionRange(be, be);
                    }
                } else if (ae.key === "ArrowRight") {
                    if (c.value < 0) return;
                    const ke = c.value + 1;
                    b.value[ke] ? c.value = ke : (c.value = -1, n.value?.setSelectionRange(0, 0));
                } else ~c.value && wi(ae) && (c.value = -1);
            }
            function q(ae) {
                if (xi(n.value, ":autofill") || xi(n.value, ":-webkit-autofill")) {
                    const se = h.value.find((pe)=>pe.title === ae.target.value);
                    se && ee(se);
                }
            }
            function X() {
                t.eager && u.value?.calculateVisibleItems();
            }
            function ue() {
                i.value && (o.value = !0, n.value?.focus());
            }
            function J(ae) {
                i.value = !0, setTimeout(()=>{
                    s.value = !0;
                });
            }
            function U(ae) {
                s.value = !1;
            }
            function le(ae) {
                (ae == null || ae === "" && !t.multiple && !D.value) && (b.value = []);
            }
            const fe = de(!1);
            function ee(ae) {
                let se = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
                if (!(!ae || ae.props.disabled)) if (t.multiple) {
                    const pe = b.value.findIndex((be)=>(t.valueComparator || Aa)(be.value, ae.value)), ke = se ?? !~pe;
                    if (~pe) {
                        const be = ke ? [
                            ...b.value,
                            ae
                        ] : [
                            ...b.value
                        ];
                        be.splice(pe, 1), b.value = be;
                    } else ke && (b.value = [
                        ...b.value,
                        ae
                    ]);
                    t.clearOnSelect && (v.value = "");
                } else {
                    const pe = se !== !1;
                    b.value = pe ? [
                        ae
                    ] : [], v.value = pe && !D.value ? ae.title : "", at(()=>{
                        P.value = !1, o.value = !0;
                    });
                }
            }
            return me(i, (ae, se)=>{
                ae !== se && (ae ? (fe.value = !0, v.value = t.multiple || D.value ? "" : String(b.value.at(-1)?.props.title ?? ""), o.value = !0, at(()=>fe.value = !1)) : (!t.multiple && v.value == null && (b.value = []), P.value = !1, (t.multiple || D.value) && (v.value = ""), c.value = -1));
            }), me(v, (ae)=>{
                !i.value || fe.value || (ae && (P.value = !0), o.value = !ae);
            }), me(P, ()=>{
                if (!t.hideSelected && P.value && b.value.length) {
                    const ae = w.value.findIndex((se)=>b.value.some((pe)=>se.value === pe.value));
                    Yt && window.requestAnimationFrame(()=>{
                        ae >= 0 && u.value?.scrollToIndex(ae);
                    });
                }
            }), me(()=>t.items, (ae, se)=>{
                P.value || i.value && !se.length && ae.length && (P.value = !0);
            }), ie(()=>{
                const ae = !!(!t.hideNoData || w.value.length || a["prepend-item"] || a["append-item"] || a["no-data"]), se = b.value.length > 0, pe = ya.filterProps(t);
                return y(ya, Z({
                    ref: n
                }, pe, {
                    modelValue: v.value,
                    "onUpdate:modelValue": [
                        (ke)=>v.value = ke,
                        le
                    ],
                    focused: i.value,
                    "onUpdate:focused": (ke)=>i.value = ke,
                    validationValue: b.externalValue,
                    counterValue: k.value,
                    dirty: se,
                    onChange: q,
                    class: [
                        "v-autocomplete",
                        `v-autocomplete--${t.multiple ? "multiple" : "single"}`,
                        {
                            "v-autocomplete--active-menu": P.value,
                            "v-autocomplete--chips": !!t.chips,
                            "v-autocomplete--selection-slot": !!D.value,
                            "v-autocomplete--selecting-index": c.value > -1
                        },
                        t.class
                    ],
                    style: t.style,
                    readonly: S.isReadonly.value,
                    placeholder: se ? void 0 : t.placeholder,
                    "onClick:clear": N,
                    "onMousedown:control": H,
                    onKeydown: G
                }), {
                    ...a,
                    default: ()=>y(Ce, null, [
                            y(Jr, Z({
                                ref: l,
                                modelValue: P.value,
                                "onUpdate:modelValue": (ke)=>P.value = ke,
                                activator: "parent",
                                contentClass: "v-autocomplete__content",
                                disabled: E.value,
                                eager: t.eager,
                                maxHeight: 310,
                                openOnClick: !1,
                                closeOnContentClick: !1,
                                transition: t.transition,
                                onAfterEnter: X,
                                onAfterLeave: ue
                            }, t.menuProps), {
                                default: ()=>[
                                        ae && y(Qn, Z({
                                            ref: R,
                                            selected: _.value,
                                            selectStrategy: t.multiple ? "independent" : "single-independent",
                                            onMousedown: (ke)=>ke.preventDefault(),
                                            onKeydown: L,
                                            onFocusin: J,
                                            onFocusout: U,
                                            tabindex: "-1",
                                            "aria-live": "polite",
                                            color: t.itemColor ?? t.color
                                        }, z, t.listProps), {
                                            default: ()=>[
                                                    a["prepend-item"]?.(),
                                                    !w.value.length && !t.hideNoData && (a["no-data"]?.() ?? y(tt, {
                                                        key: "no-data",
                                                        title: r(t.noDataText)
                                                    }, null)),
                                                    y(Ll, {
                                                        ref: u,
                                                        renderless: !0,
                                                        items: w.value,
                                                        itemKey: "value"
                                                    }, {
                                                        default: (ke)=>{
                                                            let { item: be, index: ne, itemRef: ge } = ke;
                                                            const Ve = Z(be.props, {
                                                                ref: ge,
                                                                key: be.value,
                                                                active: A.value && ne === 0 ? !0 : void 0,
                                                                onClick: ()=>ee(be, null)
                                                            });
                                                            return a.item?.({
                                                                item: be,
                                                                index: ne,
                                                                props: Ve
                                                            }) ?? y(tt, Z(Ve, {
                                                                role: "option"
                                                            }), {
                                                                prepend: ($e)=>{
                                                                    let { isSelected: lt } = $e;
                                                                    return y(Ce, null, [
                                                                        t.multiple && !t.hideSelected ? y(Pr, {
                                                                            key: be.value,
                                                                            modelValue: lt,
                                                                            ripple: !1,
                                                                            tabindex: "-1"
                                                                        }, null) : void 0,
                                                                        be.props.prependAvatar && y(ir, {
                                                                            image: be.props.prependAvatar
                                                                        }, null),
                                                                        be.props.prependIcon && y(_e, {
                                                                            icon: be.props.prependIcon
                                                                        }, null)
                                                                    ]);
                                                                },
                                                                title: ()=>o.value ? be.title : z0("v-autocomplete", be.title, C(be)?.title)
                                                            });
                                                        }
                                                    }),
                                                    a["append-item"]?.()
                                                ]
                                        })
                                    ]
                            }),
                            b.value.map((ke, be)=>{
                                function ne(lt) {
                                    lt.stopPropagation(), lt.preventDefault(), ee(ke, !1);
                                }
                                const ge = {
                                    "onClick:close": ne,
                                    onKeydown (lt) {
                                        lt.key !== "Enter" && lt.key !== " " || (lt.preventDefault(), lt.stopPropagation(), ne(lt));
                                    },
                                    onMousedown (lt) {
                                        lt.preventDefault(), lt.stopPropagation();
                                    },
                                    modelValue: !0,
                                    "onUpdate:modelValue": void 0
                                }, Ve = F.value ? !!a.chip : !!a.selection, $e = Ve ? ym(F.value ? a.chip({
                                    item: ke,
                                    index: be,
                                    props: ge
                                }) : a.selection({
                                    item: ke,
                                    index: be
                                })) : void 0;
                                if (!(Ve && !$e)) return y("div", {
                                    key: ke.value,
                                    class: [
                                        "v-autocomplete__selection",
                                        be === c.value && [
                                            "v-autocomplete__selection--selected",
                                            p.value
                                        ]
                                    ],
                                    style: be === c.value ? g.value : {}
                                }, [
                                    F.value ? a.chip ? y(Ge, {
                                        key: "chip-defaults",
                                        defaults: {
                                            VChip: {
                                                closable: t.closableChips,
                                                size: "small",
                                                text: ke.title
                                            }
                                        }
                                    }, {
                                        default: ()=>[
                                                $e
                                            ]
                                    }) : y(oa, Z({
                                        key: "chip",
                                        closable: t.closableChips,
                                        size: "small",
                                        text: ke.title,
                                        disabled: ke.props.disabled
                                    }, ge), null) : $e ?? y("span", {
                                        class: "v-autocomplete__selection-text"
                                    }, [
                                        ke.title,
                                        t.multiple && be < b.value.length - 1 && y("span", {
                                            class: "v-autocomplete__selection-comma"
                                        }, [
                                            Pe(",")
                                        ])
                                    ])
                                ]);
                            })
                        ]),
                    "append-inner": function() {
                        for(var ke = arguments.length, be = new Array(ke), ne = 0; ne < ke; ne++)be[ne] = arguments[ne];
                        return y(Ce, null, [
                            a["append-inner"]?.(...be),
                            t.menuIcon ? y(_e, {
                                class: "v-autocomplete__menu-icon",
                                color: n.value?.fieldIconColor,
                                icon: t.menuIcon,
                                onMousedown: I,
                                onClick: Gy,
                                "aria-label": r(M.value),
                                title: r(M.value),
                                tabindex: "-1"
                            }, null) : void 0
                        ]);
                    }
                });
            }), Za({
                isFocused: i,
                isPristine: o,
                menu: P,
                search: v,
                filteredItems: x,
                select: ee
            }, n);
        }
    });
    B4 = $({
        bordered: Boolean,
        color: String,
        content: [
            Number,
            String
        ],
        dot: Boolean,
        floating: Boolean,
        icon: Me,
        inline: Boolean,
        label: {
            type: String,
            default: "$vuetify.badge"
        },
        max: [
            Number,
            String
        ],
        modelValue: {
            type: Boolean,
            default: !0
        },
        offsetX: [
            Number,
            String
        ],
        offsetY: [
            Number,
            String
        ],
        textColor: String,
        ...we(),
        ...zr({
            location: "top end"
        }),
        ...Ct(),
        ...We(),
        ...Qe(),
        ...fr({
            transition: "scale-rotate-transition"
        })
    }, "VBadge");
    M4 = te()({
        name: "VBadge",
        inheritAttrs: !1,
        props: B4(),
        setup (t, e) {
            const { backgroundColorClasses: a, backgroundColorStyles: r } = ft(K(t, "color")), { roundedClasses: n } = Mt(t), { t: i } = zt(), { textColorClasses: o, textColorStyles: s } = ha(K(t, "textColor")), { themeClasses: l } = _o(), { locationStyles: u } = ti(t, !0, (c)=>(t.floating ? t.dot ? 2 : 4 : t.dot ? 8 : 12) + ([
                    "top",
                    "bottom"
                ].includes(c) ? Number(t.offsetY ?? 0) : [
                    "left",
                    "right"
                ].includes(c) ? Number(t.offsetX ?? 0) : 0));
            return ie(()=>{
                const c = Number(t.content), d = !t.max || isNaN(c) ? t.content : c <= Number(t.max) ? c : `${t.max}+`, [h, m] = sw(e.attrs, [
                    "aria-atomic",
                    "aria-label",
                    "aria-live",
                    "role",
                    "title"
                ]);
                return y(t.tag, Z({
                    class: [
                        "v-badge",
                        {
                            "v-badge--bordered": t.bordered,
                            "v-badge--dot": t.dot,
                            "v-badge--floating": t.floating,
                            "v-badge--inline": t.inline
                        },
                        t.class
                    ]
                }, m, {
                    style: t.style
                }), {
                    default: ()=>[
                            y("div", {
                                class: "v-badge__wrapper"
                            }, [
                                e.slots.default?.(),
                                y(ba, {
                                    transition: t.transition
                                }, {
                                    default: ()=>[
                                            mt(y("span", Z({
                                                class: [
                                                    "v-badge__badge",
                                                    l.value,
                                                    a.value,
                                                    n.value,
                                                    o.value
                                                ],
                                                style: [
                                                    r.value,
                                                    s.value,
                                                    t.inline ? {} : u.value
                                                ],
                                                "aria-atomic": "true",
                                                "aria-label": i(t.label, c),
                                                "aria-live": "polite",
                                                role: "status"
                                            }, h), [
                                                t.dot ? void 0 : e.slots.badge ? e.slots.badge?.() : t.icon ? y(_e, {
                                                    icon: t.icon
                                                }, null) : d
                                            ]), [
                                                [
                                                    Ca,
                                                    t.modelValue
                                                ]
                                            ])
                                        ]
                                })
                            ])
                        ]
                });
            }), {};
        }
    });
    R4 = $({
        color: String,
        density: String,
        ...we()
    }, "VBannerActions");
    dk = te()({
        name: "VBannerActions",
        props: R4(),
        setup (t, e) {
            let { slots: a } = e;
            return Bt({
                VBtn: {
                    color: t.color,
                    density: t.density,
                    slim: !0,
                    variant: "text"
                }
            }), ie(()=>y("div", {
                    class: [
                        "v-banner-actions",
                        t.class
                    ],
                    style: t.style
                }, [
                    a.default?.()
                ])), {};
        }
    });
    hk = br("v-banner-text");
    L4 = $({
        avatar: String,
        bgColor: String,
        color: String,
        icon: Me,
        lines: String,
        stacked: Boolean,
        sticky: Boolean,
        text: String,
        ...Na(),
        ...we(),
        ...ta(),
        ...Ut(),
        ...Vn({
            mobile: null
        }),
        ...Jt(),
        ...zr(),
        ...zi(),
        ...Ct(),
        ...We(),
        ...Qe()
    }, "VBanner");
    I4 = te()({
        name: "VBanner",
        props: L4(),
        setup (t, e) {
            let { slots: a } = e;
            const { backgroundColorClasses: r, backgroundColorStyles: n } = ft(t, "bgColor"), { borderClasses: i } = Xa(t), { densityClasses: o } = xa(t), { displayClasses: s, mobile: l } = Ia(t), { dimensionStyles: u } = jt(t), { elevationClasses: c } = na(t), { locationStyles: d } = ti(t), { positionClasses: h } = Ni(t), { roundedClasses: m } = Mt(t), { themeClasses: f } = ut(t), p = K(t, "color"), g = K(t, "density");
            Bt({
                VBannerActions: {
                    color: p,
                    density: g
                }
            }), ie(()=>{
                const v = !!(t.text || a.text), b = !!(t.avatar || t.icon), k = !!(b || a.prepend);
                return y(t.tag, {
                    class: [
                        "v-banner",
                        {
                            "v-banner--stacked": t.stacked || l.value,
                            "v-banner--sticky": t.sticky,
                            [`v-banner--${t.lines}-line`]: !!t.lines
                        },
                        f.value,
                        r.value,
                        i.value,
                        o.value,
                        s.value,
                        c.value,
                        h.value,
                        m.value,
                        t.class
                    ],
                    style: [
                        n.value,
                        u.value,
                        d.value,
                        t.style
                    ],
                    role: "banner"
                }, {
                    default: ()=>[
                            k && y("div", {
                                key: "prepend",
                                class: "v-banner__prepend"
                            }, [
                                a.prepend ? y(Ge, {
                                    key: "prepend-defaults",
                                    disabled: !b,
                                    defaults: {
                                        VAvatar: {
                                            color: p.value,
                                            density: g.value,
                                            icon: t.icon,
                                            image: t.avatar
                                        }
                                    }
                                }, a.prepend) : y(ir, {
                                    key: "prepend-avatar",
                                    color: p.value,
                                    density: g.value,
                                    icon: t.icon,
                                    image: t.avatar
                                }, null)
                            ]),
                            y("div", {
                                class: "v-banner__content"
                            }, [
                                v && y(hk, {
                                    key: "text"
                                }, {
                                    default: ()=>[
                                            a.text?.() ?? t.text
                                        ]
                                }),
                                a.default?.()
                            ]),
                            a.actions && y(dk, {
                                key: "actions"
                            }, a.actions)
                        ]
                });
            });
        }
    });
    z4 = $({
        inset: Boolean,
        ...a1({
            transition: "bottom-sheet-transition"
        })
    }, "VBottomSheet");
    N4 = te()({
        name: "VBottomSheet",
        props: z4(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue");
            return ie(()=>{
                const n = Pn.filterProps(t);
                return y(Pn, Z(n, {
                    contentClass: [
                        "v-bottom-sheet__content",
                        t.contentClass
                    ],
                    modelValue: r.value,
                    "onUpdate:modelValue": (i)=>r.value = i,
                    class: [
                        "v-bottom-sheet",
                        {
                            "v-bottom-sheet--inset": t.inset
                        },
                        t.class
                    ],
                    style: t.style
                }), a);
            }), {};
        }
    });
    O4 = $({
        divider: [
            Number,
            String
        ],
        ...we()
    }, "VBreadcrumbsDivider");
    mk = te()({
        name: "VBreadcrumbsDivider",
        props: O4(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>y("li", {
                    "aria-hidden": "true",
                    class: [
                        "v-breadcrumbs-divider",
                        t.class
                    ],
                    style: t.style
                }, [
                    a?.default?.() ?? t.divider
                ])), {};
        }
    });
    H4 = $({
        active: Boolean,
        activeClass: String,
        activeColor: String,
        color: String,
        disabled: Boolean,
        title: String,
        ...we(),
        ...Go(),
        ...We({
            tag: "li"
        })
    }, "VBreadcrumbsItem");
    fk = te()({
        name: "VBreadcrumbsItem",
        props: H4(),
        setup (t, e) {
            let { slots: a, attrs: r } = e;
            const n = Wo(t, r), i = T(()=>t.active || n.isActive?.value), o = T(()=>i.value ? t.activeColor : t.color), { textColorClasses: s, textColorStyles: l } = ha(o);
            return ie(()=>y(t.tag, {
                    class: [
                        "v-breadcrumbs-item",
                        {
                            "v-breadcrumbs-item--active": i.value,
                            "v-breadcrumbs-item--disabled": t.disabled,
                            [`${t.activeClass}`]: i.value && t.activeClass
                        },
                        s.value,
                        t.class
                    ],
                    style: [
                        l.value,
                        t.style
                    ],
                    "aria-current": i.value ? "page" : void 0
                }, {
                    default: ()=>[
                            n.isLink.value ? y("a", Z({
                                class: "v-breadcrumbs-item--link",
                                onClick: n.navigate
                            }, n.linkProps), [
                                a.default?.() ?? t.title
                            ]) : a.default?.() ?? t.title
                        ]
                })), {};
        }
    });
    V4 = $({
        activeClass: String,
        activeColor: String,
        bgColor: String,
        color: String,
        disabled: Boolean,
        divider: {
            type: String,
            default: "/"
        },
        icon: Me,
        items: {
            type: Array,
            default: ()=>[]
        },
        ...we(),
        ...ta(),
        ...Ct(),
        ...We({
            tag: "ul"
        })
    }, "VBreadcrumbs");
    W4 = te()({
        name: "VBreadcrumbs",
        props: V4(),
        setup (t, e) {
            let { slots: a } = e;
            const { backgroundColorClasses: r, backgroundColorStyles: n } = ft(K(t, "bgColor")), { densityClasses: i } = xa(t), { roundedClasses: o } = Mt(t);
            Bt({
                VBreadcrumbsDivider: {
                    divider: K(t, "divider")
                },
                VBreadcrumbsItem: {
                    activeClass: K(t, "activeClass"),
                    activeColor: K(t, "activeColor"),
                    color: K(t, "color"),
                    disabled: K(t, "disabled")
                }
            });
            const s = T(()=>t.items.map((l)=>typeof l == "string" ? {
                        item: {
                            title: l
                        },
                        raw: l
                    } : {
                        item: l,
                        raw: l
                    }));
            return ie(()=>{
                const l = !!(a.prepend || t.icon);
                return y(t.tag, {
                    class: [
                        "v-breadcrumbs",
                        r.value,
                        i.value,
                        o.value,
                        t.class
                    ],
                    style: [
                        n.value,
                        t.style
                    ]
                }, {
                    default: ()=>[
                            l && y("li", {
                                key: "prepend",
                                class: "v-breadcrumbs__prepend"
                            }, [
                                a.prepend ? y(Ge, {
                                    key: "prepend-defaults",
                                    disabled: !t.icon,
                                    defaults: {
                                        VIcon: {
                                            icon: t.icon,
                                            start: !0
                                        }
                                    }
                                }, a.prepend) : y(_e, {
                                    key: "prepend-icon",
                                    start: !0,
                                    icon: t.icon
                                }, null)
                            ]),
                            s.value.map((u, c, d)=>{
                                let { item: h, raw: m } = u;
                                return y(Ce, null, [
                                    a.item?.({
                                        item: h,
                                        index: c
                                    }) ?? y(fk, Z({
                                        key: c,
                                        disabled: c >= d.length - 1
                                    }, typeof h == "string" ? {
                                        title: h
                                    } : h), {
                                        default: a.title ? ()=>a.title?.({
                                                item: h,
                                                index: c
                                            }) : void 0
                                    }),
                                    c < d.length - 1 && y(mk, null, {
                                        default: a.divider ? ()=>a.divider?.({
                                                item: m,
                                                index: c
                                            }) : void 0
                                    })
                                ]);
                            }),
                            a.default?.()
                        ]
                });
            }), {};
        }
    });
    pk = Symbol.for("vuetify:v-window");
    gk = Symbol.for("vuetify:v-window-group");
    Vl = $({
        continuous: Boolean,
        nextIcon: {
            type: [
                Boolean,
                String,
                Function,
                Object
            ],
            default: "$next"
        },
        prevIcon: {
            type: [
                Boolean,
                String,
                Function,
                Object
            ],
            default: "$prev"
        },
        reverse: Boolean,
        showArrows: {
            type: [
                Boolean,
                String
            ],
            validator: (t)=>typeof t == "boolean" || t === "hover"
        },
        touch: {
            type: [
                Object,
                Boolean
            ],
            default: void 0
        },
        direction: {
            type: String,
            default: "horizontal"
        },
        modelValue: null,
        disabled: Boolean,
        selectedClass: {
            type: String,
            default: "v-window-item--active"
        },
        mandatory: {
            type: [
                Boolean,
                String
            ],
            default: "force"
        },
        ...we(),
        ...We(),
        ...Qe()
    }, "VWindow");
    Rn = te()({
        name: "VWindow",
        directives: {
            Touch: Nl
        },
        props: Vl(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t), { isRtl: n } = Xt(), { t: i } = zt(), o = ln(t, gk), s = W(), l = T(()=>n.value ? !t.reverse : t.reverse), u = de(!1), c = T(()=>{
                const S = t.direction === "vertical" ? "y" : "x", C = (l.value ? !u.value : u.value) ? "-reverse" : "";
                return `v-window-${S}${C}-transition`;
            }), d = de(0), h = W(void 0), m = T(()=>o.items.value.findIndex((S)=>o.selected.value.includes(S.id)));
            me(m, (S, x)=>{
                const C = o.items.value.length, w = C - 1;
                C <= 2 ? u.value = S < x : S === w && x === 0 ? u.value = !0 : S === 0 && x === w ? u.value = !1 : u.value = S < x;
            }), Kt(pk, {
                transition: c,
                isReversed: u,
                transitionCount: d,
                transitionHeight: h,
                rootRef: s
            });
            const f = T(()=>t.continuous || m.value !== 0), p = T(()=>t.continuous || m.value !== o.items.value.length - 1);
            function g() {
                f.value && o.prev();
            }
            function v() {
                p.value && o.next();
            }
            const b = T(()=>{
                const S = [], x = {
                    icon: n.value ? t.nextIcon : t.prevIcon,
                    class: `v-window__${l.value ? "right" : "left"}`,
                    onClick: o.prev,
                    "aria-label": i("$vuetify.carousel.prev")
                };
                S.push(f.value ? a.prev ? a.prev({
                    props: x
                }) : y(Re, x, null) : y("div", null, null));
                const C = {
                    icon: n.value ? t.prevIcon : t.nextIcon,
                    class: `v-window__${l.value ? "left" : "right"}`,
                    onClick: o.next,
                    "aria-label": i("$vuetify.carousel.next")
                };
                return S.push(p.value ? a.next ? a.next({
                    props: C
                }) : y(Re, C, null) : y("div", null, null)), S;
            }), k = T(()=>t.touch === !1 ? t.touch : {
                    ...{
                        left: ()=>{
                            l.value ? g() : v();
                        },
                        right: ()=>{
                            l.value ? v() : g();
                        },
                        start: (x)=>{
                            let { originalEvent: C } = x;
                            C.stopPropagation();
                        }
                    },
                    ...t.touch === !0 ? {} : t.touch
                });
            return ie(()=>mt(y(t.tag, {
                    ref: s,
                    class: [
                        "v-window",
                        {
                            "v-window--show-arrows-on-hover": t.showArrows === "hover"
                        },
                        r.value,
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            y("div", {
                                class: "v-window__container",
                                style: {
                                    height: h.value
                                }
                            }, [
                                a.default?.({
                                    group: o
                                }),
                                t.showArrows !== !1 && y("div", {
                                    class: "v-window__controls"
                                }, [
                                    b.value
                                ])
                            ]),
                            a.additional?.({
                                group: o
                            })
                        ]
                }), [
                    [
                        qa("touch"),
                        k.value
                    ]
                ])), {
                group: o
            };
        }
    });
    G4 = $({
        color: String,
        cycle: Boolean,
        delimiterIcon: {
            type: Me,
            default: "$delimiter"
        },
        height: {
            type: [
                Number,
                String
            ],
            default: 500
        },
        hideDelimiters: Boolean,
        hideDelimiterBackground: Boolean,
        interval: {
            type: [
                Number,
                String
            ],
            default: 6e3,
            validator: (t)=>Number(t) > 0
        },
        progress: [
            Boolean,
            String
        ],
        verticalDelimiters: [
            Boolean,
            String
        ],
        ...Vl({
            continuous: !0,
            mandatory: "force",
            showArrows: !0
        })
    }, "VCarousel");
    $4 = te()({
        name: "VCarousel",
        props: G4(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), { t: n } = zt(), i = W();
            let o = -1;
            me(r, l), me(()=>t.interval, l), me(()=>t.cycle, (u)=>{
                u ? l() : window.clearTimeout(o);
            }), ea(s);
            function s() {
                !t.cycle || !i.value || (o = window.setTimeout(i.value.group.next, Number(t.interval) > 0 ? Number(t.interval) : 6e3));
            }
            function l() {
                window.clearTimeout(o), window.requestAnimationFrame(s);
            }
            return ie(()=>{
                const u = Rn.filterProps(t);
                return y(Rn, Z({
                    ref: i
                }, u, {
                    modelValue: r.value,
                    "onUpdate:modelValue": (c)=>r.value = c,
                    class: [
                        "v-carousel",
                        {
                            "v-carousel--hide-delimiter-background": t.hideDelimiterBackground,
                            "v-carousel--vertical-delimiters": t.verticalDelimiters
                        },
                        t.class
                    ],
                    style: [
                        {
                            height: xe(t.height)
                        },
                        t.style
                    ]
                }), {
                    default: a.default,
                    additional: (c)=>{
                        let { group: d } = c;
                        return y(Ce, null, [
                            !t.hideDelimiters && y("div", {
                                class: "v-carousel__controls",
                                style: {
                                    left: t.verticalDelimiters === "left" && t.verticalDelimiters ? 0 : "auto",
                                    right: t.verticalDelimiters === "right" ? 0 : "auto"
                                }
                            }, [
                                d.items.value.length > 0 && y(Ge, {
                                    defaults: {
                                        VBtn: {
                                            color: t.color,
                                            icon: t.delimiterIcon,
                                            size: "x-small",
                                            variant: "text"
                                        }
                                    },
                                    scoped: !0
                                }, {
                                    default: ()=>[
                                            d.items.value.map((h, m)=>{
                                                const f = {
                                                    id: `carousel-item-${h.id}`,
                                                    "aria-label": n("$vuetify.carousel.ariaLabel.delimiter", m + 1, d.items.value.length),
                                                    class: [
                                                        "v-carousel__controls__item",
                                                        d.isSelected(h.id) && "v-btn--active"
                                                    ],
                                                    onClick: ()=>d.select(h.id, !0)
                                                };
                                                return a.item ? a.item({
                                                    props: f,
                                                    item: h
                                                }) : y(Re, Z(h, f), null);
                                            })
                                        ]
                                })
                            ]),
                            t.progress && y(Ml, {
                                class: "v-carousel__progress",
                                color: typeof t.progress == "string" ? t.progress : void 0,
                                modelValue: (d.getItemIndex(r.value) + 1) / d.items.value.length * 100
                            }, null)
                        ]);
                    },
                    prev: a.prev,
                    next: a.next
                });
            }), {};
        }
    });
    Wl = $({
        reverseTransition: {
            type: [
                Boolean,
                String
            ],
            default: void 0
        },
        transition: {
            type: [
                Boolean,
                String
            ],
            default: void 0
        },
        ...we(),
        ...Xn(),
        ...Zm()
    }, "VWindowItem");
    Ln = te()({
        name: "VWindowItem",
        directives: {
            Touch: Nl
        },
        props: Wl(),
        emits: {
            "group:selected": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Et(pk), n = Jn(t, gk), { isBooted: i } = Zn();
            if (!r || !n) throw new Error("[Vuetify] VWindowItem must be used inside VWindow");
            const o = de(!1), s = T(()=>i.value && (r.isReversed.value ? t.reverseTransition !== !1 : t.transition !== !1));
            function l() {
                !o.value || !r || (o.value = !1, r.transitionCount.value > 0 && (r.transitionCount.value -= 1, r.transitionCount.value === 0 && (r.transitionHeight.value = void 0)));
            }
            function u() {
                o.value || !r || (o.value = !0, r.transitionCount.value === 0 && (r.transitionHeight.value = xe(r.rootRef.value?.clientHeight)), r.transitionCount.value += 1);
            }
            function c() {
                l();
            }
            function d(f) {
                o.value && at(()=>{
                    !s.value || !o.value || !r || (r.transitionHeight.value = xe(f.clientHeight));
                });
            }
            const h = T(()=>{
                const f = r.isReversed.value ? t.reverseTransition : t.transition;
                return s.value ? {
                    name: typeof f != "string" ? r.transition.value : f,
                    onBeforeEnter: u,
                    onAfterEnter: l,
                    onEnterCancelled: c,
                    onBeforeLeave: u,
                    onAfterLeave: l,
                    onLeaveCancelled: c,
                    onEnter: d
                } : !1;
            }), { hasContent: m } = Qm(t, n.isSelected);
            return ie(()=>y(ba, {
                    transition: h.value,
                    disabled: !i.value
                }, {
                    default: ()=>[
                            mt(y("div", {
                                class: [
                                    "v-window-item",
                                    n.selectedClass.value,
                                    t.class
                                ],
                                style: t.style
                            }, [
                                m.value && a.default?.()
                            ]), [
                                [
                                    Ca,
                                    n.isSelected.value
                                ]
                            ])
                        ]
                })), {
                groupItem: n
            };
        }
    });
    U4 = $({
        ...NF(),
        ...Wl()
    }, "VCarouselItem");
    j4 = te()({
        name: "VCarouselItem",
        inheritAttrs: !1,
        props: U4(),
        setup (t, e) {
            let { slots: a, attrs: r } = e;
            ie(()=>{
                const n = _r.filterProps(t), i = Ln.filterProps(t);
                return y(Ln, Z({
                    class: [
                        "v-carousel-item",
                        t.class
                    ]
                }, i), {
                    default: ()=>[
                            y(_r, Z(r, n), a)
                        ]
                });
            });
        }
    });
    Y4 = br("v-code", "code");
    q4 = $({
        color: {
            type: Object
        },
        disabled: Boolean,
        dotSize: {
            type: [
                Number,
                String
            ],
            default: 10
        },
        height: {
            type: [
                Number,
                String
            ],
            default: 150
        },
        width: {
            type: [
                Number,
                String
            ],
            default: 300
        },
        ...we()
    }, "VColorPickerCanvas");
    K4 = rn({
        name: "VColorPickerCanvas",
        props: q4(),
        emits: {
            "update:color": (t)=>!0,
            "update:position": (t)=>!0
        },
        setup (t, e) {
            let { emit: a } = e;
            const r = de(!1), n = W(), i = de(parseFloat(t.width)), o = de(parseFloat(t.height)), s = W({
                x: 0,
                y: 0
            }), l = T({
                get: ()=>s.value,
                set (g) {
                    if (!n.value) return;
                    const { x: v, y: b } = g;
                    s.value = g, a("update:color", {
                        h: t.color?.h ?? 0,
                        s: Rt(v, 0, i.value) / i.value,
                        v: 1 - Rt(b, 0, o.value) / o.value,
                        a: t.color?.a ?? 1
                    });
                }
            }), u = T(()=>{
                const { x: g, y: v } = l.value, b = parseInt(t.dotSize, 10) / 2;
                return {
                    width: xe(t.dotSize),
                    height: xe(t.dotSize),
                    transform: `translate(${xe(g - b)}, ${xe(v - b)})`
                };
            }), { resizeRef: c } = vr((g)=>{
                if (!c.el?.offsetParent) return;
                const { width: v, height: b } = g[0].contentRect;
                i.value = v, o.value = b;
            });
            function d(g, v, b) {
                const { left: k, top: S, width: x, height: C } = b;
                l.value = {
                    x: Rt(g - k, 0, x),
                    y: Rt(v - S, 0, C)
                };
            }
            function h(g) {
                g.type === "mousedown" && g.preventDefault(), !t.disabled && (m(g), window.addEventListener("mousemove", m), window.addEventListener("mouseup", f), window.addEventListener("touchmove", m), window.addEventListener("touchend", f));
            }
            function m(g) {
                if (t.disabled || !n.value) return;
                r.value = !0;
                const v = lw(g);
                d(v.clientX, v.clientY, n.value.getBoundingClientRect());
            }
            function f() {
                window.removeEventListener("mousemove", m), window.removeEventListener("mouseup", f), window.removeEventListener("touchmove", m), window.removeEventListener("touchend", f);
            }
            function p() {
                if (!n.value) return;
                const g = n.value, v = g.getContext("2d");
                if (!v) return;
                const b = v.createLinearGradient(0, 0, g.width, 0);
                b.addColorStop(0, "hsla(0, 0%, 100%, 1)"), b.addColorStop(1, `hsla(${t.color?.h ?? 0}, 100%, 50%, 1)`), v.fillStyle = b, v.fillRect(0, 0, g.width, g.height);
                const k = v.createLinearGradient(0, 0, 0, g.height);
                k.addColorStop(0, "hsla(0, 0%, 0%, 0)"), k.addColorStop(1, "hsla(0, 0%, 0%, 1)"), v.fillStyle = k, v.fillRect(0, 0, g.width, g.height);
            }
            return me(()=>t.color?.h, p, {
                immediate: !0
            }), me(()=>[
                    i.value,
                    o.value
                ], (g, v)=>{
                p(), s.value = {
                    x: l.value.x * g[0] / v[0],
                    y: l.value.y * g[1] / v[1]
                };
            }, {
                flush: "post"
            }), me(()=>t.color, ()=>{
                if (r.value) {
                    r.value = !1;
                    return;
                }
                s.value = t.color ? {
                    x: t.color.s * i.value,
                    y: (1 - t.color.v) * o.value
                } : {
                    x: 0,
                    y: 0
                };
            }, {
                deep: !0,
                immediate: !0
            }), ea(()=>p()), ie(()=>y("div", {
                    ref: c,
                    class: [
                        "v-color-picker-canvas",
                        t.class
                    ],
                    style: t.style,
                    onMousedown: h,
                    onTouchstartPassive: h
                }, [
                    y("canvas", {
                        ref: n,
                        width: i.value,
                        height: o.value
                    }, null),
                    t.color && y("div", {
                        class: [
                            "v-color-picker-canvas__dot",
                            {
                                "v-color-picker-canvas__dot--disabled": t.disabled
                            }
                        ],
                        style: u.value
                    }, null)
                ])), {};
        }
    });
    function X4(t, e) {
        if (e) {
            const { a, ...r } = t;
            return r;
        }
        return t;
    }
    function J4(t, e) {
        if (e == null || typeof e == "string") {
            const a = t.a !== 1;
            if (e?.startsWith("rgb(")) {
                const { r: n, g: i, b: o, a: s } = Xd(t);
                return `rgb(${n} ${i} ${o}` + (a ? ` / ${s})` : ")");
            } else if (e?.startsWith("hsl(")) {
                const { h: n, s: i, l: o, a: s } = Kd(t);
                return `hsl(${n} ${Math.round(i * 100)} ${Math.round(o * 100)}` + (a ? ` / ${s})` : ")");
            }
            const r = qy(t);
            return t.a === 1 ? r.slice(0, 7) : r;
        }
        if (typeof e == "object") {
            let a;
            return os(e, [
                "r",
                "g",
                "b"
            ]) ? a = Xd(t) : os(e, [
                "h",
                "s",
                "l"
            ]) ? a = Kd(t) : os(e, [
                "h",
                "s",
                "v"
            ]) && (a = t), X4(a, !os(e, [
                "a"
            ]) && t.a === 1);
        }
        return t;
    }
    const yi = {
        h: 0,
        s: 0,
        v: 0,
        a: 1
    }, Xh = {
        inputProps: {
            type: "number",
            min: 0
        },
        inputs: [
            {
                label: "R",
                max: 255,
                step: 1,
                getValue: (t)=>Math.round(t.r),
                getColor: (t, e)=>({
                        ...t,
                        r: Number(e)
                    })
            },
            {
                label: "G",
                max: 255,
                step: 1,
                getValue: (t)=>Math.round(t.g),
                getColor: (t, e)=>({
                        ...t,
                        g: Number(e)
                    })
            },
            {
                label: "B",
                max: 255,
                step: 1,
                getValue: (t)=>Math.round(t.b),
                getColor: (t, e)=>({
                        ...t,
                        b: Number(e)
                    })
            },
            {
                label: "A",
                max: 1,
                step: .01,
                getValue: (t)=>{
                    let { a: e } = t;
                    return e != null ? Math.round(e * 100) / 100 : 1;
                },
                getColor: (t, e)=>({
                        ...t,
                        a: Number(e)
                    })
            }
        ],
        to: Xd,
        from: dl
    }, Z4 = {
        ...Xh,
        inputs: Xh.inputs?.slice(0, 3)
    }, Jh = {
        inputProps: {
            type: "number",
            min: 0
        },
        inputs: [
            {
                label: "H",
                max: 360,
                step: 1,
                getValue: (t)=>Math.round(t.h),
                getColor: (t, e)=>({
                        ...t,
                        h: Number(e)
                    })
            },
            {
                label: "S",
                max: 1,
                step: .01,
                getValue: (t)=>Math.round(t.s * 100) / 100,
                getColor: (t, e)=>({
                        ...t,
                        s: Number(e)
                    })
            },
            {
                label: "L",
                max: 1,
                step: .01,
                getValue: (t)=>Math.round(t.l * 100) / 100,
                getColor: (t, e)=>({
                        ...t,
                        l: Number(e)
                    })
            },
            {
                label: "A",
                max: 1,
                step: .01,
                getValue: (t)=>{
                    let { a: e } = t;
                    return e != null ? Math.round(e * 100) / 100 : 1;
                },
                getColor: (t, e)=>({
                        ...t,
                        a: Number(e)
                    })
            }
        ],
        to: Kd,
        from: cw
    }, Q4 = {
        ...Jh,
        inputs: Jh.inputs.slice(0, 3)
    }, vk = {
        inputProps: {
            type: "text"
        },
        inputs: [
            {
                label: "HEXA",
                getValue: (t)=>t,
                getColor: (t, e)=>e
            }
        ],
        to: qy,
        from: uw
    }, e6 = {
        ...vk,
        inputs: [
            {
                label: "HEX",
                getValue: (t)=>t.slice(0, 7),
                getColor: (t, e)=>e
            }
        ]
    }, An = {
        rgb: Z4,
        rgba: Xh,
        hsl: Q4,
        hsla: Jh,
        hex: e6,
        hexa: vk
    }, t6 = (t)=>{
        let { label: e, ...a } = t;
        return y("div", {
            class: "v-color-picker-edit__input"
        }, [
            y("input", a, null),
            y("span", null, [
                e
            ])
        ]);
    }, a6 = $({
        color: Object,
        disabled: Boolean,
        mode: {
            type: String,
            default: "rgba",
            validator: (t)=>Object.keys(An).includes(t)
        },
        modes: {
            type: Array,
            default: ()=>Object.keys(An),
            validator: (t)=>Array.isArray(t) && t.every((e)=>Object.keys(An).includes(e))
        },
        ...we()
    }, "VColorPickerEdit"), r6 = rn({
        name: "VColorPickerEdit",
        props: a6(),
        emits: {
            "update:color": (t)=>!0,
            "update:mode": (t)=>!0
        },
        setup (t, e) {
            let { emit: a } = e;
            const r = T(()=>t.modes.map((i)=>({
                        ...An[i],
                        name: i
                    }))), n = T(()=>{
                const i = r.value.find((s)=>s.name === t.mode);
                if (!i) return [];
                const o = t.color ? i.to(t.color) : null;
                return i.inputs?.map((s)=>{
                    let { getValue: l, getColor: u, ...c } = s;
                    return {
                        ...i.inputProps,
                        ...c,
                        disabled: t.disabled,
                        value: o && l(o),
                        onChange: (d)=>{
                            const h = d.target;
                            h && a("update:color", i.from(u(o ?? i.to(yi), h.value)));
                        }
                    };
                });
            });
            return ie(()=>y("div", {
                    class: [
                        "v-color-picker-edit",
                        t.class
                    ],
                    style: t.style
                }, [
                    n.value?.map((i)=>y(t6, i, null)),
                    r.value.length > 1 && y(Re, {
                        icon: "$unfold",
                        size: "x-small",
                        variant: "plain",
                        onClick: ()=>{
                            const i = r.value.findIndex((o)=>o.name === t.mode);
                            a("update:mode", r.value[(i + 1) % r.value.length].name);
                        }
                    }, null)
                ])), {};
        }
    }), kf = Symbol.for("vuetify:v-slider");
    function Zh(t, e, a) {
        const r = a === "vertical", n = e.getBoundingClientRect(), i = "touches" in t ? t.touches[0] : t;
        return r ? i.clientY - (n.top + n.height / 2) : i.clientX - (n.left + n.width / 2);
    }
    function n6(t, e) {
        return "touches" in t && t.touches.length ? t.touches[0][e] : "changedTouches" in t && t.changedTouches.length ? t.changedTouches[0][e] : t[e];
    }
    const yk = $({
        disabled: {
            type: Boolean,
            default: null
        },
        error: Boolean,
        readonly: {
            type: Boolean,
            default: null
        },
        max: {
            type: [
                Number,
                String
            ],
            default: 100
        },
        min: {
            type: [
                Number,
                String
            ],
            default: 0
        },
        step: {
            type: [
                Number,
                String
            ],
            default: 0
        },
        thumbColor: String,
        thumbLabel: {
            type: [
                Boolean,
                String
            ],
            default: void 0,
            validator: (t)=>typeof t == "boolean" || t === "always"
        },
        thumbSize: {
            type: [
                Number,
                String
            ],
            default: 20
        },
        showTicks: {
            type: [
                Boolean,
                String
            ],
            default: !1,
            validator: (t)=>typeof t == "boolean" || t === "always"
        },
        ticks: {
            type: [
                Array,
                Object
            ]
        },
        tickSize: {
            type: [
                Number,
                String
            ],
            default: 2
        },
        color: String,
        trackColor: String,
        trackFillColor: String,
        trackSize: {
            type: [
                Number,
                String
            ],
            default: 4
        },
        direction: {
            type: String,
            default: "horizontal",
            validator: (t)=>[
                    "vertical",
                    "horizontal"
                ].includes(t)
        },
        reverse: Boolean,
        ...Ct(),
        ...Jt({
            elevation: 2
        }),
        ripple: {
            type: Boolean,
            default: !0
        }
    }, "Slider"), bk = (t)=>{
        const e = T(()=>parseFloat(t.min)), a = T(()=>parseFloat(t.max)), r = T(()=>Number(t.step) > 0 ? parseFloat(t.step) : 0), n = T(()=>Math.max(ep(r.value), ep(e.value)));
        function i(o) {
            if (o = parseFloat(o), r.value <= 0) return o;
            const s = Rt(o, e.value, a.value), l = e.value % r.value, u = Math.round((s - l) / r.value) * r.value + l;
            return parseFloat(Math.min(u, a.value).toFixed(n.value));
        }
        return {
            min: e,
            max: a,
            step: r,
            decimals: n,
            roundValue: i
        };
    }, Fk = (t)=>{
        let { props: e, steps: a, onSliderStart: r, onSliderMove: n, onSliderEnd: i, getActiveThumb: o } = t;
        const { isRtl: s } = Xt(), l = K(e, "reverse"), u = T(()=>e.direction === "vertical"), c = T(()=>u.value !== l.value), { min: d, max: h, step: m, decimals: f, roundValue: p } = a, g = T(()=>parseInt(e.thumbSize, 10)), v = T(()=>parseInt(e.tickSize, 10)), b = T(()=>parseInt(e.trackSize, 10)), k = T(()=>(h.value - d.value) / m.value), S = K(e, "disabled"), x = T(()=>e.error || e.disabled ? void 0 : e.thumbColor ?? e.color), C = T(()=>e.error || e.disabled ? void 0 : e.trackColor ?? e.color), w = T(()=>e.error || e.disabled ? void 0 : e.trackFillColor ?? e.color), F = de(!1), D = de(0), _ = W(), A = W();
        function E(J) {
            const U = _.value?.$el;
            if (!U) return;
            const le = e.direction === "vertical", fe = le ? "top" : "left", ee = le ? "height" : "width", ae = le ? "clientY" : "clientX", { [fe]: se, [ee]: pe } = U.getBoundingClientRect(), ke = n6(J, ae);
            let be = Math.min(Math.max((ke - se - D.value) / pe, 0), 1) || 0;
            return (le ? c.value : c.value !== s.value) && (be = 1 - be), p(d.value + be * (h.value - d.value));
        }
        const B = (J)=>{
            const U = E(J);
            U != null && i({
                value: U
            }), F.value = !1, D.value = 0;
        }, P = (J)=>{
            const U = E(J);
            A.value = o(J), A.value && (F.value = !0, A.value.contains(J.target) ? D.value = Zh(J, A.value, e.direction) : (D.value = 0, U != null && n({
                value: U
            })), U != null && r({
                value: U
            }), at(()=>A.value?.focus()));
        }, M = {
            passive: !0,
            capture: !0
        };
        function R(J) {
            const U = E(J);
            U != null && n({
                value: U
            });
        }
        function z(J) {
            J.stopPropagation(), J.preventDefault(), B(J), window.removeEventListener("mousemove", R, M), window.removeEventListener("mouseup", z);
        }
        function N(J) {
            B(J), window.removeEventListener("touchmove", R, M), J.target?.removeEventListener("touchend", N);
        }
        function H(J) {
            P(J), window.addEventListener("touchmove", R, M), J.target?.addEventListener("touchend", N, {
                passive: !1
            });
        }
        function I(J) {
            J.button === 0 && (J.preventDefault(), P(J), window.addEventListener("mousemove", R, M), window.addEventListener("mouseup", z, {
                passive: !1
            }));
        }
        const L = (J)=>{
            const U = (J - d.value) / (h.value - d.value) * 100;
            return Rt(isNaN(U) ? 0 : U, 0, 100);
        }, G = K(e, "showTicks"), q = T(()=>G.value ? e.ticks ? Array.isArray(e.ticks) ? e.ticks.map((J)=>({
                    value: J,
                    position: L(J),
                    label: J.toString()
                })) : Object.keys(e.ticks).map((J)=>({
                    value: parseFloat(J),
                    position: L(parseFloat(J)),
                    label: e.ticks[J]
                })) : k.value !== 1 / 0 ? $r(k.value + 1).map((J)=>{
                const U = d.value + J * m.value;
                return {
                    value: U,
                    position: L(U)
                };
            }) : [] : []), X = T(()=>q.value.some((J)=>{
                let { label: U } = J;
                return !!U;
            })), ue = {
            activeThumbRef: A,
            color: K(e, "color"),
            decimals: f,
            disabled: S,
            direction: K(e, "direction"),
            elevation: K(e, "elevation"),
            hasLabels: X,
            isReversed: l,
            indexFromEnd: c,
            min: d,
            max: h,
            mousePressed: F,
            numTicks: k,
            onSliderMousedown: I,
            onSliderTouchstart: H,
            parsedTicks: q,
            parseMouseMove: E,
            position: L,
            readonly: K(e, "readonly"),
            rounded: K(e, "rounded"),
            roundValue: p,
            showTicks: G,
            startOffset: D,
            step: m,
            thumbSize: g,
            thumbColor: x,
            thumbLabel: K(e, "thumbLabel"),
            ticks: K(e, "ticks"),
            tickSize: v,
            trackColor: C,
            trackContainerRef: _,
            trackFillColor: w,
            trackSize: b,
            vertical: u
        };
        return Kt(kf, ue), ue;
    }, i6 = $({
        focused: Boolean,
        max: {
            type: Number,
            required: !0
        },
        min: {
            type: Number,
            required: !0
        },
        modelValue: {
            type: Number,
            required: !0
        },
        position: {
            type: Number,
            required: !0
        },
        ripple: {
            type: [
                Boolean,
                Object
            ],
            default: !0
        },
        name: String,
        ...we()
    }, "VSliderThumb"), Qh = te()({
        name: "VSliderThumb",
        directives: {
            Ripple: Lr
        },
        props: i6(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a, emit: r } = e;
            const n = Et(kf), { isRtl: i, rtlClasses: o } = Xt();
            if (!n) throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");
            const { thumbColor: s, step: l, disabled: u, thumbSize: c, thumbLabel: d, direction: h, isReversed: m, vertical: f, readonly: p, elevation: g, mousePressed: v, decimals: b, indexFromEnd: k } = n, S = T(()=>u.value ? void 0 : g.value), { elevationClasses: x } = na(S), { textColorClasses: C, textColorStyles: w } = ha(s), { pageup: F, pagedown: D, end: _, home: A, left: E, right: B, down: P, up: M } = Jd, R = [
                F,
                D,
                _,
                A,
                E,
                B,
                P,
                M
            ], z = T(()=>l.value ? [
                    1,
                    2,
                    3
                ] : [
                    1,
                    5,
                    10
                ]);
            function N(I, L) {
                if (!R.includes(I.key)) return;
                I.preventDefault();
                const G = l.value || .1, q = (t.max - t.min) / G;
                if ([
                    E,
                    B,
                    P,
                    M
                ].includes(I.key)) {
                    const ue = (f.value ? [
                        i.value ? E : B,
                        m.value ? P : M
                    ] : k.value !== i.value ? [
                        E,
                        M
                    ] : [
                        B,
                        M
                    ]).includes(I.key) ? 1 : -1, J = I.shiftKey ? 2 : I.ctrlKey ? 1 : 0;
                    L = L + ue * G * z.value[J];
                } else if (I.key === A) L = t.min;
                else if (I.key === _) L = t.max;
                else {
                    const X = I.key === D ? 1 : -1;
                    L = L - X * G * (q > 100 ? q / 10 : 10);
                }
                return Math.max(t.min, Math.min(t.max, L));
            }
            function H(I) {
                const L = N(I, t.modelValue);
                L != null && r("update:modelValue", L);
            }
            return ie(()=>{
                const I = xe(k.value ? 100 - t.position : t.position, "%");
                return y("div", {
                    class: [
                        "v-slider-thumb",
                        {
                            "v-slider-thumb--focused": t.focused,
                            "v-slider-thumb--pressed": t.focused && v.value
                        },
                        t.class,
                        o.value
                    ],
                    style: [
                        {
                            "--v-slider-thumb-position": I,
                            "--v-slider-thumb-size": xe(c.value)
                        },
                        t.style
                    ],
                    role: "slider",
                    tabindex: u.value ? -1 : 0,
                    "aria-label": t.name,
                    "aria-valuemin": t.min,
                    "aria-valuemax": t.max,
                    "aria-valuenow": t.modelValue,
                    "aria-readonly": !!p.value,
                    "aria-orientation": h.value,
                    onKeydown: p.value ? void 0 : H
                }, [
                    y("div", {
                        class: [
                            "v-slider-thumb__surface",
                            C.value,
                            x.value
                        ],
                        style: {
                            ...w.value
                        }
                    }, null),
                    mt(y("div", {
                        class: [
                            "v-slider-thumb__ripple",
                            C.value
                        ],
                        style: w.value
                    }, null), [
                        [
                            qa("ripple"),
                            t.ripple,
                            null,
                            {
                                circle: !0,
                                center: !0
                            }
                        ]
                    ]),
                    y(go, {
                        origin: "bottom center"
                    }, {
                        default: ()=>[
                                mt(y("div", {
                                    class: "v-slider-thumb__label-container"
                                }, [
                                    y("div", {
                                        class: [
                                            "v-slider-thumb__label"
                                        ]
                                    }, [
                                        y("div", null, [
                                            a["thumb-label"]?.({
                                                modelValue: t.modelValue
                                            }) ?? t.modelValue.toFixed(l.value ? b.value : 1)
                                        ])
                                    ])
                                ]), [
                                    [
                                        Ca,
                                        d.value && t.focused || d.value === "always"
                                    ]
                                ])
                            ]
                    })
                ]);
            }), {};
        }
    }), o6 = $({
        start: {
            type: Number,
            required: !0
        },
        stop: {
            type: Number,
            required: !0
        },
        ...we()
    }, "VSliderTrack"), kk = te()({
        name: "VSliderTrack",
        props: o6(),
        emits: {},
        setup (t, e) {
            let { slots: a } = e;
            const r = Et(kf);
            if (!r) throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");
            const { color: n, parsedTicks: i, rounded: o, showTicks: s, tickSize: l, trackColor: u, trackFillColor: c, trackSize: d, vertical: h, min: m, max: f, indexFromEnd: p } = r, { roundedClasses: g } = Mt(o), { backgroundColorClasses: v, backgroundColorStyles: b } = ft(c), { backgroundColorClasses: k, backgroundColorStyles: S } = ft(u), x = T(()=>`inset-${h.value ? "block" : "inline"}-${p.value ? "end" : "start"}`), C = T(()=>h.value ? "height" : "width"), w = T(()=>({
                    [x.value]: "0%",
                    [C.value]: "100%"
                })), F = T(()=>t.stop - t.start), D = T(()=>({
                    [x.value]: xe(t.start, "%"),
                    [C.value]: xe(F.value, "%")
                })), _ = T(()=>s.value ? (h.value ? i.value.slice().reverse() : i.value).map((E, B)=>{
                    const P = E.value !== m.value && E.value !== f.value ? xe(E.position, "%") : void 0;
                    return y("div", {
                        key: E.value,
                        class: [
                            "v-slider-track__tick",
                            {
                                "v-slider-track__tick--filled": E.position >= t.start && E.position <= t.stop,
                                "v-slider-track__tick--first": E.value === m.value,
                                "v-slider-track__tick--last": E.value === f.value
                            }
                        ],
                        style: {
                            [x.value]: P
                        }
                    }, [
                        (E.label || a["tick-label"]) && y("div", {
                            class: "v-slider-track__tick-label"
                        }, [
                            a["tick-label"]?.({
                                tick: E,
                                index: B
                            }) ?? E.label
                        ])
                    ]);
                }) : []);
            return ie(()=>y("div", {
                    class: [
                        "v-slider-track",
                        g.value,
                        t.class
                    ],
                    style: [
                        {
                            "--v-slider-track-size": xe(d.value),
                            "--v-slider-tick-size": xe(l.value)
                        },
                        t.style
                    ]
                }, [
                    y("div", {
                        class: [
                            "v-slider-track__background",
                            k.value,
                            {
                                "v-slider-track__background--opacity": !!n.value || !c.value
                            }
                        ],
                        style: {
                            ...w.value,
                            ...S.value
                        }
                    }, null),
                    y("div", {
                        class: [
                            "v-slider-track__fill",
                            v.value
                        ],
                        style: {
                            ...D.value,
                            ...b.value
                        }
                    }, null),
                    s.value && y("div", {
                        class: [
                            "v-slider-track__ticks",
                            {
                                "v-slider-track__ticks--always-show": s.value === "always"
                            }
                        ]
                    }, [
                        _.value
                    ])
                ])), {};
        }
    }), s6 = $({
        ...Ho(),
        ...yk(),
        ...Ir(),
        modelValue: {
            type: [
                Number,
                String
            ],
            default: 0
        }
    }, "VSlider"), em = te()({
        name: "VSlider",
        props: s6(),
        emits: {
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0,
            start: (t)=>!0,
            end: (t)=>!0
        },
        setup (t, e) {
            let { slots: a, emit: r } = e;
            const n = W(), { rtlClasses: i } = Xt(), o = bk(t), s = Be(t, "modelValue", void 0, (C)=>o.roundValue(C ?? o.min.value)), { min: l, max: u, mousePressed: c, roundValue: d, onSliderMousedown: h, onSliderTouchstart: m, trackContainerRef: f, position: p, hasLabels: g, readonly: v } = Fk({
                props: t,
                steps: o,
                onSliderStart: ()=>{
                    r("start", s.value);
                },
                onSliderEnd: (C)=>{
                    let { value: w } = C;
                    const F = d(w);
                    s.value = F, r("end", F);
                },
                onSliderMove: (C)=>{
                    let { value: w } = C;
                    return s.value = d(w);
                },
                getActiveThumb: ()=>n.value?.$el
            }), { isFocused: b, focus: k, blur: S } = wr(t), x = T(()=>p(s.value));
            return ie(()=>{
                const C = ma.filterProps(t), w = !!(t.label || a.label || a.prepend);
                return y(ma, Z({
                    class: [
                        "v-slider",
                        {
                            "v-slider--has-labels": !!a["tick-label"] || g.value,
                            "v-slider--focused": b.value,
                            "v-slider--pressed": c.value,
                            "v-slider--disabled": t.disabled
                        },
                        i.value,
                        t.class
                    ],
                    style: t.style
                }, C, {
                    focused: b.value
                }), {
                    ...a,
                    prepend: w ? (F)=>y(Ce, null, [
                            a.label?.(F) ?? (t.label ? y(Ii, {
                                id: F.id.value,
                                class: "v-slider__label",
                                text: t.label
                            }, null) : void 0),
                            a.prepend?.(F)
                        ]) : void 0,
                    default: (F)=>{
                        let { id: D, messagesId: _ } = F;
                        return y("div", {
                            class: "v-slider__container",
                            onMousedown: v.value ? void 0 : h,
                            onTouchstartPassive: v.value ? void 0 : m
                        }, [
                            y("input", {
                                id: D.value,
                                name: t.name || D.value,
                                disabled: !!t.disabled,
                                readonly: !!t.readonly,
                                tabindex: "-1",
                                value: s.value
                            }, null),
                            y(kk, {
                                ref: f,
                                start: 0,
                                stop: x.value
                            }, {
                                "tick-label": a["tick-label"]
                            }),
                            y(Qh, {
                                ref: n,
                                "aria-describedby": _.value,
                                focused: b.value,
                                min: l.value,
                                max: u.value,
                                modelValue: s.value,
                                "onUpdate:modelValue": (A)=>s.value = A,
                                position: x.value,
                                elevation: t.elevation,
                                onFocus: k,
                                onBlur: S,
                                ripple: t.ripple,
                                name: t.name
                            }, {
                                "thumb-label": a["thumb-label"]
                            })
                        ]);
                    }
                });
            }), {};
        }
    }), l6 = $({
        color: {
            type: Object
        },
        disabled: Boolean,
        hideAlpha: Boolean,
        ...we()
    }, "VColorPickerPreview"), u6 = rn({
        name: "VColorPickerPreview",
        props: l6(),
        emits: {
            "update:color": (t)=>!0
        },
        setup (t, e) {
            let { emit: a } = e;
            const r = new AbortController;
            il(()=>r.abort());
            async function n() {
                if (!tp || t.disabled) return;
                const i = new window.EyeDropper;
                try {
                    const o = await i.open({
                        signal: r.signal
                    }), s = dl(ll(o.sRGBHex));
                    a("update:color", {
                        ...t.color ?? yi,
                        ...s
                    });
                } catch  {}
            }
            return ie(()=>y("div", {
                    class: [
                        "v-color-picker-preview",
                        {
                            "v-color-picker-preview--hide-alpha": t.hideAlpha
                        },
                        t.class
                    ],
                    style: t.style
                }, [
                    tp && y("div", {
                        class: "v-color-picker-preview__eye-dropper",
                        key: "eyeDropper"
                    }, [
                        y(Re, {
                            density: "comfortable",
                            disabled: t.disabled,
                            icon: "$eyeDropper",
                            variant: "plain",
                            onClick: n
                        }, null)
                    ]),
                    y("div", {
                        class: "v-color-picker-preview__dot"
                    }, [
                        y("div", {
                            style: {
                                background: Ky(t.color ?? yi)
                            }
                        }, null)
                    ]),
                    y("div", {
                        class: "v-color-picker-preview__sliders"
                    }, [
                        y(em, {
                            class: "v-color-picker-preview__track v-color-picker-preview__hue",
                            modelValue: t.color?.h,
                            "onUpdate:modelValue": (i)=>a("update:color", {
                                    ...t.color ?? yi,
                                    h: i
                                }),
                            step: 0,
                            min: 0,
                            max: 360,
                            disabled: t.disabled,
                            thumbSize: 14,
                            trackSize: 8,
                            trackFillColor: "white",
                            hideDetails: !0
                        }, null),
                        !t.hideAlpha && y(em, {
                            class: "v-color-picker-preview__track v-color-picker-preview__alpha",
                            modelValue: t.color?.a ?? 1,
                            "onUpdate:modelValue": (i)=>a("update:color", {
                                    ...t.color ?? yi,
                                    a: i
                                }),
                            step: 1 / 256,
                            min: 0,
                            max: 1,
                            disabled: t.disabled,
                            thumbSize: 14,
                            trackSize: 8,
                            trackFillColor: "white",
                            hideDetails: !0
                        }, null)
                    ])
                ])), {};
        }
    }), c6 = $({
        swatches: {
            type: Array,
            default: ()=>d6(Oe)
        },
        disabled: Boolean,
        color: Object,
        maxHeight: [
            Number,
            String
        ],
        ...we()
    }, "VColorPickerSwatches");
    function d6(t) {
        return Object.keys(t).map((e)=>{
            const a = t[e];
            return a.base ? [
                a.base,
                a.darken4,
                a.darken3,
                a.darken2,
                a.darken1,
                a.lighten1,
                a.lighten2,
                a.lighten3,
                a.lighten4,
                a.lighten5
            ] : [
                a.black,
                a.white,
                a.transparent
            ];
        });
    }
    const h6 = rn({
        name: "VColorPickerSwatches",
        props: c6(),
        emits: {
            "update:color": (t)=>!0
        },
        setup (t, e) {
            let { emit: a } = e;
            return ie(()=>y("div", {
                    class: [
                        "v-color-picker-swatches",
                        t.class
                    ],
                    style: [
                        {
                            maxHeight: xe(t.maxHeight)
                        },
                        t.style
                    ]
                }, [
                    y("div", null, [
                        t.swatches.map((r)=>y("div", {
                                class: "v-color-picker-swatches__swatch"
                            }, [
                                r.map((n)=>{
                                    const i = ll(n), o = dl(i), s = dw(i);
                                    return y("div", {
                                        class: "v-color-picker-swatches__color",
                                        onClick: ()=>o && a("update:color", o)
                                    }, [
                                        y("div", {
                                            style: {
                                                background: s
                                            }
                                        }, [
                                            t.color && Aa(t.color, o) ? y(_e, {
                                                size: "x-small",
                                                icon: "$success",
                                                color: hw(n, "#FFFFFF") > 2 ? "white" : "black"
                                            }, null) : void 0
                                        ])
                                    ]);
                                })
                            ]))
                    ])
                ])), {};
        }
    }), m6 = br("v-picker-title"), xf = $({
        bgColor: String,
        divided: Boolean,
        landscape: Boolean,
        title: String,
        hideHeader: Boolean,
        ...of()
    }, "VPicker"), al = te()({
        name: "VPicker",
        props: xf(),
        setup (t, e) {
            let { slots: a } = e;
            const { backgroundColorClasses: r, backgroundColorStyles: n } = ft(K(t, "color"));
            return ie(()=>{
                const i = Br.filterProps(t), o = !!(t.title || a.title);
                return y(Br, Z(i, {
                    color: t.bgColor,
                    class: [
                        "v-picker",
                        {
                            "v-picker--divided": t.divided,
                            "v-picker--landscape": t.landscape,
                            "v-picker--with-actions": !!a.actions
                        },
                        t.class
                    ],
                    style: t.style
                }), {
                    default: ()=>[
                            !t.hideHeader && y("div", {
                                key: "header",
                                class: [
                                    r.value
                                ],
                                style: [
                                    n.value
                                ]
                            }, [
                                o && y(m6, {
                                    key: "picker-title"
                                }, {
                                    default: ()=>[
                                            a.title?.() ?? t.title
                                        ]
                                }),
                                a.header && y("div", {
                                    class: "v-picker__header"
                                }, [
                                    a.header()
                                ])
                            ]),
                            y("div", {
                                class: "v-picker__body"
                            }, [
                                a.default?.()
                            ]),
                            a.actions && y(Ge, {
                                defaults: {
                                    VBtn: {
                                        slim: !0,
                                        variant: "text"
                                    }
                                }
                            }, {
                                default: ()=>[
                                        y("div", {
                                            class: "v-picker__actions"
                                        }, [
                                            a.actions()
                                        ])
                                    ]
                            })
                        ]
                });
            }), {};
        }
    }), f6 = $({
        canvasHeight: {
            type: [
                String,
                Number
            ],
            default: 150
        },
        disabled: Boolean,
        dotSize: {
            type: [
                Number,
                String
            ],
            default: 10
        },
        hideCanvas: Boolean,
        hideSliders: Boolean,
        hideInputs: Boolean,
        mode: {
            type: String,
            default: "rgba",
            validator: (t)=>Object.keys(An).includes(t)
        },
        modes: {
            type: Array,
            default: ()=>Object.keys(An),
            validator: (t)=>Array.isArray(t) && t.every((e)=>Object.keys(An).includes(e))
        },
        showSwatches: Boolean,
        swatches: Array,
        swatchesMaxHeight: {
            type: [
                Number,
                String
            ],
            default: 150
        },
        modelValue: {
            type: [
                Object,
                String
            ]
        },
        ...xf({
            hideHeader: !0
        })
    }, "VColorPicker"), p6 = rn({
        name: "VColorPicker",
        props: f6(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:mode": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "mode"), n = W(null), i = Be(t, "modelValue", void 0, (c)=>{
                if (c == null || c === "") return null;
                let d;
                try {
                    d = dl(ll(c));
                } catch  {
                    return null;
                }
                return d;
            }, (c)=>c ? J4(c, t.modelValue) : null), o = T(()=>i.value ? {
                    ...i.value,
                    h: n.value ?? i.value.h
                } : null), { rtlClasses: s } = Xt();
            let l = !0;
            me(i, (c)=>{
                if (!l) {
                    l = !0;
                    return;
                }
                c && (n.value = c.h);
            }, {
                immediate: !0
            });
            const u = (c)=>{
                l = !1, n.value = c.h, i.value = c;
            };
            return Mr(()=>{
                t.modes.includes(r.value) || (r.value = t.modes[0]);
            }), Bt({
                VSlider: {
                    color: void 0,
                    trackColor: void 0,
                    trackFillColor: void 0
                }
            }), ie(()=>{
                const c = al.filterProps(t);
                return y(al, Z(c, {
                    class: [
                        "v-color-picker",
                        s.value,
                        t.class
                    ],
                    style: [
                        {
                            "--v-color-picker-color-hsv": Ky({
                                ...o.value ?? yi,
                                a: 1
                            })
                        },
                        t.style
                    ]
                }), {
                    ...a,
                    default: ()=>y(Ce, null, [
                            !t.hideCanvas && y(K4, {
                                key: "canvas",
                                color: o.value,
                                "onUpdate:color": u,
                                disabled: t.disabled,
                                dotSize: t.dotSize,
                                width: t.width,
                                height: t.canvasHeight
                            }, null),
                            (!t.hideSliders || !t.hideInputs) && y("div", {
                                key: "controls",
                                class: "v-color-picker__controls"
                            }, [
                                !t.hideSliders && y(u6, {
                                    key: "preview",
                                    color: o.value,
                                    "onUpdate:color": u,
                                    hideAlpha: !r.value.endsWith("a"),
                                    disabled: t.disabled
                                }, null),
                                !t.hideInputs && y(r6, {
                                    key: "edit",
                                    modes: t.modes,
                                    mode: r.value,
                                    "onUpdate:mode": (d)=>r.value = d,
                                    color: o.value,
                                    "onUpdate:color": u,
                                    disabled: t.disabled
                                }, null)
                            ]),
                            t.showSwatches && y(h6, {
                                key: "swatches",
                                color: o.value,
                                "onUpdate:color": u,
                                maxHeight: t.swatchesMaxHeight,
                                swatches: t.swatches,
                                disabled: t.disabled
                            }, null)
                        ])
                });
            }), {};
        }
    }), g6 = $({
        modelValue: null,
        color: String,
        cancelText: {
            type: String,
            default: "$vuetify.confirmEdit.cancel"
        },
        okText: {
            type: String,
            default: "$vuetify.confirmEdit.ok"
        },
        disabled: {
            type: [
                Boolean,
                Array
            ],
            default: void 0
        },
        hideActions: Boolean
    }, "VConfirmEdit"), v6 = te()({
        name: "VConfirmEdit",
        props: g6(),
        emits: {
            cancel: ()=>!0,
            save: (t)=>!0,
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const n = Be(t, "modelValue"), i = W();
            Lt(()=>{
                i.value = structuredClone(Gt(n.value));
            });
            const { t: o } = zt(), s = T(()=>Aa(n.value, i.value));
            function l(p) {
                return typeof t.disabled == "boolean" ? t.disabled : Array.isArray(t.disabled) ? t.disabled.includes(p) : s.value;
            }
            const u = T(()=>l("save")), c = T(()=>l("cancel"));
            function d() {
                n.value = i.value, a("save", i.value);
            }
            function h() {
                i.value = structuredClone(Gt(n.value)), a("cancel");
            }
            function m(p) {
                return y(Ce, null, [
                    y(Re, Z({
                        disabled: c.value,
                        variant: "text",
                        color: t.color,
                        onClick: h,
                        text: o(t.cancelText)
                    }, p), null),
                    y(Re, Z({
                        disabled: u.value,
                        variant: "text",
                        color: t.color,
                        onClick: d,
                        text: o(t.okText)
                    }, p), null)
                ]);
            }
            let f = !1;
            return ie(()=>y(Ce, null, [
                    r.default?.({
                        model: i,
                        save: d,
                        cancel: h,
                        isPristine: s.value,
                        get actions () {
                            return f = !0, m;
                        }
                    }),
                    !t.hideActions && !f && m()
                ])), {
                save: d,
                cancel: h,
                isPristine: s
            };
        }
    }), xk = $({
        expandOnClick: Boolean,
        showExpand: Boolean,
        expanded: {
            type: Array,
            default: ()=>[]
        }
    }, "DataTable-expand"), wk = Symbol.for("vuetify:datatable:expanded");
    function Gl(t) {
        const e = K(t, "expandOnClick"), a = Be(t, "expanded", t.expanded, (s)=>new Set(s), (s)=>[
                ...s.values()
            ]);
        function r(s, l) {
            const u = new Set(a.value);
            l ? u.add(s.value) : u.delete(s.value), a.value = u;
        }
        function n(s) {
            return a.value.has(s.value);
        }
        function i(s) {
            r(s, !n(s));
        }
        const o = {
            expand: r,
            expanded: a,
            expandOnClick: e,
            isExpanded: n,
            toggleExpand: i
        };
        return Kt(wk, o), o;
    }
    function Sk() {
        const t = Et(wk);
        if (!t) throw new Error("foo");
        return t;
    }
    const wf = $({
        groupBy: {
            type: Array,
            default: ()=>[]
        }
    }, "DataTable-group"), Ck = Symbol.for("vuetify:data-table-group");
    function Sf(t) {
        return {
            groupBy: Be(t, "groupBy")
        };
    }
    function $l(t) {
        const { disableSort: e, groupBy: a, sortBy: r } = t, n = W(new Set), i = T(()=>a.value.map((c)=>({
                    ...c,
                    order: c.order ?? !1
                })).concat(e?.value ? [] : r.value));
        function o(c) {
            return n.value.has(c.id);
        }
        function s(c) {
            const d = new Set(n.value);
            o(c) ? d.delete(c.id) : d.add(c.id), n.value = d;
        }
        function l(c) {
            function d(h) {
                const m = [];
                for (const f of h.items)"type" in f && f.type === "group" ? m.push(...d(f)) : m.push(f);
                return [
                    ...new Set(m)
                ];
            }
            return d({
                items: c
            });
        }
        const u = {
            sortByWithGroups: i,
            toggleGroup: s,
            opened: n,
            groupBy: a,
            extractRows: l,
            isGroupOpen: o
        };
        return Kt(Ck, u), u;
    }
    function Ak() {
        const t = Et(Ck);
        if (!t) throw new Error("Missing group!");
        return t;
    }
    function y6(t, e) {
        if (!t.length) return [];
        const a = new Map;
        for (const r of t){
            const n = Ls(r.raw, e);
            a.has(n) || a.set(n, []), a.get(n).push(r);
        }
        return a;
    }
    function Dk(t, e) {
        let a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0, r = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "root";
        if (!e.length) return [];
        const n = y6(t, e[0]), i = [], o = e.slice(1);
        return n.forEach((s, l)=>{
            const u = e[0], c = `${r}_${u}_${l}`;
            i.push({
                depth: a,
                id: c,
                key: u,
                value: l,
                items: o.length ? Dk(s, o, a + 1, c) : s,
                type: "group"
            });
        }), i;
    }
    function Tk(t, e) {
        const a = [];
        for (const r of t)"type" in r && r.type === "group" ? (r.value != null && a.push(r), (e.has(r.id) || r.value == null) && a.push(...Tk(r.items, e))) : a.push(r);
        return a;
    }
    function Ul(t, e, a) {
        return {
            flatItems: T(()=>{
                if (!e.value.length) return t.value;
                const n = Dk(t.value, e.value.map((i)=>i.key));
                return Tk(n, a.value);
            })
        };
    }
    function jl(t) {
        let { page: e, itemsPerPage: a, sortBy: r, groupBy: n, search: i } = t;
        const o = za("VDataTable"), s = T(()=>({
                page: e.value,
                itemsPerPage: a.value,
                sortBy: r.value,
                groupBy: n.value,
                search: i.value
            }));
        let l = null;
        me(s, ()=>{
            Aa(l, s.value) || (l && l.search !== s.value.search && (e.value = 1), o.emit("update:options", s.value), l = s.value);
        }, {
            deep: !0,
            immediate: !0
        });
    }
    const Cf = $({
        page: {
            type: [
                Number,
                String
            ],
            default: 1
        },
        itemsPerPage: {
            type: [
                Number,
                String
            ],
            default: 10
        }
    }, "DataTable-paginate"), Ek = Symbol.for("vuetify:data-table-pagination");
    function Af(t) {
        const e = Be(t, "page", void 0, (r)=>Number(r ?? 1)), a = Be(t, "itemsPerPage", void 0, (r)=>Number(r ?? 10));
        return {
            page: e,
            itemsPerPage: a
        };
    }
    function Df(t) {
        const { page: e, itemsPerPage: a, itemsLength: r } = t, n = T(()=>a.value === -1 ? 0 : a.value * (e.value - 1)), i = T(()=>a.value === -1 ? r.value : Math.min(r.value, n.value + a.value)), o = T(()=>a.value === -1 || r.value === 0 ? 1 : Math.ceil(r.value / a.value));
        me([
            e,
            o
        ], ()=>{
            e.value > o.value && (e.value = o.value);
        });
        function s(h) {
            a.value = h, e.value = 1;
        }
        function l() {
            e.value = Rt(e.value + 1, 1, o.value);
        }
        function u() {
            e.value = Rt(e.value - 1, 1, o.value);
        }
        function c(h) {
            e.value = Rt(h, 1, o.value);
        }
        const d = {
            page: e,
            itemsPerPage: a,
            startIndex: n,
            stopIndex: i,
            pageCount: o,
            itemsLength: r,
            nextPage: l,
            prevPage: u,
            setPage: c,
            setItemsPerPage: s
        };
        return Kt(Ek, d), d;
    }
    function b6() {
        const t = Et(Ek);
        if (!t) throw new Error("Missing pagination!");
        return t;
    }
    function _k(t) {
        const e = za("usePaginatedItems"), { items: a, startIndex: r, stopIndex: n, itemsPerPage: i } = t, o = T(()=>i.value <= 0 ? a.value : a.value.slice(r.value, n.value));
        return me(o, (s)=>{
            e.emit("update:currentItems", s);
        }, {
            immediate: !0
        }), {
            paginatedItems: o
        };
    }
    const F6 = {
        showSelectAll: !1,
        allSelected: ()=>[],
        select: (t)=>{
            let { items: e, value: a } = t;
            return new Set(a ? [
                e[0]?.value
            ] : []);
        },
        selectAll: (t)=>{
            let { selected: e } = t;
            return e;
        }
    }, Pk = {
        showSelectAll: !0,
        allSelected: (t)=>{
            let { currentPage: e } = t;
            return e;
        },
        select: (t)=>{
            let { items: e, value: a, selected: r } = t;
            for (const n of e)a ? r.add(n.value) : r.delete(n.value);
            return r;
        },
        selectAll: (t)=>{
            let { value: e, currentPage: a, selected: r } = t;
            return Pk.select({
                items: a,
                value: e,
                selected: r
            });
        }
    }, Bk = {
        showSelectAll: !0,
        allSelected: (t)=>{
            let { allItems: e } = t;
            return e;
        },
        select: (t)=>{
            let { items: e, value: a, selected: r } = t;
            for (const n of e)a ? r.add(n.value) : r.delete(n.value);
            return r;
        },
        selectAll: (t)=>{
            let { value: e, allItems: a, selected: r } = t;
            return Bk.select({
                items: a,
                value: e,
                selected: r
            });
        }
    }, Mk = $({
        showSelect: Boolean,
        selectStrategy: {
            type: [
                String,
                Object
            ],
            default: "page"
        },
        modelValue: {
            type: Array,
            default: ()=>[]
        },
        valueComparator: {
            type: Function,
            default: Aa
        }
    }, "DataTable-select"), Rk = Symbol.for("vuetify:data-table-selection");
    function Yl(t, e) {
        let { allItems: a, currentPage: r } = e;
        const n = Be(t, "modelValue", t.modelValue, (b)=>new Set(Tt(b).map((k)=>a.value.find((S)=>t.valueComparator(k, S.value))?.value ?? k)), (b)=>[
                ...b.values()
            ]), i = T(()=>a.value.filter((b)=>b.selectable)), o = T(()=>r.value.filter((b)=>b.selectable)), s = T(()=>{
            if (typeof t.selectStrategy == "object") return t.selectStrategy;
            switch(t.selectStrategy){
                case "single":
                    return F6;
                case "all":
                    return Bk;
                case "page":
                default:
                    return Pk;
            }
        }), l = de(null);
        function u(b) {
            return Tt(b).every((k)=>n.value.has(k.value));
        }
        function c(b) {
            return Tt(b).some((k)=>n.value.has(k.value));
        }
        function d(b, k) {
            const S = s.value.select({
                items: b,
                value: k,
                selected: new Set(n.value)
            });
            n.value = S;
        }
        function h(b, k, S) {
            const x = [];
            if (k = k ?? r.value.findIndex((C)=>C.value === b.value), t.selectStrategy !== "single" && S?.shiftKey && l.value !== null) {
                const [C, w] = [
                    l.value,
                    k
                ].sort((F, D)=>F - D);
                x.push(...r.value.slice(C, w + 1));
            } else x.push(b), l.value = k;
            d(x, !u([
                b
            ]));
        }
        function m(b) {
            const k = s.value.selectAll({
                value: b,
                allItems: i.value,
                currentPage: o.value,
                selected: new Set(n.value)
            });
            n.value = k;
        }
        const f = T(()=>n.value.size > 0), p = T(()=>{
            const b = s.value.allSelected({
                allItems: i.value,
                currentPage: o.value
            });
            return !!b.length && u(b);
        }), g = T(()=>s.value.showSelectAll), v = {
            toggleSelect: h,
            select: d,
            selectAll: m,
            isSelected: u,
            isSomeSelected: c,
            someSelected: f,
            allSelected: p,
            showSelectAll: g,
            lastSelectedIndex: l,
            selectStrategy: s
        };
        return Kt(Rk, v), v;
    }
    function ql() {
        const t = Et(Rk);
        if (!t) throw new Error("Missing selection!");
        return t;
    }
    const Lk = $({
        sortBy: {
            type: Array,
            default: ()=>[]
        },
        customKeySort: Object,
        multiSort: Boolean,
        mustSort: Boolean
    }, "DataTable-sort"), Ik = Symbol.for("vuetify:data-table-sort");
    function Kl(t) {
        const e = Be(t, "sortBy"), a = K(t, "mustSort"), r = K(t, "multiSort");
        return {
            sortBy: e,
            mustSort: a,
            multiSort: r
        };
    }
    function Xl(t) {
        const { sortBy: e, mustSort: a, multiSort: r, page: n } = t, i = (l)=>{
            if (l.key == null) return;
            let u = e.value.map((d)=>({
                    ...d
                })) ?? [];
            const c = u.find((d)=>d.key === l.key);
            c ? c.order === "desc" ? a.value && u.length === 1 ? c.order = "asc" : u = u.filter((d)=>d.key !== l.key) : c.order = "desc" : r.value ? u.push({
                key: l.key,
                order: "asc"
            }) : u = [
                {
                    key: l.key,
                    order: "asc"
                }
            ], e.value = u, n && (n.value = 1);
        };
        function o(l) {
            return !!e.value.find((u)=>u.key === l.key);
        }
        const s = {
            sortBy: e,
            toggleSort: i,
            isSorted: o
        };
        return Kt(Ik, s), s;
    }
    function zk() {
        const t = Et(Ik);
        if (!t) throw new Error("Missing sort!");
        return t;
    }
    function Tf(t, e, a, r) {
        const n = zt();
        return {
            sortedItems: T(()=>a.value.length ? k6(e.value, a.value, n.current.value, {
                    transform: r?.transform,
                    sortFunctions: {
                        ...t.customKeySort,
                        ...r?.sortFunctions?.value
                    },
                    sortRawFunctions: r?.sortRawFunctions?.value
                }) : e.value)
        };
    }
    function k6(t, e, a, r) {
        const n = new Intl.Collator(a, {
            sensitivity: "accent",
            usage: "sort"
        });
        return t.map((o)=>[
                o,
                r?.transform ? r.transform(o) : o
            ]).sort((o, s)=>{
            for(let l = 0; l < e.length; l++){
                let u = !1;
                const c = e[l].key, d = e[l].order ?? "asc";
                if (d === !1) continue;
                let h = Ls(o[1], c), m = Ls(s[1], c), f = o[0].raw, p = s[0].raw;
                if (d === "desc" && ([h, m] = [
                    m,
                    h
                ], [f, p] = [
                    p,
                    f
                ]), r?.sortRawFunctions?.[c]) {
                    const g = r.sortRawFunctions[c](f, p);
                    if (g == null) continue;
                    if (u = !0, g) return g;
                }
                if (r?.sortFunctions?.[c]) {
                    const g = r.sortFunctions[c](h, m);
                    if (g == null) continue;
                    if (u = !0, g) return g;
                }
                if (!u) {
                    if (h instanceof Date && m instanceof Date) return h.getTime() - m.getTime();
                    if ([h, m] = [
                        h,
                        m
                    ].map((g)=>g != null ? g.toString().toLocaleLowerCase() : g), h !== m) return ss(h) && ss(m) ? 0 : ss(h) ? -1 : ss(m) ? 1 : !isNaN(h) && !isNaN(m) ? Number(h) - Number(m) : n.compare(h, m);
                }
            }
            return 0;
        }).map((o)=>{
            let [s] = o;
            return s;
        });
    }
    const x6 = $({
        items: {
            type: Array,
            default: ()=>[]
        },
        itemValue: {
            type: [
                String,
                Array,
                Function
            ],
            default: "id"
        },
        itemSelectable: {
            type: [
                String,
                Array,
                Function
            ],
            default: null
        },
        returnObject: Boolean
    }, "DataIterator-items");
    function w6(t, e) {
        const a = t.returnObject ? e : $t(e, t.itemValue), r = $t(e, t.itemSelectable, !0);
        return {
            type: "item",
            value: a,
            selectable: r,
            raw: e
        };
    }
    function S6(t, e) {
        const a = [];
        for (const r of e)a.push(w6(t, r));
        return a;
    }
    function C6(t) {
        return {
            items: T(()=>S6(t, t.items))
        };
    }
    const A6 = $({
        search: String,
        loading: Boolean,
        ...we(),
        ...x6(),
        ...Mk(),
        ...Lk(),
        ...Cf({
            itemsPerPage: 5
        }),
        ...xk(),
        ...wf(),
        ...Ko(),
        ...We(),
        ...fr({
            transition: {
                component: po,
                hideOnLeave: !0
            }
        })
    }, "VDataIterator"), D6 = te()({
        name: "VDataIterator",
        props: A6(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:groupBy": (t)=>!0,
            "update:page": (t)=>!0,
            "update:itemsPerPage": (t)=>!0,
            "update:sortBy": (t)=>!0,
            "update:options": (t)=>!0,
            "update:expanded": (t)=>!0,
            "update:currentItems": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "groupBy"), n = K(t, "search"), { items: i } = C6(t), { filteredItems: o } = Xo(t, i, n, {
                transform: (L)=>L.raw
            }), { sortBy: s, multiSort: l, mustSort: u } = Kl(t), { page: c, itemsPerPage: d } = Af(t), { toggleSort: h } = Xl({
                sortBy: s,
                multiSort: l,
                mustSort: u,
                page: c
            }), { sortByWithGroups: m, opened: f, extractRows: p, isGroupOpen: g, toggleGroup: v } = $l({
                groupBy: r,
                sortBy: s
            }), { sortedItems: b } = Tf(t, o, m, {
                transform: (L)=>L.raw
            }), { flatItems: k } = Ul(b, r, f), S = T(()=>k.value.length), { startIndex: x, stopIndex: C, pageCount: w, prevPage: F, nextPage: D, setItemsPerPage: _, setPage: A } = Df({
                page: c,
                itemsPerPage: d,
                itemsLength: S
            }), { paginatedItems: E } = _k({
                items: k,
                startIndex: x,
                stopIndex: C,
                itemsPerPage: d
            }), B = T(()=>p(E.value)), { isSelected: P, select: M, selectAll: R, toggleSelect: z } = Yl(t, {
                allItems: i,
                currentPage: B
            }), { isExpanded: N, toggleExpand: H } = Gl(t);
            jl({
                page: c,
                itemsPerPage: d,
                sortBy: s,
                groupBy: r,
                search: n
            });
            const I = T(()=>({
                    page: c.value,
                    itemsPerPage: d.value,
                    sortBy: s.value,
                    pageCount: w.value,
                    toggleSort: h,
                    prevPage: F,
                    nextPage: D,
                    setPage: A,
                    setItemsPerPage: _,
                    isSelected: P,
                    select: M,
                    selectAll: R,
                    toggleSelect: z,
                    isExpanded: N,
                    toggleExpand: H,
                    isGroupOpen: g,
                    toggleGroup: v,
                    items: B.value,
                    groupedItems: E.value
                }));
            return ie(()=>y(t.tag, {
                    class: [
                        "v-data-iterator",
                        {
                            "v-data-iterator--loading": t.loading
                        },
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            a.header?.(I.value),
                            y(ba, {
                                transition: t.transition
                            }, {
                                default: ()=>[
                                        t.loading ? y(jo, {
                                            key: "loader",
                                            name: "v-data-iterator",
                                            active: !0
                                        }, {
                                            default: (L)=>a.loader?.(L)
                                        }) : y("div", {
                                            key: "items"
                                        }, [
                                            E.value.length ? a.default?.(I.value) : a["no-data"]?.()
                                        ])
                                    ]
                            }),
                            a.footer?.(I.value)
                        ]
                })), {};
        }
    });
    function T6() {
        const t = W([]);
        Rx(()=>t.value = []);
        function e(a, r) {
            t.value[r] = a;
        }
        return {
            refs: t,
            updateRef: e
        };
    }
    let E6, Ef, To, rl, _6, Nk, Ok, P6;
    E6 = $({
        activeColor: String,
        start: {
            type: [
                Number,
                String
            ],
            default: 1
        },
        modelValue: {
            type: Number,
            default: (t)=>t.start
        },
        disabled: Boolean,
        length: {
            type: [
                Number,
                String
            ],
            default: 1,
            validator: (t)=>t % 1 === 0
        },
        totalVisible: [
            Number,
            String
        ],
        firstIcon: {
            type: Me,
            default: "$first"
        },
        prevIcon: {
            type: Me,
            default: "$prev"
        },
        nextIcon: {
            type: Me,
            default: "$next"
        },
        lastIcon: {
            type: Me,
            default: "$last"
        },
        ariaLabel: {
            type: String,
            default: "$vuetify.pagination.ariaLabel.root"
        },
        pageAriaLabel: {
            type: String,
            default: "$vuetify.pagination.ariaLabel.page"
        },
        currentPageAriaLabel: {
            type: String,
            default: "$vuetify.pagination.ariaLabel.currentPage"
        },
        firstAriaLabel: {
            type: String,
            default: "$vuetify.pagination.ariaLabel.first"
        },
        previousAriaLabel: {
            type: String,
            default: "$vuetify.pagination.ariaLabel.previous"
        },
        nextAriaLabel: {
            type: String,
            default: "$vuetify.pagination.ariaLabel.next"
        },
        lastAriaLabel: {
            type: String,
            default: "$vuetify.pagination.ariaLabel.last"
        },
        ellipsis: {
            type: String,
            default: "..."
        },
        showFirstLastPage: Boolean,
        ...Na(),
        ...we(),
        ...ta(),
        ...Jt(),
        ...Ct(),
        ...xr(),
        ...We({
            tag: "nav"
        }),
        ...Qe(),
        ...or({
            variant: "text"
        })
    }, "VPagination");
    tm = te()({
        name: "VPagination",
        props: E6(),
        emits: {
            "update:modelValue": (t)=>!0,
            first: (t)=>!0,
            prev: (t)=>!0,
            next: (t)=>!0,
            last: (t)=>!0
        },
        setup (t, e) {
            let { slots: a, emit: r } = e;
            const n = Be(t, "modelValue"), { t: i, n: o } = zt(), { isRtl: s } = Xt(), { themeClasses: l } = ut(t), { width: u } = Ia(), c = de(-1);
            Bt(void 0, {
                scoped: !0
            });
            const { resizeRef: d } = vr((F)=>{
                if (!F.length) return;
                const { target: D, contentRect: _ } = F[0], A = D.querySelector(".v-pagination__list > *");
                if (!A) return;
                const E = _.width, B = A.offsetWidth + parseFloat(getComputedStyle(A).marginRight) * 2;
                c.value = p(E, B);
            }), h = T(()=>parseInt(t.length, 10)), m = T(()=>parseInt(t.start, 10)), f = T(()=>t.totalVisible != null ? parseInt(t.totalVisible, 10) : c.value >= 0 ? c.value : p(u.value, 58));
            function p(F, D) {
                const _ = t.showFirstLastPage ? 5 : 3;
                return Math.max(0, Math.floor(Number(((F - D * _) / D).toFixed(2))));
            }
            const g = T(()=>{
                if (h.value <= 0 || isNaN(h.value) || h.value > Number.MAX_SAFE_INTEGER) return [];
                if (f.value <= 0) return [];
                if (f.value === 1) return [
                    n.value
                ];
                if (h.value <= f.value) return $r(h.value, m.value);
                const F = f.value % 2 === 0, D = F ? f.value / 2 : Math.floor(f.value / 2), _ = F ? D : D + 1, A = h.value - D;
                if (_ - n.value >= 0) return [
                    ...$r(Math.max(1, f.value - 1), m.value),
                    t.ellipsis,
                    h.value
                ];
                if (n.value - A >= (F ? 1 : 0)) {
                    const E = f.value - 1, B = h.value - E + m.value;
                    return [
                        m.value,
                        t.ellipsis,
                        ...$r(E, B)
                    ];
                } else {
                    const E = Math.max(1, f.value - 2), B = E === 1 ? n.value : n.value - Math.ceil(E / 2) + m.value;
                    return [
                        m.value,
                        t.ellipsis,
                        ...$r(E, B),
                        t.ellipsis,
                        h.value
                    ];
                }
            });
            function v(F, D, _) {
                F.preventDefault(), n.value = D, _ && r(_, D);
            }
            const { refs: b, updateRef: k } = T6();
            Bt({
                VPaginationBtn: {
                    color: K(t, "color"),
                    border: K(t, "border"),
                    density: K(t, "density"),
                    size: K(t, "size"),
                    variant: K(t, "variant"),
                    rounded: K(t, "rounded"),
                    elevation: K(t, "elevation")
                }
            });
            const S = T(()=>g.value.map((F, D)=>{
                    const _ = (A)=>k(A, D);
                    if (typeof F == "string") return {
                        isActive: !1,
                        key: `ellipsis-${D}`,
                        page: F,
                        props: {
                            ref: _,
                            ellipsis: !0,
                            icon: !0,
                            disabled: !0
                        }
                    };
                    {
                        const A = F === n.value;
                        return {
                            isActive: A,
                            key: F,
                            page: o(F),
                            props: {
                                ref: _,
                                ellipsis: !1,
                                icon: !0,
                                disabled: !!t.disabled || Number(t.length) < 2,
                                color: A ? t.activeColor : t.color,
                                "aria-current": A,
                                "aria-label": i(A ? t.currentPageAriaLabel : t.pageAriaLabel, F),
                                onClick: (E)=>v(E, F)
                            }
                        };
                    }
                })), x = T(()=>{
                const F = !!t.disabled || n.value <= m.value, D = !!t.disabled || n.value >= m.value + h.value - 1;
                return {
                    first: t.showFirstLastPage ? {
                        icon: s.value ? t.lastIcon : t.firstIcon,
                        onClick: (_)=>v(_, m.value, "first"),
                        disabled: F,
                        "aria-label": i(t.firstAriaLabel),
                        "aria-disabled": F
                    } : void 0,
                    prev: {
                        icon: s.value ? t.nextIcon : t.prevIcon,
                        onClick: (_)=>v(_, n.value - 1, "prev"),
                        disabled: F,
                        "aria-label": i(t.previousAriaLabel),
                        "aria-disabled": F
                    },
                    next: {
                        icon: s.value ? t.prevIcon : t.nextIcon,
                        onClick: (_)=>v(_, n.value + 1, "next"),
                        disabled: D,
                        "aria-label": i(t.nextAriaLabel),
                        "aria-disabled": D
                    },
                    last: t.showFirstLastPage ? {
                        icon: s.value ? t.firstIcon : t.lastIcon,
                        onClick: (_)=>v(_, m.value + h.value - 1, "last"),
                        disabled: D,
                        "aria-label": i(t.lastAriaLabel),
                        "aria-disabled": D
                    } : void 0
                };
            });
            function C() {
                const F = n.value - m.value;
                b.value[F]?.$el.focus();
            }
            function w(F) {
                F.key === Jd.left && !t.disabled && n.value > Number(t.start) ? (n.value = n.value - 1, at(C)) : F.key === Jd.right && !t.disabled && n.value < m.value + h.value - 1 && (n.value = n.value + 1, at(C));
            }
            return ie(()=>y(t.tag, {
                    ref: d,
                    class: [
                        "v-pagination",
                        l.value,
                        t.class
                    ],
                    style: t.style,
                    role: "navigation",
                    "aria-label": i(t.ariaLabel),
                    onKeydown: w,
                    "data-test": "v-pagination-root"
                }, {
                    default: ()=>[
                            y("ul", {
                                class: "v-pagination__list"
                            }, [
                                t.showFirstLastPage && y("li", {
                                    key: "first",
                                    class: "v-pagination__first",
                                    "data-test": "v-pagination-first"
                                }, [
                                    a.first ? a.first(x.value.first) : y(Re, Z({
                                        _as: "VPaginationBtn"
                                    }, x.value.first), null)
                                ]),
                                y("li", {
                                    key: "prev",
                                    class: "v-pagination__prev",
                                    "data-test": "v-pagination-prev"
                                }, [
                                    a.prev ? a.prev(x.value.prev) : y(Re, Z({
                                        _as: "VPaginationBtn"
                                    }, x.value.prev), null)
                                ]),
                                S.value.map((F, D)=>y("li", {
                                        key: F.key,
                                        class: [
                                            "v-pagination__item",
                                            {
                                                "v-pagination__item--is-active": F.isActive
                                            }
                                        ],
                                        "data-test": "v-pagination-item"
                                    }, [
                                        a.item ? a.item(F) : y(Re, Z({
                                            _as: "VPaginationBtn"
                                        }, F.props), {
                                            default: ()=>[
                                                    F.page
                                                ]
                                        })
                                    ])),
                                y("li", {
                                    key: "next",
                                    class: "v-pagination__next",
                                    "data-test": "v-pagination-next"
                                }, [
                                    a.next ? a.next(x.value.next) : y(Re, Z({
                                        _as: "VPaginationBtn"
                                    }, x.value.next), null)
                                ]),
                                t.showFirstLastPage && y("li", {
                                    key: "last",
                                    class: "v-pagination__last",
                                    "data-test": "v-pagination-last"
                                }, [
                                    a.last ? a.last(x.value.last) : y(Re, Z({
                                        _as: "VPaginationBtn"
                                    }, x.value.last), null)
                                ])
                            ])
                        ]
                })), {};
        }
    });
    Ef = $({
        prevIcon: {
            type: Me,
            default: "$prev"
        },
        nextIcon: {
            type: Me,
            default: "$next"
        },
        firstIcon: {
            type: Me,
            default: "$first"
        },
        lastIcon: {
            type: Me,
            default: "$last"
        },
        itemsPerPageText: {
            type: String,
            default: "$vuetify.dataFooter.itemsPerPageText"
        },
        pageText: {
            type: String,
            default: "$vuetify.dataFooter.pageText"
        },
        firstPageLabel: {
            type: String,
            default: "$vuetify.dataFooter.firstPage"
        },
        prevPageLabel: {
            type: String,
            default: "$vuetify.dataFooter.prevPage"
        },
        nextPageLabel: {
            type: String,
            default: "$vuetify.dataFooter.nextPage"
        },
        lastPageLabel: {
            type: String,
            default: "$vuetify.dataFooter.lastPage"
        },
        itemsPerPageOptions: {
            type: Array,
            default: ()=>[
                    {
                        value: 10,
                        title: "10"
                    },
                    {
                        value: 25,
                        title: "25"
                    },
                    {
                        value: 50,
                        title: "50"
                    },
                    {
                        value: 100,
                        title: "100"
                    },
                    {
                        value: -1,
                        title: "$vuetify.dataFooter.itemsPerPageAll"
                    }
                ]
        },
        showCurrentPage: Boolean
    }, "VDataTableFooter");
    To = te()({
        name: "VDataTableFooter",
        props: Ef(),
        setup (t, e) {
            let { slots: a } = e;
            const { t: r } = zt(), { page: n, pageCount: i, startIndex: o, stopIndex: s, itemsLength: l, itemsPerPage: u, setItemsPerPage: c } = b6(), d = T(()=>t.itemsPerPageOptions.map((h)=>typeof h == "number" ? {
                        value: h,
                        title: h === -1 ? r("$vuetify.dataFooter.itemsPerPageAll") : String(h)
                    } : {
                        ...h,
                        title: isNaN(Number(h.title)) ? r(h.title) : h.title
                    }));
            return ie(()=>{
                const h = tm.filterProps(t);
                return y("div", {
                    class: "v-data-table-footer"
                }, [
                    a.prepend?.(),
                    y("div", {
                        class: "v-data-table-footer__items-per-page"
                    }, [
                        y("span", null, [
                            r(t.itemsPerPageText)
                        ]),
                        y(_n, {
                            items: d.value,
                            modelValue: u.value,
                            "onUpdate:modelValue": (m)=>c(Number(m)),
                            density: "compact",
                            variant: "outlined",
                            "hide-details": !0
                        }, null)
                    ]),
                    y("div", {
                        class: "v-data-table-footer__info"
                    }, [
                        y("div", null, [
                            r(t.pageText, l.value ? o.value + 1 : 0, s.value, l.value)
                        ])
                    ]),
                    y("div", {
                        class: "v-data-table-footer__pagination"
                    }, [
                        y(tm, Z({
                            modelValue: n.value,
                            "onUpdate:modelValue": (m)=>n.value = m,
                            density: "comfortable",
                            "first-aria-label": t.firstPageLabel,
                            "last-aria-label": t.lastPageLabel,
                            length: i.value,
                            "next-aria-label": t.nextPageLabel,
                            "previous-aria-label": t.prevPageLabel,
                            rounded: !0,
                            "show-first-last-page": !0,
                            "total-visible": t.showCurrentPage ? 1 : 0,
                            variant: "plain"
                        }, h), null)
                    ])
                ]);
            }), {};
        }
    });
    rl = mw({
        align: {
            type: String,
            default: "start"
        },
        fixed: Boolean,
        fixedOffset: [
            Number,
            String
        ],
        height: [
            Number,
            String
        ],
        lastFixed: Boolean,
        noPadding: Boolean,
        tag: String,
        width: [
            Number,
            String
        ],
        maxWidth: [
            Number,
            String
        ],
        nowrap: Boolean
    }, (t, e)=>{
        let { slots: a } = e;
        const r = t.tag ?? "td";
        return y(r, {
            class: [
                "v-data-table__td",
                {
                    "v-data-table-column--fixed": t.fixed,
                    "v-data-table-column--last-fixed": t.lastFixed,
                    "v-data-table-column--no-padding": t.noPadding,
                    "v-data-table-column--nowrap": t.nowrap
                },
                `v-data-table-column--align-${t.align}`
            ],
            style: {
                height: xe(t.height),
                width: xe(t.width),
                maxWidth: xe(t.maxWidth),
                left: xe(t.fixedOffset || null)
            }
        }, {
            default: ()=>[
                    a.default?.()
                ]
        });
    });
    _6 = $({
        headers: Array
    }, "DataTable-header");
    Nk = Symbol.for("vuetify:data-table-headers");
    Ok = {
        title: "",
        sortable: !1
    };
    P6 = {
        ...Ok,
        width: 48
    };
    function B6() {
        const e = (arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : []).map((a)=>({
                element: a,
                priority: 0
            }));
        return {
            enqueue: (a, r)=>{
                let n = !1;
                for(let i = 0; i < e.length; i++)if (e[i].priority > r) {
                    e.splice(i, 0, {
                        element: a,
                        priority: r
                    }), n = !0;
                    break;
                }
                n || e.push({
                    element: a,
                    priority: r
                });
            },
            size: ()=>e.length,
            count: ()=>{
                let a = 0;
                if (!e.length) return 0;
                const r = Math.floor(e[0].priority);
                for(let n = 0; n < e.length; n++)Math.floor(e[n].priority) === r && (a += 1);
                return a;
            },
            dequeue: ()=>e.shift()
        };
    }
    function am(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
        if (!t.children) e.push(t);
        else for (const a of t.children)am(a, e);
        return e;
    }
    function Hk(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : new Set;
        for (const a of t)a.key && e.add(a.key), a.children && Hk(a.children, e);
        return e;
    }
    function M6(t) {
        if (t.key) {
            if (t.key === "data-table-group") return Ok;
            if ([
                "data-table-expand",
                "data-table-select"
            ].includes(t.key)) return P6;
        }
    }
    function _f(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
        return t.children ? Math.max(e, ...t.children.map((a)=>_f(a, e + 1))) : e;
    }
    function R6(t) {
        let e = !1;
        function a(i) {
            let o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1;
            if (i) if (o && (i.fixed = !0), i.fixed) if (i.children) for(let s = i.children.length - 1; s >= 0; s--)a(i.children[s], !0);
            else e ? isNaN(Number(i.width)) ? fw(`Multiple fixed columns should have a static width (key: ${i.key})`) : i.minWidth = Math.max(Number(i.width) || 0, Number(i.minWidth) || 0) : i.lastFixed = !0, e = !0;
            else if (i.children) for(let s = i.children.length - 1; s >= 0; s--)a(i.children[s]);
            else e = !1;
        }
        for(let i = t.length - 1; i >= 0; i--)a(t[i]);
        function r(i) {
            let o = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
            if (!i) return o;
            if (i.children) {
                i.fixedOffset = o;
                for (const s of i.children)o = r(s, o);
            } else i.fixed && (i.fixedOffset = o, o += parseFloat(i.width || "0") || 0);
            return o;
        }
        let n = 0;
        for (const i of t)n = r(i, n);
    }
    function L6(t, e) {
        const a = [];
        let r = 0;
        const n = B6(t);
        for(; n.size() > 0;){
            let o = n.count();
            const s = [];
            let l = 1;
            for(; o > 0;){
                const { element: u, priority: c } = n.dequeue(), d = e - r - _f(u);
                if (s.push({
                    ...u,
                    rowspan: d ?? 1,
                    colspan: u.children ? am(u).length : 1
                }), u.children) for (const h of u.children){
                    const m = c % 1 + l / Math.pow(10, r + 2);
                    n.enqueue(h, r + d + m);
                }
                l += 1, o -= 1;
            }
            r += 1, a.push(s);
        }
        return {
            columns: t.map((o)=>am(o)).flat(),
            headers: a
        };
    }
    function Vk(t) {
        const e = [];
        for (const a of t){
            const r = {
                ...M6(a),
                ...a
            }, n = r.key ?? (typeof r.value == "string" ? r.value : null), i = r.value ?? n ?? null, o = {
                ...r,
                key: n,
                value: i,
                sortable: r.sortable ?? (r.key != null || !!r.sort),
                children: r.children ? Vk(r.children) : void 0
            };
            e.push(o);
        }
        return e;
    }
    function Pf(t, e) {
        const a = W([]), r = W([]), n = W({}), i = W({}), o = W({});
        Lt(()=>{
            const u = (t.headers || Object.keys(t.items[0] ?? {}).map((p)=>({
                    key: p,
                    title: sl(p)
                }))).slice(), c = Hk(u);
            e?.groupBy?.value.length && !c.has("data-table-group") && u.unshift({
                key: "data-table-group",
                title: "Group"
            }), e?.showSelect?.value && !c.has("data-table-select") && u.unshift({
                key: "data-table-select"
            }), e?.showExpand?.value && !c.has("data-table-expand") && u.push({
                key: "data-table-expand"
            });
            const d = Vk(u);
            R6(d);
            const h = Math.max(...d.map((p)=>_f(p))) + 1, m = L6(d, h);
            a.value = m.headers, r.value = m.columns;
            const f = m.headers.flat(1);
            for (const p of f)p.key && (p.sortable && (p.sort && (n.value[p.key] = p.sort), p.sortRaw && (i.value[p.key] = p.sortRaw)), p.filter && (o.value[p.key] = p.filter));
        });
        const s = {
            headers: a,
            columns: r,
            sortFunctions: n,
            sortRawFunctions: i,
            filterFunctions: o
        };
        return Kt(Nk, s), s;
    }
    function Jl() {
        const t = Et(Nk);
        if (!t) throw new Error("Missing headers!");
        return t;
    }
    let Wk, In, I6, z6, N6, Gk, zn, $k, O6;
    Wk = $({
        color: String,
        disableSort: Boolean,
        fixedHeader: Boolean,
        multiSort: Boolean,
        sortAscIcon: {
            type: Me,
            default: "$sortAsc"
        },
        sortDescIcon: {
            type: Me,
            default: "$sortDesc"
        },
        headerProps: {
            type: Object
        },
        sticky: Boolean,
        ...Vn(),
        ...Rl()
    }, "VDataTableHeaders");
    In = te()({
        name: "VDataTableHeaders",
        props: Wk(),
        setup (t, e) {
            let { slots: a } = e;
            const { t: r } = zt(), { toggleSort: n, sortBy: i, isSorted: o } = zk(), { someSelected: s, allSelected: l, selectAll: u, showSelectAll: c } = ql(), { columns: d, headers: h } = Jl(), { loaderClasses: m } = Uo(t);
            function f(F, D) {
                if (!(!(t.sticky || t.fixedHeader) && !F.fixed)) return {
                    position: "sticky",
                    left: F.fixed ? xe(F.fixedOffset) : void 0,
                    top: t.sticky || t.fixedHeader ? `calc(var(--v-table-header-height) * ${D})` : void 0
                };
            }
            function p(F) {
                const D = i.value.find((_)=>_.key === F.key);
                return D ? D.order === "asc" ? t.sortAscIcon : t.sortDescIcon : t.sortAscIcon;
            }
            const { backgroundColorClasses: g, backgroundColorStyles: v } = ft(t, "color"), { displayClasses: b, mobile: k } = Ia(t), S = T(()=>({
                    headers: h.value,
                    columns: d.value,
                    toggleSort: n,
                    isSorted: o,
                    sortBy: i.value,
                    someSelected: s.value,
                    allSelected: l.value,
                    selectAll: u,
                    getSortIcon: p
                })), x = T(()=>[
                    "v-data-table__th",
                    {
                        "v-data-table__th--sticky": t.sticky || t.fixedHeader
                    },
                    b.value,
                    m.value
                ]), C = (F)=>{
                let { column: D, x: _, y: A } = F;
                const E = D.key === "data-table-select" || D.key === "data-table-expand", B = Z(t.headerProps ?? {}, D.headerProps ?? {});
                return y(rl, Z({
                    tag: "th",
                    align: D.align,
                    class: [
                        {
                            "v-data-table__th--sortable": D.sortable && !t.disableSort,
                            "v-data-table__th--sorted": o(D),
                            "v-data-table__th--fixed": D.fixed
                        },
                        ...x.value
                    ],
                    style: {
                        width: xe(D.width),
                        minWidth: xe(D.minWidth),
                        maxWidth: xe(D.maxWidth),
                        ...f(D, A)
                    },
                    colspan: D.colspan,
                    rowspan: D.rowspan,
                    onClick: D.sortable ? ()=>n(D) : void 0,
                    fixed: D.fixed,
                    nowrap: D.nowrap,
                    lastFixed: D.lastFixed,
                    noPadding: E
                }, B), {
                    default: ()=>{
                        const P = `header.${D.key}`, M = {
                            column: D,
                            selectAll: u,
                            isSorted: o,
                            toggleSort: n,
                            sortBy: i.value,
                            someSelected: s.value,
                            allSelected: l.value,
                            getSortIcon: p
                        };
                        return a[P] ? a[P](M) : D.key === "data-table-select" ? a["header.data-table-select"]?.(M) ?? (c.value && y(Pr, {
                            modelValue: l.value,
                            indeterminate: s.value && !l.value,
                            "onUpdate:modelValue": u
                        }, null)) : y("div", {
                            class: "v-data-table-header__content"
                        }, [
                            y("span", null, [
                                D.title
                            ]),
                            D.sortable && !t.disableSort && y(_e, {
                                key: "icon",
                                class: "v-data-table-header__sort-icon",
                                icon: p(D)
                            }, null),
                            t.multiSort && o(D) && y("div", {
                                key: "badge",
                                class: [
                                    "v-data-table-header__sort-badge",
                                    ...g.value
                                ],
                                style: v.value
                            }, [
                                i.value.findIndex((R)=>R.key === D.key) + 1
                            ])
                        ]);
                    }
                });
            }, w = ()=>{
                const F = Z(t.headerProps ?? {} ?? {}), D = T(()=>d.value.filter((A)=>A?.sortable && !t.disableSort)), _ = T(()=>{
                    if (d.value.find((E)=>E.key === "data-table-select") != null) return l.value ? "$checkboxOn" : s.value ? "$checkboxIndeterminate" : "$checkboxOff";
                });
                return y(rl, Z({
                    tag: "th",
                    class: [
                        ...x.value
                    ],
                    colspan: h.value.length + 1
                }, F), {
                    default: ()=>[
                            y("div", {
                                class: "v-data-table-header__content"
                            }, [
                                y(_n, {
                                    chips: !0,
                                    class: "v-data-table__td-sort-select",
                                    clearable: !0,
                                    density: "default",
                                    items: D.value,
                                    label: r("$vuetify.dataTable.sortBy"),
                                    multiple: t.multiSort,
                                    variant: "underlined",
                                    "onClick:clear": ()=>i.value = [],
                                    appendIcon: _.value,
                                    "onClick:append": ()=>u(!l.value)
                                }, {
                                    ...a,
                                    chip: (A)=>y(oa, {
                                            onClick: A.item.raw?.sortable ? ()=>n(A.item.raw) : void 0,
                                            onMousedown: (E)=>{
                                                E.preventDefault(), E.stopPropagation();
                                            }
                                        }, {
                                            default: ()=>[
                                                    A.item.title,
                                                    y(_e, {
                                                        class: [
                                                            "v-data-table__td-sort-icon",
                                                            o(A.item.raw) && "v-data-table__td-sort-icon-active"
                                                        ],
                                                        icon: p(A.item.raw),
                                                        size: "small"
                                                    }, null)
                                                ]
                                        })
                                })
                            ])
                        ]
                });
            };
            ie(()=>k.value ? y("tr", null, [
                    y(w, null, null)
                ]) : y(Ce, null, [
                    a.headers ? a.headers(S.value) : h.value.map((F, D)=>y("tr", null, [
                            F.map((_, A)=>y(C, {
                                    column: _,
                                    x: A,
                                    y: D
                                }, null))
                        ])),
                    t.loading && y("tr", {
                        class: "v-data-table-progress"
                    }, [
                        y("th", {
                            colspan: d.value.length
                        }, [
                            y(jo, {
                                name: "v-data-table-progress",
                                absolute: !0,
                                active: !0,
                                color: typeof t.loading == "boolean" ? void 0 : t.loading,
                                indeterminate: !0
                            }, {
                                default: a.loader
                            })
                        ])
                    ])
                ]));
        }
    });
    I6 = $({
        item: {
            type: Object,
            required: !0
        }
    }, "VDataTableGroupHeaderRow");
    z6 = te()({
        name: "VDataTableGroupHeaderRow",
        props: I6(),
        setup (t, e) {
            let { slots: a } = e;
            const { isGroupOpen: r, toggleGroup: n, extractRows: i } = Ak(), { isSelected: o, isSomeSelected: s, select: l } = ql(), { columns: u } = Jl(), c = T(()=>i([
                    t.item
                ]));
            return ()=>y("tr", {
                    class: "v-data-table-group-header-row",
                    style: {
                        "--v-data-table-group-header-row-depth": t.item.depth
                    }
                }, [
                    u.value.map((d)=>{
                        if (d.key === "data-table-group") {
                            const h = r(t.item) ? "$expand" : "$next", m = ()=>n(t.item);
                            return a["data-table-group"]?.({
                                item: t.item,
                                count: c.value.length,
                                props: {
                                    icon: h,
                                    onClick: m
                                }
                            }) ?? y(rl, {
                                class: "v-data-table-group-header-row__column"
                            }, {
                                default: ()=>[
                                        y(Re, {
                                            size: "small",
                                            variant: "text",
                                            icon: h,
                                            onClick: m
                                        }, null),
                                        y("span", null, [
                                            t.item.value
                                        ]),
                                        y("span", null, [
                                            Pe("("),
                                            c.value.length,
                                            Pe(")")
                                        ])
                                    ]
                            });
                        }
                        if (d.key === "data-table-select") {
                            const h = o(c.value), m = s(c.value) && !h, f = (p)=>l(c.value, p);
                            return a["data-table-select"]?.({
                                props: {
                                    modelValue: h,
                                    indeterminate: m,
                                    "onUpdate:modelValue": f
                                }
                            }) ?? y("td", null, [
                                y(Pr, {
                                    modelValue: h,
                                    indeterminate: m,
                                    "onUpdate:modelValue": f
                                }, null)
                            ]);
                        }
                        return y("td", null, null);
                    })
                ]);
        }
    });
    N6 = $({
        index: Number,
        item: Object,
        cellProps: [
            Object,
            Function
        ],
        onClick: ra(),
        onContextmenu: ra(),
        onDblclick: ra(),
        ...Vn()
    }, "VDataTableRow");
    Bf = te()({
        name: "VDataTableRow",
        props: N6(),
        setup (t, e) {
            let { slots: a } = e;
            const { displayClasses: r, mobile: n } = Ia(t, "v-data-table__tr"), { isSelected: i, toggleSelect: o, someSelected: s, allSelected: l, selectAll: u } = ql(), { isExpanded: c, toggleExpand: d } = Sk(), { toggleSort: h, sortBy: m, isSorted: f } = zk(), { columns: p } = Jl();
            ie(()=>y("tr", {
                    class: [
                        "v-data-table__tr",
                        {
                            "v-data-table__tr--clickable": !!(t.onClick || t.onContextmenu || t.onDblclick)
                        },
                        r.value
                    ],
                    onClick: t.onClick,
                    onContextmenu: t.onContextmenu,
                    onDblclick: t.onDblclick
                }, [
                    t.item && p.value.map((g, v)=>{
                        const b = t.item, k = `item.${g.key}`, S = `header.${g.key}`, x = {
                            index: t.index,
                            item: b.raw,
                            internalItem: b,
                            value: Ls(b.columns, g.key),
                            column: g,
                            isSelected: i,
                            toggleSelect: o,
                            isExpanded: c,
                            toggleExpand: d
                        }, C = {
                            column: g,
                            selectAll: u,
                            isSorted: f,
                            toggleSort: h,
                            sortBy: m.value,
                            someSelected: s.value,
                            allSelected: l.value,
                            getSortIcon: ()=>""
                        }, w = typeof t.cellProps == "function" ? t.cellProps({
                            index: x.index,
                            item: x.item,
                            internalItem: x.internalItem,
                            value: x.value,
                            column: g
                        }) : t.cellProps, F = typeof g.cellProps == "function" ? g.cellProps({
                            index: x.index,
                            item: x.item,
                            internalItem: x.internalItem,
                            value: x.value
                        }) : g.cellProps;
                        return y(rl, Z({
                            align: g.align,
                            class: {
                                "v-data-table__td--expanded-row": g.key === "data-table-expand",
                                "v-data-table__td--select-row": g.key === "data-table-select"
                            },
                            fixed: g.fixed,
                            fixedOffset: g.fixedOffset,
                            lastFixed: g.lastFixed,
                            maxWidth: n.value ? void 0 : g.maxWidth,
                            noPadding: g.key === "data-table-select" || g.key === "data-table-expand",
                            nowrap: g.nowrap,
                            width: n.value ? void 0 : g.width
                        }, w, F), {
                            default: ()=>{
                                if (g.key === "data-table-select") return a["item.data-table-select"]?.({
                                    ...x,
                                    props: {
                                        disabled: !b.selectable,
                                        modelValue: i([
                                            b
                                        ]),
                                        onClick: gn(()=>o(b), [
                                            "stop"
                                        ])
                                    }
                                }) ?? y(Pr, {
                                    disabled: !b.selectable,
                                    modelValue: i([
                                        b
                                    ]),
                                    onClick: gn((_)=>o(b, t.index, _), [
                                        "stop"
                                    ])
                                }, null);
                                if (g.key === "data-table-expand") return a["item.data-table-expand"]?.({
                                    ...x,
                                    props: {
                                        icon: c(b) ? "$collapse" : "$expand",
                                        size: "small",
                                        variant: "text",
                                        onClick: gn(()=>d(b), [
                                            "stop"
                                        ])
                                    }
                                }) ?? y(Re, {
                                    icon: c(b) ? "$collapse" : "$expand",
                                    size: "small",
                                    variant: "text",
                                    onClick: gn(()=>d(b), [
                                        "stop"
                                    ])
                                }, null);
                                if (a[k] && !n.value) return a[k](x);
                                const D = Se(x.value);
                                return n.value ? y(Ce, null, [
                                    y("div", {
                                        class: "v-data-table__td-title"
                                    }, [
                                        a[S]?.(C) ?? g.title
                                    ]),
                                    y("div", {
                                        class: "v-data-table__td-value"
                                    }, [
                                        a[k]?.(x) ?? D
                                    ])
                                ]) : D;
                            }
                        });
                    })
                ]));
        }
    });
    Gk = $({
        loading: [
            Boolean,
            String
        ],
        loadingText: {
            type: String,
            default: "$vuetify.dataIterator.loadingText"
        },
        hideNoData: Boolean,
        items: {
            type: Array,
            default: ()=>[]
        },
        noDataText: {
            type: String,
            default: "$vuetify.noDataText"
        },
        rowProps: [
            Object,
            Function
        ],
        cellProps: [
            Object,
            Function
        ],
        ...Vn()
    }, "VDataTableRows");
    zn = te()({
        name: "VDataTableRows",
        inheritAttrs: !1,
        props: Gk(),
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const { columns: n } = Jl(), { expandOnClick: i, toggleExpand: o, isExpanded: s } = Sk(), { isSelected: l, toggleSelect: u } = ql(), { toggleGroup: c, isGroupOpen: d } = Ak(), { t: h } = zt(), { mobile: m } = Ia(t);
            return ie(()=>t.loading && (!t.items.length || r.loading) ? y("tr", {
                    class: "v-data-table-rows-loading",
                    key: "loading"
                }, [
                    y("td", {
                        colspan: n.value.length
                    }, [
                        r.loading?.() ?? h(t.loadingText)
                    ])
                ]) : !t.loading && !t.items.length && !t.hideNoData ? y("tr", {
                    class: "v-data-table-rows-no-data",
                    key: "no-data"
                }, [
                    y("td", {
                        colspan: n.value.length
                    }, [
                        r["no-data"]?.() ?? h(t.noDataText)
                    ])
                ]) : y(Ce, null, [
                    t.items.map((f, p)=>{
                        if (f.type === "group") {
                            const b = {
                                index: p,
                                item: f,
                                columns: n.value,
                                isExpanded: s,
                                toggleExpand: o,
                                isSelected: l,
                                toggleSelect: u,
                                toggleGroup: c,
                                isGroupOpen: d
                            };
                            return r["group-header"] ? r["group-header"](b) : y(z6, Z({
                                key: `group-header_${f.id}`,
                                item: f
                            }, ap(a, ":group-header", ()=>b)), r);
                        }
                        const g = {
                            index: p,
                            item: f.raw,
                            internalItem: f,
                            columns: n.value,
                            isExpanded: s,
                            toggleExpand: o,
                            isSelected: l,
                            toggleSelect: u
                        }, v = {
                            ...g,
                            props: Z({
                                key: `item_${f.key ?? f.index}`,
                                onClick: i.value ? ()=>{
                                    o(f);
                                } : void 0,
                                index: p,
                                item: f,
                                cellProps: t.cellProps,
                                mobile: m.value
                            }, ap(a, ":row", ()=>g), typeof t.rowProps == "function" ? t.rowProps({
                                item: g.item,
                                index: g.index,
                                internalItem: g.internalItem
                            }) : t.rowProps)
                        };
                        return y(Ce, {
                            key: v.props.key
                        }, [
                            r.item ? r.item(v) : y(Bf, v.props, r),
                            s(f) && r["expanded-row"]?.(g)
                        ]);
                    })
                ])), {};
        }
    });
    $k = $({
        fixedHeader: Boolean,
        fixedFooter: Boolean,
        height: [
            Number,
            String
        ],
        hover: Boolean,
        ...we(),
        ...ta(),
        ...We(),
        ...Qe()
    }, "VTable");
    Nn = te()({
        name: "VTable",
        props: $k(),
        setup (t, e) {
            let { slots: a, emit: r } = e;
            const { themeClasses: n } = ut(t), { densityClasses: i } = xa(t);
            return ie(()=>y(t.tag, {
                    class: [
                        "v-table",
                        {
                            "v-table--fixed-height": !!t.height,
                            "v-table--fixed-header": t.fixedHeader,
                            "v-table--fixed-footer": t.fixedFooter,
                            "v-table--has-top": !!a.top,
                            "v-table--has-bottom": !!a.bottom,
                            "v-table--hover": t.hover
                        },
                        n.value,
                        i.value,
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            a.top?.(),
                            a.default ? y("div", {
                                class: "v-table__wrapper",
                                style: {
                                    height: xe(t.height)
                                }
                            }, [
                                y("table", null, [
                                    a.default()
                                ])
                            ]) : a.wrapper?.(),
                            a.bottom?.()
                        ]
                })), {};
        }
    });
    O6 = $({
        items: {
            type: Array,
            default: ()=>[]
        },
        itemValue: {
            type: [
                String,
                Array,
                Function
            ],
            default: "id"
        },
        itemSelectable: {
            type: [
                String,
                Array,
                Function
            ],
            default: null
        },
        rowProps: [
            Object,
            Function
        ],
        cellProps: [
            Object,
            Function
        ],
        returnObject: Boolean
    }, "DataTable-items");
    function H6(t, e, a, r) {
        const n = t.returnObject ? e : $t(e, t.itemValue), i = $t(e, t.itemSelectable, !0), o = r.reduce((s, l)=>(l.key != null && (s[l.key] = $t(e, l.value)), s), {});
        return {
            type: "item",
            key: t.returnObject ? $t(e, t.itemValue) : n,
            index: a,
            value: n,
            selectable: i,
            columns: o,
            raw: e
        };
    }
    function V6(t, e, a) {
        return e.map((r, n)=>H6(t, r, n, a));
    }
    function Mf(t, e) {
        return {
            items: T(()=>V6(t, t.items, e.value))
        };
    }
    let Rf, W6, $6, j6, Y6, Uk, rm, q6, nm, K6;
    Rf = $({
        ...Gk(),
        hideDefaultBody: Boolean,
        hideDefaultFooter: Boolean,
        hideDefaultHeader: Boolean,
        width: [
            String,
            Number
        ],
        search: String,
        ...xk(),
        ...wf(),
        ..._6(),
        ...O6(),
        ...Mk(),
        ...Lk(),
        ...Wk(),
        ...$k()
    }, "DataTable");
    W6 = $({
        ...Cf(),
        ...Rf(),
        ...Ko(),
        ...Ef()
    }, "VDataTable");
    G6 = te()({
        name: "VDataTable",
        props: W6(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:page": (t)=>!0,
            "update:itemsPerPage": (t)=>!0,
            "update:sortBy": (t)=>!0,
            "update:options": (t)=>!0,
            "update:groupBy": (t)=>!0,
            "update:expanded": (t)=>!0,
            "update:currentItems": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const { groupBy: n } = Sf(t), { sortBy: i, multiSort: o, mustSort: s } = Kl(t), { page: l, itemsPerPage: u } = Af(t), { disableSort: c } = Ei(t), { columns: d, headers: h, sortFunctions: m, sortRawFunctions: f, filterFunctions: p } = Pf(t, {
                groupBy: n,
                showSelect: K(t, "showSelect"),
                showExpand: K(t, "showExpand")
            }), { items: g } = Mf(t, d), v = K(t, "search"), { filteredItems: b } = Xo(t, g, v, {
                transform: (U)=>U.columns,
                customKeyFilter: p
            }), { toggleSort: k } = Xl({
                sortBy: i,
                multiSort: o,
                mustSort: s,
                page: l
            }), { sortByWithGroups: S, opened: x, extractRows: C, isGroupOpen: w, toggleGroup: F } = $l({
                groupBy: n,
                sortBy: i,
                disableSort: c
            }), { sortedItems: D } = Tf(t, b, S, {
                transform: (U)=>({
                        ...U.raw,
                        ...U.columns
                    }),
                sortFunctions: m,
                sortRawFunctions: f
            }), { flatItems: _ } = Ul(D, n, x), A = T(()=>_.value.length), { startIndex: E, stopIndex: B, pageCount: P, setItemsPerPage: M } = Df({
                page: l,
                itemsPerPage: u,
                itemsLength: A
            }), { paginatedItems: R } = _k({
                items: _,
                startIndex: E,
                stopIndex: B,
                itemsPerPage: u
            }), z = T(()=>C(R.value)), { isSelected: N, select: H, selectAll: I, toggleSelect: L, someSelected: G, allSelected: q } = Yl(t, {
                allItems: g,
                currentPage: z
            }), { isExpanded: X, toggleExpand: ue } = Gl(t);
            jl({
                page: l,
                itemsPerPage: u,
                sortBy: i,
                groupBy: n,
                search: v
            }), Bt({
                VDataTableRows: {
                    hideNoData: K(t, "hideNoData"),
                    noDataText: K(t, "noDataText"),
                    loading: K(t, "loading"),
                    loadingText: K(t, "loadingText")
                }
            });
            const J = T(()=>({
                    page: l.value,
                    itemsPerPage: u.value,
                    sortBy: i.value,
                    pageCount: P.value,
                    toggleSort: k,
                    setItemsPerPage: M,
                    someSelected: G.value,
                    allSelected: q.value,
                    isSelected: N,
                    select: H,
                    selectAll: I,
                    toggleSelect: L,
                    isExpanded: X,
                    toggleExpand: ue,
                    isGroupOpen: w,
                    toggleGroup: F,
                    items: z.value.map((U)=>U.raw),
                    internalItems: z.value,
                    groupedItems: R.value,
                    columns: d.value,
                    headers: h.value
                }));
            return ie(()=>{
                const U = To.filterProps(t), le = In.filterProps(t), fe = zn.filterProps(t), ee = Nn.filterProps(t);
                return y(Nn, Z({
                    class: [
                        "v-data-table",
                        {
                            "v-data-table--show-select": t.showSelect,
                            "v-data-table--loading": t.loading
                        },
                        t.class
                    ],
                    style: t.style
                }, ee, {
                    fixedHeader: t.fixedHeader || t.sticky
                }), {
                    top: ()=>r.top?.(J.value),
                    default: ()=>r.default ? r.default(J.value) : y(Ce, null, [
                            r.colgroup?.(J.value),
                            !t.hideDefaultHeader && y("thead", {
                                key: "thead"
                            }, [
                                y(In, le, r)
                            ]),
                            r.thead?.(J.value),
                            !t.hideDefaultBody && y("tbody", null, [
                                r["body.prepend"]?.(J.value),
                                r.body ? r.body(J.value) : y(zn, Z(a, fe, {
                                    items: R.value
                                }), r),
                                r["body.append"]?.(J.value)
                            ]),
                            r.tbody?.(J.value),
                            r.tfoot?.(J.value)
                        ]),
                    bottom: ()=>r.bottom ? r.bottom(J.value) : !t.hideDefaultFooter && y(Ce, null, [
                            y(_a, null, null),
                            y(To, U, {
                                prepend: r["footer.prepend"]
                            })
                        ])
                });
            }), {};
        }
    });
    $6 = $({
        ...It(Rf(), [
            "hideDefaultFooter"
        ]),
        ...wf(),
        ...L0(),
        ...Ko()
    }, "VDataTableVirtual");
    U6 = te()({
        name: "VDataTableVirtual",
        props: $6(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:sortBy": (t)=>!0,
            "update:options": (t)=>!0,
            "update:groupBy": (t)=>!0,
            "update:expanded": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const { groupBy: n } = Sf(t), { sortBy: i, multiSort: o, mustSort: s } = Kl(t), { disableSort: l } = Ei(t), { columns: u, headers: c, filterFunctions: d, sortFunctions: h, sortRawFunctions: m } = Pf(t, {
                groupBy: n,
                showSelect: K(t, "showSelect"),
                showExpand: K(t, "showExpand")
            }), { items: f } = Mf(t, u), p = K(t, "search"), { filteredItems: g } = Xo(t, f, p, {
                transform: (ee)=>ee.columns,
                customKeyFilter: d
            }), { toggleSort: v } = Xl({
                sortBy: i,
                multiSort: o,
                mustSort: s
            }), { sortByWithGroups: b, opened: k, extractRows: S, isGroupOpen: x, toggleGroup: C } = $l({
                groupBy: n,
                sortBy: i,
                disableSort: l
            }), { sortedItems: w } = Tf(t, g, b, {
                transform: (ee)=>({
                        ...ee.raw,
                        ...ee.columns
                    }),
                sortFunctions: h,
                sortRawFunctions: m
            }), { flatItems: F } = Ul(w, n, k), D = T(()=>S(F.value)), { isSelected: _, select: A, selectAll: E, toggleSelect: B, someSelected: P, allSelected: M } = Yl(t, {
                allItems: D,
                currentPage: D
            }), { isExpanded: R, toggleExpand: z } = Gl(t), { containerRef: N, markerRef: H, paddingTop: I, paddingBottom: L, computedItems: G, handleItemResize: q, handleScroll: X, handleScrollend: ue, calculateVisibleItems: J, scrollToIndex: U } = I0(t, F), le = T(()=>G.value.map((ee)=>ee.raw));
            jl({
                sortBy: i,
                page: de(1),
                itemsPerPage: de(-1),
                groupBy: n,
                search: p
            }), Bt({
                VDataTableRows: {
                    hideNoData: K(t, "hideNoData"),
                    noDataText: K(t, "noDataText"),
                    loading: K(t, "loading"),
                    loadingText: K(t, "loadingText")
                }
            });
            const fe = T(()=>({
                    sortBy: i.value,
                    toggleSort: v,
                    someSelected: P.value,
                    allSelected: M.value,
                    isSelected: _,
                    select: A,
                    selectAll: E,
                    toggleSelect: B,
                    isExpanded: R,
                    toggleExpand: z,
                    isGroupOpen: x,
                    toggleGroup: C,
                    items: D.value.map((ee)=>ee.raw),
                    internalItems: D.value,
                    groupedItems: F.value,
                    columns: u.value,
                    headers: c.value
                }));
            return ie(()=>{
                const ee = In.filterProps(t), ae = zn.filterProps(t), se = Nn.filterProps(t);
                return y(Nn, Z({
                    class: [
                        "v-data-table",
                        {
                            "v-data-table--loading": t.loading
                        },
                        t.class
                    ],
                    style: t.style
                }, se, {
                    fixedHeader: t.fixedHeader || t.sticky
                }), {
                    top: ()=>r.top?.(fe.value),
                    wrapper: ()=>y("div", {
                            ref: N,
                            onScrollPassive: X,
                            onScrollend: ue,
                            class: "v-table__wrapper",
                            style: {
                                height: xe(t.height)
                            }
                        }, [
                            y("table", null, [
                                r.colgroup?.(fe.value),
                                !t.hideDefaultHeader && y("thead", {
                                    key: "thead"
                                }, [
                                    y(In, ee, r)
                                ]),
                                r.thead?.(fe.value),
                                !t.hideDefaultBody && y("tbody", {
                                    key: "tbody"
                                }, [
                                    y("tr", {
                                        ref: H,
                                        style: {
                                            height: xe(I.value),
                                            border: 0
                                        }
                                    }, [
                                        y("td", {
                                            colspan: u.value.length,
                                            style: {
                                                height: 0,
                                                border: 0
                                            }
                                        }, null)
                                    ]),
                                    r["body.prepend"]?.(fe.value),
                                    y(zn, Z(a, ae, {
                                        items: le.value
                                    }), {
                                        ...r,
                                        item: (pe)=>y(R0, {
                                                key: pe.internalItem.index,
                                                renderless: !0,
                                                "onUpdate:height": (ke)=>q(pe.internalItem.index, ke)
                                            }, {
                                                default: (ke)=>{
                                                    let { itemRef: be } = ke;
                                                    return r.item?.({
                                                        ...pe,
                                                        itemRef: be
                                                    }) ?? y(Bf, Z(pe.props, {
                                                        ref: be,
                                                        key: pe.internalItem.index,
                                                        index: pe.internalItem.index
                                                    }), r);
                                                }
                                            })
                                    }),
                                    r["body.append"]?.(fe.value),
                                    y("tr", {
                                        style: {
                                            height: xe(L.value),
                                            border: 0
                                        }
                                    }, [
                                        y("td", {
                                            colspan: u.value.length,
                                            style: {
                                                height: 0,
                                                border: 0
                                            }
                                        }, null)
                                    ])
                                ]),
                                r.tbody?.(fe.value),
                                r.tfoot?.(fe.value)
                            ])
                        ]),
                    bottom: ()=>r.bottom?.(fe.value)
                });
            }), {
                calculateVisibleItems: J,
                scrollToIndex: U
            };
        }
    });
    j6 = $({
        itemsLength: {
            type: [
                Number,
                String
            ],
            required: !0
        },
        ...Cf(),
        ...Rf(),
        ...Ef()
    }, "VDataTableServer");
    Y6 = te()({
        name: "VDataTableServer",
        props: j6(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:page": (t)=>!0,
            "update:itemsPerPage": (t)=>!0,
            "update:sortBy": (t)=>!0,
            "update:options": (t)=>!0,
            "update:expanded": (t)=>!0,
            "update:groupBy": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const { groupBy: n } = Sf(t), { sortBy: i, multiSort: o, mustSort: s } = Kl(t), { page: l, itemsPerPage: u } = Af(t), { disableSort: c } = Ei(t), d = T(()=>parseInt(t.itemsLength, 10)), { columns: h, headers: m } = Pf(t, {
                groupBy: n,
                showSelect: K(t, "showSelect"),
                showExpand: K(t, "showExpand")
            }), { items: f } = Mf(t, h), { toggleSort: p } = Xl({
                sortBy: i,
                multiSort: o,
                mustSort: s,
                page: l
            }), { opened: g, isGroupOpen: v, toggleGroup: b, extractRows: k } = $l({
                groupBy: n,
                sortBy: i,
                disableSort: c
            }), { pageCount: S, setItemsPerPage: x } = Df({
                page: l,
                itemsPerPage: u,
                itemsLength: d
            }), { flatItems: C } = Ul(f, n, g), { isSelected: w, select: F, selectAll: D, toggleSelect: _, someSelected: A, allSelected: E } = Yl(t, {
                allItems: f,
                currentPage: f
            }), { isExpanded: B, toggleExpand: P } = Gl(t), M = T(()=>k(f.value));
            jl({
                page: l,
                itemsPerPage: u,
                sortBy: i,
                groupBy: n,
                search: K(t, "search")
            }), Kt("v-data-table", {
                toggleSort: p,
                sortBy: i
            }), Bt({
                VDataTableRows: {
                    hideNoData: K(t, "hideNoData"),
                    noDataText: K(t, "noDataText"),
                    loading: K(t, "loading"),
                    loadingText: K(t, "loadingText")
                }
            });
            const R = T(()=>({
                    page: l.value,
                    itemsPerPage: u.value,
                    sortBy: i.value,
                    pageCount: S.value,
                    toggleSort: p,
                    setItemsPerPage: x,
                    someSelected: A.value,
                    allSelected: E.value,
                    isSelected: w,
                    select: F,
                    selectAll: D,
                    toggleSelect: _,
                    isExpanded: B,
                    toggleExpand: P,
                    isGroupOpen: v,
                    toggleGroup: b,
                    items: M.value.map((z)=>z.raw),
                    internalItems: M.value,
                    groupedItems: C.value,
                    columns: h.value,
                    headers: m.value
                }));
            ie(()=>{
                const z = To.filterProps(t), N = In.filterProps(t), H = zn.filterProps(t), I = Nn.filterProps(t);
                return y(Nn, Z({
                    class: [
                        "v-data-table",
                        {
                            "v-data-table--loading": t.loading
                        },
                        t.class
                    ],
                    style: t.style
                }, I, {
                    fixedHeader: t.fixedHeader || t.sticky
                }), {
                    top: ()=>r.top?.(R.value),
                    default: ()=>r.default ? r.default(R.value) : y(Ce, null, [
                            r.colgroup?.(R.value),
                            !t.hideDefaultHeader && y("thead", {
                                key: "thead",
                                class: "v-data-table__thead",
                                role: "rowgroup"
                            }, [
                                y(In, N, r)
                            ]),
                            r.thead?.(R.value),
                            !t.hideDefaultBody && y("tbody", {
                                class: "v-data-table__tbody",
                                role: "rowgroup"
                            }, [
                                r["body.prepend"]?.(R.value),
                                r.body ? r.body(R.value) : y(zn, Z(a, H, {
                                    items: C.value
                                }), r),
                                r["body.append"]?.(R.value)
                            ]),
                            r.tbody?.(R.value),
                            r.tfoot?.(R.value)
                        ]),
                    bottom: ()=>r.bottom ? r.bottom(R.value) : !t.hideDefaultFooter && y(Ce, null, [
                            y(_a, null, null),
                            y(To, z, {
                                prepend: r["footer.prepend"]
                            })
                        ])
                });
            });
        }
    });
    Uk = $({
        active: {
            type: [
                String,
                Array
            ],
            default: void 0
        },
        controlHeight: [
            Number,
            String
        ],
        disabled: {
            type: [
                Boolean,
                String,
                Array
            ],
            default: null
        },
        nextIcon: {
            type: Me,
            default: "$next"
        },
        prevIcon: {
            type: Me,
            default: "$prev"
        },
        modeIcon: {
            type: Me,
            default: "$subgroup"
        },
        text: String,
        viewMode: {
            type: String,
            default: "month"
        }
    }, "VDatePickerControls");
    rm = te()({
        name: "VDatePickerControls",
        props: Uk(),
        emits: {
            "click:year": ()=>!0,
            "click:month": ()=>!0,
            "click:prev": ()=>!0,
            "click:next": ()=>!0,
            "click:text": ()=>!0
        },
        setup (t, e) {
            let { emit: a } = e;
            const r = T(()=>Array.isArray(t.disabled) ? t.disabled.includes("text") : !!t.disabled), n = T(()=>Array.isArray(t.disabled) ? t.disabled.includes("mode") : !!t.disabled), i = T(()=>Array.isArray(t.disabled) ? t.disabled.includes("prev") : !!t.disabled), o = T(()=>Array.isArray(t.disabled) ? t.disabled.includes("next") : !!t.disabled);
            function s() {
                a("click:prev");
            }
            function l() {
                a("click:next");
            }
            function u() {
                a("click:year");
            }
            function c() {
                a("click:month");
            }
            return ie(()=>y("div", {
                    class: [
                        "v-date-picker-controls"
                    ],
                    style: {
                        "--v-date-picker-controls-height": xe(t.controlHeight)
                    }
                }, [
                    y(Re, {
                        class: "v-date-picker-controls__month-btn",
                        "data-testid": "month-btn",
                        disabled: r.value,
                        text: t.text,
                        variant: "text",
                        rounded: !0,
                        onClick: c
                    }, null),
                    y(Re, {
                        class: "v-date-picker-controls__mode-btn",
                        "data-testid": "year-btn",
                        disabled: n.value,
                        density: "comfortable",
                        icon: t.modeIcon,
                        variant: "text",
                        onClick: u
                    }, null),
                    y(un, null, null),
                    y("div", {
                        class: "v-date-picker-controls__month"
                    }, [
                        y(Re, {
                            "data-testid": "prev-month",
                            disabled: i.value,
                            density: "comfortable",
                            icon: t.prevIcon,
                            variant: "text",
                            onClick: s
                        }, null),
                        y(Re, {
                            "data-testid": "next-month",
                            disabled: o.value,
                            icon: t.nextIcon,
                            density: "comfortable",
                            variant: "text",
                            onClick: l
                        }, null)
                    ])
                ])), {};
        }
    });
    q6 = $({
        appendIcon: Me,
        color: String,
        header: String,
        transition: String,
        onClick: ra()
    }, "VDatePickerHeader");
    nm = te()({
        name: "VDatePickerHeader",
        props: q6(),
        emits: {
            click: ()=>!0,
            "click:append": ()=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const { backgroundColorClasses: n, backgroundColorStyles: i } = ft(t, "color");
            function o() {
                a("click");
            }
            function s() {
                a("click:append");
            }
            return ie(()=>{
                const l = !!(r.default || t.header), u = !!(r.append || t.appendIcon);
                return y("div", {
                    class: [
                        "v-date-picker-header",
                        {
                            "v-date-picker-header--clickable": !!t.onClick
                        },
                        n.value
                    ],
                    style: i.value,
                    onClick: o
                }, [
                    r.prepend && y("div", {
                        key: "prepend",
                        class: "v-date-picker-header__prepend"
                    }, [
                        r.prepend()
                    ]),
                    l && y(ba, {
                        key: "content",
                        name: t.transition
                    }, {
                        default: ()=>[
                                y("div", {
                                    key: t.header,
                                    class: "v-date-picker-header__content"
                                }, [
                                    r.default?.() ?? t.header
                                ])
                            ]
                    }),
                    u && y("div", {
                        class: "v-date-picker-header__append"
                    }, [
                        r.append ? y(Ge, {
                            key: "append-defaults",
                            disabled: !t.appendIcon,
                            defaults: {
                                VBtn: {
                                    icon: t.appendIcon,
                                    variant: "text"
                                }
                            }
                        }, {
                            default: ()=>[
                                    r.append?.()
                                ]
                        }) : y(Re, {
                            key: "append-btn",
                            icon: t.appendIcon,
                            variant: "text",
                            onClick: s
                        }, null)
                    ])
                ]);
            }), {};
        }
    });
    K6 = $({
        allowedDates: [
            Array,
            Function
        ],
        disabled: {
            type: Boolean,
            default: null
        },
        displayValue: null,
        modelValue: Array,
        month: [
            Number,
            String
        ],
        max: null,
        min: null,
        showAdjacentMonths: Boolean,
        year: [
            Number,
            String
        ],
        weekdays: {
            type: Array,
            default: ()=>[
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6
                ]
        },
        weeksInMonth: {
            type: String,
            default: "dynamic"
        },
        firstDayOfWeek: {
            type: [
                Number,
                String
            ],
            default: void 0
        }
    }, "calendar");
    function X6(t) {
        const e = Po(), a = Be(t, "modelValue", [], (m)=>Tt(m).map((f)=>e.date(f))), r = T(()=>t.displayValue ? e.date(t.displayValue) : a.value.length > 0 ? e.date(a.value[0]) : t.min ? e.date(t.min) : Array.isArray(t.allowedDates) ? e.date(t.allowedDates[0]) : e.date()), n = Be(t, "year", void 0, (m)=>{
            const f = m != null ? Number(m) : e.getYear(r.value);
            return e.startOfYear(e.setYear(e.date(), f));
        }, (m)=>e.getYear(m)), i = Be(t, "month", void 0, (m)=>{
            const f = m != null ? Number(m) : e.getMonth(r.value), p = e.setYear(e.startOfMonth(e.date()), e.getYear(n.value));
            return e.setMonth(p, f);
        }, (m)=>e.getMonth(m)), o = T(()=>{
            const m = e.toJsDate(e.startOfWeek(e.date(), t.firstDayOfWeek)).getDay();
            return [
                0,
                1,
                2,
                3,
                4,
                5,
                6
            ].map((f)=>(f + m) % 7);
        }), s = T(()=>{
            const m = e.getWeekArray(i.value, t.firstDayOfWeek), f = m.flat(), p = 6 * 7;
            if (t.weeksInMonth === "static" && f.length < p) {
                const g = f[f.length - 1];
                let v = [];
                for(let b = 1; b <= p - f.length; b++)v.push(e.addDays(g, b)), b % 7 === 0 && (m.push(v), v = []);
            }
            return m;
        });
        function l(m, f) {
            return m.filter((p)=>o.value.includes(e.toJsDate(p).getDay())).map((p, g)=>{
                const v = e.toISO(p), b = !e.isSameMonth(p, i.value), k = e.isSameDay(p, e.startOfMonth(i.value)), S = e.isSameDay(p, e.endOfMonth(i.value)), x = e.isSameDay(p, i.value);
                return {
                    date: p,
                    isoDate: v,
                    formatted: e.format(p, "keyboardDate"),
                    year: e.getYear(p),
                    month: e.getMonth(p),
                    isDisabled: h(p),
                    isWeekStart: g % 7 === 0,
                    isWeekEnd: g % 7 === 6,
                    isToday: e.isSameDay(p, f),
                    isAdjacent: b,
                    isHidden: b && !t.showAdjacentMonths,
                    isStart: k,
                    isSelected: a.value.some((C)=>e.isSameDay(p, C)),
                    isEnd: S,
                    isSame: x,
                    localized: e.format(p, "dayOfMonth")
                };
            });
        }
        const u = T(()=>{
            const m = e.startOfWeek(r.value, t.firstDayOfWeek), f = [];
            for(let g = 0; g <= 6; g++)f.push(e.addDays(m, g));
            const p = e.date();
            return l(f, p);
        }), c = T(()=>{
            const m = s.value.flat(), f = e.date();
            return l(m, f);
        }), d = T(()=>s.value.map((m)=>m.length ? e.getWeek(m[0], t.firstDayOfWeek) : null));
        function h(m) {
            if (t.disabled) return !0;
            const f = e.date(m);
            return t.min && e.isAfter(e.date(t.min), f) || t.max && e.isAfter(f, e.date(t.max)) ? !0 : Array.isArray(t.allowedDates) && t.allowedDates.length > 0 ? !t.allowedDates.some((p)=>e.isSameDay(e.date(p), f)) : typeof t.allowedDates == "function" ? !t.allowedDates(f) : !t.weekdays.includes(e.toJsDate(f).getDay());
        }
        return {
            displayValue: r,
            daysInMonth: c,
            daysInWeek: u,
            genDays: l,
            model: a,
            weeksInMonth: s,
            weekDays: o,
            weekNumbers: d
        };
    }
    let jk, im, Yk, om, qk, sm, J6, Z6, Q6, tz, az, rz, nz, iz, oz, sz, Ty, lz, Kk, uz, cz, dz, hz, mz, fz, pz, gz, vz, yz, bz, Fz, kz, xz, wz;
    jk = $({
        color: String,
        hideWeekdays: Boolean,
        multiple: [
            Boolean,
            Number,
            String
        ],
        showWeek: Boolean,
        transition: {
            type: String,
            default: "picker-transition"
        },
        reverseTransition: {
            type: String,
            default: "picker-reverse-transition"
        },
        ...It(K6(), [
            "displayValue"
        ])
    }, "VDatePickerMonth");
    im = te()({
        name: "VDatePickerMonth",
        props: jk(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:month": (t)=>!0,
            "update:year": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const n = W(), { daysInMonth: i, model: o, weekNumbers: s } = X6(t), l = Po(), u = de(), c = de(), d = de(!1), h = T(()=>d.value ? t.reverseTransition : t.transition);
            t.multiple === "range" && o.value.length > 0 && (u.value = o.value[0], o.value.length > 1 && (c.value = o.value[o.value.length - 1]));
            const m = T(()=>{
                const v = [
                    "number",
                    "string"
                ].includes(typeof t.multiple) ? Number(t.multiple) : 1 / 0;
                return o.value.length >= v;
            });
            me(i, (v, b)=>{
                b && (d.value = l.isBefore(v[0].date, b[0].date));
            });
            function f(v) {
                const b = l.startOfDay(v);
                if (o.value.length === 0 ? u.value = void 0 : o.value.length === 1 && (u.value = o.value[0], c.value = void 0), !u.value) u.value = b, o.value = [
                    u.value
                ];
                else if (c.value) u.value = v, c.value = void 0, o.value = [
                    u.value
                ];
                else {
                    if (l.isSameDay(b, u.value)) {
                        u.value = void 0, o.value = [];
                        return;
                    } else l.isBefore(b, u.value) ? (c.value = l.endOfDay(u.value), u.value = b) : c.value = l.endOfDay(b);
                    const k = l.getDiff(c.value, u.value, "days"), S = [
                        u.value
                    ];
                    for(let x = 1; x < k; x++){
                        const C = l.addDays(u.value, x);
                        S.push(C);
                    }
                    S.push(c.value), o.value = S;
                }
            }
            function p(v) {
                const b = o.value.findIndex((k)=>l.isSameDay(k, v));
                if (b === -1) o.value = [
                    ...o.value,
                    v
                ];
                else {
                    const k = [
                        ...o.value
                    ];
                    k.splice(b, 1), o.value = k;
                }
            }
            function g(v) {
                t.multiple === "range" ? f(v) : t.multiple ? p(v) : o.value = [
                    v
                ];
            }
            ie(()=>y("div", {
                    class: "v-date-picker-month"
                }, [
                    t.showWeek && y("div", {
                        key: "weeks",
                        class: "v-date-picker-month__weeks"
                    }, [
                        !t.hideWeekdays && y("div", {
                            key: "hide-week-days",
                            class: "v-date-picker-month__day"
                        }, [
                            Pe(" ")
                        ]),
                        s.value.map((v)=>y("div", {
                                class: [
                                    "v-date-picker-month__day",
                                    "v-date-picker-month__day--adjacent"
                                ]
                            }, [
                                v
                            ]))
                    ]),
                    y(ba, {
                        name: h.value
                    }, {
                        default: ()=>[
                                y("div", {
                                    ref: n,
                                    key: i.value[0].date?.toString(),
                                    class: "v-date-picker-month__days"
                                }, [
                                    !t.hideWeekdays && l.getWeekdays(t.firstDayOfWeek).map((v)=>y("div", {
                                            class: [
                                                "v-date-picker-month__day",
                                                "v-date-picker-month__weekday"
                                            ]
                                        }, [
                                            v
                                        ])),
                                    i.value.map((v, b)=>{
                                        const k = {
                                            props: {
                                                class: "v-date-picker-month__day-btn",
                                                color: v.isSelected || v.isToday ? t.color : void 0,
                                                disabled: v.isDisabled,
                                                icon: !0,
                                                ripple: !1,
                                                text: v.localized,
                                                variant: v.isSelected ? "flat" : v.isToday ? "outlined" : "text",
                                                onClick: ()=>g(v.date)
                                            },
                                            item: v,
                                            i: b
                                        };
                                        return m.value && !v.isSelected && (v.isDisabled = !0), y("div", {
                                            class: [
                                                "v-date-picker-month__day",
                                                {
                                                    "v-date-picker-month__day--adjacent": v.isAdjacent,
                                                    "v-date-picker-month__day--hide-adjacent": v.isHidden,
                                                    "v-date-picker-month__day--selected": v.isSelected,
                                                    "v-date-picker-month__day--week-end": v.isWeekEnd,
                                                    "v-date-picker-month__day--week-start": v.isWeekStart
                                                }
                                            ],
                                            "data-v-date": v.isDisabled ? void 0 : v.isoDate
                                        }, [
                                            (t.showAdjacentMonths || !v.isAdjacent) && (r.day?.(k) ?? y(Re, k.props, null))
                                        ]);
                                    })
                                ])
                            ]
                    })
                ]));
        }
    });
    Yk = $({
        color: String,
        height: [
            String,
            Number
        ],
        min: null,
        max: null,
        modelValue: Number,
        year: Number
    }, "VDatePickerMonths");
    om = te()({
        name: "VDatePickerMonths",
        props: Yk(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const n = Po(), i = Be(t, "modelValue"), o = T(()=>{
                let s = n.startOfYear(n.date());
                return t.year && (s = n.setYear(s, t.year)), $r(12).map((l)=>{
                    const u = n.format(s, "monthShort"), c = !!(t.min && n.isAfter(n.startOfMonth(n.date(t.min)), s) || t.max && n.isAfter(s, n.startOfMonth(n.date(t.max))));
                    return s = n.getNextMonth(s), {
                        isDisabled: c,
                        text: u,
                        value: l
                    };
                });
            });
            return Lt(()=>{
                i.value = i.value ?? n.getMonth(n.date());
            }), ie(()=>y("div", {
                    class: "v-date-picker-months",
                    style: {
                        height: xe(t.height)
                    }
                }, [
                    y("div", {
                        class: "v-date-picker-months__content"
                    }, [
                        o.value.map((s, l)=>{
                            const u = {
                                active: i.value === l,
                                color: i.value === l ? t.color : void 0,
                                disabled: s.isDisabled,
                                rounded: !0,
                                text: s.text,
                                variant: i.value === s.value ? "flat" : "text",
                                onClick: ()=>c(l)
                            };
                            function c(d) {
                                if (i.value === d) {
                                    a("update:modelValue", i.value);
                                    return;
                                }
                                i.value = d;
                            }
                            return r.month?.({
                                month: s,
                                i: l,
                                props: u
                            }) ?? y(Re, Z({
                                key: "month"
                            }, u), null);
                        })
                    ])
                ])), {};
        }
    });
    qk = $({
        color: String,
        height: [
            String,
            Number
        ],
        min: null,
        max: null,
        modelValue: Number
    }, "VDatePickerYears");
    sm = te()({
        name: "VDatePickerYears",
        props: qk(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const n = Po(), i = Be(t, "modelValue"), o = T(()=>{
                const l = n.getYear(n.date());
                let u = l - 100, c = l + 52;
                t.min && (u = n.getYear(n.date(t.min))), t.max && (c = n.getYear(n.date(t.max)));
                let d = n.startOfYear(n.date());
                return d = n.setYear(d, u), $r(c - u + 1, u).map((h)=>{
                    const m = n.format(d, "year");
                    return d = n.setYear(d, n.getYear(d) + 1), {
                        text: m,
                        value: h
                    };
                });
            });
            Lt(()=>{
                i.value = i.value ?? n.getYear(n.date());
            });
            const s = qd();
            return ea(async ()=>{
                await at(), s.el?.scrollIntoView({
                    block: "center"
                });
            }), ie(()=>y("div", {
                    class: "v-date-picker-years",
                    style: {
                        height: xe(t.height)
                    }
                }, [
                    y("div", {
                        class: "v-date-picker-years__content"
                    }, [
                        o.value.map((l, u)=>{
                            const c = {
                                ref: i.value === l.value ? s : void 0,
                                active: i.value === l.value,
                                color: i.value === l.value ? t.color : void 0,
                                rounded: !0,
                                text: l.text,
                                variant: i.value === l.value ? "flat" : "text",
                                onClick: ()=>{
                                    if (i.value === l.value) {
                                        a("update:modelValue", i.value);
                                        return;
                                    }
                                    i.value = l.value;
                                }
                            };
                            return r.year?.({
                                year: l,
                                i: u,
                                props: c
                            }) ?? y(Re, Z({
                                key: "month"
                            }, c), null);
                        })
                    ])
                ])), {};
        }
    });
    J6 = $({
        header: {
            type: String,
            default: "$vuetify.datePicker.header"
        },
        headerColor: String,
        ...Uk(),
        ...jk({
            weeksInMonth: "static"
        }),
        ...It(Yk(), [
            "modelValue"
        ]),
        ...It(qk(), [
            "modelValue"
        ]),
        ...xf({
            title: "$vuetify.datePicker.title"
        }),
        modelValue: null
    }, "VDatePicker");
    Z6 = te()({
        name: "VDatePicker",
        props: J6(),
        emits: {
            "update:modelValue": (t)=>!0,
            "update:month": (t)=>!0,
            "update:year": (t)=>!0,
            "update:viewMode": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const n = Po(), { t: i } = zt(), { rtlClasses: o } = Xt(), s = Be(t, "modelValue", void 0, (A)=>Tt(A).map((E)=>n.date(E)), (A)=>t.multiple ? A : A[0]), l = Be(t, "viewMode"), u = T(()=>{
                const A = n.date(t.min);
                return t.min && n.isValid(A) ? A : null;
            }), c = T(()=>{
                const A = n.date(t.max);
                return t.max && n.isValid(A) ? A : null;
            }), d = T(()=>{
                const A = n.date();
                let E = A;
                return s.value?.[0] ? E = n.date(s.value[0]) : u.value && n.isBefore(A, u.value) ? E = u.value : c.value && n.isAfter(A, c.value) && (E = c.value), E && n.isValid(E) ? E : A;
            }), h = T(()=>t.headerColor ?? t.color), m = W(Number(t.month ?? n.getMonth(n.startOfMonth(d.value)))), f = W(Number(t.year ?? n.getYear(n.startOfYear(n.setMonth(d.value, m.value))))), p = de(!1), g = T(()=>t.multiple && s.value.length > 1 ? i("$vuetify.datePicker.itemsSelected", s.value.length) : s.value[0] && n.isValid(s.value[0]) ? n.format(n.date(s.value[0]), "normalDateWithWeekday") : i(t.header)), v = T(()=>{
                let A = n.date();
                return A = n.setDate(A, 1), A = n.setMonth(A, m.value), A = n.setYear(A, f.value), n.format(A, "monthAndYear");
            }), b = T(()=>`date-picker-header${p.value ? "-reverse" : ""}-transition`), k = T(()=>{
                if (t.disabled) return !0;
                const A = [];
                if (l.value !== "month") A.push("prev", "next");
                else {
                    let E = n.date();
                    if (E = n.startOfMonth(E), E = n.setMonth(E, m.value), E = n.setYear(E, f.value), u.value) {
                        const B = n.addDays(n.startOfMonth(E), -1);
                        n.isAfter(u.value, B) && A.push("prev");
                    }
                    if (c.value) {
                        const B = n.addDays(n.endOfMonth(E), 1);
                        n.isAfter(B, c.value) && A.push("next");
                    }
                }
                return A;
            });
            function S() {
                m.value < 11 ? m.value++ : (f.value++, m.value = 0, _(f.value)), D(m.value);
            }
            function x() {
                m.value > 0 ? m.value-- : (f.value--, m.value = 11, _(f.value)), D(m.value);
            }
            function C() {
                l.value = "month";
            }
            function w() {
                l.value = l.value === "months" ? "month" : "months";
            }
            function F() {
                l.value = l.value === "year" ? "month" : "year";
            }
            function D(A) {
                l.value === "months" && w(), a("update:month", A);
            }
            function _(A) {
                l.value === "year" && F(), a("update:year", A);
            }
            return me(s, (A, E)=>{
                const B = Tt(E), P = Tt(A);
                if (!P.length) return;
                const M = n.date(B[B.length - 1]), R = n.date(P[P.length - 1]), z = n.getMonth(R), N = n.getYear(R);
                z !== m.value && (m.value = z, D(m.value)), N !== f.value && (f.value = N, _(f.value)), p.value = n.isBefore(M, R);
            }), ie(()=>{
                const A = al.filterProps(t), E = rm.filterProps(t), B = nm.filterProps(t), P = im.filterProps(t), M = It(om.filterProps(t), [
                    "modelValue"
                ]), R = It(sm.filterProps(t), [
                    "modelValue"
                ]), z = {
                    color: h.value,
                    header: g.value,
                    transition: b.value
                };
                return y(al, Z(A, {
                    color: h.value,
                    class: [
                        "v-date-picker",
                        `v-date-picker--${l.value}`,
                        {
                            "v-date-picker--show-week": t.showWeek
                        },
                        o.value,
                        t.class
                    ],
                    style: t.style
                }), {
                    title: ()=>r.title?.() ?? y("div", {
                            class: "v-date-picker__title"
                        }, [
                            i(t.title)
                        ]),
                    header: ()=>r.header ? y(Ge, {
                            defaults: {
                                VDatePickerHeader: {
                                    ...z
                                }
                            }
                        }, {
                            default: ()=>[
                                    r.header?.(z)
                                ]
                        }) : y(nm, Z({
                            key: "header"
                        }, B, z, {
                            onClick: l.value !== "month" ? C : void 0
                        }), {
                            ...r,
                            default: void 0
                        }),
                    default: ()=>y(Ce, null, [
                            y(rm, Z(E, {
                                disabled: k.value,
                                text: v.value,
                                "onClick:next": S,
                                "onClick:prev": x,
                                "onClick:month": w,
                                "onClick:year": F
                            }), null),
                            y(po, {
                                hideOnLeave: !0
                            }, {
                                default: ()=>[
                                        l.value === "months" ? y(om, Z({
                                            key: "date-picker-months"
                                        }, M, {
                                            modelValue: m.value,
                                            "onUpdate:modelValue": [
                                                (N)=>m.value = N,
                                                D
                                            ],
                                            min: u.value,
                                            max: c.value,
                                            year: f.value
                                        }), null) : l.value === "year" ? y(sm, Z({
                                            key: "date-picker-years"
                                        }, R, {
                                            modelValue: f.value,
                                            "onUpdate:modelValue": [
                                                (N)=>f.value = N,
                                                _
                                            ],
                                            min: u.value,
                                            max: c.value
                                        }), null) : y(im, Z({
                                            key: "date-picker-month"
                                        }, P, {
                                            modelValue: s.value,
                                            "onUpdate:modelValue": (N)=>s.value = N,
                                            month: m.value,
                                            "onUpdate:month": [
                                                (N)=>m.value = N,
                                                D
                                            ],
                                            year: f.value,
                                            "onUpdate:year": [
                                                (N)=>f.value = N,
                                                _
                                            ],
                                            min: u.value,
                                            max: c.value
                                        }), null)
                                    ]
                            })
                        ]),
                    actions: r.actions
                });
            }), {};
        }
    });
    Q6 = $({
        actionText: String,
        bgColor: String,
        color: String,
        icon: Me,
        image: String,
        justify: {
            type: String,
            default: "center"
        },
        headline: String,
        title: String,
        text: String,
        textWidth: {
            type: [
                Number,
                String
            ],
            default: 500
        },
        href: String,
        to: String,
        ...we(),
        ...Ut(),
        ...xr({
            size: void 0
        }),
        ...Qe()
    }, "VEmptyState");
    ez = te()({
        name: "VEmptyState",
        props: Q6(),
        emits: {
            "click:action": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const { themeClasses: n } = ut(t), { backgroundColorClasses: i, backgroundColorStyles: o } = ft(K(t, "bgColor")), { dimensionStyles: s } = jt(t), { displayClasses: l } = Ia();
            function u(c) {
                a("click:action", c);
            }
            return ie(()=>{
                const c = !!(r.actions || t.actionText), d = !!(r.headline || t.headline), h = !!(r.title || t.title), m = !!(r.text || t.text), f = !!(r.media || t.image || t.icon), p = t.size || (t.image ? 200 : 96);
                return y("div", {
                    class: [
                        "v-empty-state",
                        {
                            [`v-empty-state--${t.justify}`]: !0
                        },
                        n.value,
                        i.value,
                        l.value,
                        t.class
                    ],
                    style: [
                        o.value,
                        s.value,
                        t.style
                    ]
                }, [
                    f && y("div", {
                        key: "media",
                        class: "v-empty-state__media"
                    }, [
                        r.media ? y(Ge, {
                            key: "media-defaults",
                            defaults: {
                                VImg: {
                                    src: t.image,
                                    height: p
                                },
                                VIcon: {
                                    size: p,
                                    icon: t.icon
                                }
                            }
                        }, {
                            default: ()=>[
                                    r.media()
                                ]
                        }) : y(Ce, null, [
                            t.image ? y(_r, {
                                key: "image",
                                src: t.image,
                                height: p
                            }, null) : t.icon ? y(_e, {
                                key: "icon",
                                color: t.color,
                                size: p,
                                icon: t.icon
                            }, null) : void 0
                        ])
                    ]),
                    d && y("div", {
                        key: "headline",
                        class: "v-empty-state__headline"
                    }, [
                        r.headline?.() ?? t.headline
                    ]),
                    h && y("div", {
                        key: "title",
                        class: "v-empty-state__title"
                    }, [
                        r.title?.() ?? t.title
                    ]),
                    m && y("div", {
                        key: "text",
                        class: "v-empty-state__text",
                        style: {
                            maxWidth: xe(t.textWidth)
                        }
                    }, [
                        r.text?.() ?? t.text
                    ]),
                    r.default && y("div", {
                        key: "content",
                        class: "v-empty-state__content"
                    }, [
                        r.default()
                    ]),
                    c && y("div", {
                        key: "actions",
                        class: "v-empty-state__actions"
                    }, [
                        y(Ge, {
                            defaults: {
                                VBtn: {
                                    class: "v-empty-state__action-btn",
                                    color: t.color ?? "surface-variant",
                                    href: t.href,
                                    text: t.actionText,
                                    to: t.to
                                }
                            }
                        }, {
                            default: ()=>[
                                    r.actions?.({
                                        props: {
                                            onClick: u
                                        }
                                    }) ?? y(Re, {
                                        onClick: u
                                    }, null)
                                ]
                        })
                    ])
                ]);
            }), {};
        }
    });
    tz = $({
        app: Boolean,
        appear: Boolean,
        extended: Boolean,
        layout: Boolean,
        offset: Boolean,
        modelValue: {
            type: Boolean,
            default: !0
        },
        ...It(Il({
            active: !0
        }), [
            "location"
        ]),
        ...Gn(),
        ...zr(),
        ...fr({
            transition: "fab-transition"
        })
    }, "VFab");
    az = te()({
        name: "VFab",
        props: tz(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), n = de(56), i = W(), { resizeRef: o } = vr((d)=>{
                d.length && (n.value = d[0].target.clientHeight);
            }), s = T(()=>t.app || t.absolute), l = T(()=>s.value ? t.location?.split(" ").shift() ?? "bottom" : !1), u = T(()=>s.value ? t.location?.split(" ")[1] ?? "end" : !1);
            Ma(()=>t.app, ()=>{
                const d = Wn({
                    id: t.name,
                    order: T(()=>parseInt(t.order, 10)),
                    position: l,
                    layoutSize: T(()=>t.layout ? n.value + 24 : 0),
                    elementSize: T(()=>n.value + 24),
                    active: T(()=>t.app && r.value),
                    absolute: K(t, "absolute")
                });
                Lt(()=>{
                    i.value = d.layoutItemStyles.value;
                });
            });
            const c = W();
            return ie(()=>{
                const d = Re.filterProps(t);
                return y("div", {
                    ref: c,
                    class: [
                        "v-fab",
                        {
                            "v-fab--absolute": t.absolute,
                            "v-fab--app": !!t.app,
                            "v-fab--extended": t.extended,
                            "v-fab--offset": t.offset,
                            [`v-fab--${l.value}`]: s.value,
                            [`v-fab--${u.value}`]: s.value
                        },
                        t.class
                    ],
                    style: [
                        t.app ? {
                            ...i.value
                        } : {
                            height: t.absolute ? "100%" : "inherit"
                        },
                        t.style
                    ]
                }, [
                    y("div", {
                        class: "v-fab__container"
                    }, [
                        y(ba, {
                            appear: t.appear,
                            transition: t.transition
                        }, {
                            default: ()=>[
                                    mt(y(Re, Z({
                                        ref: o
                                    }, d, {
                                        active: void 0,
                                        location: void 0
                                    }), a), [
                                        [
                                            Ca,
                                            t.active
                                        ]
                                    ])
                                ]
                        })
                    ])
                ]);
            }), {};
        }
    });
    rz = $({
        app: Boolean,
        color: String,
        height: {
            type: [
                Number,
                String
            ],
            default: "auto"
        },
        ...Na(),
        ...we(),
        ...Jt(),
        ...Gn(),
        ...Ct(),
        ...We({
            tag: "footer"
        }),
        ...Qe()
    }, "VFooter");
    nz = te()({
        name: "VFooter",
        props: rz(),
        setup (t, e) {
            let { slots: a } = e;
            const r = W(), { themeClasses: n } = ut(t), { backgroundColorClasses: i, backgroundColorStyles: o } = ft(K(t, "color")), { borderClasses: s } = Xa(t), { elevationClasses: l } = na(t), { roundedClasses: u } = Mt(t), c = de(32), { resizeRef: d } = vr((m)=>{
                m.length && (c.value = m[0].target.clientHeight);
            }), h = T(()=>t.height === "auto" ? c.value : parseInt(t.height, 10));
            return Ma(()=>t.app, ()=>{
                const m = Wn({
                    id: t.name,
                    order: T(()=>parseInt(t.order, 10)),
                    position: T(()=>"bottom"),
                    layoutSize: h,
                    elementSize: T(()=>t.height === "auto" ? void 0 : h.value),
                    active: T(()=>t.app),
                    absolute: K(t, "absolute")
                });
                Lt(()=>{
                    r.value = m.layoutItemStyles.value;
                });
            }), ie(()=>y(t.tag, {
                    ref: d,
                    class: [
                        "v-footer",
                        n.value,
                        i.value,
                        s.value,
                        l.value,
                        u.value,
                        t.class
                    ],
                    style: [
                        o.value,
                        t.app ? r.value : {
                            height: xe(t.height)
                        },
                        t.style
                    ]
                }, a)), {};
        }
    });
    iz = $({
        disabled: Boolean,
        modelValue: {
            type: Boolean,
            default: null
        },
        ...Xm()
    }, "VHover");
    oz = te()({
        name: "VHover",
        props: iz(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), { runOpenDelay: n, runCloseDelay: i } = Jm(t, (o)=>!t.disabled && (r.value = o));
            return ()=>a.default?.({
                    isHovering: r.value,
                    props: {
                        onMouseenter: n,
                        onMouseleave: i
                    }
                });
        }
    });
    sz = $({
        color: String,
        direction: {
            type: String,
            default: "vertical",
            validator: (t)=>[
                    "vertical",
                    "horizontal"
                ].includes(t)
        },
        side: {
            type: String,
            default: "end",
            validator: (t)=>[
                    "start",
                    "end",
                    "both"
                ].includes(t)
        },
        mode: {
            type: String,
            default: "intersect",
            validator: (t)=>[
                    "intersect",
                    "manual"
                ].includes(t)
        },
        margin: [
            Number,
            String
        ],
        loadMoreText: {
            type: String,
            default: "$vuetify.infiniteScroll.loadMore"
        },
        emptyText: {
            type: String,
            default: "$vuetify.infiniteScroll.empty"
        },
        ...Ut(),
        ...We()
    }, "VInfiniteScroll");
    Ty = rn({
        name: "VInfiniteScrollIntersect",
        props: {
            side: {
                type: String,
                required: !0
            },
            rootMargin: String
        },
        emits: {
            intersect: (t, e)=>!0
        },
        setup (t, e) {
            let { emit: a } = e;
            const { intersectionRef: r, isIntersecting: n } = Bl();
            return me(n, async (i)=>{
                a("intersect", t.side, i);
            }), ie(()=>y("div", {
                    class: "v-infinite-scroll-intersect",
                    style: {
                        "--v-infinite-margin-size": t.rootMargin
                    },
                    ref: r
                }, [
                    Pe(" ")
                ])), {};
        }
    });
    lz = te()({
        name: "VInfiniteScroll",
        props: sz(),
        emits: {
            load: (t)=>!0
        },
        setup (t, e) {
            let { slots: a, emit: r } = e;
            const n = W(), i = de("ok"), o = de("ok"), s = T(()=>xe(t.margin)), l = de(!1);
            function u(x) {
                if (!n.value) return;
                const C = t.direction === "vertical" ? "scrollTop" : "scrollLeft";
                n.value[C] = x;
            }
            function c() {
                if (!n.value) return 0;
                const x = t.direction === "vertical" ? "scrollTop" : "scrollLeft";
                return n.value[x];
            }
            function d() {
                if (!n.value) return 0;
                const x = t.direction === "vertical" ? "scrollHeight" : "scrollWidth";
                return n.value[x];
            }
            function h() {
                if (!n.value) return 0;
                const x = t.direction === "vertical" ? "clientHeight" : "clientWidth";
                return n.value[x];
            }
            ea(()=>{
                n.value && (t.side === "start" ? u(d()) : t.side === "both" && u(d() / 2 - h() / 2));
            });
            function m(x, C) {
                x === "start" ? i.value = C : x === "end" && (o.value = C);
            }
            function f(x) {
                return x === "start" ? i.value : o.value;
            }
            let p = 0;
            function g(x, C) {
                l.value = C, l.value && v(x);
            }
            function v(x) {
                if (t.mode !== "manual" && !l.value) return;
                const C = f(x);
                if (!n.value || [
                    "empty",
                    "loading"
                ].includes(C)) return;
                p = d(), m(x, "loading");
                function w(F) {
                    m(x, F), at(()=>{
                        F === "empty" || F === "error" || (F === "ok" && x === "start" && u(d() - p + c()), t.mode !== "manual" && at(()=>{
                            window.requestAnimationFrame(()=>{
                                window.requestAnimationFrame(()=>{
                                    window.requestAnimationFrame(()=>{
                                        v(x);
                                    });
                                });
                            });
                        }));
                    });
                }
                r("load", {
                    side: x,
                    done: w
                });
            }
            const { t: b } = zt();
            function k(x, C) {
                if (t.side !== x && t.side !== "both") return;
                const w = ()=>v(x), F = {
                    side: x,
                    props: {
                        onClick: w,
                        color: t.color
                    }
                };
                return C === "error" ? a.error?.(F) : C === "empty" ? a.empty?.(F) ?? y("div", null, [
                    b(t.emptyText)
                ]) : t.mode === "manual" ? C === "loading" ? a.loading?.(F) ?? y(Si, {
                    indeterminate: !0,
                    color: t.color
                }, null) : a["load-more"]?.(F) ?? y(Re, {
                    variant: "outlined",
                    color: t.color,
                    onClick: w
                }, {
                    default: ()=>[
                            b(t.loadMoreText)
                        ]
                }) : a.loading?.(F) ?? y(Si, {
                    indeterminate: !0,
                    color: t.color
                }, null);
            }
            const { dimensionStyles: S } = jt(t);
            ie(()=>{
                const x = t.tag, C = t.side === "start" || t.side === "both", w = t.side === "end" || t.side === "both", F = t.mode === "intersect";
                return y(x, {
                    ref: n,
                    class: [
                        "v-infinite-scroll",
                        `v-infinite-scroll--${t.direction}`,
                        {
                            "v-infinite-scroll--start": C,
                            "v-infinite-scroll--end": w
                        }
                    ],
                    style: S.value
                }, {
                    default: ()=>[
                            y("div", {
                                class: "v-infinite-scroll__side"
                            }, [
                                k("start", i.value)
                            ]),
                            C && F && y(Ty, {
                                key: "start",
                                side: "start",
                                onIntersect: g,
                                rootMargin: s.value
                            }, null),
                            a.default?.(),
                            w && F && y(Ty, {
                                key: "end",
                                side: "end",
                                onIntersect: g,
                                rootMargin: s.value
                            }, null),
                            y("div", {
                                class: "v-infinite-scroll__side"
                            }, [
                                k("end", o.value)
                            ])
                        ]
                });
            });
        }
    });
    Kk = Symbol.for("vuetify:v-item-group");
    uz = $({
        ...we(),
        ...Kn({
            selectedClass: "v-item--selected"
        }),
        ...We(),
        ...Qe()
    }, "VItemGroup");
    cz = te()({
        name: "VItemGroup",
        props: uz(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t), { isSelected: n, select: i, next: o, prev: s, selected: l } = ln(t, Kk);
            return ()=>y(t.tag, {
                    class: [
                        "v-item-group",
                        r.value,
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            a.default?.({
                                isSelected: n,
                                select: i,
                                next: o,
                                prev: s,
                                selected: l.value
                            })
                        ]
                });
        }
    });
    dz = te()({
        name: "VItem",
        props: Xn(),
        emits: {
            "group:selected": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { isSelected: r, select: n, toggle: i, selectedClass: o, value: s, disabled: l } = Jn(t, Kk);
            return ()=>a.default?.({
                    isSelected: r.value,
                    selectedClass: o.value,
                    select: n,
                    toggle: i,
                    value: s.value,
                    disabled: l.value
                });
        }
    });
    hz = br("v-kbd", "kbd");
    mz = $({
        ...we(),
        ...Ut(),
        ...jy()
    }, "VLayout");
    fz = te()({
        name: "VLayout",
        props: mz(),
        setup (t, e) {
            let { slots: a } = e;
            const { layoutClasses: r, layoutStyles: n, getLayoutItem: i, items: o, layoutRef: s } = Uy(t), { dimensionStyles: l } = jt(t);
            return ie(()=>y("div", {
                    ref: s,
                    class: [
                        r.value,
                        t.class
                    ],
                    style: [
                        l.value,
                        n.value,
                        t.style
                    ]
                }, [
                    a.default?.()
                ])), {
                getLayoutItem: i,
                items: o
            };
        }
    });
    pz = $({
        position: {
            type: String,
            required: !0
        },
        size: {
            type: [
                Number,
                String
            ],
            default: 300
        },
        modelValue: Boolean,
        ...we(),
        ...Gn()
    }, "VLayoutItem");
    gz = te()({
        name: "VLayoutItem",
        props: pz(),
        setup (t, e) {
            let { slots: a } = e;
            const { layoutItemStyles: r } = Wn({
                id: t.name,
                order: T(()=>parseInt(t.order, 10)),
                position: K(t, "position"),
                elementSize: K(t, "size"),
                layoutSize: K(t, "size"),
                active: K(t, "modelValue"),
                absolute: K(t, "absolute")
            });
            return ()=>y("div", {
                    class: [
                        "v-layout-item",
                        t.class
                    ],
                    style: [
                        r.value,
                        t.style
                    ]
                }, [
                    a.default?.()
                ]);
        }
    });
    vz = $({
        modelValue: Boolean,
        options: {
            type: Object,
            default: ()=>({
                    root: void 0,
                    rootMargin: void 0,
                    threshold: void 0
                })
        },
        ...we(),
        ...Ut(),
        ...We(),
        ...fr({
            transition: "fade-transition"
        })
    }, "VLazy");
    yz = te()({
        name: "VLazy",
        directives: {
            intersect: Oo
        },
        props: vz(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { dimensionStyles: r } = jt(t), n = Be(t, "modelValue");
            function i(o) {
                n.value || (n.value = o);
            }
            return ie(()=>mt(y(t.tag, {
                    class: [
                        "v-lazy",
                        t.class
                    ],
                    style: [
                        r.value,
                        t.style
                    ]
                }, {
                    default: ()=>[
                            n.value && y(ba, {
                                transition: t.transition,
                                appear: !0
                            }, {
                                default: ()=>[
                                        a.default?.()
                                    ]
                            })
                        ]
                }), [
                    [
                        qa("intersect"),
                        {
                            handler: i,
                            options: t.options
                        },
                        null
                    ]
                ])), {};
        }
    });
    bz = $({
        locale: String,
        fallbackLocale: String,
        messages: Object,
        rtl: {
            type: Boolean,
            default: void 0
        },
        ...we()
    }, "VLocaleProvider");
    Fz = te()({
        name: "VLocaleProvider",
        props: bz(),
        setup (t, e) {
            let { slots: a } = e;
            const { rtlClasses: r } = pw(t);
            return ie(()=>y("div", {
                    class: [
                        "v-locale-provider",
                        r.value,
                        t.class
                    ],
                    style: t.style
                }, [
                    a.default?.()
                ])), {};
        }
    });
    kz = rn({
        name: "VNoSsr",
        setup (t, e) {
            let { slots: a } = e;
            const r = E0();
            return ()=>r.value && a.default?.();
        }
    });
    xz = 50;
    wz = 500;
    function Sz(t) {
        let { toggleUpDown: e } = t, a = -1, r = -1;
        pa(i);
        function n(s) {
            i(), o(s), a = window.setTimeout(()=>{
                r = window.setInterval(()=>o(s), xz);
            }, wz);
        }
        function i() {
            window.clearTimeout(a), window.clearInterval(r);
        }
        function o(s) {
            e(s === "up");
        }
        return {
            holdStart: n,
            holdStop: i
        };
    }
    const Cz = $({
        controlVariant: {
            type: String,
            default: "default"
        },
        inset: Boolean,
        hideInput: Boolean,
        modelValue: {
            type: Number,
            default: null
        },
        min: {
            type: Number,
            default: Number.MIN_SAFE_INTEGER
        },
        max: {
            type: Number,
            default: Number.MAX_SAFE_INTEGER
        },
        step: {
            type: Number,
            default: 1
        },
        precision: {
            type: Number,
            default: 0
        },
        ...It(qo(), [
            "modelValue",
            "validationValue"
        ])
    }, "VNumberInput"), Az = te()({
        name: "VNumberInput",
        props: {
            ...Cz()
        },
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = W(), { holdStart: n, holdStop: i } = Sz({
                toggleUpDown: D
            }), o = Vo(t), s = T(()=>o.isDisabled.value || o.isReadonly.value), { isFocused: l, focus: u, blur: c } = wr(t);
            function d(L) {
                let G = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : t.precision;
                const q = G == null ? String(L) : L.toFixed(G);
                return l.value ? Number(q).toString() : q;
            }
            const h = Be(t, "modelValue", null, (L)=>L ?? null, (L)=>L == null ? L ?? null : Rt(Number(L), t.min, t.max)), m = de(null);
            Lt(()=>{
                l.value && !s.value || (h.value == null ? m.value = null : isNaN(h.value) || (m.value = d(h.value)));
            });
            const f = T({
                get: ()=>m.value,
                set (L) {
                    L === null || L === "" ? (h.value = null, m.value = null) : !isNaN(Number(L)) && Number(L) <= t.max && Number(L) >= t.min && (h.value = Number(L), m.value = L);
                }
            }), p = T(()=>s.value ? !1 : (h.value ?? 0) + t.step <= t.max), g = T(()=>s.value ? !1 : (h.value ?? 0) - t.step >= t.min), v = T(()=>t.hideInput ? "stacked" : t.controlVariant), b = T(()=>v.value === "split" ? "$plus" : "$collapse"), k = T(()=>v.value === "split" ? "$minus" : "$expand"), S = T(()=>v.value === "split" ? "default" : "small"), x = T(()=>v.value === "stacked" ? "auto" : "100%"), C = T(()=>({
                    props: {
                        onClick: E,
                        onPointerup: B,
                        onPointerdown: P
                    }
                })), w = T(()=>({
                    props: {
                        onClick: E,
                        onPointerup: B,
                        onPointerdown: M
                    }
                }));
            me(()=>t.precision, ()=>z()), ea(()=>{
                R();
            });
            function F(L) {
                if (L == null) return 0;
                const G = L.toString(), q = G.indexOf(".");
                return ~q ? G.length - q : 0;
            }
            function D() {
                let L = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0;
                if (s.value) return;
                if (h.value == null) {
                    f.value = d(Rt(0, t.min, t.max));
                    return;
                }
                let G = Math.max(F(h.value), F(t.step));
                t.precision != null && (G = Math.max(G, t.precision)), L ? p.value && (f.value = d(h.value + t.step, G)) : g.value && (f.value = d(h.value - t.step, G));
            }
            function _(L) {
                if (!L.data) return;
                const G = L.target?.value, q = L.target?.selectionStart, X = L.target?.selectionEnd, ue = G ? G.slice(0, q) + L.data + G.slice(X) : L.data;
                /^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(ue) || L.preventDefault(), t.precision != null && (ue.split(".")[1]?.length > t.precision && L.preventDefault(), t.precision === 0 && ue.includes(".") && L.preventDefault());
            }
            async function A(L) {
                [
                    "Enter",
                    "ArrowLeft",
                    "ArrowRight",
                    "Backspace",
                    "Delete",
                    "Tab"
                ].includes(L.key) || L.ctrlKey || [
                    "ArrowDown",
                    "ArrowUp"
                ].includes(L.key) && (L.preventDefault(), R(), await at(), L.key === "ArrowDown" ? D(!1) : D());
            }
            function E(L) {
                L.stopPropagation();
            }
            function B(L) {
                L.currentTarget?.releasePointerCapture(L.pointerId), L.preventDefault(), L.stopPropagation(), i();
            }
            function P(L) {
                L.currentTarget?.setPointerCapture(L.pointerId), L.preventDefault(), L.stopPropagation(), n("up");
            }
            function M(L) {
                L.currentTarget?.setPointerCapture(L.pointerId), L.preventDefault(), L.stopPropagation(), n("down");
            }
            function R() {
                if (s.value || !r.value) return;
                const L = r.value.value;
                L && !isNaN(Number(L)) ? f.value = d(Rt(Number(L), t.min, t.max)) : f.value = null;
            }
            function z() {
                if (!s.value) {
                    if (h.value === null || isNaN(h.value)) {
                        f.value = null;
                        return;
                    }
                    f.value = t.precision == null ? String(h.value) : h.value.toFixed(t.precision);
                }
            }
            function N() {
                if (!s.value) {
                    if (h.value === null || isNaN(h.value)) {
                        f.value = null;
                        return;
                    }
                    f.value = h.value.toString();
                }
            }
            function H() {
                u(), N();
            }
            function I() {
                c(), R();
            }
            return ie(()=>{
                const { modelValue: L, ...G } = ya.filterProps(t);
                function q() {
                    return a.increment ? y(Ge, {
                        key: "increment-defaults",
                        defaults: {
                            VBtn: {
                                disabled: !p.value,
                                flat: !0,
                                height: x.value,
                                size: S.value,
                                icon: b.value
                            }
                        }
                    }, {
                        default: ()=>[
                                a.increment(C.value)
                            ]
                    }) : y(Re, {
                        disabled: !p.value,
                        flat: !0,
                        key: "increment-btn",
                        height: x.value,
                        "data-testid": "increment",
                        "aria-hidden": "true",
                        icon: b.value,
                        onClick: E,
                        onPointerup: B,
                        onPointerdown: P,
                        size: S.value,
                        tabindex: "-1"
                    }, null);
                }
                function X() {
                    return a.decrement ? y(Ge, {
                        key: "decrement-defaults",
                        defaults: {
                            VBtn: {
                                disabled: !g.value,
                                flat: !0,
                                height: x.value,
                                size: S.value,
                                icon: k.value
                            }
                        }
                    }, {
                        default: ()=>[
                                a.decrement(w.value)
                            ]
                    }) : y(Re, {
                        disabled: !g.value,
                        flat: !0,
                        key: "decrement-btn",
                        height: x.value,
                        "data-testid": "decrement",
                        "aria-hidden": "true",
                        icon: k.value,
                        size: S.value,
                        tabindex: "-1",
                        onClick: E,
                        onPointerup: B,
                        onPointerdown: M
                    }, null);
                }
                function ue() {
                    return y("div", {
                        class: "v-number-input__control"
                    }, [
                        X(),
                        y(_a, {
                            vertical: v.value !== "stacked"
                        }, null),
                        q()
                    ]);
                }
                function J() {
                    return !t.hideInput && !t.inset ? y(_a, {
                        vertical: !0
                    }, null) : void 0;
                }
                const U = v.value === "split" ? y("div", {
                    class: "v-number-input__control"
                }, [
                    y(_a, {
                        vertical: !0
                    }, null),
                    q()
                ]) : t.reverse || v.value === "hidden" ? void 0 : y(Ce, null, [
                    J(),
                    ue()
                ]), le = a["append-inner"] || U, fe = v.value === "split" ? y("div", {
                    class: "v-number-input__control"
                }, [
                    X(),
                    y(_a, {
                        vertical: !0
                    }, null)
                ]) : t.reverse && v.value !== "hidden" ? y(Ce, null, [
                    ue(),
                    J()
                ]) : void 0, ee = a["prepend-inner"] || fe;
                return y(ya, Z({
                    ref: r,
                    modelValue: f.value,
                    "onUpdate:modelValue": (ae)=>f.value = ae,
                    validationValue: h.value,
                    onBeforeinput: _,
                    onFocus: H,
                    onBlur: I,
                    onKeydown: A,
                    class: [
                        "v-number-input",
                        {
                            "v-number-input--default": v.value === "default",
                            "v-number-input--hide-input": t.hideInput,
                            "v-number-input--inset": t.inset,
                            "v-number-input--reverse": t.reverse,
                            "v-number-input--split": v.value === "split",
                            "v-number-input--stacked": v.value === "stacked"
                        },
                        t.class
                    ]
                }, G, {
                    style: t.style,
                    inputmode: "decimal"
                }), {
                    ...a,
                    "append-inner": le ? function() {
                        for(var ae = arguments.length, se = new Array(ae), pe = 0; pe < ae; pe++)se[pe] = arguments[pe];
                        return y(Ce, null, [
                            a["append-inner"]?.(...se),
                            U
                        ]);
                    } : void 0,
                    "prepend-inner": ee ? function() {
                        for(var ae = arguments.length, se = new Array(ae), pe = 0; pe < ae; pe++)se[pe] = arguments[pe];
                        return y(Ce, null, [
                            fe,
                            a["prepend-inner"]?.(...se)
                        ]);
                    } : void 0
                });
            }), Za({}, r);
        }
    }), Dz = $({
        autofocus: Boolean,
        divider: String,
        focusAll: Boolean,
        label: {
            type: String,
            default: "$vuetify.input.otp"
        },
        length: {
            type: [
                Number,
                String
            ],
            default: 6
        },
        modelValue: {
            type: [
                Number,
                String
            ],
            default: void 0
        },
        placeholder: String,
        type: {
            type: String,
            default: "number"
        },
        ...Ut(),
        ...Ho(),
        ...Hn(Yo({
            variant: "outlined"
        }), [
            "baseColor",
            "bgColor",
            "class",
            "color",
            "disabled",
            "error",
            "loading",
            "rounded",
            "style",
            "theme",
            "variant"
        ])
    }, "VOtpInput"), Tz = te()({
        name: "VOtpInput",
        props: Dz(),
        emits: {
            finish: (t)=>!0,
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, emit: r, slots: n } = e;
            const { dimensionStyles: i } = jt(t), { isFocused: o, focus: s, blur: l } = wr(t), u = Be(t, "modelValue", "", (F)=>F == null ? [] : String(F).split(""), (F)=>F.join("")), { t: c } = zt(), d = T(()=>Number(t.length)), h = T(()=>Array(d.value).fill(0)), m = W(-1), f = W(), p = W([]), g = T(()=>p.value[m.value]);
            function v() {
                if (w(g.value.value)) {
                    g.value.value = "";
                    return;
                }
                const F = u.value.slice(), D = g.value.value;
                F[m.value] = D;
                let _ = null;
                m.value > u.value.length ? _ = u.value.length + 1 : m.value + 1 !== d.value && (_ = "next"), u.value = F, _ && bi(f.value, _);
            }
            function b(F) {
                const D = u.value.slice(), _ = m.value;
                let A = null;
                [
                    "ArrowLeft",
                    "ArrowRight",
                    "Backspace",
                    "Delete"
                ].includes(F.key) && (F.preventDefault(), F.key === "ArrowLeft" ? A = "prev" : F.key === "ArrowRight" ? A = "next" : [
                    "Backspace",
                    "Delete"
                ].includes(F.key) && (D[m.value] = "", u.value = D, m.value > 0 && F.key === "Backspace" ? A = "prev" : requestAnimationFrame(()=>{
                    p.value[_]?.select();
                })), requestAnimationFrame(()=>{
                    A != null && bi(f.value, A);
                }));
            }
            function k(F, D) {
                D.preventDefault(), D.stopPropagation();
                const _ = D?.clipboardData?.getData("Text").slice(0, d.value) ?? "";
                w(_) || (u.value = _.split(""), p.value?.[F].blur());
            }
            function S() {
                u.value = [];
            }
            function x(F, D) {
                s(), m.value = D;
            }
            function C() {
                l(), m.value = -1;
            }
            function w(F) {
                return t.type === "number" && /[^0-9]/g.test(F);
            }
            return Bt({
                VField: {
                    color: T(()=>t.color),
                    bgColor: T(()=>t.color),
                    baseColor: T(()=>t.baseColor),
                    disabled: T(()=>t.disabled),
                    error: T(()=>t.error),
                    variant: T(()=>t.variant)
                }
            }, {
                scoped: !0
            }), me(u, (F)=>{
                F.length === d.value && r("finish", F.join(""));
            }, {
                deep: !0
            }), me(m, (F)=>{
                F < 0 || at(()=>{
                    p.value[F]?.select();
                });
            }), ie(()=>{
                const [F, D] = an(a);
                return y("div", Z({
                    class: [
                        "v-otp-input",
                        {
                            "v-otp-input--divided": !!t.divider
                        },
                        t.class
                    ],
                    style: [
                        t.style
                    ]
                }, F), [
                    y("div", {
                        ref: f,
                        class: "v-otp-input__content",
                        style: [
                            i.value
                        ]
                    }, [
                        h.value.map((_, A)=>y(Ce, null, [
                                t.divider && A !== 0 && y("span", {
                                    class: "v-otp-input__divider"
                                }, [
                                    t.divider
                                ]),
                                y(Zr, {
                                    focused: o.value && t.focusAll || m.value === A,
                                    key: A
                                }, {
                                    ...n,
                                    loader: void 0,
                                    default: ()=>y("input", {
                                            ref: (E)=>p.value[A] = E,
                                            "aria-label": c(t.label, A + 1),
                                            autofocus: A === 0 && t.autofocus,
                                            autocomplete: "one-time-code",
                                            class: [
                                                "v-otp-input__field"
                                            ],
                                            disabled: t.disabled,
                                            inputmode: t.type === "number" ? "numeric" : "text",
                                            min: t.type === "number" ? 0 : void 0,
                                            maxlength: A === 0 ? d.value : "1",
                                            placeholder: t.placeholder,
                                            type: t.type === "number" ? "text" : t.type,
                                            value: u.value[A],
                                            onInput: v,
                                            onFocus: (E)=>x(E, A),
                                            onBlur: C,
                                            onKeydown: b,
                                            onPaste: (E)=>k(A, E)
                                        }, null)
                                })
                            ])),
                        y("input", Z({
                            class: "v-otp-input-input",
                            type: "hidden"
                        }, D, {
                            value: u.value.join("")
                        }), null),
                        y(yr, {
                            contained: !0,
                            "content-class": "v-otp-input__loader",
                            "model-value": !!t.loading,
                            persistent: !0
                        }, {
                            default: ()=>[
                                    n.loader?.() ?? y(Si, {
                                        color: typeof t.loading == "boolean" ? void 0 : t.loading,
                                        indeterminate: !0,
                                        size: "24",
                                        width: "2"
                                    }, null)
                                ]
                        }),
                        n.default?.()
                    ])
                ]);
            }), {
                blur: ()=>{
                    p.value?.some((F)=>F.blur());
                },
                focus: ()=>{
                    p.value?.[0].focus();
                },
                reset: S,
                isFocused: o
            };
        }
    });
    function Ez(t) {
        return Math.floor(Math.abs(t)) * Math.sign(t);
    }
    let _z, Pz, Bz, Rz, Iz, Nz, Oz, Hz;
    _z = $({
        scale: {
            type: [
                Number,
                String
            ],
            default: .5
        },
        ...we()
    }, "VParallax");
    Pz = te()({
        name: "VParallax",
        props: _z(),
        setup (t, e) {
            let { slots: a } = e;
            const { intersectionRef: r, isIntersecting: n } = Bl(), { resizeRef: i, contentRect: o } = vr(), { height: s } = Ia(), l = W();
            Lt(()=>{
                r.value = i.value = l.value?.$el;
            });
            let u;
            me(n, (m)=>{
                m ? (u = vm(r.value), u = u === document.scrollingElement ? document : u, u.addEventListener("scroll", h, {
                    passive: !0
                }), h()) : u.removeEventListener("scroll", h);
            }), ga(()=>{
                u?.removeEventListener("scroll", h);
            }), me(s, h), me(()=>o.value?.height, h);
            const c = T(()=>1 - Rt(Number(t.scale)));
            let d = -1;
            function h() {
                n.value && (cancelAnimationFrame(d), d = requestAnimationFrame(()=>{
                    const m = (l.value?.$el).querySelector(".v-img__img");
                    if (!m) return;
                    const f = u instanceof Document ? document.documentElement.clientHeight : u.clientHeight, p = u instanceof Document ? window.scrollY : u.scrollTop, g = r.value.getBoundingClientRect().top + p, v = o.value.height, b = g + (v - f) / 2, k = Ez((p - b) * c.value), S = Math.max(1, (c.value * (f - v) + v) / v);
                    m.style.setProperty("transform", `translateY(${k}px) scale(${S})`);
                }));
            }
            return ie(()=>y(_r, {
                    class: [
                        "v-parallax",
                        {
                            "v-parallax--active": n.value
                        },
                        t.class
                    ],
                    style: t.style,
                    ref: l,
                    cover: !0,
                    onLoadstart: h,
                    onLoad: h
                }, a)), {};
        }
    });
    Bz = $({
        ...Dl({
            falseIcon: "$radioOff",
            trueIcon: "$radioOn"
        })
    }, "VRadio");
    Mz = te()({
        name: "VRadio",
        props: Bz(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>{
                const r = Xr.filterProps(t);
                return y(Xr, Z(r, {
                    class: [
                        "v-radio",
                        t.class
                    ],
                    style: t.style,
                    type: "radio"
                }), a);
            }), {};
        }
    });
    Rz = $({
        height: {
            type: [
                Number,
                String
            ],
            default: "auto"
        },
        ...Ir(),
        ...It($m(), [
            "multiple"
        ]),
        trueIcon: {
            type: Me,
            default: "$radioOn"
        },
        falseIcon: {
            type: Me,
            default: "$radioOff"
        },
        type: {
            type: String,
            default: "radio"
        }
    }, "VRadioGroup");
    Lz = te()({
        name: "VRadioGroup",
        inheritAttrs: !1,
        props: Rz(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const n = La(), i = T(()=>t.id || `radio-group-${n}`), o = Be(t, "modelValue");
            return ie(()=>{
                const [s, l] = an(a), u = ma.filterProps(t), c = Xr.filterProps(t), d = r.label ? r.label({
                    label: t.label,
                    props: {
                        for: i.value
                    }
                }) : t.label;
                return y(ma, Z({
                    class: [
                        "v-radio-group",
                        t.class
                    ],
                    style: t.style
                }, s, u, {
                    modelValue: o.value,
                    "onUpdate:modelValue": (h)=>o.value = h,
                    id: i.value
                }), {
                    ...r,
                    default: (h)=>{
                        let { id: m, messagesId: f, isDisabled: p, isReadonly: g } = h;
                        return y(Ce, null, [
                            d && y(Ii, {
                                id: m.value
                            }, {
                                default: ()=>[
                                        d
                                    ]
                            }),
                            y(HF, Z(c, {
                                id: m.value,
                                "aria-describedby": f.value,
                                defaultsTarget: "VRadio",
                                trueIcon: t.trueIcon,
                                falseIcon: t.falseIcon,
                                type: t.type,
                                disabled: p.value,
                                readonly: g.value,
                                "aria-labelledby": d ? m.value : void 0,
                                multiple: !1
                            }, l, {
                                modelValue: o.value,
                                "onUpdate:modelValue": (v)=>o.value = v
                            }), r)
                        ]);
                    }
                });
            }), {};
        }
    });
    Iz = $({
        ...Ho(),
        ...Ir(),
        ...yk(),
        strict: Boolean,
        modelValue: {
            type: Array,
            default: ()=>[
                    0,
                    0
                ]
        }
    }, "VRangeSlider");
    zz = te()({
        name: "VRangeSlider",
        props: Iz(),
        emits: {
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0,
            end: (t)=>!0,
            start: (t)=>!0
        },
        setup (t, e) {
            let { slots: a, emit: r } = e;
            const n = W(), i = W(), o = W(), { rtlClasses: s } = Xt();
            function l(_) {
                if (!n.value || !i.value) return;
                const A = Zh(_, n.value.$el, t.direction), E = Zh(_, i.value.$el, t.direction), B = Math.abs(A), P = Math.abs(E);
                return B < P || B === P && A < 0 ? n.value.$el : i.value.$el;
            }
            const u = bk(t), c = Be(t, "modelValue", void 0, (_)=>_?.length ? _.map((A)=>u.roundValue(A)) : [
                    0,
                    0
                ]), { activeThumbRef: d, hasLabels: h, max: m, min: f, mousePressed: p, onSliderMousedown: g, onSliderTouchstart: v, position: b, trackContainerRef: k, readonly: S } = Fk({
                props: t,
                steps: u,
                onSliderStart: ()=>{
                    r("start", c.value);
                },
                onSliderEnd: (_)=>{
                    let { value: A } = _;
                    const E = d.value === n.value?.$el ? [
                        A,
                        c.value[1]
                    ] : [
                        c.value[0],
                        A
                    ];
                    !t.strict && E[0] < E[1] && (c.value = E), r("end", c.value);
                },
                onSliderMove: (_)=>{
                    let { value: A } = _;
                    const [E, B] = c.value;
                    !t.strict && E === B && E !== f.value && (d.value = A > E ? i.value?.$el : n.value?.$el, d.value?.focus()), d.value === n.value?.$el ? c.value = [
                        Math.min(A, B),
                        B
                    ] : c.value = [
                        E,
                        Math.max(E, A)
                    ];
                },
                getActiveThumb: l
            }), { isFocused: x, focus: C, blur: w } = wr(t), F = T(()=>b(c.value[0])), D = T(()=>b(c.value[1]));
            return ie(()=>{
                const _ = ma.filterProps(t), A = !!(t.label || a.label || a.prepend);
                return y(ma, Z({
                    class: [
                        "v-slider",
                        "v-range-slider",
                        {
                            "v-slider--has-labels": !!a["tick-label"] || h.value,
                            "v-slider--focused": x.value,
                            "v-slider--pressed": p.value,
                            "v-slider--disabled": t.disabled
                        },
                        s.value,
                        t.class
                    ],
                    style: t.style,
                    ref: o
                }, _, {
                    focused: x.value
                }), {
                    ...a,
                    prepend: A ? (E)=>y(Ce, null, [
                            a.label?.(E) ?? (t.label ? y(Ii, {
                                class: "v-slider__label",
                                text: t.label
                            }, null) : void 0),
                            a.prepend?.(E)
                        ]) : void 0,
                    default: (E)=>{
                        let { id: B, messagesId: P } = E;
                        return y("div", {
                            class: "v-slider__container",
                            onMousedown: S.value ? void 0 : g,
                            onTouchstartPassive: S.value ? void 0 : v
                        }, [
                            y("input", {
                                id: `${B.value}_start`,
                                name: t.name || B.value,
                                disabled: !!t.disabled,
                                readonly: !!t.readonly,
                                tabindex: "-1",
                                value: c.value[0]
                            }, null),
                            y("input", {
                                id: `${B.value}_stop`,
                                name: t.name || B.value,
                                disabled: !!t.disabled,
                                readonly: !!t.readonly,
                                tabindex: "-1",
                                value: c.value[1]
                            }, null),
                            y(kk, {
                                ref: k,
                                start: F.value,
                                stop: D.value
                            }, {
                                "tick-label": a["tick-label"]
                            }),
                            y(Qh, {
                                ref: n,
                                "aria-describedby": P.value,
                                focused: x && d.value === n.value?.$el,
                                modelValue: c.value[0],
                                "onUpdate:modelValue": (M)=>c.value = [
                                        M,
                                        c.value[1]
                                    ],
                                onFocus: (M)=>{
                                    C(), d.value = n.value?.$el, m.value !== f.value && c.value[0] === c.value[1] && c.value[1] === f.value && M.relatedTarget !== i.value?.$el && (n.value?.$el.blur(), i.value?.$el.focus());
                                },
                                onBlur: ()=>{
                                    w(), d.value = void 0;
                                },
                                min: f.value,
                                max: c.value[1],
                                position: F.value,
                                ripple: t.ripple
                            }, {
                                "thumb-label": a["thumb-label"]
                            }),
                            y(Qh, {
                                ref: i,
                                "aria-describedby": P.value,
                                focused: x && d.value === i.value?.$el,
                                modelValue: c.value[1],
                                "onUpdate:modelValue": (M)=>c.value = [
                                        c.value[0],
                                        M
                                    ],
                                onFocus: (M)=>{
                                    C(), d.value = i.value?.$el, m.value !== f.value && c.value[0] === c.value[1] && c.value[0] === m.value && M.relatedTarget !== n.value?.$el && (i.value?.$el.blur(), n.value?.$el.focus());
                                },
                                onBlur: ()=>{
                                    w(), d.value = void 0;
                                },
                                min: c.value[0],
                                max: m.value,
                                position: D.value,
                                ripple: t.ripple
                            }, {
                                "thumb-label": a["thumb-label"]
                            })
                        ]);
                    }
                });
            }), {};
        }
    });
    Nz = $({
        name: String,
        itemAriaLabel: {
            type: String,
            default: "$vuetify.rating.ariaLabel.item"
        },
        activeColor: String,
        color: String,
        clearable: Boolean,
        disabled: Boolean,
        emptyIcon: {
            type: Me,
            default: "$ratingEmpty"
        },
        fullIcon: {
            type: Me,
            default: "$ratingFull"
        },
        halfIncrements: Boolean,
        hover: Boolean,
        length: {
            type: [
                Number,
                String
            ],
            default: 5
        },
        readonly: Boolean,
        modelValue: {
            type: [
                Number,
                String
            ],
            default: 0
        },
        itemLabels: Array,
        itemLabelPosition: {
            type: String,
            default: "top",
            validator: (t)=>[
                    "top",
                    "bottom"
                ].includes(t)
        },
        ripple: Boolean,
        ...we(),
        ...ta(),
        ...xr(),
        ...We(),
        ...Qe()
    }, "VRating");
    Oz = te()({
        name: "VRating",
        props: Nz(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { t: r } = zt(), { themeClasses: n } = ut(t), i = Be(t, "modelValue"), o = T(()=>Rt(parseFloat(i.value), 0, Number(t.length))), s = T(()=>$r(Number(t.length), 1)), l = T(()=>s.value.flatMap((g)=>t.halfIncrements ? [
                        g - .5,
                        g
                    ] : [
                        g
                    ])), u = de(-1), c = T(()=>l.value.map((g)=>{
                    const v = t.hover && u.value > -1, b = o.value >= g, k = u.value >= g, x = (v ? k : b) ? t.fullIcon : t.emptyIcon, C = t.activeColor ?? t.color, w = b || k ? C : t.color;
                    return {
                        isFilled: b,
                        isHovered: k,
                        icon: x,
                        color: w
                    };
                })), d = T(()=>[
                    0,
                    ...l.value
                ].map((g)=>{
                    function v() {
                        u.value = g;
                    }
                    function b() {
                        u.value = -1;
                    }
                    function k() {
                        t.disabled || t.readonly || (i.value = o.value === g && t.clearable ? 0 : g);
                    }
                    return {
                        onMouseenter: t.hover ? v : void 0,
                        onMouseleave: t.hover ? b : void 0,
                        onClick: k
                    };
                })), h = La(), m = T(()=>t.name ?? `v-rating-${h}`);
            function f(g) {
                let { value: v, index: b, showStar: k = !0 } = g;
                const { onMouseenter: S, onMouseleave: x, onClick: C } = d.value[b + 1], w = `${m.value}-${String(v).replace(".", "-")}`, F = {
                    color: c.value[b]?.color,
                    density: t.density,
                    disabled: t.disabled,
                    icon: c.value[b]?.icon,
                    ripple: t.ripple,
                    size: t.size,
                    variant: "plain"
                };
                return y(Ce, null, [
                    y("label", {
                        for: w,
                        class: {
                            "v-rating__item--half": t.halfIncrements && v % 1 > 0,
                            "v-rating__item--full": t.halfIncrements && v % 1 === 0
                        },
                        onMouseenter: S,
                        onMouseleave: x,
                        onClick: C
                    }, [
                        y("span", {
                            class: "v-rating__hidden"
                        }, [
                            r(t.itemAriaLabel, v, t.length)
                        ]),
                        k ? a.item ? a.item({
                            ...c.value[b],
                            props: F,
                            value: v,
                            index: b,
                            rating: o.value
                        }) : y(Re, Z({
                            "aria-label": r(t.itemAriaLabel, v, t.length)
                        }, F), null) : void 0
                    ]),
                    y("input", {
                        class: "v-rating__hidden",
                        name: m.value,
                        id: w,
                        type: "radio",
                        value: v,
                        checked: o.value === v,
                        tabindex: -1,
                        readonly: t.readonly,
                        disabled: t.disabled
                    }, null)
                ]);
            }
            function p(g) {
                return a["item-label"] ? a["item-label"](g) : g.label ? y("span", null, [
                    g.label
                ]) : y("span", null, [
                    Pe(" ")
                ]);
            }
            return ie(()=>{
                const g = !!t.itemLabels?.length || a["item-label"];
                return y(t.tag, {
                    class: [
                        "v-rating",
                        {
                            "v-rating--hover": t.hover,
                            "v-rating--readonly": t.readonly
                        },
                        n.value,
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            y(f, {
                                value: 0,
                                index: -1,
                                showStar: !1
                            }, null),
                            s.value.map((v, b)=>y("div", {
                                    class: "v-rating__wrapper"
                                }, [
                                    g && t.itemLabelPosition === "top" ? p({
                                        value: v,
                                        index: b,
                                        label: t.itemLabels?.[b]
                                    }) : void 0,
                                    y("div", {
                                        class: "v-rating__item"
                                    }, [
                                        t.halfIncrements ? y(Ce, null, [
                                            y(f, {
                                                value: v - .5,
                                                index: b * 2
                                            }, null),
                                            y(f, {
                                                value: v,
                                                index: b * 2 + 1
                                            }, null)
                                        ]) : y(f, {
                                            value: v,
                                            index: b
                                        }, null)
                                    ]),
                                    g && t.itemLabelPosition === "bottom" ? p({
                                        value: v,
                                        index: b,
                                        label: t.itemLabels?.[b]
                                    }) : void 0
                                ]))
                        ]
                });
            }), {};
        }
    });
    Hz = {
        actions: "button@2",
        article: "heading, paragraph",
        avatar: "avatar",
        button: "button",
        card: "image, heading",
        "card-avatar": "image, list-item-avatar",
        chip: "chip",
        "date-picker": "list-item, heading, divider, date-picker-options, date-picker-days, actions",
        "date-picker-options": "text, avatar@2",
        "date-picker-days": "avatar@28",
        divider: "divider",
        heading: "heading",
        image: "image",
        "list-item": "text",
        "list-item-avatar": "avatar, text",
        "list-item-two-line": "sentences",
        "list-item-avatar-two-line": "avatar, sentences",
        "list-item-three-line": "paragraph",
        "list-item-avatar-three-line": "avatar, paragraph",
        ossein: "ossein",
        paragraph: "text@3",
        sentences: "text@2",
        subtitle: "text",
        table: "table-heading, table-thead, table-tbody, table-tfoot",
        "table-heading": "chip, text",
        "table-thead": "heading@6",
        "table-tbody": "table-row-divider@6",
        "table-row-divider": "table-row, divider",
        "table-row": "text@6",
        "table-tfoot": "text@2, avatar@2",
        text: "text"
    };
    function Vz(t) {
        let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
        return y("div", {
            class: [
                "v-skeleton-loader__bone",
                `v-skeleton-loader__${t}`
            ]
        }, [
            e
        ]);
    }
    function Ey(t) {
        const [e, a] = t.split("@");
        return Array.from({
            length: a
        }).map(()=>Zl(e));
    }
    function Zl(t) {
        let e = [];
        if (!t) return e;
        const a = Hz[t];
        if (t !== a) {
            if (t.includes(",")) return _y(t);
            if (t.includes("@")) return Ey(t);
            a.includes(",") ? e = _y(a) : a.includes("@") ? e = Ey(a) : a && e.push(Zl(a));
        }
        return [
            Vz(t, e)
        ];
    }
    function _y(t) {
        return t.replace(/\s/g, "").split(",").map(Zl);
    }
    const Wz = $({
        boilerplate: Boolean,
        color: String,
        loading: Boolean,
        loadingText: {
            type: String,
            default: "$vuetify.loading"
        },
        type: {
            type: [
                String,
                Array
            ],
            default: "ossein"
        },
        ...Ut(),
        ...Jt(),
        ...Qe()
    }, "VSkeletonLoader"), Gz = te()({
        name: "VSkeletonLoader",
        props: Wz(),
        setup (t, e) {
            let { slots: a } = e;
            const { backgroundColorClasses: r, backgroundColorStyles: n } = ft(K(t, "color")), { dimensionStyles: i } = jt(t), { elevationClasses: o } = na(t), { themeClasses: s } = ut(t), { t: l } = zt(), u = T(()=>Zl(Tt(t.type).join(",")));
            return ie(()=>{
                const c = !a.default || t.loading, d = t.boilerplate || !c ? {} : {
                    ariaLive: "polite",
                    ariaLabel: l(t.loadingText),
                    role: "alert"
                };
                return y("div", Z({
                    class: [
                        "v-skeleton-loader",
                        {
                            "v-skeleton-loader--boilerplate": t.boilerplate
                        },
                        s.value,
                        r.value,
                        o.value
                    ],
                    style: [
                        n.value,
                        c ? i.value : {}
                    ]
                }, d), [
                    c ? u.value : a.default?.()
                ]);
            }), {};
        }
    }), $z = te()({
        name: "VSlideGroupItem",
        props: Xn(),
        emits: {
            "group:selected": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Jn(t, l0);
            return ()=>a.default?.({
                    isSelected: r.isSelected.value,
                    select: r.select,
                    toggle: r.toggle,
                    selectedClass: r.selectedClass.value
                });
        }
    });
    function Uz(t) {
        const e = de(t());
        let a = -1;
        function r() {
            clearInterval(a);
        }
        function n() {
            r(), at(()=>e.value = t());
        }
        function i(o) {
            const s = o ? getComputedStyle(o) : {
                transitionDuration: .2
            }, l = parseFloat(s.transitionDuration) * 1e3 || 200;
            if (r(), e.value <= 0) return;
            const u = performance.now();
            a = window.setInterval(()=>{
                const c = performance.now() - u + l;
                e.value = Math.max(t() - c, 0), e.value <= 0 && r();
            }, l);
        }
        return pa(r), {
            clear: r,
            time: e,
            start: i,
            reset: n
        };
    }
    const Xk = $({
        multiLine: Boolean,
        text: String,
        timer: [
            Boolean,
            String
        ],
        timeout: {
            type: [
                Number,
                String
            ],
            default: 5e3
        },
        vertical: Boolean,
        ...zr({
            location: "bottom"
        }),
        ...zi(),
        ...Ct(),
        ...or(),
        ...Qe(),
        ...It($o({
            transition: "v-snackbar-transition"
        }), [
            "persistent",
            "noClickAnimation",
            "scrim",
            "scrollStrategy"
        ])
    }, "VSnackbar"), lm = te()({
        name: "VSnackbar",
        props: Xk(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), { positionClasses: n } = Ni(t), { scopeId: i } = ei(), { themeClasses: o } = ut(t), { colorClasses: s, colorStyles: l, variantClasses: u } = qn(t), { roundedClasses: c } = Mt(t), d = Uz(()=>Number(t.timeout)), h = W(), m = W(), f = de(!1), p = de(0), g = W(), v = Et(vw, void 0);
            Ma(()=>!!v, ()=>{
                const A = Yy();
                Lt(()=>{
                    g.value = A.mainStyles.value;
                });
            }), me(r, k), me(()=>t.timeout, k), ea(()=>{
                r.value && k();
            });
            let b = -1;
            function k() {
                d.reset(), window.clearTimeout(b);
                const A = Number(t.timeout);
                if (!r.value || A === -1) return;
                const E = gw(m.value);
                d.start(E), b = window.setTimeout(()=>{
                    r.value = !1;
                }, A);
            }
            function S() {
                d.reset(), window.clearTimeout(b);
            }
            function x() {
                f.value = !0, S();
            }
            function C() {
                f.value = !1, k();
            }
            function w(A) {
                p.value = A.touches[0].clientY;
            }
            function F(A) {
                Math.abs(p.value - A.changedTouches[0].clientY) > 50 && (r.value = !1);
            }
            function D() {
                f.value && C();
            }
            const _ = T(()=>t.location.split(" ").reduce((A, E)=>(A[`v-snackbar--${E}`] = !0, A), {}));
            return ie(()=>{
                const A = yr.filterProps(t), E = !!(a.default || a.text || t.text);
                return y(yr, Z({
                    ref: h,
                    class: [
                        "v-snackbar",
                        {
                            "v-snackbar--active": r.value,
                            "v-snackbar--multi-line": t.multiLine && !t.vertical,
                            "v-snackbar--timer": !!t.timer,
                            "v-snackbar--vertical": t.vertical
                        },
                        _.value,
                        n.value,
                        t.class
                    ],
                    style: [
                        g.value,
                        t.style
                    ]
                }, A, {
                    modelValue: r.value,
                    "onUpdate:modelValue": (B)=>r.value = B,
                    contentProps: Z({
                        class: [
                            "v-snackbar__wrapper",
                            o.value,
                            s.value,
                            c.value,
                            u.value
                        ],
                        style: [
                            l.value
                        ],
                        onPointerenter: x,
                        onPointerleave: C
                    }, A.contentProps),
                    persistent: !0,
                    noClickAnimation: !0,
                    scrim: !1,
                    scrollStrategy: "none",
                    _disableGlobalStack: !0,
                    onTouchstartPassive: w,
                    onTouchend: F,
                    onAfterLeave: D
                }, i), {
                    default: ()=>[
                            sn(!1, "v-snackbar"),
                            t.timer && !f.value && y("div", {
                                key: "timer",
                                class: "v-snackbar__timer"
                            }, [
                                y(Ml, {
                                    ref: m,
                                    color: typeof t.timer == "string" ? t.timer : "info",
                                    max: t.timeout,
                                    "model-value": d.time.value
                                }, null)
                            ]),
                            E && y("div", {
                                key: "content",
                                class: "v-snackbar__content",
                                role: "status",
                                "aria-live": "polite"
                            }, [
                                a.text?.() ?? t.text,
                                a.default?.()
                            ]),
                            a.actions && y(Ge, {
                                defaults: {
                                    VBtn: {
                                        variant: "text",
                                        ripple: !1,
                                        slim: !0
                                    }
                                }
                            }, {
                                default: ()=>[
                                        y("div", {
                                            class: "v-snackbar__actions"
                                        }, [
                                            a.actions({
                                                isActive: r
                                            })
                                        ])
                                    ]
                            })
                        ],
                    activator: a.activator
                });
            }), Za({}, h);
        }
    }), jz = $({
        closable: [
            Boolean,
            String
        ],
        closeText: {
            type: String,
            default: "$vuetify.dismiss"
        },
        modelValue: {
            type: Array,
            default: ()=>[]
        },
        ...It(Xk(), [
            "modelValue"
        ])
    }, "VSnackbarQueue"), Yz = te()({
        name: "VSnackbarQueue",
        props: jz(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const { t: n } = zt(), i = de(!1), o = de(!1), s = de();
            me(()=>t.modelValue.length, (h, m)=>{
                !o.value && h > m && u();
            }), me(i, (h)=>{
                h && (o.value = !0);
            });
            function l() {
                t.modelValue.length ? u() : (s.value = void 0, o.value = !1);
            }
            function u() {
                const [h, ...m] = t.modelValue;
                a("update:modelValue", m), s.value = typeof h == "string" ? {
                    text: h
                } : h, at(()=>{
                    i.value = !0;
                });
            }
            function c() {
                i.value = !1;
            }
            const d = T(()=>({
                    color: typeof t.closable == "string" ? t.closable : void 0,
                    text: n(t.closeText)
                }));
            ie(()=>{
                const h = !!(t.closable || r.actions), { modelValue: m, ...f } = lm.filterProps(t);
                return y(Ce, null, [
                    o.value && !!s.value && (r.default ? y(Ge, {
                        defaults: {
                            VSnackbar: s.value
                        }
                    }, {
                        default: ()=>[
                                r.default({
                                    item: s.value
                                })
                            ]
                    }) : y(lm, Z(f, s.value, {
                        modelValue: i.value,
                        "onUpdate:modelValue": (p)=>i.value = p,
                        onAfterLeave: l
                    }), {
                        text: r.text ? ()=>r.text?.({
                                item: s.value
                            }) : void 0,
                        actions: h ? ()=>y(Ce, null, [
                                r.actions ? y(Ge, {
                                    defaults: {
                                        VBtn: d.value
                                    }
                                }, {
                                    default: ()=>[
                                            r.actions({
                                                item: s.value,
                                                props: {
                                                    onClick: c
                                                }
                                            })
                                        ]
                                }) : y(Re, Z(d.value, {
                                    onClick: c
                                }), null)
                            ]) : void 0
                    }))
                ]);
            });
        }
    }), Jk = $({
        autoDraw: Boolean,
        autoDrawDuration: [
            Number,
            String
        ],
        autoDrawEasing: {
            type: String,
            default: "ease"
        },
        color: String,
        gradient: {
            type: Array,
            default: ()=>[]
        },
        gradientDirection: {
            type: String,
            validator: (t)=>[
                    "top",
                    "bottom",
                    "left",
                    "right"
                ].includes(t),
            default: "top"
        },
        height: {
            type: [
                String,
                Number
            ],
            default: 75
        },
        labels: {
            type: Array,
            default: ()=>[]
        },
        labelSize: {
            type: [
                Number,
                String
            ],
            default: 7
        },
        lineWidth: {
            type: [
                String,
                Number
            ],
            default: 4
        },
        id: String,
        itemValue: {
            type: String,
            default: "value"
        },
        modelValue: {
            type: Array,
            default: ()=>[]
        },
        min: [
            String,
            Number
        ],
        max: [
            String,
            Number
        ],
        padding: {
            type: [
                String,
                Number
            ],
            default: 8
        },
        showLabels: Boolean,
        smooth: [
            Boolean,
            String,
            Number
        ],
        width: {
            type: [
                Number,
                String
            ],
            default: 300
        }
    }, "Line"), Zk = $({
        autoLineWidth: Boolean,
        ...Jk()
    }, "VBarline"), Py = te()({
        name: "VBarline",
        props: Zk(),
        setup (t, e) {
            let { slots: a } = e;
            const r = La(), n = T(()=>t.id || `barline-${r}`), i = T(()=>Number(t.autoDrawDuration) || 500), o = T(()=>!!(t.showLabels || t.labels.length > 0 || a?.label)), s = T(()=>parseFloat(t.lineWidth) || 4), l = T(()=>Math.max(t.modelValue.length * s.value, Number(t.width))), u = T(()=>({
                    minX: 0,
                    maxX: l.value,
                    minY: 0,
                    maxY: parseInt(t.height, 10)
                })), c = T(()=>t.modelValue.map((g)=>$t(g, t.itemValue, g)));
            function d(g, v) {
                const { minX: b, maxX: k, minY: S, maxY: x } = v, C = g.length;
                let w = t.max != null ? Number(t.max) : Math.max(...g), F = t.min != null ? Number(t.min) : Math.min(...g);
                F > 0 && t.min == null && (F = 0), w < 0 && t.max == null && (w = 0);
                const D = k / C, _ = (x - S) / (w - F || 1), A = x - Math.abs(F * _);
                return g.map((E, B)=>{
                    const P = Math.abs(_ * E);
                    return {
                        x: b + B * D,
                        y: A - P + +(E < 0) * P,
                        height: P,
                        value: E
                    };
                });
            }
            const h = T(()=>{
                const g = [], v = d(c.value, u.value), b = v.length;
                for(let k = 0; g.length < b; k++){
                    const S = v[k];
                    let x = t.labels[k];
                    x || (x = typeof S == "object" ? S.value : S), g.push({
                        x: S.x,
                        value: String(x)
                    });
                }
                return g;
            }), m = T(()=>d(c.value, u.value)), f = T(()=>(Math.abs(m.value[0].x - m.value[1].x) - s.value) / 2), p = T(()=>typeof t.smooth == "boolean" ? t.smooth ? 2 : 0 : Number(t.smooth));
            ie(()=>{
                const g = t.gradient.slice().length ? t.gradient.slice().reverse() : [
                    ""
                ];
                return y("svg", {
                    display: "block"
                }, [
                    y("defs", null, [
                        y("linearGradient", {
                            id: n.value,
                            gradientUnits: "userSpaceOnUse",
                            x1: t.gradientDirection === "left" ? "100%" : "0",
                            y1: t.gradientDirection === "top" ? "100%" : "0",
                            x2: t.gradientDirection === "right" ? "100%" : "0",
                            y2: t.gradientDirection === "bottom" ? "100%" : "0"
                        }, [
                            g.map((v, b)=>y("stop", {
                                    offset: b / Math.max(g.length - 1, 1),
                                    "stop-color": v || "currentColor"
                                }, null))
                        ])
                    ]),
                    y("clipPath", {
                        id: `${n.value}-clip`
                    }, [
                        m.value.map((v)=>y("rect", {
                                x: v.x + f.value,
                                y: v.y,
                                width: s.value,
                                height: v.height,
                                rx: p.value,
                                ry: p.value
                            }, [
                                t.autoDraw && y(Ce, null, [
                                    y("animate", {
                                        attributeName: "y",
                                        from: v.y + v.height,
                                        to: v.y,
                                        dur: `${i.value}ms`,
                                        fill: "freeze"
                                    }, null),
                                    y("animate", {
                                        attributeName: "height",
                                        from: "0",
                                        to: v.height,
                                        dur: `${i.value}ms`,
                                        fill: "freeze"
                                    }, null)
                                ])
                            ]))
                    ]),
                    o.value && y("g", {
                        key: "labels",
                        style: {
                            textAnchor: "middle",
                            dominantBaseline: "mathematical",
                            fill: "currentColor"
                        }
                    }, [
                        h.value.map((v, b)=>y("text", {
                                x: v.x + f.value + s.value / 2,
                                y: parseInt(t.height, 10) - 2 + (parseInt(t.labelSize, 10) || 7 * .75),
                                "font-size": Number(t.labelSize) || 7
                            }, [
                                a.label?.({
                                    index: b,
                                    value: v.value
                                }) ?? v.value
                            ]))
                    ]),
                    y("g", {
                        "clip-path": `url(#${n.value}-clip)`,
                        fill: `url(#${n.value})`
                    }, [
                        y("rect", {
                            x: 0,
                            y: 0,
                            width: Math.max(t.modelValue.length * s.value, Number(t.width)),
                            height: t.height
                        }, null)
                    ])
                ]);
            });
        }
    });
    function qz(t, e) {
        let a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !1, r = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 75;
        if (t.length === 0) return "";
        const n = t.shift(), i = t[t.length - 1];
        return (a ? `M${n.x} ${r - n.x + 2} L${n.x} ${n.y}` : `M${n.x} ${n.y}`) + t.map((o, s)=>{
            const l = t[s + 1], u = t[s - 1] || n, c = l && Kz(l, o, u);
            if (!l || c) return `L${o.x} ${o.y}`;
            const d = Math.min(By(u, o), By(l, o)), m = d / 2 < e ? d / 2 : e, f = My(u, o, m), p = My(l, o, m);
            return `L${f.x} ${f.y}S${o.x} ${o.y} ${p.x} ${p.y}`;
        }).join("") + (a ? `L${i.x} ${r - n.x + 2} Z` : "");
    }
    function bs(t) {
        return parseInt(t, 10);
    }
    function Kz(t, e, a) {
        return bs(t.x + a.x) === bs(2 * e.x) && bs(t.y + a.y) === bs(2 * e.y);
    }
    function By(t, e) {
        return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2));
    }
    function My(t, e, a) {
        const r = {
            x: t.x - e.x,
            y: t.y - e.y
        }, n = Math.sqrt(r.x * r.x + r.y * r.y), i = {
            x: r.x / n,
            y: r.y / n
        };
        return {
            x: e.x + i.x * a,
            y: e.y + i.y * a
        };
    }
    let Qk, Ry, Xz, Jz, Zz, Qz, Lf, ex, tx, ax, eN, tN, rx, aN, nx, rN, ix, nN, iN, oN, sN, uN, cN, If, dN, hN, sx, mN, lx;
    Qk = $({
        fill: Boolean,
        ...Jk()
    }, "VTrendline");
    Ry = te()({
        name: "VTrendline",
        props: Qk(),
        setup (t, e) {
            let { slots: a } = e;
            const r = La(), n = T(()=>t.id || `trendline-${r}`), i = T(()=>Number(t.autoDrawDuration) || (t.fill ? 500 : 2e3)), o = W(0), s = W(null);
            function l(g, v) {
                const { minX: b, maxX: k, minY: S, maxY: x } = v, C = g.length, w = t.max != null ? Number(t.max) : Math.max(...g), F = t.min != null ? Number(t.min) : Math.min(...g), D = (k - b) / (C - 1), _ = (x - S) / (w - F || 1);
                return g.map((A, E)=>({
                        x: b + E * D,
                        y: x - (A - F) * _,
                        value: A
                    }));
            }
            const u = T(()=>!!(t.showLabels || t.labels.length > 0 || a?.label)), c = T(()=>parseFloat(t.lineWidth) || 4), d = T(()=>Number(t.width)), h = T(()=>{
                const g = Number(t.padding);
                return {
                    minX: g,
                    maxX: d.value - g,
                    minY: g,
                    maxY: parseInt(t.height, 10) - g
                };
            }), m = T(()=>t.modelValue.map((g)=>$t(g, t.itemValue, g))), f = T(()=>{
                const g = [], v = l(m.value, h.value), b = v.length;
                for(let k = 0; g.length < b; k++){
                    const S = v[k];
                    let x = t.labels[k];
                    x || (x = typeof S == "object" ? S.value : S), g.push({
                        x: S.x,
                        value: String(x)
                    });
                }
                return g;
            });
            me(()=>t.modelValue, async ()=>{
                if (await at(), !t.autoDraw || !s.value) return;
                const g = s.value, v = g.getTotalLength();
                t.fill ? (g.style.transformOrigin = "bottom center", g.style.transition = "none", g.style.transform = "scaleY(0)", g.getBoundingClientRect(), g.style.transition = `transform ${i.value}ms ${t.autoDrawEasing}`, g.style.transform = "scaleY(1)") : (g.style.strokeDasharray = `${v}`, g.style.strokeDashoffset = `${v}`, g.getBoundingClientRect(), g.style.transition = `stroke-dashoffset ${i.value}ms ${t.autoDrawEasing}`, g.style.strokeDashoffset = "0"), o.value = v;
            }, {
                immediate: !0
            });
            function p(g) {
                const v = typeof t.smooth == "boolean" ? t.smooth ? 8 : 0 : Number(t.smooth);
                return qz(l(m.value, h.value), v, g, parseInt(t.height, 10));
            }
            ie(()=>{
                const g = t.gradient.slice().length ? t.gradient.slice().reverse() : [
                    ""
                ];
                return y("svg", {
                    display: "block",
                    "stroke-width": parseFloat(t.lineWidth) ?? 4
                }, [
                    y("defs", null, [
                        y("linearGradient", {
                            id: n.value,
                            gradientUnits: "userSpaceOnUse",
                            x1: t.gradientDirection === "left" ? "100%" : "0",
                            y1: t.gradientDirection === "top" ? "100%" : "0",
                            x2: t.gradientDirection === "right" ? "100%" : "0",
                            y2: t.gradientDirection === "bottom" ? "100%" : "0"
                        }, [
                            g.map((v, b)=>y("stop", {
                                    offset: b / Math.max(g.length - 1, 1),
                                    "stop-color": v || "currentColor"
                                }, null))
                        ])
                    ]),
                    u.value && y("g", {
                        key: "labels",
                        style: {
                            textAnchor: "middle",
                            dominantBaseline: "mathematical",
                            fill: "currentColor"
                        }
                    }, [
                        f.value.map((v, b)=>y("text", {
                                x: v.x + c.value / 2 + c.value / 2,
                                y: parseInt(t.height, 10) - 4 + (parseInt(t.labelSize, 10) || 7 * .75),
                                "font-size": Number(t.labelSize) || 7
                            }, [
                                a.label?.({
                                    index: b,
                                    value: v.value
                                }) ?? v.value
                            ]))
                    ]),
                    y("path", {
                        ref: s,
                        d: p(t.fill),
                        fill: t.fill ? `url(#${n.value})` : "none",
                        stroke: t.fill ? "none" : `url(#${n.value})`
                    }, null),
                    t.fill && y("path", {
                        d: p(!1),
                        fill: "none",
                        stroke: t.color ?? t.gradient?.[0]
                    }, null)
                ]);
            });
        }
    });
    Xz = $({
        type: {
            type: String,
            default: "trend"
        },
        ...Zk(),
        ...Qk()
    }, "VSparkline");
    Jz = te()({
        name: "VSparkline",
        props: Xz(),
        setup (t, e) {
            let { slots: a } = e;
            const { textColorClasses: r, textColorStyles: n } = ha(K(t, "color")), i = T(()=>!!(t.showLabels || t.labels.length > 0 || a?.label)), o = T(()=>{
                let s = parseInt(t.height, 10);
                return i.value && (s += parseInt(t.labelSize, 10) * 1.5), s;
            });
            ie(()=>{
                const s = t.type === "trend" ? Ry : Py, l = t.type === "trend" ? Ry.filterProps(t) : Py.filterProps(t);
                return y(s, Z({
                    key: t.type,
                    class: r.value,
                    style: n.value,
                    viewBox: `0 0 ${t.width} ${parseInt(o.value, 10)}`
                }, l), a);
            });
        }
    });
    Zz = $({
        ...we(),
        ...M0({
            offset: 8,
            minWidth: 0,
            openDelay: 0,
            closeDelay: 100,
            location: "top center",
            transition: "scale-transition"
        })
    }, "VSpeedDial");
    Qz = te()({
        name: "VSpeedDial",
        props: Zz(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Be(t, "modelValue"), n = W(), i = T(()=>{
                const [s, l = "center"] = t.location?.split(" ") ?? [];
                return `${s} ${l}`;
            }), o = T(()=>({
                    [`v-speed-dial__content--${i.value.replace(" ", "-")}`]: !0
                }));
            return ie(()=>{
                const s = Jr.filterProps(t);
                return y(Jr, Z(s, {
                    modelValue: r.value,
                    "onUpdate:modelValue": (l)=>r.value = l,
                    class: t.class,
                    style: t.style,
                    contentClass: [
                        "v-speed-dial__content",
                        o.value,
                        t.contentClass
                    ],
                    location: i.value,
                    ref: n,
                    transition: "fade-transition"
                }), {
                    ...a,
                    default: (l)=>y(Ge, {
                            defaults: {
                                VBtn: {
                                    size: "small"
                                }
                            }
                        }, {
                            default: ()=>[
                                    y(ba, {
                                        appear: !0,
                                        group: !0,
                                        transition: t.transition
                                    }, {
                                        default: ()=>[
                                                a.default?.(l)
                                            ]
                                    })
                                ]
                        })
                });
            }), {};
        }
    });
    Lf = Symbol.for("vuetify:v-stepper");
    ex = $({
        color: String,
        disabled: {
            type: [
                Boolean,
                String
            ],
            default: !1
        },
        prevText: {
            type: String,
            default: "$vuetify.stepper.prev"
        },
        nextText: {
            type: String,
            default: "$vuetify.stepper.next"
        }
    }, "VStepperActions");
    tx = te()({
        name: "VStepperActions",
        props: ex(),
        emits: {
            "click:prev": ()=>!0,
            "click:next": ()=>!0
        },
        setup (t, e) {
            let { emit: a, slots: r } = e;
            const { t: n } = zt();
            function i() {
                a("click:prev");
            }
            function o() {
                a("click:next");
            }
            return ie(()=>{
                const s = {
                    onClick: i
                }, l = {
                    onClick: o
                };
                return y("div", {
                    class: "v-stepper-actions"
                }, [
                    y(Ge, {
                        defaults: {
                            VBtn: {
                                disabled: [
                                    "prev",
                                    !0
                                ].includes(t.disabled),
                                text: n(t.prevText),
                                variant: "text"
                            }
                        }
                    }, {
                        default: ()=>[
                                r.prev?.({
                                    props: s
                                }) ?? y(Re, s, null)
                            ]
                    }),
                    y(Ge, {
                        defaults: {
                            VBtn: {
                                color: t.color,
                                disabled: [
                                    "next",
                                    !0
                                ].includes(t.disabled),
                                text: n(t.nextText),
                                variant: "tonal"
                            }
                        }
                    }, {
                        default: ()=>[
                                r.next?.({
                                    props: l
                                }) ?? y(Re, l, null)
                            ]
                    })
                ]);
            }), {};
        }
    });
    ax = br("v-stepper-header");
    eN = $({
        color: String,
        title: String,
        subtitle: String,
        complete: Boolean,
        completeIcon: {
            type: Me,
            default: "$complete"
        },
        editable: Boolean,
        editIcon: {
            type: Me,
            default: "$edit"
        },
        error: Boolean,
        errorIcon: {
            type: Me,
            default: "$error"
        },
        icon: Me,
        ripple: {
            type: [
                Boolean,
                Object
            ],
            default: !0
        },
        rules: {
            type: Array,
            default: ()=>[]
        }
    }, "StepperItem");
    tN = $({
        ...eN(),
        ...Xn()
    }, "VStepperItem");
    rx = te()({
        name: "VStepperItem",
        directives: {
            Ripple: Lr
        },
        props: tN(),
        emits: {
            "group:selected": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Jn(t, Lf, !0), n = T(()=>r?.value.value ?? t.value), i = T(()=>t.rules.every((h)=>h() === !0)), o = T(()=>!t.disabled && t.editable), s = T(()=>!t.disabled && t.editable), l = T(()=>t.error || !i.value), u = T(()=>t.complete || t.rules.length > 0 && i.value), c = T(()=>l.value ? t.errorIcon : u.value ? t.completeIcon : r.isSelected.value && t.editable ? t.editIcon : t.icon), d = T(()=>({
                    canEdit: s.value,
                    hasError: l.value,
                    hasCompleted: u.value,
                    title: t.title,
                    subtitle: t.subtitle,
                    step: n.value,
                    value: t.value
                }));
            return ie(()=>{
                const h = (!r || r.isSelected.value || u.value || s.value) && !l.value && !t.disabled, m = !!(t.title != null || a.title), f = !!(t.subtitle != null || a.subtitle);
                function p() {
                    r?.toggle();
                }
                return mt(y("button", {
                    class: [
                        "v-stepper-item",
                        {
                            "v-stepper-item--complete": u.value,
                            "v-stepper-item--disabled": t.disabled,
                            "v-stepper-item--error": l.value
                        },
                        r?.selectedClass.value
                    ],
                    disabled: !t.editable,
                    type: "button",
                    onClick: p
                }, [
                    o.value && sn(!0, "v-stepper-item"),
                    y(ir, {
                        key: "stepper-avatar",
                        class: "v-stepper-item__avatar",
                        color: h ? t.color : void 0,
                        size: 24
                    }, {
                        default: ()=>[
                                a.icon?.(d.value) ?? (c.value ? y(_e, {
                                    icon: c.value
                                }, null) : n.value)
                            ]
                    }),
                    y("div", {
                        class: "v-stepper-item__content"
                    }, [
                        m && y("div", {
                            key: "title",
                            class: "v-stepper-item__title"
                        }, [
                            a.title?.(d.value) ?? t.title
                        ]),
                        f && y("div", {
                            key: "subtitle",
                            class: "v-stepper-item__subtitle"
                        }, [
                            a.subtitle?.(d.value) ?? t.subtitle
                        ]),
                        a.default?.(d.value)
                    ])
                ]), [
                    [
                        qa("ripple"),
                        t.ripple && t.editable,
                        null
                    ]
                ]);
            }), {};
        }
    });
    aN = $({
        ...It(Vl(), [
            "continuous",
            "nextIcon",
            "prevIcon",
            "showArrows",
            "touch",
            "mandatory"
        ])
    }, "VStepperWindow");
    nx = te()({
        name: "VStepperWindow",
        props: aN(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Et(Lf, null), n = Be(t, "modelValue"), i = T({
                get () {
                    return n.value != null || !r ? n.value : r.items.value.find((o)=>r.selected.value.includes(o.id))?.value;
                },
                set (o) {
                    n.value = o;
                }
            });
            return ie(()=>{
                const o = Rn.filterProps(t);
                return y(Rn, Z({
                    _as: "VStepperWindow"
                }, o, {
                    modelValue: i.value,
                    "onUpdate:modelValue": (s)=>i.value = s,
                    class: [
                        "v-stepper-window",
                        t.class
                    ],
                    style: t.style,
                    mandatory: !1,
                    touch: !1
                }), a);
            }), {};
        }
    });
    rN = $({
        ...Wl()
    }, "VStepperWindowItem");
    ix = te()({
        name: "VStepperWindowItem",
        props: rN(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>{
                const r = Ln.filterProps(t);
                return y(Ln, Z({
                    _as: "VStepperWindowItem"
                }, r, {
                    class: [
                        "v-stepper-window-item",
                        t.class
                    ],
                    style: t.style
                }), a);
            }), {};
        }
    });
    nN = $({
        altLabels: Boolean,
        bgColor: String,
        completeIcon: Me,
        editIcon: Me,
        editable: Boolean,
        errorIcon: Me,
        hideActions: Boolean,
        items: {
            type: Array,
            default: ()=>[]
        },
        itemTitle: {
            type: String,
            default: "title"
        },
        itemValue: {
            type: String,
            default: "value"
        },
        nonLinear: Boolean,
        flat: Boolean,
        ...Vn()
    }, "Stepper");
    iN = $({
        ...nN(),
        ...Kn({
            mandatory: "force",
            selectedClass: "v-stepper-item--selected"
        }),
        ...of(),
        ...Hn(ex(), [
            "prevText",
            "nextText"
        ])
    }, "VStepper");
    oN = te()({
        name: "VStepper",
        props: iN(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const { items: r, next: n, prev: i, selected: o } = ln(t, Lf), { displayClasses: s, mobile: l } = Ia(t), { completeIcon: u, editIcon: c, errorIcon: d, color: h, editable: m, prevText: f, nextText: p } = Ei(t), g = T(()=>t.items.map((k, S)=>{
                    const x = $t(k, t.itemTitle, k), C = $t(k, t.itemValue, S + 1);
                    return {
                        title: x,
                        value: C,
                        raw: k
                    };
                })), v = T(()=>r.value.findIndex((k)=>o.value.includes(k.id))), b = T(()=>t.disabled ? t.disabled : v.value === 0 ? "prev" : v.value === r.value.length - 1 ? "next" : !1);
            return Bt({
                VStepperItem: {
                    editable: m,
                    errorIcon: d,
                    completeIcon: u,
                    editIcon: c,
                    prevText: f,
                    nextText: p
                },
                VStepperActions: {
                    color: h,
                    disabled: b,
                    prevText: f,
                    nextText: p
                }
            }), ie(()=>{
                const k = Br.filterProps(t), S = !!(a.header || t.items.length), x = t.items.length > 0, C = !t.hideActions && !!(x || a.actions);
                return y(Br, Z(k, {
                    color: t.bgColor,
                    class: [
                        "v-stepper",
                        {
                            "v-stepper--alt-labels": t.altLabels,
                            "v-stepper--flat": t.flat,
                            "v-stepper--non-linear": t.nonLinear,
                            "v-stepper--mobile": l.value
                        },
                        s.value,
                        t.class
                    ],
                    style: t.style
                }), {
                    default: ()=>[
                            S && y(ax, {
                                key: "stepper-header"
                            }, {
                                default: ()=>[
                                        g.value.map((w, F)=>{
                                            let { raw: D, ..._ } = w;
                                            return y(Ce, null, [
                                                !!F && y(_a, null, null),
                                                y(rx, _, {
                                                    default: a[`header-item.${_.value}`] ?? a.header,
                                                    icon: a.icon,
                                                    title: a.title,
                                                    subtitle: a.subtitle
                                                })
                                            ]);
                                        })
                                    ]
                            }),
                            x && y(nx, {
                                key: "stepper-window"
                            }, {
                                default: ()=>[
                                        g.value.map((w)=>y(ix, {
                                                value: w.value
                                            }, {
                                                default: ()=>a[`item.${w.value}`]?.(w) ?? a.item?.(w)
                                            }))
                                    ]
                            }),
                            a.default?.({
                                prev: i,
                                next: n
                            }),
                            C && (a.actions?.({
                                next: n,
                                prev: i
                            }) ?? y(tx, {
                                key: "stepper-actions",
                                "onClick:prev": i,
                                "onClick:next": n
                            }, a))
                        ]
                });
            }), {
                prev: i,
                next: n
            };
        }
    });
    sN = $({
        indeterminate: Boolean,
        inset: Boolean,
        flat: Boolean,
        loading: {
            type: [
                Boolean,
                String
            ],
            default: !1
        },
        ...Ir(),
        ...Dl()
    }, "VSwitch");
    lN = te()({
        name: "VSwitch",
        inheritAttrs: !1,
        props: sN(),
        emits: {
            "update:focused": (t)=>!0,
            "update:modelValue": (t)=>!0,
            "update:indeterminate": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const n = Be(t, "indeterminate"), i = Be(t, "modelValue"), { loaderClasses: o } = Uo(t), { isFocused: s, focus: l, blur: u } = wr(t), c = W(), d = Yt && window.matchMedia("(forced-colors: active)").matches, h = T(()=>typeof t.loading == "string" && t.loading !== "" ? t.loading : t.color), m = La(), f = T(()=>t.id || `switch-${m}`);
            function p() {
                n.value && (n.value = !1);
            }
            function g(v) {
                v.stopPropagation(), v.preventDefault(), c.value?.input?.click();
            }
            return ie(()=>{
                const [v, b] = an(a), k = ma.filterProps(t), S = Xr.filterProps(t);
                return y(ma, Z({
                    class: [
                        "v-switch",
                        {
                            "v-switch--flat": t.flat
                        },
                        {
                            "v-switch--inset": t.inset
                        },
                        {
                            "v-switch--indeterminate": n.value
                        },
                        o.value,
                        t.class
                    ]
                }, v, k, {
                    modelValue: i.value,
                    "onUpdate:modelValue": (x)=>i.value = x,
                    id: f.value,
                    focused: s.value,
                    style: t.style
                }), {
                    ...r,
                    default: (x)=>{
                        let { id: C, messagesId: w, isDisabled: F, isReadonly: D, isValid: _ } = x;
                        const A = {
                            model: i,
                            isValid: _
                        };
                        return y(Xr, Z({
                            ref: c
                        }, S, {
                            modelValue: i.value,
                            "onUpdate:modelValue": [
                                (E)=>i.value = E,
                                p
                            ],
                            id: C.value,
                            "aria-describedby": w.value,
                            type: "checkbox",
                            "aria-checked": n.value ? "mixed" : void 0,
                            disabled: F.value,
                            readonly: D.value,
                            onFocus: l,
                            onBlur: u
                        }, b), {
                            ...r,
                            default: (E)=>{
                                let { backgroundColorClasses: B, backgroundColorStyles: P } = E;
                                return y("div", {
                                    class: [
                                        "v-switch__track",
                                        d ? void 0 : B.value
                                    ],
                                    style: P.value,
                                    onClick: g
                                }, [
                                    r["track-true"] && y("div", {
                                        key: "prepend",
                                        class: "v-switch__track-true"
                                    }, [
                                        r["track-true"](A)
                                    ]),
                                    r["track-false"] && y("div", {
                                        key: "append",
                                        class: "v-switch__track-false"
                                    }, [
                                        r["track-false"](A)
                                    ])
                                ]);
                            },
                            input: (E)=>{
                                let { inputNode: B, icon: P, backgroundColorClasses: M, backgroundColorStyles: R } = E;
                                return y(Ce, null, [
                                    B,
                                    y("div", {
                                        class: [
                                            "v-switch__thumb",
                                            {
                                                "v-switch__thumb--filled": P || t.loading
                                            },
                                            t.inset || d ? void 0 : M.value
                                        ],
                                        style: t.inset ? void 0 : R.value
                                    }, [
                                        r.thumb ? y(Ge, {
                                            defaults: {
                                                VIcon: {
                                                    icon: P,
                                                    size: "x-small"
                                                }
                                            }
                                        }, {
                                            default: ()=>[
                                                    r.thumb({
                                                        ...A,
                                                        icon: P
                                                    })
                                                ]
                                        }) : y(go, null, {
                                            default: ()=>[
                                                    t.loading ? y(jo, {
                                                        name: "v-switch",
                                                        active: !0,
                                                        color: _.value === !1 ? void 0 : h.value
                                                    }, {
                                                        default: (z)=>r.loader ? r.loader(z) : y(Si, {
                                                                active: z.isActive,
                                                                color: z.color,
                                                                indeterminate: !0,
                                                                size: "16",
                                                                width: "2"
                                                            }, null)
                                                    }) : P && y(_e, {
                                                        key: String(P),
                                                        icon: P,
                                                        size: "x-small"
                                                    }, null)
                                                ]
                                        })
                                    ])
                                ]);
                            }
                        });
                    }
                });
            }), {};
        }
    });
    uN = $({
        color: String,
        height: [
            Number,
            String
        ],
        window: Boolean,
        ...we(),
        ...Jt(),
        ...Gn(),
        ...Ct(),
        ...We(),
        ...Qe()
    }, "VSystemBar");
    cN = te()({
        name: "VSystemBar",
        props: uN(),
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t), { backgroundColorClasses: n, backgroundColorStyles: i } = ft(K(t, "color")), { elevationClasses: o } = na(t), { roundedClasses: s } = Mt(t), { ssrBootStyles: l } = Zn(), u = T(()=>t.height ?? (t.window ? 32 : 24)), { layoutItemStyles: c } = Wn({
                id: t.name,
                order: T(()=>parseInt(t.order, 10)),
                position: de("top"),
                layoutSize: u,
                elementSize: u,
                active: T(()=>!0),
                absolute: K(t, "absolute")
            });
            return ie(()=>y(t.tag, {
                    class: [
                        "v-system-bar",
                        {
                            "v-system-bar--window": t.window
                        },
                        r.value,
                        n.value,
                        o.value,
                        s.value,
                        t.class
                    ],
                    style: [
                        i.value,
                        c.value,
                        l.value,
                        t.style
                    ]
                }, a)), {};
        }
    });
    If = Symbol.for("vuetify:v-tabs");
    dN = $({
        fixed: Boolean,
        sliderColor: String,
        hideSlider: Boolean,
        direction: {
            type: String,
            default: "horizontal"
        },
        ...It(Il({
            selectedClass: "v-tab--selected",
            variant: "text"
        }), [
            "active",
            "block",
            "flat",
            "location",
            "position",
            "symbol"
        ])
    }, "VTab");
    ox = te()({
        name: "VTab",
        props: dN(),
        setup (t, e) {
            let { slots: a, attrs: r } = e;
            const { textColorClasses: n, textColorStyles: i } = ha(t, "sliderColor"), o = W(), s = W(), l = T(()=>t.direction === "horizontal"), u = T(()=>o.value?.group?.isSelected.value ?? !1);
            function c(d) {
                let { value: h } = d;
                if (h) {
                    const m = o.value?.$el.parentElement?.querySelector(".v-tab--selected .v-tab__slider"), f = s.value;
                    if (!m || !f) return;
                    const p = getComputedStyle(m).color, g = m.getBoundingClientRect(), v = f.getBoundingClientRect(), b = l.value ? "x" : "y", k = l.value ? "X" : "Y", S = l.value ? "right" : "bottom", x = l.value ? "width" : "height", C = g[b], w = v[b], F = C > w ? g[S] - v[S] : g[b] - v[b], D = Math.sign(F) > 0 ? l.value ? "right" : "bottom" : Math.sign(F) < 0 ? l.value ? "left" : "top" : "center", A = (Math.abs(F) + (Math.sign(F) < 0 ? g[x] : v[x])) / Math.max(g[x], v[x]) || 0, E = g[x] / v[x] || 0, B = 1.5;
                    vn(f, {
                        backgroundColor: [
                            p,
                            "currentcolor"
                        ],
                        transform: [
                            `translate${k}(${F}px) scale${k}(${E})`,
                            `translate${k}(${F / B}px) scale${k}(${(A - 1) / B + 1})`,
                            "none"
                        ],
                        transformOrigin: Array(3).fill(D)
                    }, {
                        duration: 225,
                        easing: co
                    });
                }
            }
            return ie(()=>{
                const d = Re.filterProps(t);
                return y(Re, Z({
                    symbol: If,
                    ref: o,
                    class: [
                        "v-tab",
                        t.class
                    ],
                    style: t.style,
                    tabindex: u.value ? 0 : -1,
                    role: "tab",
                    "aria-selected": String(u.value),
                    active: !1
                }, d, r, {
                    block: t.fixed,
                    maxWidth: t.fixed ? 300 : void 0,
                    "onGroup:selected": c
                }), {
                    ...a,
                    default: ()=>y(Ce, null, [
                            a.default?.() ?? t.text,
                            !t.hideSlider && y("div", {
                                ref: s,
                                class: [
                                    "v-tab__slider",
                                    n.value
                                ],
                                style: i.value
                            }, null)
                        ])
                });
            }), Za({}, o);
        }
    });
    hN = $({
        ...It(Vl(), [
            "continuous",
            "nextIcon",
            "prevIcon",
            "showArrows",
            "touch",
            "mandatory"
        ])
    }, "VTabsWindow");
    sx = te()({
        name: "VTabsWindow",
        props: hN(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = Et(If, null), n = Be(t, "modelValue"), i = T({
                get () {
                    return n.value != null || !r ? n.value : r.items.value.find((o)=>r.selected.value.includes(o.id))?.value;
                },
                set (o) {
                    n.value = o;
                }
            });
            return ie(()=>{
                const o = Rn.filterProps(t);
                return y(Rn, Z({
                    _as: "VTabsWindow"
                }, o, {
                    modelValue: i.value,
                    "onUpdate:modelValue": (s)=>i.value = s,
                    class: [
                        "v-tabs-window",
                        t.class
                    ],
                    style: t.style,
                    mandatory: !1,
                    touch: !1
                }), a);
            }), {};
        }
    });
    mN = $({
        ...Wl()
    }, "VTabsWindowItem");
    lx = te()({
        name: "VTabsWindowItem",
        props: mN(),
        setup (t, e) {
            let { slots: a } = e;
            return ie(()=>{
                const r = Ln.filterProps(t);
                return y(Ln, Z({
                    _as: "VTabsWindowItem"
                }, r, {
                    class: [
                        "v-tabs-window-item",
                        t.class
                    ],
                    style: t.style
                }), a);
            }), {};
        }
    });
    function fN(t) {
        return t ? t.map((e)=>pm(e) ? e : {
                text: e,
                value: e
            }) : [];
    }
    let pN, vN, yN, bN, FN, ux, kN, xN, wN, SN, CN, AN, DN, TN, EN, _N, PN, BN, MN, RN, LN, IN, zN, NN, ON, HN, VN, WN, GN, $N, UN, jN, YN, qN, KN, XN, JN, ZN, QN, eO, tO, aO, rO, nO, iO, oO, sO, lO, uO, cO, dO, hO, mO, fO, pO, gO, vO, yO, bO, FO, kO, xO, wO, SO, CO, AO, DO, TO, EO, _O, PO, BO, MO, RO, LO, IO, zO, NO, OO, HO, VO, WO, GO, $O, UO, jO, YO, qO, KO, XO, JO, ZO, QO, eH, tH, aH, rH, nH, iH, oH, sH, lH, uH, cH, dH, hH, mH, fH, pH, gH, vH, yH, bH, FH, kH, xH, wH, SH, CH, AH, DH, TH, EH, _H, PH, BH, MH, RH, LH, IH, zH, NH, OH, HH, VH, WH, GH, $H, UH, jH, YH, qH, KH, XH, JH, ZH, QH, e9, t9, a9, r9, n9, i9, o9, s9, l9, u9, c9, d9, h9, m9, f9, p9, g9, v9, y9, b9, F9, k9, x9, w9, S9, C9, A9, D9, T9, E9, _9, P9, B9, M9, R9, L9, I9, z9, N9, O9, H9, V9, W9, G9, $9, U9, j9, Y9, q9, K9, X9, J9, Z9, Q9, eV, tV, aV, rV, nV, iV, oV, sV, lV, uV, cV, dV, hV, mV, fV, pV, gV, vV, yV, bV, FV, kV, xV, wV, SV, CV, AV, DV, TV, EV, _V, PV, BV, MV, RV, LV, cx;
    pN = $({
        alignTabs: {
            type: String,
            default: "start"
        },
        color: String,
        fixedTabs: Boolean,
        items: {
            type: Array,
            default: ()=>[]
        },
        stacked: Boolean,
        bgColor: String,
        grow: Boolean,
        height: {
            type: [
                Number,
                String
            ],
            default: void 0
        },
        hideSlider: Boolean,
        sliderColor: String,
        ...jm({
            mandatory: "force",
            selectedClass: "v-tab-item--selected"
        }),
        ...ta(),
        ...We()
    }, "VTabs");
    gN = te()({
        name: "VTabs",
        props: pN(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { attrs: a, slots: r } = e;
            const n = Be(t, "modelValue"), i = T(()=>fN(t.items)), { densityClasses: o } = xa(t), { backgroundColorClasses: s, backgroundColorStyles: l } = ft(K(t, "bgColor")), { scopeId: u } = ei();
            return Bt({
                VTab: {
                    color: K(t, "color"),
                    direction: K(t, "direction"),
                    stacked: K(t, "stacked"),
                    fixed: K(t, "fixedTabs"),
                    sliderColor: K(t, "sliderColor"),
                    hideSlider: K(t, "hideSlider")
                }
            }), ie(()=>{
                const c = yo.filterProps(t), d = !!(r.window || t.items.length > 0);
                return y(Ce, null, [
                    y(yo, Z(c, {
                        modelValue: n.value,
                        "onUpdate:modelValue": (h)=>n.value = h,
                        class: [
                            "v-tabs",
                            `v-tabs--${t.direction}`,
                            `v-tabs--align-tabs-${t.alignTabs}`,
                            {
                                "v-tabs--fixed-tabs": t.fixedTabs,
                                "v-tabs--grow": t.grow,
                                "v-tabs--stacked": t.stacked
                            },
                            o.value,
                            s.value,
                            t.class
                        ],
                        style: [
                            {
                                "--v-tabs-height": xe(t.height)
                            },
                            l.value,
                            t.style
                        ],
                        role: "tablist",
                        symbol: If
                    }, u, a), {
                        default: ()=>[
                                r.default?.() ?? i.value.map((h)=>r.tab?.({
                                        item: h
                                    }) ?? y(ox, Z(h, {
                                        key: h.text,
                                        value: h.value
                                    }), {
                                        default: r[`tab.${h.value}`] ? ()=>r[`tab.${h.value}`]?.({
                                                item: h
                                            }) : void 0
                                    }))
                            ]
                    }),
                    d && y(sx, Z({
                        modelValue: n.value,
                        "onUpdate:modelValue": (h)=>n.value = h,
                        key: "tabs-window"
                    }, u), {
                        default: ()=>[
                                i.value.map((h)=>r.item?.({
                                        item: h
                                    }) ?? y(lx, {
                                        value: h.value
                                    }, {
                                        default: ()=>r[`item.${h.value}`]?.({
                                                item: h
                                            })
                                    })),
                                r.window?.()
                            ]
                    })
                ]);
            }), {};
        }
    });
    vN = $({
        withBackground: Boolean,
        ...we(),
        ...Qe(),
        ...We()
    }, "VThemeProvider");
    yN = te()({
        name: "VThemeProvider",
        props: vN(),
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t);
            return ()=>t.withBackground ? y(t.tag, {
                    class: [
                        "v-theme-provider",
                        r.value,
                        t.class
                    ],
                    style: t.style
                }, {
                    default: ()=>[
                            a.default?.()
                        ]
                }) : a.default?.();
        }
    });
    bN = $({
        dotColor: String,
        fillDot: Boolean,
        hideDot: Boolean,
        icon: Me,
        iconColor: String,
        lineColor: String,
        ...we(),
        ...Ct(),
        ...xr(),
        ...Jt()
    }, "VTimelineDivider");
    FN = te()({
        name: "VTimelineDivider",
        props: bN(),
        setup (t, e) {
            let { slots: a } = e;
            const { sizeClasses: r, sizeStyles: n } = Li(t, "v-timeline-divider__dot"), { backgroundColorStyles: i, backgroundColorClasses: o } = ft(K(t, "dotColor")), { roundedClasses: s } = Mt(t, "v-timeline-divider__dot"), { elevationClasses: l } = na(t), { backgroundColorClasses: u, backgroundColorStyles: c } = ft(K(t, "lineColor"));
            return ie(()=>y("div", {
                    class: [
                        "v-timeline-divider",
                        {
                            "v-timeline-divider--fill-dot": t.fillDot
                        },
                        t.class
                    ],
                    style: t.style
                }, [
                    y("div", {
                        class: [
                            "v-timeline-divider__before",
                            u.value
                        ],
                        style: c.value
                    }, null),
                    !t.hideDot && y("div", {
                        key: "dot",
                        class: [
                            "v-timeline-divider__dot",
                            l.value,
                            s.value,
                            r.value
                        ],
                        style: n.value
                    }, [
                        y("div", {
                            class: [
                                "v-timeline-divider__inner-dot",
                                o.value,
                                s.value
                            ],
                            style: i.value
                        }, [
                            a.default ? y(Ge, {
                                key: "icon-defaults",
                                disabled: !t.icon,
                                defaults: {
                                    VIcon: {
                                        color: t.iconColor,
                                        icon: t.icon,
                                        size: t.size
                                    }
                                }
                            }, a.default) : y(_e, {
                                key: "icon",
                                color: t.iconColor,
                                icon: t.icon,
                                size: t.size
                            }, null)
                        ])
                    ]),
                    y("div", {
                        class: [
                            "v-timeline-divider__after",
                            u.value
                        ],
                        style: c.value
                    }, null)
                ])), {};
        }
    });
    ux = $({
        density: String,
        dotColor: String,
        fillDot: Boolean,
        hideDot: Boolean,
        hideOpposite: {
            type: Boolean,
            default: void 0
        },
        icon: Me,
        iconColor: String,
        lineInset: [
            Number,
            String
        ],
        side: {
            type: String,
            validator: (t)=>t == null || [
                    "start",
                    "end"
                ].includes(t)
        },
        ...we(),
        ...Ut(),
        ...Jt(),
        ...Ct(),
        ...xr(),
        ...We()
    }, "VTimelineItem");
    kN = te()({
        name: "VTimelineItem",
        props: ux(),
        setup (t, e) {
            let { slots: a } = e;
            const { dimensionStyles: r } = jt(t), n = de(0), i = W();
            return me(i, (o)=>{
                o && (n.value = o.$el.querySelector(".v-timeline-divider__dot")?.getBoundingClientRect().width ?? 0);
            }, {
                flush: "post"
            }), ie(()=>y("div", {
                    class: [
                        "v-timeline-item",
                        {
                            "v-timeline-item--fill-dot": t.fillDot,
                            "v-timeline-item--side-start": t.side === "start",
                            "v-timeline-item--side-end": t.side === "end"
                        },
                        t.class
                    ],
                    style: [
                        {
                            "--v-timeline-dot-size": xe(n.value),
                            "--v-timeline-line-inset": t.lineInset ? `calc(var(--v-timeline-dot-size) / 2 + ${xe(t.lineInset)})` : xe(0)
                        },
                        t.style
                    ]
                }, [
                    y("div", {
                        class: "v-timeline-item__body",
                        style: r.value
                    }, [
                        a.default?.()
                    ]),
                    y(FN, {
                        ref: i,
                        hideDot: t.hideDot,
                        icon: t.icon,
                        iconColor: t.iconColor,
                        size: t.size,
                        elevation: t.elevation,
                        dotColor: t.dotColor,
                        fillDot: t.fillDot,
                        rounded: t.rounded
                    }, {
                        default: a.icon
                    }),
                    t.density !== "compact" && y("div", {
                        class: "v-timeline-item__opposite"
                    }, [
                        !t.hideOpposite && a.opposite?.()
                    ])
                ])), {};
        }
    });
    xN = $({
        align: {
            type: String,
            default: "center",
            validator: (t)=>[
                    "center",
                    "start"
                ].includes(t)
        },
        direction: {
            type: String,
            default: "vertical",
            validator: (t)=>[
                    "vertical",
                    "horizontal"
                ].includes(t)
        },
        justify: {
            type: String,
            default: "auto",
            validator: (t)=>[
                    "auto",
                    "center"
                ].includes(t)
        },
        side: {
            type: String,
            validator: (t)=>t == null || [
                    "start",
                    "end"
                ].includes(t)
        },
        lineThickness: {
            type: [
                String,
                Number
            ],
            default: 2
        },
        lineColor: String,
        truncateLine: {
            type: String,
            validator: (t)=>[
                    "start",
                    "end",
                    "both"
                ].includes(t)
        },
        ...Hn(ux({
            lineInset: 0
        }), [
            "dotColor",
            "fillDot",
            "hideOpposite",
            "iconColor",
            "lineInset",
            "size"
        ]),
        ...we(),
        ...ta(),
        ...We(),
        ...Qe()
    }, "VTimeline");
    wN = te()({
        name: "VTimeline",
        props: xN(),
        setup (t, e) {
            let { slots: a } = e;
            const { themeClasses: r } = ut(t), { densityClasses: n } = xa(t), { rtlClasses: i } = Xt();
            Bt({
                VTimelineDivider: {
                    lineColor: K(t, "lineColor")
                },
                VTimelineItem: {
                    density: K(t, "density"),
                    dotColor: K(t, "dotColor"),
                    fillDot: K(t, "fillDot"),
                    hideOpposite: K(t, "hideOpposite"),
                    iconColor: K(t, "iconColor"),
                    lineColor: K(t, "lineColor"),
                    lineInset: K(t, "lineInset"),
                    size: K(t, "size")
                }
            });
            const o = T(()=>{
                const l = t.side ? t.side : t.density !== "default" ? "end" : null;
                return l && `v-timeline--side-${l}`;
            }), s = T(()=>{
                const l = [
                    "v-timeline--truncate-line-start",
                    "v-timeline--truncate-line-end"
                ];
                switch(t.truncateLine){
                    case "both":
                        return l;
                    case "start":
                        return l[0];
                    case "end":
                        return l[1];
                    default:
                        return null;
                }
            });
            return ie(()=>y(t.tag, {
                    class: [
                        "v-timeline",
                        `v-timeline--${t.direction}`,
                        `v-timeline--align-${t.align}`,
                        `v-timeline--justify-${t.justify}`,
                        s.value,
                        {
                            "v-timeline--inset-line": !!t.lineInset
                        },
                        r.value,
                        n.value,
                        o.value,
                        i.value,
                        t.class
                    ],
                    style: [
                        {
                            "--v-timeline-line-thickness": xe(t.lineThickness)
                        },
                        t.style
                    ]
                }, a)), {};
        }
    });
    SN = te()({
        name: "VValidation",
        props: r0(),
        emits: {
            "update:modelValue": (t)=>!0
        },
        setup (t, e) {
            let { slots: a } = e;
            const r = n0(t, "validation");
            return ()=>a.default?.(r);
        }
    });
    CN = Object.freeze(Object.defineProperty({
        __proto__: null,
        VAlert: E4,
        VAlertTitle: ck,
        VApp: sk,
        VAppBar: nk,
        VAppBarNavIcon: ik,
        VAppBarTitle: l4,
        VAutocomplete: P4,
        VAvatar: ir,
        VBadge: M4,
        VBanner: I4,
        VBannerActions: dk,
        VBannerText: hk,
        VBottomNavigation: s1,
        VBottomSheet: N4,
        VBreadcrumbs: W4,
        VBreadcrumbsDivider: mk,
        VBreadcrumbsItem: fk,
        VBtn: Re,
        VBtnGroup: Eh,
        VBtnToggle: sR,
        VCard: ri,
        VCardActions: Oi,
        VCardItem: t1,
        VCardSubtitle: e1,
        VCardText: ai,
        VCardTitle: Hi,
        VCarousel: $4,
        VCarouselItem: j4,
        VCheckbox: jr,
        VCheckboxBtn: Pr,
        VChip: oa,
        VChipGroup: zM,
        VClassIcon: yw,
        VCode: Y4,
        VCol: qe,
        VColorPicker: p6,
        VCombobox: Ys,
        VComponentIcon: bw,
        VConfirmEdit: v6,
        VContainer: K3,
        VCounter: Pl,
        VDataIterator: D6,
        VDataTable: G6,
        VDataTableFooter: To,
        VDataTableHeaders: In,
        VDataTableRow: Bf,
        VDataTableRows: zn,
        VDataTableServer: Y6,
        VDataTableVirtual: U6,
        VDatePicker: Z6,
        VDatePickerControls: rm,
        VDatePickerHeader: nm,
        VDatePickerMonth: im,
        VDatePickerMonths: om,
        VDatePickerYears: sm,
        VDefaultsProvider: Ge,
        VDialog: Pn,
        VDialogBottomTransition: FM,
        VDialogTopTransition: kM,
        VDialogTransition: Tl,
        VDivider: _a,
        VEmptyState: ez,
        VExpandTransition: _l,
        VExpandXTransition: Um,
        VExpansionPanel: V0,
        VExpansionPanelText: qs,
        VExpansionPanelTitle: Th,
        VExpansionPanels: W0,
        VFab: az,
        VFabTransition: bM,
        VFadeTransition: po,
        VField: Zr,
        VFieldLabel: ao,
        VFileInput: r1,
        VFooter: nz,
        VForm: rk,
        VHover: oz,
        VIcon: _e,
        VImg: _r,
        VInfiniteScroll: lz,
        VInput: ma,
        VItem: dz,
        VItemGroup: cz,
        VKbd: hz,
        VLabel: Ii,
        VLayout: fz,
        VLayoutItem: gz,
        VLazy: yz,
        VLigatureIcon: Fw,
        VList: Qn,
        VListGroup: wh,
        VListImg: s3,
        VListItem: tt,
        VListItemAction: u3,
        VListItemMedia: d3,
        VListItemSubtitle: b0,
        VListItemTitle: Yr,
        VListSubheader: F0,
        VLocaleProvider: Fz,
        VMain: lk,
        VMenu: Jr,
        VMessages: t0,
        VNavigationDrawer: ok,
        VNoSsr: kz,
        VNumberInput: Az,
        VOtpInput: Tz,
        VOverlay: yr,
        VPagination: tm,
        VParallax: Pz,
        VProgressCircular: Si,
        VProgressLinear: Ml,
        VRadio: Mz,
        VRadioGroup: Lz,
        VRangeSlider: zz,
        VRating: Oz,
        VResponsive: bh,
        VRow: Pa,
        VScaleTransition: go,
        VScrollXReverseTransition: xM,
        VScrollXTransition: QF,
        VScrollYReverseTransition: SM,
        VScrollYTransition: wM,
        VSelect: _n,
        VSelectionControl: Xr,
        VSelectionControlGroup: HF,
        VSheet: Br,
        VSkeletonLoader: Gz,
        VSlideGroup: yo,
        VSlideGroupItem: $z,
        VSlideXReverseTransition: CM,
        VSlideXTransition: e0,
        VSlideYReverseTransition: AM,
        VSlideYTransition: El,
        VSlider: em,
        VSnackbar: lm,
        VSnackbarQueue: Yz,
        VSpacer: un,
        VSparkline: Jz,
        VSpeedDial: Qz,
        VStepper: oN,
        VStepperActions: tx,
        VStepperHeader: ax,
        VStepperItem: rx,
        VStepperWindow: nx,
        VStepperWindowItem: ix,
        VSvgIcon: kw,
        VSwitch: lN,
        VSystemBar: cN,
        VTab: ox,
        VTable: Nn,
        VTabs: gN,
        VTabsWindow: sx,
        VTabsWindowItem: lx,
        VTextField: ya,
        VTextarea: n1,
        VThemeProvider: yN,
        VTimeline: wN,
        VTimelineItem: kN,
        VToolbar: Ks,
        VToolbarItems: bR,
        VToolbarTitle: zl,
        VTooltip: sa,
        VValidation: SN,
        VVirtualScroll: Ll,
        VWindow: Rn,
        VWindowItem: Ln
    }, Symbol.toStringTag, {
        value: "Module"
    }));
    AN = xw({
        components: CN,
        directives: VR,
        display: {
            mobileBreakpoint: "sm"
        },
        icons: {
            defaultSet: "mdi"
        },
        theme: {
            defaultTheme: RF.id,
            variations: {
                colors: [
                    "primary",
                    "secondary",
                    "torrent-allocating",
                    "torrent-checking_disk",
                    "torrent-checking_resume_data",
                    "torrent-dl_forced",
                    "torrent-dl_stopped",
                    "torrent-dl_queued",
                    "torrent-dl_stalled",
                    "torrent-downloading",
                    "torrent-error",
                    "torrent-forced_meta_download",
                    "torrent-meta_download",
                    "torrent-missing_files",
                    "torrent-moving",
                    "torrent-ul_forced",
                    "torrent-ul_stopped",
                    "torrent-ul_queued",
                    "torrent-ul_stalled",
                    "torrent-unknown",
                    "torrent-uploading"
                ],
                lighten: 3,
                darken: 3
            },
            themes: XB
        }
    });
    DN = {
        cancel: "Zrušit",
        close: "Zavřít",
        delete: "Smazat",
        disable: "Zakázat",
        disabled: "Vypnuto",
        emptyList: "Není tu nic k vidění!",
        NA: "Není k dispozici",
        no: "Ne",
        none: "(Žádné)",
        ok: "OK",
        pause: "Pozastavit",
        resume: "Obnovit",
        save: "Uložit",
        search: "Hledat",
        selectAll: "Vybrat vše",
        selectNone: "Nic nevybrat",
        useGlobalSettings: "Použít globální nastavení",
        yes: "Ano"
    };
    TN = {
        addStopped: {
            always: "Vždy",
            never: "Nikdy",
            title: "Přidat pozastavené"
        },
        auto_delete_mode: {
            always: "Vždy",
            never: "Nikdy"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP a μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Připojeno",
            disconnected: "Odpojeno",
            firewalled: "Blokováno firewallem",
            unknown: "Neznámý"
        },
        contentLayout: {
            nosubfolder: "Odebrat podsložku",
            original: "Původní",
            subfolder: "Vytvořit podsložku",
            title: "Rozvržení obsahu torrentu"
        },
        diskIoMode: {
            disableOsCache: "Zakázání mezipaměti operačního systému",
            enableOsCache: "Povolení mezipaměti operačního systému",
            writeThrough: "Zápis (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "Výchozí",
            memoryMappedFiles: "Soubory mapované v paměti",
            posixCompliant: "Kompatibilní s POSIX"
        },
        encryption: {
            forceOff: "Zakázat šifrování",
            forceOn: "Vyžadovat šifrování",
            preferEncryption: "Povolit šifrování"
        },
        file_log_age_type: {
            days: "Dny",
            months: "Měsíce",
            years: "Roky"
        },
        file_priority: {
            high: "Vysoká",
            max: "Max",
            normal: "Normální",
            unwanted: "Nechtěný"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Výchozí cesta k uložení",
            monitoredFolder: "Umístění sledované složky",
            other: "Jiné"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Každý den",
            everyFriday: "Každý pátek",
            everyMonday: "Každé pondělí",
            everySaturday: "Každou sobotu",
            everySunday: "Každou neděli",
            everyThursday: "Každý čtvrtek",
            everyTuesday: "Každé úterý",
            everyWednesday: "Každou středu",
            everyWeekday: "Každý všední den",
            everyWeekend: "Každý víkend"
        },
        shareLimitAction: {
            removeTorrent: "Odebrat torrent",
            removeTorrentAndFiles: "Odstraňte torrent a jeho soubory",
            stopTorrent: "Pozastavit torrent",
            torrentSuperseeding: "Povolit super seeding pro torrent"
        },
        stopCondition: {
            filesChecked: "Soubory zkontrolovány",
            metadataReceived: "Metadata přijata",
            none: "Žádné",
            title: "Podmínka zastavení torrentu"
        },
        titleOptions: {
            custom: "Vlastní",
            default: "Výchozí",
            first_torrent_speed: "Rychlost prvního torrentu",
            global_speed: "Globální rychlost"
        },
        trackerStatus: {
            disabled: "Vypnuto",
            not_working: "Nefunguje",
            not_yet_contacted: "Dosud nekontaktováno",
            updating: "Aktualizuji",
            working: "Zaneprázdněn"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Ochrana proti pijavicím (Anti-leech)",
            fastestUpload: "Nejrychlejší nahrávání",
            roundRobin: "Round-robin"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Pevné sloty",
            uploadRateBased: "Na základě rychlosti nahrávání"
        },
        utpTcpMixedMode: {
            peerProportional: "Rovnoměrné rozdělení (omezení TCP)",
            preferTcp: "Upřednostňovat TCP"
        }
    };
    EN = {
        displayMode: {
            grid: "Mřížka",
            list: "Seznam",
            table: "Tabulka",
            title: "Režim zobrazení"
        },
        not_complete: "Nikdy nebylo dokončeno",
        right_click: {
            advanced: {
                auto_tmm: "Automatická správa torrentů",
                download_path: "Nastavení cesty ke stažení",
                f_l_prio: "První / poslední priorita",
                reannounce: "Vynutit opětovné ohlášení",
                recheck: "Vynutit opakovanou kontrolu",
                rename: "Přejmenování torrentu",
                save_path: "Nastavení cesty k uložení",
                seq_dl: "Sekvenční stahování",
                title: "Pokročilé"
            },
            category: {
                clear: "(Vymazat kategorii)",
                disabled_title: "Žádné kategorie",
                title: "Nastavit kategorii"
            },
            copy: {
                hash: "Hash",
                magnet: "Magnet",
                name: "Název",
                title: "Kopírovat"
            },
            export: "Exportovat torrent | Exportovat torrenty",
            info: "Zobrazit informace",
            priority: {
                bottom: "Nejnižší priorita",
                decrease: "Snížit prioritu",
                increase: "Zvýšit prioritu",
                title: "Nastavení priority",
                top: "Nejvyšší priorita"
            },
            speed_limit: {
                download: "Nastavit limit rychlosti stahování",
                share: "Nastavit limit sdílení",
                title: "Nastavit omezení rychlosti",
                upload: "Nastavit limit rychlosti odesílání"
            },
            tags: {
                disabled_title: "Žádné značky",
                title: "Nastavení značek"
            },
            top: {
                delete: "Smazat",
                force_resume: "Vynutit obnovení",
                pause: "Pozastavit",
                resume: "Obnovit"
            }
        },
        searchInputLabel: "Hledat",
        selectAll: "(Od)vybrat vše (Ctrl + A)",
        selectedTorrentsCount: "Žádný torrent | {count} z {total} torrentů ({size}) | {count} z {total} torrentů ({size})"
    };
    _N = {
        side: {
            filters: {
                state: {
                    active: "Aktivní"
                }
            }
        }
    };
    PN = {
        peers: {
            fields: {
                progress: "Postup"
            }
        }
    };
    BN = {
        properties: {
            avg_download_speed: "Průměrná rychlost stahování",
            avg_upload_speed: "Průměrná rychlost nahrávání",
            priority: "Priorita"
        }
    };
    MN = {
        common: DN,
        constants: TN,
        dashboard: EN,
        navbar: _N,
        torrentDetail: PN,
        torrent: BN
    };
    RN = "Content generated by Tolgee app. NEVER EDIT MANUALLY AS IT WILL BE OVERRIDDEN";
    LN = {
        auto: "Auto",
        cancel: "Cancel",
        close: "Close",
        delete: "Delete",
        disable: "Disable",
        disabled: "Disabled",
        edit: "Edit",
        emptyList: "Nothing to see here!",
        global_value: "Global Value",
        NA: "N/A",
        no: "No",
        none: "(None)",
        ok: "OK",
        pause: "Pause",
        refresh: "Refresh",
        resume: "Resume",
        save: "Save",
        search: "Search",
        selectAll: "Select All",
        selectNone: "Select None",
        useGlobalSettings: "Use Global Settings",
        yes: "Yes"
    };
    IN = {
        addStopped: {
            always: "Always",
            never: "Never",
            title: "Add stopped"
        },
        auto_delete_mode: {
            always: "Always",
            if_added: "If added",
            never: "Never"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP and μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Connected",
            disconnected: "Disconnected",
            firewalled: "Firewalled",
            unknown: "Unknown"
        },
        contentLayout: {
            nosubfolder: "Remove Subfolder",
            original: "Original",
            subfolder: "Create Subfolder",
            title: "Torrent content layout"
        },
        diskIoMode: {
            disableOsCache: "Disable OS cache",
            enableOsCache: "Enable OS cache",
            writeThrough: "Write-through (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "Default",
            memoryMappedFiles: "Memory mapped files",
            posixCompliant: "POSIX-compliant",
            simplePreadPwrite: "Simple pread/pwrite"
        },
        encryption: {
            forceOff: "Disable Encryption",
            forceOn: "Require Encryption",
            preferEncryption: "Allow Encryption"
        },
        file_log_age_type: {
            days: "Day | Day | Days",
            months: "Month | Month | Months",
            years: "Year | Year | Years"
        },
        file_priority: {
            high: "High",
            max: "Max",
            mixed: "Mixed",
            normal: "Normal",
            unwanted: "Unwanted"
        },
        file_type: {
            archive: "Archives",
            audio: "Audio",
            book: "Books",
            document: "Documents",
            executable: "Executables",
            image: "Images",
            information: "Information",
            no_ext: "(No ext)",
            script: "Scripts",
            subtitle: "Subtitles",
            unknown: "Unknown",
            video: "Video"
        },
        filter_type: {
            conjunctive: "Conjunctive filtering (AND)",
            disjunctive: "Disjunctive filtering (OR)"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Default Save Path",
            monitoredFolder: "Monitored Folder Location",
            other: "Other"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Every day",
            everyFriday: "Every friday",
            everyMonday: "Every monday",
            everySaturday: "Every saturday",
            everySunday: "Every sunday",
            everyThursday: "Every thursday",
            everyTuesday: "Every tuesday",
            everyWednesday: "Every wednesday",
            everyWeekday: "Every weekdays",
            everyWeekend: "Every weekends"
        },
        shareLimitAction: {
            removeTorrent: "Remove torrent",
            removeTorrentAndFiles: "Remove torrent and its files",
            stopTorrent: "Stop torrent",
            torrentSuperseeding: "Enable super seeding for torrent"
        },
        stopCondition: {
            filesChecked: "Files Checked",
            metadataReceived: "Metadata Received",
            none: "None",
            title: "Torrent stop condition"
        },
        themes: {
            dark: {
                legacy: "Legacy",
                oled: "OLED",
                redesigned: "Redesigned"
            },
            light: {
                legacy: "Legacy",
                redesigned: "Redesigned"
            }
        },
        titleOptions: {
            custom: "Custom",
            default: "Default",
            first_torrent_speed: "First Torrent Speed",
            global_speed: "Global Speed"
        },
        torrentContentRemovingMode: {
            delete: "Delete files permanently",
            moveToTrash: "Move files to trash (if possible)"
        },
        torrentCreatorTaskStatus: {
            failed: "Failed",
            finished: "Finished",
            queued: "Queued",
            running: "Running"
        },
        torrentFormat: {
            hybrid: "Hybrid",
            v1: "V1",
            v2: "V2"
        },
        trackerStatus: {
            disabled: "Disabled",
            not_working: "Not working",
            not_yet_contacted: "Not contacted yet",
            updating: "Updating",
            working: "Working"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-leech",
            fastestUpload: "Fastest upload",
            roundRobin: "Round-robin"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Fixed slots",
            uploadRateBased: "Upload rate based"
        },
        utpTcpMixedMode: {
            peerProportional: "Peer proportional (throttles TCP)",
            preferTcp: "Prefer TCP"
        }
    };
    zN = {
        displayMode: {
            grid: "Grid",
            list: "List",
            table: "Table",
            title: "Display mode"
        },
        not_complete: "Never seen complete",
        right_click: {
            advanced: {
                auto_tmm: "Automatic Torrent Management",
                download_path: "Set Download Path",
                edit_trackers: "Edit Trackers",
                f_l_prio: "First / Last Piece Priority",
                reannounce: "Force Reannounce",
                recheck: "Force Recheck",
                rename: "Rename Torrent",
                save_path: "Set Save Path",
                seq_dl: "Sequential Download",
                super_seeding: "Super seeding mode",
                title: "Advanced"
            },
            category: {
                clear: "Clear",
                disabled_title: "No categories",
                title: "Set category"
            },
            copy: {
                comment: "Comment",
                hash: "Hash",
                magnet: "Magnet",
                name: "Name",
                title: "Copy"
            },
            export: "Export torrent | Export torrents",
            info: "Show Info",
            priority: {
                bottom: "To bottom",
                decrease: "Decrease",
                increase: "Increase",
                title: "Set queue position",
                top: "To top"
            },
            speed_limit: {
                download: "Set download limit",
                share: "Set share limit",
                title: "Set speed limit",
                upload: "Set upload limit"
            },
            tags: {
                clear_all: "Clear all",
                disabled_title: "No tags",
                title: "Set tags"
            },
            top: {
                delete: "Delete",
                force_resume: "Force Resume",
                pause: "Pause",
                resume: "Resume"
            }
        },
        searchInputLabel: "Search",
        selectAll: "(Un)select All (Ctrl + A)",
        selectedTorrentsCount: "No torrent | {count} of {total} torrent ({size}) | {count} of {total} torrents ({size})",
        sortLabel: "Sort by",
        toggleSearchFilter: "Toggle search filter",
        toggleSelectMode: "Toggle select mode",
        toggleSortOrder: "Reverse sort order",
        torrentsCount: "No torrent | {n} torrent | {n} torrents"
    };
    NN = {
        add: {
            cookie: "Cookies",
            cookie_placeholder: "name1=value1; name2=value2; ...",
            drop_label: "Add torrent files and/or links to torrent queue",
            file_overflow: "+{n} more",
            files: "Select files",
            first_last_piece_prio: "Prioritize first and last pieces",
            instant_drop_label: "Download torrent files and/or links instantly",
            links: "Links (magnet, http, file, ...)",
            params: {
                add_to_top_of_queue: "Add to top of queue",
                category: "Category",
                download_limit: "Download limit",
                download_path: "Download Path (when incomplete)",
                inactive_seeding_time_limit: "Inactive seeding time limit",
                limit_collapse: "Configure limits",
                limit_hint: "-1 to disable, -2 or empty to use global value",
                no_categories: "No categories yet. Type a name to create one.",
                no_categories_match: 'No categories matching "{query}". It will be created automatically.',
                no_tags: "No tags yet. Type a name to create one.",
                no_tags_match: 'No tags matching "{query}". Press Enter to create it.',
                ratio_limit: "Ratio limit",
                save_path: "Save path (when completed)",
                seeding_time_limit: "Seeding time limit",
                skip_checking: "Skip hash checking",
                stopped: "Don't start download",
                tags: "Tags",
                title: "Torrent parameters",
                upload_limit: "Upload limit",
                use_auto_tmm: "Automatic Torrent Management"
            },
            rename: "Rename torrent",
            reset_form: "Reset form",
            sequential_download: "Sequential download",
            submit: "Add torrents",
            title: "Add Torrents"
        },
        bulkEditTrackers: {
            add: "Trackers to add",
            edit: {
                result: "{rejected}/{total} requests failed\\n{reason}",
                row: {
                    add: "Add row",
                    new_url: "New tracker URL",
                    old_url: "Old tracker URL",
                    rules: {
                        invalid_url: "Invalid URL"
                    }
                },
                title: "Trackers to replace"
            },
            remove: "Trackers to remove",
            title: "Bulk Edit Trackers"
        },
        bulkRenameFiles: {
            col_origin_name: "Original",
            col_result_name: "Result",
            duplicated: "Duplicate Filename",
            flags: "Flags",
            fold: "Collapse",
            not_changed: "Filename Not Changed",
            notForFolder: "Folder Renaming Not Supported",
            nothing_to_do: "No tasks to do",
            regexp: "Regular Expression",
            run: "Run",
            select_regex_flags: "Select Regular Expression Flags",
            success: "Rename Successful",
            target: "Replacement Input",
            title: "Bulk Rename",
            unfold: "Expand"
        },
        category: {
            name: "Category Name",
            nameRequired: "Category name is required",
            oldName: "Old category name",
            savePath: "Save Path",
            title: {
                create: "Create Category",
                edit: "Edit Category"
            },
            warnEdit: "Editing the category name will migrate torrents to the new category. Errors may happen, use with caution."
        },
        connectionStatus: {
            dht_nodes: "DHT nodes",
            externalIp: "External IP Address",
            fetch_disabled: "Fetching IP data is disabled",
            fetch_geo_failed: "Unable to fetch geolocation details",
            fetch_isp_failed: "Unable to fetch ISP details",
            geo_details: "Geolocation details",
            isp_details: "ISP details",
            noExternalIp: "Unable to detect from logs",
            status: "Connection Status",
            total_peer_connections: "Active peer connections"
        },
        delete: {
            deleteWithFiles: "Delete files with torrent",
            title: "Delete {n} torrent | Delete {n} torrents",
            warnDelete: "Ticking this checkbox will delete everything contained in those torrents"
        },
        importSettings: {
            required: "Providing settings is required",
            title: "Import Settings",
            valid: "Please provide valid settings"
        },
        moveTorrent: {
            dl: {
                title: "Change Download Path"
            },
            newPath: "New path",
            oldPath: "Old path",
            required: "New path is required",
            samePath: "New path must be different from old path",
            save: {
                title: "Change Save Path"
            }
        },
        moveTorrentFile: {
            oldName: "Old name",
            title: "Move Torrent File | Move Torrent Folder"
        },
        pluginManager: {
            headers: {
                actions: "Actions",
                enabled: "Enabled",
                name: "Name",
                url: "Engine URL",
                version: "Version"
            },
            install: {
                activator: "Install new plugin",
                label: "Plugin URL",
                title: "Install Plugin"
            },
            title: "Plugin Manager",
            update: "Update plugins"
        },
        renameTorrent: {
            newName: "New name",
            oldName: "Old name",
            required: "New name is required",
            sameName: "New name must be different from old name",
            title: "Rename Torrent"
        },
        rss: {
            feed: {
                name: "Name",
                rules: {
                    name_required: "Feed name is required",
                    url_required: "Feed URL is required"
                },
                title: {
                    create: "Create RSS Feed",
                    edit: "Edit RSS Feed"
                },
                url: "URL"
            },
            rule: {
                addStopped: "Add stopped",
                affectedFeedsSubheader: "Affected Feeds",
                assignedCategory: "Assigned Category",
                enabled: "Enable rule",
                episodeFilter: "Episode Filter",
                episodeFilterPlaceholder: "e.g. S01E02-S01E05",
                ignoreDays: "Ignore items published in the last {days} days",
                ignoreDaysHint: "0 to disable",
                lastMatch: {
                    knownValue: "today | {n} day ago | {n} days ago",
                    label: "Last match",
                    unknownValue: "Unknown"
                },
                matchingArticles: {
                    noMatch: "No matching articles",
                    title: "Matching Articles"
                },
                mustContain: "Must Contain",
                mustNotContain: "Must Not Contain",
                name: "Name",
                savePath: "Save Path",
                savePathPlaceholder: "Leave blank to use default save path",
                smartFilter: "Use Smart Episode filter",
                title: {
                    create: "Create RSS Rule",
                    edit: "Edit RSS Rule"
                },
                useRegex: "Use Regular Expression"
            }
        },
        share_limit: {
            disabled: "Set no share limit",
            enabled: "Set share limit to",
            global: "Use global share limit",
            inactive_seeding_time_limit: "Inactive minutes",
            ratio_limit: "Ratio",
            seeding_time_limit: "Total minutes",
            title: "Set share ratio limit"
        },
        shutdown: {
            content: "Do you really want to shutdown qBittorrent?",
            error: "Unable to shutdown app. Make sure qBittorrent is running!",
            success: "qBittorrent was shutdown successfully!",
            title: "Shutdown qBittorrent"
        },
        speed_limit: {
            download: "Set Download Speed Limit",
            label: "Speed Limit",
            upload: "Set Upload Speed Limit"
        },
        tag: {
            comma: "Name cannot contain comma when renaming a tag",
            hint: "Pro tip: multiple tags can be created by separating them with a comma",
            name: "Tag name",
            oldName: "Old tag name",
            required: "Tag name is required",
            title: {
                create: "Create Tag",
                rename: "Rename Tag"
            },
            warnEdit: `Editing the tag name will migrate torrents to the new tag.
Errors may happen, use with caution.`
        },
        torrentCreator: {
            actions: {
                submit: "Run creation task"
            },
            comment: "Comments",
            format: "Torrent format",
            optimizeAlignment: "Optimize alignment",
            paddedFileSizeLimit: "Align to piece boundary for files larger than",
            paddedFileSizeLimitHint: "-1 to disable",
            paddedFileSizeLimitRule: "Value must be positive",
            pieceSize: "Piece size",
            private: "Private torrent (won't distribute on DHT network)",
            rules: {
                outputFileExtension: "Output path must end with .torrent",
                sourcePathRequired: "Source path must be filled"
            },
            source: "Source",
            sourcePath: "Files to include in torrent",
            startSeeding: "Start seeding immediately",
            title: "Create new task",
            torrentFilePath: "Created torrent file destination",
            trackers: "Tracker URLs",
            trackersHint: "You can separate tracker tiers / groups with an empty line",
            urlSeeds: "Web seed URLs"
        }
    };
    ON = {
        error: "Login failed!",
        password: "Password",
        pending: "Checking current auth status...",
        rules: {
            password_required: "Password is required",
            username_required: "Username is required"
        },
        submit: "Login",
        subtitle: "Enter your credentials",
        success: "Login successful!",
        title: "Login",
        username: "Username"
    };
    HN = {
        emptyLogList: "No logs found",
        filters: {
            query: "Search in log message",
            type: "Log Level"
        },
        title: "qBittorrent Logs"
    };
    VN = {
        addPanel: {
            torrentsPendingCount: "{n} torrent awaiting upload | {n} torrents awaiting upload"
        },
        side: {
            bottom_actions: {
                alt_speed: "Toggle alternative speed",
                conn_status: "Connection status: {status}",
                dark_mode: " Light mode | Dark mode | Follow system settings",
                "dark_mode.dark": "Dark mode",
                "dark_mode.light": "Light mode",
                "dark_mode.system": "Follow system settings",
                logout: "Logout",
                shutdown: "Shutdown qBittorrent"
            },
            current_speed: {
                title: "Current Speed"
            },
            filters: {
                activeFilter: "{n} filters active",
                category: {
                    empty: "(Uncategorized)",
                    title: "Category Filter"
                },
                disabled: "(Disabled)",
                state: {
                    active: "Active",
                    error: "Error",
                    offline: "Offline",
                    title: "Torrent State Filter"
                },
                tag: {
                    empty: "(Untagged)",
                    title: "Tag Filter"
                },
                tracker: {
                    empty: "(Untracked)",
                    not_working: "(Not working)",
                    title: "Tracker Filter"
                }
            },
            speed_graph: {
                download_label: "Download",
                download_limit_label: "Download limit",
                upload_label: "Upload",
                upload_limit_label: "Upload limit"
            },
            stats: {
                alltime: {
                    title: "Alltime Stats"
                },
                downloaded: "Downloaded",
                free_space: "Free Space",
                ratio: "Ratio",
                session: {
                    title: "Session Stats"
                },
                uploaded: "Uploaded"
            }
        },
        top: {
            active_filters: {
                category: "Category filter: {value}",
                menu_label: "Active filter: {n} | Active filters: {n}",
                multiple_category: "Category filter: {n} active",
                multiple_state: "State filter: {n} active",
                multiple_tag: "Tag filter: {n} active",
                multiple_tracker: "Tracker filter: {n} active",
                state: "State filter: {value}",
                tag: "Tag filter: {value}",
                text: "Text filter: {value}",
                tracker: "Tracker filter: {value}"
            }
        }
    };
    WN = {
        feeds: {
            empty: {
                action: "Create RSS Feed",
                value: "No RSS feeds registered"
            },
            filters: {
                title: "Title filter",
                unread: "Show unread articles only"
            },
            item: {
                author: "Author: {author}",
                category: "Category: {category}",
                feedName: "Feed name: {name}",
                new: "NEW"
            },
            markAllAsRead: "Mark all as read",
            markAsRead: "Mark as read",
            promise: {
                error: "An error occured while marking articles",
                pending: "Marking...",
                success: "{n} articles marked as read"
            },
            refreshAllFeeds: "Refresh all feeds",
            refreshPromise: {
                error: "An error occured while refreshing feeds",
                pending: "Refreshing...",
                success: "{n} feeds refreshed"
            },
            title: "RSS Articles"
        },
        rules: {
            empty: {
                action: "Create RSS Rule",
                value: "No RSS rules registered"
            },
            title: "RSS Rules"
        },
        toggle: {
            feeds: "Show feeds",
            rules: "Show rules"
        }
    };
    GN = {
        filters: {
            category: {
                all: "All",
                anime: "Anime",
                books: "Books",
                games: "Games",
                label: "Search category",
                movies: "Movies",
                music: "Music",
                pictures: "Pictures",
                software: "Software",
                tv: "TV"
            },
            plugins: {
                all: "All",
                enabled: "Enabled",
                label: "Search plugin"
            },
            title: {
                label: "Filter by title"
            }
        },
        headers: {
            engineName: "Engine Name",
            fileName: "Filename",
            fileSize: "File Size",
            nbLeechers: "Leechers",
            nbSeeders: "Seeders",
            pubDate: "Publication Date",
            siteUrl: "Site URL"
        },
        query: "Search query",
        runSearch: "Search",
        stopSearch: "Stop",
        tabHeaderEmpty: "(Empty query)",
        title: "Search engine"
    };
    $N = JSON.parse('{"addons":{"enhanced_edition":{"auto_ban_bt_player_peer":"Auto ban BT player peer","auto_ban_unknown_peer":"Auto ban unknown peer","auto_update_trackers":"Automatically update public trackers list","public_trackers":"Public trackers","trackers_list_url":"Customize Trackers URL List"}},"advanced":{"libtorrent":{"announceAllTiers":"Always announce to all tiers","announceAllTrackers":"Always announce to all trackers in a tier","announceIP":"IP address reported to trackers (requires restart)","coalesceReadsWrites":"Coalesce reads & writes (libtorrent < 2.0)","dhtBootstrapNodes":"DHT bootstrap nodes","dhtBootstrapNodesHint":"Resets to default if empty","disk":{"diskCache":"Disk cache (libtorrent < 2.0)","diskCacheExpiry":"Disk cache expiry interval (libtorrent < 2.0)","diskIoReadMode":"Disk IO read mode","diskIoType":"Disk IO Type (libtorrent >= 2.0; requires restart)","diskIoWriteMode":"Disk IO write mode","diskQueueSize":"Disk queue size","subheader":"Disk"},"i2p":{"inboundLength":"I2P inbound length","inboundQuantity":"I2P inbound quantity","invalidLength":"I2P length values must be between 0 and 7","invalidQuantity":"I2P quantity values must be between 1 and 16","outboundLength":"I2P outbound length","outboundQuantity":"I2P outbound quantity","restartNeeded":"Any changes in these settings will take effect the next time the SAM connection is re-established (by restarting I2P or changing I2P address or port)"},"maxConcurrentHTTPAnnounces":"Max concurrent HTTP announces","networking":{"outgoingPortsMax":"Outgoing ports (Max) [0: Disabled]","outgoingPortsMin":"Outgoing ports (Min) [0: Disabled]","peerTos":"DSCP value for connections to peers","subheader":"Networking","upnpLeaseDuration":"UPnP lease duration [0: Permanent lease]","utpTcpMixedModeAlgorithm":"μTP-TCP mixed mode algorithm"},"outgoingConnectionsPerSecond":"Outgoing connections per second","peerTurnover":"Peer turnover disconnect percentage","peerTurnoverCutoff":"Peer turnover threshold percentage","peerTurnoverInterval":"Peer turnover disconnect interval","pieceExtentAffinity":"Use piece extent affinity","requestQueueSize":"Maximum outstanding requests to a single peer","security":{"allowMultipleConnectionsFromTheSameIPAddress":"Allow multiple connections from the same IP address","blockPeersOnPrivilegedPorts":"Disallow connection to peers on privileged ports","idnSupport":"Enable Internationalized Domain Name (IDN) support","mitigateSSRF":"Server-side request forgery (SSRF) mitigation","subheader":"Security","validateHTTPSTrackerCertificate":"Validate HTTPS tracker certificate"},"sendBufferLowWatermark":"Send buffer low watermark","sendBufferWatermark":"Send buffer watermark","sendBufferWatermarkFactor":"Send buffer watermark factor","sendUploadPieceSuggestions":"Send upload piece suggestions","socketBacklogSize":"Socket backlog size","socketReceiveBufferSize":"Socket receive buffer size","socketReceiveBufferSizeHint":"0: system default","socketSendBufferSize":"Socket send buffer size","socketSendBufferSizeHint":"0: system default","ssl":{"disclaimer":"The \\"SSL torrent\\" feature is not standardized, there are no BEP (BitTorrent Enhancement Proposals) associated with it.\\nEnable this feature only if you need it.","enabled":"Enable SSL torrents","listenPort":"Port used for SSL connections","listenPortHint":"Leave empty to auto-select","rule":"Port must be between 0 and 65535"},"stopTrackerTimeout":"Stop tracker timeout","subheader":"libtorrent Section","threads":{"asyncIoThreads":"Asynchronous I/O threads","bdecodeDepthLimit":"Bdecode depth limit","bdecodeTokenLimit":"Bdecode token limit","filePoolSize":"File pool size","hashingThreads":"Hashing threads (libtorrent >= 2.0)","outstandingMemory":"Outstanding memory when checking torrents","subheader":"Threads"},"uploadChokingAlgorithm":"Upload choking algorithm","uploadSlotsBehavior":"Upload slots behavior"},"openDoc":"Open documentation","qbittorrent":{"allocatedRam":"Physical memory (RAM) usage limit (libtorrent >= 2.0)","appInstanceName":"App instance name","embeddedTracker":{"enable":"Enable embedded tracker","port":"Embedded tracker port","portForward":"Enable port forwarding for embedded tracker","title":"Embedded Tracker"},"enableMarkOfTheWeb":"Enable Mark-of-the-Web (MOTW) for downloaded files","enableMarkOfTheWebHint":"Require macOS or Windows","networking":{"ipAddress":{"all":"All addresses","allIPv4":"All IPv4 addresses","allIPv6":"All IPv6 addresses","label":"Optional IP address to bind to"},"networkInterfaces":{"any":"Any interface","label":"Network interface"},"title":"Networking"},"pythonExecutablePath":"Python executable path","pythonExecutablePathHint":"Auto detect if empty, require restart","reannounceOnIpPortChanged":"Reannounce to all trackers when IP or port changed","recheckOnCompletion":"Recheck torrents on completion","refreshInterval":"GUI Refresh interval","resolveCountries":"Resolve peer countries","resumeDataStorageType":{"label":"Resume data storage type (requires restart)","legacy":"Fastresume files","sqlite":"SQLite database (experimental)"},"saveInterval":"Save resume data interval","subheader":"qBittorrent Section","torrentContentRemovingMode":"Torrent content removing mode","torrentFileSizeLimit":".torrent file size limit"}},"behavior":{"logs":{"file_log_age":"Delete backup logs older than","file_log_backup_enabled":"Enable log file backup","file_log_delete_old":"Delete old backup logs","file_log_enabled":"Enable log files","file_log_max_size":"Backup the log file after","file_log_path":"Save path","subheader":"Logs management"},"performance_warning":"Log performance warning"},"bittorrent":{"autoAddTrackers":"Automatically append these trackers to new downloads","autoAddTrackersHint":"One tracker per line","maxActiveCheckingTorrents":"Max active checking torrents","privacy":{"enableAnonymous":"Enable anonymous mode","enableDHT":"Enable DHT (decentralized network) to find more peers","enableLPD":"Enable Local Peer Discovery to find more peers","enablePeX":"Enable Peer Exchange (PeX) to find more peers","encryptionMode":"Encryption Mode","moreInfo":"More Information","subheader":"Privacy"},"seedLimits":{"subheader":"Seed Limits","then":"Then","whenInactiveSeedingTimeReaches":"When inactive seeding time reaches","whenRatioReaches":"When ratio reaches","whenSeedingTimeReaches":"When seeding time reaches"},"torrentQueueing":{"downloadRateLimit":"Download rate threshold","excludeSlowTorrent":"Do not count slow torrents in these limits","maxActiveDownload":"Maximum active downloads","maxActiveTorrent":"Maximum active torrents","maxActiveUpload":"Maximum active uploads","subheader":"Torrent Queueing","torrentInactivityTimer":"Torrent inactivity timer","uploadRateLimit":"Upload rate threshold"}},"connection":{"connectionLimits":{"globalMaxConnection":"Global maximum number of connections","globalMaxUploadSlots":"Global maximum number of upload slots","perTorrentMaxConnection":"Maximum number of connections per torrent","perTorrentMaxUploadSlots":"Maximum number of upload slots per torrent","subheader":"Connection Limits"},"i2p":{"address":"I2P Host","disclaimer":"If \\"Mixed Mode\\" is enabled, I2P torrents are allowed to also get peers from other sources than the tracker, and connect to regular IPs, not providing any anonymization. This may be useful if the user is not interested in the anonymization of I2P, but still wants to be able to connect to I2P peers.","enabled":"Enable I2P","mixedMode":"Mixed Mode","port":"Port","rule":"Port value must be between 0 and 65535","subheader":"I2P (experimental)"},"ipFiltering":{"applyToTrackers":"Apply to trackers","bannedIps":"Manually banned IP addresses","bannedIpsHint":"One on each line","filterPath":"Filter path (.dat, .p2p, .p2b)","subheader":"IP Filtering"},"listeningPort":{"incomingConnectionPort":"Port used for incoming connections","randomPort":"Random Port","subheader":"Listening Port","useUPnP":"Use UPnP / NAT-PMP port forwarding from my router"},"protocol":"Peer connection protocol","proxy":{"auth":{"password":"Password","subtitle":"Authentication","tip":"Info: The password is saved unencrypted","username":"Username"},"bittorrent":"Use proxy for BitTorrent purposes","host":"Host","hostNameLookup":"Use proxy for hostname lookup","misc":"Use proxy for general purposes","peerConnections":"Use proxy for peer connections","port":"Port","rss":"Use proxy for RSS purposes","subheader":"Proxy Server"}},"downloads":{"excludedFileNames":{"hint":"One filter per line","label":"Excluded file names"},"mailNotification":{"authEnabled":"Authentication","enabled":"Email notification upon download completion","from":"From","password":"Password","smtpServer":"SMTP server","sslEnabled":"This server requires a secure connection (SSL)","test":{"error":"Email request failed\\n{message}","label":"Send test email","success":"Email request sent!\\nCheck your inbox to confirm success"},"to":"To","username":"Username"},"monitoredFolders":{"actions":"Actions","confirmDelete":"Are you sure you want to delete this item?","editItem":"Edit","monitoredFolderPath":"Monitored Folder","newItem":"New","noData":"No monitored folder yet","otherPath":"Other Path","saveType":"Override Save Location","subheader":"Monitored Folders"},"publicSettings":{"appendQBExtension":"Append .!qB extension to incomplete files","preAllocateDisk":"Pre-allocate disk space for all files","useUnwantedFolder":"Keep unselected files in \\".unwanted\\" folder"},"runExternalProgram":{"onAddedEnabled":"Run external program on torrent added","onAddedLabel":"Command","onFinishedEnabled":"Run external program on torrent finished","onFinishedLabel":"Command","subheader":"Run external program","supportParamC":"%C: Number of files","supportParamD":"%D: Save path","supportParamF":"%F: Content path (same as root path for multi-file torrent)","supportParamG":"%G: Tags (separated by comma)","supportParamI":"%I: Info hash v1","supportParamJ":"%J: Info hash v2","supportParamK":"%K: Torrent ID","supportParamL":"%L: Category","supportParamN":"%N: Torrent name","supportParamR":"%R: Root path (first torrent subdirectory path)","supportParamT":"%T: Current tracker","supportParamTitle":"Supported parameters (case sensitive):","supportParamZ":"%Z: Torrent size (bytes)","tip":"Tip: Encapsulate parameter with quotation marks to avoid text being cut off at whitespace (e.g., \\"%N\\")"},"saveManagement":{"autoTMMEnabled":"Default Torrent Management Mode","categoryChangedTMM":"When Category Save Path changed","defaultSavePath":"Default Save Path (complete)","defaultTMMOptions":{"automatic":"Automatic","manual":"Manual"},"exportDir":"Copy .torrent files to","exportDirFinished":"Copy .torrent files for finished downloads to","keepIncomplete":"Default Download Path (incomplete torrents)","paramChangedTMMOptions":{"relocateTorrent":"Relocate torrent","switchToManual":"Switch torrent to Manual Mode"},"savePathChangedTMM":"When Default Save Path changed","subheader":"Saving Management","torrentChangedTMM":"When Torrent Category changed","useCategoryPathInManualMode":"Use Category paths in Manual Mode","useCategoryPathInManualModeHint":"Resolve relative Save Path against appropriate Category path instead of Default one"},"whenAddTorrent":{"addToTopOfQueue":"Add to top of queue","autoDeleteMode":"Delete .torrent files afterwards","doNotAutoStart":"Do not start the download automatically","mergeTrackers":"Merge trackers if torrent already exists","subheader":"When adding a torrent"}},"rss":{"autoDownloader":{"enable":"Enable RSS rules processing","subheader":"RSS Torrent Auto Downloader"},"reader":{"enableProcessing":"Enable fetching RSS feeds","feedsRefreshInterval":"Feeds refresh interval","maximumArticlesPerFeed":"Maximum number of articles per feed","sameHostRequestDelay":"Same host request delay","subheader":"RSS Reader"},"smartEpisodeFilter":{"downloadEpisodes":"Download REPACK/PROPER episodes","filters":"Filters","filtersHint":"One per line","subheader":"RSS Smart Episode Filter"},"useIdForRssLinks":"Use ID for RSS article link"},"saveSuccess":"Settings saved!","speed":{"download":"Download","scheduler":{"from":"From","selectButtonLabel":"Select time","subheader":"Schedule the use of alternative rate limits","to":"To","when":"When"},"settings":{"applyToPeersOnLan":"Apply rate limit to peers on LAN","applyToTransportOverhead":"Apply rate limit to transport overhead","applyToUtp":"Apply rate limit to µTP protocol"},"subheader":{"alternative":"Alternative Rate Limits","global":"Global Rate Limits","settings":"Rate Limits Settings"},"tip":"0 means unlimited","upload":"Upload"},"tabs":{"addons":{"enhanced_edition":"Enhanced edition"},"advanced":"Advanced","behavior":"Behavior","bittorrent":"BitTorrent","connection":"Connection","downloads":"Downloads","rss":"RSS","speed":"Speed","tagsAndCategories":"Tags & Categories","vuetorrent":{"general":"General","title":"VueTorrent","torrent_card":{"grid":"Grid View","list":"List View","table":"Table View"}},"webui":"WebUI"},"tagsAndCategories":{"categoriesSubheader":"Available Categories:","createNewCategory":"Create new category","createNewTag":"Create new tag","deleteUnusedCategories":"Delete unused categories","deleteUnusedTags":"Delete unused tags","noCategories":"No categories yet","noTags":"No tags yet","tagsSubheader":"Available Tags:"},"title":"Settings","vuetorrent":{"general":{"check_new":"Check for new version","currentVersion":"Current Version","customTitle":"Custom title","darkVariants":"Dark theme variant","dateFormat":"Date Format","displayGraphLimits":"Display limits in graph","download":"Export settings","durationFormat":"Duration format","enableHashColors":"Enable generated chip colors","enableRatioColors":"Enable ratio colors","expandContent":"Expand content by default in Content view","fetchExternalIpInfo":"Fetch external IP info","fileContentInterval":"Torrent file content refresh interval","filterType":"Filters inclusion type","hideChipIfUnset":"Hide chips if unset","hideColoredChip":"Use text variant for chips","historySize":"History size on eligible fields","import":"Import Settings","isDrawerRight":"Right Drawer","isShutdownButtonVisible":"Show shutdown button","language":"Language","lightVariants":"Light theme variant","paginationSize":{"infinite_scroll":"Infinite scroll","label":"Pagination Size","warning":"This option can significantly affect performance with a lot of torrents"},"qbittorrentVersion":"qBittorrent Version","refreshInterval":"qBittorrent API refresh interval","registerMagnet":"Register magnet links","resetSettings":"Reset Settings","showAlltimeStat":"Show All-Time Stats","showCurrentSpeed":"Show Current Speed","showFreeSpace":"Show Free Space","showSessionStat":"Show Session Stats","showSpeedGraph":"Show Speed Graph","tip":"These settings are for the custom WebUI itself","useBinarySize":"Replace data sizes by binary units (kB -> KiB)","useBitSpeed":"Replace speed values by bits (kB/s -> kbps)","useEmojiState":"Prepend torrent states with emojis","vueTorrentTitle":"Tab title"},"torrentCard":{"grid":{"busyTip":"Properties to display for incomplete torrents in grid view","doneTip":"Properties to display for completed torrents in grid view"},"list":{"busyTip":"Properties to display for incomplete torrents in list view","doneTip":"Properties to display for completed torrents in list view"},"table":{"tip":"Properties to display for torrents in table view"}}},"webUI":{"authentication":{"banDuration":"Ban Duration","banDurationHint":"In seconds","bypassLocalhost":"Bypass authentication for clients on localhost","bypassWhitelist":"Bypass authentication for clients in whitelisted IP subnets","maxAttempts":"Max attempts","password":"Password","passwordPlaceholder":"(unchanged)","sessionTimeout":"Session timeout","sessionTimeoutHint":"In seconds","subheader":"Authentication","username":"Username","whitelistExamples":"Example: 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"Add custom HTTP headers","customHeadersHint":"One per line","customHeadersPlaceholder":"Header1: value1\\nHeader2: value2\\n...","dynDns":{"domainName":"Domain name","password":"Password","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"Register","subheader":"Update my dynamic domain name","username":"Username"},"https":{"certificate":"Certificate","key":"Key","subheader":"Use HTTPS","tip":"Information about certificates"},"interface":{"ipAddress":"IP Address","port":"Port","subheader":"Web User Interface","useAlternativeWebUI":"Use Alternative WebUI","useUPnP":"Use UPnP / NAT-PMP port forwarding from my router"},"proxiesList":"Trusted proxies list","proxiesListHint":"Seperate IPs with semicolon ( ; )","reverseProxySupport":"Enable reverse proxy support","security":{"clickjacking":"Enable clickjacking protection","csrf":"Enable Cross-Site Request Forgery (CSRF) protection","hostHeaderValidation":"Enable Host header validation","hostHeaderValidationHint":"Seperated with semi-colon ( ; )","secureCookie":"Enable cookie \\"secure\\" flag (requires HTTPS)","serverDomains":"Server Domains","subheader":"Security"}}}');
    UN = {
        add: {
            error: "Error while adding torrents",
            pending: "Sending torrents...",
            success: "{n} torrent added | {n} torrents added"
        },
        copy: {
            error: "Unable to copy, context isn't secured!",
            success: "Copied to clipboard!"
        },
        magnet_handler: {
            not_supported: "Current context isn't secure. Unable to register handler.",
            registered: "Magnet handler registered."
        },
        qbit: {
            not_supported: "Only available for qbit >= {version}"
        },
        version: {
            latest: "You're on the latest and greatest!",
            new: "New version available!"
        }
    };
    jN = {
        actions: {
            delete: "Delete Torrents",
            logs: "Open Logs",
            pause: "Pause Torrents",
            resume: "Resume Torrents",
            rssArticles: "Open RSS Articles",
            searchEngine: "Open Search Engine",
            settings: "Open Settings",
            torrentCreator: "Open Torrent Creator"
        },
        addTorrents: "Add Torrents",
        overflow: {
            delete: "Delete",
            logs: "qBittorrent Logs",
            pause: "Pause",
            resume: "Resume",
            rssArticles: "RSS Articles",
            searchEngine: "Search Engine",
            settings: "Settings",
            torrentCreator: "Torrent Creator"
        },
        searchTorrents: "Search torrents"
    };
    YN = {
        empty: {
            action: "Create new task",
            value: "No tasks registered"
        },
        table: {
            comment: "Comment",
            create: "Create new task",
            errorMessage: "Error Message",
            format: "Torrent Format",
            optimizeAlignment: "Is alignment optimized?",
            pieceSize: "Piece Size",
            private: "Is Private?",
            progress: "Progress",
            source: "Source",
            sourcePath: "Source Path",
            status: "Task Status",
            taskID: "Task ID",
            timeAdded: "Addition date",
            timeFinished: "Completion date",
            timeStarted: "Start date",
            trackers: {
                activator: "{n} tracker | {n} trackers",
                header: "Trackers",
                title: "Registered trackers"
            },
            urlSeeds: {
                activator: "{n} URL | {n} URLs",
                header: "Web Seeds",
                title: "Registered web seeds"
            }
        },
        title: "Torrent Creator"
    };
    qN = {
        content: {
            fileInfo: "{n} file | {n} files",
            filter: {
                activator: "Bulk Select",
                exclude: "Exclude",
                extensions: "File extension",
                include: "Include",
                preview: "Filter matches {count}/{total} files ({size})",
                priority: "File priority",
                size: "File size",
                title: "Bulk select files"
            },
            filter_placeholder: "Search in file tree",
            folderInfo: "{n} folder | {n} folders",
            invert_priority: "Invert priority",
            priority: "Set priority",
            rename: {
                bulk: "Bulk rename",
                file: "Rename",
                folder: "Rename folder"
            },
            rootNode: "(Root)"
        },
        info: {
            boolean_values: "Boolean values",
            data_values: "Data values",
            datetime_values: "Datetime Values",
            duration_values: "Duration Values",
            long_text_values: "Long text values",
            speed_values: "Speed values",
            text_values: "Text values"
        },
        overview: {
            canvasRefreshDisabled: "Canvas auto-refresh is disabled",
            canvasRenderDisabled: "Canvas rendering is disabled",
            copy_hash: "Copy Hash",
            dlSpeedAverage: "Download Speed Average",
            downloaded: "Downloaded",
            fetchingMetadata: "Fetching...",
            fileCount: "Selected Files",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "Ratio",
            selectedFileSize: "Selected Files' Size",
            uploaded: "Uploaded",
            upSpeedAverage: "Upload Speed Average",
            waitingForMetadata: "Waiting for metadata..."
        },
        peers: {
            addPeers: {
                newPeers: "Peer hosts to add",
                newPeersHint: "One per line",
                newPeersPlaceholder: "IP:port",
                title: "Add Peers"
            },
            empty: "No peers connected at the moment",
            fields: {
                client: "Client",
                country: "Country",
                download: "Download",
                files: "Files",
                flags: "Flags",
                host: "Host",
                progress: "Progress",
                relevance: "Relevance",
                upload: "Upload"
            }
        },
        tabs: {
            content: "Content",
            info: "Info",
            overview: "Overview",
            peers: "Peers",
            tagsAndCategories: "Tags & Categories",
            trackers: "Trackers"
        },
        tagsAndCategories: {
            categories: "Categories",
            tags: "Tags"
        },
        title: "Torrent Detail",
        trackers: {
            addTrackers: {
                newTrackers: "Tracker URLs to add",
                newTrackersHint: "One per line, separate tiers with an empty line",
                title: "Add Trackers"
            },
            editTracker: {
                newUrl: "New URL",
                newUrlRequired: "New URL is required",
                oldUrl: "Old URL",
                title: "Edit Tracker"
            },
            error: "Error while fetching tracker data",
            fields: {
                msg: "Message",
                num_downloaded: "Downloaded",
                num_leeches: "Leeches",
                num_peers: "Peers",
                num_seeds: "Seeds",
                status: "Status",
                tier: "#",
                url: "Tracker URL"
            },
            loading: "Loading tracker data...",
            reannounce: "Reannounce all",
            tier: "Tier: {n}"
        }
    };
    KN = {
        properties: {
            added_on: "Added On",
            amount_left: "Amount Left",
            auto_tmm: "Automatic Torrent Management",
            availability: "Availability",
            available_peers: "Peers (swarm)",
            available_seeds: "Seeds (swarm)",
            avg_download_speed: "Avg. DL Speed",
            avg_upload_speed: "Avg. UL Speed",
            basename_content_path: "Content Path (basename)",
            basename_download_path: "Download Path (basename)",
            basename_save_path: "Save Path (basename)",
            category: "Category",
            comment: "Comment",
            completed_on: "Completed On",
            content_path: "Content Path",
            created_by: "Created by",
            creation_date: "Creation Date",
            downloaded: "Downloaded (global)",
            downloaded_session: "Downloaded (session)",
            download_limit: "DL Limit",
            download_path: "DL Path",
            download_speed: "DL Speed",
            empty_category: "(no category)",
            empty_tags: "(no tags)",
            empty_tracker: "(no working trackers)",
            eta: "ETA",
            f_l_piece_prio: "First / Last Piece Priority",
            forced: "Forced State",
            global_speed: "Global Speed",
            global_volume: "Global Volume",
            hash: "Hash",
            has_metadata: "Has Metadata",
            inactive_seeding_time_limit: "Inactive Seeding Time Limit",
            infohash_v1: "Infohash v1",
            infohash_v2: "Infohash v2",
            is_private: "Private Torrent",
            last_activity: "Last Active",
            magnet: "Magnet Link",
            name: "Torrent Title",
            nb_connections: "Total Connections",
            nb_connections_limit: "Connection Limit",
            num_leechs: "Peers (connected)",
            num_seeds: "Seeds (connected)",
            peers: "Peers",
            popularity: "Popularity",
            priority: "Queue Pos.",
            private: "Is Private",
            progress: "Progress",
            progress_bar: "Progress Bar",
            ratio: "Ratio",
            ratio_limit: "Ratio limit",
            reannounce: "Next Reannounce",
            root_path: "Root path",
            save_path: "Save Path",
            seeding_time: "Seeding Time",
            seeding_time_limit: "Seeding Time Limit",
            seeds: "Seeds",
            seen_complete: "Seen Complete",
            seq_dl: "Sequential Download",
            size: "Size",
            state: "State",
            super_seeding: "Super Seeding Mode",
            tags: "Tags",
            time_active: "Time Active",
            total_size: "Total Size",
            total_wasted: "Wasted Data",
            tracker: "Tracker",
            trackers_count: "Trackers Count",
            truncated_hash: "Truncated Hash",
            uploaded: "Uploaded (global)",
            uploaded_session: "Uploaded (session)",
            upload_limit: "UL Limit",
            upload_speed: "UL Speed"
        },
        state: {
            checking_disk: "Checking Disk Files",
            checking_resume_data: "Checking Resume Data",
            dl_forced: "Downloading [F]",
            dl_queued: "Queued (DL)",
            dl_stalled: "Stalled",
            dl_stopped: "Stopped",
            downloading: "Downloading",
            error: "Error",
            forced_meta_download: "Metadata [F]",
            meta_download: "Metadata",
            missing_files: "Missing Files",
            moving: "Moving",
            ul_forced: "Uploading [F]",
            ul_queued: "Queued (UP)",
            ul_stalled: "Seeding",
            ul_stopped: "Done",
            unknown: "Unknown",
            uploading: "Uploading"
        }
    };
    XN = {
        minutes: "minute | minutes",
        seconds: "second | seconds"
    };
    JN = {
        _comments: RN,
        common: LN,
        constants: IN,
        dashboard: zN,
        dialogs: NN,
        login: ON,
        logs: HN,
        navbar: VN,
        rssArticles: WN,
        searchEngine: GN,
        settings: $N,
        toast: UN,
        topbar: jN,
        torrentCreator: YN,
        torrentDetail: qN,
        torrent: KN,
        units: XN
    };
    ZN = {
        cancel: "Cancelar",
        close: "Cerrar",
        delete: "Eliminar",
        disable: "Desactivar",
        disabled: "Desactivado",
        edit: "Editar",
        emptyList: "¡Nada que ver aqui!",
        NA: "N/D",
        no: "No",
        none: "(Ninguno)",
        ok: "Aceptar",
        pause: "Pausar",
        resume: "Reanudar",
        save: "Guardar",
        search: "Buscar",
        selectAll: "Seleccionar todo",
        selectNone: "Ninguno seleccionado",
        useGlobalSettings: "Usar configuración global",
        yes: "Sí"
    };
    QN = {
        addStopped: {
            always: "Siempre",
            never: "Nunca",
            title: "Añadir pausa"
        },
        auto_delete_mode: {
            always: "Siempre",
            never: "Nunca"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP y μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Conectado",
            disconnected: "Desconectado",
            firewalled: "Con cortafuegos",
            unknown: "Desconocido"
        },
        contentLayout: {
            nosubfolder: "Eliminar subcarpeta",
            original: "Original",
            subfolder: "Crear subcarpeta",
            title: "Diseño de contenido de Torrent"
        },
        diskIoMode: {
            disableOsCache: "Desactivar caché SO",
            enableOsCache: "Activar caché SO",
            writeThrough: "Escritura directa (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "Predeterminado",
            memoryMappedFiles: "Archivos mapeados en memoria",
            posixCompliant: "Compatible con POSIX"
        },
        encryption: {
            forceOff: "Desactivar cifrado",
            forceOn: "Forzar cifrado",
            preferEncryption: "Permitir cifrado"
        },
        file_log_age_type: {
            days: "Día | Días | Días",
            months: "Mes | Mes | Meses",
            years: "Año | Año | Años"
        },
        file_priority: {
            high: "Alta",
            max: "Máximo",
            mixed: "Mixto",
            normal: "Normal",
            unwanted: "No deseado"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Ruta de Guardado Predeterminada",
            monitoredFolder: "Ubicación de la carpeta monitoreada",
            other: "Otro"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Cada día",
            everyFriday: "Cada viernes",
            everyMonday: "Cada lunes",
            everySaturday: "Cada sábado",
            everySunday: "Cada domingo",
            everyThursday: "Cada jueves",
            everyTuesday: "Cada martes",
            everyWednesday: "Cada miércoles",
            everyWeekday: "Todos los días laborables",
            everyWeekend: "Todos los fines de semana"
        },
        shareLimitAction: {
            removeTorrent: "Eliminar torrent",
            removeTorrentAndFiles: "Eliminar torrent y sus archivos",
            stopTorrent: "Pausar torrente",
            torrentSuperseeding: "Habilitar super siembra para el torrent"
        },
        stopCondition: {
            filesChecked: "Archivos comprobados",
            metadataReceived: "Metadatos recibidos",
            none: "Ninguno",
            title: "Condición de parada del torrente"
        },
        titleOptions: {
            custom: "Personalizado",
            default: "Predeterminado",
            first_torrent_speed: "Velocidad del primer torrente",
            global_speed: "Velocidad global"
        },
        trackerStatus: {
            disabled: "Desactivado",
            not_working: "No funciona",
            not_yet_contacted: "Aún no contactado",
            updating: "Actualizando",
            working: "Trabajando"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-leech",
            fastestUpload: "Subida más rápida",
            roundRobin: "Round-robin"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Ranuras fijas",
            uploadRateBased: "Basado en la velocidad de carga"
        },
        utpTcpMixedMode: {
            peerProportional: "Proporcional de pares (limita TCP)",
            preferTcp: "Preferir TCP"
        }
    };
    eO = {
        displayMode: {
            grid: "Cuadrícula",
            list: "Lista",
            table: "Tabla",
            title: "Modo de visualización"
        },
        not_complete: "Nunca visto completo",
        right_click: {
            advanced: {
                auto_tmm: "Gestión Automática de Torrents",
                download_path: "Establecer ruta de descarga",
                f_l_prio: "Primera / Última Prioridad",
                reannounce: "Forzar reenvío",
                recheck: "Forzar Revisión",
                rename: "Renombrar Torrent",
                save_path: "Establecer ruta de guardado",
                seq_dl: "Descarga secuencial",
                title: "Avanzado"
            },
            category: {
                clear: "(Limpiar categoría)",
                disabled_title: "Sin categorías",
                title: "Establecer categoría"
            },
            copy: {
                comment: "Comentario",
                hash: "Hash",
                magnet: "Magnet",
                name: "Nombre",
                title: "Copiar"
            },
            export: "Exportar torrent | Exportar torrents",
            info: "Mostrar información",
            priority: {
                bottom: "Prioridad inferior",
                decrease: "Disminuir prioridad",
                increase: "Aumentar prioridad",
                title: "Establecer prioridad",
                top: "Prioridad Alta"
            },
            speed_limit: {
                download: "Establecer límite de descarga",
                share: "Establecer límite de compartición",
                title: "Establecer límite de velocidad",
                upload: "Establecer límite de carga"
            },
            tags: {
                disabled_title: "Sin etiquetas",
                title: "Establecer etiquetas"
            },
            top: {
                delete: "Eliminar",
                force_resume: "Forzar reanudación",
                pause: "Pausar",
                resume: "Reanudar"
            }
        },
        searchInputLabel: "Buscar",
        selectAll: "(Des)seleccionar todo (Ctrl + A)",
        selectedTorrentsCount: "Ningún torrente | {count} de {total} torrente ({size}) | {count} de {total} torrents ({size})",
        sortLabel: "Ordenar por",
        toggleSearchFilter: "Alternar filtro de búsqueda",
        toggleSelectMode: "Activar modo de selección",
        toggleSortOrder: "Orden inverso",
        torrentsCount: "No hay torrents | {n} torrent | {n} torrents"
    };
    tO = {
        add: {
            cookie: "Cookies",
            cookie_placeholder: "nombre1=valor1; nombre2=valor2; ...",
            drop_label: "Arrastre archivos y enlaces torrent aquí",
            file_overflow: "+{n} más",
            files: "Seleccionar archivos",
            first_last_piece_prio: "Priorizar las primeras y últimas piezas",
            links: "Enlaces (magnet, http, archivo, ...)",
            params: {
                add_to_top_of_queue: "Agregar al principio de la cola",
                category: "Categoría",
                download_limit: "Límite de descarga",
                download_path: "Ruta de descarga (cuando está incompleto)",
                inactive_seeding_time_limit: "Límite de tiempo de siembra inactiva",
                limit_collapse: "Configurar límites",
                limit_hint: "-1 para desactivar, -2 o vacío para usar el valor global",
                no_categories: "Aún no hay categorías. Escribe un nombre para crear una.",
                no_categories_match: 'No hay categorías que coincidan con "{query}". Se creará automáticamente.',
                no_tags: "Aún no hay etiquetas. Escribe un nombre para crear una.",
                no_tags_match: 'No se encontraron etiquetas que coincidan con "{query}". Presiona Enter para crearla.',
                ratio_limit: "Límite de proporción",
                save_path: "Ruta de guardado (cuando se complete)",
                seeding_time_limit: "Límite de tiempo de siembra",
                skip_checking: "Omitir comprobación de hash",
                stopped: "No iniciar descarga",
                tags: "Etiquetas",
                title: "Parámetros del torrent",
                upload_limit: "Límite de subida",
                use_auto_tmm: "Gestión Automática de Torrents"
            },
            rename: "Renombrar torrent",
            reset_form: "Restablecer formulario",
            sequential_download: "Descarga secuencial",
            submit: "Agregar torrents",
            title: "Agregar Torrents"
        },
        category: {
            name: "Nombre de categoría",
            nameRequired: "Se requiere el nombre de la categoría",
            oldName: "Nombre de categoría antiguo",
            savePath: "Ruta de guardado",
            title: {
                create: "Crear Categoría",
                edit: "Editar Categoría"
            },
            warnEdit: `Editar el nombre de la categoría migrará los torrents a la nueva categoría.
Pueden ocurrir errores, usar con precaución.`
        },
        connectionStatus: {
            dht_nodes: "Nodos DHT",
            externalIp: "Dirección IP Externa",
            status: "Estado de la conexión",
            total_peer_connections: "Conexiones de pares activas"
        },
        delete: {
            deleteWithFiles: "Eliminar archivos con torrent",
            title: "Eliminar {n} torrente | Eliminar {n} torrents",
            warnDelete: "Marcar esta casilla eliminará todo lo contenido en esos torrents"
        },
        importSettings: {
            required: "Es necesario proporcionar ajustes",
            title: "Importar configuración",
            valid: "Proporcione configuraciones válidas"
        },
        moveTorrent: {
            dl: {
                title: "Cambiar ruta de descarga"
            },
            newPath: "Nueva ruta",
            oldPath: "Ruta antigua",
            required: "Se requiere una nueva ruta",
            samePath: "La nueva ruta debe ser diferente de la ruta anterior",
            save: {
                title: "Cambiar ruta de guardado"
            }
        },
        moveTorrentFile: {
            oldName: "Nombre anterior",
            title: "Mover archivo torrent | Mover carpeta torrent"
        },
        pluginManager: {
            headers: {
                actions: "Acciones",
                enabled: "Habilitado",
                name: "Nombre",
                url: "URL del motor",
                version: "Versión"
            },
            install: {
                activator: "Instalar nuevo complemento",
                label: "URL del plugin",
                title: "Instalar complemento"
            },
            title: "Administrador de complementos",
            update: "Actualizar complementos"
        },
        renameTorrent: {
            newName: "Nuevo nombre",
            oldName: "Nombre anterior",
            required: "Se requiere un nuevo nombre",
            sameName: "El nuevo nombre debe ser diferente del nombre anterior",
            title: "Renombrar Torrent"
        },
        rss: {
            feed: {
                name: "Nombre",
                rules: {
                    name_required: "Se requiere el nombre del feed",
                    url_required: "Se requiere la URL del feed"
                },
                title: {
                    create: "Crear fuente RSS",
                    edit: "Editar fuente RSS"
                },
                url: "URL"
            },
            rule: {
                affectedFeedsSubheader: "Fuentes afectadas",
                assignedCategory: "Categoría asignada",
                enabled: "Habilitar regla",
                episodeFilter: "Filtro de episodios",
                episodeFilterPlaceholder: "ej. S01E02-S01E05",
                ignoreDays: "Ignorar elementos publicados en los últimos {days} días",
                ignoreDaysHint: "0 para desactivar",
                lastMatch: {
                    knownValue: "hoy | hace {n} día | hace {n} días",
                    label: "Última coincidencia",
                    unknownValue: "Desconocido"
                },
                matchingArticles: {
                    noMatch: "No hay artículos coincidentes",
                    title: "Artículos coincidentes"
                },
                mustContain: "Debe contener",
                mustNotContain: "No debe contener",
                name: "Nombre",
                savePath: "Ruta de guardado",
                savePathPlaceholder: "Dejar en blanco para usar la ruta de guardado predeterminada",
                smartFilter: "Usar filtro inteligente de episodios",
                title: {
                    create: "Crear regla RSS",
                    edit: "Editar regla RSS"
                },
                useRegex: "Usar expresión regular"
            }
        },
        share_limit: {
            disabled: "No establecer límite de compartición",
            enabled: "Establecer límite de compartición en",
            global: "Usar el límite de cuota global",
            inactive_seeding_time_limit: "Minutos inactivos",
            ratio_limit: "Ratio",
            seeding_time_limit: "Minutos totales",
            title: "Establecer límite de ratio"
        },
        shutdown: {
            content: "¿Realmente desea cerrar qBittorrent?",
            error: "No se puede apagar la aplicación. ¡Asegúrese de que qBittorrent esté en ejecución!",
            success: "¡qBittorrent se cerró correctamente!",
            title: "Apagar qBittorrent"
        },
        speed_limit: {
            download: "Establecer límite de velocidad de descarga",
            label: "Límite de velocidad",
            upload: "Establecer límite de velocidad de carga"
        },
        tag: {
            comma: "El nombre no puede contener una coma al renombrar una etiqueta",
            hint: "Consejo profesional: se pueden crear múltiples etiquetas separándolas por comas",
            name: "Nombre de etiqueta",
            oldName: "Nombre de etiqueta anterior",
            required: "Se requiere el nombre de la etiqueta",
            title: {
                create: "Crear etiqueta",
                rename: "Renombrar etiqueta"
            },
            warnEdit: `Editar el nombre de la etiqueta migrará los torrents a la nueva etiqueta.
Pueden ocurrir errores, usar con precaución.`
        }
    };
    aO = {
        error: "¡Error al iniciar sesión!",
        password: "Contraseña",
        rules: {
            password_required: "Se requiere contraseña",
            username_required: "Se requiere el nombre de usuario"
        },
        submit: "Iniciar sesión",
        subtitle: "Ingrese sus credenciales",
        success: "¡Inicio de sesión exitoso!",
        title: "Iniciar sesión",
        username: "Usuario"
    };
    rO = {
        emptyLogList: "No se encontraron registros",
        filters: {
            query: "Buscar en el mensaje del registro",
            type: "Nivel de registro"
        },
        title: "Registros de qBittorrent"
    };
    nO = {
        addPanel: {
            torrentsPendingCount: "{n} torrent pendiente de subir | {n} torrents pendientes de subir"
        },
        side: {
            bottom_actions: {
                alt_speed: "Alternar velocidad alternativa",
                conn_status: "Estado de la conexión: {status}",
                logout: "Cerrar sesión",
                shutdown: "Apagar qBittorrent"
            },
            current_speed: {
                title: "Velocidad actual"
            },
            filters: {
                activeFilter: "{n} filtros activos",
                category: {
                    empty: "(Sin categoría)",
                    title: "Filtro de Categoría"
                },
                disabled: "(Desactivado)",
                state: {
                    active: "Activo",
                    error: "Error",
                    title: "Filtro de estado de torrentes"
                },
                tag: {
                    empty: "(Sin etiqueta)",
                    title: "Filtro de etiquetas"
                },
                tracker: {
                    empty: "(No rastreado)",
                    title: "Filtro de rastreadores"
                }
            },
            speed_graph: {
                download_label: "Descargar",
                download_limit_label: "Límite de descarga",
                upload_label: "Cargar",
                upload_limit_label: "Límite de subida"
            },
            stats: {
                alltime: {
                    title: "Estadísticas de todos los tiempos"
                },
                downloaded: "Descargado",
                free_space: "Espacio libre",
                ratio: "Ratio",
                session: {
                    title: "Estadísticas de sesión"
                },
                uploaded: "Subido"
            }
        },
        top: {
            active_filters: {
                category: "Filtro de categoría: {value}",
                menu_label: "Filtro activo: {n} | Filtros activos: {n}",
                multiple_category: "Filtro de categoría: {n} categorías",
                multiple_state: "Filtro de estado: {n} estados",
                multiple_tag: "Filtro de etiquetas: {n} etiquetas",
                multiple_tracker: "Filtro de rastreadores: {n} rastreadores",
                state: "Filtro de estado: {value}",
                tag: "Filtro de etiquetas: {value}",
                text: "Filtro de texto: {value}",
                tracker: "Filtro de rastreadores: {value}"
            }
        }
    };
    iO = {
        feeds: {
            empty: {
                action: "Crear fuente RSS"
            },
            filters: {
                title: "Filtro de título",
                unread: "Mostrar solo artículos no leídos"
            },
            item: {
                author: "Autor: {author}",
                category: "Categoría: {category}",
                feedName: "Nombre del feed: {name}"
            },
            markAllAsRead: "Marcar todo como leído",
            promise: {
                error: "Se produjo un error al marcar los artículos",
                pending: "Marcando...",
                success: "{n} artículos marcados como leídos"
            },
            title: "Artículos RSS"
        },
        rules: {
            empty: {
                action: "Crear regla RSS"
            }
        }
    };
    oO = {
        filters: {
            category: {
                all: "Todo",
                anime: "Anime",
                books: "Libros",
                games: "Juegos",
                label: "Categoría de búsqueda",
                movies: "Películas",
                music: "Música",
                pictures: "Imágenes",
                software: "Software",
                tv: "TV"
            },
            plugins: {
                all: "Todo",
                enabled: "Habilitado",
                label: "Plugin de búsqueda"
            },
            title: {
                label: "Filtrar por título"
            }
        },
        headers: {
            fileName: "Nombre de archivo",
            fileSize: "Tamaño del archivo",
            nbLeechers: "Sanguijuelas",
            nbSeeders: "Semillas",
            siteUrl: "URL del sitio"
        },
        query: "Consulta de búsqueda",
        runSearch: "Buscar",
        stopSearch: "Detener",
        tabHeaderEmpty: "(Consulta vacía)",
        title: "Motor de búsqueda"
    };
    sO = JSON.parse('{"advanced":{"libtorrent":{"announceAllTiers":"Siempre anunciar a todos los niveles","announceAllTrackers":"Siempre anunciar a todos los rastreadores en un nivel","announceIP":"Dirección IP reportada a los trackers (requiere reinicio)","coalesceReadsWrites":"Unir lecturas y escrituras (libtorrent < 2.0)","disk":{"diskCache":"Caché de disco (libtorrent < 2.0)","diskCacheExpiry":"Intervalo de caducidad de la caché de disco (libtorrent < 2.0)","diskIoReadMode":"Modo de lectura de E/S de disco","diskIoType":"Tipo de E/S de disco (libtorrent >= 2.0; requiere reinicio)","diskIoWriteMode":"Modo de escritura de E/S de disco","diskQueueSize":"Tamaño de cola de disco","subheader":"Disco"},"maxConcurrentHTTPAnnounces":"Anuncios HTTP simultáneos máximos","networking":{"outgoingPortsMax":"Puertos de salida (Máx) [0: Desactivado]","outgoingPortsMin":"Puertos de salida (Mín) [0: Desactivado]","peerTos":"Valor DSCP para conexiones con pares","subheader":"Redes","upnpLeaseDuration":"Duración del arrendamiento UPnP [0: Arrendamiento permanente]","utpTcpMixedModeAlgorithm":"Algoritmo de modo mixto μTP-TCP"},"outgoingConnectionsPerSecond":"Conexiones salientes por segundo","peerTurnover":"Porcentaje de desconexión de pares","peerTurnoverCutoff":"Porcentaje umbral de desconexión de pares","peerTurnoverInterval":"Intervalo de desconexión de pares","pieceExtentAffinity":"Usar afinidad de extensión de pieza","requestQueueSize":"Máximo de solicitudes pendientes a un solo par","security":{"allowMultipleConnectionsFromTheSameIPAddress":"Permitir múltiples conexiones desde la misma dirección IP","blockPeersOnPrivilegedPorts":"No permitir conexión a pares en puertos privilegiados","idnSupport":"Habilitar soporte para Nombres de Dominio Internacionalizados (IDN)","mitigateSSRF":"Mitigación de solicitud de falsificación de servidor (SSRF)","subheader":"Seguridad","validateHTTPSTrackerCertificate":"Validar certificado de tracker HTTPS"},"sendBufferLowWatermark":"Marca de agua baja del búfer de envío","sendBufferWatermark":"Marca de agua del búfer de envío","sendBufferWatermarkFactor":"Factor de marca de agua del búfer de envío","sendUploadPieceSuggestions":"Enviar sugerencias de piezas de carga","socketBacklogSize":"Tamaño de cola de espera del socket","socketReceiveBufferSize":"Tamaño del búfer de recepción del socket","socketReceiveBufferSizeHint":"0: valor predeterminado del sistema","socketSendBufferSize":"Tamaño del búfer de envío de socket","socketSendBufferSizeHint":"0: valor predeterminado del sistema","stopTrackerTimeout":"Tiempo de espera para detener el rastreador","subheader":"Sección de libtorrent","threads":{"asyncIoThreads":"Hilos de E/S asincrónicos","bdecodeDepthLimit":"Límite de profundidad de Bdecode","bdecodeTokenLimit":"Límite de tokens Bdecode","filePoolSize":"Tamaño del pool de archivos","hashingThreads":"Hilos de hash (libtorrent >= 2.0)","outstandingMemory":"Memoria pendiente al verificar torrents","subheader":"Hilos"},"uploadChokingAlgorithm":"Algoritmo de estrangulamiento de carga","uploadSlotsBehavior":"Comportamiento de ranuras de carga"},"openDoc":"Abrir documentación","qbittorrent":{"allocatedRam":"Límite de uso de memoria física (RAM) (libtorrent >= 2.0)","embeddedTracker":{"enable":"Habilitar rastreador integrado","port":"Puerto del rastreador integrado","portForward":"Habilitar reenvío de puertos para el rastreador integrado","title":"Rastreador Integrado"},"networking":{"ipAddress":{"all":"Todas las direcciones","allIPv4":"Todas las direcciones IPv4","allIPv6":"Todas las direcciones IPv6","label":"Dirección IP opcional para enlazar"},"networkInterfaces":{"any":"Cualquier interfaz","label":"Interfaz de red"},"title":"Redes"},"reannounceOnIpPortChanged":"Volver a anunciar a todos los rastreadores cuando cambie la IP o el puerto","recheckOnCompletion":"Volver a comprobar torrents al finalizar","refreshInterval":"Intervalo de actualización de la interfaz gráfica de usuario","resolveCountries":"Resolver países de pares","resumeDataStorageType":{"label":"Tipo de almacenamiento de datos de reanudación (requiere reinicio)","legacy":"Archivos de reanudación rápida","sqlite":"Base de datos SQLite (experimental)"},"saveInterval":"Intervalo de guardado de datos de reanudación","subheader":"Sección de qBittorrent","torrentFileSizeLimit":"Límite de tamaño de archivo .torrent"}},"behavior":{"logs":{"file_log_age":"Eliminar registros de copia de seguridad anteriores a","file_log_backup_enabled":"Habilitar copia de seguridad de archivos de registro","file_log_delete_old":"Eliminar registros de copia de seguridad antiguos","file_log_enabled":"Habilitar archivos de registro","file_log_max_size":"Hacer una copia de seguridad del archivo de registro después de","file_log_path":"Ruta de guardado","subheader":"Gestión de registros"},"performance_warning":"Registrar advertencia de rendimiento"},"bittorrent":{"autoAddTrackers":"Agregar automáticamente estos trackers a las nuevas descargas","autoAddTrackersHint":"Un rastreador por línea","maxActiveCheckingTorrents":"Torrents máximos activos en verificación","privacy":{"enableAnonymous":"Activar modo anónimo","enableDHT":"Habilitar DHT (red descentralizada) para encontrar más pares","enableLPD":"Habilitar el Descubrimiento de Pares Locales para encontrar más pares","enablePeX":"Habilitar el Intercambio de Pares (PeX) para encontrar más pares","encryptionMode":"Modo de encriptación","moreInfo":"Más información","subheader":"Privacidad"},"seedLimits":{"subheader":"Límites de semillas","then":"Luego","whenInactiveSeedingTimeReaches":"Cuando el tiempo de siembra inactiva llega a","whenRatioReaches":"Cuando la relación alcance","whenSeedingTimeReaches":"Cuando el tiempo de siembra llega a"},"torrentQueueing":{"downloadRateLimit":"Umbral de velocidad de descarga","excludeSlowTorrent":"No contar los torrents lentos en estos límites","maxActiveDownload":"Descargas activas máximas","maxActiveTorrent":"Torrents máximos activos","maxActiveUpload":"Cargas activas máximas","subheader":"Cola de torrents","torrentInactivityTimer":"Temporizador de inactividad de torrentes","uploadRateLimit":"Umbral de velocidad de carga"}},"connection":{"connectionLimits":{"globalMaxConnection":"Número máximo global de conexiones","globalMaxUploadSlots":"Número máximo global de ranuras de carga","perTorrentMaxConnection":"Número máximo de conexiones por torrent","perTorrentMaxUploadSlots":"Número máximo de ranuras de carga por torrent","subheader":"Límites de conexión"},"ipFiltering":{"applyToTrackers":"Aplicar a rastreadores","bannedIps":"Direcciones IP prohibidas manualmente","bannedIpsHint":"Uno en cada línea","filterPath":"Ruta del filtro (.dat, .p2p, .p2b)","subheader":"Filtrado de IP"},"listeningPort":{"incomingConnectionPort":"Puerto utilizado para conexiones entrantes","randomPort":"Puerto aleatorio","subheader":"Puerto de escucha","useUPnP":"Usar el reenvío de puertos UPnP / NAT-PMP desde mi router"},"protocol":"Protocolo de conexión de pares","proxy":{"auth":{"password":"Contraseña","subtitle":"Autenticación","tip":"Información: La contraseña se guarda sin cifrar","username":"Usuario"},"bittorrent":"Usar proxy para fines de BitTorrent","host":"Anfitrión","hostNameLookup":"Usar proxy para la búsqueda de nombres de host","misc":"Usar proxy para propósitos generales","peerConnections":"Usar proxy para conexiones de pares","port":"Puerto","rss":"Usar proxy para fines de RSS","subheader":"Servidor Proxy"}},"downloads":{"excludedFileNames":{"hint":"Un filtro por línea","label":"Nombres de archivo excluidos"},"mailNotification":{"authEnabled":"Autenticación","enabled":"Notificación por correo electrónico al completar la descarga","from":"De","password":"Contraseña","smtpServer":"Servidor SMTP","sslEnabled":"Este servidor requiere una conexión segura (SSL)","to":"A","username":"Nombre de usuario"},"monitoredFolders":{"actions":"Acciones","confirmDelete":"¿Estás seguro de que deseas eliminar este elemento?","editItem":"Editar","monitoredFolderPath":"Carpeta Monitoreada","newItem":"Nuevo","noData":"Aún no hay carpetas monitoreadas","otherPath":"Otra ruta","saveType":"Sobrescribir ubicación de guardado","subheader":"Carpetas Monitoreadas"},"publicSettings":{"appendQBExtension":"Agregar extensión .!qB a archivos incompletos","preAllocateDisk":"Preasignar espacio en disco para todos los archivos"},"runExternalProgram":{"onAddedEnabled":"Ejecutar programa externo al agregar torrent","onAddedLabel":"Comando","onFinishedEnabled":"Ejecutar programa externo al finalizar torrent","onFinishedLabel":"Comando","subheader":"Ejecutar programa externo","supportParamC":"%C: Número de archivos","supportParamD":"%D: Ruta de guardado","supportParamF":"%F: Ruta del contenido (igual que la ruta raíz para torrents con múltiples archivos)","supportParamG":"%G: Etiquetas (separadas por coma)","supportParamI":"%I: Info hash v1","supportParamJ":"%J: Info hash v2","supportParamK":"%K: ID del torrent","supportParamL":"%L: Categoría","supportParamN":"%N: Nombre del torrent","supportParamR":"%R: Ruta raíz (ruta del primer subdirectorio del torrent)","supportParamT":"%T: Rastreador actual","supportParamTitle":"Parámetros soportados (sensible a mayúsculas y minúsculas):","supportParamZ":"%Z: Tamaño del torrent (bytes)","tip":"Consejo: Encapsula el parámetro con comillas para evitar que el texto se corte en espacios en blanco (por ejemplo, \\"%N\\")"},"saveManagement":{"autoTMMEnabled":"Modo de gestión de torrents predeterminado","categoryChangedTMM":"Cuando cambia la Ruta de Guardado de Categoría","defaultSavePath":"Ruta de Guardado Predeterminada (completa)","defaultTMMOptions":{"automatic":"Automático","manual":"Manual"},"exportDir":"Copiar archivos .torrent a","exportDirFinished":"Copiar archivos .torrent de descargas finalizadas a","keepIncomplete":"Ruta de descarga predeterminada (torrents incompletos)","paramChangedTMMOptions":{"relocateTorrent":"Mover torrent","switchToManual":"Cambiar torrent a modo manual"},"savePathChangedTMM":"Cuando cambia la Ruta de Guardado Predeterminada","subheader":"Gestión de Guardado","torrentChangedTMM":"Cuando cambia la categoría del torrent"},"whenAddTorrent":{"addToTopOfQueue":"Agregar al principio de la cola","autoDeleteMode":"Eliminar archivos .torrent después","doNotAutoStart":"No iniciar la descarga automáticamente","mergeTrackers":"Combinar trackers si el torrent ya existe","subheader":"Al agregar un torrente"}},"rss":{"autoDownloader":{"enable":"Habilitar el procesamiento de reglas RSS","subheader":"Descargador Automático de Torrents RSS"},"reader":{"enableProcessing":"Habilitar la obtención de feeds RSS","feedsRefreshInterval":"Intervalo de actualización de feeds","maximumArticlesPerFeed":"Número máximo de artículos por fuente","subheader":"Lector de RSS"},"smartEpisodeFilter":{"downloadEpisodes":"Descargar episodios REPACK/PROPER","filters":"Filtros","filtersHint":"Uno por línea","subheader":"Filtro inteligente de episodios RSS"},"useIdForRssLinks":"Usar ID para enlace de artículo RSS"},"saveSuccess":"¡Ajustes guardados!","speed":{"download":"Descargar","scheduler":{"from":"De","selectButtonLabel":"Seleccionar tiempo","subheader":"Programar el uso de límites de velocidad alternativos","to":"A","when":"Cuándo"},"settings":{"applyToPeersOnLan":"Aplicar límite de velocidad a pares en LAN","applyToTransportOverhead":"Aplicar límite de velocidad a la sobrecarga de transporte","applyToUtp":"Aplicar límite de velocidad al protocolo µTP"},"subheader":{"alternative":"Límites de velocidad alternativos","global":"Límites de velocidad globales","settings":"Configuración de límites de velocidad"},"tip":"0 significa ilimitado","upload":"Cargar"},"tabs":{"advanced":"Avanzado","behavior":"Comportamiento","bittorrent":"BitTorrent","connection":"Conexión","downloads":"Descargas","rss":"RSS","speed":"Velocidad","tagsAndCategories":"Etiquetas y Categorías","vuetorrent":{"general":"General","title":"VueTorrent","torrent_card":{"grid":"Vista de cuadrícula","list":"Vista de lista","table":"Vista de tabla"}},"webui":"Interfaz Web"},"tagsAndCategories":{"categoriesSubheader":"Categorías disponibles:","createNewCategory":"Crear nueva categoría","createNewTag":"Crear nueva etiqueta","noCategories":"Aún no hay categorías","noTags":"Sin etiquetas todavía","tagsSubheader":"Etiquetas disponibles:"},"title":"Ajustes","vuetorrent":{"general":{"check_new":"Buscar nueva versión","currentVersion":"Versión Actual","customTitle":"Título personalizado","dateFormat":"Formato de fecha","download":"Exportar configuración","fileContentInterval":"Intervalo de actualización de contenido de archivo torrent","hideChipIfUnset":"Ocultar chips si no están establecidos","historySize":"Tamaño del historial en campos elegibles","import":"Importar ajustes","isDrawerRight":"Cajón derecho","isShutdownButtonVisible":"Mostrar botón de apagado","language":"Idioma","paginationSize":{"infinite_scroll":"Desplazamiento infinito","label":"Tamaño de paginación","warning":"El uso de valores altos puede afectar el rendimiento"},"qbittorrentVersion":"Versión de qBittorrent","refreshInterval":"Intervalo de actualización de la API de qBittorrent","registerMagnet":"Registrar enlaces magnéticos","resetSettings":"Restablecer ajustes","showAlltimeStat":"Mostrar estadísticas de todos los tiempos","showCurrentSpeed":"Mostrar velocidad actual","showFreeSpace":"Mostrar espacio libre","showSessionStat":"Mostrar estadísticas de sesión","showSpeedGraph":"Mostrar gráfico de velocidad","tip":"Estas configuraciones son para la propia interfaz de usuario web personalizada","useBinarySize":"Reemplazar tamaños de datos por unidades binarias (kB -> KiB)","useBitSpeed":"Reemplazar los valores de velocidad por bits (kB/s -> kbps)","vueTorrentTitle":"Título de la pestaña"},"torrentCard":{"grid":{"busyTip":"Propiedades para mostrar de los torrents incompletos en la vista de cuadrícula","doneTip":"Propiedades para mostrar de los torrents completados en la vista de cuadrícula"},"list":{"busyTip":"Propiedades para mostrar de los torrents incompletos en la vista de lista","doneTip":"Propiedades para mostrar de los torrents completados en la vista de lista"},"table":{"tip":"Propiedades para mostrar de los torrents en la vista de tabla"}}},"webUI":{"authentication":{"banDuration":"Duración del bloqueo","banDurationHint":"En segundos","bypassLocalhost":"Omitir autenticación para clientes en localhost","bypassWhitelist":"Omitir autenticación para clientes en subredes de IP en lista blanca","maxAttempts":"Intentos máximos","password":"Contraseña","passwordPlaceholder":"(sin cambios)","sessionTimeout":"Tiempo de espera de sesión","sessionTimeoutHint":"En segundos","subheader":"Autenticación","username":"Usuario","whitelistExamples":"Ejemplo: 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"Agregar encabezados HTTP personalizados","customHeadersHint":"Uno por línea","customHeadersPlaceholder":"Encabezado1: valor1\\nEncabezado2: valor2\\n...","dynDns":{"domainName":"Nombre de dominio","password":"Contraseña","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"Registrar","subheader":"Actualizar mi nombre de dominio dinámico","username":"Usuario"},"https":{"certificate":"Certificado","key":"Clave","subheader":"Usar HTTPS","tip":"Información sobre certificados"},"interface":{"ipAddress":"Dirección IP","port":"Puerto","subheader":"Interfaz de Usuario Web","useAlternativeWebUI":"Usar interfaz web alternativa","useUPnP":"Usar el reenvío de puertos UPnP / NAT-PMP desde mi router"},"proxiesList":"Lista de proxies confiables","proxiesListHint":"Separar IPs con punto y coma (;) ","reverseProxySupport":"Habilitar soporte para proxy inverso","security":{"clickjacking":"Habilitar protección contra clickjacking","csrf":"Habilitar protección contra falsificación de solicitudes en sitios cruzados (CSRF)","hostHeaderValidation":"Habilitar validación de encabezado de host","hostHeaderValidationHint":"Separado por punto y coma (;) ","secureCookie":"Habilitar la bandera \\"segura\\" de las cookies (requiere HTTPS)","serverDomains":"Dominios del servidor","subheader":"Seguridad"}}}');
    lO = {
        add: {
            error: "Error al agregar torrents",
            pending: "Enviando torrents...",
            success: "{n} torrent agregado | {n} torrents agregados"
        },
        copy: {
            error: "¡No se puede copiar, el contexto no está asegurado!",
            success: "¡Copiado al portapapeles!"
        },
        magnet_handler: {
            not_supported: "El contexto actual no está seguro. No se puede registrar el controlador.",
            registered: "Manejador de imanes registrado."
        },
        qbit: {
            not_supported: "Solo disponible para qbit >= {version}"
        },
        version: {
            new: "¡Nueva versión disponible!"
        }
    };
    uO = {
        actions: {
            delete: "Eliminar Torrents",
            logs: "Abrir registros",
            pause: "Pausar Torrents",
            resume: "Reanudar Torrents",
            rssArticles: "Abrir artículos RSS",
            searchEngine: "Abrir motor de búsqueda",
            settings: "Abrir ajustes"
        },
        addTorrents: "Agregar Torrents",
        overflow: {
            delete: "Eliminar",
            logs: "Registros de qBittorrent",
            pause: "Pausar",
            resume: "Reanudar",
            rssArticles: "Artículos RSS",
            searchEngine: "Motor de búsqueda",
            settings: "Ajustes"
        },
        searchTorrents: "Buscar torrents"
    };
    cO = {
        content: {
            fileInfo: "{n} archivo | {n} archivos",
            filter_placeholder: "Buscar en el árbol de archivos",
            folderInfo: "{n} carpeta | {n} carpetas",
            priority: "Establecer prioridad",
            rename: {
                bulk: "Renombrar en masa",
                file: "Renombrar",
                folder: "Renombrar carpeta"
            },
            rootNode: "(Root)"
        },
        info: {
            boolean_values: "Valores booleanos",
            data_values: "Valores de datos",
            datetime_values: "Valores de fecha y hora",
            duration_values: "Valores de duración",
            long_text_values: "Valores de texto largos",
            speed_values: "Valores de velocidad",
            text_values: "Valores de texto"
        },
        overview: {
            canvasRefreshDisabled: "La actualización automática del lienzo está desactivada",
            canvasRenderDisabled: "La renderización del lienzo está desactivada",
            copy_hash: "Copiar Hash",
            dlSpeedAverage: "Velocidad de descarga promedio",
            downloaded: "Descargado",
            fetchingMetadata: "Obteniendo información...",
            fileCount: "Archivos seleccionados",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "Ratio",
            selectedFileSize: "Tamaño de archivos seleccionados",
            uploaded: "Subido",
            upSpeedAverage: "Velocidad de carga promedio",
            waitingForMetadata: "Esperando metadatos... "
        },
        peers: {
            addPeers: {
                newPeers: "Agregar hosts de pares",
                newPeersHint: "Uno por línea",
                newPeersPlaceholder: "host:puerto",
                title: "Agregar pares"
            },
            empty: "No hay pares conectados en este momento",
            fields: {
                client: "Cliente",
                download: "Descargar",
                flags: "Banderas",
                host: "Anfitrión",
                progress: "Progreso",
                relevance: "Relevancia",
                upload: "Cargar"
            }
        },
        tabs: {
            content: "Contenido",
            info: "Información",
            overview: "Resumen",
            peers: "Pares",
            tagsAndCategories: "Etiquetas y Categorías",
            trackers: "Rastreadores"
        },
        tagsAndCategories: {
            categories: "Categorías",
            tags: "Etiquetas"
        },
        title: "Detalle del Torrent",
        trackers: {
            addTrackers: {
                newTrackers: "URLs de rastreadores para agregar",
                newTrackersHint: "Uno por línea, separa los niveles con una línea vacía",
                title: "Agregar rastreadores"
            },
            editTracker: {
                newUrl: "Nueva URL",
                newUrlRequired: "Se requiere una nueva URL",
                oldUrl: "URL antigua",
                title: "Editar rastreador"
            },
            fields: {
                num_downloaded: "Descargado",
                num_peers: "Pares",
                num_seeds: "Semillas"
            },
            reannounce: "Reanunciar todo",
            tier: "Nivel: {n}"
        }
    };
    dO = {
        properties: {
            added_on: "Añadido el",
            amount_left: "Cantidad Restante",
            auto_tmm: "Gestión Automática de Torrents",
            availability: "Disponibilidad",
            available_peers: "Pares (enjambre)",
            available_seeds: "Semillas (enjambre)",
            avg_download_speed: "Velocidad de descarga promedio",
            avg_upload_speed: "Velocidad de carga promedio",
            category: "Categoría",
            comment: "Comentario",
            completed_on: "Completado el",
            content_path: "Ruta de contenido",
            created_by: "Creado por",
            creation_date: "Fecha de Creación",
            downloaded: "Descargado (global)",
            downloaded_session: "Descargado (sesión)",
            download_limit: "Límite de descarga",
            download_path: "Ruta de descarga",
            download_speed: "Velocidad de descarga",
            empty_category: "(sin categoría)",
            empty_tags: "(sin etiquetas)",
            empty_tracker: "(sin rastreador)",
            eta: "ETA",
            f_l_piece_prio: "Prioridad de la primera/última pieza",
            forced: "Estado forzado",
            global_speed: "Velocidad global",
            global_volume: "Volumen Global",
            hash: "Hash",
            inactive_seeding_time_limit: "Límite de tiempo de siembra inactiva",
            infohash_v1: "Infohash v1",
            infohash_v2: "Infohash v2",
            is_private: "Torrent privado",
            last_activity: "Actividad Reciente",
            magnet: "Enlace de imán",
            name: "Título del Torrent",
            nb_connections: "Conexiones totales",
            nb_connections_limit: "Límite de conexiones",
            num_leechs: "Pares (conectados)",
            num_seeds: "Semillas (conectadas)",
            peers: "Pares",
            priority: "Prioridad",
            progress: "Progreso",
            progress_bar: "Barra de progreso",
            ratio: "Ratio",
            ratio_limit: "Límite de ratio",
            reannounce: "Próximo reanuncio en",
            save_path: "Ruta de guardado",
            seeding_time: "Tiempo de siembra",
            seeding_time_limit: "Límite de tiempo de siembra",
            seeds: "Semillas",
            seen_complete: "Visto completo",
            seq_dl: "Descarga secuencial",
            size: "Tamaño",
            state: "Estado",
            super_seeding: "Modo de Super Siembra",
            tags: "Etiquetas",
            time_active: "Tiempo Activo",
            total_size: "Tamaño total",
            total_wasted: "Datos desperdiciados",
            tracker: "Rastreador",
            trackers_count: "Conteo de rastreadores",
            uploaded: "Subido (global)",
            uploaded_session: "Subido (sesión)",
            upload_limit: "Límite de carga",
            upload_speed: "Velocidad de carga"
        },
        state: {
            checking_resume_data: "Comprobando datos de reanudación",
            dl_forced: "[F] Descargando",
            dl_queued: "En cola (descarga)",
            dl_stalled: "Detenido",
            downloading: "Descargando",
            error: "Error",
            meta_download: "Metadatos",
            missing_files: "Archivos faltantes",
            moving: "Moviendo",
            ul_forced: "[F] Subiendo",
            ul_queued: "En cola (Subiendo)",
            ul_stalled: "Sembrando",
            unknown: "Desconocido",
            uploading: "Subiendo"
        }
    };
    hO = {
        minutes: "minuto | minuto | minutos",
        seconds: "segundo | segundos | segundos"
    };
    mO = {
        common: ZN,
        constants: QN,
        dashboard: eO,
        dialogs: tO,
        login: aO,
        logs: rO,
        navbar: nO,
        rssArticles: iO,
        searchEngine: oO,
        settings: sO,
        toast: lO,
        topbar: uO,
        torrentDetail: cO,
        torrent: dO,
        units: hO
    };
    fO = "Contenu généré par l'application Tolgee. NE JAMAIS MODIFIER MANUELLEMENT CAR CE SERA ÉCRASÉ";
    pO = {
        cancel: "Annuler",
        close: "Fermer",
        delete: "Supprimer",
        disable: "Désactiver",
        disabled: "Désactivé",
        edit: "Modifier",
        emptyList: "Rien à voir ici !",
        global_value: "Valeur globale",
        NA: "N/A",
        no: "Non",
        none: "(Aucun)",
        ok: "OK",
        pause: "Pause",
        refresh: "Rafraîchir",
        resume: "Reprendre",
        save: "Enregistrer",
        search: "Rechercher",
        selectAll: "Tout sélectionner",
        selectNone: "Tout désélectionner",
        useGlobalSettings: "Utiliser les paramètres globaux",
        yes: "Oui"
    };
    gO = {
        addStopped: {
            always: "Toujours",
            never: "Jamais",
            title: "Ajouter en pause"
        },
        auto_delete_mode: {
            always: "Toujours",
            never: "Jamais"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP et µTP",
            utp: "µTP"
        },
        connectionStatus: {
            connected: "Connecté",
            disconnected: "Déconnecté",
            firewalled: "Protégé",
            unknown: "Inconnu"
        },
        contentLayout: {
            nosubfolder: "Supprimer le sous-dossier",
            original: "Original",
            subfolder: "Créer un sous-dossier",
            title: "Agencement du contenu du torrent"
        },
        diskIoMode: {
            disableOsCache: "Désactiver le cache du système d’exploitation",
            enableOsCache: "Activer le cache du système d’exploitation",
            writeThrough: "Double écriture (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "Par défaut",
            memoryMappedFiles: "Fichiers mappés en mémoire",
            posixCompliant: "Compatible POSIX"
        },
        encryption: {
            forceOff: "Désactiver le chiffrement",
            forceOn: "Exiger le chiffrement",
            preferEncryption: "Autoriser le chiffrement"
        },
        file_log_age_type: {
            days: "Jour | Jour | Jours",
            months: "Mois | Mois | Mois",
            years: "Année | Année | Années"
        },
        file_priority: {
            high: "Haute",
            max: "Maximale",
            mixed: "Mixte",
            normal: "Normale",
            unwanted: "Ignoré"
        },
        filter_type: {
            conjunctive: "Filtrage conjonctif (ET)",
            disjunctive: "Filtrage disjonctif (OU)"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Répertoire de destination par défaut",
            monitoredFolder: "Emplacement du dossier surveillé",
            other: "Autre"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Tous les jours",
            everyFriday: "Tous les vendredis",
            everyMonday: "Tous les lundis",
            everySaturday: "Tous les samedis",
            everySunday: "Tous les dimanches",
            everyThursday: "Tous les jeudis",
            everyTuesday: "Tous les mardis",
            everyWednesday: "Tous les mercredis",
            everyWeekday: "Tous les jours de la semaine",
            everyWeekend: "Tous les week-ends"
        },
        shareLimitAction: {
            removeTorrent: "Supprimer le torrent",
            removeTorrentAndFiles: "Supprimer le torrent et ses fichiers",
            stopTorrent: "Suspendre le torrent",
            torrentSuperseeding: "Activer le super partage pour ce torrent"
        },
        stopCondition: {
            filesChecked: "Fichiers vérifiés",
            metadataReceived: "Métadonnées reçues",
            none: "Aucun",
            title: "Condition d'arrêt du torrent"
        },
        themes: {
            dark: {
                legacy: "Ancien",
                redesigned: "Repensé"
            },
            light: {
                legacy: "Ancien",
                redesigned: "Repensé"
            }
        },
        titleOptions: {
            custom: "Personnalisé",
            default: "Par défaut",
            first_torrent_speed: "Vitesse du premier torrent",
            global_speed: "Vitesse globale"
        },
        torrentContentRemovingMode: {
            delete: "Supprimer les fichiers définitivement",
            moveToTrash: "Déplacer les fichiers vers la corbeille (si possible)"
        },
        trackerStatus: {
            disabled: "Désactivé",
            not_working: "Ne fonctionne pas",
            not_yet_contacted: "Pas encore contacté",
            updating: "Mise à jour...",
            working: "Fonctionne"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-leech",
            fastestUpload: "Partage le plus rapide",
            roundRobin: "Répartition de charge"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Emplacements fixes",
            uploadRateBased: "Basé sur la vitesse d'envoi"
        },
        utpTcpMixedMode: {
            peerProportional: "Proportionnel par pair (limite les connexions TCP)",
            preferTcp: "Préférer TCP"
        }
    };
    vO = {
        displayMode: {
            grid: "Grille",
            list: "Liste",
            table: "Tableau",
            title: "Mode d'affichage"
        },
        not_complete: "Jamais vu complété",
        right_click: {
            advanced: {
                auto_tmm: "Gestion de torrent automatique",
                download_path: "Définir le chemin de téléchargement",
                f_l_prio: "Priorité aux premiers / derniers",
                reannounce: "Réannoncer",
                recheck: "Forcer la revérification",
                rename: "Renommer le torrent",
                save_path: "Définir le répertoire de destination",
                seq_dl: "Téléchargement séquentiel",
                title: "Avancé"
            },
            category: {
                clear: "(Effacer la catégorie)",
                disabled_title: "Aucune catégorie",
                title: "Définir la catégorie"
            },
            copy: {
                comment: "Commentaire",
                hash: "Hash",
                magnet: "Magnet",
                name: "Nom",
                title: "Copier"
            },
            export: "Exporter le torrent | Exporter les torrents",
            info: "Afficher les informations",
            priority: {
                bottom: "Priorité minimale",
                decrease: "Baisser la priorité",
                increase: "Augmenter la priorité",
                title: "Définir la priorité",
                top: "Priorité maximale"
            },
            speed_limit: {
                download: "Définir la limite de téléchargement",
                share: "Définir la limite de partage",
                title: "Définir la vitesse limite",
                upload: "Définir la limite d'envoi"
            },
            tags: {
                clear_all: "Enlever tout",
                disabled_title: "Aucune étiquette",
                title: "Définir les étiquettes"
            },
            top: {
                delete: "Supprimer",
                force_resume: "Reprendre (forcé)",
                pause: "Pause",
                resume: "Reprendre"
            }
        },
        searchInputLabel: "Rechercher",
        selectAll: "Tout (dé)sélectionner (Ctrl + A)",
        selectedTorrentsCount: "Aucun torrent | {count} sur {total} torrent ({size}) | {count} sur {total} torrents ({size})",
        sortLabel: "Trier par",
        toggleSearchFilter: "(Dés)activer le filtre de recherche",
        toggleSelectMode: "(Dés)activer le mode sélection",
        toggleSortOrder: "Inverser l'order de tri",
        torrentsCount: "Aucun torrent | {n} torrent | {n} torrents"
    };
    yO = {
        add: {
            cookie: "Cookies",
            cookie_placeholder: "nom1=valeur1; nom2=valeur2; ...",
            drop_label: "Ajouter des fichiers torrent et/ou des liens à la file d'attente",
            file_overflow: "+{n} de plus",
            files: "Selectionner les fichiers",
            first_last_piece_prio: "Prioriser la première / dernière pièce",
            instant_drop_label: "Télécharger instantanément des fichiers torrent et/ou des liens",
            links: "Liens (magnet, http, fichier, ...)",
            params: {
                add_to_top_of_queue: "Ajouter en haut de la file d'attente",
                category: "Catégorie",
                download_limit: "Limite de téléchargement",
                download_path: "Chemin de téléchargement (incomplet)",
                inactive_seeding_time_limit: "Limite du temps de seed inactif",
                limit_collapse: "Configurer les limites",
                limit_hint: "-1 pour désactiver, -2 ou vide pour utiliser la valeur globale",
                no_categories: "Aucune catégorie pour le moment. Entrez un nom pour en créer une.",
                no_categories_match: 'Aucune catégorie ne correspond à "{query}". Elle sera créée automatiquement.',
                no_tags: "Aucune étiquette pour le moment. Entrez un nom pour en créer une.",
                no_tags_match: 'Aucune étiquette ne correspond à "{query}". Appuyez sur Entrée pour la créer.',
                ratio_limit: "Limite du ratio",
                save_path: "Répertoire de destination (complet)",
                seeding_time_limit: "Limite du temps de seed",
                skip_checking: "Passer la vérification du hash",
                stopped: "Ne pas lancer le téléchargement",
                tags: "Étiquettes",
                title: "Paramètres de torrent",
                upload_limit: "Limite d'envoi",
                use_auto_tmm: "Gestion automatique du torrent"
            },
            rename: "Renommer le torrent",
            reset_form: "Réinitialiser le formulaire",
            sequential_download: "Téléchargement séquentiel",
            submit: "Ajouter des torrents",
            title: "Ajouter des torrents"
        },
        bulkRenameFiles: {
            col_origin_name: "Original",
            col_result_name: "Résultat",
            duplicated: "Nom de fichier en double",
            flags: "Drapeaux",
            fold: "Réduire",
            not_changed: "Nom de fichier non modifié",
            notForFolder: "Renommage de dossier non pris en charge",
            nothing_to_do: "Aucune tâche à faire",
            regexp: "Expression régulière",
            run: "Exécuter",
            select_regex_flags: "Sélectionner les drapeaux d'expression régulière",
            success: "Renommage réussi",
            target: "Entrée de remplacement",
            title: "Renommer en masse",
            unfold: "Développer"
        },
        category: {
            name: "Nom de la catégorie",
            nameRequired: "Le nom de la catégorie est requis",
            oldName: "Ancien nom de la catégorie",
            savePath: "Répertoire de destination",
            title: {
                create: "Créer une catégorie",
                edit: "Modifier la catégorie"
            },
            warnEdit: "Modifier le nom de la catégorie va migrer les torrents vers la nouvelle catégorie. Des erreurs peuvent survenir, à utiliser avec précaution."
        },
        connectionStatus: {
            dht_nodes: "Nœuds DHT",
            externalIp: "Adresse IP externe",
            fetch_geo_failed: "Impossible de récupérer les informations de géolocalisation",
            fetch_isp_failed: "Impossible de récupérer les informations du FAI",
            geo_details: "Informations de géolocalisation",
            isp_details: "Informations du FAI",
            noExternalIp: "Impossible de détecter à partir des logs",
            status: "Statut de connexion",
            total_peer_connections: "Connexions entre pairs actives"
        },
        delete: {
            deleteWithFiles: "Supprimer le torrent et son contenu",
            title: "Supprimer {n} torrent | Supprimer {n} torrents",
            warnDelete: "En cochant cette case, tout ce qui est contenu dans ces torrents sera supprimé."
        },
        importSettings: {
            required: "Le champ est requis",
            title: "Importer les paramètres",
            valid: "Veuillez fournir des paramètres valides"
        },
        moveTorrent: {
            dl: {
                title: "Changer le chemin de téléchargement"
            },
            newPath: "Nouveau chemin",
            oldPath: "Ancien chemin",
            required: "Un nouveau chemin est requis",
            samePath: "Le nouveau chemin doit être différent de l'ancien",
            save: {
                title: "Modifier le répertoire de destination"
            }
        },
        moveTorrentFile: {
            oldName: "Ancien nom",
            title: "Déplacer un fichier | Déplacer un dossier"
        },
        pluginManager: {
            headers: {
                actions: "Actions",
                enabled: "Activé",
                name: "Nom",
                url: "URL du moteur",
                version: "Version"
            },
            install: {
                activator: "Installer des nouveaux plugins",
                label: "URL du plugin",
                title: "Installer un plugin"
            },
            title: "Gestionnaire de plugins",
            update: "Mettre à jour les plugins"
        },
        renameTorrent: {
            newName: "Nouveau nom",
            oldName: "Ancien nom",
            required: "Un nouveau nom est requis",
            sameName: "Le nouveau nom doit être différent de l'ancien",
            title: "Renommer le torrent"
        },
        rss: {
            feed: {
                name: "Nom",
                rules: {
                    name_required: "Le nom du flux est requis",
                    url_required: "L'URL du flux est requis"
                },
                title: {
                    create: "Créer un flux RSS",
                    edit: "Modifier un flux RSS"
                },
                url: "URL"
            },
            rule: {
                affectedFeedsSubheader: "Flux affectés",
                assignedCategory: "Catégorie attribuée",
                enabled: "Activer la règle",
                episodeFilter: "Filtre d'épisode",
                episodeFilterPlaceholder: "ex: S01E02-S01E05",
                ignoreDays: "Ignorer les élements publiées dans les {days} derniers jours",
                ignoreDaysHint: "0 pour désactiver",
                lastMatch: {
                    knownValue: "aujourd'hui | il y a {n} jour | il y a {n} jours",
                    label: "Dernière correspondance",
                    unknownValue: "Inconnu"
                },
                matchingArticles: {
                    noMatch: "Aucun article correspondant",
                    title: "Articles correspondants"
                },
                mustContain: "Doit contenir",
                mustNotContain: "Ne doit pas contenir",
                name: "Nom",
                savePath: "Répertoire de destination",
                savePathPlaceholder: "Laisser vide pour utiliser le répertoire de destination par défaut",
                smartFilter: "Utiliser le filtre d'épisode intelligent",
                title: {
                    create: "Créer une règle RSS",
                    edit: "Modifier une règle RSS"
                },
                useRegex: "Utiliser une expression régulière (regex)"
            }
        },
        share_limit: {
            disabled: "Ne pas fixer de limite de partage",
            enabled: "Fixer la limite de partage à",
            global: "Utiliser la limite de partage globale",
            inactive_seeding_time_limit: "Minutes d'inactivité",
            ratio_limit: "Ratio",
            seeding_time_limit: "Minutes totales",
            title: "Fixer la limite du ratio"
        },
        shutdown: {
            content: "Voulez-vous vraiment arrêter qBittorrent ?",
            error: "Impossible d'éteindre l'app. Assurez-vous que qBittorrent soit en cours d'exécution !",
            success: "qBittorrent a été arrêté avec succès!",
            title: "Arrêter qBittorrent"
        },
        speed_limit: {
            download: "Définir la limite de vitesse de téléchargement",
            label: "Limite de vitesse",
            upload: "Définir la limite de vitesse d'envoi"
        },
        tag: {
            comma: "Le nom ne peut pas contenir de virgule pendant la modification d'un tag",
            hint: "Conseil: plusieurs étiquettes peuvent être créées en les séparant par une virgule",
            name: "Nom de l'étiquette",
            oldName: "Ancien nom de l'étiquette",
            required: "Le nom de l'étiquette est requis",
            title: {
                create: "Créer une étiquette",
                rename: "Renommer l'étiquette"
            },
            warnEdit: `Modifier le nom de l'étiquette va migrer les torrents vers la nouvelle étiquette.
Des erreurs peuvent survenir, à utiliser avec précaution.`
        }
    };
    bO = {
        error: "Echec de la connexion !",
        password: "Mot de passe",
        rules: {
            password_required: "Le mot de passe est requis",
            username_required: "Le nom d'utilisateur est requis"
        },
        submit: "Se connecter",
        subtitle: "Entrez vos identifiants",
        success: "Connexion réussie !",
        title: "Connexion",
        username: "Nom d'utilisateur"
    };
    FO = {
        emptyLogList: "Aucun logs trouvés",
        filters: {
            query: "Rechercher dans le corps des logs",
            type: "Niveau de journalisation"
        },
        title: "Logs de qBittorrent"
    };
    kO = {
        addPanel: {
            torrentsPendingCount: "{n} torrent en attente d'ajout | {n} torrents en attente d'ajout"
        },
        side: {
            bottom_actions: {
                alt_speed: "(Dés)activer les vitesses alternatives",
                conn_status: "Statut de connexion : {status}",
                logout: "Déconnexion",
                shutdown: "Arrêter qBittorrent"
            },
            current_speed: {
                title: "Vitesse actuelle"
            },
            filters: {
                activeFilter: "{n} filtres actifs",
                category: {
                    empty: "(Non catégorisé)",
                    title: "Filtrer par catégorie"
                },
                disabled: "(Désactivé)",
                state: {
                    active: "Activer",
                    error: "Erreur",
                    offline: "Hors ligne",
                    title: "Filtrer par statut du torrent"
                },
                tag: {
                    empty: "(Aucune étiquette)",
                    title: "Filtrer par tags"
                },
                tracker: {
                    empty: "(Non-tracké)",
                    title: "Filtrer par tracker"
                }
            },
            speed_graph: {
                download_label: "Téléchargement",
                download_limit_label: "Limite de téléchargement",
                upload_label: "Envoi",
                upload_limit_label: "Limite d'envoi"
            },
            stats: {
                alltime: {
                    title: "Statistiques globales"
                },
                downloaded: "Téléchargé",
                free_space: "Espace libre",
                ratio: "Ratio",
                session: {
                    title: "Statistiques de la session"
                },
                uploaded: "Envoyé"
            }
        },
        top: {
            active_filters: {
                category: "Filtre par catégorie: {value}",
                menu_label: "{n} filtre actifs | {n} filtres actifs",
                multiple_category: "Filtre par catégorie: {value} catégories",
                multiple_state: "Filtre de statut: {n} statuts",
                multiple_tag: "Filtre par étiquettes : {n} étiquettes",
                multiple_tracker: "Filtre de tracker : {n} trackers",
                state: "Filtre de statut: {n}",
                tag: "Filtre du tag : {value}",
                text: "Filtre de texte : {value}",
                tracker: "Filtre de tracker : {value}"
            }
        }
    };
    xO = {
        feeds: {
            empty: {
                action: "Créer un flux RSS",
                value: "Aucun flux RSS enregistré"
            },
            filters: {
                title: "Filtre de titre",
                unread: "Montrer uniquement les articles non-lu"
            },
            item: {
                author: "Auteur: {author}",
                category: "Categorie : {category}",
                feedName: "Nom du flux: {name}"
            },
            markAllAsRead: "Marquer tout comme lu",
            markAsRead: "Marquer comme lu",
            promise: {
                error: "Une error s'est produite lors du marquage des articles",
                pending: "Marquage en cours...",
                success: "{n} articles marqués comme lus"
            },
            refreshAllFeeds: "Rafraîchir tous les flux",
            refreshPromise: {
                error: "Une erreur s'est produite lors de l'actualisation des flux",
                pending: "Rafraîchissement en cours...",
                success: "{n} flux rafraîchis"
            },
            title: "Articles RSS"
        },
        rules: {
            empty: {
                action: "Créer une règle RSS",
                value: "Aucune règle RSS enregistrée"
            },
            title: "Règles RSS"
        },
        toggle: {
            feeds: "Afficher les flux",
            rules: "Afficher les règles"
        }
    };
    wO = {
        filters: {
            category: {
                all: "Tout",
                anime: "Anime",
                books: "Livres",
                games: "Jeux",
                label: "Catégorie de recherche",
                movies: "Films",
                music: "Musique",
                pictures: "Images",
                software: "Logiciels",
                tv: "TV"
            },
            plugins: {
                all: "Tout",
                enabled: "Activé",
                label: "Plugin de recherche"
            },
            title: {
                label: "Filtrer par titre"
            }
        },
        headers: {
            fileName: "Nom de fichier",
            fileSize: "Taille du fichier",
            nbLeechers: "Leechers",
            nbSeeders: "Partageurs",
            siteUrl: "URL du site"
        },
        query: "Requête de recherche",
        runSearch: "Rechercher",
        stopSearch: "Arrêter",
        tabHeaderEmpty: "(Requête vide)",
        title: "Moteur de recherche"
    };
    SO = JSON.parse(`{"addons":{"enhanced_edition":{"auto_ban_bt_player_peer":"Bannir automatiquement le pair du lecteur BT","auto_ban_unknown_peer":"Bannir automatiquement les pairs inconnus","auto_update_trackers":"Mettre à jour automatiquement la liste des trackers publics","public_trackers":"Trackers publics","trackers_list_url":"Personnaliser la liste des URL des trackers"}},"advanced":{"libtorrent":{"announceAllTiers":"Toujours annoncer à tous les tiers","announceAllTrackers":"Toujours annoncer à tous les trackers du même tier","announceIP":"Adresse IP rapportée aux trackers (redémarrage nécessaire)","coalesceReadsWrites":"Fusionner les lectures et écritures (libtorrent < 2.0)","disk":{"diskCache":"Cache disque (libtorrent < 2.0)","diskCacheExpiry":"Intervalle d'expiration du cache disque (libtorrent < 2.0)","diskIoReadMode":"Mode de lecture des E/S du disque","diskIoType":"Type d'E/S du disque (libtorrent >= 2.0 ; nécessite un redémarrage)","diskIoWriteMode":"Mode d'écriture des E/S du disque","diskQueueSize":"Taille de la file d'attente du disque","subheader":"Disque"},"maxConcurrentHTTPAnnounces":"Annonces HTTP concurrentes max","networking":{"outgoingPortsMax":"Ports sortants (Max) [0 : Désactivé]","outgoingPortsMin":"Ports sortants (Min) [0 : Désactivé]","peerTos":"Valuer DSCP pour la connexion aux pairs","subheader":"Réseau","upnpLeaseDuration":"Durée du bail UPnP [0: bail permanent]","utpTcpMixedModeAlgorithm":"Algorithme mixte μTP-TCP"},"outgoingConnectionsPerSecond":"Connexions sortantes par seconde","peerTurnover":"Pourcentage de déconnexion des pairs","peerTurnoverCutoff":"Pourcentage du seuil de rotation des pairs","peerTurnoverInterval":"Intervalle de déconnexion de la rotation des pairs","pieceExtentAffinity":"Utiliser l'affinité par extension de morceau","requestQueueSize":"Nombre maximal de demandes en attente adressées à un seul pair","security":{"allowMultipleConnectionsFromTheSameIPAddress":"Autoriser plusieurs connexions venant de la même adresse IP","blockPeersOnPrivilegedPorts":"Interdire la connexion à des pairs sur des ports privilégiés","idnSupport":"Activer la prise en charge des noms de domaine internationalisés (IDN)","mitigateSSRF":"Atténuation de la falsification des demandes côté serveur (SSRF)","subheader":"Sécurité","validateHTTPSTrackerCertificate":"Valider le certificat HTTPS du tracker"},"sendBufferLowWatermark":"Envoi du filigrane bas de la mémoire tampon","sendBufferWatermark":"Envoi du filigrane de la mémoire tampon","sendBufferWatermarkFactor":"Envoi du facteur de filigrane de la mémoire tampon","sendUploadPieceSuggestions":"Envoyer des suggestions de pièces à télécharger","socketBacklogSize":"Taille de l'arriéré de prises","socketReceiveBufferSize":"Taille de la mémoire tampon de réception du socket","socketReceiveBufferSizeHint":"0 : valeur par défaut du système","socketSendBufferSize":"Taille de la mémoire tampon d'envoi du socket","socketSendBufferSizeHint":"0 : valeur par défaut du système","ssl":{"rule":"Le port doit être compris entre 0 et 65535"},"stopTrackerTimeout":"Délai d'attente lors de l’arrêt du tracker","subheader":"Section libtorrent","threads":{"asyncIoThreads":"Threads d'E/S asynchrones","bdecodeDepthLimit":"Limite de profondeur Bdecode","bdecodeTokenLimit":"Limite de jeton Bdecode","filePoolSize":"Taille de la pool de fichiers","hashingThreads":"Fils de hachage (libtorrent >= 2.0)","outstandingMemory":"Mémoire exceptionnelle lors de la vérification des torrents","subheader":"Threads"},"uploadChokingAlgorithm":"Télécharger l'algorithme d'étouffement","uploadSlotsBehavior":"Comportement des créneaux de téléchargement"},"openDoc":"Ouvrir la documentation","qbittorrent":{"allocatedRam":"Limite d'utilisation de la mémoire vive (RAM) (libtorrent >= 2.0)","embeddedTracker":{"enable":"Activer le tracker embarqué","port":"Port du tracker embarqué","portForward":"Activer la redirection de port pour le tracker embarqué","title":"Tracker embarqué"},"enableMarkOfTheWebHint":"Nécessite macOS ou Windows","networking":{"ipAddress":{"all":"Toutes les adresses","allIPv4":"Toutes les adresses IPv4","allIPv6":"Toutes les adresses IPv6","label":"Adresse IP facultative à laquelle se lier"},"networkInterfaces":{"any":"N'importe quelle interface","label":"Interface réseau"},"title":"Réseau"},"reannounceOnIpPortChanged":"Annoncer à tous les trackers lorsque l'IP ou le port est modifié","recheckOnCompletion":"Revérifier les torrents à la fin","refreshInterval":"Intervalle de rafraîchissement de l'interface graphique","resolveCountries":"Résoudre les pays des pairs","resumeDataStorageType":{"label":"Type de stockage des données de reprise (nécessite un redémarrage)","legacy":"Fichiers fastresume","sqlite":"Base de données SQLite (expérimental)"},"saveInterval":"Intervalle de sauvegarde des données de reprise","subheader":"Section qBittorrent","torrentFileSizeLimit":"Limite de taille des fichiers .torrent"}},"behavior":{"logs":{"file_log_age":"Supprimer les archives des logs plus anciennes que","file_log_backup_enabled":"Activer l'archivage des fichiers de log","file_log_delete_old":"Supprimer les anciennes archives des logs","file_log_enabled":"Activer les fichiers de log","file_log_max_size":"Archiver les fichiers de log après","file_log_path":"Répertoire de destination","subheader":"Gestion des logs"},"performance_warning":"Loguer les avertissements de performance"},"bittorrent":{"autoAddTrackers":"Ajouter automatiquement ces trackers aux nouveaux téléchargements","autoAddTrackersHint":"Un tracker par ligne","maxActiveCheckingTorrents":"Nombre maximum de torrents en vérification actifs","privacy":{"enableAnonymous":"Activer le mode anonyme","enableDHT":"Activer le DHT (réseau décentralisé) pour trouver plus de pairs","enableLPD":"Activer la découverte de pairs locaux pour trouver plus de pairs","enablePeX":"Activer l'échange de pairs (PeX) pour trouver plus de pairs","encryptionMode":"Mode de chiffrage","moreInfo":"Plus d'informations","subheader":"Confidentialité"},"seedLimits":{"subheader":"Limites de seed","then":"Alors","whenInactiveSeedingTimeReaches":"Lorsque le temps de seed inactif atteint","whenRatioReaches":"Lorsque le ratio atteint","whenSeedingTimeReaches":"Lorsque le temps de seed atteint"},"torrentQueueing":{"downloadRateLimit":"Seuil du débit de téléchargement","excludeSlowTorrent":"Ne comptez pas les torrents lents dans ces limites.","maxActiveDownload":"Nombre maximum de téléchargements actifs","maxActiveTorrent":"Nombre maximum de torrents actifs","maxActiveUpload":"Nombre maximum d'envois actifs","subheader":"Mise en file d'attente des torrents","torrentInactivityTimer":"Minuterie d'inactivité des torrents","uploadRateLimit":"Seuil du taux de téléchargement"}},"connection":{"connectionLimits":{"globalMaxConnection":"Nombre maximum global de connexions","globalMaxUploadSlots":"Nombre maximum global d'emplacements d'envoi","perTorrentMaxConnection":"Nombre maximum de connexions par torrent","perTorrentMaxUploadSlots":"Nombre maximum d'emplacements d'envoi par torrent","subheader":"Limites de connexion"},"i2p":{"port":"Port"},"ipFiltering":{"applyToTrackers":"Appliquer aux trackers","bannedIps":"Adresses IP bannies manuellement","bannedIpsHint":"Un sur chaque ligne","filterPath":"Chemin filtrés (.dat, .p2p, .p2b)","subheader":"Filtrage d'IP"},"listeningPort":{"incomingConnectionPort":"Port utilisé pour les connexions entrantes","randomPort":"Port aléatoire","subheader":"Port d'écoute","useUPnP":"Utiliser la redirection de port UPnP / NAT-PMP de mon routeur"},"protocol":"Protocole de connexion entre pairs","proxy":{"auth":{"password":"Mot de passe","subtitle":"Authentification","tip":"Info : Le mot de passe est enregistré en clair","username":"Nom d'utilisateur"},"bittorrent":"Utiliser un proxy pour BitTorrent","host":"Hôte","hostNameLookup":"Utiliser un proxy pour la résolution des noms d'hôtes","misc":"Utiliser un proxy à des fins générales","peerConnections":"Utiliser un proxy pour les connexions entre pairs","port":"Port","rss":"Utiliser un proxy pour les flux RSS","subheader":"Serveur Proxy"}},"downloads":{"excludedFileNames":{"hint":"Un filtre par ligne","label":"Exclusion des noms de fichiers"},"mailNotification":{"authEnabled":"Authentification","enabled":"Notification par courrier électronique à la fin du téléchargement","from":"De","password":"Mot de passe","smtpServer":"Serveur SMTP","sslEnabled":"Ce serveur nécessite une connexion sécurisée (SSL)","test":{"label":"Envoyer un email de test"},"to":"Pour","username":"Nom d'utilisateur"},"monitoredFolders":{"actions":"Actions","confirmDelete":"Êtes-vous sûr de vouloir supprimer cet élément ?","editItem":"Modifier","monitoredFolderPath":"Dossier surveillé","newItem":"Nouveau","noData":"Pas encore de dossier surveillé","otherPath":"Autre chemin","saveType":"Remplacer l'emplacement de sauvegarde","subheader":"Dossiers surveillés"},"publicSettings":{"appendQBExtension":"Ajouter l'extension .!qB aux fichiers incomplets","preAllocateDisk":"Pré-allouer l'espace disque pour les fichiers"},"runExternalProgram":{"onAddedEnabled":"Exécuter un programme externe à l'ajout d'un torrent","onAddedLabel":"Commande","onFinishedEnabled":"Exécuter un programme externe sur le torrent terminé","onFinishedLabel":"Commande","subheader":"Exécuter un programme externe","supportParamC":"%C : Nombre de fichiers","supportParamD":"%D : Répertoire de destination","supportParamF":"%F : Chemin du contenu (identique à la racine pour les torrents multi-fichiers)","supportParamG":"%G : Étiquettes (séparées par une virgule)","supportParamI":"%I: Info hash v1","supportParamJ":"%J : Info hash v2","supportParamK":"%K : ID du torrent","supportParamL":"%L : Catégorie","supportParamN":"%N : Nom du torrent","supportParamR":"%R : Racine du chemin (chemin du premier sous-répertoire du torrent)","supportParamT":"%T : Tracker actuel","supportParamTitle":"Paramètres pris en charge (sensibles à la casse) :","supportParamZ":"%Z : Taille du torrent (octets)","tip":"Conseil : Encapsulez le paramètre avec des guillemets pour éviter que le texte ne soit coupé aux espaces (par exemple, \\"%N\\")."},"saveManagement":{"autoTMMEnabled":"Mode de gestion des torrents par défaut","categoryChangedTMM":"Lorsque le répertoire de destination de la catégorie est modifié","defaultSavePath":"Répertoire de destination par défaut (complet)","defaultTMMOptions":{"automatic":"Automatique","manual":"Manuel"},"exportDir":"Copier les fichiers .torrent vers","exportDirFinished":"Copier les fichiers .torrent pour les téléchargements terminés vers","keepIncomplete":"Chemin de téléchargement par défaut (incomplet)","paramChangedTMMOptions":{"relocateTorrent":"Déplacer le torrent","switchToManual":"Passer le torrent en mode manuel"},"savePathChangedTMM":"Lorsque le répertoire de destination par défaut est modifié","subheader":"Gestion de la sauvegarde","torrentChangedTMM":"Lorsque la catégorie des torrents a changé"},"whenAddTorrent":{"addToTopOfQueue":"Ajouter en haut de la file d'attente","autoDeleteMode":"Supprimer les fichiers .torrent ensuite","doNotAutoStart":"Ne pas lancer le téléchargement automatiquement","mergeTrackers":"Fusionner les trackers si le torrent existe déjà","subheader":"Lors de l'ajout d'un torrent"}},"rss":{"autoDownloader":{"enable":"Activer le traitement des règles RSS","subheader":"Téléchargement automatique de torrents via RSS"},"reader":{"enableProcessing":"Activer la récupération des flux RSS","feedsRefreshInterval":"Intervalle de rafraîchissement des flux","maximumArticlesPerFeed":"Nombre maximum d'articles par flux","subheader":"Lecteur RSS"},"smartEpisodeFilter":{"downloadEpisodes":"Télécharger les épisodes REPACK/PROPER","filters":"Filtres","filtersHint":"Un par ligne","subheader":"Filtre intelligent pour les épisodes RSS"},"useIdForRssLinks":"Utiliser les ID pour les liens RSS"},"saveSuccess":"Paramètres sauvegardés !","speed":{"download":"Téléchargement","scheduler":{"from":"De","selectButtonLabel":"Sélectionner l'heure","subheader":"Programmer l'utilisation de limites de taux alternatives","to":"À","when":"Quand"},"settings":{"applyToPeersOnLan":"Appliquer une limite de débit aux pairs sur le réseau local","applyToTransportOverhead":"Appliquer une limite de taux aux frais généraux de transport","applyToUtp":"Appliquer une limite de débit au protocole µTP"},"subheader":{"alternative":"Limites de débit alternatif","global":"Limites de débit global","settings":"Réglages des limites de débit"},"tip":"0 signifie illimité","upload":"Partage"},"tabs":{"addons":{"enhanced_edition":"Édition améliorée"},"advanced":"Avancé","behavior":"Comportement","bittorrent":"BitTorrent","connection":"Connexion","downloads":"Téléchargements","rss":"RSS","speed":"Vitesse","tagsAndCategories":"Étiquettes & Catégories","vuetorrent":{"general":"Général","title":"VueTorrent","torrent_card":{"grid":"Affichage Grille","list":"Affichage Liste","table":"Affichage Tableau"}},"webui":"WebUI"},"tagsAndCategories":{"categoriesSubheader":"Catégories disponibles :","createNewCategory":"Créer une nouvelle catégorie","createNewTag":"Créer une nouvelle étiquette","noCategories":"Aucune catégorie pour le moment","noTags":"Aucune étiquette pour le moment","tagsSubheader":"Étiquettes disponibles :"},"title":"Paramètres","vuetorrent":{"general":{"check_new":"Vérifier une nouvelle version","currentVersion":"Version actuelle","customTitle":"Titre personnalisé","darkVariants":"Variante du thème sombre","dateFormat":"Format de la date","download":"Exporter les paramètres","enableHashColors":"Activer les couleurs générées sur les capsules","enableRatioColors":"Activer les couleurs de ratio","fileContentInterval":"Intervalle de rafraîchissement du contenu des torrents","hideChipIfUnset":"Masquer les capsules si non défini","hideColoredChip":"Utiliser la variante texte pour les puces","historySize":"Taille de l'historique sur les champs éligibles","import":"Importer les paramètres","isDrawerRight":"Menu latéral à droite","isShutdownButtonVisible":"Afficher le bouton d'arrêt","language":"Langue","lightVariants":"Variante du thème clair","paginationSize":{"infinite_scroll":"Défilement infini","label":"Taille de la pagination","warning":"L'utilisation de valeurs élevées peut affecter les performances"},"qbittorrentVersion":"Version de qBittorrent","refreshInterval":"Intervalle de rafraîchissement de l'API qBittorrent","registerMagnet":"Enregistrer les liens magnet","resetSettings":"Réinitialiser les paramètres","showAlltimeStat":"Afficher les statistiques globales","showCurrentSpeed":"Afficher la vitesse actuelle","showFreeSpace":"Afficher l'espace libre","showSessionStat":"Afficher les statistiques de la session","showSpeedGraph":"Afficher le graphique de vitesse","tip":"Ces paramètres concernent l'interface actuelle","useBinarySize":"Remplacer les tailles de données par des unités binaires (kB -> KiB)","useBitSpeed":"Remplacer les valeurs de vitesse par des bits (kB/s -> kbps)","vueTorrentTitle":"Titre de l'onglet"},"torrentCard":{"grid":{"busyTip":"Propriétés à afficher pour les torrents incomplets en affichage grille","doneTip":"Propriétés à afficher pour les torrents complets en affichage grille"},"list":{"busyTip":"Propriétés à afficher pour les torrents incomplets en affichage liste","doneTip":"Propriétés à afficher pour les torrents complets en affichage liste"},"table":{"tip":"Propriétés à afficher pour les torrents en affichage tableau"}}},"webUI":{"authentication":{"banDuration":"Durée du ban","banDurationHint":"En secondes","bypassLocalhost":"Contourner l'authentification pour les clients sur localhost","bypassWhitelist":"Contournement de l'authentification pour les clients des sous-réseaux IP figurant sur la liste blanche","maxAttempts":"Nombre maximal de tentatives","password":"Mot de passe","passwordPlaceholder":"(inchangé)","sessionTimeout":"Délai d'expiration de la session","sessionTimeoutHint":"En secondes","subheader":"Authentification","username":"Nom d'utilisateur","whitelistExamples":"Exemple : 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"Ajouter des en-têtes HTTP personnalisés","customHeadersHint":"Un par ligne","customHeadersPlaceholder":"En-tête1: valeur1\\nEn-tête2: valeur2\\n...","dynDns":{"domainName":"Nom de domaine","password":"Mot de passe","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"S'inscrire","subheader":"Mettre à jour mon nom de domaine dynamique","username":"Nom d'utilisateur"},"https":{"certificate":"Certificat","key":"Clé","subheader":"Utiliser HTTPS","tip":"Informations sur les certificats"},"interface":{"ipAddress":"Adresse IP","port":"Port","subheader":"Interface Utilisateur Web","useAlternativeWebUI":"Utiliser une autre interface web","useUPnP":"Utiliser la redirection de port UPnP / NAT-PMP à partir de mon routeur"},"proxiesList":"Liste des proxys de confiance","proxiesListHint":"Séparer les IP par un point-virgule ( ; )","reverseProxySupport":"Activer la prise en charge du proxy inverse","security":{"clickjacking":"Activer la protection contre le détournement de clics","csrf":"Activer la protection contre la falsification des requêtes intersites (CSRF)","hostHeaderValidation":"Activer la validation de l'en-tête Host","hostHeaderValidationHint":"Séparés par un point-virgule ( ; )","secureCookie":"Activer le flag \\"secure\\" du cookie (nécessite HTTPS)","serverDomains":"Domaines du serveur","subheader":"Sécurité"}}}`);
    CO = {
        add: {
            error: "Erreur lors de l'ajout des torrents",
            pending: "Envoi des torrents...",
            success: "{n} torrent ajouté | {n} torrents ajoutés"
        },
        copy: {
            error: "Impossible de copier, le contexte n'est pas sécurisé !",
            success: "Copié dans le presse-papiers !"
        },
        magnet_handler: {
            not_supported: "Le contexte actuel n'est pas sécurisé. Impossible d'enregistrer le handler.",
            registered: "Handler des liens magnets enregistré."
        },
        qbit: {
            not_supported: "Disponible uniquement pour qbit >= {version}"
        },
        version: {
            latest: "Vous avez la dernière version !",
            new: "Nouvelle version disponible !"
        }
    };
    AO = {
        actions: {
            delete: "Supprimer les torrents",
            logs: "Ouvrir les logs",
            pause: "Pause Torrents",
            resume: "Reprendre les torrents",
            rssArticles: "Ouvrir les articles RSS",
            searchEngine: "Ouvrir le moteur de recherche",
            settings: "Ouvrir les paramètres"
        },
        addTorrents: "Ajouter des torrents",
        overflow: {
            delete: "Supprimer",
            logs: "Logs qBittorrent",
            pause: "Pause",
            resume: "Reprendre",
            rssArticles: "Articles RSS",
            searchEngine: "Moteur de recherche",
            settings: "Paramètres"
        },
        searchTorrents: "Rechercher des torrents"
    };
    DO = {
        content: {
            fileInfo: "{n} fichier | {n} fichiers",
            filter: {
                extensions: "Extension de fichier"
            },
            filter_placeholder: "Rechercher dans l'arborescence",
            folderInfo: "{n} dossier | {n} dossiers",
            priority: "Définir la priorité",
            rename: {
                bulk: "Renommer en masse",
                file: "Renommer",
                folder: "Renommer le dossier"
            },
            rootNode: "(Racine)"
        },
        info: {
            boolean_values: "Valeurs booléennes",
            data_values: "Valeurs de données",
            datetime_values: "Valeurs de temps",
            duration_values: "Valeurs de durée",
            long_text_values: "Valeurs textuelles longues",
            speed_values: "Valeurs de vitesse",
            text_values: "Valeurs textuelles"
        },
        overview: {
            canvasRefreshDisabled: "Rafraîchissement automatique du canevas désactivé",
            canvasRenderDisabled: "Rendu du canevas désactivé",
            copy_hash: "Copier le hash",
            dlSpeedAverage: "Vitesse de téléchargement moyenne",
            downloaded: "Téléchargé",
            fetchingMetadata: "Récupération...",
            fileCount: "Fichiers sélectionnés",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "Ratio",
            selectedFileSize: "Taille des fichiers sélectionnés",
            uploaded: "Partagé",
            upSpeedAverage: "Vitesse de téléchargement moyenne",
            waitingForMetadata: "En attente de métadonnées..."
        },
        peers: {
            addPeers: {
                newPeers: "Hôtes pairs à ajouter",
                newPeersHint: "Un par ligne",
                newPeersPlaceholder: "hôte:port",
                title: "Ajouter des pairs"
            },
            empty: "Aucun pair n'est connecté actuellement",
            fields: {
                client: "Client",
                country: "Pays",
                download: "Téléchargement",
                files: "Fichiers",
                flags: "Drapeaux",
                host: "Hôte",
                progress: "Progression",
                relevance: "Pertinence",
                upload: "Partage"
            }
        },
        tabs: {
            content: "Contenu",
            info: "Info",
            overview: "Vue d'ensemble",
            peers: "Pairs",
            tagsAndCategories: "Étiquettes & Catégories",
            trackers: "Trackers"
        },
        tagsAndCategories: {
            categories: "Catégories",
            tags: "Étiquettes"
        },
        title: "Détail du torrent",
        trackers: {
            addTrackers: {
                newTrackers: "URL des trackers à ajouter",
                newTrackersHint: "Un par ligne, séparer les niveaux avec une ligne vide",
                title: "Ajouter des trackers"
            },
            editTracker: {
                newUrl: "Nouvelle URL",
                newUrlRequired: "La nouvelle URL est nécessaire",
                oldUrl: "Ancienne URL",
                title: "Modifier le tracker"
            },
            fields: {
                msg: "Message",
                num_downloaded: "Téléchargé",
                num_leeches: "Téléchargeurs",
                num_peers: "Pairs",
                num_seeds: "Seeders",
                status: "État",
                tier: "#",
                url: "URL du tracker"
            },
            loading: "Chargement des données du tracker...",
            reannounce: "Tout réannoncer",
            tier: "Tier : {n}"
        }
    };
    TO = {
        properties: {
            added_on: "Ajouté le",
            amount_left: "Montant restant",
            auto_tmm: "Gestion automatique des torrents",
            availability: "Disponibilité",
            available_peers: "Pairs (essaim)",
            available_seeds: "Sources  (essaim)",
            avg_download_speed: "Vitesse de téléchargement moyenne",
            avg_upload_speed: "Vitesse d'envoi moyenne",
            basename_content_path: "Chemin du contenu (basename)",
            basename_download_path: "Chemin de téléchargement (basename)",
            basename_save_path: "Répertoire de destination (basename)",
            category: "Catégorie",
            comment: "Commentaire",
            completed_on: "Terminé le",
            content_path: "Chemin du contenu",
            created_by: "Créé par",
            creation_date: "Date de création",
            downloaded: "Téléchargé (global)",
            downloaded_session: "Téléchargé (session)",
            download_limit: "Limite de téléchargement",
            download_path: "Chemin de téléchargement",
            download_speed: "Vitesse de téléchargement",
            empty_category: "(aucune catégorie)",
            empty_tags: "(aucune étiquette)",
            empty_tracker: "(aucun tracker)",
            eta: "ETA",
            f_l_piece_prio: "Priorité à la première / dernière pièce",
            forced: "État forcé",
            global_speed: "Vitesse globale",
            global_volume: "Volume global",
            hash: "Hash",
            inactive_seeding_time_limit: "Limite du temps de seed inactif",
            infohash_v1: "Infohash v1",
            infohash_v2: "Infohash v2",
            is_private: "Torrent privé",
            last_activity: "Dernière activité",
            magnet: "Lien magnet",
            name: "Titre du torrent",
            nb_connections: "Nombre total de connexions",
            nb_connections_limit: "Limites de connexion",
            num_leechs: "Pairs (connectés)",
            num_seeds: "Sources (connectées)",
            peers: "Pairs",
            priority: "Priorité",
            progress: "Progression",
            progress_bar: "Barre de progression",
            ratio: "Ratio",
            ratio_limit: "Limite du ratio",
            reannounce: "Prochaine annonce dans",
            save_path: "Sauvegarder le chemin",
            seeding_time: "Temps de seed",
            seeding_time_limit: "Limite du temps de seed",
            seeds: "Seeders",
            seen_complete: "Vu Complet",
            seq_dl: "Téléchargement séquentiel",
            size: "Taille",
            state: "État",
            super_seeding: "Mode Super Seed",
            tags: "Étiquettes",
            time_active: "Temps d'activité",
            total_size: "Taille totale",
            total_wasted: "Données gaspillées",
            tracker: "Tracker",
            trackers_count: "Nombre de trackers",
            truncated_hash: "Hachage tronqué",
            uploaded: "Partagé (global)",
            uploaded_session: "Partagé (session)",
            upload_limit: "Limite d'envoi",
            upload_speed: "Vitesse d'envoi"
        },
        state: {
            checking_disk: "Vérification des fichiers disque",
            checking_resume_data: "Vérification des données de reprise",
            dl_forced: "[F] Téléchargement",
            dl_queued: "En attente (DL)",
            dl_stalled: "En suspens",
            dl_stopped: "Arrêté",
            downloading: "Téléchargement",
            error: "Erreur",
            forced_meta_download: "[F] Métadonnées",
            meta_download: "Métadonnées",
            missing_files: "Fichiers manquants",
            moving: "En déplacement",
            ul_forced: "[F] Envoi",
            ul_queued: "En attente (UP)",
            ul_stalled: "En partage",
            ul_stopped: "Terminé",
            unknown: "Inconnu",
            uploading: "Envoi"
        }
    };
    EO = {
        minutes: "minute | minute | minutes",
        seconds: "seconde | seconde | secondes"
    };
    _O = {
        _comments: fO,
        common: pO,
        constants: gO,
        dashboard: vO,
        dialogs: yO,
        login: bO,
        logs: FO,
        navbar: kO,
        rssArticles: xO,
        searchEngine: wO,
        settings: SO,
        toast: CO,
        topbar: AO,
        torrentDetail: DO,
        torrent: TO,
        units: EO
    };
    PO = {
        cancel: "Mégse",
        close: "Bezár",
        delete: "Törlés",
        disable: "Letilt",
        disabled: "Letiltva",
        edit: "Szerkesztés",
        emptyList: "Itt nincs mit látni!",
        NA: "N/A",
        no: "Nem",
        none: "(Egyik sem)",
        ok: "OK",
        pause: "Szüneteltetés",
        resume: "Folytatás",
        save: "Mentés",
        search: "Keresés",
        selectAll: "Összes kiválasztása",
        selectNone: "Egyik sem",
        useGlobalSettings: "Globális beállítások használata",
        yes: "Igen"
    };
    BO = {
        addStopped: {
            always: "Mindig",
            never: "Soha",
            title: "Szüneteltetve hozzáad"
        },
        auto_delete_mode: {
            always: "Mindig",
            never: "Soha"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP és μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Csatlakoztatva",
            disconnected: "Szétkapcsolt",
            firewalled: "Tűzfalon belüli",
            unknown: "Ismeretlen"
        },
        contentLayout: {
            nosubfolder: "Almappa eltávolítása",
            original: "Eredeti",
            subfolder: "Almappa létrehozása",
            title: "Torrent tartalom elrendezése"
        },
        diskIoMode: {
            disableOsCache: "OS gyorsítótár letiltása",
            enableOsCache: "OS gyorsítótár engedélyezése",
            writeThrough: "Írás-át (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "Alapértelmezett",
            memoryMappedFiles: "Memória leképezett fájlok",
            posixCompliant: "POSIX-szabványnak megfelelő"
        },
        encryption: {
            forceOff: "Titkosítás kikapcsolása",
            forceOn: "Titkosítás kötelező",
            preferEncryption: "Titkosítás engedélyezése"
        },
        file_log_age_type: {
            days: "Nap | Nap | Napok",
            months: "Hónap | Hónap | Hónapok",
            years: "Év | Év | Évek"
        },
        file_priority: {
            high: "Magas",
            max: "Max",
            mixed: "Vegyes",
            normal: "Normál",
            unwanted: "Nem kívánt"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Alapértelmezett mentési útvonal",
            monitoredFolder: "Megfigyelt mappa helye",
            other: "Egyéb"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Minden nap",
            everyFriday: "Minden pénteken",
            everyMonday: "Minden hétfőn",
            everySaturday: "Minden szombaton",
            everySunday: "Minden vasárnap",
            everyThursday: "Minden csütörtökön",
            everyTuesday: "Minden kedden",
            everyWednesday: "Minden szerdán",
            everyWeekday: "Minden hétköznap",
            everyWeekend: "Minden hétvégén"
        },
        shareLimitAction: {
            removeTorrent: "Torrent eltávolítása",
            removeTorrentAndFiles: "Torrent és fájljainak eltávolítása",
            stopTorrent: "Torrent szüneteltetése",
            torrentSuperseeding: "Super seeding engedélyezése a torrent számára"
        },
        stopCondition: {
            filesChecked: "Fájlok ellenőrizve",
            metadataReceived: "Metaadatok fogadva",
            none: "Nincs",
            title: "Torrent leállítási feltétele"
        },
        titleOptions: {
            custom: "Egyéni",
            default: "Alapértelmezett",
            first_torrent_speed: "Első Torrent sebessége",
            global_speed: "Globális sebesség"
        },
        trackerStatus: {
            disabled: "Letiltva",
            not_working: "Nem működik",
            not_yet_contacted: "Még nem került kapcsolatba",
            updating: "Frissítés",
            working: "Működik"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-leech",
            fastestUpload: "Leggyorsabb feltöltés",
            roundRobin: "Round-robin"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Rögzített slotok",
            uploadRateBased: "Feltöltési sebesség alapú"
        },
        utpTcpMixedMode: {
            peerProportional: "Peer arányos (TCP throttling)",
            preferTcp: "TCP preferálása"
        }
    };
    MO = {
        displayMode: {
            grid: "Rács",
            list: "Lista",
            table: "Táblázat",
            title: "Megjelenítési mód"
        },
        not_complete: "Sosem látták teljesnek",
        right_click: {
            advanced: {
                auto_tmm: "Automatikus Torrent Kezelés",
                download_path: "Letöltési útvonal beállítása",
                f_l_prio: "Első / Utolsó Prioritás",
                reannounce: "Újrahirdetés kényszerítése",
                recheck: "Újraellenőrzés kényszerítése",
                rename: "Torrent átnevezése",
                save_path: "Mentési útvonal beállítása",
                seq_dl: "Szekvenciális letöltés",
                title: "Haladó"
            },
            category: {
                clear: "(Kategória törlése)",
                disabled_title: "Nincsenek kategóriák",
                title: "Kategória beállítása"
            },
            copy: {
                comment: "Megjegyzés",
                hash: "Hash",
                magnet: "Mágnes",
                name: "Név",
                title: "Másolás"
            },
            export: "Torrent exportálása | Torrentek exportálása",
            info: "Információ megjelenítése",
            priority: {
                bottom: "Legalsó Prioritás",
                decrease: "Prioritás csökkentése",
                increase: "Prioritás növelése",
                title: "Prioritás beállítása",
                top: "Legfelső Prioritás"
            },
            speed_limit: {
                download: "Letöltési korlát beállítása",
                share: "Megosztási korlát beállítása",
                title: "Sebességkorlát beállítása",
                upload: "Feltöltési korlát beállítása"
            },
            tags: {
                disabled_title: "Nincsenek címkék",
                title: "Címkék beállítása"
            },
            top: {
                delete: "Törlés",
                force_resume: "Kényszerített Folytatás",
                pause: "Szüneteltetés",
                resume: "Folytatás"
            }
        },
        searchInputLabel: "Keresés",
        selectAll: "(Minden kiválasztása/eltávolítása (Ctrl + A))",
        selectedTorrentsCount: "Nincs torrent | {count} a {total} torrentből ({size}) | {count} a {total} torrentből ({size})",
        sortLabel: "Rendezés",
        toggleSearchFilter: "Keresési szűrő váltása",
        toggleSelectMode: "Kiválasztási mód váltása",
        toggleSortOrder: "Rendezési sorrend megfordítása",
        torrentsCount: "Nincs torrent | {n} torrent | {n} torrentek"
    };
    RO = {
        add: {
            cookie: "Sütik",
            cookie_placeholder: "név1=érték1; név2=érték2; ...",
            drop_label: "Húzza ide a torrent fájlokat és linkeket",
            file_overflow: "+{n} további",
            files: "Fájlok kiválasztása",
            first_last_piece_prio: "Az első és utolsó darabok prioritása",
            links: "Linkek (mágnes, http, fájl, ...)",
            params: {
                add_to_top_of_queue: "Hozzáadás a sor elejéhez",
                category: "Kategória",
                download_limit: "Letöltési korlát",
                download_path: "Letöltési útvonal (befejezetlen)",
                inactive_seeding_time_limit: "Inaktív seedelési időkorlát",
                limit_collapse: "Korlátok beállítása",
                limit_hint: "-1 a kikapcsoláshoz, -2 vagy üres a globális érték használatához",
                no_categories: "Még nincsenek kategóriák. Írjon be egy nevet az új létrehozásához.",
                no_categories_match: 'Nincsenek kategóriák, amelyek megfelelnének a "{query}" keresésnek. Automatikusan létre lesz hozva.',
                no_tags: "Még nincsenek címkék. Írjon be egy nevet az új létrehozásához.",
                no_tags_match: 'Nincsenek címkék, amelyek megfelelnének a "{query}" keresésnek. Nyomja meg az Enter-t a létrehozáshoz.',
                ratio_limit: "Aránykorlát",
                save_path: "Mentési útvonal (befejezett)",
                seeding_time_limit: "Seedelési időkorlát",
                skip_checking: "Hash ellenőrzés kihagyása",
                stopped: "Ne kezdje el a letöltést",
                tags: "Címkék",
                title: "Torrent paraméterek",
                upload_limit: "Feltöltési korlát",
                use_auto_tmm: "Automatikus Torrent Kezelés"
            },
            rename: "Torrent átnevezése",
            reset_form: "Űrlap visszaállítása",
            sequential_download: "Szekvenciális letöltés",
            submit: "Torrentek hozzáadása",
            title: "Torrentek hozzáadása"
        },
        category: {
            name: "Kategória neve",
            nameRequired: "Kategória név szükséges",
            oldName: "Régi kategória név",
            savePath: "Mentési útvonal",
            title: {
                create: "Kategória létrehozása",
                edit: "Kategória szerkesztése"
            },
            warnEdit: `A kategória nevének szerkesztése áttelepíti a torrenteket az új kategóriába.
Hibák fordulhatnak elő, óvatosan használja.`
        },
        connectionStatus: {
            dht_nodes: "DHT csomópontok",
            externalIp: "Külső IP-cím",
            status: "Kapcsolat állapota",
            total_peer_connections: "Aktív peer kapcsolatok"
        },
        delete: {
            deleteWithFiles: "A fájlok törlése a torrenttel együtt",
            title: "{n} torrent törlése | {n} torrentek törlése",
            warnDelete: "Ennek a jelölőnégyzetnek a bejelölése minden torrentben található fájlt töröl"
        },
        importSettings: {
            required: "A beállítások megadása kötelező",
            title: "Beállítások importálása",
            valid: "Kérjük, érvényes beállításokat adjon meg"
        },
        moveTorrent: {
            dl: {
                title: "Letöltési útvonal módosítása"
            },
            newPath: "Új útvonal",
            oldPath: "Régi útvonal",
            required: "Új útvonal szükséges",
            samePath: "Az új útvonalnak különböznie kell a régitől",
            save: {
                title: "Mentési útvonal módosítása"
            }
        },
        moveTorrentFile: {
            oldName: "Régi név",
            title: "Torrent fájl mozgatása | Torrent mappa mozgatása"
        },
        pluginManager: {
            headers: {
                actions: "Műveletek",
                enabled: "Engedélyezve",
                name: "Név",
                url: "Motor URL",
                version: "Verzió"
            },
            install: {
                activator: "Új plugin telepítése",
                label: "Plugin URL",
                title: "Plugin telepítése"
            },
            title: "Plugin Kezelő",
            update: "Pluginok frissítése"
        },
        renameTorrent: {
            newName: "Új név",
            oldName: "Régi név",
            required: "Új név szükséges",
            sameName: "Az új névnek különböznie kell a régitől",
            title: "Torrent átnevezése"
        },
        rss: {
            feed: {
                name: "Név",
                rules: {
                    name_required: "A hírcsatorna neve szükséges",
                    url_required: "A hírcsatorna URL-je szükséges"
                },
                title: {
                    create: "RSS hírcsatorna létrehozása",
                    edit: "RSS hírcsatorna szerkesztése"
                },
                url: "URL"
            },
            rule: {
                affectedFeedsSubheader: "Érintett hírcsatornák",
                assignedCategory: "Hozzárendelt kategória",
                enabled: "Szabály engedélyezése",
                episodeFilter: "Epizód szűrő",
                episodeFilterPlaceholder: "pl. S01E02-S01E05",
                ignoreDays: "Az utolsó {days} napban közzétett elemek figyelmen kívül hagyása",
                ignoreDaysHint: "0 a kikapcsoláshoz",
                lastMatch: {
                    knownValue: "ma | {n} napja | {n} napok óta",
                    label: "Utolsó egyezés",
                    unknownValue: "Ismeretlen"
                },
                matchingArticles: {
                    noMatch: "Nincsenek egyező cikkek",
                    title: "Egyező cikkek"
                },
                mustContain: "Tartalmaznia kell",
                mustNotContain: "Nem tartalmazhatja",
                name: "Név",
                savePath: "Mentési útvonal",
                savePathPlaceholder: "Hagyja üresen az alapértelmezett mentési útvonal használatához",
                smartFilter: "Okos epizódszűrő használata",
                title: {
                    create: "RSS szabály létrehozása",
                    edit: "RSS szabály szerkesztése"
                },
                useRegex: "Rendszeres kifejezés használata"
            }
        },
        share_limit: {
            disabled: "Nincs megosztási korlát beállítva",
            enabled: "Megosztási korlát beállítása",
            global: "Globális megosztási korlát használata",
            inactive_seeding_time_limit: "Inaktív percek",
            ratio_limit: "Arány",
            seeding_time_limit: "Teljes percek",
            title: "Megosztási arány korlát beállítása"
        },
        shutdown: {
            content: "Valóban le akarja állítani a qBittorrentet?",
            error: "Nem sikerült leállítani az alkalmazást. Győződjön meg arról, hogy a qBittorrent fut!",
            success: "A qBittorrent sikeresen leállítva!",
            title: "qBittorrent leállítása"
        },
        speed_limit: {
            download: "Letöltési sebességkorlát beállítása",
            label: "Sebességkorlát",
            upload: "Feltöltési sebességkorlát beállítása"
        },
        tag: {
            comma: "A címke neve nem tartalmazhat vesszőt a címke átnevezésekor",
            hint: "Tipp: több címke létrehozása vesszővel elválasztva",
            name: "Címke neve",
            oldName: "Régi címke neve",
            required: "Címke név szükséges",
            title: {
                create: "Címke létrehozása",
                rename: "Címke átnevezése"
            },
            warnEdit: `A címke nevének szerkesztése áttelepíti a torrenteket az új címkére.
Hibák fordulhatnak elő, óvatosan használja.`
        }
    };
    LO = {
        error: "Bejelentkezés sikertelen!",
        password: "Jelszó",
        rules: {
            password_required: "Jelszó szükséges",
            username_required: "Felhasználónév szükséges"
        },
        submit: "Bejelentkezés",
        subtitle: "Adja meg hitelesítő adatait",
        success: "Bejelentkezés sikeres!",
        title: "Bejelentkezés",
        username: "Felhasználónév"
    };
    IO = {
        emptyLogList: "Nem található napló",
        filters: {
            query: "Keresés a naplóüzenetekben",
            type: "Napló szintje"
        },
        title: "qBittorrent naplók"
    };
    zO = {
        addPanel: {
            torrentsPendingCount: "{n} torrent vár feltöltésre | {n} torrent vár feltöltésre"
        },
        side: {
            bottom_actions: {
                alt_speed: "Váltás alternatív sebességre",
                conn_status: "Kapcsolat állapota: {status}",
                logout: "Kijelentkezés",
                shutdown: "qBittorrent leállítása"
            },
            current_speed: {
                title: "Aktuális sebesség"
            },
            filters: {
                activeFilter: "{n} aktív szűrő",
                category: {
                    empty: "(Kategorizálatlan)",
                    title: "Kategória szűrő"
                },
                disabled: "(Letiltva)",
                state: {
                    active: "Aktív",
                    error: "Hiba",
                    title: "Torrent állapot szűrő"
                },
                tag: {
                    empty: "(Címkézetlen)",
                    title: "Címke szűrő"
                },
                tracker: {
                    empty: "(Követés nélküli)",
                    title: "Követő szűrő"
                }
            },
            speed_graph: {
                download_label: "Letöltés",
                download_limit_label: "Letöltési korlát",
                upload_label: "Feltöltés",
                upload_limit_label: "Feltöltési korlát"
            },
            stats: {
                alltime: {
                    title: "Összes idő statisztikája"
                },
                downloaded: "Letöltve",
                free_space: "Szabad hely",
                ratio: "Arány",
                session: {
                    title: "Munkamenet statisztikája"
                },
                uploaded: "Feltöltve"
            }
        },
        top: {
            active_filters: {
                category: "Kategória szűrő: {value}",
                menu_label: "Aktív szűrő: {n} | Aktív szűrők: {n}",
                multiple_category: "Kategória szűrő: {n} kategória",
                multiple_state: "Állapot szűrő: {n} állapot",
                multiple_tag: "Címke szűrő: {n} címke",
                multiple_tracker: "Követő szűrő: {n} követő",
                state: "Állapot szűrő: {value}",
                tag: "Címke szűrő: {value}",
                text: "Szöveg szűrő: {value}",
                tracker: "Követő szűrő: {value}"
            }
        }
    };
    NO = {
        feeds: {
            empty: {
                action: "RSS hírcsatorna létrehozása"
            },
            filters: {
                title: "Cím szűrő",
                unread: "Csak olvasatlan cikkek megjelenítése"
            },
            item: {
                author: "Szerző: {author}",
                category: "Kategória: {category}",
                feedName: "Hírcsatorna neve: {name}"
            },
            markAllAsRead: "Összes megjelölése olvasottként",
            promise: {
                error: "Hiba történt a cikkek megjelölése közben",
                pending: "Megjelölés...",
                success: "{n} cikk megjelölve olvasottként"
            },
            title: "RSS cikkek"
        },
        rules: {
            empty: {
                action: "RSS szabály létrehozása"
            }
        }
    };
    OO = {
        filters: {
            category: {
                all: "Összes",
                anime: "Anime",
                books: "Könyvek",
                games: "Játékok",
                label: "Keresési kategória",
                movies: "Filmek",
                music: "Zene",
                pictures: "Képek",
                software: "Szoftver",
                tv: "TV"
            },
            plugins: {
                all: "Összes",
                enabled: "Engedélyezett",
                label: "Keresési plugin"
            },
            title: {
                label: "Cím szerinti szűrés"
            }
        },
        headers: {
            fileName: "Fájlnév",
            fileSize: "Fájlméret",
            nbLeechers: "Leecherek",
            nbSeeders: "Seederek",
            siteUrl: "Weboldal URL"
        },
        query: "Keresési lekérdezés",
        runSearch: "Keresés",
        stopSearch: "Leállítás",
        tabHeaderEmpty: "(Üres lekérdezés)",
        title: "Keresőmotor"
    };
    HO = JSON.parse('{"advanced":{"libtorrent":{"announceAllTiers":"Mindig hirdessen minden szinten","announceAllTrackers":"Mindig hirdessen minden követőn egy szinten","announceIP":"A követőknek jelentett IP-cím (újraindítás szükséges)","coalesceReadsWrites":"Olvasások és írások egyesítése (libtorrent < 2.0)","disk":{"diskCache":"Lemez gyorsítótár (libtorrent < 2.0)","diskCacheExpiry":"Lemez gyorsítótár lejárati intervalluma (libtorrent < 2.0)","diskIoReadMode":"Lemez IO olvasási mód","diskIoType":"Lemez IO Típus (libtorrent >= 2.0; újraindítás szükséges)","diskIoWriteMode":"Lemez IO írási mód","diskQueueSize":"Lemez várakozási sor mérete","subheader":"Lemez"},"maxConcurrentHTTPAnnounces":"Egyidejűleg maximális HTTP bejelentések","networking":{"outgoingPortsMax":"Kimenő portok (Max) [0: Letiltva]","outgoingPortsMin":"Kimenő portok (Min) [0: Letiltva]","peerTos":"DSCP érték a peerekhez való kapcsolódásokhoz","subheader":"Hálózat","upnpLeaseDuration":"UPnP bérleti időtartam [0: Állandó bérlet]","utpTcpMixedModeAlgorithm":"μTP-TCP vegyes mód algoritmus"},"outgoingConnectionsPerSecond":"Kimenő kapcsolatok másodpercenként","peerTurnover":"Peer cserélődés lekapcsolási százaléka","peerTurnoverCutoff":"Peer cserélődés küszöbértéke","peerTurnoverInterval":"Peer cserélődés lekapcsolási intervalluma","pieceExtentAffinity":"Darab kiterjedés affinitás használata","requestQueueSize":"Maximális kérések egy peerhez","security":{"allowMultipleConnectionsFromTheSameIPAddress":"Több kapcsolat engedélyezése ugyanarról az IP-címről","blockPeersOnPrivilegedPorts":"Kapcsolódás tiltása privilégiumos portokon lévő peerekhez","idnSupport":"Nemzetközi Domain Név (IDN) támogatás engedélyezése","mitigateSSRF":"Szerveroldali kérés hamisítás (SSRF) mérséklése","subheader":"Biztonság","validateHTTPSTrackerCertificate":"HTTPS követő tanúsítványának érvényesítése"},"sendBufferLowWatermark":"Küldési puffer alacsony vízjel","sendBufferWatermark":"Küldési puffer vízjel","sendBufferWatermarkFactor":"Küldési puffer vízjel tényező","sendUploadPieceSuggestions":"Feltöltési darab javaslatok küldése","socketBacklogSize":"Socket várakozási sor mérete","socketReceiveBufferSize":"Socket fogadási puffer mérete","socketReceiveBufferSizeHint":"0: rendszer alapértelmezett","socketSendBufferSize":"Socket küldési puffer mérete","socketSendBufferSizeHint":"0: rendszer alapértelmezett","stopTrackerTimeout":"Követő időtúllépés leállítása","subheader":"libtorrent szakasz","threads":{"asyncIoThreads":"Aszinkron I/O szálak","bdecodeDepthLimit":"Bdecode mélység korlát","bdecodeTokenLimit":"Bdecode token korlát","filePoolSize":"Fájlpool mérete","hashingThreads":"Hashelési szálak (libtorrent >= 2.0)","outstandingMemory":"Kiemelkedő memória torrentek ellenőrzésekor","subheader":"Szálak"},"uploadChokingAlgorithm":"Feltöltési fulladás algoritmus","uploadSlotsBehavior":"Feltöltési slotok viselkedése"},"openDoc":"Dokumentáció megnyitása","qbittorrent":{"allocatedRam":"Fizikai memória (RAM) használati korlát (libtorrent >= 2.0)","embeddedTracker":{"enable":"Beágyazott követő engedélyezése","port":"Beágyazott követő port","portForward":"Port továbbítás engedélyezése a beágyazott követő számára","title":"Beágyazott követő"},"networking":{"ipAddress":{"all":"Minden cím","allIPv4":"Minden IPv4 cím","allIPv6":"Minden IPv6 cím","label":"Opcionális IP-cím a kötéshez"},"networkInterfaces":{"any":"Bármelyik interfész","label":"Hálózati interfész"},"title":"Hálózat"},"reannounceOnIpPortChanged":"Újrahirdetés minden követőnek, amikor az IP vagy a port megváltozik","recheckOnCompletion":"Torrentek újraellenőrzése a befejezéskor","refreshInterval":"GUI frissítési intervallum","resolveCountries":"Peer országok feloldása","resumeDataStorageType":{"label":"Folytatási adatok tárolási típusa (újraindítás szükséges)","legacy":"Gyorsfolytatás fájlok","sqlite":"SQLite adatbázis (kísérleti)"},"saveInterval":"Folytatási adatok mentési intervalluma","subheader":"qBittorrent szakasz","torrentFileSizeLimit":".torrent fájlméret korlát"}},"behavior":{"logs":{"file_log_age":"Régi naplófájlok törlése, ha régebbiek, mint","file_log_backup_enabled":"Naplófájl biztonsági mentés engedélyezése","file_log_delete_old":"Régi biztonsági mentési naplók törlése","file_log_enabled":"Naplófájlok engedélyezése","file_log_max_size":"A naplófájl biztonsági mentése után","file_log_path":"Mentési útvonal","subheader":"Naplókezelés"},"performance_warning":"Teljesítmény figyelmeztetés naplózása"},"bittorrent":{"autoAddTrackers":"Automatikusan ezeket a követőket adja hozzá az új letöltésekhez","autoAddTrackersHint":"Egy követő soronként","maxActiveCheckingTorrents":"Maximálisan aktív ellenőrző torrentek","privacy":{"enableAnonymous":"Névtelen mód engedélyezése","enableDHT":"DHT (decentralizált hálózat) engedélyezése több peer megtalálásához","enableLPD":"Helyi Peer Felfedezés engedélyezése több peer megtalálásához","enablePeX":"Peer Csere (PeX) engedélyezése több peer megtalálásához","encryptionMode":"Titkosítási mód","moreInfo":"További információ","subheader":"Adatvédelem"},"seedLimits":{"subheader":"Seed korlátok","then":"Akkor","whenInactiveSeedingTimeReaches":"Amikor az inaktív seedelési idő eléri","whenRatioReaches":"Amikor az arány eléri","whenSeedingTimeReaches":"Amikor a seedelési idő eléri"},"torrentQueueing":{"downloadRateLimit":"Letöltési sebesség küszöbérték","excludeSlowTorrent":"A lassú torrenteket ne számítsa bele ezekbe a korlátokba","maxActiveDownload":"Maximális aktív letöltések","maxActiveTorrent":"Maximális aktív torrentek","maxActiveUpload":"Maximális aktív feltöltések","subheader":"Torrent Sorbaállítás","torrentInactivityTimer":"Torrent inaktivitási időzítő","uploadRateLimit":"Feltöltési sebesség küszöbérték"}},"connection":{"connectionLimits":{"globalMaxConnection":"Globális maximális kapcsolatok száma","globalMaxUploadSlots":"Globális maximális feltöltési slotok száma","perTorrentMaxConnection":"Maximális kapcsolatok száma torrentenként","perTorrentMaxUploadSlots":"Maximális feltöltési slotok száma torrentenként","subheader":"Kapcsolat korlátok"},"ipFiltering":{"applyToTrackers":"Alkalmazás követőkre","bannedIps":"Manuálisan kitiltott IP-címek","bannedIpsHint":"Minden egyes sorban egy","filterPath":"Szűrő útvonal (.dat, .p2p, .p2b)","subheader":"IP Szűrés"},"listeningPort":{"incomingConnectionPort":"Bejövő kapcsolatok portja","randomPort":"Véletlenszerű port","subheader":"Hallgatózó port","useUPnP":"UPnP / NAT-PMP port továbbítás használata a routeremen"},"protocol":"Peer kapcsolatódási protokoll","proxy":{"auth":{"password":"Jelszó","subtitle":"Hitelesítés","tip":"Információ: A jelszó titkosítatlanul van mentve","username":"Felhasználónév"},"bittorrent":"Proxy használata BitTorrent célra","host":"Hoszt","hostNameLookup":"Proxy használata hosztnév lekérdezésre","misc":"Proxy használata általános célra","peerConnections":"Proxy használata peerkapcsolatokhoz","port":"Port","rss":"Proxy használata RSS célra","subheader":"Proxy Szerver"}},"downloads":{"excludedFileNames":{"hint":"Egy szűrő soronként","label":"Kizárt fájlnév"},"mailNotification":{"authEnabled":"Hitelesítés","enabled":"Email értesítés a letöltés befejezésekor","from":"Feladó","password":"Jelszó","smtpServer":"SMTP szerver","sslEnabled":"Ez a szerver biztonságos kapcsolatot (SSL) igényel","to":"Címzett","username":"Felhasználónév"},"monitoredFolders":{"actions":"Műveletek","confirmDelete":"Biztosan törölni szeretné ezt az elemet?","editItem":"Szerkesztés","monitoredFolderPath":"Megfigyelt Mappa","newItem":"Új","noData":"Még nincs megfigyelt mappa","otherPath":"Egyéb Útvonal","saveType":"Mentési hely felülbírálása","subheader":"Megfigyelt Mappák"},"publicSettings":{"appendQBExtension":"Append .!qB kiterjesztés a befejezetlen fájlokhoz","preAllocateDisk":"A lemezterület előzetes lefoglalása minden fájlhoz"},"runExternalProgram":{"onAddedEnabled":"Külső program futtatása a torrent hozzáadásakor","onAddedLabel":"Parancs","onFinishedEnabled":"Külső program futtatása a torrent befejezésekor","onFinishedLabel":"Parancs","subheader":"Külső program futtatása","supportParamC":"%C: Fájlok száma","supportParamD":"%D: Mentési útvonal","supportParamF":"%F: Tartalom útvonala (ugyanaz, mint a gyökér útvonal többfájlos torrent esetén)","supportParamG":"%G: Címkék (vesszővel elválasztva)","supportParamI":"%I: Info hash v1","supportParamJ":"%J: Info hash v2","supportParamK":"%K: Torrent ID","supportParamL":"%L: Kategória","supportParamN":"%N: Torrent név","supportParamR":"%R: Gyökér útvonal (az első torrent almappa útvonala)","supportParamT":"%T: Aktuális követő","supportParamTitle":"Támogatott paraméterek (kisbetű-érzékeny):","supportParamZ":"%Z: Torrent méret (bájtokban)","tip":"Tipp: A paraméter idézőjelek közé zárása elkerüli a szöveg szóköznél történő levágását (pl. \\"%N\\")"},"saveManagement":{"autoTMMEnabled":"Alapértelmezett Torrent Kezelési Mód","categoryChangedTMM":"Amikor a Kategória Mentési Útvonala megváltozik","defaultSavePath":"Alapértelmezett Mentési Útvonal (befejezett)","defaultTMMOptions":{"automatic":"Automatikus","manual":"Kézi"},"exportDir":"Másolja a .torrent fájlokat ide","exportDirFinished":"Másolja a befejezett letöltések .torrent fájljait ide","keepIncomplete":"Alapértelmezett Letöltési Útvonal (befejezetlen torrentek)","paramChangedTMMOptions":{"relocateTorrent":"Torrent áthelyezése","switchToManual":"Torrent átkapcsolása Kézi Módra"},"savePathChangedTMM":"Amikor az Alapértelmezett Mentési Útvonal megváltozik","subheader":"Mentési Kezelés","torrentChangedTMM":"Amikor a Torrent Kategória megváltozik"},"whenAddTorrent":{"addToTopOfQueue":"Hozzáadás a sor elejéhez","autoDeleteMode":"A .torrent fájlok utólagos törlése","doNotAutoStart":"Ne indítsa el automatikusan a letöltést","mergeTrackers":"Követők összevonása, ha a torrent már létezik","subheader":"Amikor hozzáad egy torrentet"}},"rss":{"autoDownloader":{"enable":"RSS szabályok feldolgozásának engedélyezése","subheader":"RSS Torrent Automatikus Letöltő"},"reader":{"enableProcessing":"RSS hírcsatornák lekérdezésének engedélyezése","feedsRefreshInterval":"Hírcsatornák frissítési intervalluma","maximumArticlesPerFeed":"Cikkek maximális száma hírcsatornánként","subheader":"RSS Olvasó"},"smartEpisodeFilter":{"downloadEpisodes":"REPACK/PROPER epizódok letöltése","filters":"Szűrők","filtersHint":"Soronként egy","subheader":"RSS Okos Epizód Szűrő"},"useIdForRssLinks":"Azonosító használata az RSS cikk hivatkozásokhoz"},"saveSuccess":"Beállítások mentve!","speed":{"download":"Letöltés","scheduler":{"from":"Ettől","selectButtonLabel":"Időpont kiválasztása","subheader":"Alternatív sebességkorlátok használatának ütemezése","to":"Eddig","when":"Mikor"},"settings":{"applyToPeersOnLan":"Sebességkorlát alkalmazása a LAN-on lévő peerekre","applyToTransportOverhead":"Sebességkorlát alkalmazása a szállítási túlterhelésre","applyToUtp":"Sebességkorlát alkalmazása a µTP protokollra"},"subheader":{"alternative":"Alternatív Sebességkorlátok","global":"Globális Sebességkorlátok","settings":"Sebességkorlát Beállítások"},"tip":"0 korlátlan jelent","upload":"Feltöltés"},"tabs":{"advanced":"Haladó","behavior":"Viselkedés","bittorrent":"BitTorrent","connection":"Kapcsolat","downloads":"Letöltések","rss":"RSS","speed":"Sebesség","tagsAndCategories":"Címkék & Kategóriák","vuetorrent":{"general":"Általános","title":"VueTorrent","torrent_card":{"grid":"Rács Nézet","list":"Lista Nézet","table":"Táblázat Nézet"}},"webui":"WebUI"},"tagsAndCategories":{"categoriesSubheader":"Elérhető kategóriák:","createNewCategory":"Új kategória létrehozása","createNewTag":"Új címke létrehozása","noCategories":"Még nincsenek kategóriák","noTags":"Még nincsenek címkék","tagsSubheader":"Elérhető címkék:"},"title":"Beállítások","vuetorrent":{"general":{"check_new":"Új verzió keresése","currentVersion":"Jelenlegi verzió","customTitle":"Egyéni cím","dateFormat":"Dátumformátum","download":"Beállítások exportálása","fileContentInterval":"Torrent fájltartalom frissítési intervalluma","hideChipIfUnset":"Csempék elrejtése, ha nincsenek beállítva","historySize":"Előzmények mérete a jogosult mezőkön","import":"Beállítások importálása","isDrawerRight":"Jobb oldali fiók","isShutdownButtonVisible":"Leállítás gomb megjelenítése","language":"Nyelv","paginationSize":{"infinite_scroll":"Végtelen görgetés","label":"Lapozási méret","warning":"A magas értékek használata befolyásolhatja a teljesítményt"},"qbittorrentVersion":"qBittorrent verzió","refreshInterval":"qBittorrent API frissítési intervalluma","registerMagnet":"Mágnes linkek regisztrálása","resetSettings":"Beállítások visszaállítása","showAlltimeStat":"Összes idő statisztikájának megjelenítése","showCurrentSpeed":"Aktuális sebesség megjelenítése","showFreeSpace":"Szabad hely megjelenítése","showSessionStat":"Munkamenet statisztikájának megjelenítése","showSpeedGraph":"Sebességgrafikon megjelenítése","tip":"Ezek a beállítások a testreszabott WebUI-ra vonatkoznak","useBinarySize":"Az adatméretek bináris egységekre való cseréje (kB -> KiB)","useBitSpeed":"A sebességértékek bitekre való cseréje (kB/s -> kbps)","vueTorrentTitle":"Fül cím"},"torrentCard":{"grid":{"busyTip":"A befejezetlen torrentek megjelenítendő tulajdonságai rács nézetben","doneTip":"A befejezett torrentek megjelenítendő tulajdonságai rács nézetben"},"list":{"busyTip":"A befejezetlen torrentek megjelenítendő tulajdonságai lista nézetben","doneTip":"A befejezett torrentek megjelenítendő tulajdonságai lista nézetben"},"table":{"tip":"A torrentek megjelenítendő tulajdonságai táblázat nézetben"}}},"webUI":{"authentication":{"banDuration":"Kitiltás időtartama","banDurationHint":"Másodpercekben","bypassLocalhost":"Hitelesítés megkerülése a localhoston lévő kliensek számára","bypassWhitelist":"Hitelesítés megkerülése a fehérlistán szereplő IP-alhálózatokban lévő kliensek számára","maxAttempts":"Maximális próbálkozások száma","password":"Jelszó","passwordPlaceholder":"(változatlan)","sessionTimeout":"Munkamenet időkorlát","sessionTimeoutHint":"Másodpercekben","subheader":"Hitelesítés","username":"Felhasználónév","whitelistExamples":"Példa: 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"Egyéni HTTP fejlécek hozzáadása","customHeadersHint":"Soronként egy","customHeadersPlaceholder":"Fejléc1: érték1\\nFejléc2: érték2\\n...","dynDns":{"domainName":"Domain név","password":"Jelszó","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"Regisztráció","subheader":"Dinamikus domain név frissítése","username":"Felhasználónév"},"https":{"certificate":"Tanúsítvány","key":"Kulcs","subheader":"HTTPS használata","tip":"Tanúsítványokkal kapcsolatos információk"},"interface":{"ipAddress":"IP-cím","port":"Port","subheader":"Web Felhasználói Felület","useAlternativeWebUI":"Alternatív WebUI használata","useUPnP":"UPnP / NAT-PMP port továbbítás használata a routeremen"},"proxiesList":"Megbízható proxyk listája","proxiesListHint":"Az IP-címek pontosvesszővel ( ; ) elválasztva","reverseProxySupport":"Fordított proxy támogatás engedélyezése","security":{"clickjacking":"Clickjacking védelem engedélyezése","csrf":"Cross-Site Request Forgery (CSRF) védelem engedélyezése","hostHeaderValidation":"Host fejléc érvényesítésének engedélyezése","hostHeaderValidationHint":"Pontosvesszővel ( ; ) elválasztva","secureCookie":"Cookie \\"biztonságos\\" jelzőjének engedélyezése (HTTPS szükséges)","serverDomains":"Szerver Domainek","subheader":"Biztonság"}}}');
    VO = {
        add: {
            error: "Hiba történt a torrentek hozzáadása közben",
            pending: "Torrentek küldése...",
            success: "{n} torrent hozzáadva | {n} torrentek hozzáadva"
        },
        copy: {
            error: "Nem lehet másolni, a kontextus nem biztonságos!",
            success: "Vágólapra másolva!"
        },
        magnet_handler: {
            not_supported: "Az aktuális kontextus nem biztonságos. Nem lehet regisztrálni a kezelőt.",
            registered: "Mágnes kezelő regisztrálva."
        },
        qbit: {
            not_supported: "Csak qbit >= {version} verzió esetén érhető el"
        },
        version: {
            new: "Új verzió elérhető!"
        }
    };
    WO = {
        actions: {
            delete: "Torrentek törlése",
            logs: "Naplók megnyitása",
            pause: "Torrentek szüneteltetése",
            resume: "Torrentek folytatása",
            rssArticles: "RSS cikkek megnyitása",
            searchEngine: "Keresőmotor megnyitása",
            settings: "Beállítások megnyitása"
        },
        addTorrents: "Torrentek hozzáadása",
        overflow: {
            delete: "Törlés",
            logs: "qBittorrent naplók",
            pause: "Szüneteltetés",
            resume: "Folytatás",
            rssArticles: "RSS Cikkek",
            searchEngine: "Keresőmotor",
            settings: "Beállítások"
        },
        searchTorrents: "Torrentek keresése"
    };
    GO = {
        content: {
            fileInfo: "{n} fájl | {n} fájlok",
            filter_placeholder: "Keresés a fájlfa-ban",
            folderInfo: "{n} mappa | {n} mappák",
            priority: "Prioritás beállítása",
            rename: {
                bulk: "Tömeges átnevezés",
                file: "Átnevezés",
                folder: "Mappa átnevezése"
            },
            rootNode: "(Gyökér)"
        },
        info: {
            boolean_values: "Logikai értékek",
            data_values: "Adatértékek",
            datetime_values: "Dátumidő értékek",
            duration_values: "Időtartam értékek",
            long_text_values: "Hosszú szöveg értékek",
            speed_values: "Sebesség értékek",
            text_values: "Szöveg értékek"
        },
        overview: {
            canvasRefreshDisabled: "Vászon automatikus frissítése letiltva",
            canvasRenderDisabled: "Vászon renderelése letiltva",
            copy_hash: "Hash másolása",
            dlSpeedAverage: "Átlagos letöltési sebesség",
            downloaded: "Letöltve",
            fetchingMetadata: "Lekérés...",
            fileCount: "Kiválasztott fájlok",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "Arány",
            selectedFileSize: "Kiválasztott fájlok mérete",
            uploaded: "Feltöltve",
            upSpeedAverage: "Átlagos feltöltési sebesség",
            waitingForMetadata: "Várakozás a metaadatokra..."
        },
        peers: {
            addPeers: {
                newPeers: "Hozzáadandó peer hosztok",
                newPeersHint: "Soronként egy",
                newPeersPlaceholder: "hoszt:port",
                title: "Peerek hozzáadása"
            },
            empty: "Jelenleg nincsenek csatlakoztatott peerek",
            fields: {
                client: "Ügyfél",
                download: "Letöltés",
                flags: "Jelzők",
                host: "Hoszt",
                progress: "Haladás",
                relevance: "Relevancia",
                upload: "Feltöltés"
            }
        },
        tabs: {
            content: "Tartalom",
            info: "Információ",
            overview: "Áttekintés",
            peers: "Peerek",
            tagsAndCategories: "Címkék & Kategóriák",
            trackers: "Követők"
        },
        tagsAndCategories: {
            categories: "Kategóriák",
            tags: "Címkék"
        },
        title: "Torrent Részletei",
        trackers: {
            addTrackers: {
                newTrackers: "Hozzáadandó követő URL-ek",
                newTrackersHint: "Soronként egy, szintek elválasztása üres sorral",
                title: "Követők hozzáadása"
            },
            editTracker: {
                newUrl: "Új URL",
                newUrlRequired: "Új URL szükséges",
                oldUrl: "Régi URL",
                title: "Követő szerkesztése"
            },
            fields: {
                num_downloaded: "Letöltve",
                num_peers: "Peerek",
                num_seeds: "Seedek"
            },
            reannounce: "Összes újrahirdetése",
            tier: "Szint: {n}"
        }
    };
    $O = {
        properties: {
            added_on: "Hozzáadva",
            amount_left: "Hátralévő mennyiség",
            auto_tmm: "Automatikus Torrent Kezelés",
            availability: "Elérhetőség",
            available_peers: "Peerek (raj)",
            available_seeds: "Seedek (raj)",
            avg_download_speed: "Átlagos Letöltési Sebesség",
            avg_upload_speed: "Átlagos Feltöltési Sebesség",
            category: "Kategória",
            comment: "Megjegyzés",
            completed_on: "Befejezve",
            content_path: "Tartalom Útvonala",
            created_by: "Létrehozta",
            creation_date: "Létrehozás Dátuma",
            downloaded: "Letöltve (globális)",
            downloaded_session: "Letöltve (munkamenet)",
            download_limit: "Letöltési Korlát",
            download_path: "Letöltési Útvonal",
            download_speed: "Letöltési Sebesség",
            empty_category: "(nincs kategória)",
            empty_tags: "(nincsenek címkék)",
            empty_tracker: "(nincs követő)",
            eta: "Becsült Idő",
            f_l_piece_prio: "Első / Utolsó Darab Prioritása",
            forced: "Kényszerített állapot",
            global_speed: "Globális Sebesség",
            global_volume: "Globális Mennyiség",
            hash: "Hash",
            inactive_seeding_time_limit: "Inaktív seedelési időkorlát",
            infohash_v1: "Infohash v1",
            infohash_v2: "Infohash v2",
            is_private: "Privát torrent",
            last_activity: "Utolsó Aktivitás",
            magnet: "Mágnes Link",
            name: "Torrent Cím",
            nb_connections: "Összes kapcsolat",
            nb_connections_limit: "Kapcsolat korlát",
            num_leechs: "Peerek (csatlakoztatva)",
            num_seeds: "Seedek (csatlakoztatva)",
            peers: "Peerek",
            priority: "Prioritás",
            progress: "Haladás",
            progress_bar: "Haladás Sáv",
            ratio: "Arány",
            ratio_limit: "Arány korlát",
            reannounce: "Következő újrahirdetés",
            save_path: "Mentési Útvonal",
            seeding_time: "Seedelési idő",
            seeding_time_limit: "Seedelési idő korlát",
            seeds: "Seedek",
            seen_complete: "Teljesként Látva",
            seq_dl: "Szekvenciális Letöltés",
            size: "Méret",
            state: "Állapot",
            super_seeding: "Szuper Seedelés Mód",
            tags: "Címkék",
            time_active: "Aktív Idő",
            total_size: "Teljes Méret",
            total_wasted: "Elpazarolt adat",
            tracker: "Követő",
            trackers_count: "Követők Száma",
            uploaded: "Feltöltve (globális)",
            uploaded_session: "Feltöltve (munkamenet)",
            upload_limit: "Feltöltési Korlát",
            upload_speed: "Feltöltési Sebesség"
        },
        state: {
            checking_resume_data: "Folytatási adatok ellenőrzése",
            dl_forced: "[F] Letöltés",
            dl_queued: "Sorbaállítva (DL)",
            dl_stalled: "Megakadt",
            downloading: "Letöltés",
            error: "Hiba",
            meta_download: "Metaadatok",
            missing_files: "Hiányzó Fájlok",
            moving: "Áthelyezés",
            ul_forced: "[F] Feltöltés",
            ul_queued: "Sorbaállítva (UP)",
            ul_stalled: "Seedelés",
            unknown: "Ismeretlen",
            uploading: "Feltöltés"
        }
    };
    UO = {
        minutes: "perc | perc | percek",
        seconds: "másodperc | másodperc | másodpercek"
    };
    jO = {
        common: PO,
        constants: BO,
        dashboard: MO,
        dialogs: RO,
        login: LO,
        logs: IO,
        navbar: zO,
        rssArticles: NO,
        searchEngine: OO,
        settings: HO,
        toast: VO,
        topbar: WO,
        torrentDetail: GO,
        torrent: $O,
        units: UO
    };
    YO = {
        cancel: "Annulla",
        close: "Chiudi",
        delete: "Elimina",
        disable: "Disabilita",
        disabled: "Disabilitato",
        emptyList: "Niente da vedere qui!",
        NA: "N/D",
        no: "No",
        ok: "OK",
        save: "Salva",
        search: "Cerca",
        selectAll: "Seleziona Tutto",
        useGlobalSettings: "Usa Impostazioni Globali",
        yes: "Sì"
    };
    qO = {
        addStopped: {
            always: "Sempre",
            never: "Mai",
            title: "Aggiungi in Pausa"
        },
        auto_delete_mode: {
            always: "Sempre",
            never: "Mai"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP e μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Connesso",
            disconnected: "Disconnesso",
            firewalled: "Bloccato dal Firewall",
            unknown: "Sconosciuto"
        },
        contentLayout: {
            nosubfolder: "Rimuovi Sottocartella",
            original: "Originale",
            subfolder: "Crea Sottocartella",
            title: "Struttura Contenuti Torrent"
        },
        diskIoMode: {
            disableOsCache: "Disabilita Cache di Sistema",
            enableOsCache: "Abilita Cache di Sistema",
            writeThrough: "Write-through (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "Predefinito",
            memoryMappedFiles: "File mappati in memoria",
            posixCompliant: "Conforme a POSIX"
        },
        encryption: {
            forceOff: "Disabilita Crittografia",
            forceOn: "Richiedi Crittografia",
            preferEncryption: "Consenti Crittografia"
        },
        file_log_age_type: {
            days: "Giorni",
            months: "Mesi",
            years: "Anni"
        },
        file_priority: {
            high: "Alta",
            max: "Massima",
            normal: "Normale",
            unwanted: "Indesiderato"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Percorso di Salvataggio Predefinito",
            monitoredFolder: "Posizione Cartella Monitorata",
            other: "Altro"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Ogni Giorno",
            everyFriday: "Ogni Venerdì",
            everyMonday: "Ogni Lunedì",
            everySaturday: "Ogni Sabato",
            everySunday: "Ogni Domenica",
            everyThursday: "Ogni Giovedì",
            everyTuesday: "Ogni Martedì",
            everyWednesday: "Ogni Mercoledì",
            everyWeekday: "Ogni giorno feriale",
            everyWeekend: "Ogni fine settimana"
        },
        shareLimitAction: {
            removeTorrent: "Rimuovi il Torrent",
            removeTorrentAndFiles: "Rimuovi il Torrent e rispettivi File",
            stopTorrent: "Pausa il Torrent",
            torrentSuperseeding: "Abilita il Super Seeding per il Torrent"
        },
        stopCondition: {
            filesChecked: "File Controllati",
            metadataReceived: "Metadati Ricevuti",
            none: "Nessuna",
            title: "Condizione di Stop del Torrent"
        },
        titleOptions: {
            custom: "Personalizzato",
            default: "Predefinito",
            first_torrent_speed: "Velocità del primo Torrent",
            global_speed: "Velocità Globale"
        },
        trackerStatus: {
            disabled: "Disabilitato",
            not_working: "Non funzionante",
            not_yet_contacted: "Non ancora contattato",
            updating: "In Aggiornamento",
            working: "Funzionante"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-leech",
            fastestUpload: "Upload più Rapido",
            roundRobin: "Round-robin"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Slot fissi",
            uploadRateBased: "Basato su Upload"
        },
        utpTcpMixedMode: {
            peerProportional: "Peer proportional (regola il TCP)",
            preferTcp: "Preferisci TCP"
        }
    };
    KO = {
        displayMode: {
            grid: "Griglia",
            list: "Lista",
            table: "Tabella",
            title: "Modalità di Visualizzazione"
        },
        not_complete: "Mai Visto Completo",
        right_click: {
            advanced: {
                auto_tmm: "Gestione Torrent Automatica ",
                download_path: "Imposta Percorso di Download",
                f_l_prio: "Prima / Ultima Priorità",
                reannounce: "Forza Riannuncio",
                recheck: "Forza Ricontrollo",
                rename: "Rinomina Torrent",
                save_path: "Imposta Percorso di Salvataggio",
                seq_dl: "Download Sequenziale",
                title: "Avanzate"
            },
            category: {
                clear: "(Rimuovi Categoria)",
                disabled_title: "Nessuna Categoria",
                title: "Imposta Categoria"
            },
            copy: {
                hash: "Hash",
                magnet: "Magnet",
                name: "Nome",
                title: "Copia"
            },
            export: "Esporta Torrent | Esporta i Torrent",
            info: "Mostra Informazioni",
            priority: {
                bottom: "Priorità Minima",
                decrease: "Diminuisci Priorità",
                increase: "Aumenta Priorità",
                title: "Imposta Priorità",
                top: "Priorità Massima"
            },
            speed_limit: {
                download: "Imposta Limite di Download",
                share: "Imposta Limite di Condivisione",
                title: "Imposta Limite di Velocità",
                upload: "Imposta Limite di Upload"
            },
            tags: {
                clear_all: "Rimuovi tutte",
                disabled_title: "Nessuna Etichetta",
                title: "Imposta Etichetta"
            }
        },
        searchInputLabel: "Cerca",
        selectAll: "(De)seleziona Tutto (Ctrl + A)",
        selectedTorrentsCount: "Nessun Torrent | {count} di {total} Torrent ({size}) | {count} di {total} Torrent ({size})",
        sortLabel: "Ordina per",
        toggleSearchFilter: "Attiva/disattiva filtro di ricerca",
        toggleSelectMode: "Attiva/disattiva modalità di selezione",
        toggleSortOrder: "Ordinamento Inverso",
        torrentsCount: "Nessun Torrent | {n} Torrent | {n} Torrent"
    };
    XO = {
        add: {
            cookie: "Cookie",
            cookie_placeholder: "nome1=valore1; nome2=valore2; ...",
            drop_label: "Trascina qui link e file torrent",
            file_overflow: "+{n} altri",
            files: "Seleziona i File",
            first_last_piece_prio: "Dai priorità al primo e all'ultimo pezzo",
            links: "Link (magnet, http, file, ...)",
            rename: "Rinomina Torrent",
            reset_form: "Resetta modulo",
            sequential_download: "Download Sequenziale",
            submit: "Aggiungi Torrent",
            title: "Aggiungi Torrent"
        },
        category: {
            name: "Nome Categoria",
            nameRequired: "Nome Categoria Obbligatorio",
            oldName: "Vecchio Nome Categoria",
            savePath: "Percorso di Salvataggio",
            title: {
                create: "Crea Categoria",
                edit: "Modifica Categoria"
            },
            warnEdit: "Modificare il nome della categoria migrerà i torrent alla nuova categoria. Potrebbero verificarsi errori, usare con cautela."
        },
        connectionStatus: {
            dht_nodes: "Nodi DHT",
            externalIp: "Indirizzo IP Esterno",
            status: "Stato Connessione"
        },
        delete: {
            title: "Elimina {n} Torrent | Elimina {n} Torrent",
            warnDelete: "Spuntando questa casella verranno eliminati tutti i contenuti in quei torrent"
        },
        moveTorrent: {
            dl: {
                title: "Cambia Percorso di Download"
            },
            newPath: "Nuovo Percorso",
            oldPath: "Percorso Precedente",
            required: "È necessario un nuovo percorso",
            samePath: "Il nuovo percorso deve essere diverso dal precedente",
            save: {
                title: "Cambia Percorso di Salvataggio"
            }
        },
        moveTorrentFile: {
            oldName: "Nome precedente",
            title: "Sposta File Torrent | Sposta Cartella Torrent"
        },
        pluginManager: {
            headers: {
                actions: "Azioni",
                enabled: "Abilitato",
                name: "Nome",
                url: "Motore URL",
                version: "Versione"
            },
            install: {
                activator: "Installa un nuovo plugin",
                label: "URL del Plugin",
                title: "Installa Plugin"
            },
            title: "Gestore Plugin",
            update: "Aggiorna i Plugin"
        },
        renameTorrent: {
            newName: "Nuovo Nome",
            oldName: "Nome precedente",
            required: "È necessario un nuovo nome",
            sameName: "Il nuovo nome deve essere diverso dal precedente",
            title: "Rinomina Torrent"
        },
        rss: {
            feed: {
                name: "Nome",
                title: {
                    create: "Crea Feed RSS",
                    edit: "Modifica Feed RSS"
                },
                url: "URL"
            },
            rule: {
                affectedFeedsSubheader: "Feed Interessati",
                assignedCategory: "Categoria Assegnata",
                episodeFilter: "Filtro Episodio",
                episodeFilterPlaceholder: "es. S01E02-S01E05",
                ignoreDays: "Ignora gli elementi pubblicati negli ultimi {days} giorni",
                ignoreDaysHint: "0 per disabilitare",
                lastMatch: {
                    knownValue: "oggi | {n} giorno fa | {n} giorni fa",
                    label: "Ultima corrispondenza",
                    unknownValue: "Sconosciuto"
                },
                mustContain: "Deve contenere",
                mustNotContain: "Non deve contenere",
                name: "Nome",
                savePath: "Percorso di Salvataggio",
                savePathPlaceholder: "Lascia vuoto per utilizzare il percorso di salvataggio predefinito",
                smartFilter: "Utilizza il filtro Episodio intelligente",
                title: {
                    create: "Crea Regola RSS",
                    edit: "Modifica Regola RSS"
                }
            }
        },
        share_limit: {
            disabled: "Disabilita Limite di Condivisione ",
            enabled: "Imposta Limite di Condivisione a",
            global: "Usa limite di condivisione globale",
            inactive_seeding_time_limit: "Minuti di inattività",
            ratio_limit: "Rapporto",
            seeding_time_limit: "Minuti totali",
            title: "Imposta Limite Rapporto di Condivisione"
        },
        shutdown: {
            content: "Vuoi davvero arrestare qBittorrent?",
            error: "Impossibile arrestare l'app. Assicurati che qBittorrent sia in esecuzione!",
            success: "qBittorrent è stato arrestato con successo!",
            title: "Arresta qBittorrent"
        },
        speed_limit: {
            download: "Imposta Limite Velocità di Download",
            label: "Limite di Velocità",
            upload: "Imposta Limite Velocità di Upload"
        },
        tag: {
            comma: "Il nome non può contenere una virgola quando si rinomina una etichetta",
            hint: "Suggerimento: è possibile creare più etichette separandole con una virgola",
            name: "Nome Etichetta",
            oldName: "Vecchio nome etichetta",
            required: "L'etichetta necessita di un nome",
            title: {
                create: "Crea Etichetta",
                rename: "Rinomina Etichetta"
            },
            warnEdit: "Modificare il nome dell'etichetta migrerà i torrent alla nuova etichetta. Potrebbero verificarsi errori, usare con cautela."
        }
    };
    JO = {
        error: "Accesso fallito!",
        password: "Password",
        rules: {
            password_required: "Password richiesta",
            username_required: "Nome utente richiesto"
        },
        submit: "Accedi",
        subtitle: "Inserisci le tue credenziali",
        success: "Accesso riuscito!",
        title: "Accedi",
        username: "Nome utente"
    };
    ZO = {
        emptyLogList: "Nessun log trovato",
        filters: {
            query: "Cerca nel log",
            type: "Livello log"
        },
        title: "Log qBittorrent"
    };
    QO = {
        addPanel: {
            torrentsPendingCount: "{n} Torrent in attesa di Upload | {n} Torrent in attesa di Upload"
        },
        side: {
            bottom_actions: {
                alt_speed: "Attiva/disattiva velocità alternativa",
                conn_status: "Stato Connessione: {status}",
                logout: "Disconnettiti",
                shutdown: "Arresta qBittorrent"
            },
            current_speed: {
                title: "Velocità attuale"
            },
            filters: {
                activeFilter: "{n} filtri attivi",
                category: {
                    empty: "(Senza categoria)",
                    title: "Filtro Categoria"
                },
                disabled: "(Disabilitato)",
                state: {
                    title: "Filtro Stato Torrent"
                },
                tag: {
                    empty: "(Senza etichetta)",
                    title: "Filtro Etichetta"
                },
                tracker: {
                    empty: "(Senza tracker)",
                    title: "Filtro Tracker"
                }
            },
            speed_graph: {
                download_label: "Download",
                upload_label: "Upload",
                upload_limit_label: "Limite di Upload"
            },
            stats: {
                alltime: {
                    title: "Statistiche Totali"
                },
                downloaded: "Scaricati",
                free_space: "Spazio libero",
                ratio: "Rapporto",
                session: {
                    title: "Statistiche Sessione"
                },
                uploaded: "Caricati"
            }
        },
        top: {
            active_filters: {
                category: "Filtro Categoria: {value}",
                menu_label: "Filtro attivo: {n} | Filtri attivi: {n} ",
                multiple_category: "Filtro Categoria: {n} categorie",
                multiple_state: "Filtro di stato: {n} stati",
                multiple_tag: "Filtro etichetta: {n} etichette",
                multiple_tracker: "Filtro Tracker: {n} tracker",
                state: "Filtro di stato: {value}",
                tag: "Filtro etichetta: {value}",
                text: "Filtro di testo: {value}",
                tracker: "Filtro Tracker: {value} tracker"
            }
        }
    };
    eH = {
        feeds: {
            empty: {
                action: "Crea Feed RSS"
            },
            filters: {
                title: "Filtro per titolo",
                unread: "Mostra solo gli articoli non letti"
            },
            item: {
                author: "Autore: {author}",
                category: "Categoria: {category}",
                feedName: "Nome feed: {name}"
            }
        },
        rules: {
            empty: {
                action: "Crea Regola RSS"
            }
        }
    };
    tH = {
        add: {
            error: "Errore durante l'aggiunta dei torrent",
            pending: "Inviando torrent...",
            success: "{n} Torrent aggiunto | {n} Torrent aggiunti"
        }
    };
    aH = {
        peers: {
            fields: {
                download: "Download",
                progress: "Avanzamento",
                upload: "Upload"
            }
        },
        trackers: {
            fields: {
                num_downloaded: "Scaricati"
            }
        }
    };
    rH = {
        properties: {
            avg_download_speed: "Velocità DL Media",
            avg_upload_speed: "Velocità UL Media",
            priority: "Priorità",
            seeding_time: "Tempo di Seeding",
            seeding_time_limit: "Limite Tempo di Seeding"
        }
    };
    nH = {
        common: YO,
        constants: qO,
        dashboard: KO,
        dialogs: XO,
        login: JO,
        logs: ZO,
        navbar: QO,
        rssArticles: eH,
        toast: tH,
        torrentDetail: aH,
        torrent: rH
    };
    iH = {
        cancel: "キャンセル",
        close: "閉じる",
        delete: "削除",
        disable: "無効",
        disabled: "無効",
        edit: "編集",
        emptyList: "何も見つかりませんでした。",
        global_value: "グローバル値",
        NA: "N/A",
        no: "いいえ",
        none: "(なし)",
        ok: "OK",
        pause: "一時停止",
        refresh: "更新",
        resume: "再開",
        save: "保存",
        search: "検索",
        selectAll: "すべて選択",
        selectNone: "選択解除",
        useGlobalSettings: "グローバル設定を使用する",
        yes: "はい"
    };
    oH = {
        addStopped: {
            always: "常に",
            never: "一度もない",
            title: "一時停止を追加"
        },
        auto_delete_mode: {
            always: "常に",
            never: "一度もない"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCPとμTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "接続済み",
            disconnected: "切断されました",
            firewalled: "ファイアウォールにより接続不能",
            unknown: "不明"
        },
        contentLayout: {
            nosubfolder: "サブフォルダーを削除",
            original: "オリジナル",
            subfolder: "サブフォルダーの作成",
            title: "Torrentコンテンツのレイアウト"
        },
        diskIoMode: {
            disableOsCache: "OSキャッシュを無効にする",
            enableOsCache: "OSキャッシュを有効にする",
            writeThrough: "同期 (Write-Through) 書き込みモード (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "デフォルト",
            memoryMappedFiles: "メモリマップドファイル",
            posixCompliant: "POSIX準拠"
        },
        encryption: {
            forceOff: "暗号化を無効にする",
            forceOn: "暗号化を必須にする",
            preferEncryption: "暗号化を許可する"
        },
        file_log_age_type: {
            days: "日 | 日 | 日",
            months: "月 | 月 | 月",
            years: "年 | 年 | 年"
        },
        file_priority: {
            high: "高",
            max: "最高",
            mixed: "混合",
            normal: "通常",
            unwanted: "不要"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "デフォルトの保存先パス",
            monitoredFolder: "監視対象フォルダーの場所",
            other: "その他"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "毎日",
            everyFriday: "毎週金曜日",
            everyMonday: "毎週月曜日",
            everySaturday: "毎週土曜日",
            everySunday: "毎週日曜日",
            everyThursday: "毎週木曜日",
            everyTuesday: "毎週火曜日",
            everyWednesday: "毎週水曜日",
            everyWeekday: "毎週平日",
            everyWeekend: "毎週末"
        },
        shareLimitAction: {
            removeTorrent: "Torrentを削除する",
            removeTorrentAndFiles: "Torrentとそのファイルを削除する",
            stopTorrent: "Torrentを一時停止する",
            torrentSuperseeding: "Torrentのスーパーシードモードを有効にする"
        },
        stopCondition: {
            filesChecked: "ファイルのチェック後",
            metadataReceived: "メタデータの受信後",
            none: "なし",
            title: "Torrentの停止条件"
        },
        themes: {
            dark: {
                legacy: "レガシー",
                redesigned: "リデザイン"
            },
            light: {
                legacy: "レガシー",
                redesigned: "リデザイン"
            }
        },
        titleOptions: {
            custom: "カスタム",
            default: "デフォルト",
            first_torrent_speed: "最初のTorrent速度",
            global_speed: "全体速度"
        },
        trackerStatus: {
            disabled: "無効",
            not_working: "動作していない",
            not_yet_contacted: "コンタクトできていない",
            updating: "更新中",
            working: "動作中"
        },
        uploadChokingAlgorithm: {
            antiLeech: "アンチリーチ",
            fastestUpload: "最速アップロード",
            roundRobin: "ラウンドロビン"
        },
        uploadSlotsBehavior: {
            fixedSlots: "固定スロット数",
            uploadRateBased: "アップロード速度基準"
        },
        utpTcpMixedMode: {
            peerProportional: "ピアに比例 (TCPをスロットル)",
            preferTcp: "TCPを優先"
        }
    };
    sH = {
        displayMode: {
            grid: "グリッド",
            list: "リスト",
            table: "テーブル",
            title: "表示モード"
        },
        not_complete: "完了確認なし",
        right_click: {
            advanced: {
                auto_tmm: "自動Torrent管理",
                download_path: "ダウンロード先を設定",
                f_l_prio: "最初と最後のピースを優先",
                reannounce: "強制再アナウンス",
                recheck: "強制再チェック",
                rename: "Torrentの名前を変更",
                save_path: "保存先を設定",
                seq_dl: "シーケンシャルダウンロード",
                title: "高度な設定"
            },
            category: {
                clear: "(カテゴリーをクリア)",
                disabled_title: "カテゴリーなし",
                title: "カテゴリーを設定"
            },
            copy: {
                comment: "コメント",
                hash: "ハッシュ",
                magnet: "Magnet",
                name: "名前",
                title: "コピー"
            },
            export: "Torrentのエクスポート | Torrentのエクスポート",
            info: "情報を表示",
            priority: {
                bottom: "最低優先度",
                decrease: "優先度を下げる",
                increase: "優先度を上げる",
                title: "優先度の設定",
                top: "最優先"
            },
            speed_limit: {
                download: "DL速度制限を設定",
                share: "共有比制限を設定",
                title: "速度制限を設定",
                upload: "UP速度制限を設定"
            },
            tags: {
                clear_all: "すべて削除",
                disabled_title: "タグなし",
                title: "タグを設定"
            },
            top: {
                delete: "削除",
                force_resume: "強制再開",
                pause: "一時停止",
                resume: "再開"
            }
        },
        searchInputLabel: "検索",
        selectAll: "すべて選択/選択解除 (Ctrl + A) ",
        selectedTorrentsCount: "Torrentなし | {count} / {total} 個のTorrent ({size}) | {count} / {total} 個のTorrent ({size})",
        sortLabel: "並び替え",
        toggleSearchFilter: "検索フィルターの切り替え",
        toggleSelectMode: "選択モードの切り替え",
        toggleSortOrder: "並び順を変える",
        torrentsCount: "Torrentなし | {n}個のTorrent | {n}個のTorrent"
    };
    lH = {
        add: {
            cookie: "Cookie",
            cookie_placeholder: "name1=value1; name2=value2; ..",
            drop_label: "ここにTorrentファイルやリンクをドロップしてください",
            file_overflow: "+{n}個をもっと見る",
            files: "ファイルを選択",
            first_last_piece_prio: "最初と最後のピースを優先",
            instant_drop_label: "Torrentファイルやリンクを即座にダウンロード",
            links: "リンク (Magnet、HTTP、ファイル、...)",
            params: {
                add_to_top_of_queue: "キューの先頭に追加",
                category: "カテゴリー",
                download_limit: "DL速度制限",
                download_path: "ダウンロードパス (未完了時)",
                inactive_seeding_time_limit: "非アクティブシード時間制限",
                limit_collapse: "制限の設定",
                limit_hint: "無効にする場合は-1、グローバル値を使用する場合は-2または空欄にします",
                no_categories: "カテゴリはまだありません。名前を入力して作成します。",
                no_categories_match: "「{query}」に一致するカテゴリはありません。自動的に作成されます。",
                no_tags: "タグはまだありません。名前を入力して作成します。",
                no_tags_match: "「{query}」に一致するタグはありません。 Enterを押して作成します。",
                ratio_limit: "共有比制限",
                save_path: "保存先パス (完了時)",
                seeding_time_limit: "シード時間制限",
                skip_checking: "ハッシュチェックをスキップする",
                stopped: "ダウンロードを開始しない",
                tags: "タグ",
                title: "Torrentパラメーター",
                upload_limit: "UP速度制限",
                use_auto_tmm: "自動Torrent管理"
            },
            rename: "Torrentの名前を変更",
            reset_form: "フォームをリセット",
            sequential_download: "シーケンシャルダウンロード",
            submit: "Torrentを追加",
            title: "Torrentを追加"
        },
        bulkRenameFiles: {
            col_origin_name: "オリジナル",
            col_result_name: "結果",
            duplicated: "重複したファイル名",
            flags: "フラグ",
            fold: "折りたたむ",
            not_changed: "ファイル名は変更されていません",
            notForFolder: "フォルダ名の変更はサポートされていません",
            nothing_to_do: "実行するタスクはありません",
            regexp: "正規表現",
            run: "実行",
            select_regex_flags: "正規表現フラグを選択",
            success: "名前の変更に成功しました",
            target: "置換入力",
            title: "名前の一括変更",
            unfold: "展開"
        },
        category: {
            name: "カテゴリー名",
            nameRequired: "カテゴリー名は必須です",
            oldName: "古いカテゴリー名",
            savePath: "保存先パス",
            title: {
                create: "カテゴリーの作成",
                edit: "カテゴリーの編集"
            },
            warnEdit: "カテゴリー名を編集すると、Torrentが新しいカテゴリーに移行されます。エラーが発生する場合がありますので、注意して使用してください。"
        },
        connectionStatus: {
            dht_nodes: "DHTノード",
            externalIp: "外部IPアドレス",
            fetch_geo_failed: "位置情報の詳細を取得できません",
            fetch_isp_failed: "ISPの詳細を取得できません",
            geo_details: "位置情報の詳細",
            isp_details: "ISPの詳細",
            noExternalIp: "ログから検出できません",
            status: "接続状況",
            total_peer_connections: "アクティブなピア接続"
        },
        delete: {
            deleteWithFiles: "Torrentと一緒にファイルも削除する",
            title: "{n}個のTorrentを削除する | {n}個のTorrentを削除する",
            warnDelete: "このチェックボックスをオンにすると、Torrentに含まれるすべてのコンテンツが削除されます。"
        },
        importSettings: {
            required: "設定を提供する必要があります",
            title: "設定のインポート",
            valid: "有効な設定を入力してください"
        },
        moveTorrent: {
            dl: {
                title: "ダウンロード先を変更"
            },
            newPath: "新しいパス",
            oldPath: "古いパス",
            required: "新しいパスが必要です",
            samePath: "新しいパスは古いパスと異なる必要があります",
            save: {
                title: "保存先パスの変更"
            }
        },
        moveTorrentFile: {
            oldName: "古い名前",
            title: "Torrentファイルの移動 | Torrentフォルダの移動"
        },
        pluginManager: {
            headers: {
                actions: "アクション",
                enabled: "有効",
                name: "名前",
                url: "エンジンURL",
                version: "バージョン"
            },
            install: {
                activator: "新しいプラグインをインストールする",
                label: "プラグインURL",
                title: "プラグインをインストールする"
            },
            title: "プラグインマネージャー",
            update: "プラグインを更新する"
        },
        renameTorrent: {
            newName: "新しい名前",
            oldName: "古い名前",
            required: "新しい名前が必要です",
            sameName: "新しい名前は古い名前と異なる必要があります",
            title: "Torrentの名前を変更"
        },
        rss: {
            feed: {
                name: "名前",
                rules: {
                    name_required: "フィード名は必須です",
                    url_required: "フィードURLは必須です"
                },
                title: {
                    create: "RSSフィードを作成",
                    edit: "RSSフィードを編集"
                },
                url: "URL"
            },
            rule: {
                affectedFeedsSubheader: "影響を受けるフィード",
                assignedCategory: "割り当てられたカテゴリー",
                enabled: "ルールを有効にする",
                episodeFilter: "エピソードフィルター",
                episodeFilterPlaceholder: "例: S01E02-S01E05",
                ignoreDays: "過去{days}日間に公開されたアイテムを無視する",
                ignoreDaysHint: "0で無効",
                lastMatch: {
                    knownValue: "今日 | {n}日前 | {n}日前",
                    label: "最後の一致",
                    unknownValue: "不明"
                },
                matchingArticles: {
                    noMatch: "一致するフィードがありません",
                    title: "一致するフィード"
                },
                mustContain: "含む",
                mustNotContain: "含まない",
                name: "名前",
                savePath: "保存先パス",
                savePathPlaceholder: "デフォルトの保存先パスを使用する場合は空白のままにしてください",
                smartFilter: "スマートエピソードフィルターを使用する",
                title: {
                    create: "RSSルールを作成",
                    edit: "RSSルールの編集"
                },
                useRegex: "正規表現を使用する"
            }
        },
        share_limit: {
            disabled: "共有比制限を設定しない",
            enabled: "共有比制限を設定:",
            global: "グローバル共有比制限を使用する",
            inactive_seeding_time_limit: "非アクティブ時間 (分)",
            ratio_limit: "共有比",
            seeding_time_limit: "合計シード時間 (分)",
            title: "共有比制限を設定"
        },
        shutdown: {
            content: "本当にqBittorrentをシャットダウンしますか?",
            error: "アプリをシャットダウンできません。qBittorrentが実行中であることを確認してください!",
            success: "qBittorrentは正常にシャットダウンされました!",
            title: "qBittorrentをシャットダウンする"
        },
        speed_limit: {
            download: "DL速度制限を設定",
            label: "速度制限",
            upload: "UP速度制限を設定"
        },
        tag: {
            comma: "タグの名前を変更する場合、名前にカンマを含めることはできません",
            hint: "ヒント: カンマで区切ることで複数のタグを作成することができます。",
            name: "タグ名",
            oldName: "古いタグ名",
            required: "タグ名は必須です",
            title: {
                create: "タグの作成",
                rename: "タグ名の変更"
            },
            warnEdit: "タグ名を編集すると、Torrentが新しいタグに移行されます。エラーが発生する場合がありますので、注意して使用してください。"
        }
    };
    uH = {
        error: "ログインに失敗しました!",
        password: "パスワード",
        rules: {
            password_required: "パスワードは必須です",
            username_required: "ユーザー名は必須です"
        },
        submit: "ログイン",
        subtitle: "ログイン情報を入力してください",
        success: "ログインに成功しました!",
        title: "ログイン",
        username: "ユーザー名"
    };
    cH = {
        emptyLogList: "ログが見つかりません",
        filters: {
            query: "ログメッセージ内を検索",
            type: "ログレベル"
        },
        title: "qBittorrentログ"
    };
    dH = {
        addPanel: {
            torrentsPendingCount: "{n}個のTorrentがアップロードを待機中 | {n}個のTorrentがアップロードを待機中"
        },
        side: {
            bottom_actions: {
                alt_speed: "代替速度制限を切り替え",
                conn_status: "接続状況: {status}",
                logout: "ログアウト",
                shutdown: "qBittorrentをシャットダウンする"
            },
            current_speed: {
                title: "現在の速度"
            },
            filters: {
                activeFilter: "{n}個のフィルターがアクティブです",
                category: {
                    empty: "(未分類)",
                    title: "カテゴリーフィルター"
                },
                disabled: "(無効)",
                state: {
                    active: "アクティブ",
                    error: "エラー",
                    title: "Torrent状態フィルター"
                },
                tag: {
                    empty: "(タグなし)",
                    title: "タグフィルター"
                },
                tracker: {
                    empty: "(未追跡)",
                    title: "トラッカーフィルター"
                }
            },
            speed_graph: {
                download_label: "DL",
                download_limit_label: "DL速度制限",
                upload_label: "UP",
                upload_limit_label: "UP速度制限"
            },
            stats: {
                alltime: {
                    title: "過去の統計"
                },
                downloaded: "DL済み",
                free_space: "空き容量",
                ratio: "共有比",
                session: {
                    title: "セッション統計"
                },
                uploaded: "UP済み"
            }
        },
        top: {
            active_filters: {
                category: "カテゴリーフィルター: {value}",
                menu_label: "アクティブフィルター: {n}個 | アクティブフィルター: {n}個",
                multiple_category: "カテゴリーフィルター: {n}個のカテゴリー",
                multiple_state: "状態フィルター: {n}個の状態",
                multiple_tag: "タグフィルター: {n}個のタグ",
                multiple_tracker: "トラッカー フィルター: {n}個のトラッカー",
                state: "状態フィルター: {value}",
                tag: "タグフィルター: {value}",
                text: "テキストフィルター: {value}",
                tracker: "トラッカーフィルター: {value}"
            }
        }
    };
    hH = {
        feeds: {
            empty: {
                action: "RSSフィードを作成",
                value: "RSSフィードが登録されていません"
            },
            filters: {
                title: "タイトルフィルター",
                unread: "未読フィードのみ表示"
            },
            item: {
                author: "作者: {author}",
                category: "カテゴリー: {category}",
                feedName: "フィード名: {name}"
            },
            markAllAsRead: "すべて既読にする",
            markAsRead: "既読にする",
            promise: {
                error: "フィードをマークする際にエラーが発生しました",
                pending: "マーク中...",
                success: "{n}件のフィードが既読としてマークされました"
            },
            refreshAllFeeds: "すべてのフィードを更新",
            refreshPromise: {
                error: "フィードの更新中にエラーが発生しました",
                pending: "更新中...",
                success: "{n}フィードが更新されました"
            },
            title: "RSSフィード"
        },
        rules: {
            empty: {
                action: "RSSルールを作成",
                value: "RSSルールが登録されていません"
            },
            title: "RSSルール"
        },
        toggle: {
            feeds: "フィードを表示",
            rules: "ルールを表示"
        }
    };
    mH = {
        filters: {
            category: {
                all: "全て",
                anime: "アニメ",
                books: "書籍",
                games: "ゲーム",
                label: "検索カテゴリー",
                movies: "映画",
                music: "音楽",
                pictures: "画像",
                software: "ソフトウェア",
                tv: "テレビ番組"
            },
            plugins: {
                all: "全て",
                enabled: "有効",
                label: "検索プラグイン"
            },
            title: {
                label: "タイトルで絞り込む"
            }
        },
        headers: {
            fileName: "ファイル名",
            fileSize: "ファイルサイズ",
            nbLeechers: "リーチャー数",
            nbSeeders: "シーダー数",
            siteUrl: "サイトURL"
        },
        query: "検索クエリ",
        runSearch: "検索",
        stopSearch: "停止",
        tabHeaderEmpty: "(空のクエリ)",
        title: "検索エンジン"
    };
    fH = JSON.parse('{"addons":{"enhanced_edition":{"auto_ban_bt_player_peer":"BTプレイヤーピアを自動的にアクセス禁止","auto_ban_unknown_peer":"不明なピアの自動アクセス禁止","auto_update_trackers":"公開トラッカーリストを自動的に更新する","public_trackers":"公開トラッカー","trackers_list_url":"トラッカーURLリストをカスタマイズ"}},"advanced":{"libtorrent":{"announceAllTiers":"常にすべてのティアにアナウンスする","announceAllTrackers":"常にティア内のすべてのトラッカーにアナウンスする","announceIP":"トラッカーに報告するIPアドレス (再起動が必要)","coalesceReadsWrites":"読み取りと書き込みを合成 (libtorrent < 2.0)","disk":{"diskCache":"ディスクキャッシュ (libtorrent < 2.0)","diskCacheExpiry":"ディスクキャッシュ期限切れ間隔 (libtorrent < 2.0)","diskIoReadMode":"ディスクI/O読み取りモード","diskIoType":"ディスクI/Oタイプ (libtorrent >= 2.0、再起動が必要)","diskIoWriteMode":"ディスクI/O書き込みモード","diskQueueSize":"ディスクキューサイズ","subheader":"ディスク"},"maxConcurrentHTTPAnnounces":"HTTPアナウンスの最大同時接続数","networking":{"outgoingPortsMax":"送信ポート (最大) [0: 無効]","outgoingPortsMin":"送信ポート (最小) [0: 無効]","peerTos":" ピアに接続するサービスの種類 (ToS)","subheader":"ネットワーク","upnpLeaseDuration":"UPnPのリース期間 [0: 永続リース]","utpTcpMixedModeAlgorithm":"μTP-TCP混合モードアルゴリズム"},"outgoingConnectionsPerSecond":"1秒あたりの外部接続数","peerTurnover":"ピアターンオーバーの切断の割合","peerTurnoverCutoff":"ピアターンオーバーのしきい値の割合","peerTurnoverInterval":"ピアターンオーバーの切断の間隔","pieceExtentAffinity":"ピースのエクステントアフィニティを使用する","requestQueueSize":"1つのピアへ送信する未処理リクエストの最大数","security":{"allowMultipleConnectionsFromTheSameIPAddress":"同じIPアドレスから複数の接続を許可する","blockPeersOnPrivilegedPorts":"特権ポートでのピアへの接続を許可しない","idnSupport":"国際化ドメイン名 (IDN) に対応する","mitigateSSRF":"サーバーサイドリクエストフォージェリ (SSRF) 対策","subheader":"セキュリティ","validateHTTPSTrackerCertificate":"HTTPSトラッカーの証明書を検証する"},"sendBufferLowWatermark":"送信バッファーのウォーターマーク最小値","sendBufferWatermark":"送信バッファーのウォーターマーク","sendBufferWatermarkFactor":"送信バッファーのウォーターマーク係数","sendUploadPieceSuggestions":"アップロードピースの提案を送信する","socketBacklogSize":"ソケットで保留にできる接続待ちの数","socketReceiveBufferSize":"ソケットの受信バッファサイズ","socketReceiveBufferSizeHint":"0: システムデフォルト","socketSendBufferSize":"ソケットの送信バッファサイズ","socketSendBufferSizeHint":"0: システムデフォルト","stopTrackerTimeout":"トラッカーのタイムアウトを停止","subheader":"libtorrentセクション","threads":{"asyncIoThreads":"非同期I/Oスレッド数","bdecodeDepthLimit":"Bdecodeの深度制限","bdecodeTokenLimit":"Bdecodeのトークン制限","filePoolSize":"ファイルプールサイズ","hashingThreads":"ハッシュ化のスレッド数 (libtorrent >= 2.0)","outstandingMemory":"Torrentのチェックに使用するメモリー量","subheader":"スレッド"},"uploadChokingAlgorithm":"アップロードのチョークアルゴリズム","uploadSlotsBehavior":"アップロードスロットの動作"},"openDoc":"ドキュメントを開く","qbittorrent":{"allocatedRam":"物理メモリ (RAM) の使用限度 (libtorrent >= 2.0)","embeddedTracker":{"enable":"組み込みトラッカーを有効にする","port":"組み込みトラッカーのポート","portForward":"組み込みトラッカーのポート転送を有効にする","title":"組み込みトラッカー"},"networking":{"ipAddress":{"all":"すべてのアドレス","allIPv4":"すべてのIPv4アドレス","allIPv6":"すべてのIPv6アドレス","label":"バインドする任意のIPアドレス"},"networkInterfaces":{"any":"任意のインターフェース","label":"ネットワークインターフェース"},"title":"ネットワーク"},"reannounceOnIpPortChanged":"IPまたはポートに変更があった場合にすべてのトラッカーに再アナウンスする","recheckOnCompletion":"Torrentの完了時に再チェックする","refreshInterval":"GUI更新間隔","resolveCountries":"ピアの国籍を解決する","resumeDataStorageType":{"label":"再開データのストレージタイプ (再起動が必要)","legacy":"Fastresumeファイル","sqlite":"SQLiteデータベース (実験的)"},"saveInterval":"再開データの保存間隔","subheader":"qBittorrentセクション","torrentFileSizeLimit":".torrentファイルのサイズ制限"}},"behavior":{"logs":{"file_log_age":"より古いバックアップログを削除する","file_log_backup_enabled":"ログファイルのバックアップを有効にする","file_log_delete_old":"古いバックアップログを削除する","file_log_enabled":"ログファイルを有効にする","file_log_max_size":"ログファイルをバックアップする間隔","file_log_path":"保存先パス","subheader":"ログ管理"},"performance_warning":"パフォーマンス警告をログに記録する"},"bittorrent":{"autoAddTrackers":"以下のトラッカーを新しいダウンロードに自動追加する","autoAddTrackersHint":"1行につき1トラッカー","maxActiveCheckingTorrents":"Torrentをチェックする最大アクティブ数","privacy":{"enableAnonymous":"匿名モードを有効にする","enableDHT":"DHT (分散型ネットワーク) を有効にする (ピア検出数の向上)","enableLPD":"ローカルピア検出 (LPD) を有効にする (ピア検出数の向上)","enablePeX":"ピア交換 (PeX) を有効にする (ピア検出数の向上)","encryptionMode":"暗号化モード","moreInfo":"詳細情報","subheader":"プライバシー"},"seedLimits":{"subheader":"シード制限","then":"から","whenInactiveSeedingTimeReaches":"非アクティブシード時間制限に達したとき","whenRatioReaches":"共有比制限に達したとき","whenSeedingTimeReaches":"シード時間制限に達したとき"},"torrentQueueing":{"downloadRateLimit":"DL速度のしきい値","excludeSlowTorrent":"これらの制限で低速なTorrentは数に含めない","maxActiveDownload":"アクティブDL数の上限","maxActiveTorrent":"アクティブTorrent数の上限","maxActiveUpload":"アクティブUP数の上限","subheader":"Torrentキュー","torrentInactivityTimer":"Torrent非アクティブタイマー","uploadRateLimit":"UP速度のしきい値"}},"connection":{"connectionLimits":{"globalMaxConnection":"グローバル最大接続数","globalMaxUploadSlots":"最大アップロードスロット数","perTorrentMaxConnection":"Torrentごとの最大接続数","perTorrentMaxUploadSlots":"Torrentごとの最大アップロードスロット数","subheader":"接続制限"},"ipFiltering":{"applyToTrackers":"トラッカーに適用する","bannedIps":"手動でアクセス禁止にしたIPアドレス","bannedIpsHint":"1行に1つずつ","filterPath":"フィルターパス (.dat、.p2p、.p2b)","subheader":"IPフィルタリング"},"listeningPort":{"incomingConnectionPort":"受信接続に使用するポート","randomPort":"ランダムなポート","subheader":"接続待ちポート","useUPnP":"ルーターからのポート転送にUPnP/NAT-PMPを使用する"},"protocol":"ピア接続プロトコル","proxy":{"auth":{"password":"パスワード","subtitle":"認証","tip":"注意: パスワードは暗号化されずに保存されます","username":"ユーザー名"},"bittorrent":"BitTorrentにプロキシを使用する","host":"ホスト","hostNameLookup":"ホスト名解決にプロキシを使用する","misc":"全般にプロキシを使用する","peerConnections":"ピア接続にプロキシを使用する","port":"ポート","rss":"RSSにプロキシを使用する","subheader":"プロキシサーバー"}},"downloads":{"excludedFileNames":{"hint":"1行に1つのフィルター","label":"除外ファイル名"},"mailNotification":{"authEnabled":"認証","enabled":"ダウンロード完了時のメール通知","from":"差出人(From)","password":"パスワード","smtpServer":"SMTPサーバー","sslEnabled":"このサーバーは安全な接続 (SSL) を必要とする","to":"宛先 (To)","username":"ユーザー名"},"monitoredFolders":{"actions":"アクション","confirmDelete":"このアイテムを削除してもよろしいですか?","editItem":"編集","monitoredFolderPath":"監視対象フォルダー","newItem":"新規","noData":"監視対象フォルダーはありません","otherPath":"その他のパス","saveType":"保存先を上書きする","subheader":"監視対象フォルダー"},"publicSettings":{"appendQBExtension":"未完了のファイルに.!qB拡張子を追加する","preAllocateDisk":"すべてのファイルにディスク領域を事前に割り当てる"},"runExternalProgram":{"onAddedEnabled":"Torrentの追加時に実行","onAddedLabel":"コマンド","onFinishedEnabled":"Torrentの完了時に実行","onFinishedLabel":"コマンド","subheader":"外部プログラムを実行","supportParamC":"%C: ファイル数","supportParamD":"%D: 保存先パス","supportParamF":"%F: コンテンツパス (複数ファイルTorrentのルートと同じ) ","supportParamG":"%G: タグ (カンマ区切り)","supportParamI":"%I: Infoハッシュ v1","supportParamJ":"%J: Infoハッシュ v2","supportParamK":"%K: Torrent ID","supportParamL":"%L: カテゴリー","supportParamN":"%N: Torrent名","supportParamR":"%R: ルートパス (最初のTorrentサブディレクトリのパス)","supportParamT":"%T: 現在のトラッカー","supportParamTitle":"使用できるパラメーター (大文字と小文字を区別する) :","supportParamZ":"%Z: Torrentのサイズ (バイト)","tip":"ヒント: 空白でテキストが切り取られるのを避けるために、引用符でパラメータを囲んでください (例: \\"％N\\")"},"saveManagement":{"autoTMMEnabled":"デフォルトのTorrent管理モード","categoryChangedTMM":"カテゴリ保存パスが変更された場合","defaultSavePath":"デフォルトの保存先パス (完了時)","defaultTMMOptions":{"automatic":"自動","manual":"手動"},"exportDir":".torrentファイルのコピー先","exportDirFinished":"完了した.torrentファイルのコピー先","keepIncomplete":"ダウンロードパス (未完了時)","paramChangedTMMOptions":{"relocateTorrent":"Torrentを再配置","switchToManual":"Torrentを手動モードに切り替える"},"savePathChangedTMM":"デフォルトの保存パスが変更されたとき","subheader":"保存管理","torrentChangedTMM":"Torrentのカテゴリーが変更されたとき"},"whenAddTorrent":{"addToTopOfQueue":"キューの先頭に追加","autoDeleteMode":"追加後に.torrentファイルを削除する","doNotAutoStart":"ダウンロードを自動的に開始しない","mergeTrackers":"既存のTorrentにトラッカーをマージする","subheader":"Torrentの追加時"}},"rss":{"autoDownloader":{"enable":"RSSルール処理を有効にする","subheader":"RSS Torrent自動ダウンローダー"},"reader":{"enableProcessing":"RSSフィードの取得を有効にする","feedsRefreshInterval":"フィードの更新間隔","maximumArticlesPerFeed":"フィードごとの記事数の上限","subheader":"RSSリーダー"},"smartEpisodeFilter":{"downloadEpisodes":"REPACK/PROPERエピソードをダウンロードする","filters":"フィルター","filtersHint":"1行に1つのフィルター","subheader":"RSS スマートエピソードフィルター"},"useIdForRssLinks":"RSS記事のリンクにIDを使用する"},"saveSuccess":"設定が保存されました!","speed":{"download":"ダウンロード","scheduler":{"from":"開始時間","selectButtonLabel":"時間を選択","subheader":"代替速度制限の使用をスケジュール","to":"終了時間","when":"いつ"},"settings":{"applyToPeersOnLan":"LAN上のピアに速度制限を適用する","applyToTransportOverhead":"トランスポートオーバーヘッドに速度制限を適用する","applyToUtp":"µTPプロトコルに速度制限を適用する"},"subheader":{"alternative":"代替速度制限","global":"グローバル速度制限","settings":"速度制限設定"},"tip":"0=無制限","upload":"アップロード"},"tabs":{"addons":{"enhanced_edition":"強化版"},"advanced":"高度な設定","behavior":"動作","bittorrent":"BitTorrent","connection":"接続","downloads":"ダウンロード","rss":"RSS","speed":"速度","tagsAndCategories":"タグ/カテゴリー","vuetorrent":{"general":"一般","title":"VueTorrent","torrent_card":{"grid":"グリッドビュー","list":"リストビュー","table":"テーブルビュー"}},"webui":"WebUI"},"tagsAndCategories":{"categoriesSubheader":"利用可能なカテゴリー:","createNewCategory":"新しいカテゴリーを作成","createNewTag":"新しいタグを作成","noCategories":"カテゴリーなし","noTags":"タグなし","tagsSubheader":"利用可能なタグ:"},"title":"設定","vuetorrent":{"general":{"check_new":"新しいバージョンを確認する","currentVersion":"現在のバージョン","customTitle":"カスタムタイトル","darkVariants":"ダークモード","dateFormat":"日付フォーマット","download":"設定のエクスポート","enableHashColors":"生成されたチップの色を有効にする","enableRatioColors":"共有比の色を有効にする","fileContentInterval":"Torrentファイルのコンテンツの更新間隔","hideChipIfUnset":"未設定の場合はチップを非表示にする","hideColoredChip":"チップのテキストバリアントを使用する","historySize":"対象フィールドの履歴サイズ","import":"設定のインポート","isDrawerRight":"右側のドロワー","isShutdownButtonVisible":"シャットダウンボタンを表示","language":"言語","lightVariants":"ライトモード","paginationSize":{"infinite_scroll":"無限スクロール","label":"ページネーションのサイズ","warning":"高い値を使用するとパフォーマンスに影響する可能性があります"},"qbittorrentVersion":"qBittorrentバージョン","refreshInterval":"qBittorrent API更新間隔","registerMagnet":"マグネットリンクを登録する","resetSettings":"設定をリセット","showAlltimeStat":"過去の統計を表示する","showCurrentSpeed":"現在の速度を表示する","showFreeSpace":"空き容量を表示する","showSessionStat":"セッション統計を表示する","showSpeedGraph":"速度グラフを表示する","tip":"これらの設定はカスタムWebUI自体のためのものです","useBinarySize":"データサイズの単位をバイナリ単位に置き換える (kB -> KiB)","useBitSpeed":"速度の値をビットに置き換える (kB/s -> kbps)","vueTorrentTitle":"タブのタイトル"},"torrentCard":{"grid":{"busyTip":"グリッドビューで表示する未完了のTorrentのプロパティ","doneTip":"グリッドビューで表示する完了したTorrentのプロパティ"},"list":{"busyTip":"リストビューで表示する未完了のTorrentのプロパティ","doneTip":"リストビューで表示する完了したTorrentのプロパティ"},"table":{"tip":"テーブルビューで表示するTorrentのプロパティ"}}},"webUI":{"authentication":{"banDuration":"アクセス禁止期間","banDurationHint":"秒単位","bypassLocalhost":"localhost上ではクライアントの認証を行わない","bypassWhitelist":"ホワイトリストに登録されたIPサブネット内のクライアントの認証を行わない","maxAttempts":"最大試行回数","password":"パスワード","passwordPlaceholder":"(変更なし)","sessionTimeout":"セッションタイムアウト","sessionTimeoutHint":"秒単位","subheader":"認証","username":"ユーザー名","whitelistExamples":"例: 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"カスタムHTTPヘッダーを追加する","customHeadersHint":"1行に1つのヘッダー","customHeadersPlaceholder":"Header1: 値1\\nHeader2: 値2\\n... ","dynDns":{"domainName":"ドメイン名","password":"パスワード","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"登録","subheader":"ダイナミックドメイン名を更新する","username":"ユーザー名"},"https":{"certificate":"証明書","key":"鍵","subheader":"HTTPSを使用する","tip":"証明書に関する情報"},"interface":{"ipAddress":"IPアドレス","port":"ポート","subheader":"Webユーザーインターフェース","useAlternativeWebUI":"代替WebUIを使用する","useUPnP":"ルーターからのポート転送にUPnP/NAT-PMPを使用する"},"proxiesList":"信頼できるプロキシのリスト","proxiesListHint":"IPはセミコロン(;)で区切る","reverseProxySupport":"リバースプロキシのサポートを有効にする","security":{"clickjacking":"クリックジャッキング保護を有効にする","csrf":"クロスサイトリクエストフォージェリ(CSRF)保護を有効にする","hostHeaderValidation":"ホストヘッダー検証を有効にする","hostHeaderValidationHint":"セミコロン(;)で区切る","secureCookie":"CookieのSecureフラグを有効にする (HTTPSが必要)","serverDomains":"サーバードメイン","subheader":"セキュリティ"}}}');
    pH = {
        add: {
            error: "Torrentの追加中にエラーが発生しました",
            pending: "Torrentを送信中...",
            success: "{n}個のTorrentが追加されました | {n}個のTorrentが追加されました"
        },
        copy: {
            error: "コピーできません。コンテキストがセキュリティで保護されていません。",
            success: "クリップボードにコピーしました!"
        },
        magnet_handler: {
            not_supported: "現在のコンテキストは安全ではありません。ハンドラーを登録できません。",
            registered: "マグネットハンドラーが登録されました。"
        },
        qbit: {
            not_supported: "qBittorrent >= {version}でのみ利用可能です"
        },
        version: {
            latest: "あなたは最新かつ最高のものをお使いです!",
            new: "新しいバージョンが利用可能です!"
        }
    };
    gH = {
        actions: {
            delete: "Torrentを削除",
            logs: "ログを開く",
            pause: "Torrentを一時停止",
            resume: "Torrentを再開",
            rssArticles: "RSS記事を開く",
            searchEngine: "検索エンジンを開く",
            settings: "設定を開く"
        },
        addTorrents: "Torrentを追加",
        overflow: {
            delete: "削除",
            logs: "qBittorrentログ",
            pause: "一時停止",
            resume: "再開",
            rssArticles: "RSSフィード",
            searchEngine: "検索エンジン",
            settings: "設定"
        },
        searchTorrents: "Torrentを検索"
    };
    vH = {
        content: {
            fileInfo: "{n}ファイル | {n}ファイル",
            filter_placeholder: "ファイルツリー内を検索",
            folderInfo: "{n}フォルダー | {n}フォルダー",
            priority: "優先度の設定",
            rename: {
                bulk: "名前の一括変更",
                file: "名前の変更",
                folder: "フォルダ名を変更"
            },
            rootNode: "(ルート)"
        },
        info: {
            boolean_values: "ブール値",
            data_values: "データ値",
            datetime_values: "日時の値",
            duration_values: "期間の値",
            long_text_values: "長いテキスト値",
            speed_values: "速度値",
            text_values: "テキスト値"
        },
        overview: {
            canvasRefreshDisabled: "キャンバスの自動更新が無効になっています",
            canvasRenderDisabled: "キャンバスのレンダリングが無効になっています",
            copy_hash: "ハッシュをコピー",
            dlSpeedAverage: "DL速度平均",
            downloaded: "DL済み",
            fetchingMetadata: "メタデータを取得中...",
            fileCount: "選択されたファイル",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "共有比",
            selectedFileSize: "選択されたファイルのサイズ",
            uploaded: "UP済み",
            upSpeedAverage: "UP速度平均",
            waitingForMetadata: "メタデータを待機中... "
        },
        peers: {
            addPeers: {
                newPeers: "追加するピアホスト",
                newPeersHint: "1行に1つのピア",
                newPeersPlaceholder: "ホスト:ポート",
                title: "ピアを追加する"
            },
            empty: "現在ピアが接続されていません",
            fields: {
                client: "クライアント",
                country: "国",
                download: "ダウンロード",
                files: "ファイル",
                flags: "フラグ",
                host: "ホスト",
                progress: "進捗状況",
                relevance: "関連性",
                upload: "アップロード"
            }
        },
        tabs: {
            content: "コンテンツ",
            info: "情報",
            overview: "概要",
            peers: "ピア",
            tagsAndCategories: "タグ/カテゴリー",
            trackers: "トラッカー"
        },
        tagsAndCategories: {
            categories: "カテゴリー",
            tags: "タグ"
        },
        title: "Torrentの詳細",
        trackers: {
            addTrackers: {
                newTrackers: "追加するトラッカーURL",
                newTrackersHint: "1行に1つ、空行でTierを区切る",
                title: "トラッカーを追加する"
            },
            editTracker: {
                newUrl: "新しいURL",
                newUrlRequired: "新しいURLが必要です",
                oldUrl: "古いURL",
                title: "トラッカーを編集する"
            },
            fields: {
                num_downloaded: "DL済み",
                num_peers: "ピア",
                num_seeds: "シード"
            },
            reannounce: "すべて再アナウンス",
            tier: "Tier: {n}"
        }
    };
    yH = {
        properties: {
            added_on: "追加日時",
            amount_left: "残り",
            auto_tmm: "自動Torrent管理",
            availability: "可用性",
            available_peers: "ピア (スウォーム)",
            available_seeds: "シード (スウォーム)",
            avg_download_speed: "DL速度平均",
            avg_upload_speed: "UP速度平均",
            basename_content_path: "コンテンツパス (ベース名)",
            basename_download_path: "ダウンロードパス (ベース名)",
            basename_save_path: "保存先パス (ベース名)",
            category: "カテゴリー",
            comment: "コメント",
            completed_on: "完了日時",
            content_path: "コンテンツパス",
            created_by: "作成者",
            creation_date: "作成日時",
            downloaded: "DL済み (グローバル)",
            downloaded_session: "DL済み (セッション)",
            download_limit: "DL速度制限",
            download_path: "ダウンロードパス",
            download_speed: "DL速度",
            empty_category: "(カテゴリーなし)",
            empty_tags: "(タグなし)",
            empty_tracker: "(トラッカーなし)",
            eta: "予測所要時間",
            f_l_piece_prio: "最初と最後のピースを優先",
            forced: "強制状態",
            global_speed: "全体速度",
            global_volume: "グローバルサイズ",
            hash: "ハッシュ",
            inactive_seeding_time_limit: "非アクティブシード時間制限",
            infohash_v1: "Infoハッシュ v1",
            infohash_v2: "Infoハッシュ v2",
            is_private: "プライベートTorrent",
            last_activity: "最終アクティビティ",
            magnet: "Magnetリンク",
            name: "Torrentタイトル",
            nb_connections: "合計接続数",
            nb_connections_limit: "接続制限",
            num_leechs: "ピア (接続中)",
            num_seeds: "シード (接続中)",
            peers: "ピア",
            priority: "優先度",
            progress: "進捗状況",
            progress_bar: "進捗状況バー",
            ratio: "共有比",
            ratio_limit: "共有比制限",
            reannounce: "次の再アナウンスまで",
            save_path: "保存先パス",
            seeding_time: "シード時間",
            seeding_time_limit: "シード時間制限",
            seeds: "シード",
            seen_complete: "完了確認日時",
            seq_dl: "シーケンシャルダウンロード",
            size: "サイズ",
            state: "状態",
            super_seeding: "スーパーシードモード",
            tags: "タグ",
            time_active: "アクティブ時間",
            total_size: "合計サイズ",
            total_wasted: "破棄されたデータ",
            tracker: "トラッカー",
            trackers_count: "トラッカー数",
            truncated_hash: "切り捨てられたハッシュ",
            uploaded: "UP済み (グローバル)",
            uploaded_session: "UP済み (セッション)",
            upload_limit: "UP速度制限",
            upload_speed: "UP速度"
        },
        state: {
            checking_disk: "ファイルチェック中",
            checking_resume_data: "再開データを確認中",
            dl_forced: "[F] ダウンロード中",
            dl_queued: "待機中 (DL)",
            dl_stalled: "停滞",
            downloading: "ダウンロード中",
            error: "エラー",
            forced_meta_download: "[F] メタデータ取得中",
            meta_download: "メタデータ",
            missing_files: "ファイル不足",
            moving: "移動中",
            ul_forced: "[F] アップロード中",
            ul_queued: "待機中 (UP)",
            ul_stalled: "シード中",
            unknown: "不明",
            uploading: "アップロード中"
        }
    };
    bH = {
        minutes: "分 | 分 | 分",
        seconds: "秒 | 秒 | 秒"
    };
    FH = {
        common: iH,
        constants: oH,
        dashboard: sH,
        dialogs: lH,
        login: uH,
        logs: cH,
        navbar: dH,
        rssArticles: hH,
        searchEngine: mH,
        settings: fH,
        toast: pH,
        topbar: gH,
        torrentDetail: vH,
        torrent: yH,
        units: bH
    };
    kH = {
        cancel: "취소",
        close: "닫기",
        delete: "삭제",
        disable: "비활성",
        disabled: "비활성화",
        edit: "편집",
        emptyList: "이 곳은 비어있습니다!",
        NA: "N/A",
        no: "아니요",
        none: "(없음)",
        ok: "확인",
        pause: "일시 중지",
        resume: "이어하기",
        save: "저장",
        search: "검색",
        selectAll: "모두 선택",
        selectNone: "선택 안함",
        useGlobalSettings: "전역 설정 사용",
        yes: "예"
    };
    xH = {
        addStopped: {
            always: "항상",
            never: "절대 안함",
            title: "일시 중지 추가"
        },
        auto_delete_mode: {
            always: "항상",
            never: "절대 안함"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP 및 μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "연결됨",
            disconnected: "연결 끊김",
            firewalled: "방화벽",
            unknown: "알려지지 않음"
        },
        contentLayout: {
            nosubfolder: "하위 폴더 제거",
            original: "원본",
            subfolder: "하위 디렉토리 생성",
            title: "토렌트 파일 배치"
        },
        diskIoMode: {
            disableOsCache: "OS 캐시 비활성화",
            enableOsCache: "OS 캐시 활성화",
            writeThrough: "디스크 동기 (Write-Through) 쓰기모드(libtorrent 모듈 >= 2.0.6)"
        },
        diskIoType: {
            default: "기본값",
            memoryMappedFiles: "메모리 매핑 파일",
            posixCompliant: "POSIX 호환"
        },
        encryption: {
            forceOff: "암호화 비활성화",
            forceOn: "암호화 필수",
            preferEncryption: "암호화 허용"
        },
        file_log_age_type: {
            days: "일 | 일 | 일",
            months: "월 | 월 | 개월",
            years: "년 | 년 | 년"
        },
        file_priority: {
            high: "높음",
            max: "최대",
            mixed: "혼합",
            normal: "일반",
            unwanted: "받지 않음"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "기본 저장 경로",
            monitoredFolder: "모니터링(Watch) 디렉토리 위치",
            other: "기타"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "매일",
            everyFriday: "매주 금요일",
            everyMonday: "매주 월요일",
            everySaturday: "매주 토요일",
            everySunday: "매주 일요일",
            everyThursday: "매주 목요일",
            everyTuesday: "매주 화요일",
            everyWednesday: "매주 수요일",
            everyWeekday: "매주 평일",
            everyWeekend: "매주 주말"
        },
        shareLimitAction: {
            removeTorrent: "토렌트 제거",
            removeTorrentAndFiles: "토렌트 및 해당 파일 제거",
            stopTorrent: "토렌트 일시중지",
            torrentSuperseeding: "수퍼 시딩 활성화"
        },
        stopCondition: {
            filesChecked: "확인된 파일",
            metadataReceived: "Metadata 수신",
            none: "없음",
            title: "토렌트 중지 조건"
        },
        titleOptions: {
            custom: "사용자 지정",
            default: "기본값",
            first_torrent_speed: "첫 번째 토렌트 속도",
            global_speed: "전역 속도"
        },
        trackerStatus: {
            disabled: "비활성화",
            not_working: "작동하지 않음",
            not_yet_contacted: "트래커가 아직 연결되지 않음",
            updating: "업데이트 중",
            working: "작동 중"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-leech",
            fastestUpload: "가장 빠른 업로드",
            roundRobin: "Round-robin"
        },
        uploadSlotsBehavior: {
            fixedSlots: "고정 슬롯",
            uploadRateBased: "업로드 속도 기준"
        },
        utpTcpMixedMode: {
            peerProportional: "피어 비례(TCP 조절)",
            preferTcp: "TCP 우선"
        }
    };
    wH = {
        displayMode: {
            grid: "Grid",
            list: "목록",
            table: "표",
            title: "표시 모드"
        },
        not_complete: "완료되지 않음",
        right_click: {
            advanced: {
                auto_tmm: "자동 토렌트 관리",
                download_path: "다운로드 디렉토리 설정",
                f_l_prio: "우선순위",
                reannounce: "강제 재배포",
                recheck: "강제 재검사",
                rename: "토렌트 이름 바꾸기",
                save_path: "저장 경로 설정",
                seq_dl: "순차 다운로드",
                title: "고급 설정"
            },
            category: {
                clear: "(카테고리 지우기)",
                disabled_title: "카테고리 없음",
                title: "카테고리 설정"
            },
            copy: {
                hash: "Hash",
                magnet: "마그넷",
                name: "이름",
                title: "복사"
            },
            export: "토렌트 내보내기 | 토렌트 내보내기",
            info: "정보 표시",
            priority: {
                bottom: "하위 우선순위",
                decrease: "우선순위 감소",
                increase: "우선순위 증가",
                title: "우선순위 설정",
                top: "최우선 순위"
            },
            speed_limit: {
                download: "다운로드 속도 제한",
                share: "공유 제한",
                title: "속도 제한 설정",
                upload: "업로드 속도 제한 설정"
            },
            tags: {
                disabled_title: "태그 없음",
                title: "태그 설정"
            },
            top: {
                delete: "삭제",
                force_resume: "강제 이어하기",
                pause: "일시 중지",
                resume: "이어하기"
            }
        },
        searchInputLabel: "검색",
        selectAll: "모두 선택/해제 (Ctrl + A) ",
        selectedTorrentsCount: "토런트 없음 | {total}개 토렌트 중 {count}개 ({size}) | {total}개 토렌트 중 {count}개 ({size})",
        sortLabel: "정렬 기준",
        toggleSearchFilter: "검색 필터 전환",
        toggleSelectMode: "선택 모드 전환",
        toggleSortOrder: "역순 정렬",
        torrentsCount: "토렌트 없음 | {n}개의 토렌트 | {n}개의 토렌트"
    };
    SH = {
        add: {
            cookie: "Cookies",
            cookie_placeholder: "NAME1=값1; NAME2=값2; ...",
            drop_label: "토렌트 파일과 링크를 여기로 끌어다 놓으세요",
            file_overflow: "+{n}개 더보기",
            files: "파일 선택",
            first_last_piece_prio: "첫 번째와 마지막 조각 우선순위 설정",
            links: "링크 (마그넷, http, file, ...)",
            rename: "토렌트 이름 바꾸기",
            reset_form: "양식 재설정",
            sequential_download: "순차 다운로드",
            submit: "토렌트 추가",
            title: "토렌트 추가"
        },
        category: {
            name: "카테고리 이름",
            nameRequired: "카테고리 이름은 필수 입력 사항입니다.",
            oldName: "이전 카테고리 이름",
            savePath: "저장 경로",
            title: {
                create: "카테고리 생성",
                edit: "카테고리 편집"
            },
            warnEdit: `카테고리 이름을 수정하면 토렌트가 새 카테고리로 마이그레이션됩니다.
오류가 발생할 수 있으니 주의해서 사용하세요.`
        },
        connectionStatus: {
            dht_nodes: "DHT 노드",
            externalIp: "외부 IP 주소",
            status: "연결 상태",
            total_peer_connections: "활성 피어 연결"
        },
        delete: {
            deleteWithFiles: "토렌트와 함께 파일 삭제",
            title: "{n}개의 토렌트 삭제 | {n}개의 토렌트 삭제",
            warnDelete: "이 확인란을 선택하면 해당 토렌트에 포함된 모든 내용이 삭제됩니다."
        },
        importSettings: {
            required: "설정을 입력해야 합니다.",
            title: "설정 가져오기",
            valid: "올바른 설정을 입력하십시오."
        },
        moveTorrent: {
            dl: {
                title: "다운로드 경로 변경"
            },
            newPath: "새 경로",
            oldPath: "이전 경로",
            required: "새 경로는 필수 입력 사항입니다",
            samePath: "새 경로는 이전 경로와 달라야 합니다.",
            save: {
                title: "저장 경로 변경"
            }
        },
        moveTorrentFile: {
            oldName: "이전 이름",
            title: "토렌트 파일 이동 | 토렌트 폴더 이동"
        },
        pluginManager: {
            headers: {
                actions: "작업",
                enabled: "활성화됨",
                name: "이름",
                url: "엔진 URL",
                version: "버전"
            },
            install: {
                activator: "새 플러그인 설치",
                label: "플러그인 URL",
                title: "플러그인 설치"
            },
            title: "플러그인 매니저",
            update: "플러그인 업데이트"
        },
        renameTorrent: {
            newName: "새 이름",
            oldName: "이전 이름",
            required: "새 이름은 필수 입력 사항입니다",
            sameName: "새 이름은 이전 이름과 달라야 합니다.",
            title: "토렌트 이름 바꾸기"
        },
        rss: {
            feed: {
                name: "이름",
                rules: {
                    name_required: "피드 이름은 필수 입력 사항입니다.",
                    url_required: "피드 URL은 필수입니다."
                },
                title: {
                    create: "RSS 피드 생성",
                    edit: "RSS 피드 편집"
                },
                url: "URL"
            },
            rule: {
                affectedFeedsSubheader: "영향을 받는 피드",
                assignedCategory: "할당된 카테고리",
                enabled: "규칙 사용",
                episodeFilter: "에피소드 필터",
                episodeFilterPlaceholder: "예: S01E02-S01E05",
                ignoreDays: "지난 {days}일 동안 등록된 피드 무시하기",
                ignoreDaysHint: "0: 비활성화",
                lastMatch: {
                    knownValue: "오늘 | {n}일 전 | {n}일 전",
                    label: "마지막 Match",
                    unknownValue: "알 수 없음"
                },
                matchingArticles: {
                    noMatch: "일치하는 피드가 없습니다.",
                    title: "일치하는 피드"
                },
                mustContain: "반드시 포함해야 하는 항목",
                mustNotContain: "다음을 포함하지 않아야 합니다.",
                name: "이름",
                savePath: "저장 경로",
                savePathPlaceholder: "기본 저장 경로를 사용하려면 비워 둡니다.",
                smartFilter: "Smart episode 필터 사용하기",
                title: {
                    create: "RSS 규칙 생성",
                    edit: "RSS 규칙 편집"
                },
                useRegex: "정규 표현식 사용"
            }
        },
        share_limit: {
            disabled: "공유 제한 없음 설정",
            enabled: "공유 제한 설정:",
            global: "전역 공유 제한 사용",
            inactive_seeding_time_limit: "비활성 시간 (분)",
            ratio_limit: "비율(레이쇼)",
            seeding_time_limit: "총 시간(분)",
            title: "공유 비율 제한 설정"
        },
        shutdown: {
            content: "정말로 qBittorrent를 종료하시겠습니까?",
            error: "앱을 종료할 수 없습니다. qBittorrent가 실행 중인지 확인하세요!",
            success: "q비트토렌트가 성공적으로 종료되었습니다!",
            title: "qBittorrent 종료"
        },
        speed_limit: {
            download: "다운로드 속도 제한 설정",
            label: "속도 제한",
            upload: "업로드 속도 제한 설정"
        },
        tag: {
            comma: "태그 이름을 변경할 때 이름에 쉼표가 포함될 수 없습니다.",
            hint: "팁: 쉼표로 구분하여 여러 태그를 만들 수 있습니다",
            name: "태그 이름",
            oldName: "이전 태그 이름",
            required: "태그 이름은 필수 입력 사항입니다",
            title: {
                create: "태그 만들기",
                rename: "태그 이름 바꾸기"
            },
            warnEdit: `태그 이름을 수정하면 토렌트가 새 태그로 마이그레이션됩니다.
오류가 발생할 수 있으니 주의해서 사용하세요.`
        }
    };
    CH = {
        error: "로그인에 실패했습니다!",
        password: "비밀번호",
        rules: {
            password_required: "비밀번호는 필수 입력 사항입니다",
            username_required: "사용자 이름은 필수 입력 사항입니다"
        },
        submit: "로그인",
        subtitle: "자격 증명 입력",
        success: "로그인 성공!",
        title: "로그인",
        username: "사용자 이름"
    };
    AH = {
        emptyLogList: "로그를 찾을 수 없음",
        filters: {
            query: "로그 메시지 검색",
            type: "로그 레벨"
        },
        title: "qBittorrent 로그"
    };
    DH = {
        addPanel: {
            torrentsPendingCount: "업로드 대기 중인 토런트 {n}개"
        },
        side: {
            bottom_actions: {
                alt_speed: "대체 속도 전환",
                conn_status: "연결 상태: {status}",
                logout: "로그아웃",
                shutdown: "qBittorrent 종료"
            },
            current_speed: {
                title: "현재 속도"
            },
            filters: {
                activeFilter: "{n} 필터가 활성화되었습니다.",
                category: {
                    empty: "(분류되지 않음)",
                    title: "카테고리 필터"
                },
                disabled: "(비활성화)",
                state: {
                    active: "활성",
                    error: "오류",
                    title: "토렌트 상태 필터"
                },
                tag: {
                    empty: "(태그 없음)",
                    title: "태그 필터"
                },
                tracker: {
                    empty: "(추적되지 않음)",
                    title: "트래커 필터"
                }
            },
            speed_graph: {
                download_label: "다운로드",
                upload_label: "업로드",
                upload_limit_label: "업로드 제한"
            },
            stats: {
                alltime: {
                    title: "역대 통계"
                },
                downloaded: "다운로드됨",
                free_space: "여유 공간",
                ratio: "비율(레이쇼)",
                session: {
                    title: "세션 통계"
                },
                uploaded: "업로드됨"
            }
        },
        top: {
            active_filters: {
                category: "카테고리 필터: {value} ",
                menu_label: "활성 필터: {n} | 활성 필터: {n}개",
                multiple_category: "카테고리 필터: {n}개의 카테고리",
                multiple_state: "상태 필터: {n}개의 상태",
                multiple_tag: "태그 필터: {n}개 태그",
                multiple_tracker: "트래커 필터: {n}개의 트래커",
                state: "상태 필터: {value} ",
                tag: "태그 필터: {value} ",
                text: "텍스트 필터: {value} ",
                tracker: "트래커 필터: {value}"
            }
        }
    };
    TH = {
        feeds: {
            empty: {
                action: "RSS 피드 생성"
            },
            filters: {
                title: "제목 필터",
                unread: "읽지 않은 피드만 표시"
            },
            item: {
                author: "작성자: {author}",
                category: "카테고리: {category}",
                feedName: "피드 이름: {name}"
            },
            markAllAsRead: "모두 읽음으로 표시",
            promise: {
                error: "피드를 표시하는 동안 오류가 발생했습니다.",
                pending: "표시 중...",
                success: "{n}개의 기사를 읽음으로 표시함"
            },
            title: "RSS 피드"
        },
        rules: {
            empty: {
                action: "RSS 규칙 생성"
            }
        }
    };
    EH = {
        filters: {
            category: {
                all: "모두",
                anime: "애니메이션",
                books: "도서",
                games: "게임",
                label: "검색 카테고리",
                movies: "영화",
                music: "음악",
                pictures: "사진",
                software: "소프트웨어",
                tv: "TV"
            },
            plugins: {
                all: "전체",
                enabled: "활성화됨",
                label: "검색 플러그인"
            },
            title: {
                label: "제목으로 필터링"
            }
        },
        headers: {
            fileName: "파일 이름",
            fileSize: "파일 크기",
            nbLeechers: "리처 수",
            nbSeeders: "시드 수",
            siteUrl: "사이트 URL"
        },
        query: "검색어",
        runSearch: "검색",
        stopSearch: "중지",
        tabHeaderEmpty: "(검색어 없음)",
        title: "검색 엔진"
    };
    _H = JSON.parse('{"advanced":{"libtorrent":{"announceAllTiers":"항상 모든 티어에게 알립니다","announceAllTrackers":"항상 같은 티어의 모든 트래커에게 알립니다.","announceIP":"트래커에 보고되는 IP 주소 (재시작 필요) ","coalesceReadsWrites":"읽기 및 쓰기 통합(libtorrent < 2.0)","disk":{"diskCache":"디스크 캐시 (libtorrent <2.0)","diskCacheExpiry":"디스크 캐시 만료 간격(libtorrent <2.0)","diskIoReadMode":"디스크 IO 읽기 모드","diskIoType":"디스크 IO 유형(libtorrent >= 2.0, 재시작 필요)","diskIoWriteMode":"디스크 IO 쓰기 모드","diskQueueSize":"디스크 큐 크기","subheader":"디스크"},"maxConcurrentHTTPAnnounces":"동시에 처리할 수 있는 최대 HTTP 알림 수","networking":{"outgoingPortsMax":"송신 포트(최대) [0: 사용 안 함]","outgoingPortsMin":"송신 포트(최소) [0: 사용 안 함]","peerTos":"피어 연결에 대한 DSCP 값","subheader":"네트워킹","upnpLeaseDuration":"UPnP 임대 기간 [0: 영구 임대] ","utpTcpMixedModeAlgorithm":"μTP-TCP 혼합 모드 알고리즘"},"outgoingConnectionsPerSecond":"초당 발신 연결 수","peerTurnover":"피어 전환 연결 해제 백분율","peerTurnoverCutoff":"피어 교체 임계치 백분율","peerTurnoverInterval":"피어 전환 연결 해제 간격","pieceExtentAffinity":"조각 범위 선호도 사용","requestQueueSize":"단일 피어에 대한 최대 미결 요청 수","security":{"allowMultipleConnectionsFromTheSameIPAddress":"동일한 IP 주소에서 여러 개의 연결 허용하기","blockPeersOnPrivilegedPorts":"권한 있는 포트에서는 피어에 대한 연결을 허용하지 않습니다.","idnSupport":"IDN(Internationalized Domain Name) 지원 사용","mitigateSSRF":"서버 측 요청 위조(SSRF) 완화","subheader":"보안","validateHTTPSTrackerCertificate":"HTTPS 트래커 인증서 유효성 검사"},"sendBufferLowWatermark":"버퍼 부족 워터마크 전송","sendBufferWatermark":"버퍼 워터마크 전송","sendBufferWatermarkFactor":"버퍼 워터마크 계수 보내기","sendUploadPieceSuggestions":"업로드 조각 제안 보내기","socketBacklogSize":"소켓 대기열 크기","socketReceiveBufferSize":"수신 소켓 버퍼 크기","socketReceiveBufferSizeHint":"0: 시스템 기본값","socketSendBufferSize":"전송 소켓 버퍼 크기","socketSendBufferSizeHint":"0: 시스템 기본값","stopTrackerTimeout":"트래커 시간 초과 중지","subheader":"libtorrent 섹션","threads":{"asyncIoThreads":"비동기 I/O 스레드","bdecodeDepthLimit":"B디코딩 깊이 제한","bdecodeTokenLimit":"Bdecode 토큰 제한","filePoolSize":"파일 Pool 크기","hashingThreads":"스레드 해싱(libtorrent >= 2.0)","outstandingMemory":"Outstanding memory when checking torrents","subheader":"스레드"},"uploadChokingAlgorithm":"업로드 차단 알고리즘","uploadSlotsBehavior":"업로드 슬롯 동작 방식"},"openDoc":"문서 열기","qbittorrent":{"allocatedRam":"물리적 메모리(RAM) 사용량 제한(libtorrent >= 2.0)","embeddedTracker":{"enable":"내장 트래커 활성화","port":"내장 트래커 포트","portForward":"내장 트래커를 위한 포트 포워딩 활성화","title":"내장 트래커"},"networking":{"ipAddress":{"all":"모든 주소","allIPv4":"모든 IPv4 주소","allIPv6":"모든 IPv6 주소","label":"바인딩(결합)할 IP 주소(선택 사항)"},"networkInterfaces":{"any":"모든 인터페이스","label":"네트워크 인터페이스"},"title":"네트워킹"},"reannounceOnIpPortChanged":"IP 또는 포트가 변경되면 모든 트래커에게 다시 알립니다.","recheckOnCompletion":"완료 시 다운로드 파일 무결성 검사","refreshInterval":"GUI 새로 고침 간격","resolveCountries":"피어국가 분석","resumeDataStorageType":{"label":"이어받기 데이터 저장 유형(qBittorrent 재시작 필요)","legacy":"Fastresume files","sqlite":"SQLite 데이터베이스(실험적)"},"saveInterval":"재개 데이터 저장 간격","subheader":"qBittorrent 섹션","torrentFileSizeLimit":".torrent 파일 크기 제한"}},"behavior":{"logs":{"file_log_age":"다음보다 오래된 백업 로그 삭제","file_log_backup_enabled":"로그 파일 백업 사용","file_log_delete_old":"이전 백업 로그 삭제","file_log_enabled":"로그 파일 사용","file_log_max_size":"다음에 로그 파일을 백업합니다.","file_log_path":"저장 경로","subheader":"로그 관리"},"performance_warning":"로그 성능 경고"},"bittorrent":{"autoAddTrackers":"새로운 다운로드에 이러한 트래커를 자동으로 추가합니다.","autoAddTrackersHint":"한 줄에 하나의 트래커","maxActiveCheckingTorrents":"최대 활성 토렌트 확인","privacy":{"enableAnonymous":"익명 모드 사용","enableDHT":"DHT(분산 네트워크)를 활성화하여 더 많은 피어 찾기","enableLPD":"로컬 피어 검색을 활성화하여 더 많은 피어 찾기","enablePeX":"피어 익스체인지(PeX)를 활성화하여 더 많은 피어 찾기","encryptionMode":"암호화 모드","moreInfo":"자세한 정보","subheader":"개인정보 보호"},"seedLimits":{"subheader":"시드 제한","then":"그런 다음","whenInactiveSeedingTimeReaches":"비활성 시딩 시간에 도달하면","whenRatioReaches":"비율에 도달하면","whenSeedingTimeReaches":"시딩 시간에 도달하면"},"torrentQueueing":{"downloadRateLimit":"다운로드 속도 임계값","excludeSlowTorrent":"이 제한에 느린 토렌트는 포함하지 않기","maxActiveDownload":"최대 활성 다운로드 수","maxActiveTorrent":"최대 활성 토렌트 수","maxActiveUpload":"최대 활성 업로드 수","subheader":"토렌트 대기열","torrentInactivityTimer":"토렌트 비활성 타이머","uploadRateLimit":"업로드 속도 제한"}},"connection":{"connectionLimits":{"globalMaxConnection":"전역 최대 연결 수","globalMaxUploadSlots":"전역 최대 업로드 슬롯 수","perTorrentMaxConnection":"토렌트 당 최대 연결 수","perTorrentMaxUploadSlots":"토렌트 당 최대 업로드 슬롯 수","subheader":"연결 제한"},"ipFiltering":{"applyToTrackers":"트래커에 적용하기","bannedIps":"수동으로 차단한 IP 주소","bannedIpsHint":"한 줄에 하나씩","filterPath":"필터 경로 (.dat, .p2p, .p2b)","subheader":"IP 필터링"},"listeningPort":{"incomingConnectionPort":"수신 연결에 사용되는 포트","randomPort":"무작위 포트","subheader":"수신 포트","useUPnP":"UPnP / NAT-PMP 기능 사용(공유기/라우터에서 지원할 경우)"},"protocol":"피어 연결 프로토콜","proxy":{"auth":{"password":"비밀번호","subtitle":"계정설정","tip":"정보: 비밀번호는 암호화되지 않은 상태로 저장됩니다.","username":"로그인 ID"},"bittorrent":"BitTorrent 용도로 Proxy 사용","host":"호스트","hostNameLookup":"호스트 이름 조회에 Proxy 사용","misc":"일반적인 용도로 Proxy 사용","peerConnections":"피어 연결에 Proxy 사용","port":"포트","rss":"RSS 용도로 Proxy 사용","subheader":"Proxy Server"}},"downloads":{"excludedFileNames":{"hint":"한 줄에 하나의 필터","label":"제외된 파일 이름"},"mailNotification":{"authEnabled":"계정설정","enabled":"다운로드 완료 시 이메일 알림","from":"From","password":"비밀번호","smtpServer":"SMTP 서버","sslEnabled":"이 서버에는 보안 연결(SSL)이 필요합니다.","to":"To","username":"로그인 ID"},"monitoredFolders":{"actions":"작업","confirmDelete":"이 항목을 삭제하시겠습니까?","editItem":"편집","monitoredFolderPath":"모니터링(Watch) 폴더","newItem":"새로 만들기","noData":"아직 모니터링되는 폴더 없음","otherPath":"기타 경로","saveType":"저장 위치 재정의(Override Save Location)","subheader":"모니터링(Watch) 폴더"},"publicSettings":{"appendQBExtension":"완료되지 않은 파일에 .!qB 확장자 추가하기","preAllocateDisk":"다운로드할 파일에 대해 디스크 공간 사전 할당"},"runExternalProgram":{"onAddedEnabled":"토렌트 추가 후 외부 프로그램 실행","onAddedLabel":"커맨드","onFinishedEnabled":"토렌트 다운로드 완료 후 외부 프로그램 실행","onFinishedLabel":"커맨드","subheader":"외부 프로그램 실행","supportParamC":"%C: 파일 개수","supportParamD":"%D: 저장 경로","supportParamF":"%F: 콘텐츠 경로(다중 파일 토렌트의 루트 경로와 동일)","supportParamG":"%G: 태그(쉼표로 구분)","supportParamI":"%I: Infohash v1","supportParamJ":"%J: Infohash v2","supportParamK":"%K: 토렌트 ID","supportParamL":"%L: 카테고리","supportParamN":"%N: 토렌트 이름","supportParamR":"%R: 루트 경로 (첫 번째 토런트 하위 디렉터리 경로)","supportParamT":"%T: 현재 트래커","supportParamTitle":"지원되는 매개변수(대소문자 구분):","supportParamZ":"%Z: 토렌트 크기 (바이트)","tip":"팁: 공백에서 텍스트가 잘리는 것을 방지하려면 매개 변수를 따옴표로 묶으세요 (예: \\"%N\\")"},"saveManagement":{"autoTMMEnabled":"기본 토렌트 관리 모드","categoryChangedTMM":"카테고리 저장 경로가 변경된 경우","defaultSavePath":"기본 저장 경로 (완료)","defaultTMMOptions":{"automatic":"자동","manual":"수동"},"exportDir":".torrent 파일을 다음 위치로 복사","exportDirFinished":"다운로드가 완료된 .torrent 파일을 다음 위치로 복사","keepIncomplete":"기본 다운로드 경로(미완료된 토렌트)","paramChangedTMMOptions":{"relocateTorrent":"토렌트 이동하기","switchToManual":"토렌트를 수동 모드로 전환"},"savePathChangedTMM":"기본 저장 경로가 변경된 경우","subheader":"저장 관리","torrentChangedTMM":"토렌트 카테고리가 변경되었을 때"},"whenAddTorrent":{"addToTopOfQueue":"대기열 맨 위로 올리기","autoDeleteMode":"나중에 .torrent 파일 삭제","doNotAutoStart":"자동으로 다운로드 시작하지 않기","mergeTrackers":"토렌트가 이미 존재하는 경우 트래커 병합하기","subheader":"토렌트를 추가할 때"}},"rss":{"autoDownloader":{"enable":"RSS 규칙 처리 활성화","subheader":"RSS 토렌트 자동 다운로더"},"reader":{"enableProcessing":"RSS 피드 가져오기 활성화","feedsRefreshInterval":"피드 새로고침 간격","maximumArticlesPerFeed":"피드 당 수집할 최대 기사 수","subheader":"RSS 리더"},"smartEpisodeFilter":{"downloadEpisodes":"REPACK/PROPER 에피소드 다운로드","filters":"필터","filtersHint":"한 줄에 하나씩","subheader":"RSS Smart episode 필터"},"useIdForRssLinks":"RSS 피드에 ID사용"},"saveSuccess":"설정이 저장되었습니다!","speed":{"download":"다운로드","scheduler":{"from":"시작시간","selectButtonLabel":"시간 선택","subheader":"대체 속도 제한 사용 일정","to":"종료시간","when":"스케쥴"},"settings":{"applyToPeersOnLan":"LAN 내 피어에 대해 속도 제한 적용","applyToTransportOverhead":"Transport overhead에 대한 속도 제한 적용","applyToUtp":"µTP 프로토콜에 속도 제한 적용"},"subheader":{"alternative":"대체 속도 제한","global":"전역 속도 제한","settings":"속도 제한"},"tip":"0은 무제한을 의미합니다","upload":"업로드"},"tabs":{"advanced":"고급 설정","behavior":"동작","bittorrent":"BitTorrent","connection":"연결수","downloads":"다운로드","rss":"RSS","speed":"속도","tagsAndCategories":"태그 및 카테고리","vuetorrent":{"general":"일반","title":"VueTorrent","torrent_card":{"grid":"그리드 형식보기(Grid view)","list":"목록 형식 보기(List view)","table":"테이블 형식 보기(Table View)"}},"webui":"WebUI"},"tagsAndCategories":{"categoriesSubheader":"사용 가능한 카테고리:","createNewCategory":"새 카테고리 만들기","createNewTag":"새 태그 만들기","noCategories":"아직 카테고리가 없습니다","noTags":"아직 태그가 없습니다","tagsSubheader":"사용 가능한 태그:"},"title":"설정","vuetorrent":{"general":{"check_new":"새 버전 확인","currentVersion":"현재 버전","customTitle":"사용자 지정 제목","dateFormat":"날짜 표시 형식","download":"설정 내보내기","fileContentInterval":"토렌트 진행사항 새로고침 간격","hideChipIfUnset":"설정되지 않은 경우 해당 옵션 숨기기","historySize":"대상 필드의 기록 크기","import":"설정 가져오기","isDrawerRight":"오른쪽 탭","isShutdownButtonVisible":"종료 버튼 표시","language":"표시 언어","paginationSize":{"infinite_scroll":"무한 스크롤","label":"Pagination 크기","warning":"높은 값을 사용하면 성능에 영향을 줄 수 있습니다."},"qbittorrentVersion":"qBittorrent 버전","refreshInterval":"qBittorrent API 새로 고침 간격","registerMagnet":"마그넷 링크 등록","resetSettings":"설정 초기화","showAlltimeStat":"역대 통계 보기","showCurrentSpeed":"현재 속도 표시","showFreeSpace":"여유 공간 표시","showSessionStat":"세션 통계 표시","showSpeedGraph":"속도 그래프 표시","tip":"이 설정은 사용자 지정 WebUI에 대한 설정입니다.","useBinarySize":"데이터 크기 표시를 이진 단위로 바꾸기(kB -> KiB)","useBitSpeed":"속도 값 표시를 비트로 바꾸기(kB/s -> kbps)","vueTorrentTitle":"탭 제목"},"torrentCard":{"grid":{"busyTip":"그리드 보기에서 미완료된 토렌트에 대해 표시할 속성","doneTip":"그리드 보기에서 완료된 토렌트에 대해 표시할 속성"},"list":{"busyTip":"목록 보기에서 사용 중인 토렌트에 대해 표시할 속성","doneTip":"목록 보기에서 완료된 토렌트에 대해 표시할 속성"},"table":{"tip":"테이블 보기에서 토렌트에 대해 표시할 속성"}}},"webUI":{"authentication":{"banDuration":"차단 시간","banDurationHint":"초(seconds) 단위","bypassLocalhost":"localhost에서 접속할 시 로그인 절차 없음","bypassWhitelist":"아래 IP주소에 대해서는 로그인 절차 없이 접근 가능(Whitelist)","maxAttempts":"로그인 최대 시도 횟수","password":"비밀번호","passwordPlaceholder":"(변경 없음)","sessionTimeout":"세션 만료 시간","sessionTimeoutHint":"초(seconds) 단위","subheader":"계정설정","username":"로그인 ID","whitelistExamples":"예시: 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"사용자 정의 HTTP 헤더 추가","customHeadersHint":"한 줄에 하나씩","customHeadersPlaceholder":"Header1: value1 Header2: value2 ...","dynDns":{"domainName":"도메인 주소","password":"비밀번호","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"등록","subheader":"DDNS 활성화","username":"로그인 ID"},"https":{"certificate":"인증서","key":"Key","subheader":"HTTPS 사용","tip":"인증서에 대한 정보"},"interface":{"ipAddress":"IP 주소","port":"포트","subheader":"웹 사용자 인터페이스","useAlternativeWebUI":"대체 WebUI 사용","useUPnP":"UPnP / NAT-PMP 기능 사용(공유기/라우터에서 지원할 경우)"},"proxiesList":"신뢰할 수 있는 프록시 목록","proxiesListHint":"IP 주소를 세미콜론( ;)으로 구분합니다","reverseProxySupport":"역방향 프록시(Reverse proxy) 지원 활성화","security":{"clickjacking":"클릭재킹(Clickjacking) 보호 활성화","csrf":"CSRF(사이트 간 요청 위조) 보호 활성화","hostHeaderValidation":"호스트 헤더 유효성 검사 사용","hostHeaderValidationHint":"세미콜론( ;)으로 구분합니다.","secureCookie":"\\"secure\\" cookie flag 활성화 (HTTPS필요)","serverDomains":"서버 도메인","subheader":"보안"}}}');
    PH = {
        add: {
            error: "토렌트 추가 중 오류",
            pending: "토렌트 전송 중...",
            success: "{n}개 토렌트 추가됨"
        },
        copy: {
            error: "복사할 수 없습니다. 현재 응답이 안전하지 않습니다!",
            success: "클립보드에 복사되었습니다!"
        },
        magnet_handler: {
            not_supported: "현재 응답이 안전하지 않습니다. 핸들러를 등록할 수 없습니다.",
            registered: "마그넷 핸들러가 등록되었습니다."
        },
        qbit: {
            not_supported: "qBittorrent >= {version}에서만 사용할 수 있습니다."
        },
        version: {
            new: "새 버전을 사용할 수 있습니다!"
        }
    };
    BH = {
        actions: {
            delete: "토렌트 삭제",
            logs: "Log 열기",
            pause: "토렌트 일시 중지",
            resume: "토렌트 재개",
            rssArticles: "RSS 피드 열기",
            searchEngine: "검색 엔진 열기",
            settings: "설정 열기"
        },
        addTorrents: "토렌트 추가",
        overflow: {
            delete: "삭제",
            logs: "qBittorrent 로그",
            pause: "일시 중지",
            resume: "이어하기",
            rssArticles: "RSS 피드",
            searchEngine: "검색 엔진",
            settings: "설정"
        },
        searchTorrents: "토렌트 검색"
    };
    MH = {
        content: {
            fileInfo: "{n} 파일 | {n} 파일",
            folderInfo: "{n} 디렉토리 | {n} 디렉토리",
            priority: "우선순위 설정",
            rename: {
                bulk: "일괄 이름 바꾸기",
                file: "이름 바꾸기",
                folder: "디렉토리 이름 바꾸기"
            },
            rootNode: "(Root)"
        },
        info: {
            boolean_values: "Boolean 값",
            data_values: "데이터 값",
            datetime_values: "날짜/시간 값",
            duration_values: "지속 시간 값",
            long_text_values: "긴 텍스트 값",
            speed_values: "속도 값",
            text_values: "텍스트 값"
        },
        overview: {
            canvasRefreshDisabled: "캔버스 자동 새로고침이 비활성화되었습니다",
            canvasRenderDisabled: "캔버스 렌더링이 비활성화되었습니다",
            copy_hash: "해시 복사",
            dlSpeedAverage: "평균 다운로드 속도",
            downloaded: "다운로드됨",
            fetchingMetadata: "불러오는 중...",
            fileCount: "선택한 파일",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "비율",
            selectedFileSize: "선택한 파일 크기",
            uploaded: "업로드됨",
            upSpeedAverage: "평균 업로드 속도",
            waitingForMetadata: "메타데이터를 기다리는 중..."
        },
        peers: {
            addPeers: {
                newPeers: "추가할 피어 호스트",
                newPeersHint: "한 줄에 하나씩",
                newPeersPlaceholder: "host:port",
                title: "피어 추가"
            },
            empty: "현재 연결된 피어가 없습니다",
            fields: {
                client: "클라이언트",
                download: "다운로드",
                flags: "플래그",
                host: "호스트",
                progress: "진행 상황",
                relevance: "관련성",
                upload: "업로드"
            }
        },
        tabs: {
            content: "콘텐츠",
            info: "정보",
            overview: "개요",
            peers: "피어",
            tagsAndCategories: "태그 및 카테고리",
            trackers: "트래커"
        },
        tagsAndCategories: {
            categories: "카테고리",
            tags: "태그"
        },
        title: "토렌트 세부 정보",
        trackers: {
            addTrackers: {
                newTrackers: "추가할 트래커 URL",
                newTrackersHint: "한 줄에 하나씩, 빈 줄로 계층을 구분합니다.",
                title: "트래커 추가"
            },
            editTracker: {
                newUrl: "새 URL",
                newUrlRequired: "새 URL이 필요합니다",
                oldUrl: "이전 URL",
                title: "트래커 편집"
            },
            fields: {
                num_downloaded: "다운로드됨",
                num_peers: "피어",
                num_seeds: "시드"
            },
            reannounce: "모든 트래커에 다시 요청",
            tier: "Tier: {n}"
        }
    };
    RH = {
        properties: {
            added_on: "추가 날짜",
            amount_left: "남은 양",
            auto_tmm: "자동 토렌트 관리",
            availability: "가용성",
            available_peers: "피어(Swarm)",
            available_seeds: "시드 (Swarm)",
            avg_download_speed: "평균 다운로드 속도",
            avg_upload_speed: "평균 업로드 속도",
            category: "카테고리",
            completed_on: "완료 날짜",
            content_path: "컨텐츠 경로",
            downloaded: "다운로드됨 (전역)",
            downloaded_session: "다운로드됨 (세션)",
            download_limit: "다운로드 제한",
            download_path: "다운로드 경로",
            download_speed: "다운로드 속도",
            empty_category: "카테고리 없음",
            empty_tags: "태그 없음",
            empty_tracker: "(트래커 없음)",
            eta: "남은 예상 시간",
            f_l_piece_prio: "우선순위",
            forced: "강제 상태",
            global_speed: "전역 속도",
            global_volume: "전체 볼륨",
            hash: "Hash",
            infohash_v1: "Infohash v1",
            infohash_v2: "Infohash v2",
            last_activity: "최근 활동",
            magnet: "마그넷 링크",
            name: "토렌트 제목",
            num_leechs: "피어 (연결됨)",
            num_seeds: "시드 (연결됨)",
            peers: "피어",
            priority: "우선순위",
            progress: "진행 상황",
            progress_bar: "진행률",
            ratio: "비율(레이쇼)",
            ratio_limit: "비율 제한",
            save_path: "저장 경로",
            seeding_time: "시딩 시간",
            seeding_time_limit: "시딩 시간 제한",
            seeds: "시드",
            seen_complete: "완료됨",
            seq_dl: "순차 다운로드",
            size: "크기",
            state: "상태",
            super_seeding: "슈퍼 시딩 모드",
            tags: "태그",
            time_active: "활성 시간",
            total_size: "총 크기",
            tracker: "트래커",
            trackers_count: "트래커 수",
            uploaded: "업로드됨 (전역)",
            uploaded_session: "업로드됨 (세션)",
            upload_limit: "업로드 제한",
            upload_speed: "업로드 속도"
        },
        state: {
            checking_resume_data: "재개 데이터 확인 중",
            dl_forced: "[강제] 다운로드 중",
            dl_queued: "대기 중 (다운로드)",
            dl_stalled: "정지됨",
            downloading: "다운로드 중",
            error: "오류",
            meta_download: "메타데이터",
            missing_files: "누락된 파일",
            moving: "이동",
            ul_forced: "[강제] 업로드 중",
            ul_queued: "대기 중 (업로드)",
            ul_stalled: "시딩 중",
            unknown: "알 수 없음",
            uploading: "업로드 중"
        }
    };
    LH = {
        minutes: "분 | 분 | 분",
        seconds: "초 | 초 | 초"
    };
    IH = {
        common: kH,
        constants: xH,
        dashboard: wH,
        dialogs: SH,
        login: CH,
        logs: AH,
        navbar: DH,
        rssArticles: TH,
        searchEngine: EH,
        settings: _H,
        toast: PH,
        topbar: BH,
        torrentDetail: MH,
        torrent: RH,
        units: LH
    };
    zH = {
        cancel: "Annuleren",
        close: "Sluiten",
        delete: "Verwijderen",
        disable: "Uitschakelen",
        emptyList: "Niets te zien hier!",
        none: "(Geen)",
        save: "Opslaan",
        selectAll: "Alles selecteren"
    };
    NH = {
        bittorrentProtocols: {
            tcp_utp: "TCP en μTP"
        },
        connectionStatus: {
            connected: "Verbonden"
        }
    };
    OH = {
        common: zH,
        constants: NH
    };
    HH = {
        cancel: "Anuluj",
        close: "Zamknij",
        delete: "Usuń",
        disable: "Wyłącz",
        disabled: "Wyłączone",
        edit: "Edytuj",
        emptyList: "Nic tu nie ma do zobaczenia!",
        NA: "Nie dotyczy",
        no: "Nie",
        none: "(Brak)",
        ok: "OK",
        pause: "Pauza",
        resume: "Wznów",
        save: "Zapisz",
        search: "Szukaj",
        selectAll: "Zaznacz wszystko",
        selectNone: "Wybierz Brak",
        useGlobalSettings: "Użyj ustawień globalnych",
        yes: "Tak"
    };
    VH = {
        addStopped: {
            always: "Zawsze",
            never: "Nigdy",
            title: "Dodaj wstrzymane"
        },
        auto_delete_mode: {
            always: "Zawsze",
            never: "Nigdy"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP i μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Połączono",
            disconnected: "Odłączony",
            firewalled: "Zablokowany przez zaporę ogniową",
            unknown: "Nieznany"
        },
        contentLayout: {
            nosubfolder: "Usuń podfolder",
            original: "Oryginalny",
            subfolder: "Utwórz podfolder",
            title: "Układ zawartości torrenta"
        },
        diskIoMode: {
            disableOsCache: "Wyłącz pamięć podręczną systemu operacyjnego",
            enableOsCache: "Włącz pamięć podręczną systemu operacyjnego",
            writeThrough: "Zapis poprzez (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "Domyślny",
            memoryMappedFiles: "Pliki mapowane w pamięci",
            posixCompliant: "Zgodne z POSIX"
        },
        encryption: {
            forceOff: "Wyłącz szyfrowanie",
            forceOn: "Wymagaj szyfrowania",
            preferEncryption: "Zezwól na szyfrowanie"
        },
        file_log_age_type: {
            days: "Dzień | Dni | Dni",
            months: "Miesiąc | Miesiące | Miesięcy",
            years: "Rok | Lata | Lat"
        },
        file_priority: {
            high: "Wysoki",
            max: "Maksymalny",
            mixed: "Mieszany",
            normal: "Normalny",
            unwanted: "Niechciane"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Domyślna ścieżka zapisu",
            monitoredFolder: "Lokalizacja folderu monitorowanego",
            other: "Inne"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Codziennie",
            everyFriday: "Co piątek",
            everyMonday: "Co poniedziałek",
            everySaturday: "Każdą sobotę",
            everySunday: "Co niedzielę",
            everyThursday: "Każdego czwartku",
            everyTuesday: "Każdego wtorku",
            everyWednesday: "W każdą środę",
            everyWeekday: "Codziennie w dni robocze",
            everyWeekend: "W każdy weekend"
        },
        shareLimitAction: {
            removeTorrent: "Usuń torrent",
            removeTorrentAndFiles: "Usuń torrent i jego pliki",
            stopTorrent: "Wstrzymaj torrent",
            torrentSuperseeding: "Włącz super-seeding dla torrenta"
        },
        stopCondition: {
            filesChecked: "Sprawdzone pliki",
            metadataReceived: "Otrzymano metadane",
            none: "Brak",
            title: "Warunek zatrzymania torrenta"
        },
        titleOptions: {
            custom: "Niestandardowy",
            default: "Domyślny",
            first_torrent_speed: "Prędkość pierwszego torrenta",
            global_speed: "Prędkość globalna"
        },
        trackerStatus: {
            disabled: "Wyłączone",
            not_working: "Nie działa",
            not_yet_contacted: "Jeszcze się nie skontaktowano",
            updating: "Aktualizowanie",
            working: "Działa"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Antyleech",
            fastestUpload: "Najszybsze przesyłanie",
            roundRobin: "Algorytm rotacyjny"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Stałe sloty",
            uploadRateBased: "Prędkość przesyłania plików"
        },
        utpTcpMixedMode: {
            peerProportional: "Peer proporcjonalny (dławi TCP)",
            preferTcp: "Preferuj TCP"
        }
    };
    WH = {
        displayMode: {
            grid: "Siatka",
            list: "Lista",
            table: "Tabela",
            title: "Tryb wyświetlania"
        },
        not_complete: "Nigdy nie widziany w całości",
        right_click: {
            advanced: {
                auto_tmm: "Automatyczne zarządzanie torrentami",
                download_path: "Ustaw ścieżkę pobierania",
                f_l_prio: "Pierwszy/ostatni priorytet",
                reannounce: "Wymuś ponowne ogłoszenie",
                recheck: "Wymuś ponowne sprawdzenie",
                rename: "Zmień nazwę torrenta",
                save_path: "Ustaw ścieżkę zapisu",
                seq_dl: "Pobieranie sekwencyjne",
                title: "Zaawansowane"
            },
            category: {
                clear: "(Wyczyść kategorię)",
                disabled_title: "Brak kategorii",
                title: "Ustaw kategorię"
            },
            copy: {
                hash: "Hash",
                magnet: "Magnet",
                name: "Nazwa",
                title: "Kopiuj"
            },
            export: "Eksportuj torrent | Eksportuj torrenty",
            info: "Pokaż informacje",
            priority: {
                bottom: "Najniższy priorytet",
                decrease: "Zmniejsz priorytet",
                increase: "Zwiększ priorytet",
                title: "Ustaw priorytet",
                top: "Najwyższy priorytet"
            },
            speed_limit: {
                download: "Ustaw limit prędkości pobierania",
                share: "Ustaw limit udostępniania",
                title: "Ustaw limit prędkości",
                upload: "Ustaw limit prędkości wysyłania"
            },
            tags: {
                disabled_title: "Brak tagów",
                title: "Ustaw tagi"
            },
            top: {
                delete: "Usuń",
                force_resume: "Wymuś wznowienie",
                pause: "Pauza",
                resume: "Wznów"
            }
        },
        searchInputLabel: "Szukaj",
        selectAll: "Zaznacz/Odznacz wszystko (Ctrl + A)",
        selectedTorrentsCount: "Brak torrenta | {count} z {total} torrentów ({size}) | {count} z {total} torrentów ({size})",
        sortLabel: "Sortuj według",
        toggleSearchFilter: "Przełącz filtr wyszukiwania",
        toggleSelectMode: "Przełącz tryb wyboru",
        toggleSortOrder: "Odwróć kolejność sortowania",
        torrentsCount: "Brak torrentów | {n} torrent | {n} torrentów"
    };
    GH = {
        add: {
            cookie: "Ciasteczka",
            cookie_placeholder: "nazwa1=wartość1; nazwa2=wartość2; ...",
            drop_label: "Upuść tutaj pliki torrent i linki",
            file_overflow: "+{n} więcej",
            files: "Wybierz pliki",
            first_last_piece_prio: "Priorytet dla pierwszej i ostatniej części",
            links: "Linki (magnet, http, plik, ...)",
            params: {
                add_to_top_of_queue: "Dodaj na początek kolejki",
                category: "Kategoria",
                download_limit: "Limit pobierania",
                download_path: "Ścieżka pobierania (jeśli jest niekompletny)",
                inactive_seeding_time_limit: "Limit czasu nieaktywnego seedowania",
                limit_collapse: "Skonfiguruj limity",
                limit_hint: "-1, aby wyłączyć, -2 lub puste, aby użyć wartości globalnej",
                no_categories: "Brak kategorii. Wpisz nazwę, aby utworzyć nową.",
                no_categories_match: 'Brak kategorii pasujących do "{query}". Zostanie ona automatycznie utworzona.',
                no_tags: "Brak tagów. Wpisz nazwę, aby utworzyć nowy.",
                no_tags_match: 'Brak tagów pasujących do "{query}". Naciśnij Enter, aby go utworzyć.',
                ratio_limit: "Limit proporcji",
                save_path: "Ścieżka zapisu (po zakończeniu)",
                seeding_time_limit: "Limit czasu seedowania",
                skip_checking: "Pomiń sprawdzanie sumy kontrolnej",
                stopped: "Nie rozpoczynaj pobierania",
                tags: "Tagi",
                title: "Parametry torrenta",
                upload_limit: "Limit wysyłania",
                use_auto_tmm: "Automatyczne zarządzanie torrentami"
            },
            rename: "Zmień nazwę torrenta",
            reset_form: "Resetuj formularz",
            sequential_download: "Pobieranie sekwencyjne",
            submit: "Dodaj torrenty",
            title: "Dodaj torrenty"
        },
        category: {
            name: "Nazwa kategorii",
            nameRequired: "Nazwa kategorii jest wymagana",
            oldName: "Stara nazwa kategorii",
            savePath: "Ścieżka zapisu",
            title: {
                create: "Utwórz kategorię",
                edit: "Edytuj kategorię"
            },
            warnEdit: `Edycja nazwy kategorii spowoduje migrację torrentów do nowej kategorii.
Mogą wystąpić błędy, należy zachować ostrożność.`
        },
        connectionStatus: {
            dht_nodes: "Węzły DHT",
            externalIp: "Zewnętrzny adres IP",
            status: "Status połączenia",
            total_peer_connections: "Aktywne połączenia peer"
        },
        delete: {
            deleteWithFiles: "Usuń pliki razem z torrentem",
            title: "Usuń {n} torrent | Usuń {n} torrentów",
            warnDelete: "Zaznaczenie tego pola spowoduje usunięcie wszystkiego, co znajduje się w tych torrentach"
        },
        importSettings: {
            required: "Podanie ustawień jest wymagane",
            title: "Importuj ustawienia",
            valid: "Proszę podać poprawne ustawienia"
        },
        moveTorrent: {
            dl: {
                title: "Zmień ścieżkę pobierania"
            },
            newPath: "Nowa ścieżka",
            oldPath: "Stara ścieżka",
            required: "Wymagana jest nowa ścieżka",
            samePath: "Nowa ścieżka musi różnić się od starej ścieżki",
            save: {
                title: "Zmień ścieżkę zapisu"
            }
        },
        moveTorrentFile: {
            oldName: "Stara nazwa",
            title: "Przenieś plik torrent | Przenieś folder torrenta"
        },
        pluginManager: {
            headers: {
                actions: "Akcje",
                enabled: "Włączone",
                name: "Nazwa",
                url: "Adres URL silnika",
                version: "Wersja"
            },
            install: {
                activator: "Zainstaluj nową wtyczkę",
                label: "Adres URL wtyczki",
                title: "Zainstaluj wtyczkę"
            },
            title: "Menedżer wtyczek",
            update: "Aktualizuj wtyczki"
        },
        renameTorrent: {
            newName: "Nowa nazwa",
            oldName: "Stara nazwa",
            required: "Wymagana jest nowa nazwa",
            sameName: "Nowa nazwa musi różnić się od starej",
            title: "Zmień nazwę torrenta"
        },
        rss: {
            feed: {
                name: "Nazwa",
                rules: {
                    name_required: "Nazwa kanału RSS jest wymagana",
                    url_required: "Adres URL kanału RSS jest wymagany"
                },
                title: {
                    create: "Utwórz kanał RSS",
                    edit: "Edytuj kanał RSS"
                },
                url: "Adres URL"
            },
            rule: {
                affectedFeedsSubheader: "Kanały, których to dotyczy",
                assignedCategory: "Przypisana kategoria",
                enabled: "Włącz regułę",
                episodeFilter: "Filtr odcinków",
                episodeFilterPlaceholder: "np. S01E02-S01E05",
                ignoreDays: "Ignoruj elementy opublikowane w ciągu ostatnich {days} dni",
                ignoreDaysHint: "0 aby wyłączyć",
                lastMatch: {
                    knownValue: "dzisiaj | {n} dzień temu | {n} dni temu",
                    label: "Ostatnie dopasowanie",
                    unknownValue: "Nieznane"
                },
                matchingArticles: {
                    noMatch: "Brak pasujących artykułów",
                    title: "Pasujące artykuły"
                },
                mustContain: "Musi zawierać",
                mustNotContain: "Nie może zawierać",
                name: "Nazwa",
                savePath: "Ścieżka zapisu",
                savePathPlaceholder: "Pozostaw puste, aby użyć domyślnej ścieżki zapisu",
                smartFilter: "Użyj inteligentnego filtra odcinków",
                title: {
                    create: "Utwórz regułę RSS",
                    edit: "Edytuj regułę RSS"
                },
                useRegex: "Użyj wyrażenia regularnego"
            }
        },
        share_limit: {
            disabled: "Nie ustawiono limitu udostępniania",
            enabled: "Ustaw limit udostępniania na",
            global: "Użyj globalnego limitu udostępniania",
            inactive_seeding_time_limit: "Nieaktywne minuty",
            ratio_limit: "Stosunek",
            seeding_time_limit: "Łączna liczba minut",
            title: "Ustaw limit proporcji udostępniania"
        },
        shutdown: {
            content: "Czy na pewno chcesz zamknąć qBittorrent?",
            error: "Nie można zamknąć aplikacji. Upewnij się, że qBittorrent jest uruchomiony!",
            success: "qBittorrent został pomyślnie zamknięty!",
            title: "Zamknij qBittorrent"
        },
        speed_limit: {
            download: "Ustaw limit prędkości pobierania",
            label: "Limit prędkości",
            upload: "Ustaw limit prędkości wysyłania"
        },
        tag: {
            comma: "Nazwa nie może zawierać przecinka podczas zmiany nazwy tagu",
            hint: "Wskazówka: Można utworzyć wiele tagów, oddzielając je przecinkiem",
            name: "Nazwa tagu",
            oldName: "Stara nazwa tagu",
            required: "Nazwa tagu jest wymagana",
            title: {
                create: "Utwórz tag",
                rename: "Zmień nazwę tagu"
            },
            warnEdit: `Edycja nazwy tagu spowoduje migrację torrentów do nowego tagu.
Mogą wystąpić błędy, należy zachować ostrożność.`
        }
    };
    $H = {
        error: "Logowanie nie powiodło się!",
        password: "Hasło",
        rules: {
            password_required: "Hasło jest wymagane",
            username_required: "Nazwa użytkownika jest wymagana"
        },
        submit: "Zaloguj się",
        subtitle: "Wprowadź swoje dane uwierzytelniające",
        success: "Logowanie zakończone sukcesem!",
        title: "Logowanie",
        username: "Nazwa użytkownika"
    };
    UH = {
        emptyLogList: "Nie znaleziono żadnych dzienników",
        filters: {
            query: "Szukaj w wiadomości dziennika",
            type: "Poziom dziennika"
        },
        title: "Dzienniki qBittorrent"
    };
    jH = {
        addPanel: {
            torrentsPendingCount: "{n} torrent oczekujący na przesłanie | {n} torrentów oczekujących na przesłanie"
        },
        side: {
            bottom_actions: {
                alt_speed: "Przełącz alternatywną prędkość",
                conn_status: "Status połączenia: {status}",
                logout: "Wyloguj",
                shutdown: "Zamknij qBittorrent"
            },
            current_speed: {
                title: "Aktualna prędkość"
            },
            filters: {
                activeFilter: "{n} aktywnych filtrów ",
                category: {
                    empty: "(Nieprzypisane do kategorii)",
                    title: "Filtr kategorii"
                },
                disabled: "(Wyłączone)",
                state: {
                    active: "Aktywny",
                    error: "Błąd",
                    title: "Filtr stanu torrenta"
                },
                tag: {
                    empty: "(Bez tagu)",
                    title: "Filtr tagów"
                },
                tracker: {
                    empty: "(Nieśledzone)",
                    title: "Filtr Trackerów"
                }
            },
            speed_graph: {
                download_label: "Pobieranie",
                download_limit_label: "Limit pobierania",
                upload_label: "Wysyłanie",
                upload_limit_label: "Limit wysyłania"
            },
            stats: {
                alltime: {
                    title: "Statystyki ogólne"
                },
                downloaded: "Pobrano",
                free_space: "Wolne miejsce",
                ratio: "Stosunek",
                session: {
                    title: "Statystyki sesji"
                },
                uploaded: "Przesłane"
            }
        },
        top: {
            active_filters: {
                category: "Filtr kategorii: {value}",
                menu_label: "Aktywny filtr: {n} | Aktywne filtry: {n} ",
                multiple_category: "Filtr kategorii: {n} kategorie",
                multiple_state: "Filtr stanu: {n} stany",
                multiple_tag: "Filtr tagów: {n} tagi",
                multiple_tracker: "Filtr Trackerów: {n} trackery/trackerów/trackerów",
                state: "Filtr stanu: {value}",
                tag: "Filtr tagów: {value} ",
                text: "Filtr tekstu: {value}",
                tracker: "Filtr Trackerów: {value}"
            }
        }
    };
    YH = {
        feeds: {
            empty: {
                action: "Utwórz kanał RSS"
            },
            filters: {
                title: "Filtr tytułów",
                unread: "Pokaż tylko nieprzeczytane artykuły"
            },
            item: {
                author: "Autor: {author}",
                category: "Kategoria: {category}",
                feedName: "Nazwa kanału: {name}"
            },
            markAllAsRead: "Oznacz wszystkie jako przeczytane",
            promise: {
                error: "Wystąpił błąd podczas oznaczania artykułów",
                pending: "Oznaczanie...",
                success: "Oznaczono jako przeczytane {n} artykułów"
            },
            title: "Artykuły RSS"
        },
        rules: {
            empty: {
                action: "Utwórz regułę RSS"
            }
        }
    };
    qH = {
        filters: {
            category: {
                all: "Wszystkie",
                anime: "Anime",
                books: "Książki",
                games: "Gry",
                label: "Kategoria wyszukiwania",
                movies: "Filmy",
                music: "Muzyka",
                pictures: "Obrazy",
                software: "Oprogramowanie",
                tv: "TV"
            },
            plugins: {
                all: "Wszystkie",
                enabled: "Włączone",
                label: "Wyszukaj wtyczkę"
            },
            title: {
                label: "Filtruj po tytule"
            }
        },
        headers: {
            fileName: "Nazwa pliku",
            fileSize: "Rozmiar pliku",
            nbLeechers: "Liczba udostępniających",
            nbSeeders: "Seederzy",
            siteUrl: "Adres URL strony"
        },
        query: "Wyszukiwana fraza",
        runSearch: "Szukaj",
        stopSearch: "Zatrzymaj",
        tabHeaderEmpty: "(Puste zapytanie)",
        title: "Wyszukiwarka"
    };
    KH = JSON.parse(`{"advanced":{"libtorrent":{"announceAllTiers":"Zawsze ogłaszaj do wszystkich poziomów","announceAllTrackers":"Zawsze ogłaszaj wszystkim trackerom na danym poziomie","announceIP":"Adres IP zgłaszany do trackerów (wymaga ponownego uruchomienia)","coalesceReadsWrites":"Łączenie odczytów i zapisów (libtorrent < 2.0)","disk":{"diskCache":"Pamięć podręczna dysku (libtorrent < 2.0)","diskCacheExpiry":"Interwał wygaśnięcia pamięci podręcznej dysku (libtorrent < 2.0)","diskIoReadMode":"Tryb odczytu dysku IO","diskIoType":"Typ wejścia/wyjścia dysku (libtorrent >= 2.0; wymaga ponownego uruchomienia)","diskIoWriteMode":"Tryb zapisu dysku IO","diskQueueSize":"Rozmiar kolejki dysku","subheader":"Dysk"},"maxConcurrentHTTPAnnounces":"Maksymalna liczba równoczesnych ogłoszeń HTTP","networking":{"outgoingPortsMax":"Porty wychodzące (maks.) [0: Wyłączone]","outgoingPortsMin":"Porty wychodzące (min.) [0: Wyłączone]","peerTos":"Wartość DSCP dla połączeń z peerami","subheader":"Sieć","upnpLeaseDuration":"Czas dzierżawy UPnP [0: Dzierżawa stała]","utpTcpMixedModeAlgorithm":"Algorytm mieszany μTP-TCP"},"outgoingConnectionsPerSecond":"Połączenia wychodzące na sekundę","peerTurnover":"Procent rozłączenia w przypadku wymiany peer'ów","peerTurnoverCutoff":"Procent prógu odłączenia w przypadku wymiany peer'ów","peerTurnoverInterval":"Interwał rozłączenia w przypadku wymiany peer'ów","pieceExtentAffinity":"Użyj powiązania zasięgu fragmentu","requestQueueSize":"Maksymalna liczba oczekujących żądań do jednego peer'a","security":{"allowMultipleConnectionsFromTheSameIPAddress":"Zezwalaj na wiele połączeń z tego samego adresu IP","blockPeersOnPrivilegedPorts":"Zablokuj połączenia z peerami na uprzywilejowanych portach","idnSupport":"Włącz obsługę międzynarodowych nazw domenowych (IDN)","mitigateSSRF":"Zabezpieczenie przed podrobieniem żądania po stronie serwera (SSRF)","subheader":"Bezpieczeństwo","validateHTTPSTrackerCertificate":"Sprawdź ważność certyfikatu HTTPS tracker'a"},"sendBufferLowWatermark":"Minimalny próg buforowania wysyłania","sendBufferWatermark":"Wyślij buforowy znak wodny","sendBufferWatermarkFactor":"Wyślij współczynnik znaku wodnego bufora","sendUploadPieceSuggestions":"Wyślij sugestie dotyczące przesyłania fragmentów","socketBacklogSize":"Rozmiar kolejki gniazda","socketReceiveBufferSize":"Rozmiar bufora odbioru gniazda","socketReceiveBufferSizeHint":"0: domyślny systemowy","socketSendBufferSize":"Rozmiar bufora wysyłania gniazda","socketSendBufferSizeHint":"0: domyślny systemowy","stopTrackerTimeout":"Czas oczekiwania na zatrzymanie trackera","subheader":"Sekcja libtorrent","threads":{"asyncIoThreads":"Asynchroniczne wątki we/wy","bdecodeDepthLimit":"Limit głębokości Bdecode","bdecodeTokenLimit":"Limit tokenów Bdecode","filePoolSize":"Rozmiar puli plików","hashingThreads":"Wątki hashowania (libtorrent >= 2.0)","outstandingMemory":"Pamięć oczekująca podczas sprawdzania torrentów","subheader":"Wątki"},"uploadChokingAlgorithm":"Algorytm ograniczania wysyłania","uploadSlotsBehavior":"Zachowanie slotów wysyłania"},"openDoc":"Otwórz dokumentację","qbittorrent":{"allocatedRam":"Limit wykorzystania pamięci RAM (libtorrent >= 2.0)","embeddedTracker":{"enable":"Włącz wbudowany tracker","port":"Port wbudowanego trackera","portForward":"Włącz przekierowanie portów dla wbudowanego trackera","title":"Tracker wbudowany"},"networking":{"ipAddress":{"all":"Wszystkie adresy","allIPv4":"Wszystkie adresy IPv4","allIPv6":"Wszystkie adresy IPv6","label":"Opcjonalny adres IP do przypisania"},"networkInterfaces":{"any":"Dowolny interfejs","label":"Interfejs sieciowy"},"title":"Sieć"},"reannounceOnIpPortChanged":"Powiadom wszystkie trackery o zmianie adresu IP lub portu","recheckOnCompletion":"Sprawdź ponownie torrenty po zakończeniu","refreshInterval":"Interwał odświeżania GUI","resolveCountries":"Ustalaj kraje peerów","resumeDataStorageType":{"label":"Typ przechowywania danych wznawiania (wymaga ponownego uruchomienia)","legacy":"Pliki szybkiego wznowienia","sqlite":"Baza danych SQLite (eksperymentalna)"},"saveInterval":"Interwał zapisywania danych do wznowienia","subheader":"Sekcja qBittorrent","torrentFileSizeLimit":"Limit rozmiaru pliku .torrent"}},"behavior":{"logs":{"file_log_age":"Usuń dzienniki kopii zapasowych starsze niż","file_log_backup_enabled":"Włącz kopię zapasową pliku dziennika","file_log_delete_old":"Usuń stare dzienniki kopii zapasowych","file_log_enabled":"Włącz pliki dziennika","file_log_max_size":"Wykonaj kopię zapasową pliku dziennika po","file_log_path":"Ścieżka zapisu","subheader":"Zarządzanie logami"},"performance_warning":"Zapisz ostrzeżenie o wydajności"},"bittorrent":{"autoAddTrackers":"Automatycznie dodaj te trackery do nowych pobierań","autoAddTrackersHint":"Jeden tracker na wiersz","maxActiveCheckingTorrents":"Maksymalna liczba aktywnych sprawdzanych torrentów","privacy":{"enableAnonymous":"Włącz tryb anonimowy","enableDHT":"Włącz DHT (zdecentralizowaną sieć) aby znaleźć więcej peerów","enableLPD":"Włącz odkrywanie lokalnych peerów, aby znaleźć więcej peerów","enablePeX":"Włącz wymianę peerów (PeX), aby znaleźć więcej peerów","encryptionMode":"Tryb szyfrowania","moreInfo":"Więcej informacji","subheader":"Prywatność"},"seedLimits":{"subheader":"Limity seedowania","then":"Następnie","whenInactiveSeedingTimeReaches":"Gdy czas nieaktywnego seedowania osiągnie","whenRatioReaches":"Gdy stosunek osiągnie","whenSeedingTimeReaches":"Gdy czas seedowania osiągnie"},"torrentQueueing":{"downloadRateLimit":"Próg pobierania","excludeSlowTorrent":"Nie uwzględniaj wolnych torrentów w tych limitach","maxActiveDownload":"Maksymalna liczba aktywnych pobrań","maxActiveTorrent":"Maksymalna liczba aktywnych torrentów","maxActiveUpload":"Maksymalna liczba aktywnych wysyłek","subheader":"Kolejkowanie torrentów","torrentInactivityTimer":"Timer bezczynności torrenta","uploadRateLimit":"Próg wysyłania"}},"connection":{"connectionLimits":{"globalMaxConnection":"Globalna maksymalna liczba połączeń","globalMaxUploadSlots":"Globalna maksymalna liczba slotów przesyłania plików","perTorrentMaxConnection":"Maksymalna liczba połączeń na torrent","perTorrentMaxUploadSlots":"Maksymalna liczba slotów przesyłania plików na torrent","subheader":"Limity połączeń"},"ipFiltering":{"applyToTrackers":"Zastosuj do trackerów","bannedIps":"Ręcznie zbanowane adresy IP","bannedIpsHint":"Jeden na każdej linii","filterPath":"Ścieżka filtru (.dat, .p2p, .p2b)","subheader":"Filtrowanie IP"},"listeningPort":{"incomingConnectionPort":"Port używany do przychodzących połączeń","randomPort":"Losowy port","subheader":"Port nasłuchu","useUPnP":"Użyj przekierowania portów UPnP / NAT-PMP z mojego routera"},"protocol":"Protokół połączenia z peer'ami","proxy":{"auth":{"password":"Hasło","subtitle":"Uwierzytelnianie","tip":"Informacja: Hasło jest zapisane w postaci niezaszyfrowanej","username":"Nazwa użytkownika"},"bittorrent":"Użyj serwera proxy do celów BitTorrent","host":"Host","hostNameLookup":"Użyj serwera proxy do wyszukiwania nazw hostów","misc":"Użyj serwera proxy do celów ogólnych","peerConnections":"Użyj serwera proxy dla połączeń peer","port":"Port","rss":"Użyj serwera proxy do celów RSS","subheader":"Serwer proxy"}},"downloads":{"excludedFileNames":{"hint":"Jeden filtr na linię","label":"Wykluczone nazwy plików"},"mailNotification":{"authEnabled":"Uwierzytelnianie","enabled":"Powiadomienie e-mailem po zakończeniu pobierania","from":"Od","password":"Hasło","smtpServer":"Serwer SMTP","sslEnabled":"Ten serwer wymaga bezpiecznego połączenia (SSL) ","to":"Do","username":"Nazwa użytkownika"},"monitoredFolders":{"actions":"Akcje","confirmDelete":"Czy na pewno chcesz usunąć ten element?","editItem":"Edytuj","monitoredFolderPath":"Folder monitorowany","newItem":"Nowy","noData":"Nie ma jeszcze monitorowanego folderu","otherPath":"Inna ścieżka","saveType":"Zastąp lokalizację zapisu","subheader":"Foldery monitorowane"},"publicSettings":{"appendQBExtension":"Dodaj rozszerzenie .!qB do niekompletnych plików","preAllocateDisk":"Wstępna alokacja miejsca na dysku dla wszystkich plików"},"runExternalProgram":{"onAddedEnabled":"Uruchom program zewnętrzny po dodaniu torrenta","onAddedLabel":"Polecenie","onFinishedEnabled":"Uruchom program zewnętrzny po zakończeniu pobierania torrenta","onFinishedLabel":"Polecenie","subheader":"Uruchom program zewnętrzny","supportParamC":"%C: Liczba plików","supportParamD":"%D: Ścieżka zapisu","supportParamF":"%F: Ścieżka zawartości (taka sama jak ścieżka główna dla torrentów wieloplikowych)","supportParamG":"%G: Tagi (oddzielone przecinkami)","supportParamI":"%I: Infohash v1","supportParamJ":"%J: Infohash v2","supportParamK":"%K: Identyfikator torrenta","supportParamL":"%L: Kategoria","supportParamN":"%N: Nazwa torrenta","supportParamR":"%R: Ścieżka główna (ścieżka pierwszego podkatalogu torrenta) ","supportParamT":"%T: Bieżący tracker","supportParamTitle":"Obsługiwane parametry (z uwzględnieniem wielkości liter):","supportParamZ":"%Z: Rozmiar torrenta (bajty)","tip":"Porada: Obejmij parametr cudzysłowami, aby uniknąć przycięcia tekstu na białych znakach (np. \\"%N\\")"},"saveManagement":{"autoTMMEnabled":"Domyślny tryb zarządzania torrentami","categoryChangedTMM":"Gdy zmieniono ścieżkę zapisu kategorii","defaultSavePath":"Domyślna ścieżka zapisu (kompletna)","defaultTMMOptions":{"automatic":"Automatyczne","manual":"Ręczne"},"exportDir":"Kopiuj pliki .torrent do","exportDirFinished":"Kopiuj pliki .torrent dla ukończonych pobierań do","keepIncomplete":"Domyślna ścieżka pobierania (niekompletne torrenty)","paramChangedTMMOptions":{"relocateTorrent":"Przenieś torrent","switchToManual":"Przełącz torrent w tryb ręczny"},"savePathChangedTMM":"Gdy zmieniono domyślną ścieżkę zapisu","subheader":"Zarządzanie zapisywaniem","torrentChangedTMM":"Gdy zmieniono kategorię torrenta"},"whenAddTorrent":{"addToTopOfQueue":"Dodaj na początek kolejki","autoDeleteMode":"Usuń pliki .torrent automatycznie","doNotAutoStart":"Nie uruchamiaj pobierania automatycznie","mergeTrackers":"Scal trackery, jeśli torrent już istnieje","subheader":"Podczas dodawania torrenta"}},"rss":{"autoDownloader":{"enable":"Włącz przetwarzanie reguł RSS","subheader":"Automatyczne pobieranie torrentów RSS"},"reader":{"enableProcessing":"Włącz pobieranie kanałów RSS","feedsRefreshInterval":"Interwał odświeżania kanałów","maximumArticlesPerFeed":"Maksymalna liczba artykułów na kanał","subheader":"Czytnik RSS"},"smartEpisodeFilter":{"downloadEpisodes":"Pobierz odcinki REPACK/PROPER","filters":"Filtry","filtersHint":"Jeden na linię","subheader":"Filtr inteligentnych odcinków RSS"},"useIdForRssLinks":"Użyj identyfikatora linku do artykułu RSS"},"saveSuccess":"Ustawienia zapisane!","speed":{"download":"Pobieranie","scheduler":{"from":"Od","selectButtonLabel":"Wybierz czas","subheader":"Zaplanuj wykorzystanie alternatywnych limitów szybkości","to":"Do","when":"Kiedy"},"settings":{"applyToPeersOnLan":"Zastosuj limit prędkości dla peerów w sieci LAN","applyToTransportOverhead":"Zastosuj limit szybkości do nadmiaru transportu","applyToUtp":"Zastosuj limit prędkości dla protokołu µTP"},"subheader":{"alternative":"Alternatywne limity szybkości","global":"Ogólne limity szybkości","settings":"Ustawienia limitów szybkości"},"tip":"0 oznacza brak limitu","upload":"Wysyłanie"},"tabs":{"advanced":"Zaawansowane","behavior":"Zachowanie","bittorrent":"BitTorrent","connection":"Połączenie","downloads":"Pobrania","rss":"RSS","speed":"Prędkość","tagsAndCategories":"Tagi i kategorie","vuetorrent":{"general":"Ogólne","title":"VueTorrent","torrent_card":{"grid":"Widok siatki","list":"Widok listy","table":"Widok tabeli"}},"webui":"Interfejs WWW"},"tagsAndCategories":{"categoriesSubheader":"Dostępne kategorie:","createNewCategory":"Utwórz nową kategorię","createNewTag":"Utwórz nowy tag","noCategories":"Nie ma jeszcze kategorii","noTags":"Nie ma jeszcze tagów","tagsSubheader":"Dostępne tagi:"},"title":"Ustawienia","vuetorrent":{"general":{"check_new":"Sprawdź nową wersję","currentVersion":"Obecna wersja","customTitle":"Niestandardowy tytuł","dateFormat":"Format daty","download":"Eksportuj ustawienia","fileContentInterval":"Interwał odświeżania zawartości pliku torrent","hideChipIfUnset":"Ukryj elementy, jeśli nieustawione","historySize":"Rozmiar historii w kwalifikujących się polach","import":"Importuj ustawienia","isDrawerRight":"Prawy panel boczny","isShutdownButtonVisible":"Pokaż przycisk wyłączenia","language":"Język","paginationSize":{"infinite_scroll":"Nieskończone przewijanie","label":"Rozmiar paginacji","warning":"Używanie wysokich wartości może wpłynąć na wydajność"},"qbittorrentVersion":"Wersja qBittorrent","refreshInterval":"Interwał odświeżania API qBittorrent","registerMagnet":"Zarejestruj linki magnet","resetSettings":"Resetuj ustawienia","showAlltimeStat":"Pokaż statystyki ogólne","showCurrentSpeed":"Pokaż aktualną prędkość","showFreeSpace":"Pokaż wolne miejsce","showSessionStat":"Pokaż statystyki sesji","showSpeedGraph":"Pokaż wykres prędkości","tip":"Te ustawienia dotyczą niestandardowego interfejsu WebUI","useBinarySize":"Zastąp jednostki danych jednostkami binarnymi (kB -> KiB)","useBitSpeed":"Zamień wartości prędkości na bity (kB/s -> kbps)","vueTorrentTitle":"Tytuł karty"},"torrentCard":{"grid":{"busyTip":"Właściwości do wyświetlenia dla niekompletnych torrentów w widoku siatki","doneTip":"Właściwości do wyświetlenia dla ukończonych torrentów w widoku siatki"},"list":{"busyTip":"Właściwości do wyświetlenia dla zajętych torrentów w widoku listy","doneTip":"Właściwości do wyświetlenia dla ukończonych torrentów w widoku listy"},"table":{"tip":"Właściwości do wyświetlenia dla torrentów w widoku tabeli"}}},"webUI":{"authentication":{"banDuration":"Czas blokady","banDurationHint":"W sekundach","bypassLocalhost":"Pomiń uwierzytelnianie klientów na serwerze lokalnym","bypassWhitelist":"Pomiń uwierzytelnianie dla klientów w podsieciach IP na białej liście","maxAttempts":"Maksymalna liczba prób","password":"Hasło","passwordPlaceholder":"(bez zmian)","sessionTimeout":"Limit czasu sesji","sessionTimeoutHint":"W sekundach","subheader":"Uwierzytelnianie","username":"Nazwa użytkownika","whitelistExamples":"Przykład: 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"Dodaj niestandardowe nagłówki HTTP","customHeadersHint":"Jeden na linię","customHeadersPlaceholder":"Nagłówek1: wartość1\\nNagłówek2: wartość2\\n...","dynDns":{"domainName":"Nazwa domeny","password":"Hasło","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"Zarejestruj","subheader":"Zaktualizuj moją dynamiczną nazwę domeny","username":"Nazwa użytkownika"},"https":{"certificate":"Certyfikat","key":"Klucz","subheader":"Użyj protokołu HTTPS","tip":"Informacje o certyfikatach"},"interface":{"ipAddress":"Adres IP","port":"Port","subheader":"Interfejs użytkownika","useAlternativeWebUI":"Użyj alternatywnego interfejsu WebUI","useUPnP":"Użyj przekierowania portów UPnP / NAT-PMP z mojego routera"},"proxiesList":"Lista zaufanych serwerów proxy","proxiesListHint":"Oddzielaj adresy IP średnikiem ( ; )","reverseProxySupport":"Włącz obsługę odwrotnego proxy","security":{"clickjacking":"Włącz ochronę przed clickjackingiem","csrf":"Włącz ochronę przed atakami typu Cross-Site Request Forgery (CSRF)","hostHeaderValidation":"Włącz walidację nagłówka Host","hostHeaderValidationHint":"Oddzielone średnikiem ( ; ) ","secureCookie":"Włącz flagę \\"secure\\" dla ciasteczek (wymaga HTTPS)","serverDomains":"Domeny serwera","subheader":"Bezpieczeństwo"}}}`);
    XH = {
        add: {
            error: "Błąd podczas dodawania torrentów",
            pending: "Wysyłanie torrentów...",
            success: "Dodano {n} torrent | Dodano {n} torrentów"
        },
        copy: {
            error: "Nie można skopiować, kontekst nie jest zabezpieczony!",
            success: "Skopiowano do schowka!"
        },
        magnet_handler: {
            not_supported: "Bieżący kontekst nie jest zabezpieczony. Nie można zarejestrować obsługi.",
            registered: "Zarejestrowano obsługę magnet'ów."
        },
        qbit: {
            not_supported: "Dostępne tylko dla qbit >= {version}"
        },
        version: {
            new: "Nowa wersja dostępna!"
        }
    };
    JH = {
        actions: {
            delete: "Usuń torrenty",
            logs: "Otwórz dzienniki",
            pause: "Wstrzymaj torrenty",
            resume: "Wznów pobieranie torrentów",
            rssArticles: "Otwórz artykuły RSS",
            searchEngine: "Otwórz wyszukiwarkę",
            settings: "Otwórz ustawienia"
        },
        addTorrents: "Dodaj torrenty",
        overflow: {
            delete: "Usuń",
            logs: "Dzienniki qBittorrent",
            pause: "Pauza",
            resume: "Wznów",
            rssArticles: "Artykuły RSS",
            searchEngine: "Wyszukiwarka",
            settings: "Ustawienia"
        },
        searchTorrents: "Szukaj torrentów"
    };
    ZH = {
        content: {
            fileInfo: "{n} plik | {n} pliki | {n} plików",
            folderInfo: "{n} folder | {n} foldery | {n} folderów",
            priority: "Ustaw priorytet",
            rename: {
                bulk: "Zbiorcza zmiana nazwy",
                file: "Zmień nazwę",
                folder: "Zmień nazwę folderu"
            },
            rootNode: "(Główny)"
        },
        info: {
            boolean_values: "Wartości logiczne",
            data_values: "Wartości danych",
            datetime_values: "Wartości daty i czasu",
            duration_values: "Wartości czasu trwania",
            long_text_values: "Długie wartości tekstowe",
            speed_values: "Wartości prędkości",
            text_values: "Wartości tekstowe"
        },
        overview: {
            canvasRefreshDisabled: "Automatyczne odświeżanie canvas jest wyłączone",
            canvasRenderDisabled: "Renderowanie canvas jest wyłączone",
            copy_hash: "Kopiuj Hash",
            dlSpeedAverage: "Średnia prędkość pobierania",
            downloaded: "Pobrano",
            fetchingMetadata: "Pobieranie...",
            fileCount: "Wybrane pliki",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "Stosunek",
            selectedFileSize: "Rozmiar wybranych plików",
            uploaded: "Przesłane",
            upSpeedAverage: "Średnia prędkość wysyłania",
            waitingForMetadata: "Oczekiwanie na metadane..."
        },
        peers: {
            addPeers: {
                newPeers: "Dodaj hosty peerów",
                newPeersHint: "Jeden na linię",
                newPeersPlaceholder: "adres_hosta:port",
                title: "Dodaj peer'ów"
            },
            empty: "Obecnie brak połączonych peer'ów",
            fields: {
                client: "Klient",
                download: "Pobieranie",
                flags: "Flagi",
                host: "Host",
                progress: "Postęp",
                relevance: "Trafność",
                upload: "Wysyłanie"
            }
        },
        tabs: {
            content: "Zawartość",
            info: "Informacje",
            overview: "Przegląd",
            peers: "Peery",
            tagsAndCategories: "Tagi i kategorie",
            trackers: "Trackery"
        },
        tagsAndCategories: {
            categories: "Kategorie",
            tags: "Tagi"
        },
        title: "Szczegóły torrenta",
        trackers: {
            addTrackers: {
                newTrackers: "Adresy URL trackerów do dodania",
                newTrackersHint: "Jeden na wiersz, oddzielaj poziomy pustą linią",
                title: "Dodaj trackery"
            },
            editTracker: {
                newUrl: "Nowy adres URL",
                newUrlRequired: "Wymagany jest nowy adres URL",
                oldUrl: "Stary adres URL",
                title: "Edytuj tracker"
            },
            fields: {
                num_downloaded: "Pobrano",
                num_peers: "Peery",
                num_seeds: "Seedy"
            },
            reannounce: "Ogłoś ponownie wszystko",
            tier: "Poziom: {n}"
        }
    };
    QH = {
        properties: {
            added_on: "Dodano",
            amount_left: "Pozostała ilość",
            auto_tmm: "Automatyczne zarządzanie torrentami",
            availability: "Dostępność",
            available_peers: "Peery (swarm)",
            available_seeds: "Seedy (swarm)",
            avg_download_speed: "Średnia prędkość pobierania",
            avg_upload_speed: "Średnia prędkość wysyłania",
            category: "Kategoria",
            completed_on: "Ukończono dnia",
            content_path: "Ścieżka zawartości",
            downloaded: "Pobrano (globalnie)",
            downloaded_session: "Pobrano (sesja)",
            download_limit: "Limit pobierania",
            download_path: "Ścieżka pobierania",
            download_speed: "Prędkość pobierania",
            empty_category: "(brak kategorii)",
            empty_tags: "(brak tagów)",
            empty_tracker: "(brak trackera)",
            eta: "Czas przewidywany",
            f_l_piece_prio: "Priorytet pierwszej/ostatniej części",
            forced: "Stan wymuszony",
            global_speed: "Prędkość globalna",
            global_volume: "Globalny wolumen",
            hash: "Suma kontrolna",
            inactive_seeding_time_limit: "Limit czasu nieaktywnego seedowania",
            infohash_v1: "Infohash v1",
            infohash_v2: "Infohash v2",
            last_activity: "Ostatnia aktywność",
            magnet: "Link magnet",
            name: "Tytuł Torrenta",
            num_leechs: "Peery (połączone)",
            num_seeds: "Seedy (połączone)",
            peers: "Peery",
            priority: "Priorytet",
            progress: "Postęp",
            progress_bar: "Pasek postępu",
            ratio: "Stosunek",
            ratio_limit: "Limit proporcji",
            save_path: "Ścieżka zapisu",
            seeding_time: "Czas seedowania",
            seeding_time_limit: "Limit czasu seedowania",
            seeds: "Seedy",
            seen_complete: "Widziane jako kompletne",
            seq_dl: "Pobieranie sekwencyjne",
            size: "Rozmiar",
            state: "Stan",
            super_seeding: "Tryb Super Seedowania",
            tags: "Tagi",
            time_active: "Czas aktywności",
            total_size: "Całkowity rozmiar",
            tracker: "Tracker",
            trackers_count: "Liczba trackerów",
            uploaded: "Przesłano (globalnie)",
            uploaded_session: "Przesłano (sesja)",
            upload_limit: "Limit wysyłania",
            upload_speed: "Prędkość wysyłania"
        },
        state: {
            checking_resume_data: "Sprawdzanie danych do wznowienia",
            dl_forced: "[W] Pobieranie",
            dl_queued: "W kolejce (pobieranie)",
            dl_stalled: "Zatrzymany",
            downloading: "Pobieranie",
            error: "Błąd",
            meta_download: "Metadane",
            missing_files: "Brakujące pliki",
            moving: "Przenoszenie",
            ul_forced: "[W] Wysyłanie",
            ul_queued: "W kolejce (wysyłanie)",
            ul_stalled: "Seedowanie",
            unknown: "Nieznany",
            uploading: "Wysyłanie"
        }
    };
    e9 = {
        minutes: "minuta | minuty | minut",
        seconds: "sekunda | sekundy | sekund"
    };
    t9 = {
        common: HH,
        constants: VH,
        dashboard: WH,
        dialogs: GH,
        login: $H,
        logs: UH,
        navbar: jH,
        rssArticles: YH,
        searchEngine: qH,
        settings: KH,
        toast: XH,
        topbar: JH,
        torrentDetail: ZH,
        torrent: QH,
        units: e9
    };
    a9 = "Conteúdo gerado pelo aplicativo Tolgee. NUNCA EDITE MANUALMENTE, POIS SERÁ SOBRESCRITO";
    r9 = {
        cancel: "Cancelar",
        close: "Fechar",
        delete: "Excluir",
        disable: "Desativar",
        disabled: "Desativado",
        edit: "Editar",
        emptyList: "Não há nada aqui!",
        global_value: "Valor global",
        NA: "Não disponível",
        no: "Não",
        none: "(Nenhum)",
        ok: "OK",
        pause: "Pausar",
        refresh: "Atualizar",
        resume: "Retomar",
        save: "Salvar",
        search: "Buscar",
        selectAll: "Selecionar tudo",
        selectNone: "Selecionar nenhum",
        useGlobalSettings: "Usar configurações globais",
        yes: "Sim"
    };
    n9 = {
        addStopped: {
            always: "Sempre",
            never: "Nunca",
            title: "Adicionar pausado"
        },
        auto_delete_mode: {
            always: "Sempre",
            never: "Nunca"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP e μTP",
            utp: "µTP"
        },
        connectionStatus: {
            connected: "Conectado",
            disconnected: "Desconectado",
            unknown: "Desconhecido"
        },
        contentLayout: {
            nosubfolder: "Remover subpasta",
            original: "Original",
            subfolder: "Criar subpasta",
            title: "Layout de conteúdo do torrent"
        },
        diskIoMode: {
            disableOsCache: "Desativar cache do sistema operacional",
            enableOsCache: "Habilitar cache do sistema operacional"
        },
        diskIoType: {
            default: "Padrão",
            memoryMappedFiles: "Arquivos mapeados na memória",
            posixCompliant: "Compatível com POSIX"
        },
        encryption: {
            forceOff: "Desativar criptografia",
            forceOn: "Exigir criptografia",
            preferEncryption: "Permitir criptografia"
        },
        file_log_age_type: {
            days: "Dia | Dia | Dias",
            months: "Mês | Mês | Meses",
            years: "Ano | Ano | Anos"
        },
        file_priority: {
            high: "Alta",
            max: "Máxima",
            mixed: "Mista",
            normal: "Normal",
            unwanted: "Indesejado"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Caminho de salvamento padrão",
            monitoredFolder: "Localização da pasta monitorada",
            other: "Outra"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Diariamente",
            everyFriday: "Toda sexta-feira",
            everyMonday: "Toda segunda-feira",
            everySaturday: "Todo sábado",
            everySunday: "Todo domingo",
            everyThursday: "Toda quinta-feira",
            everyTuesday: "Toda terça-feira",
            everyWednesday: "Toda quarta-feira",
            everyWeekday: "Todos os dias da semana",
            everyWeekend: "Todos os finais de semana"
        },
        shareLimitAction: {
            removeTorrent: "Remover torrent",
            removeTorrentAndFiles: "Remova o torrent e seus arquivos",
            stopTorrent: "Pausar torrent",
            torrentSuperseeding: "Ativar super seeding para torrent"
        },
        stopCondition: {
            filesChecked: "Arquivos verificados",
            metadataReceived: "Metadados recebidos",
            none: "Nenhuma",
            title: "Condição de parada do torrent"
        },
        themes: {
            dark: {
                legacy: "Legado",
                redesigned: "Redesenhado"
            },
            light: {
                legacy: "Legado",
                redesigned: "Redesenhado"
            }
        },
        titleOptions: {
            custom: "Personalizado",
            default: "Padrão",
            global_speed: "Velocidade global"
        },
        trackerStatus: {
            disabled: "Desativado",
            not_working: "Não está funcionando",
            not_yet_contacted: "Ainda não foi contatado",
            updating: "Atualizando",
            working: "Funcionando"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-sanguessuga",
            fastestUpload: "Upload mais rápido"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Slots fixos",
            uploadRateBased: "Baseado na taxa de upload"
        },
        utpTcpMixedMode: {
            peerProportional: "Proporcional ao peer (limita TCP)",
            preferTcp: "Preferir TCP"
        }
    };
    i9 = {
        displayMode: {
            grid: "Grade",
            list: "Lista",
            table: "Tabela",
            title: "Modo de exibição"
        },
        right_click: {
            advanced: {
                auto_tmm: "Gerenciamento automático de torrents",
                download_path: "Definir o caminho para download",
                reannounce: "Forçar um novo anúncio",
                recheck: "Forçar nova verificação",
                rename: "Renomear torrent",
                save_path: "Definir caminho de salvamento",
                seq_dl: "Download sequencial",
                title: "Avançado"
            },
            copy: {
                magnet: "Magnético",
                name: "Nome",
                title: "Copiar"
            },
            info: "Exibir informações",
            priority: {
                decrease: "Diminuir",
                increase: "Aumentar",
                title: "Definir posição da fila"
            },
            speed_limit: {
                download: "Definir limite do download"
            },
            tags: {
                clear_all: "Remover todos",
                disabled_title: "Sem tags"
            },
            top: {
                delete: "Excluir",
                force_resume: "Forçar início",
                pause: "Pausar",
                resume: "Iniciar"
            }
        },
        searchInputLabel: "Buscar"
    };
    o9 = {
        side: {
            filters: {
                state: {
                    active: "Ativar"
                }
            }
        }
    };
    s9 = {
        _comments: a9,
        common: r9,
        constants: n9,
        dashboard: i9,
        navbar: o9
    };
    l9 = {
        auto: "Авто",
        cancel: "Отменить",
        close: "Закрыть",
        delete: "Удалить",
        disable: "Отключить",
        disabled: "Отключён",
        edit: "Редактировать",
        emptyList: "Тут ничего нет!",
        global_value: "Глобальное значение",
        NA: "Н/Д",
        no: "Нет",
        none: "Отсутствует",
        ok: "OK",
        pause: "Пауза",
        refresh: "Обновить",
        resume: "Возобновить",
        save: "Сохранить",
        search: "Поиск",
        selectAll: "Выделить все",
        selectNone: "Снять выбор",
        useGlobalSettings: "Использовать глобальные настройки",
        yes: "Да"
    };
    u9 = {
        addStopped: {
            always: "Всегда",
            never: "Никогда",
            title: "Добавить приостановленным"
        },
        auto_delete_mode: {
            always: "Всегда",
            if_added: "При добавлении",
            never: "Никогда"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP и μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Подключено",
            disconnected: "Отключено",
            firewalled: "За файрволом",
            unknown: "Неизвестно"
        },
        contentLayout: {
            nosubfolder: "Удалить подпапку",
            original: "Стандартный",
            subfolder: "Создать подпапку",
            title: "Шаблон содержимого торрента"
        },
        diskIoMode: {
            disableOsCache: "Отключить кэш ОС",
            enableOsCache: "Включить кэш ОС",
            writeThrough: "Сквозная запись (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "По умолчанию",
            memoryMappedFiles: "Файлы, распределённые в памяти",
            posixCompliant: "POSIX-совместимый",
            simplePreadPwrite: "Базовое чтение/запись со смещением"
        },
        encryption: {
            forceOff: "Отключить шифрование",
            forceOn: "Требовать шифрование",
            preferEncryption: "Разрешить шифрование"
        },
        file_log_age_type: {
            days: "Дней | День | Дня | Дней",
            months: "Месяцев | Месяц | Месяца | Месяцев",
            years: "Лет | Год | Года | Лет"
        },
        file_priority: {
            high: "Высокий",
            max: "Максимальный",
            mixed: "Смешанный",
            normal: "Нормальный",
            unwanted: "Ненужный"
        },
        filter_type: {
            conjunctive: "Конъюнктивная фильтрация (И)",
            disjunctive: "Дизъюнктивная фильтрация (ИЛИ)"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Путь сохранения по умолчанию",
            monitoredFolder: "Путь на отслеживаемую папку",
            other: "Пользовательский"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Ежедневно",
            everyFriday: "Пятница",
            everyMonday: "Понедельник",
            everySaturday: "Суббота",
            everySunday: "Воскресенье",
            everyThursday: "Четверг",
            everyTuesday: "Вторник",
            everyWednesday: "Среда",
            everyWeekday: "Будни",
            everyWeekend: "Выходные"
        },
        shareLimitAction: {
            removeTorrent: "Удалить торрент",
            removeTorrentAndFiles: "Удалить торрент и его файлы",
            stopTorrent: "Остановить торрент",
            torrentSuperseeding: "Включить режим Супер Сида для торрента"
        },
        stopCondition: {
            filesChecked: "Файлы проверены",
            metadataReceived: "Метаданные получены",
            none: "Отсутствует",
            title: "Условие остановки торрента"
        },
        themes: {
            dark: {
                legacy: "Классическая",
                oled: "OLED",
                redesigned: "Обновлённая"
            },
            light: {
                legacy: "Классическая",
                redesigned: "Обновлённая"
            }
        },
        titleOptions: {
            custom: "Настроить",
            default: "По умолчанию",
            first_torrent_speed: "Скорость первого торрента",
            global_speed: "Общая скорость"
        },
        torrentContentRemovingMode: {
            delete: "Удалить файлы",
            moveToTrash: "Переместить файлы в корзину (если возможно)"
        },
        torrentCreatorTaskStatus: {
            failed: "Сбой",
            finished: "Закончено",
            queued: "В очереди",
            running: "Запущено"
        },
        torrentFormat: {
            hybrid: "Гибрид",
            v1: "v1",
            v2: "v2"
        },
        trackerStatus: {
            disabled: "Отключён",
            not_working: "Не работает",
            not_yet_contacted: "Пока не подключен",
            updating: "Обновляется",
            working: "Работает"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-leech",
            fastestUpload: "Быстрейшая раздача",
            roundRobin: "Поровну"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Закреплённые слоты",
            uploadRateBased: "На базе уровня раздачи"
        },
        utpTcpMixedMode: {
            peerProportional: "Соразмерно пирам (регулирует TCP)",
            preferTcp: "Предпочитать TCP"
        }
    };
    c9 = {
        displayMode: {
            grid: "Сетка",
            list: "Список",
            table: "Таблица",
            title: "Режим отображения"
        },
        not_complete: "Никогда",
        right_click: {
            advanced: {
                auto_tmm: "Автоматическое управление торрентом",
                download_path: "Установить путь загрузки",
                edit_trackers: "Редактирование трекеров",
                f_l_prio: "Приоритет первой/последней части",
                reannounce: "Принудительно анонсировать",
                recheck: "Принудительная проверка",
                rename: "Переименовать",
                save_path: "Установить путь сохранения",
                seq_dl: "Последовательная загрузка",
                super_seeding: "Режим супер-сида",
                title: "Дополнительно"
            },
            category: {
                clear: "Нет категории",
                disabled_title: "Категории отсутствуют",
                title: "Задать категории"
            },
            copy: {
                comment: "Комментарий",
                hash: "Хэш",
                magnet: "Ссылка-магнит",
                name: "Имя",
                title: "Копировать"
            },
            export: "Экспортировать торрент | Экспортировать торренты",
            info: "Детали",
            priority: {
                bottom: "В конец",
                decrease: "Понизить",
                increase: "Повысить",
                title: "Установить позицию в очереди",
                top: "В начало"
            },
            speed_limit: {
                download: "Ограничение скорости загрузки",
                share: "Ограничения раздачи",
                title: "Ограничения торрента",
                upload: "Ограничение скорости раздачи"
            },
            tags: {
                clear_all: "Нет тегов",
                disabled_title: "Теги отсутствуют",
                title: "Задать теги"
            },
            top: {
                delete: "Удалить",
                force_resume: "[П] Возобновить",
                pause: "Пауза",
                resume: "Возобновить"
            }
        },
        searchInputLabel: "Поиск",
        selectAll: "Выбрать все (Ctrl + A)",
        selectedTorrentsCount: "Нет торрента | {count} из {total} торрента ({size}) | {count} из {total} торрентов ({size})",
        sortLabel: "Сортировать по",
        toggleSearchFilter: "Переключить режим поиска",
        toggleSelectMode: "Переключить режим выбора",
        toggleSortOrder: "Обратный порядок сортировки",
        torrentsCount: "Нет торрентов | {n} торрент | {n} торрентов"
    };
    d9 = {
        add: {
            cookie: "Куки",
            cookie_placeholder: "имя1=значение1; имя2=значение2; ...",
            drop_label: "Добавить торрент-файлы и/или ссылки в очередь",
            file_overflow: "на +{n} больше",
            files: "Выберите файлы",
            first_last_piece_prio: "Расставьте приоритеты в первой и последней частях",
            instant_drop_label: "Мгновенно загружать торрент-файлы и/или ссылки",
            links: "Ссылки (magnet, http, file, ...)",
            params: {
                add_to_top_of_queue: "Добавить в начало очереди",
                category: "Категория",
                download_limit: "Ограничение загрузки",
                download_path: "Путь загрузки (до завершения)",
                inactive_seeding_time_limit: "Ограничение по времени неактивного сидирования",
                limit_collapse: "Настроить ограничения",
                limit_hint: "-1 для отключения, -2 или оставить пустым для общих настроек",
                no_categories: "Категорий пока нет. Введите название, чтобы создать одну.",
                no_categories_match: 'Нет категорий, соответствующих "{query}". Она будет создана автоматически.',
                no_tags: "Нет тегов. Напишите имя тега для его создания.",
                no_tags_match: 'По запросу "{query}" тега не найдено. Нажмите Enter, чтобы его создать.',
                ratio_limit: "Ограничение по рейтингу",
                save_path: "Путь сохранения (по завершению)",
                seeding_time_limit: "Ограничение времени сидирования",
                skip_checking: "Пропустить проверку хэша",
                stopped: "Не начинать загрузку",
                tags: "Теги",
                title: "Параметры торрента",
                upload_limit: "Ограничение раздачи",
                use_auto_tmm: "Автоматическое управление торрентом"
            },
            rename: "Переименовать торрент",
            reset_form: "Очистить форму",
            sequential_download: "Последовательная загрузка",
            submit: "Добавить торренты",
            title: "Добавить торренты"
        },
        bulkEditTrackers: {
            add: "Трекеры на добавление",
            edit: {
                result: "{rejected}/{total} запросов не выполнено\\n{reason}",
                row: {
                    add: "Добавить строку",
                    new_url: "Новый URL трекера",
                    old_url: "Старый URL трекера",
                    rules: {
                        invalid_url: "Недопустимый URL"
                    }
                },
                title: "Трекеры на замену"
            },
            remove: "Трекеры на удаление",
            title: "Массовое редактирование трекеров"
        },
        bulkRenameFiles: {
            col_origin_name: "Исходное имя",
            col_result_name: "Итоговое имя",
            duplicated: "Повторяющееся имя файла",
            flags: "Флаги",
            fold: "Свернуть",
            not_changed: "Имя файла не изменено",
            notForFolder: "Переименование папок не поддерживается",
            nothing_to_do: "Нет задач",
            regexp: "Регулярное выражение",
            run: "Запуск",
            select_regex_flags: "Выбор флагов регулярного выражения",
            success: "Переименование прошло успешно",
            target: "Ввод для замены",
            title: "Массовое переименование",
            unfold: "Раскрыть"
        },
        category: {
            name: "Название категории",
            nameRequired: "Необходимо название категории",
            oldName: "Старое название категории",
            savePath: "Путь сохранения",
            title: {
                create: "Создать категорию",
                edit: "Редактировать категорию"
            },
            warnEdit: `Редактирование названия категории приведет к переносу торрентов в новую категорию.
Возможны ошибки, используйте с осторожностью.`
        },
        connectionStatus: {
            dht_nodes: "Узлы DHT",
            externalIp: "Внешний IP-адрес",
            fetch_disabled: "Извлечение данных об IP выключено",
            fetch_geo_failed: "Не удалось получить",
            fetch_isp_failed: "Не удалось получить",
            geo_details: "Информация о геолокации",
            isp_details: "Информация о провайдере",
            noExternalIp: "Не удалось обнаружить в логах",
            status: "Состояние подключения",
            total_peer_connections: "Активные подключения пиров"
        },
        delete: {
            deleteWithFiles: "Удаление файлов вместе с торрентом",
            title: "Удаление {n} торрента | Удаление {n} торрентов",
            warnDelete: "Установка этого флажка приведет к удалению всего, что содержится в этих торрентах"
        },
        importSettings: {
            required: "Требуются настройки",
            title: "Импортировать настройки",
            valid: "Пожалуйста, укажите допустимые настройки"
        },
        moveTorrent: {
            dl: {
                title: "Изменить путь загрузки"
            },
            newPath: "Новый путь",
            oldPath: "Старый путь",
            required: "Требуется новый путь",
            samePath: "Новый путь должен отличаться от старого",
            save: {
                title: "Изменить путь сохранения"
            }
        },
        moveTorrentFile: {
            oldName: "Старое наименование",
            title: "Переместить торрент-файл | Переместить папку торрента"
        },
        pluginManager: {
            headers: {
                actions: "Действия",
                enabled: "Включен",
                name: "Название",
                url: "Ссылка",
                version: "Версия"
            },
            install: {
                activator: "Установить новый плагин",
                label: "Ссылка на плагин",
                title: "Установить плагин"
            },
            title: "Менеджер плагинов",
            update: "Обновить плагины"
        },
        renameTorrent: {
            newName: "Новое название",
            oldName: "Старое название",
            required: "Требуется новое имя",
            sameName: "Новое имя должно отличаться от старого",
            title: "Переименовать торрент"
        },
        rss: {
            feed: {
                name: "Имя",
                rules: {
                    name_required: "Требуется имя ленты",
                    url_required: "Требуется URL ленты"
                },
                title: {
                    create: "Создать RSS ленту",
                    edit: "Редактировать RSS ленту"
                },
                url: "URL"
            },
            rule: {
                addStopped: "Добавить приостановленным",
                affectedFeedsSubheader: "Затронутые ленты",
                assignedCategory: "Присвоенные категории",
                enabled: "Включить правило",
                episodeFilter: "Фильтр эпизодов",
                episodeFilterPlaceholder: "прим. S01E02-S01E05",
                ignoreDays: "Игнорировать элементы, опубликованные за последние {days} дней",
                ignoreDaysHint: "0 чтобы отключить",
                lastMatch: {
                    knownValue: "Сегодня | {n} день/дня назад | {n} дней назад",
                    label: "Последнее совпадение",
                    unknownValue: "Неизвестно"
                },
                matchingArticles: {
                    noMatch: "Нет подходящих статей",
                    title: "Соответствующие статьи"
                },
                mustContain: "Должен содержать",
                mustNotContain: "Не должен содержать",
                name: "Имя",
                savePath: "Сохранить в",
                savePathPlaceholder: "Оставьте поле пустым, чтобы использовать путь сохранения по умолчанию",
                smartFilter: "Использовать умный фильтр эпизодов",
                title: {
                    create: "Создать новое правило",
                    edit: "Редактировать правило"
                },
                useRegex: "Использовать регулярное выражение"
            }
        },
        share_limit: {
            disabled: "Не ограничивать раздачу",
            enabled: "Ограничить раздачу...",
            global: "Использовать общие настройки ограничения раздачи",
            inactive_seeding_time_limit: "Минут без активности",
            ratio_limit: "Рейтинг",
            seeding_time_limit: "Всего минут",
            title: "Установить ограничение рейтинга для раздачи"
        },
        shutdown: {
            content: "Вы точно хотите выключить qBittorrent?",
            error: "Не удается завершить работу. Убедитесь, что qBittorrent запущен!",
            success: "qBittorrent был успешно выключен!",
            title: "Выключить qBittorrent"
        },
        speed_limit: {
            download: "Установить ограничение скорости загрузки",
            label: "Ограничение скорости",
            upload: "Установить ограничение скорости раздачи"
        },
        tag: {
            comma: "Имя не может содержать запятую при переименовании тега",
            hint: "Совет: можно создать несколько тегов, разделив их запятой",
            name: "Название тега",
            oldName: "Старое название тега",
            required: "Требуется название тега",
            title: {
                create: "Создать тег",
                rename: "Переименовать тег"
            },
            warnEdit: `Редактирование имени тега приведет к переносу торрентов в новый тег.
Возможны ошибки, используйте с осторожностью.`
        },
        torrentCreator: {
            actions: {
                submit: "Запустить задачу создания"
            },
            comment: "Комментарии",
            format: "Формат торрента",
            optimizeAlignment: "Оптимизация выравнивания",
            paddedFileSizeLimit: "Выровнять по границе фрагмента для файлов размером более",
            paddedFileSizeLimitHint: "-1 для отключения",
            paddedFileSizeLimitRule: "Значение должно быть положительным",
            pieceSize: "Размер фрагмента",
            private: "Частный торрент (не будет распространяться по DHT)",
            rules: {
                outputFileExtension: "Путь должен заканчиваться на .torrent",
                sourcePathRequired: "Нужно заполнить путь источника"
            },
            source: "Источник",
            sourcePath: "Файлы, добавляемые в торрент",
            startSeeding: "Сразу начать сидирование",
            title: "Создать новую задачу",
            torrentFilePath: "Место сохранения созданного торрент-файла",
            trackers: "URL-ы трекеров",
            trackersHint: "Уровни / группы трекеров можно разделить пустой строкой",
            urlSeeds: "URL-ы веб-сидов"
        }
    };
    h9 = {
        error: "Ошибка входа!",
        password: "Пароль",
        pending: "Проверка статуса авторизации...",
        rules: {
            password_required: "Необходим пароль",
            username_required: "Необходим логин"
        },
        submit: "Вход",
        subtitle: "Введите свои учётные данные",
        success: "Успешный вход в систему!",
        title: "Войти",
        username: "Логин"
    };
    m9 = {
        emptyLogList: "Логи не найдены",
        filters: {
            query: "Найти в сообщениях лога",
            type: "Уровень логирования"
        },
        title: "Логи qBittorrent"
    };
    f9 = {
        addPanel: {
            torrentsPendingCount: "{n} торрент(а) ожидает раздачи | {n} торрентов ожидает раздачи"
        },
        side: {
            bottom_actions: {
                alt_speed: "Исп. альтернативную скорость",
                conn_status: "Состояние подключения: {status}",
                dark_mode: "Светлый режим | Тёмный режим | Наследовать системные настройки",
                "dark_mode.dark": "Тёмный режим",
                "dark_mode.light": "Светлый режим",
                "dark_mode.system": "Наследовать системные настройки",
                logout: "Выйти",
                shutdown: "Выключить qBittorrent"
            },
            current_speed: {
                title: "Текущая скорость"
            },
            filters: {
                activeFilter: "{n} фильтров активны",
                category: {
                    empty: "(Без категории)",
                    title: "Фильтр категорий"
                },
                disabled: "(Отключён)",
                state: {
                    active: "Активно",
                    error: "Ошибка",
                    offline: "Не в сети",
                    title: "Фильтр состояния торрента"
                },
                tag: {
                    empty: "(Без тегов)",
                    title: "Фильтр тегов"
                },
                tracker: {
                    empty: "(без трекера)",
                    not_working: "(не работает)",
                    title: "Фильтр трекеров"
                }
            },
            speed_graph: {
                download_label: "Загрузка",
                download_limit_label: "Ограничение загрузки",
                upload_label: "Раздача",
                upload_limit_label: "Ограничение раздачи"
            },
            stats: {
                alltime: {
                    title: "Вся статистика"
                },
                downloaded: "Загружено",
                free_space: "Свободное место",
                ratio: "Рейтинг",
                session: {
                    title: "Статистика за сессию"
                },
                uploaded: "Отдано"
            }
        },
        top: {
            active_filters: {
                category: "Фильтр категорий: {value}",
                menu_label: "Активный фильтр: {n} | Активные фильтры: {n}",
                multiple_category: "Фильтр категорий: {n} активно",
                multiple_state: "Фильтр состояния: {n} активно",
                multiple_tag: "Фильтр тегов: {n} активно",
                multiple_tracker: "Фильтр трекеров: {n} активно",
                state: "Фильтр состояния: {value}",
                tag: "Фильтр тегов: {value}",
                text: "Текстовый фильтр: {value}",
                tracker: "Фильтр трекера: {value}"
            }
        }
    };
    p9 = {
        feeds: {
            empty: {
                action: "Создать RSS ленту",
                value: "RSS ленты отсутствуют"
            },
            filters: {
                title: "Фильтр по заголовку",
                unread: "Только непрочитанные записи"
            },
            item: {
                author: "Автор: {author}",
                category: "Категория: {category}",
                feedName: "Имя ленты: {name}",
                new: "Новый"
            },
            markAllAsRead: "Отметить всё как прочитанное",
            markAsRead: "Отметить прочитанным",
            promise: {
                error: "Произошла ошибка при отметке статей",
                pending: "Отмечаю...",
                success: "{n} статей отмечены как прочитанные"
            },
            refreshAllFeeds: "Обновить все ленты",
            refreshPromise: {
                error: "При обновлении лент произошла ошибка",
                pending: "Обновление...",
                success: "{n} лент обновлено"
            },
            title: "Менеджер RSS"
        },
        rules: {
            empty: {
                action: "Создать новое правило",
                value: "RSS правила отсутствуют"
            },
            title: "Правила RSS"
        },
        toggle: {
            feeds: "Показать ленты",
            rules: "Показать правила"
        }
    };
    g9 = {
        filters: {
            category: {
                all: "Все",
                anime: "Аниме",
                books: "Книги",
                games: "Игры",
                label: "Категория поиска",
                movies: "Фильмы",
                music: "Музыка",
                pictures: "Картинки",
                software: "Приложения",
                tv: "TV"
            },
            plugins: {
                all: "Все",
                enabled: "Включен",
                label: "Плагин поиска"
            },
            title: {
                label: "Поиск по заголовку"
            }
        },
        headers: {
            engineName: "Название движка",
            fileName: "Имя файла",
            fileSize: "Размер файла",
            nbLeechers: "Личеры",
            nbSeeders: "Сидеры",
            pubDate: "Дата публикации",
            siteUrl: "URL сайта"
        },
        query: "Очередь поиска",
        runSearch: "Поиск",
        stopSearch: "Остановить",
        tabHeaderEmpty: "(Пустая очередь)",
        title: "Поиск торрентов"
    };
    v9 = JSON.parse('{"addons":{"enhanced_edition":{"auto_ban_bt_player_peer":"Автоматический бан торрент-проигрывателей","auto_ban_unknown_peer":"Автоматический бан неизвестных пиров","auto_update_trackers":"Автоматическое обновление списка общедоступных трекеров","public_trackers":"Общедоступные трекеры","trackers_list_url":"Настройка списка URL трекеров"}},"advanced":{"libtorrent":{"announceAllTiers":"Всегда объявлять всем уровням","announceAllTrackers":"Всегда объявлять всем трекерам на уровне","announceIP":"IP-адрес, переданный трекерам (требуется перезагрузка)","coalesceReadsWrites":"Объединение операций чтения и записи (libtorrent < 2.0)","dhtBootstrapNodes":"Узлы начальной загрузки DHT","dhtBootstrapNodesHint":"Сброс на значение по умолчанию (если пусто)","disk":{"diskCache":"Кэш диска (libtorrent < 2.0)","diskCacheExpiry":"Интервал очистки кэша диска (libtorrent < 2.0)","diskIoReadMode":"Режим чтения ввода-вывода с диска","diskIoType":"Тип ввода-вывода диска (libtorrent >= 2.0; требует перезапуск)","diskIoWriteMode":"Режим записи ввода-вывода с диска","diskQueueSize":"Размер очереди диска","subheader":"Диск"},"i2p":{"inboundLength":"Длина входящего I2P","inboundQuantity":"Количество входящих I2P","invalidLength":"Значение длины I2P должно быть между 0 и 7","invalidQuantity":"Значение количества I2P должно быть между 1 и 16","outboundLength":"Длина исходящего I2P","outboundQuantity":"Количество исходящих I2P","restartNeeded":"Любые изменения в этих настройках вступят в силу при следующем восстановлении SAM соединения (путём перезапуска I2P или изменения адреса или порта I2P)"},"maxConcurrentHTTPAnnounces":"Максимальное количество одновременных анонсов HTTP","networking":{"outgoingPortsMax":"Максимум исходящих портов [0: отключено]","outgoingPortsMin":"Минимум исходящих портов [0: отключено]","peerTos":"Значение DSCP для подключений к пирам","subheader":"Networking","upnpLeaseDuration":"Срок аренды UPnP [0: постоянный]","utpTcpMixedModeAlgorithm":"Алгоритм смешанного режима µTP-TCP"},"outgoingConnectionsPerSecond":"Фактор отметки буфера отправки","peerTurnover":"Процент отключения от пира","peerTurnoverCutoff":"Пороговый процент текучести пира","peerTurnoverInterval":"Интервал отключения при смене пира","pieceExtentAffinity":"Группировать смежные части","requestQueueSize":"Максимальное количество невыполненных запросов к одному пиру","security":{"allowMultipleConnectionsFromTheSameIPAddress":"Разрешить несколько подключений с одного и того же IP","blockPeersOnPrivilegedPorts":"Запретить подключение к пирам на привилегированных портах","idnSupport":"Включить поддержку интернационализированных доменных имен (IDN)","mitigateSSRF":"Предотвращение подделки запросов на стороне сервера (SSRF)","subheader":"Безопасность","validateHTTPSTrackerCertificate":"Проверка сертификата трекера HTTPS"},"sendBufferLowWatermark":"Минимальный размер буфера отправки","sendBufferWatermark":"Размер буфера отправки","sendBufferWatermarkFactor":"Коэффициент размера буфера отправки","sendUploadPieceSuggestions":"Отправлять предложения частей отдачи","socketBacklogSize":"Размер очереди сокета","socketReceiveBufferSize":"Размер буфера сокета на получение","socketReceiveBufferSizeHint":"0: по выбору системы","socketSendBufferSize":"Размер буфера сокета на отправку","socketSendBufferSizeHint":"0: по выбору системы","ssl":{"disclaimer":"Функция \\"SSL торрент\\" не стандартизирована, с ней не связаны BEP (BitTorrent Enhancement Proposals).\\nВключайте эту функцию только в том случае, если она вам нужна.","enabled":"Разрешить SSL торренты","listenPort":"Порт, используемый для SSL-соединений","listenPortHint":"Оставить пустым для авто выбора","rule":"Порт должен быть между 0 и 65535"},"stopTrackerTimeout":"Тайм-аут остановки трекера","subheader":"Раздел libtorrent","threads":{"asyncIoThreads":"Потоки асинхронного ввода-вывода","bdecodeDepthLimit":"Ограничение глубины Bdecode","bdecodeTokenLimit":"Ограничение токена Bdecode","filePoolSize":"Размер пула файлов","hashingThreads":"Потоки хеширования (libtorrent >= 2.0)","outstandingMemory":"Накладная память при проверке торрентов","subheader":"Потоки"},"uploadChokingAlgorithm":"Алгоритм подавления раздачи","uploadSlotsBehavior":"Поведение слотов для раздачи"},"openDoc":"Открыть документацию","qbittorrent":{"allocatedRam":"Предел использования оперативной памяти (libtorrent >= 2.0)","appInstanceName":"Имя экземпляра приложения","embeddedTracker":{"enable":"Включить встроенный трекер","port":"Порт встроенного трекера","portForward":"Включить переадресацию портов для встроенного трекера","title":"Встроенный трекер"},"enableMarkOfTheWeb":"Разрешить Mark-of-the-Web (MOTW) для загруженных файлов","enableMarkOfTheWebHint":"Требуется macOS или Windows","networking":{"ipAddress":{"all":"Все адреса","allIPv4":"Все IPv4 адреса","allIPv6":"Все IPv6 адреса","label":"Необязательный IP-адрес для привязки"},"networkInterfaces":{"any":"Любой интерфейс","label":"Сетевой интерфейс"},"title":"Связь"},"pythonExecutablePath":"Путь к исполняемому файлу Python","pythonExecutablePathHint":"Авто определение (если не заполнено), требуется перезагрузка","reannounceOnIpPortChanged":"Повторно уведомлять все трекеры об изменении IP-адреса или порта","recheckOnCompletion":"Перепроверка торрентов по завершении","refreshInterval":"Интервал обновления интерфейса","resolveCountries":"Разрешить пиры из других стран","resumeDataStorageType":{"label":"Тип хранилища для возобновления данных (требуется перезагрузка)","legacy":"Файлы для быстрого возобновления","sqlite":"База данных SQLite (экспериментально)"},"saveInterval":"Сохранить интервал возобновления данных","subheader":"Раздел qBittorrent","torrentContentRemovingMode":"Режим удаления контента торрента","torrentFileSizeLimit":"Ограничение размера файла .torrent"}},"behavior":{"logs":{"file_log_age":"Удалить бэкап логов старше...","file_log_backup_enabled":"Включить бэкап логов","file_log_delete_old":"Удалять старые бэкапы логов","file_log_enabled":"Разрешить логи","file_log_max_size":"Делать бэкап логов при размере...","file_log_path":"Путь хранения","subheader":"Управление логами"},"performance_warning":"Писать в лог о проблемах производительности"},"bittorrent":{"autoAddTrackers":"Автоматически добавлять эти трекеры к новым загрузкам","autoAddTrackersHint":"Один трекер на строку","maxActiveCheckingTorrents":"Максимум одновременных проверок торрентов","privacy":{"enableAnonymous":"Включить анонимный режим","enableDHT":"Включить DHT (децентрализованную сеть) для поиска пиров","enableLPD":"Искать пиров в вашей локальной сети","enablePeX":"Включить обмен пирами (PeX)","encryptionMode":"Режим шифрования","moreInfo":"Подробнее","subheader":"Конфиденциальность"},"seedLimits":{"subheader":"Ограничение сида","then":"Затем","whenInactiveSeedingTimeReaches":"По достижении предела без активности","whenRatioReaches":"По достижении рейтинга раздачи","whenSeedingTimeReaches":"По достижении времени сидирования"},"torrentQueueing":{"downloadRateLimit":"Порог скорости загрузки","excludeSlowTorrent":"Не учитывать медленные торренты в этих ограничениях","maxActiveDownload":"Максимум активных загрузок","maxActiveTorrent":"Максимум активных торрентов","maxActiveUpload":"Максимум активных раздач","subheader":"Работа с очередью торрентов","torrentInactivityTimer":"Таймер бездействия торрента","uploadRateLimit":"Порог скорости отдачи"}},"connection":{"connectionLimits":{"globalMaxConnection":"Глобальное максимальное количество соединений","globalMaxUploadSlots":"Глобальное максимальное количество слотов для раздачи","perTorrentMaxConnection":"Максимальное количество соединений на торрент","perTorrentMaxUploadSlots":"Максимальное количество слотов для раздачи на торрент","subheader":"Ограничение соединений"},"i2p":{"address":"Хост I2P","disclaimer":"Если включён \\"Смешанный режим\\", торрентам I2P также разрешается получать пиры из других источников, отличных от трекера, и подключаться к обычным IP-адресам, не обеспечивая никакой анонимности. Это может быть полезно, если пользователю не требуется анонимизация I2P, но нужна возможность подключаться к пирам I2P.","enabled":"Разрешить I2P","mixedMode":"Смешанный режим","port":"Порт","rule":"Значение порта должно быть между 0 и 65535","subheader":"I2P (экспериментально)"},"ipFiltering":{"applyToTrackers":"Применить к трекерам","bannedIps":"Вручную запрещённые IP-адреса","bannedIpsHint":"По одному на строку","filterPath":"Путь к фильтрам (.dat, .p2p, .p2b):","subheader":"Фильтрация по IP"},"listeningPort":{"incomingConnectionPort":"Используемый порт для входящих соединений","randomPort":"Случайный порт","subheader":"Прослушиваемый порт","useUPnP":"Использовать UPnP / NAT-PMP для автоматического проброса порта на моём роутере"},"protocol":"Протокол подключения к пирам","proxy":{"auth":{"password":"Пароль","subtitle":"Аутентификация","tip":"Примечание: Пароль хранится в незашифрованном виде","username":"Имя пользователя"},"bittorrent":"Использовать прокси для BitTorrent","host":"Хост","hostNameLookup":"Использовать прокси для поиска доменного имени хоста","misc":"Использовать прокси для общих целей","peerConnections":"Использовать прокси для соединения с пирами","port":"Порт","rss":"Использовать прокси только для RSS","subheader":"Прокси сервер"}},"downloads":{"excludedFileNames":{"hint":"Одно название файла на строку","label":"Исключенные имена файлов"},"mailNotification":{"authEnabled":"Авторизация","enabled":"Отправлять уведомление на Email, когда загрузка завершится","from":"От","password":"Пароль","smtpServer":"SMTP сервер","sslEnabled":"Этот сервер требует защищённое соединение (SSL)","test":{"error":"Не удалось отправить запрос по электронной почте\\n{message}","label":"Отправить тестовое электронное письмо","success":"Запрос отправлен по электронной почте!\\nПроверьте свой почтовый ящик, чтобы подтвердить"},"to":"Кому","username":"Логин"},"monitoredFolders":{"actions":"Действия","confirmDelete":"Вы уверены что хотите удалить эту запись?","editItem":"Редактировать","monitoredFolderPath":"Отслеживаемая папка","newItem":"Новая запись","noData":"Ещё нет отслеживаемых папок","otherPath":"Пользовательский путь","saveType":"Изменить путь сохранения на:","subheader":"Отслеживаемые папки"},"publicSettings":{"appendQBExtension":"Добавлять расширение .!qB к незавершённым файлам","preAllocateDisk":"Резервировать место на диске для всех файлов","useUnwantedFolder":"Хранить не выбранные файлы в папке \\".unwanted\\""},"runExternalProgram":{"onAddedEnabled":"Запустить внешнюю программу при добавлении торрента","onAddedLabel":"Команда","onFinishedEnabled":"Запустить внешнюю программу при завершении торрента","onFinishedLabel":"Команда","subheader":"Запускать внешнюю программу","supportParamC":"%C: Количество файлов","supportParamD":"%D: Путь сохранения","supportParamF":"%F: Папка содержимого (или корневая папка для торрентов с множеством файлов)","supportParamG":"%G: Метки (разделяются запятыми)","supportParamI":"%I: Хеш-сумма v1","supportParamJ":"%J: Хеш-сумма v2","supportParamK":"%K: ID торрента","supportParamL":"%L: Категория","supportParamN":"%N: Имя торрента","supportParamR":"%R: Корневая папка (главный путь для подкаталога торрента)","supportParamT":"%T: Текущий трекер","supportParamTitle":"Поддерживаемые параметры (с учетом регистра):","supportParamZ":"%Z: Размер торрента (в байтах)","tip":"Совет: Заключите параметр в кавычки, чтобы избежать обрезания текста по пробелам (вот так \\"%N\\")"},"saveManagement":{"autoTMMEnabled":"Автоматический режим управления торрентом по умолчанию","categoryChangedTMM":"При изменении пути сохранения у категории","defaultSavePath":"Путь сохранения по умолчанию","defaultTMMOptions":{"automatic":"Автоматически","manual":"Вручную"},"exportDir":"Копировать файлы .torrent в","exportDirFinished":"Для завершенный загрузок копировать файлы .torrent в","keepIncomplete":"Путь по умолчанию для незавершённых торрентов","paramChangedTMMOptions":{"relocateTorrent":"Переместить торрент","switchToManual":"Переключить торрент в Ручной Режим"},"savePathChangedTMM":"При изменении пути сохранения по умолчанию","subheader":"Управление сохранением","torrentChangedTMM":"При изменении категории торрента","useCategoryPathInManualMode":"Использовать пути Категорий в ручном режиме","useCategoryPathInManualModeHint":"Сопоставить относительный путь сохранения с соответствующим путем категории вместо пути по умолчанию"},"whenAddTorrent":{"addToTopOfQueue":"Добавить в начало очереди","autoDeleteMode":"Автоматически удалять файлы .torrent","doNotAutoStart":"Не начинать загрузку автоматически","mergeTrackers":"Объединить трекеры, если торрент уже есть","subheader":"При добавлении торрента"}},"rss":{"autoDownloader":{"enable":"Включить автозагрузку торрентов из RSS","subheader":"Автозагрузчик торрентов из RSS"},"reader":{"enableProcessing":"Включить получение RSS-лент","feedsRefreshInterval":"Интервал обновления лент","maximumArticlesPerFeed":"Максимум статей для ленты","sameHostRequestDelay":"Задержка запроса того же хоста","subheader":"Менеджер RSS"},"smartEpisodeFilter":{"downloadEpisodes":"Загружать эпизоды REPACK/PROPER","filters":"Фильтры","filtersHint":"По одному на строку","subheader":"Умный фильтр эпизодов RSS"},"useIdForRssLinks":"Использовать ID для ссылки на статью RSS"},"saveSuccess":"Настройки сохранены!","speed":{"download":"Загрузка","scheduler":{"from":"С","selectButtonLabel":"Выбрать время","subheader":"Запланировать включение особых ограничений скорости","to":"До","when":"Когда"},"settings":{"applyToPeersOnLan":"Применять ограничения скорости к локальным пирам","applyToTransportOverhead":"Применять ограничения скорости к служебному трафику","applyToUtp":"Применять ограничения скорости к протоколу µTP"},"subheader":{"alternative":"Особые ограничения скорости","global":"Общие ограничения скорости","settings":"Настройки ограничений скорости"},"tip":"0 означает неограниченно","upload":"Раздача"},"tabs":{"addons":{"enhanced_edition":"Расширенная версия"},"advanced":"Дополнительно","behavior":"Поведение","bittorrent":"BitTorrent","connection":"Соединение","downloads":"Загрузки","rss":"RSS","speed":"Скорость","tagsAndCategories":"Теги и категории","vuetorrent":{"general":"Общее","title":"VueTorrent","torrent_card":{"grid":"Отображение сеткой","list":"Отображение списком","table":"Отображение таблицей"}},"webui":"WebUI"},"tagsAndCategories":{"categoriesSubheader":"Доступные категории:","createNewCategory":"Создать новую категорию","createNewTag":"Создать новый тег","deleteUnusedCategories":"Удалить неиспользуемые категории","deleteUnusedTags":"Удалить неиспользуемые теги","noCategories":"Категорий пока нет","noTags":"Тегов пока нет","tagsSubheader":"Доступные теги:"},"title":"Параметры","vuetorrent":{"general":{"check_new":"Проверить обновление","currentVersion":"Текущая версия","customTitle":"Настраиваемый заголовок","darkVariants":"Тёмная тема","dateFormat":"Формат даты","displayGraphLimits":"Отобразить ограничения на графике","download":"Экспортировать настройки","durationFormat":"Формат длительности","enableHashColors":"Разрешить генерируемые цвета хэша","enableRatioColors":"Разрешить цвета рейтинга","fetchExternalIpInfo":"Извлечение информации о внешнем IP","fileContentInterval":"Интервал обновления содержимого торрент-файла","filterType":"Фильтры «включительно»","hideChipIfUnset":"Скрыть фишки, если не настроено","hideColoredChip":"Использовать текстовый вариант для фишек","historySize":"Размер истории в подходящих полях","import":"Импортировать настройки","isDrawerRight":"Расположить боковую панель справа","isShutdownButtonVisible":"Показать кнопку выключения","language":"Язык","lightVariants":"Светлая тема","paginationSize":{"infinite_scroll":"Бесконечная прокрутка","label":"Количество торрентов на странице","warning":"Использование высоких значений может сказаться на производительности"},"qbittorrentVersion":"Версия qBittorrent","refreshInterval":"Интервал обновления qBittorrent API","registerMagnet":"Регистрировать магнитные ссылки","resetSettings":"Сбросить настройки","showAlltimeStat":"Показывать всю статистику","showCurrentSpeed":"Показывать текущую скорость","showFreeSpace":"Показывать свободное место","showSessionStat":"Показывать статистику сессии","showSpeedGraph":"Показывать график скорости","tip":"Общие настройки пользовательского WebUI","useBinarySize":"Заменить размеры данных двоичными единицами измерения (kB -> KiB)","useBitSpeed":"Заменить значения скорости на биты (kB/s -> kbps)","useEmojiState":"Добавлять к состоянию торрента эмодзи","vueTorrentTitle":"Заголовок вкладки"},"torrentCard":{"grid":{"busyTip":"Параметры отображения незавершённых торрентов в виде сетки","doneTip":"Параметры отображения завершённых торрентов в виде сетки"},"list":{"busyTip":"Параметры отображения незавершённых торрентов в виде списка","doneTip":"Параметры отображения завершённых торрентов в виде списка"},"table":{"tip":"Параметры отображения торрентов в виде таблицы"}}},"webUI":{"authentication":{"banDuration":"Время блокировки","banDurationHint":"В секундах","bypassLocalhost":"Пропускать аутентификацию клиентов для localhost","bypassWhitelist":"Пропускать аутентификацию клиентов для разрешённых подсетей","maxAttempts":"Максимум попыток","password":"Пароль","passwordPlaceholder":"(без изменений)","sessionTimeout":"Тайм-аут сессии","sessionTimeoutHint":"В секундах","subheader":"Аутентификация","username":"Имя пользователя","whitelistExamples":"Пример: 172.17.32.0/24, fdff:ffff:c8::/40"},"customHeaders":"Добавить пользовательские заголовки HTTP","customHeadersHint":"Одно значение на строку","customHeadersPlaceholder":"Header1: value1\\nHeader2: value2\\n...","dynDns":{"domainName":"Доменное имя","password":"Пароль","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"Регистрация","subheader":"Обновлять динамическое доменное имя","username":"Имя пользователя"},"https":{"certificate":"Сертификат","key":"Ключ","subheader":"Использовать HTTPS","tip":"Сведения о сертификатах"},"interface":{"ipAddress":"IP адрес","port":"Порт","subheader":"Веб-интерфейс пользователя","useAlternativeWebUI":"Использовать альтернативный WebUI","useUPnP":"Использовать UPnP / NAT-PMP для автоматического проброса порта на моём роутере"},"proxiesList":"Список доверенных прокси-серверов","proxiesListHint":"Перечисляйте IP через точку с запятой ( ; )","reverseProxySupport":"Включить поддержку обратного прокси-сервера","security":{"clickjacking":"Включить защиту от кликджекинга","csrf":"Включить защиту от межсайтовой подделки запроса (CSRF)","hostHeaderValidation":"Включить проверку заголовка хоста","hostHeaderValidationHint":"Перечисляйте через точку с запятой ( ; )","secureCookie":"Включить защиту куки (требует HTTPS)","serverDomains":"Домены сервера","subheader":"Безопасность"}}}');
    y9 = {
        add: {
            error: "Ошибка при добавлении торрентов",
            pending: "Отправка торрентов...",
            success: "{n} торрент добавлен | {n} торренты добавлены"
        },
        copy: {
            error: "Невозможно скопировать, среда не защищена!",
            success: "Скопировано в буфер обмена!"
        },
        magnet_handler: {
            not_supported: "Текущий контекст небезопасен. Не удалось зарегистрировать обработчик.",
            registered: "Обработчик магнитных ссылок зарегистрирован."
        },
        qbit: {
            not_supported: "Доступно только в qbit >= {version}"
        },
        version: {
            latest: "Самая свежая и лучшая!",
            new: "Доступна новая версия!"
        }
    };
    b9 = {
        actions: {
            delete: "Удалить торренты",
            logs: "Открыть логи",
            pause: "Приостановить торренты",
            resume: "Возобновить торренты",
            rssArticles: "Открыть статьи RSS",
            searchEngine: "Открыть поиск",
            settings: "Открыть настройки",
            torrentCreator: "Начать создание торрента"
        },
        addTorrents: "Добавить торренты",
        overflow: {
            delete: "Удалить",
            logs: "Логи qBittorrent",
            pause: "Пауза",
            resume: "Возобновить",
            rssArticles: "RSS статьи",
            searchEngine: "Поиск",
            settings: "Настройки",
            torrentCreator: "Создание торрента"
        },
        searchTorrents: "Поиск торрентов"
    };
    F9 = {
        empty: {
            action: "Создать новую задачу",
            value: "Нет задач"
        },
        table: {
            comment: "Комментарий",
            create: "Создать новую задачу",
            errorMessage: "Сообщение об ошибке",
            format: "Формат торрента",
            optimizeAlignment: "Оптимизировано ли выравнивание?",
            pieceSize: "Размер фрагмента",
            private: "Частный?",
            progress: "Выполнение",
            source: "Источник",
            sourcePath: "Путь источника",
            status: "Статус задачи",
            taskID: "ID задачи",
            timeAdded: "Дата добавления",
            timeFinished: "Дата завершения",
            timeStarted: "Дата начала",
            trackers: {
                activator: "{n} трекеров | {n} трекер | {n} трекера | {n} трекеров",
                header: "Трекеры",
                title: "Зарегистрированные трекеры"
            },
            urlSeeds: {
                activator: "{n} URL-ов | {n} URL | {n} URL-а | {n} URL-ов",
                header: "Веб-сиды",
                title: "Зарегистрированные веб-сиды"
            }
        },
        title: "Создание торрента"
    };
    k9 = {
        content: {
            fileInfo: "{n} файлов | {n} файл | {n} файла | {n} файлов",
            filter: {
                activator: "Массовый выбор",
                exclude: "Исключить",
                extensions: "Расширение файла",
                include: "Включить",
                preview: "Фильтр по файлам: {count}/{total} ({size})",
                priority: "Приоритет файла",
                size: "Размер файла",
                title: "Массовый выбор файлов"
            },
            filter_placeholder: "Поиск по древу файлов",
            folderInfo: "{n} папок | {n} папка | {n} папки | {n} папок",
            invert_priority: "Изменить приоритет",
            priority: "Установить приоритет",
            rename: {
                bulk: "Массовое переименование",
                file: "Переименовать",
                folder: "Переименовать папку"
            },
            rootNode: "(Корень)"
        },
        info: {
            boolean_values: "Логические значения",
            data_values: "Значения данных",
            datetime_values: "Значения даты/времени",
            duration_values: "Значения длительности",
            long_text_values: "Длинные текстовые значения",
            speed_values: "Значения скорости",
            text_values: "Текстовые значения"
        },
        overview: {
            canvasRefreshDisabled: "Автоматическое обновление визуализации фрагментов отключено",
            canvasRenderDisabled: "Визуализация фрагментов отключена",
            copy_hash: "Скопировать хэш",
            dlSpeedAverage: "Средняя скорость загрузки",
            downloaded: "Загружено",
            fetchingMetadata: "Обновляется...",
            fileCount: "Файлов выбрано",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "Рейтинг",
            selectedFileSize: "Размер выбранных файлов",
            uploaded: "Отдано",
            upSpeedAverage: "Средняя скорость раздачи",
            waitingForMetadata: "Ожидание метаданных..."
        },
        peers: {
            addPeers: {
                newPeers: "Хосты пиров для добавления",
                newPeersHint: "Один на строку",
                newPeersPlaceholder: "IP:порт",
                title: "Добавить пиры"
            },
            empty: "Нет подключенных пиров на данный момент",
            fields: {
                client: "Клиент",
                country: "Страна",
                download: "Загрузка",
                files: "Файлы",
                flags: "Флаги",
                host: "Хост",
                progress: "Прогресс",
                relevance: "Актуальность",
                upload: "Раздача"
            }
        },
        tabs: {
            content: "Контент",
            info: "Инфо",
            overview: "Общее",
            peers: "Пиры",
            tagsAndCategories: "Теги и категории",
            trackers: "Трекеры"
        },
        tagsAndCategories: {
            categories: "Категории",
            tags: "Теги"
        },
        title: "Детали торрента",
        trackers: {
            addTrackers: {
                newTrackers: "URL-ссылки трекеров для добавления",
                newTrackersHint: "Одна на строку, разделяя ранги пустой строкой",
                title: "Добавить трекеры"
            },
            editTracker: {
                newUrl: "Новая ссылка",
                newUrlRequired: "Укажите новую ссылку",
                oldUrl: "Старая ссылка",
                title: "Редактировать трекер"
            },
            error: "Ошибка при получении данных трекера",
            fields: {
                msg: "Сообщение",
                num_downloaded: "Загружено",
                num_leeches: "Личи",
                num_peers: "Пиры",
                num_seeds: "Сиды",
                status: "Статус",
                tier: "№",
                url: "URL трекера"
            },
            loading: "Загрузка данных трекера...",
            reannounce: "Переанонсировать всё",
            tier: "Ранг: {n}"
        }
    };
    x9 = {
        properties: {
            added_on: "Добавлено",
            amount_left: "Осталось",
            auto_tmm: "Автоматическое управление торрентом",
            availability: "Доступность",
            available_peers: "Пиры (рой)",
            available_seeds: "Сиды (рой)",
            avg_download_speed: "Средняя скорость загрузки",
            avg_upload_speed: "Средняя скорость раздачи",
            basename_content_path: "Путь содержимого (базовое имя)",
            basename_download_path: "Путь загрузки (базовое имя)",
            basename_save_path: "Путь сохранения (базовое имя)",
            category: "Категория",
            comment: "Комментарий",
            completed_on: "Завершено",
            content_path: "Путь содержимого",
            created_by: "Создан:",
            creation_date: "Дата создания",
            downloaded: "Загружено (всего)",
            downloaded_session: "Загружено (за сессию)",
            download_limit: "Ограничение загрузки",
            download_path: "Путь загрузки",
            download_speed: "Скорость загрузки",
            empty_category: "(без категорий)",
            empty_tags: "(нет тегов)",
            empty_tracker: "(без рабочих трекеров)",
            eta: "До завершения",
            f_l_piece_prio: "Приоритет первой / последней части",
            forced: "Принудительное состояние",
            global_speed: "Общая скорость",
            global_volume: "Отдано/загружено всего",
            hash: "Хэш",
            has_metadata: "Есть метаданные",
            inactive_seeding_time_limit: "Ограничению по времени неактивного сидирования",
            infohash_v1: "Хеш-сумма v1",
            infohash_v2: "Хеш-сумма v2",
            is_private: "Приватный торрент",
            last_activity: "Последняя активность",
            magnet: "Магнитная ссылка",
            name: "Название торрента",
            nb_connections: "Всего соединений",
            nb_connections_limit: "Ограничение соединений",
            num_leechs: "Пиры (подключено)",
            num_seeds: "Сиды (подключено)",
            peers: "Пиры",
            popularity: "Популярность",
            priority: "Позиция в очереди",
            private: "Частный",
            progress: "Прогресс",
            progress_bar: "Панель прогресса",
            ratio: "Рейтинг",
            ratio_limit: "Ограничение рейтинга",
            reannounce: "Будет переанонсировано в",
            root_path: "Корневая папка",
            save_path: "Путь сохранения",
            seeding_time: "Время сидирования",
            seeding_time_limit: "Ограничению времени сидирования",
            seeds: "Сиды",
            seen_complete: "Замечен целиком",
            seq_dl: "Последовательная загрузка",
            size: "Размер",
            state: "Состояние",
            super_seeding: "Режим супер-сида",
            tags: "Теги",
            time_active: "Активное время",
            total_size: "Общий размер",
            total_wasted: "Потерянные данные",
            tracker: "Трекер",
            trackers_count: "Количество трекеров",
            truncated_hash: "Усечённый хэш",
            uploaded: "Отдано (всего)",
            uploaded_session: "Отдано (за сессию)",
            upload_limit: "Ограничение раздачи",
            upload_speed: "Скорость раздачи"
        },
        state: {
            checking_disk: "Проверка файлов на диске",
            checking_resume_data: "Возобновление",
            dl_forced: "Загрузка [П]",
            dl_queued: "Очередь 🡇",
            dl_stalled: "Простаивает",
            dl_stopped: "Остановлено",
            downloading: "Загрузка",
            error: "Ошибка",
            forced_meta_download: "Метаданные [П]",
            meta_download: "Метаданные",
            missing_files: "Нет файлов",
            moving: "Перемещение",
            ul_forced: "Раздача [П]",
            ul_queued: "Очередь 🡅",
            ul_stalled: "Сидирование",
            ul_stopped: "Завершено",
            unknown: "Неизвестно",
            uploading: "Раздача"
        }
    };
    w9 = {
        minutes: "минут | минута | минуты | минут",
        seconds: "секунд | секунда | секунды | секунд"
    };
    S9 = {
        common: l9,
        constants: u9,
        dashboard: c9,
        dialogs: d9,
        login: h9,
        logs: m9,
        navbar: f9,
        rssArticles: p9,
        searchEngine: g9,
        settings: v9,
        toast: y9,
        topbar: b9,
        torrentCreator: F9,
        torrentDetail: k9,
        torrent: x9,
        units: w9
    };
    C9 = {
        cancel: "İptal",
        close: "Kapat",
        delete: "Sil",
        disable: "Devre Dışı Bırak",
        disabled: "Devre Dışı",
        edit: "Düzenle",
        emptyList: "Burada görülecek bir şey yok.",
        global_value: "Genel Değer",
        NA: "Yok",
        no: "Hayır",
        none: "(Yok)",
        ok: "Tamam",
        pause: "Duraklat",
        refresh: "Yenile",
        resume: "Devam Et",
        save: "Kaydet",
        search: "Ara",
        selectAll: "Tümünü Seç",
        selectNone: "Hiçbirini Seçme",
        useGlobalSettings: "Genel Ayarları Kullan",
        yes: "Evet"
    };
    A9 = {
        addStopped: {
            always: "Her Zaman",
            never: "Asla",
            title: "Duraklatılmış olarak ekle"
        },
        auto_delete_mode: {
            always: "Her Zaman",
            never: "Asla"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP ve μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Bağlı",
            disconnected: "Bağlantı Kesildi",
            firewalled: "Güvenlik Duvarlı",
            unknown: "Bilinmeyen"
        },
        contentLayout: {
            nosubfolder: "Alt Klasörü Kaldır",
            original: "Orijinal",
            subfolder: "Alt Klasör Oluştur",
            title: "Torrent içerik düzeni"
        },
        diskIoMode: {
            disableOsCache: "İşletim sistemi önbelliğini devre dışı bırak",
            enableOsCache: "İşletim sistemi önbelliğini etkinleştir",
            writeThrough: "Doğrudan yazma (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "Varsayılan",
            memoryMappedFiles: "Bellek eşlemeli dosyalar",
            posixCompliant: "POSIX uyumlu"
        },
        encryption: {
            forceOff: "Şifrelemeyi Kapat",
            forceOn: "Şifreleme Gerektir",
            preferEncryption: "Şifrelemeye İzin Ver"
        },
        file_log_age_type: {
            days: "Gün | Gün | Günler",
            months: "Ay | Ay | Aylar",
            years: "Yıl | Yıl | Yıllar"
        },
        file_priority: {
            high: "Yüksek",
            max: "Maksimum",
            mixed: "Karışık",
            normal: "Normal",
            unwanted: "İstenmeyen"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Varsayılan Kaydetme Yolu",
            monitoredFolder: "İzlenen Klasör Konumu",
            other: "Diğer"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Her gün",
            everyFriday: "Her cuma",
            everyMonday: "Her pazartesi",
            everySaturday: "Her cumartesi",
            everySunday: "Her pazar",
            everyThursday: "Her perşembe",
            everyTuesday: "Her salı",
            everyWednesday: "Her çarşamba",
            everyWeekday: "Her hafta içi",
            everyWeekend: "Her hafta sonu"
        },
        shareLimitAction: {
            removeTorrent: "Torrenti kaldır",
            removeTorrentAndFiles: "Torrenti ve dosyalarını kaldır",
            stopTorrent: "Torrenti duraklat",
            torrentSuperseeding: "Torrent için süper seedingi etkinleştir"
        },
        stopCondition: {
            filesChecked: "Dosyalar Kontrol Edildi",
            metadataReceived: "Meta Veri Alındı",
            none: "Hiçbiri",
            title: "Torrent durdurma koşulu"
        },
        themes: {
            dark: {
                legacy: "Eski",
                redesigned: "Yeniden Tasarlandı"
            },
            light: {
                legacy: "Eski",
                redesigned: "Yeniden Tasarlandı"
            }
        },
        titleOptions: {
            custom: "Özel",
            default: "Varsayılan",
            first_torrent_speed: "İlk Torrent Hızı",
            global_speed: "Genel Hız"
        },
        trackerStatus: {
            disabled: "Devre Dışı",
            not_working: "Çalışmıyor",
            not_yet_contacted: "Henüz bağlantı kurulmadı",
            updating: "Güncelleniyor",
            working: "Çalışıyor"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Anti-leech",
            fastestUpload: "En hızlı yükleme",
            roundRobin: "Döngüsel dağıtım"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Sabit yuvalar",
            uploadRateBased: "Yükleme hızına dayalı"
        },
        utpTcpMixedMode: {
            peerProportional: "Eş orantılı (TCP'yi kısıtlar)",
            preferTcp: "TCP'yi Tercih Et"
        }
    };
    D9 = {
        displayMode: {
            grid: "Izgara",
            list: "Liste",
            table: "Tablo",
            title: "Görüntü modu"
        },
        not_complete: "Tamamlanmış görülmedi",
        right_click: {
            advanced: {
                auto_tmm: "Otomatik Torrent Yönetimi",
                download_path: "İndirme Yolunu Ayarla",
                f_l_prio: "İlk / Son Parça Önceliği",
                reannounce: "Yeniden Duyurmaya Zorla",
                recheck: "Yeniden Kontrol Etmeye Zorla",
                rename: "Torrent'i Yeniden Adlandır",
                save_path: "Kaydetme Yolunu Ayarla",
                seq_dl: "Sıralı İndirme",
                title: "Gelişmiş"
            },
            category: {
                clear: "(Kategoriyi temizle)",
                disabled_title: "Kategori yok",
                title: "Kategoriyi ayarla"
            },
            copy: {
                comment: "Yorum",
                hash: "Hash",
                magnet: "Magnet",
                name: "İsim",
                title: "Kopyala"
            },
            export: "Torrenti dışa aktar | Torrentleri dışa aktar",
            info: "Bilgi göster",
            priority: {
                bottom: "En alta",
                decrease: "Azalt",
                increase: "Artır",
                title: "Kuyruk konumunu ayarla",
                top: "En üste"
            },
            speed_limit: {
                download: "İndirme sınırını ayarla",
                share: "Paylaşım sınırını ayarla",
                title: "Hız sınırını ayarla",
                upload: "Yükleme sınırını ayarla"
            },
            tags: {
                clear_all: "Tümünü kaldır",
                disabled_title: "Etiket yok",
                title: "Etiketleri Ayarla"
            },
            top: {
                delete: "Sil",
                force_resume: "Devam Etmeye Zorla",
                pause: "Duraklat",
                resume: "Devam Et"
            }
        },
        searchInputLabel: "Ara",
        selectAll: "Tümünü Seç / Seçimi Kaldır (Ctrl + A)",
        selectedTorrentsCount: "Torrent yok | {count} / {total} torrent ({size}) | {count} / {total} torrent ({size})",
        sortLabel: "Sıralama ölçütü",
        toggleSearchFilter: "Arama filtresini aç/kapat",
        toggleSelectMode: "Seçim modunu aç/kapat",
        toggleSortOrder: "Sıralama düzenini tersine çevir",
        torrentsCount: "Torrent yok | {n} torrent | {n} torrent"
    };
    T9 = {
        add: {
            cookie: "Çerezler",
            cookie_placeholder: "isim1=değer1; isim2=değer2; ...",
            drop_label: "Torrent dosyalarını ve bağlantılarını buraya bırakın",
            file_overflow: "+{n} tane daha",
            files: "Dosyaları seç",
            first_last_piece_prio: "İlk ve son parçaları önceliklendir",
            links: "Bağlantılar (magnet, http, dosya, ...)",
            params: {
                add_to_top_of_queue: "Kuyruğun en üstüne ekle",
                category: "Kategori",
                download_limit: "İndirme Sınırı",
                download_path: "İndirme Yolu (tamamlanmadığında)",
                inactive_seeding_time_limit: "Etkin olmayan seeding süresi sınırı",
                limit_collapse: "Sınırları yapılandır",
                limit_hint: "Devre dışı bırakmak için -1, genel değeri kullanmak için -2 veya boş bırakın",
                no_categories: "Henüz kategori yok. Oluşturmak için bir isim yazın.",
                no_categories_match: '"{query}" ile eşleşen kategori yok. Otomatik olarak oluşturulacak.',
                no_tags: "Henüz etiket yok. Oluşturmak için bir isim yazın.",
                no_tags_match: '"{query}" ile eşleşen etiket yok. Oluşturmak için Enter tuşuna basın.',
                ratio_limit: "Oran sınırı",
                save_path: "Kaydetme yolu (tamamlandığında)",
                seeding_time_limit: "Seeding süre sınırı",
                skip_checking: "Hash kontrolünü atla",
                stopped: "İndirmeyi başlatma",
                tags: "Etiketler",
                title: "Torrent parametreleri",
                upload_limit: "Yükleme sınırı",
                use_auto_tmm: "Otomatik Torrent Yönetimi"
            },
            rename: "Torrenti yeniden adlandır",
            reset_form: "Formu sıfırla",
            sequential_download: "Sıralı indirme",
            submit: "Torrent ekle",
            title: "Torrent Ekle"
        },
        bulkRenameFiles: {
            col_origin_name: "Orijinal",
            col_result_name: "Sonuç",
            duplicated: "Yinelenen Dosya Adı",
            flags: "Bayraklar",
            fold: "Daralt",
            not_changed: "Dosya Adı Değiştirilmedi",
            notForFolder: "Klasör Yeniden Adlandırma Desteklenmiyor",
            nothing_to_do: "Yapılacak görev yok",
            regexp: "Düzenli İfade",
            run: "Çalıştır",
            select_regex_flags: "Düzenli İfade Bayraklarını Seçin",
            success: "Yeniden Adlandırma Başarılı",
            target: "Değiştirme Girdisi",
            title: "Toplu Yeniden Adlandırma",
            unfold: "Genişlet"
        },
        category: {
            name: "Kategori Adı",
            nameRequired: "Kategori adı gereklidir",
            oldName: "Eski kategori adı",
            savePath: "Kaydetme Yolu",
            title: {
                create: "Kategori Oluştur",
                edit: "Kategoriyi Düzenle"
            },
            warnEdit: "Kategori adını düzenlemek, torrentleri yeni kategoriye taşıyacaktır. Hatalar oluşabilir, dikkatli kullanın."
        },
        connectionStatus: {
            dht_nodes: "DHT düğümleri",
            externalIp: "Harici IP Adresi",
            fetch_geo_failed: "Coğrafi konum bilgileri alınamıyor",
            fetch_isp_failed: "İSS ayrıntıları alınamıyor",
            geo_details: "Coğrafi konum bilgileri",
            isp_details: "İSS ayrıntıları",
            noExternalIp: "Günlüklerden tespit edilemiyor",
            status: "Bağlantı Durumu",
            total_peer_connections: "Aktif eş bağlantıları"
        },
        delete: {
            deleteWithFiles: "Torrent ile birlikte dosyaları sil",
            title: "{n} torrenti sil | {n} torrenti silin",
            warnDelete: "Bu onay kutusunu işaretlemek, bu torrentlerde bulunan her şeyi silecektir"
        },
        importSettings: {
            required: "Ayarların sağlanması gerekiyor",
            title: "Ayarları İçe Aktar",
            valid: "Lütfen geçerli ayarlar sağlayın"
        },
        moveTorrent: {
            dl: {
                title: "İndirme Yolunu Değiştir"
            },
            newPath: "Yeni yol",
            oldPath: "Eski yol",
            required: "Yeni yol gereklidir",
            samePath: "Yeni yol, eski yoldan farklı olmalıdır",
            save: {
                title: "Kaydetme Yolunu Değiştir"
            }
        },
        moveTorrentFile: {
            oldName: "Eski isim",
            title: "Torrent Dosyasını Taşı | Torrent Klasörünü Taşı"
        },
        pluginManager: {
            headers: {
                actions: "Eylemler",
                enabled: "Etkin",
                name: "İsim",
                url: "Motor URL'si",
                version: "Sürüm"
            },
            install: {
                activator: "Yeni eklenti yükle",
                label: "Eklenti URL'si",
                title: "Eklenti Yükle"
            },
            title: "Eklenti Yöneticisi",
            update: "Eklentileri güncelle"
        },
        renameTorrent: {
            newName: "Yeni isim",
            oldName: "Eski isim",
            required: "Yeni isim gereklidir",
            sameName: "Yeni isim eski isimden farklı olmalıdır",
            title: "Torrent'i Yeniden Adlandır"
        },
        rss: {
            feed: {
                name: "İsim",
                rules: {
                    name_required: "Besleme adı gereklidir",
                    url_required: "Besleme URL'si gereklidir"
                },
                title: {
                    create: "RSS Beslemesi Oluştur",
                    edit: "RSS Beslemesini Düzenle"
                },
                url: "URL"
            },
            rule: {
                affectedFeedsSubheader: "Etkilenen Beslemeler",
                assignedCategory: "Atanan Kategori",
                enabled: "Kuralı etkinleştir",
                episodeFilter: "Bölüm Filtresi",
                episodeFilterPlaceholder: "örn. S01E02-S01E05",
                ignoreDays: "Son {days} gün içinde yayınlanan öğeleri yoksay",
                ignoreDaysHint: "Devre dışı bırakmak için 0",
                lastMatch: {
                    knownValue: "bugün | {n} gün önce | {n} gün önce",
                    label: "Son eşleşme",
                    unknownValue: "Bilinmeyen"
                },
                matchingArticles: {
                    noMatch: "Eşleşen makale yok",
                    title: "Eşleşen Makaleler"
                },
                mustContain: "İçermelidir",
                mustNotContain: "İçermemelidir",
                name: "İsim",
                savePath: "Kaydetme Yolu",
                savePathPlaceholder: "Varsayılan kaydetme yolunu kullanmak için boş bırakın",
                smartFilter: "Akıllı Bölüm filtresini kullan",
                title: {
                    create: "RSS Kuralı Oluştur",
                    edit: "RSS Kuralını Düzenle"
                },
                useRegex: "Düzenli İfade Kullan"
            }
        },
        share_limit: {
            disabled: "Paylaşım sınırı yok",
            enabled: "Paylaşım sınırını şuna ayarla",
            global: "Genel paylaşım sınırını kullan",
            inactive_seeding_time_limit: "Etkin olmayan dakikalar",
            ratio_limit: "Oran",
            seeding_time_limit: "Toplam dakika",
            title: "Paylaşım oranı sınırını ayarla"
        },
        shutdown: {
            content: "Gerçekten qBittorrent'i kapatmak istiyor musunuz?",
            error: "Uygulama kapatılamıyor. qBittorrent'in çalıştığından emin olun!",
            success: "qBittorrent başarıyla kapatıldı!",
            title: "qBittorrent'i kapat"
        },
        speed_limit: {
            download: "İndirme Hız Sınırını Ayarla",
            label: "Hız Sınırı",
            upload: "Yükleme Hız Sınırını Ayarla"
        },
        tag: {
            comma: "Etiket yeniden adlandırılırken isim virgül içeremez",
            hint: "İpucu: Birden fazla etiket virgülle ayrılarak oluşturulabilir",
            name: "Etiket adı",
            oldName: "Eski etiket adı",
            required: "Etiket adı gerekli",
            title: {
                create: "Etiket Oluştur",
                rename: "Etiketi Yeniden Adlandır"
            },
            warnEdit: `Etiket adını düzenlemek, torrentleri yeni etikete taşıyacaktır.
Hatalar oluşabilir, dikkatli kullanın.`
        }
    };
    E9 = {
        error: "Giriş başarısız oldu!",
        password: "Parola",
        rules: {
            password_required: "Parola gereklidir",
            username_required: "Kullanıcı adı gereklidir"
        },
        submit: "Giriş",
        subtitle: "Kimlik bilgilerinizi girin",
        success: "Giriş başarılı!",
        title: "Giriş",
        username: "Kullanıcı Adı"
    };
    _9 = {
        emptyLogList: "Günlük bulunamadı",
        filters: {
            query: "Günlük mesajında ara",
            type: "Günlük Düzeyi"
        },
        title: "qBittorrent Günlükleri"
    };
    P9 = {
        addPanel: {
            torrentsPendingCount: "{n} torrent yüklenmeyi bekliyor | {n} torrent yüklenmeyi bekliyor"
        },
        side: {
            bottom_actions: {
                alt_speed: "Alternatif hızı aç/kapat",
                conn_status: "Bağlantı durumu: {status}",
                logout: "Çıkış Yap",
                shutdown: "qBittorrent'i kapat"
            },
            current_speed: {
                title: "Mevcut Hız"
            },
            filters: {
                activeFilter: "{n} filtre etkin",
                category: {
                    empty: "(Kategorize Edilmemiş)",
                    title: "Kategori Filtresi"
                },
                disabled: "(Devre Dışı)",
                state: {
                    active: "Aktif",
                    error: "Hata",
                    title: "Torrent Durum Filtresi"
                },
                tag: {
                    empty: "(Etiketsiz)",
                    title: "Etiket Filtresi"
                },
                tracker: {
                    empty: "(İzlenmeyen)",
                    title: "İzleyici Filtresi"
                }
            },
            speed_graph: {
                download_label: "İndirme",
                download_limit_label: "İndirme Sınırı",
                upload_label: "Yükleme",
                upload_limit_label: "Yükleme sınırı"
            },
            stats: {
                alltime: {
                    title: "Tüm Zaman İstatistikleri"
                },
                downloaded: "İndirilen",
                free_space: "Boş Alan",
                ratio: "Oran",
                session: {
                    title: "Oturum İstatistikleri"
                },
                uploaded: "Yüklenen"
            }
        },
        top: {
            active_filters: {
                category: "Kategori filtresi: {value}",
                menu_label: "Etkin filtre: {n} | Etkin filtreler: {n}",
                multiple_category: "Kategori filtresi: {n} kategori",
                multiple_state: "Durum filtresi: {n} durum",
                multiple_tag: "Etiket filtresi: {n} etiket",
                multiple_tracker: "İzleyici filtresi: {n} izleyici",
                state: "Durum filtresi: {value}",
                tag: "Etiket filtresi: {value}",
                text: "Metin filtresi: {value}",
                tracker: "İzleyici filtresi: {value}"
            }
        }
    };
    B9 = {
        feeds: {
            empty: {
                action: "RSS Beslemesi Oluştur",
                value: "Kayıtlı RSS beslemesi yok"
            },
            filters: {
                title: "Başlık filtresi",
                unread: "Sadece okunmamış makaleleri göster"
            },
            item: {
                author: "Yazar: {author}",
                category: "Kategori: {category}",
                feedName: "Besleme adı: {name}"
            },
            markAllAsRead: "Tümünü okundu olarak işaretle",
            markAsRead: "Okundu olarak işaretle",
            promise: {
                error: "Makaleleri işaretlerken bir hata oluştu",
                pending: "İşaretleniyor...",
                success: "{n} makale okundu olarak işaretlendi"
            },
            refreshAllFeeds: "Tüm beslemeleri yenile",
            refreshPromise: {
                error: "Beslemeleri yenilerken bir hata oluştu",
                pending: "Yenileniyor...",
                success: "{n} besleme yenilendi"
            },
            title: "RSS Makaleleri"
        },
        rules: {
            empty: {
                action: "RSS Kuralı Oluştur",
                value: "Kayıtlı RSS kuralı yok"
            },
            title: "RSS Kuralları"
        },
        toggle: {
            feeds: "Beslemeleri göster",
            rules: "Kuralları göster"
        }
    };
    M9 = {
        filters: {
            category: {
                all: "Tümü",
                anime: "Anime",
                books: "Kitaplar",
                games: "Oyunlar",
                label: "Arama kategorisi",
                movies: "Filmler",
                music: "Müzik",
                pictures: "Resimler",
                software: "Yazılım",
                tv: "TV"
            },
            plugins: {
                all: "Tümü",
                enabled: "Etkin",
                label: "Arama eklentisi"
            },
            title: {
                label: "Başlığa göre filtrele"
            }
        },
        headers: {
            fileName: "Dosya Adı",
            fileSize: "Dosya Boyutu",
            nbLeechers: "Leechers",
            nbSeeders: "Seeders",
            siteUrl: "Site URL'si"
        },
        query: "Arama sorgusu",
        runSearch: "Ara",
        stopSearch: "Durdur",
        tabHeaderEmpty: "(Boş sorgu)",
        title: "Arama motoru"
    };
    R9 = JSON.parse(`{"addons":{"enhanced_edition":{"auto_ban_bt_player_peer":"BT oynatıcı eşini otomatik yasakla","auto_ban_unknown_peer":"Bilinmeyen eşleri otomatik yasakla","auto_update_trackers":"Genel izleyici listesini otomatik olarak güncelle","public_trackers":"Genel izleyiciler","trackers_list_url":"İzleyici URL Listesini Özelleştir"}},"advanced":{"libtorrent":{"announceAllTiers":"Her zaman tüm seviyelere duyuru yap","announceAllTrackers":"Her zaman bir seviyedeki tüm izleyicilere duyuru yap","announceIP":"İzleyicilere bildirilen IP adresi (yeniden başlatma gerektirir)","coalesceReadsWrites":"Okumaları ve yazmaları birleştir (libtorrent < 2.0) ","disk":{"diskCache":"Disk önbelleği (libtorrent < 2.0) ","diskCacheExpiry":"Disk önbelleği sona erme aralığı (libtorrent < 2.0)","diskIoReadMode":"Disk G/Ç okuma modu","diskIoType":"Disk G/Ç Türü (libtorrent >= 2.0; yeniden başlatma gerektirir)","diskIoWriteMode":"Disk G/Ç yazma modu","diskQueueSize":"Disk kuyruğu boyutu","subheader":"Disk"},"maxConcurrentHTTPAnnounces":"Maksimum eşzamanlı HTTP duyurusu","networking":{"outgoingPortsMax":"Giden bağlantı noktaları (Maks) [0: Devre dışı] ","outgoingPortsMin":"Giden bağlantı noktaları (Min) [0: Devre dışı] ","peerTos":"Eşlere yapılan bağlantılar için DSCP değeri","subheader":"Ağ Oluşturma","upnpLeaseDuration":"UPnP kiralama süresi [0: Kalıcı kiralama] ","utpTcpMixedModeAlgorithm":"μTP-TCP karışık mod algoritması"},"outgoingConnectionsPerSecond":"Saniye başına giden bağlantılar","peerTurnover":"Eş dönüşümü kopma yüzdesi","peerTurnoverCutoff":"Eş dönüşümü eşik yüzdesi","peerTurnoverInterval":"Eş dönüşümü kopma aralığı","pieceExtentAffinity":"Parça kapsamı yakınlığını kullan","requestQueueSize":"Tek bir eşe gönderilebilecek maksimum istek sayısı","security":{"allowMultipleConnectionsFromTheSameIPAddress":"Aynı IP adresinden birden fazla bağlantıya izin ver","blockPeersOnPrivilegedPorts":"Ayrıcalıklı bağlantı noktalarındaki eşlere bağlantıyı engelle","idnSupport":"Uluslararası Alan Adı (IDN) desteğini etkinleştir","mitigateSSRF":"Sunucu taraflı istek sahteciliği (SSRF) önleme","subheader":"Güvenlik","validateHTTPSTrackerCertificate":"HTTPS izleyici sertifikasını doğrula"},"sendBufferLowWatermark":"Arabellek düşük filigranı gönder","sendBufferWatermark":"Arabellek filigranı gönder","sendBufferWatermarkFactor":"Arabellek filigran faktörü gönder","sendUploadPieceSuggestions":"Yükleme parçası önerilerini gönder","socketBacklogSize":"Soket biriktirme boyutu","socketReceiveBufferSize":"Soket alma arabelleği boyutu","socketReceiveBufferSizeHint":"0: sistem varsayılanı","socketSendBufferSize":"Soket gönderme arabelleği boyutu","socketSendBufferSizeHint":"0: sistem varsayılanı","stopTrackerTimeout":"İzleyici zaman aşımını durdur","subheader":"libtorrent Bölümü","threads":{"asyncIoThreads":"Eşzamansız G/Ç iş parçacıkları","bdecodeDepthLimit":"Bdecode derinlik sınırı","bdecodeTokenLimit":"Bdecode token sınırı","filePoolSize":"Dosya havuzu boyutu","hashingThreads":"Hash iş parçacıkları (libtorrent >= 2.0)","outstandingMemory":"Torrentleri kontrol ederken kullanılan en fazla bellek miktarı","subheader":"İş Parçacıkları"},"uploadChokingAlgorithm":"Yükleme boğulma algoritması","uploadSlotsBehavior":"Yükleme yuvaları davranışı"},"openDoc":"Belgeleri aç","qbittorrent":{"allocatedRam":"Fiziksel bellek (RAM) kullanım sınırı (libtorrent >= 2.0)","embeddedTracker":{"enable":"Yerleşik izleyiciyi etkinleştir","port":"Yerleşik izleyici bağlantı noktası","portForward":"Yerleşik izleyici için bağlantı noktası yönlendirmesini etkinleştir","title":"Yerleşik İzleyici"},"networking":{"ipAddress":{"all":"Tüm adresler","allIPv4":"Tüm IPv4 adresleri","allIPv6":"Tüm IPv6 adresleri","label":"Bağlanmak için isteğe bağlı IP adresi"},"networkInterfaces":{"any":"Herhangi bir arayüz","label":"Ağ arayüzü"},"title":"Ağ Oluşturma"},"reannounceOnIpPortChanged":"IP veya port değiştiğinde tüm izleyicilere yeniden duyuru yap","recheckOnCompletion":"Tamamlanınca torrentleri yeniden kontrol et","refreshInterval":"Arayüz Yenileme Aralığı","resolveCountries":"Eş ülke çözümleme","resumeDataStorageType":{"label":"Devam etme verisi depolama türü (yeniden başlatma gerektirir)","legacy":"Hızlı devam dosyaları","sqlite":"SQLite veritabanı (deneysel)"},"saveInterval":"Devam etme verisi kaydetme aralığı","subheader":"qBittorrent Bölümü","torrentFileSizeLimit":".torrent dosya boyutu sınırı"}},"behavior":{"logs":{"file_log_age":"Şu tarihten eski yedekleme günlüklerini sil","file_log_backup_enabled":"Günlük dosyası yedeklemesini etkinleştir","file_log_delete_old":"Eski yedekleme günlüklerini sil","file_log_enabled":"Günlük dosyalarını etkinleştir","file_log_max_size":"Günlük dosyasını şu boyuttan sonra yedekle","file_log_path":"Kaydetme yolu","subheader":"Günlük yönetimi"},"performance_warning":"Günlük performansı uyarısı"},"bittorrent":{"autoAddTrackers":"Yeni indirmelere otomatik olarak bu izleyicileri ekle","autoAddTrackersHint":"Satır başına bir izleyici","maxActiveCheckingTorrents":"Maksimum etkin kontrol edilen torrent sayısı","privacy":{"enableAnonymous":"Anonim modu etkinleştir","enableDHT":"Daha fazla eş bulmak için DHT'yi (merkezi olmayan ağ) etkinleştirin","enableLPD":"Daha fazla eş bulmak için Yerel Eş Bulma özelliğini etkinleştirin","enablePeX":"Daha fazla eş bulmak için Eş Değişimi (PeX) özelliğini etkinleştirin","encryptionMode":"Şifreleme Modu","moreInfo":"Daha Fazla Bilgi","subheader":"Gizlilik"},"seedLimits":{"subheader":"Seed Sınırı","then":"Yapılacak","whenInactiveSeedingTimeReaches":"Etkin olmayan seeding süresine ulaştığında","whenRatioReaches":"Orana ulaştığında","whenSeedingTimeReaches":"Seeding süresine ulaştığında"},"torrentQueueing":{"downloadRateLimit":"İndirme hızı eşiği","excludeSlowTorrent":"Yavaş torrentleri bu sınırlamalara dahil etme","maxActiveDownload":"Maksimum aktif indirmeler","maxActiveTorrent":"Maksimum aktif torrentler","maxActiveUpload":"Maksimum aktif yüklemeler","subheader":"Torrent Sıralama","torrentInactivityTimer":"Torrent hareketsizlik zamanlayıcısı","uploadRateLimit":"Yükleme hızı eşiği"}},"connection":{"connectionLimits":{"globalMaxConnection":"Genel maksimum bağlantı sayısı","globalMaxUploadSlots":"Genel maksimum yükleme alanı sayısı","perTorrentMaxConnection":"Torrent başına maksimum bağlantı sayısı","perTorrentMaxUploadSlots":"Torrent başına maksimum yükleme alanı sayısı","subheader":"Bağlantı Sınırları"},"ipFiltering":{"applyToTrackers":"İzleyicilere uygula","bannedIps":"Elle yasaklanan IP adresleri","bannedIpsHint":"Her satırda bir tane","filterPath":"Filtre yolu (.dat, .p2p, .p2b)","subheader":"IP Filtreleme"},"listeningPort":{"incomingConnectionPort":"Gelen bağlantılar için kullanılan bağlantı noktası","randomPort":"Rastgele Bağlantı Noktası","subheader":"Dinleme Bağlantı Noktası","useUPnP":"Yönlendiricimden UPnP / NAT-PMP bağlantı noktası yönlendirmeyi kullan"},"protocol":"Eş bağlantı protokolü","proxy":{"auth":{"password":"Parola","subtitle":"Kimlik Doğrulama","tip":"Bilgi: Parola şifrelenmemiş olarak kaydedilir","username":"Kullanıcı Adı"},"bittorrent":"BitTorrent amaçları için proxy kullan","host":"Sunucu","hostNameLookup":"Ana bilgisayar adı çözümlemesi için proxy kullan","misc":"Genel amaçlar için proxy kullan","peerConnections":"Eş bağlantıları için proxy kullan","port":"Bağlantı Noktası","rss":"RSS amaçları için proxy kullan","subheader":"Proxy Sunucusu"}},"downloads":{"excludedFileNames":{"hint":"Satır başına bir filtre","label":"Hariç tutulan dosya adları"},"mailNotification":{"authEnabled":"Kimlik Doğrulama","enabled":"İndirme tamamlandığında e-posta bildirimi","from":"Kimden","password":"Parola","smtpServer":"SMTP sunucusu","sslEnabled":"Bu sunucu güvenli bir bağlantı (SSL) gerektirir","to":"Kime","username":"Kullanıcı Adı"},"monitoredFolders":{"actions":"Eylemler","confirmDelete":"Bu öğeyi silmek istediğinizden emin misiniz?","editItem":"Düzenle","monitoredFolderPath":"İzlenen Klasör","newItem":"Yeni","noData":"Henüz izlenen klasör yok","otherPath":"Diğer Yol","saveType":"Kaydetme Konumunu Geçersiz Kıl","subheader":"İzlenen Klasörler"},"publicSettings":{"appendQBExtension":"Tamamlanmamış dosyalara .!qB uzantısını ekle","preAllocateDisk":"Tüm dosyalar için disk alanını önceden ayırın"},"runExternalProgram":{"onAddedEnabled":"Torrent eklendiğinde harici programı çalıştır","onAddedLabel":"Komut","onFinishedEnabled":"Torrent tamamlandığında harici programı çalıştır","onFinishedLabel":"Komut","subheader":"Harici programı çalıştır","supportParamC":"%C: Dosya sayısı","supportParamD":"%D: Kaydetme yolu","supportParamF":"%F: İçerik yolu (çok dosyalı torrent için kök yolla aynı)","supportParamG":"%G: Etiketler (virgülle ayrılmış)","supportParamI":"%I: Info hash v1","supportParamJ":"%J: Info hash v2","supportParamK":"%K: Torrent ID","supportParamL":"%L: Kategori","supportParamN":"%N: Torrent ismi","supportParamR":"%R: Kök dizin (ilk torrent alt dizin yolu) ","supportParamT":"%T: Mevcut izleyici","supportParamTitle":"Desteklenen parametreler (büyük/küçük harf duyarlıdır):","supportParamZ":"%Z: Torrent boyutu (bayt)","tip":"İpucu: Metnin boşluklardan kesilmesini önlemek için parametreyi tırnak işaretleri içine alın (ör. \\"%N\\")"},"saveManagement":{"autoTMMEnabled":"Varsayılan Torrent Yönetim Modu","categoryChangedTMM":"Kategori Kayıt Yolu değiştirildiğinde","defaultSavePath":"Varsayılan Kaydetme Yolu (tamamlanan)","defaultTMMOptions":{"automatic":"Otomatik","manual":"El ile"},"exportDir":".torrent dosyalarını şuraya kopyala","exportDirFinished":"Tamamlanan indirmeler için .torrent dosyalarını şuraya kopyala:","keepIncomplete":"Varsayılan İndirme Yolu (tamamlanmamış torrentler)","paramChangedTMMOptions":{"relocateTorrent":"Torrent'in yerini değiştir","switchToManual":"Torrent'i Manuel Moda geçir"},"savePathChangedTMM":"Varsayılan Kaydetme Yolu değiştirildiğinde","subheader":"Kaydetme Yönetimi","torrentChangedTMM":"Torrent Kategorisi değiştirildiğinde"},"whenAddTorrent":{"addToTopOfQueue":"Kuyruğun en üstüne ekle","autoDeleteMode":".torrent dosyalarını sonradan sil","doNotAutoStart":"İndirmeyi otomatik olarak başlatma","mergeTrackers":"Torrent zaten mevcutsa izleyicileri birleştir","subheader":"Torrent eklerken"}},"rss":{"autoDownloader":{"enable":"RSS kurallarının işlenmesini etkinleştirin","subheader":"RSS Torrent Otomatik İndirici"},"reader":{"enableProcessing":"RSS beslemelerini almayı etkinleştirin","feedsRefreshInterval":"Besleme yenileme aralığı","maximumArticlesPerFeed":"Besleme başına maksimum makale sayısı","subheader":"RSS Okuyucu"},"smartEpisodeFilter":{"downloadEpisodes":"REPACK/PROPER bölümlerini indirin","filters":"Filtreler","filtersHint":"Satır başına bir tane","subheader":"RSS Akıllı Bölüm Filtresi"},"useIdForRssLinks":"RSS makale bağlantısı için ID kullan"},"saveSuccess":"Ayarlar kaydedildi!","speed":{"download":"İndirme","scheduler":{"from":"Başlangıç","selectButtonLabel":"Zamanı seçin","subheader":"Alternatif hız sınırlarının kullanımını zamanlayın","to":"Bitiş","when":"Ne zaman"},"settings":{"applyToPeersOnLan":"LAN'daki eşlere hız sınırı uygula","applyToTransportOverhead":"Taşıma yüküne oran sınırı uygula","applyToUtp":"µTP protokolüne oran sınırı uygula"},"subheader":{"alternative":"Alternatif Oran Sınırları","global":"Genel Oran Sınırları","settings":"Oran Sınırları Ayarları"},"tip":"0 sınırsız anlamına gelir","upload":"Yükleme"},"tabs":{"addons":{"enhanced_edition":"Gelişmiş sürüm"},"advanced":"Gelişmiş","behavior":"Davranış","bittorrent":"BitTorrent","connection":"Bağlantı","downloads":"İndirilenler","rss":"RSS","speed":"Hız","tagsAndCategories":"Etiketler & Kategoriler","vuetorrent":{"general":"Genel","title":"VueTorrent","torrent_card":{"grid":"Izgara Görünümü","list":"Liste Görünümü","table":"Tablo Görünümü"}},"webui":"WebUI"},"tagsAndCategories":{"categoriesSubheader":"Mevcut Kategoriler:","createNewCategory":"Yeni kategori oluştur","createNewTag":"Yeni etiket oluştur","noCategories":"Henüz kategori yok","noTags":"Henüz etiket yok","tagsSubheader":"Mevcut Etiketler:"},"title":"Ayarlar","vuetorrent":{"general":{"check_new":"Yeni sürümü kontrol et","currentVersion":"Mevcut Sürüm","customTitle":"Özel başlık","darkVariants":"Koyu tema varyantı","dateFormat":"Tarih formatı","download":"Ayarları Dışa Aktar","enableHashColors":"Oluşturulmuş çip renklerini etkinleştir","enableRatioColors":"Oran renklerini etkinleştir","fileContentInterval":"Torrent dosyası içerik yenileme aralığı","hideChipIfUnset":"Ayarlanmamışsa çipleri gizle","hideColoredChip":"Çipler için metin varyantını kullan","historySize":"Uygun alanlarda geçmiş boyutu","import":"Ayarları İçe Aktar","isDrawerRight":"Sağ Çekmece","isShutdownButtonVisible":"Kapatma düğmesini göster","language":"Dil","lightVariants":"Açık tema varyantı","paginationSize":{"infinite_scroll":"Sonsuz kaydırma","label":"Sayfalama Boyutu","warning":"Yüksek değerler kullanmak performansı etkileyebilir"},"qbittorrentVersion":"qBittorrent Sürümü","refreshInterval":"qBittorrent API yenileme aralığı","registerMagnet":"Magnet bağlantılarını kaydet","resetSettings":"Ayarları Sıfırla","showAlltimeStat":"Tüm Zaman İstatistiklerini Göster","showCurrentSpeed":"Mevcut Hızı Göster","showFreeSpace":"Boş Alanı Göster","showSessionStat":"Oturum İstatistiklerini Göster","showSpeedGraph":"Hız Grafiğini Göster","tip":"Bu ayarlar özel WebUI'nin kendisi içindir","useBinarySize":"Veri boyutlarını ikili birimlerle değiştir (kB -> KiB) ","useBitSpeed":"Hız değerlerini bit cinsinden değiştir (kB/s -> kbps)","vueTorrentTitle":"Sekme başlığı"},"torrentCard":{"grid":{"busyTip":"Tamamlanmamış torrentler için ızgara görünümünde gösterilecek özellikler","doneTip":"Tamamlanan torrentler için ızgara görünümünde gösterilecek özellikler"},"list":{"busyTip":"Tamamlanmamış torrentler için liste görünümünde gösterilecek özellikler","doneTip":"Tamamlanan torrentler için liste görünümünde gösterilecek özellikler"},"table":{"tip":"Tablo görünümünde gösterilecek torrent özellikleri"}}},"webUI":{"authentication":{"banDuration":"Yasaklama Süresi","banDurationHint":"Saniye cinsinden","bypassLocalhost":"Localhost'taki istemciler için kimlik doğrulamasını atla","bypassWhitelist":"Beyaz listedeki IP alt ağlarındaki istemciler için kimlik doğrulamayı atlayın","maxAttempts":"Maksimum deneme sayısı","password":"Parola","passwordPlaceholder":"(değişmedi)","sessionTimeout":"Oturum zaman aşımı","sessionTimeoutHint":"Saniye cinsinden","subheader":"Kimlik Doğrulama","username":"Kullanıcı Adı","whitelistExamples":"Örnek: 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"Özel HTTP başlıkları ekle","customHeadersHint":"Satır başına bir tane","customHeadersPlaceholder":"Başlık1: değer1\\nBaşlık2: değer2\\n...","dynDns":{"domainName":"Alan adı","password":"Parola","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"Kayıt Ol","subheader":"Dinamik alan adımı güncelle","username":"Kullanıcı Adı"},"https":{"certificate":"Sertifika","key":"Anahtar","subheader":"HTTPS kullan","tip":"Sertifikalar hakkında bilgi"},"interface":{"ipAddress":"IP Adresi","port":"Bağlantı Noktası","subheader":"Web Kullanıcı Arayüzü","useAlternativeWebUI":"Alternatif Web Arayüzünü Kullan","useUPnP":"Yönlendiricimden UPnP / NAT-PMP bağlantı noktası yönlendirmeyi kullan"},"proxiesList":"Güvenilir proxy listesi","proxiesListHint":"IP'leri noktalı virgülle ( ; ) ayırın","reverseProxySupport":"Ters proxy desteğini etkinleştirin","security":{"clickjacking":"Tıklama korsanlığına karşı korumayı etkinleştir","csrf":"Çapraz Site İstek Sahtekarlığı (CSRF) korumasını etkinleştirin","hostHeaderValidation":"Ana bilgisayar başlığı doğrulamasını etkinleştir","hostHeaderValidationHint":"Noktalı virgülle ayrılmış ( ; )","secureCookie":"Çerez \\"güvenli\\" bayrağını etkinleştir (HTTPS gerektirir) ","serverDomains":"Sunucu Alan Adları","subheader":"Güvenlik"}}}`);
    L9 = {
        add: {
            error: "Torrentler eklenirken hata oluştu",
            pending: "Torrentler gönderiliyor...",
            success: "{n} torrent eklendi | {n} torrent eklendi"
        },
        copy: {
            error: "Kopyalanamıyor, içerik güvenli değil!",
            success: "Panoya kopyalandı!"
        },
        magnet_handler: {
            not_supported: "Geçerli içerik güvenli değil. İşleyici kaydedilemiyor.",
            registered: "Magnet işleyicisi kaydedildi."
        },
        qbit: {
            not_supported: "Sadece qbit >= {version} için kullanılabilir"
        },
        version: {
            latest: "En son ve en iyi sürümü kullanıyorsunuz!",
            new: "Yeni sürüm mevcut!"
        }
    };
    I9 = {
        actions: {
            delete: "Torrentleri Sil",
            logs: "Günlükleri Aç",
            pause: "Torrentleri Duraklat",
            resume: "Torrentleri Devam Ettir",
            rssArticles: "RSS Makalelerini Aç",
            searchEngine: "Arama Motorunu Aç",
            settings: "Ayarları Aç"
        },
        addTorrents: "Torrent Ekle",
        overflow: {
            delete: "Sil",
            logs: "qBittorrent Günlükleri",
            pause: "Duraklat",
            resume: "Devam Et",
            rssArticles: "RSS Makaleleri",
            searchEngine: "Arama Motoru",
            settings: "Ayarlar"
        },
        searchTorrents: "Torrentleri ara"
    };
    z9 = {
        content: {
            fileInfo: "{n} dosya | {n} dosya",
            filter_placeholder: "Dosya ağacında ara",
            folderInfo: "{n} klasör | {n} klasör",
            priority: "Önceliği ayarla",
            rename: {
                bulk: "Toplu yeniden adlandırma",
                file: "Yeniden Adlandır",
                folder: "Klasörü Yeniden Adlandır"
            },
            rootNode: "(Kök)"
        },
        info: {
            boolean_values: "İkili değer",
            data_values: "Veri değerleri",
            datetime_values: "Tarih/Saat Değerleri",
            duration_values: "Süre Değerleri",
            long_text_values: "Uzun metin değerleri",
            speed_values: "Hız değerleri",
            text_values: "Metin değerleri"
        },
        overview: {
            canvasRefreshDisabled: "Kanvas otomatik yenileme devre dışı bırakıldı",
            canvasRenderDisabled: "Kanvas oluşturma devre dışı bırakıldı",
            copy_hash: "Hash'ı Kopyala",
            dlSpeedAverage: "İndirme Hızı Ortalaması",
            downloaded: "İndirilen",
            fetchingMetadata: "Alınıyor...",
            fileCount: "Seçili Dosyalar",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "Oran",
            selectedFileSize: "Seçili Dosyaların Boyutu",
            uploaded: "Yüklenen",
            upSpeedAverage: "Yükleme Hızı Ortalaması",
            waitingForMetadata: "Meta veri bekleniyor... "
        },
        peers: {
            addPeers: {
                newPeers: "Eklenecek eş hostları",
                newPeersHint: "Satır başına bir tane",
                newPeersPlaceholder: "IP:port",
                title: "Eşleri Ekle"
            },
            empty: "Şu anda bağlı eş yok",
            fields: {
                client: "İstemci",
                country: "Ülke",
                download: "İndirme",
                files: "Dosyalar",
                flags: "Bayraklar",
                host: "Sunucu",
                progress: "İlerleme",
                relevance: "Alaka Düzeyi",
                upload: "Yükleme"
            }
        },
        tabs: {
            content: "İçerik",
            info: "Bilgi",
            overview: "Genel Bakış",
            peers: "Eşler",
            tagsAndCategories: "Etiketler & Kategoriler",
            trackers: "İzleyiciler"
        },
        tagsAndCategories: {
            categories: "Kategoriler",
            tags: "Etiketler"
        },
        title: "Torrent Detayı",
        trackers: {
            addTrackers: {
                newTrackers: "Eklenecek İzleyici URL'leri",
                newTrackersHint: "Her satırda bir tane, katmanları boş bir satır ile ayırın",
                title: "İzleyicileri Ekle"
            },
            editTracker: {
                newUrl: "Yeni URL",
                newUrlRequired: "Yeni URL gereklidir",
                oldUrl: "Eski URL",
                title: "İzleyiciyi Düzenle"
            },
            fields: {
                num_downloaded: "İndirilen",
                num_peers: "Eşler",
                num_seeds: "Seedler"
            },
            reannounce: "Tümünü yeniden duyur",
            tier: "Seviye: {n} "
        }
    };
    N9 = {
        properties: {
            added_on: "Eklendiği Tarih",
            amount_left: "Kalan Miktar",
            auto_tmm: "Otomatik Torrent Yönetimi",
            availability: "Ulaşılabilirlik",
            available_peers: "Eşler (sürü)",
            available_seeds: "Seeds (swarm)",
            avg_download_speed: "Ortalama İndirme Hızı",
            avg_upload_speed: "Ortalama Yükleme Hızı",
            category: "Kategori",
            comment: "Yorum",
            completed_on: "Tamamlanma Tarihi",
            content_path: "İçerik Yolu",
            created_by: "Oluşturan",
            creation_date: "Oluşturulma tarihi",
            downloaded: "İndirilen (genel)",
            downloaded_session: "İndirilen (oturum)",
            download_limit: "İndirme Sınırı",
            download_path: "İndirme Yolu",
            download_speed: "İndirme Hızı",
            empty_category: "(kategori yok)",
            empty_tags: "(etiketsiz)",
            empty_tracker: "(çalışan izleyici yok)",
            eta: "TBS",
            f_l_piece_prio: "İlk / Son Parça Önceliği",
            forced: "Zorlanmış durum",
            global_speed: "Genel Hız",
            global_volume: "Genel Hacim",
            hash: "Hash",
            inactive_seeding_time_limit: "Etkin olmayan seeding süresi sınırı",
            infohash_v1: "Infohash v1",
            infohash_v2: "Infohash v2",
            is_private: "Özel torrent",
            last_activity: "Son Etkinlik",
            magnet: "Magnet Linki",
            name: "Torrent Başlığı",
            nb_connections: "Toplam bağlantılar",
            nb_connections_limit: "Bağlantı sınırı",
            num_leechs: "Eşler (bağlı)",
            num_seeds: "Seeds (bağlı)",
            peers: "Eşler",
            priority: "Kuyruk pozisyonu",
            progress: "İlerleme",
            progress_bar: "İlerleme Çubuğu",
            ratio: "Oran",
            ratio_limit: "Oran sınırı",
            reannounce: "Sonraki yeniden duyuru",
            save_path: "Kaydetme Yolu",
            seeding_time: "Seeding süresi",
            seeding_time_limit: "Seeding süre sınırı",
            seeds: "Seedler",
            seen_complete: "Tamamlanmış Görüldü",
            seq_dl: "Sıralı İndirme",
            size: "Boyut",
            state: "Durum",
            super_seeding: "Süper Seeding Modu",
            tags: "Etiketler",
            time_active: "Aktif Zaman",
            total_size: "Toplam Boyut",
            total_wasted: "Harcanan Veri",
            tracker: "İzleyici",
            trackers_count: "İzleyici Sayısı",
            uploaded: "Yüklenen (genel)",
            uploaded_session: "Yüklenen (oturum)",
            upload_limit: "Yükleme Sınırı",
            upload_speed: "Yükleme Hızı"
        },
        state: {
            checking_disk: "Disk dosyaları kontrol ediliyor",
            checking_resume_data: "Devam verisi kontrol ediliyor",
            dl_forced: "[F] İndiriliyor",
            dl_queued: "Sıraya Alındı (İndirme)",
            dl_stalled: "Durdu",
            downloading: "İndiriliyor",
            error: "Hata",
            forced_meta_download: "[F] Meta veri",
            meta_download: "Meta veri",
            missing_files: "Eksik Dosyalar",
            moving: "Taşınıyor",
            ul_forced: "[F] Yükleniyor",
            ul_queued: "Sıraya Alındı (Yükleme)",
            ul_stalled: "Seeding",
            unknown: "Bilinmeyen",
            uploading: "Yükleniyor"
        }
    };
    O9 = {
        minutes: "dakika | dakika | dakika",
        seconds: "saniye | saniye | saniye"
    };
    H9 = {
        common: C9,
        constants: A9,
        dashboard: D9,
        dialogs: T9,
        login: E9,
        logs: _9,
        navbar: P9,
        rssArticles: B9,
        searchEngine: M9,
        settings: R9,
        toast: L9,
        topbar: I9,
        torrentDetail: z9,
        torrent: N9,
        units: O9
    };
    V9 = {
        cancel: "Скасувати",
        close: "Закрити",
        delete: "Видалити",
        disable: "Вимкнути",
        disabled: "Вимкнуто",
        edit: "Редагувати",
        emptyList: "Тут досі нічого немає!",
        global_value: "Глобальні значення",
        NA: "Недоступно",
        no: "Ні",
        none: "(Немає)",
        ok: "Гаразд",
        pause: "Пауза",
        refresh: "Оновити",
        resume: "Відновити",
        save: "Зберегти",
        search: "Пошук",
        selectAll: "Виділити все",
        selectNone: "Зняти виділення",
        useGlobalSettings: "Використовувати глобальні налаштування",
        yes: "Так"
    };
    W9 = {
        addStopped: {
            always: "Завжди",
            never: "Ніколи",
            title: "Додати призупинені"
        },
        auto_delete_mode: {
            always: "Завжди",
            never: "Ніколи"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP та μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "Підключено",
            disconnected: "Відключено",
            firewalled: "Захищено",
            unknown: "Невідомо"
        },
        contentLayout: {
            nosubfolder: "Видалити підпапку",
            original: "Поточний",
            subfolder: "Створити підпапку",
            title: "Як є"
        },
        diskIoMode: {
            disableOsCache: "Вимкнути кеш ОС",
            enableOsCache: "Ввімкнути кеш ОС",
            writeThrough: "Наскрізний запис (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "По замовчуванню",
            memoryMappedFiles: "Файли розмітки пам'яті",
            posixCompliant: "POSIX-сумісні"
        },
        encryption: {
            forceOff: "Вимкнути шифрування",
            forceOn: "Вимагає шифрування",
            preferEncryption: "Дозволити шифрування"
        },
        file_log_age_type: {
            days: "День | Дня | Днів",
            months: "Місяць| Місяці | Місяців",
            years: "Рік | Роки | Років"
        },
        file_priority: {
            high: "Високий",
            max: "Максимальний",
            mixed: "Змішаний",
            normal: "Нормальний",
            unwanted: "Низький"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "Шлях збереження за замовчування",
            monitoredFolder: "Тека, яка відслідковується",
            other: "Інше"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "Кожен день",
            everyFriday: "Кожну п'ятницю",
            everyMonday: "Кожен понеділок",
            everySaturday: "Кожну суботу",
            everySunday: "Кожну неділю",
            everyThursday: "Кожен четвер",
            everyTuesday: "Кожен вівторок",
            everyWednesday: "Кожну середу",
            everyWeekday: "По будням",
            everyWeekend: "По вихідним"
        },
        shareLimitAction: {
            removeTorrent: "Видалити торрент",
            removeTorrentAndFiles: "Видалити торрент та файли",
            stopTorrent: "Зупинити торрент",
            torrentSuperseeding: "Увімкнути суперсід для цього торренту"
        },
        stopCondition: {
            filesChecked: "Файлів перевірено",
            metadataReceived: "Метадані отримано",
            none: "Немає",
            title: "Умови зупинки торренту"
        },
        themes: {
            dark: {
                legacy: "Застаріла",
                redesigned: "Оновлена"
            },
            light: {
                legacy: "Застаріла",
                redesigned: "Оновлена"
            }
        },
        titleOptions: {
            custom: "Користувацькі",
            default: "По замовчуванню",
            first_torrent_speed: "Швидкість першого торренту",
            global_speed: "Загальна швидкість"
        },
        trackerStatus: {
            disabled: "Вимкнуто",
            not_working: "Не працюють",
            not_yet_contacted: "Не було зв'язку",
            updating: "Оновлюється",
            working: "Працює"
        },
        uploadChokingAlgorithm: {
            antiLeech: "Анти-ліч",
            fastestUpload: "Примусова роздача",
            roundRobin: "Збалансований"
        },
        uploadSlotsBehavior: {
            fixedSlots: "Фіксовані слоти",
            uploadRateBased: "Роздача на основі швидкості"
        },
        utpTcpMixedMode: {
            peerProportional: "Пропорційно до пірів (обмежує TCP) ",
            preferTcp: "Надавати перевагу TCP"
        }
    };
    G9 = {
        displayMode: {
            grid: "Сітка",
            list: "Список",
            table: "Таблиця",
            title: "Режим відображення"
        },
        not_complete: "Не було завершено",
        right_click: {
            advanced: {
                auto_tmm: "Автоматичне управління торрентами",
                download_path: "Встановити шлях завантаження",
                f_l_prio: "Пріоритет першої/останньої частини",
                reannounce: "Примусове повторне оголошення",
                recheck: "Примусова перевірка",
                rename: "Перейменувати торрент",
                save_path: "Встановити шлях збереження",
                seq_dl: "Послідовне завантаження",
                title: "Розширені"
            },
            category: {
                clear: "(Очистити категорію)",
                disabled_title: "Без категорій",
                title: "Встановити категорію"
            },
            copy: {
                hash: "Хеш",
                magnet: "Магнет",
                name: "Назва",
                title: "Копіювати"
            },
            export: "Експортувати торрент | Експортувати торренти",
            info: "Показати інформацію",
            priority: {
                bottom: "Донизу",
                decrease: "Зменшити",
                increase: "Збільшити",
                title: "Встановити позицію в черзі",
                top: "Нагору"
            },
            speed_limit: {
                download: "Встановіть ліміт завантаження",
                share: "Встановити ліміт частки",
                title: "Встановити обмеження швидкості",
                upload: "Встановити ліміт роздачі"
            },
            tags: {
                clear_all: "Видалити все",
                disabled_title: "Без тегів",
                title: "Встановити теги"
            },
            top: {
                delete: "Видалити",
                force_resume: "Примусове відновлення",
                pause: "Пауза",
                resume: "Відновити"
            }
        },
        searchInputLabel: "Пошук",
        selectAll: "(Скасувати)виділити все (Ctrl + A)",
        selectedTorrentsCount: "Немає торрента | {count} з {total} торентів ({size}) | {count} з {total} торентів ({size})",
        sortLabel: "Сортувати за",
        toggleSearchFilter: "Перемкнути фільтр пошуку",
        toggleSelectMode: "Перемкнути режим вибору",
        toggleSortOrder: "Зворотній порядок сортування",
        torrentsCount: "Без торрента | {n} торренти | {n} торрентів"
    };
    $9 = {
        add: {
            cookie: "Куки",
            cookie_placeholder: "name1=value1; name2=value2; ...",
            drop_label: "Перетягніть торрент-файли або посилання сюди",
            file_overflow: "+ {n} більше"
        }
    };
    U9 = {
        side: {
            filters: {
                state: {
                    active: "Активні",
                    error: "Збій"
                }
            },
            speed_graph: {
                upload_limit_label: "Ліміт роздачі"
            }
        }
    };
    j9 = {
        properties: {
            avg_download_speed: "Середня швидкість завантаження",
            avg_upload_speed: "Середня швидкість роздачі",
            seeding_time: "Час сідування",
            seeding_time_limit: "Обмеження часу сідування"
        },
        state: {
            checking_resume_data: "Перевірка для відновлення",
            dl_forced: "[Ф] Завантаження",
            dl_queued: "В черзі (ЗВ)",
            dl_stalled: "Завис",
            downloading: "Завантаження",
            error: "Збій",
            forced_meta_download: "[Ф] Метадані",
            meta_download: "Метадані",
            missing_files: "Файли відсутні",
            moving: "Переміщаю..",
            ul_forced: "[Ф] Роздача",
            ul_queued: "В черзі (РД)",
            ul_stalled: "Сідування",
            unknown: "Невідомо",
            uploading: "Роздача"
        }
    };
    Y9 = {
        minutes: "хвилина | хвилини | хвилин",
        seconds: "секунда | секунди | секунд"
    };
    q9 = {
        common: V9,
        constants: W9,
        dashboard: G9,
        dialogs: $9,
        navbar: U9,
        torrent: j9,
        units: Y9
    };
    K9 = "由Tolgee生成。切勿手动修改否则将被覆盖";
    X9 = {
        auto: "自动",
        cancel: "取消",
        close: "关闭",
        delete: "删除",
        disable: "禁用",
        disabled: "已禁用",
        edit: "编辑",
        emptyList: "当前无内容显示",
        global_value: "全局设置",
        NA: "不适用",
        no: "否",
        none: "(无)",
        ok: "确定",
        pause: "暂停",
        refresh: "刷新",
        resume: "恢复",
        save: "保存",
        search: "搜索",
        selectAll: "全选",
        selectNone: "取消选择",
        useGlobalSettings: "使用全局设置",
        yes: "是"
    };
    J9 = {
        addStopped: {
            always: "总是",
            never: "从不",
            title: "添加时暂停"
        },
        auto_delete_mode: {
            always: "总是",
            never: "从不"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP 和 μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "已连接",
            disconnected: "未连接",
            firewalled: "防火墙限制",
            unknown: "未知"
        },
        contentLayout: {
            nosubfolder: "移除子文件夹",
            original: "原始格式",
            subfolder: "创建子文件夹",
            title: "种子内容布局"
        },
        diskIoMode: {
            disableOsCache: "禁用系统缓存",
            enableOsCache: "启用系统缓存",
            writeThrough: "同步写入模式 (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "默认",
            memoryMappedFiles: "文件映射",
            posixCompliant: "兼容POSIX"
        },
        encryption: {
            forceOff: "禁用加密",
            forceOn: "强制加密",
            preferEncryption: "允许加密"
        },
        file_log_age_type: {
            days: "天",
            months: "月",
            years: "年"
        },
        file_priority: {
            high: "高",
            max: "最高",
            mixed: "混合",
            normal: "正常",
            unwanted: "不需要"
        },
        filter_type: {
            conjunctive: "结合过滤器（与）",
            disjunctive: "选择过滤器（或）"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "默认保存路径",
            monitoredFolder: "监控文件夹位置",
            other: "其他"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "每天",
            everyFriday: "周五",
            everyMonday: "周一",
            everySaturday: "周六",
            everySunday: "周日",
            everyThursday: "周四",
            everyTuesday: "周二",
            everyWednesday: "周三",
            everyWeekday: "工作日",
            everyWeekend: "周末"
        },
        shareLimitAction: {
            removeTorrent: "移除种子",
            removeTorrentAndFiles: "移除种子及其文件",
            stopTorrent: "暂停种子",
            torrentSuperseeding: "启用超级做种模式"
        },
        stopCondition: {
            filesChecked: "文件校验完成",
            metadataReceived: "元数据接收完成",
            none: "无",
            title: "种子停止条件"
        },
        themes: {
            dark: {
                legacy: "旧版",
                redesigned: "重绘版"
            },
            light: {
                legacy: "旧版",
                redesigned: "重绘版"
            }
        },
        titleOptions: {
            custom: "自定义",
            default: "默认",
            first_torrent_speed: "首个种子速度",
            global_speed: "全局速度"
        },
        torrentContentRemovingMode: {
            delete: "永久删除文件",
            moveToTrash: "将文件移至回收站（如果可能）"
        },
        torrentCreatorTaskStatus: {
            failed: "失败",
            finished: "已完成",
            queued: "排队中",
            running: "运行中"
        },
        torrentFormat: {
            hybrid: "混合",
            v1: "V1",
            v2: "V2"
        },
        trackerStatus: {
            disabled: "已禁用",
            not_working: "未工作",
            not_yet_contacted: "未连接",
            updating: "正在更新",
            working: "正常工作"
        },
        uploadChokingAlgorithm: {
            antiLeech: "反吸血",
            fastestUpload: "最快上传",
            roundRobin: "轮流上传"
        },
        uploadSlotsBehavior: {
            fixedSlots: "固定窗口数",
            uploadRateBased: "最快上传"
        },
        utpTcpMixedMode: {
            peerProportional: "按用户比重 (抑制TCP)",
            preferTcp: "优先使用 TCP"
        }
    };
    Z9 = {
        displayMode: {
            grid: "网格",
            list: "列表",
            table: "表格",
            title: "显示模式"
        },
        not_complete: "从未完整可见",
        right_click: {
            advanced: {
                auto_tmm: "自动种子管理（ATM）",
                download_path: "设置下载路径",
                f_l_prio: "首/尾优先级",
                reannounce: "强制重新汇报",
                recheck: "强制重新校验",
                rename: "重命名种子",
                save_path: "设置保存路径",
                seq_dl: "顺序下载",
                title: "高级"
            },
            category: {
                clear: "(清除分类)",
                disabled_title: "无分类",
                title: "设置分类"
            },
            copy: {
                comment: "注释",
                hash: "哈希值",
                magnet: "磁力链接",
                name: "名称",
                title: "复制"
            },
            export: "导出种子 | 导出种子",
            info: "显示信息",
            priority: {
                bottom: "最低优先级",
                decrease: "降低优先级",
                increase: "提高优先级",
                title: "设置优先级",
                top: "最高优先级"
            },
            speed_limit: {
                download: "下载限速",
                share: "分享率限制",
                title: "设置种子限制",
                upload: "上传限速"
            },
            tags: {
                clear_all: "移除全部",
                disabled_title: "无标签",
                title: "设置标签"
            },
            top: {
                delete: "删除",
                force_resume: "强制继续",
                pause: "暂停",
                resume: "继续"
            }
        },
        searchInputLabel: "搜索",
        selectAll: "(取消)全选 (Ctrl + A)",
        selectedTorrentsCount: "无种子 | {count} / {total} 个种子 ({size}) | {count} / {total} 个种子 ({size})",
        sortLabel: "排序方式",
        toggleSearchFilter: "切换搜索过滤器",
        toggleSelectMode: "切换选择模式",
        toggleSortOrder: "反转排序",
        torrentsCount: "无种子 | {n} 个种子 | {n} 个种子"
    };
    Q9 = {
        add: {
            cookie: "Cookie",
            cookie_placeholder: "name1=value1; name2=value2; ...",
            drop_label: "将种子文件和链接拖到此处",
            file_overflow: "+{n} 个",
            files: "选择(多个)文件",
            first_last_piece_prio: "优先下载首尾块",
            instant_drop_label: "立即开始下载",
            links: "链接 (磁力, http, 文件链接等)",
            params: {
                add_to_top_of_queue: "添加到队列首位",
                category: "分类",
                download_limit: "下载速度限制",
                download_path: "下载路径（未完成时）",
                inactive_seeding_time_limit: "非活跃做种时长限制",
                limit_collapse: "种子限制设置",
                limit_hint: '"-1"表示禁用，"-2"或留空为使用全局设置',
                no_categories: "暂无分类。输入名称创建一个。",
                no_categories_match: '没有匹配 "{query}" 的分类。将自动创建。',
                no_tags: "暂无标签。输入名称创建一个。",
                no_tags_match: '没有匹配 "{query}" 的标签。按 Enter 键创建。',
                ratio_limit: "分享率限制",
                save_path: "保存路径（完成时）",
                seeding_time_limit: "做种时长限制",
                skip_checking: "跳过哈希校验",
                stopped: "不立即开始下载",
                tags: "标签",
                title: "种子参数",
                upload_limit: "上传速度限制",
                use_auto_tmm: "自动种子管理（ATM）"
            },
            rename: "重命名种子文件",
            reset_form: "重置表格",
            sequential_download: "顺序下载",
            submit: "添加种子",
            title: "添加种子"
        },
        bulkRenameFiles: {
            col_origin_name: "原名称",
            col_result_name: "结果",
            duplicated: "重复的文件名",
            flags: "标签",
            fold: "折叠",
            not_changed: "文件名未变更",
            notForFolder: "不支持文件夹重命名",
            nothing_to_do: "无待执行任务",
            regexp: "正则表达式",
            run: "执行",
            select_regex_flags: "选择正则表达式标识",
            success: "成功重命名",
            target: "替换成",
            title: "批量重命名",
            unfold: "展开"
        },
        category: {
            name: "分类名称",
            nameRequired: "分类名称不能为空",
            oldName: "旧分类名称",
            savePath: "保存路径",
            title: {
                create: "创建分类",
                edit: "编辑分类"
            },
            warnEdit: `编辑分类名称将会将种子迁移到新分类。
可能会出现错误，请谨慎使用。`
        },
        connectionStatus: {
            dht_nodes: "DHT 节点",
            externalIp: "外部 IP 地址",
            fetch_geo_failed: "无法获取地理位置信息",
            fetch_isp_failed: "无法获取ISP信息",
            geo_details: "地理位置信息",
            isp_details: "ISP信息",
            noExternalIp: "无法从日志中识别",
            status: "连接状态",
            total_peer_connections: "活跃的用户连接"
        },
        delete: {
            deleteWithFiles: "删除种子及其文件",
            title: "删除 {n} 个种子 | 删除 {n} 个种子",
            warnDelete: "勾选此复选框将删除这些种子中包含的所有内容"
        },
        importSettings: {
            required: "必须提供设置",
            title: "导入设置",
            valid: "请提供有效的设置"
        },
        moveTorrent: {
            dl: {
                title: "更改下载路径"
            },
            newPath: "新路径",
            oldPath: "旧路径",
            required: "新路径不能为空",
            samePath: "新路径必须与旧路径不同",
            save: {
                title: "更改保存路径"
            }
        },
        moveTorrentFile: {
            oldName: "旧名称",
            title: "移动种子文件 | 移动种子文件夹"
        },
        pluginManager: {
            headers: {
                actions: "操作",
                enabled: "已启用",
                name: "名称",
                url: "引擎 URL",
                version: "版本"
            },
            install: {
                activator: "安装新插件",
                label: "插件 URL",
                title: "安装插件"
            },
            title: "插件管理器",
            update: "更新插件"
        },
        renameTorrent: {
            newName: "新名称",
            oldName: "旧名称",
            required: "新名称不能为空",
            sameName: "新名称必须与旧名称不同",
            title: "重命名种子"
        },
        rss: {
            feed: {
                name: "名称",
                rules: {
                    name_required: "订阅名称不能为空",
                    url_required: "订阅 URL 不能为空"
                },
                title: {
                    create: "创建 RSS 订阅源",
                    edit: "编辑 RSS 订阅源"
                },
                url: "URL"
            },
            rule: {
                addStopped: "添加时暂停",
                affectedFeedsSubheader: "受影响的订阅源",
                assignedCategory: "分配的分类",
                enabled: "启用规则",
                episodeFilter: "剧集过滤器",
                episodeFilterPlaceholder: "例如: S01E02-S01E05",
                ignoreDays: "忽略在过去 {days} 天内发布的内容",
                ignoreDaysHint: "0 表示禁用",
                lastMatch: {
                    knownValue: "今天 | {n} 天前 | {n} 天前",
                    label: "上次匹配",
                    unknownValue: "未知"
                },
                matchingArticles: {
                    noMatch: "没有匹配的文章",
                    title: "匹配的文章"
                },
                mustContain: "必须包含",
                mustNotContain: "不能包含",
                name: "名称",
                savePath: "保存路径",
                savePathPlaceholder: "留空以使用默认保存路径",
                smartFilter: "使用智能剧集过滤器",
                title: {
                    create: "创建 RSS 规则",
                    edit: "编辑 RSS 规则"
                },
                useRegex: "使用正则表达式"
            }
        },
        share_limit: {
            disabled: "设置为无分享限制",
            enabled: "设置分享限制为",
            global: "使用全局分享限制",
            inactive_seeding_time_limit: "非活跃时长 (分钟)",
            ratio_limit: "分享率",
            seeding_time_limit: "总做种时长 (分钟)",
            title: "设置分享率限制"
        },
        shutdown: {
            content: "您确定要关闭 qBittorrent 吗？",
            error: "无法关闭应用程序。请确保 qBittorrent 正在运行！",
            success: "qBittorrent 已成功关闭！",
            title: "关闭 qBittorrent"
        },
        speed_limit: {
            download: "设置下载速度限制",
            label: "速度限制",
            upload: "上传限速"
        },
        tag: {
            comma: "重命名标签时名称不能包含逗号",
            hint: "专业提示：多个标签可以用逗号分隔创建",
            name: "标签名称",
            oldName: "旧标签名称",
            required: "标签名称不能为空",
            title: {
                create: "创建标签",
                rename: "重命名标签"
            },
            warnEdit: `编辑标签名称将会将种子迁移到新标签。
可能会出现错误，请谨慎使用。`
        },
        torrentCreator: {
            actions: {
                submit: "运行创建任务"
            },
            comment: "注释",
            format: "种子格式",
            optimizeAlignment: "优化对齐",
            paddedFileSizeLimit: "对大于此大小的文件对齐到片段边界",
            paddedFileSizeLimitHint: "-1 表示禁用",
            paddedFileSizeLimitRule: "值必须为正数",
            pieceSize: "分片大小",
            private: "私有种子（不会在DHT网络上分发）",
            rules: {
                outputFileExtension: "输出路径必须以 .torrent 结尾",
                sourcePathRequired: "必须填写源路径"
            },
            sourcePath: "要包含在 torrent 中的文件",
            startSeeding: "立即开始做种",
            title: "创建新任务",
            torrentFilePath: "已创建的种子文件目标位置",
            trackers: "Tracker URL",
            trackersHint: "您可以使用空行分隔Tracker层级/组",
            urlSeeds: "Web种子URL"
        }
    };
    eV = {
        error: "登录失败！",
        password: "密码",
        pending: "正在检测身份验证状态...",
        rules: {
            password_required: "密码不能为空",
            username_required: "用户名不能为空"
        },
        submit: "登录",
        subtitle: "输入您的凭据",
        success: "登录成功！",
        title: "登录",
        username: "用户名"
    };
    tV = {
        emptyLogList: "未找到日志",
        filters: {
            query: "在日志信息中搜索",
            type: "日志级别"
        },
        title: "qBittorrent 日志"
    };
    aV = {
        addPanel: {
            torrentsPendingCount: "{n} 个种子等待上传 | {n} 个种子等待上传"
        },
        side: {
            bottom_actions: {
                alt_speed: "切换备用速度",
                conn_status: "连接状态：{status}",
                logout: "注销",
                shutdown: "关闭 qBittorrent"
            },
            current_speed: {
                title: "当前速度"
            },
            filters: {
                activeFilter: "已激活 {n} 个过滤器",
                category: {
                    empty: "(未分类)",
                    title: "分类过滤器"
                },
                disabled: "(已禁用)",
                state: {
                    active: "活跃",
                    error: "错误",
                    offline: "离线",
                    title: "种子状态过滤器"
                },
                tag: {
                    empty: "(无标签)",
                    title: "标签过滤器"
                },
                tracker: {
                    empty: "(未跟踪)",
                    title: "Tracker 过滤器"
                }
            },
            speed_graph: {
                download_label: "下载",
                download_limit_label: "下载速度限制",
                upload_label: "上传",
                upload_limit_label: "上传速度限制"
            },
            stats: {
                alltime: {
                    title: "全局统计数据"
                },
                downloaded: "已下载",
                free_space: "剩余空间",
                ratio: "分享率",
                session: {
                    title: "本次会话统计"
                },
                uploaded: "已上传"
            }
        },
        top: {
            active_filters: {
                category: "分类过滤器：{value}",
                menu_label: "已激活过滤器：{n} | 已激活过滤器：{n}",
                multiple_category: "分类过滤器: {n} 个类别",
                multiple_state: "状态过滤器: {n} 个状态",
                multiple_tag: "标签过滤器: {n} 个标签",
                multiple_tracker: "Tracker 过滤器: {n} Trackers",
                state: "状态过滤器: {value}",
                tag: "标签过滤器：{value}",
                text: "文本过滤器：{value}",
                tracker: "Tracker 过滤器：{value}"
            }
        }
    };
    rV = {
        feeds: {
            empty: {
                action: "创建 RSS 订阅源",
                value: "未注册任何 RSS 订阅源"
            },
            filters: {
                title: "标题过滤器",
                unread: "仅显示未读文章"
            },
            item: {
                author: "作者：{author}",
                category: "分类：{category}",
                feedName: "订阅源名称：{name}"
            },
            markAllAsRead: "全部标记为已读",
            markAsRead: "标记为已读",
            promise: {
                error: "标记文章时出错",
                pending: "标记中... ",
                success: "{n}篇文章已标记为已读"
            },
            refreshAllFeeds: "刷新所有订阅",
            refreshPromise: {
                error: "刷新订阅信息时出现错误",
                pending: "刷新中...",
                success: "{n} 条订阅信息已刷新"
            },
            title: "RSS 资讯"
        },
        rules: {
            empty: {
                action: "创建 RSS 规则",
                value: "未设置RSS规则"
            },
            title: "RSS规则"
        },
        toggle: {
            feeds: "展示订阅消息",
            rules: "展示订阅规则"
        }
    };
    nV = {
        filters: {
            category: {
                all: "全部",
                anime: "动漫",
                books: "图书",
                games: "游戏",
                label: "搜索分类",
                movies: "电影",
                music: "音乐",
                pictures: "图片",
                software: "软件",
                tv: "电视剧"
            },
            plugins: {
                all: "全部",
                enabled: "已启用",
                label: "搜索插件"
            },
            title: {
                label: "按标题过滤"
            }
        },
        headers: {
            engineName: "引擎名称",
            fileName: "文件名",
            fileSize: "文件大小",
            nbLeechers: "下载数",
            nbSeeders: "做种数",
            pubDate: "发布日期",
            siteUrl: "站点链接"
        },
        query: "搜索关键词",
        runSearch: "搜索",
        stopSearch: "停止",
        tabHeaderEmpty: "(空查询)",
        title: "搜索种子"
    };
    iV = JSON.parse('{"addons":{"enhanced_edition":{"auto_ban_bt_player_peer":"自动屏蔽BT用户","auto_ban_unknown_peer":"自动屏蔽未知用户","auto_update_trackers":"自动更新公共Trackers列表","public_trackers":"公共Trackers","trackers_list_url":"自定义Trackers链接列表"}},"advanced":{"libtorrent":{"announceAllTiers":"总是向所有等级的 Tracker 汇报","announceAllTrackers":"总是向同级的所有 Tracker 汇报","announceIP":"向 Tracker 报告的 IP 地址 (需要重启)","coalesceReadsWrites":"合并读写 (libtorrent < 2.0)","dhtBootstrapNodes":"DHT 引导节点","dhtBootstrapNodesHint":"留空则重置为默认值","disk":{"diskCache":"磁盘缓存 (libtorrent < 2.0)","diskCacheExpiry":"磁盘缓存过期时间间隔 (libtorrent < 2.0)","diskIoReadMode":"磁盘 IO 读取模式","diskIoType":"磁盘 IO 类型 (libtorrent >= 2.0; 需要重启)","diskIoWriteMode":"磁盘 IO 写入模式","diskQueueSize":"磁盘队列大小","subheader":"磁盘"},"i2p":{"inboundLength":"I2P 入站长度","inboundQuantity":"I2P 入站会话数","invalidLength":"I2P 出入站长度必须介于 0 和 7 之间","invalidQuantity":"I2P 会话数必须介于 1 和 16 之间","outboundLength":"I2P 出站长度","outboundQuantity":"I2P 出站会话数","restartNeeded":"对这些设置的任何更改将在下次重新建立SAM连接时生效（通过重新启动I2P或更改I2P地址或端口）"},"maxConcurrentHTTPAnnounces":"最大并行 HTTP 发布数","networking":{"outgoingPortsMax":"传出端口 (上限) [0：禁用]","outgoingPortsMin":"传出端口 (下限) [0：禁用]","peerTos":"与 Peers 连接的服务类型 (ToS)","subheader":"网络","upnpLeaseDuration":"UPnP 租期 [0：永久]","utpTcpMixedModeAlgorithm":"μTP-TCP 混合模式策略"},"outgoingConnectionsPerSecond":"每秒传出连接数","peerTurnover":"Peer 进出断开百分比","peerTurnoverCutoff":"Peer 进出阈值百分比","peerTurnoverInterval":"Peer 进出断开间隔","pieceExtentAffinity":"启用相连文件块下载模式","requestQueueSize":"单一 Peer 的最大未完成请求","security":{"allowMultipleConnectionsFromTheSameIPAddress":"允许来自同一 IP 地址的多个连接","blockPeersOnPrivilegedPorts":"禁止连接到特权端口上的 Peer","idnSupport":"启用国际化域名 (IDN) 支持","mitigateSSRF":"服务器端请求伪造 (SSRF) 缓解","subheader":"安全","validateHTTPSTrackerCertificate":"验证 HTTPS Tracker 证书"},"sendBufferLowWatermark":"发送缓冲区下限","sendBufferWatermark":"发送缓冲区上限","sendBufferWatermarkFactor":"发送缓冲区增长系数","sendUploadPieceSuggestions":"发送分块上传建议","socketBacklogSize":"Socket backlog 大小","socketReceiveBufferSize":"套接字接收缓冲区大小","socketReceiveBufferSizeHint":"0：系统默认","socketSendBufferSize":"套接字发送缓冲区大小","socketSendBufferSizeHint":"0：系统默认","ssl":{"disclaimer":"“SSL torrent”功能尚未标准化，没有与之相关的BEP（BitTorrent增强提案）。\\n仅在需要时启用此功能。","enabled":"启用SSL种子","listenPort":"用于 SSL 连接的端口","listenPortHint":"留空则自动选择","rule":"端口必须介于 0 和 65535 之间"},"stopTrackerTimeout":"Tracker 停止超时","subheader":"libtorrent 部分","threads":{"asyncIoThreads":"异步 I/O 线程","bdecodeDepthLimit":"Bdecode 深度限制","bdecodeTokenLimit":"Bdecode 令牌限制","filePoolSize":"文件池大小","hashingThreads":"哈希校验线程数 (libtorrent >= 2.0)","outstandingMemory":"校验时内存使用扩增量","subheader":"线程"},"uploadChokingAlgorithm":"上传连接策略","uploadSlotsBehavior":"上传窗口策略"},"openDoc":"打开文档","qbittorrent":{"allocatedRam":"物理内存 (RAM) 使用限制 (libtorrent >= 2.0)","appInstanceName":"应用程序实例名称","embeddedTracker":{"enable":"启用内置 Tracker","port":"内置 Tracker 端口","portForward":"对内置 Tracker 启用端口转发","title":"内置 Tracker"},"enableMarkOfTheWeb":"为下载的文件启用网络标记 (MOTW)","enableMarkOfTheWebHint":"需要 macOS 或 Windows","networking":{"ipAddress":{"all":"所有地址","allIPv4":"所有 IPv4 地址","allIPv6":"所有 IPv6 地址","label":"绑定的可选 IP 地址"},"networkInterfaces":{"any":"任意接口","label":"网络接口"},"title":"网络"},"pythonExecutablePath":"Python 可执行文件路径","pythonExecutablePathHint":"留空则自动检测，需要重启","reannounceOnIpPortChanged":"当 IP 或端口变更时重新向所有 Tracker汇报","recheckOnCompletion":"完成后重新校验种子","refreshInterval":"界面刷新间隔","resolveCountries":"解析用户所在国家","resumeDataStorageType":{"label":"恢复数据存储类型 (需重新启动)","legacy":"快速恢复文件","sqlite":"SQLite 数据库 (试验性)"},"saveInterval":"保存恢复数据间隔","subheader":"qBittorrent 部分","torrentContentRemovingMode":"种子内容删除模式","torrentFileSizeLimit":".torrent 文件大小限制"}},"behavior":{"logs":{"file_log_age":"删除早于以下时间的日志备份","file_log_backup_enabled":"启用日志备份","file_log_delete_old":"删除旧日志备份","file_log_enabled":"启用日志文件","file_log_max_size":"当文件大小达到以下值触发备份","file_log_path":"保存路径","subheader":"日志管理"},"performance_warning":"记录性能警告"},"bittorrent":{"autoAddTrackers":"自动将这些 Tracker 添加到新下载","autoAddTrackersHint":"每行一个 Tracker","maxActiveCheckingTorrents":"最大活跃校验种子数","privacy":{"enableAnonymous":"启用匿名模式","enableDHT":"启用 DHT (去中心化网络) 以找到更多用户","enableLPD":"启用本地用户发现以找到更多用户","enablePeX":"启用用户交换 (PeX) 以找到更多用户","encryptionMode":"加密模式","moreInfo":"更多信息","subheader":"隐私"},"seedLimits":{"subheader":"做种限制","then":"随后","whenInactiveSeedingTimeReaches":"当非活跃做种时长达到","whenRatioReaches":"当分享率达到","whenSeedingTimeReaches":"当做种时长达到"},"torrentQueueing":{"downloadRateLimit":"下载速率阈值","excludeSlowTorrent":"在这些限制中不计算慢速种子","maxActiveDownload":"最大活跃下载数","maxActiveTorrent":"最大活跃种子数","maxActiveUpload":"最大活跃上传数","subheader":"种子队列","torrentInactivityTimer":"种子非活跃计时器","uploadRateLimit":"上传速率阈值"}},"connection":{"connectionLimits":{"globalMaxConnection":"全局最大连接数","globalMaxUploadSlots":"全局最大上传数","perTorrentMaxConnection":"每个种子的最大连接数","perTorrentMaxUploadSlots":"单个种子最大上传数","subheader":"连接限制"},"i2p":{"address":"I2P 主机","disclaimer":"如果启用了“混合模式”，I2P种子将被允许从跟踪器以外的其他来源获取对等体，并连接到常规IP，不提供任何匿名化。如果用户对I2P的匿名化不感兴趣，但仍希望能够连接到I2P对等体，这可能会很有用。","enabled":"启用 I2P","mixedMode":"混合模式","port":"端口","rule":"端口必须介于 0 和 65535 之间","subheader":"I2P（实验性）"},"ipFiltering":{"applyToTrackers":"应用于 Tracker","bannedIps":"手动禁止的 IP 地址","bannedIpsHint":"每行一个","filterPath":"过滤器路径 (.dat、.p2p、.p2b)","subheader":"IP 过滤"},"listeningPort":{"incomingConnectionPort":"用于传入连接的端口","randomPort":"随机端口","subheader":"监听端口","useUPnP":"使用 UPnP / NAT-PMP 端口转发"},"protocol":"Peer连接协议","proxy":{"auth":{"password":"密码","subtitle":"身份验证","tip":"注意：密码将以未加密形式保存","username":"用户名"},"bittorrent":"为BitTorrent进程启用代理","host":"主机","hostNameLookup":"为主机名查找启用代理","misc":"为常规进程启用代理 (如更新, 搜索)","peerConnections":"为用户对等连接启用代理","port":"端口","rss":"为RSS订阅启用代理","subheader":"代理服务器"}},"downloads":{"excludedFileNames":{"hint":"每行一个过滤器","label":"排除的文件名"},"mailNotification":{"authEnabled":"身份验证","enabled":"下载完成后发送电子邮件通知","from":"发件人","password":"密码","smtpServer":"SMTP 服务器","sslEnabled":"此服务器需要安全连接 (SSL)","test":{"error":"邮件发送失败\\n{message}","label":"发送测试邮件","success":"测试邮件已发送！\\n请检查您的收件箱以确认配置成功"},"to":"收件人","username":"用户名"},"monitoredFolders":{"actions":"操作","confirmDelete":"确定要删除此项目吗？","editItem":"编辑","monitoredFolderPath":"监视文件夹","newItem":"新建","noData":"暂无监视文件夹","otherPath":"其他路径","saveType":"覆盖保存位置","subheader":"监视文件夹"},"publicSettings":{"appendQBExtension":"为未完成的文件添加 .!qB 后缀名","preAllocateDisk":"为所有文件预分配磁盘空间","useUnwantedFolder":"将未选择的文件保存在“.unwanted”文件夹中"},"runExternalProgram":{"onAddedEnabled":"添加种子时运行外部程序：","onAddedLabel":"命令","onFinishedEnabled":"种子下载完成时运行外部程序：","onFinishedLabel":"命令","subheader":"运行外部程序","supportParamC":"%C：文件数","supportParamD":"%D：保存路径","supportParamF":"%F：内容路径 (多文件种子的根路径相同)","supportParamG":"%G：标签 (用逗号分隔)","supportParamI":"%I：哈希值 v1","supportParamJ":"%J：哈希值 v2","supportParamK":"%K：种子 ID","supportParamL":"%L：分类","supportParamN":"%N：种子名称","supportParamR":"%R：根路径 (第一个种子子目录路径)","supportParamT":"%T：当前 Tracker","supportParamTitle":"支持的参数 (区分大小写)：","supportParamZ":"%Z：种子大小 (字节)","tip":"提示：使用引号将参数封装起来，以避免文本在空格处被截断 (例如，\\"%N\\")"},"saveManagement":{"autoTMMEnabled":"默认种子管理模式","categoryChangedTMM":"当分类保存路径更改时","defaultSavePath":"默认保存路径（完成时）","defaultTMMOptions":{"automatic":"自动","manual":"手动"},"exportDir":"将 .torrent 文件复制到","exportDirFinished":"将已完成下载的 .torrent 文件复制到","keepIncomplete":"默认下载路径（未完成的种子）","paramChangedTMMOptions":{"relocateTorrent":"重新定位种子","switchToManual":"将种子切换到手动模式"},"savePathChangedTMM":"当默认保存路径更改时","subheader":"保存管理","torrentChangedTMM":"当种子分类更改时","useCategoryPathInManualMode":"在手动模式中使用类别路径","useCategoryPathInManualModeHint":"根据适当的类别路径解析相对保存路径，而不是默认路径"},"whenAddTorrent":{"addToTopOfQueue":"添加到队列首位","autoDeleteMode":"下载完成后删除 .torrent 文件","doNotAutoStart":"不自动开始下载","mergeTrackers":"如果种子已存在，则合并Tracker","subheader":"添加种子时"}},"rss":{"autoDownloader":{"enable":"启用 RSS 规则处理","subheader":"RSS 种子自动下载器"},"reader":{"enableProcessing":"启用获取 RSS 订阅","feedsRefreshInterval":"订阅源刷新间隔","maximumArticlesPerFeed":"每个订阅源的最大文章数","sameHostRequestDelay":"相同主机请求延迟","subheader":"RSS 阅读器"},"smartEpisodeFilter":{"downloadEpisodes":"下载 REPACK/PROPER 剧集","filters":"过滤器","filtersHint":"每行一个","subheader":"RSS 智能剧集过滤器"},"useIdForRssLinks":"在 RSS 文章链接中使用 ID"},"saveSuccess":"设置已成功保存！","speed":{"download":"下载","scheduler":{"from":"开始时间","selectButtonLabel":"选择时间","subheader":"定时使用备用速率限制","to":"结束时间","when":"何时"},"settings":{"applyToPeersOnLan":"将速率限制应用于本地网络上的用户","applyToTransportOverhead":"将速率限制应用于传输总开销","applyToUtp":"将速率限制应用于 µTP 协议"},"subheader":{"alternative":"备用速率限制","global":"全局速率限制","settings":"速率限制设置"},"tip":"0 表示无限制","upload":"上传"},"tabs":{"addons":{"enhanced_edition":"增强版"},"advanced":"高级","behavior":"行为","bittorrent":"BitTorrent","connection":"连接","downloads":"下载","rss":"RSS","speed":"速度","tagsAndCategories":"标签和分类","vuetorrent":{"general":"常规设置","title":"VueTorrent","torrent_card":{"grid":"网格视图","list":"列表视图","table":"表格视图"}},"webui":"WebUI"},"tagsAndCategories":{"categoriesSubheader":"可用分类：","createNewCategory":"创建新分类","createNewTag":"创建新标签","noCategories":"暂无分类","noTags":"暂无标签","tagsSubheader":"可用标签："},"title":"设置","vuetorrent":{"general":{"check_new":"检查新版本","currentVersion":"当前版本","customTitle":"自定义标题","darkVariants":"深色模式样式","dateFormat":"日期格式","displayGraphLimits":"在图表中显示速度限制","download":"导出设置","durationFormat":"持续时间显示格式","enableHashColors":"启用自动生成的卡片颜色","enableRatioColors":"启用彩色的分享率","fileContentInterval":"种子文件内容刷新间隔","filterType":"过滤器组合类型","hideChipIfUnset":"未设置时隐藏卡片","hideColoredChip":"为卡片使用文本模式","historySize":"符合条件字段的历史大小","import":"导入设置","isDrawerRight":"侧边栏居右显示","isShutdownButtonVisible":"显示关闭按钮","language":"语言","lightVariants":"浅色模式样式","paginationSize":{"infinite_scroll":"无限滚动","label":"分页大小","warning":"使用过高的值可能会影响性能"},"qbittorrentVersion":"qBittorrent 版本","refreshInterval":"qBittorrent API 刷新间隔","registerMagnet":"注册为磁力链程序","resetSettings":"重置设置","showAlltimeStat":"显示全局统计数据","showCurrentSpeed":"显示当前速度","showFreeSpace":"显示剩余空间","showSessionStat":"显示本次会话统计","showSpeedGraph":"显示速度图表","tip":"这些设置适用于自定义WebUI","useBinarySize":"以KiB表示文件大小 (kB -> KiB)","useBitSpeed":"以kbps表示速度 (kB/s -> kbps)","useEmojiState":"在种子状态前添加表情符号","vueTorrentTitle":"VueTorrent 标题"},"torrentCard":{"grid":{"busyTip":"在网格视图中为未完成的种子显示的属性","doneTip":"在网格视图中为已完成的种子显示的属性"},"list":{"busyTip":"在列表视图中为未完成的种子显示的属性","doneTip":"在列表视图中为已完成的种子显示的属性"},"table":{"tip":"在表格视图中为种子显示的属性"}}},"webUI":{"authentication":{"banDuration":"封禁持续时间","banDurationHint":"以秒为单位","bypassLocalhost":"对本地主机上的客户端跳过身份验证","bypassWhitelist":"对 IP 子网白名单中的客户端跳过身份验证","maxAttempts":"最大尝试次数","password":"密码","passwordPlaceholder":"(不更改)","sessionTimeout":"会话超时","sessionTimeoutHint":"以秒为单位","subheader":"身份验证","username":"用户名","whitelistExamples":"示例：192.168.1.0/24，fdff:ffff:c8::/40"},"customHeaders":"添加自定义 HTTP 标头","customHeadersHint":"每行一个","customHeadersPlaceholder":"Header1: value1\\nHeader2: value2\\n...","dynDns":{"domainName":"域名","password":"密码","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"注册","subheader":"更新我的动态域名","username":"用户名"},"https":{"certificate":"证书","key":"密钥","subheader":"使用 HTTPS","tip":"证书相关信息"},"interface":{"ipAddress":"IP 地址","port":"端口","subheader":"Web 用户界面 (远程控制)","useAlternativeWebUI":"使用备用 WebUI","useUPnP":"使用 UPnP / NAT-PMP 端口转发"},"proxiesList":"受信任的代理服务器列表","proxiesListHint":"使用分号 ( ; ) 分隔 IP","reverseProxySupport":"启用反向代理支持","security":{"clickjacking":"启用点击劫持保护","csrf":"启用跨站点请求伪造 (CSRF) 保护","hostHeaderValidation":"启用主机头验证","hostHeaderValidationHint":"使用分号 ( ; ) 分隔","secureCookie":"启用 Cookie 安全标志 (需要 HTTPS)","serverDomains":"服务器域名","subheader":"安全"}}}');
    oV = {
        add: {
            error: "添加种子时出错",
            pending: "正在上传...",
            success: "{n} 个种子已添加 | {n} 个种子已添加"
        },
        copy: {
            error: "无法复制，当前环境不安全！",
            success: "已复制到剪贴板！"
        },
        magnet_handler: {
            not_supported: "当前环境不安全，无法注册处理程序。",
            registered: "磁力链处理程序已注册。"
        },
        qbit: {
            not_supported: "仅适用于 qbit >= {version}"
        },
        version: {
            latest: "你已在使用最新版了!",
            new: "新版本可用！"
        }
    };
    sV = {
        actions: {
            delete: "删除种子",
            logs: "打开日志",
            pause: "暂停种子",
            resume: "继续种子",
            rssArticles: "RSS 订阅",
            searchEngine: "搜索",
            settings: "设置",
            torrentCreator: "打开种子创建器"
        },
        addTorrents: "添加种子",
        overflow: {
            delete: "删除",
            logs: "qBittorrent日志",
            pause: "暂停",
            resume: "恢复",
            rssArticles: "RSS 资讯",
            searchEngine: "搜索",
            settings: "设置",
            torrentCreator: "种子创建器"
        },
        searchTorrents: "搜索种子"
    };
    lV = {
        empty: {
            action: "创建新任务",
            value: "未设置任务"
        },
        table: {
            comment: "注释",
            create: "创建新任务",
            errorMessage: "错误信息",
            format: "种子格式",
            optimizeAlignment: "是否优化对齐？",
            pieceSize: "分片大小",
            private: "是否私有？",
            progress: "进度",
            sourcePath: "源路径",
            status: "任务状态",
            taskID: "任务 ID",
            timeAdded: "添加日期",
            timeFinished: "完成日期",
            timeStarted: "开始日期",
            trackers: {
                activator: "{n} Tracker | {n} Trackers",
                header: "Trackers",
                title: "已注册的Tracker"
            },
            urlSeeds: {
                activator: "{n} URL | {n} URLs",
                header: "Web种子",
                title: "已注册的Web种子"
            }
        },
        title: "种子创建器"
    };
    uV = {
        content: {
            fileInfo: "{n} 个文件 | {n} 个文件",
            filter: {
                activator: "批量选择",
                exclude: "排除",
                extensions: "文件名后缀",
                include: "包含",
                preview: "过滤器匹配 {count}/{total} 文件 ({size})",
                priority: "文件优先级",
                size: "文件大小",
                title: "批量选择文件"
            },
            filter_placeholder: "在文件树中搜索",
            folderInfo: "{n} 个文件夹 | {n} 文件夹",
            invert_priority: "颠倒优先级",
            priority: "设置优先级",
            rename: {
                bulk: "批量重命名",
                file: "重命名",
                folder: "重命名文件夹"
            },
            rootNode: "(根目录)"
        },
        info: {
            boolean_values: "布尔值",
            data_values: "数据值",
            datetime_values: "日期时间值",
            duration_values: "持续时间值",
            long_text_values: "长文本值",
            speed_values: "速度值",
            text_values: "文本值"
        },
        overview: {
            canvasRefreshDisabled: "已禁用Canvas自动刷新",
            canvasRenderDisabled: "已禁用Canvas渲染",
            copy_hash: "复制哈希值",
            dlSpeedAverage: "平均下载速度",
            downloaded: "已下载",
            fetchingMetadata: "获取中...",
            fileCount: "已选择文件",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "分享率",
            selectedFileSize: "已选择文件大小",
            uploaded: "已上传",
            upSpeedAverage: "平均上传速度",
            waitingForMetadata: "等待元数据..."
        },
        peers: {
            addPeers: {
                newPeers: "要添加的用户主机",
                newPeersHint: "每行一个",
                newPeersPlaceholder: "主机:端口",
                title: "添加用户"
            },
            empty: "当前没有用户连接",
            fields: {
                client: "客户端",
                country: "国家和地区",
                download: "下载",
                files: "文件",
                flags: "标志",
                host: "主机",
                progress: "进度",
                relevance: "相关性",
                upload: "上传"
            }
        },
        tabs: {
            content: "内容",
            info: "信息",
            overview: "概览",
            peers: "用户",
            tagsAndCategories: "标签和分类",
            trackers: "Trackers"
        },
        tagsAndCategories: {
            categories: "分类",
            tags: "标签"
        },
        title: "种子详情",
        trackers: {
            addTrackers: {
                newTrackers: "要添加的 Tracker URL",
                newTrackersHint: "每行一个，使用空行分隔层级",
                title: "添加 Tracker"
            },
            editTracker: {
                newUrl: "新 URL",
                newUrlRequired: "新 URL 不能为空",
                oldUrl: "旧 URL",
                title: "编辑 Tracker"
            },
            error: "从Tracker获取数据时出错",
            fields: {
                msg: "信息",
                num_downloaded: "已下载",
                num_leeches: "下载数",
                num_peers: "用户",
                num_seeds: "做种者",
                status: "状态",
                tier: "#",
                url: "Tracker URL"
            },
            loading: "加载Tracker数据...",
            reannounce: "全部重新汇报",
            tier: "层级：{n}"
        }
    };
    cV = {
        properties: {
            added_on: "添加时间",
            amount_left: "剩余大小",
            auto_tmm: "自动管理种子（ATM）",
            availability: "可用性",
            available_peers: "可用的用户数（群）",
            available_seeds: "可用的做种者数（群）",
            avg_download_speed: "平均下载速度",
            avg_upload_speed: "平均上传速度",
            basename_content_path: "内容路径（基底）",
            basename_download_path: "下载路径（基底）",
            basename_save_path: "保存路径（基底）",
            category: "分类",
            comment: "注释",
            completed_on: "完成时间",
            content_path: "文件路径",
            created_by: "创建者",
            creation_date: "创建日期",
            downloaded: "已下载 (全局)",
            downloaded_session: "已下载 (本次会话)",
            download_limit: "下载限速",
            download_path: "下载路径",
            download_speed: "下载速度",
            empty_category: "(未分类)",
            empty_tags: "(无标签)",
            empty_tracker: "(无 Tracker)",
            eta: "预计剩余时间",
            f_l_piece_prio: "首/尾块优先",
            forced: "强制状态",
            global_speed: "全局速度",
            global_volume: "全局容量",
            hash: "哈希值",
            inactive_seeding_time_limit: "非活跃做种时长限制",
            infohash_v1: "哈希值 v1",
            infohash_v2: "哈希值 v2",
            is_private: "私有种子",
            last_activity: "最后活跃时间",
            magnet: "磁力链接",
            name: "种子名称",
            nb_connections: "总连接数",
            nb_connections_limit: "连接限制",
            num_leechs: "用户数 (已连接)",
            num_seeds: "做种者数 (已连接)",
            peers: "用户",
            priority: "优先级",
            progress: "进度",
            progress_bar: "进度条",
            ratio: "分享率",
            ratio_limit: "分享率限制",
            reannounce: "下次重新汇报时间",
            save_path: "保存路径",
            seeding_time: "做种时长",
            seeding_time_limit: "做种时长限制",
            seeds: "做种者",
            seen_complete: "最后完整可见",
            seq_dl: "顺序下载",
            size: "大小",
            state: "状态",
            super_seeding: "超级做种模式",
            tags: "标签",
            time_active: "活跃时间",
            total_size: "总大小",
            total_wasted: "无用的数据",
            tracker: "Tracker",
            trackers_count: "Tracker 数量",
            truncated_hash: "截短的哈希值",
            uploaded: "已上传 (全局)",
            uploaded_session: "已上传 (本次会话)",
            upload_limit: "上传限速",
            upload_speed: "上传速度"
        },
        state: {
            checking_disk: "正在检验磁盘文件",
            checking_resume_data: "校验恢复数据",
            dl_forced: "[F] 下载中",
            dl_queued: "排队中 (下载)",
            dl_stalled: "停滞中",
            dl_stopped: "已停止",
            downloading: "下载中",
            error: "错误",
            forced_meta_download: "[F]元数据",
            meta_download: "元数据",
            missing_files: "缺失文件",
            moving: "移动中",
            ul_forced: "[F] 上传中",
            ul_queued: "排队中 (上传)",
            ul_stalled: "做种中",
            ul_stopped: "已完成",
            unknown: "未知",
            uploading: "上传中"
        }
    };
    dV = {
        minutes: "分钟",
        seconds: "秒"
    };
    hV = {
        _comments: K9,
        common: X9,
        constants: J9,
        dashboard: Z9,
        dialogs: Q9,
        login: eV,
        logs: tV,
        navbar: aV,
        rssArticles: rV,
        searchEngine: nV,
        settings: iV,
        toast: oV,
        topbar: sV,
        torrentCreator: lV,
        torrentDetail: uV,
        torrent: cV,
        units: dV
    };
    mV = "僅從Tolgee生成，請不要手動修改不然會被推翻";
    fV = {
        auto: "自動",
        cancel: "取消",
        close: "關閉",
        delete: "移除",
        disable: "停用",
        disabled: "已停用",
        edit: "編輯",
        emptyList: "這裡沒東西可看！",
        global_value: "全局設定",
        NA: "不適用",
        no: "否",
        none: "(無)",
        ok: "確認",
        pause: "暫停",
        refresh: "更新",
        resume: "繼續",
        save: "儲存",
        search: "搜尋",
        selectAll: "選擇全部",
        selectNone: "取消選擇全部",
        useGlobalSettings: "使用全域設定",
        yes: "是"
    };
    pV = {
        addStopped: {
            always: "總是",
            never: "永不",
            title: "加入時暫停"
        },
        auto_delete_mode: {
            always: "總是",
            never: "永不"
        },
        bittorrentProtocols: {
            tcp: "TCP",
            tcp_utp: "TCP 與 μTP",
            utp: "μTP"
        },
        connectionStatus: {
            connected: "已連線",
            disconnected: "未連線",
            firewalled: "防火牆限制",
            unknown: "未知"
        },
        contentLayout: {
            nosubfolder: "移除子資料夾",
            original: "原始",
            subfolder: "建立子資料夾",
            title: "種子內容佈局"
        },
        diskIoMode: {
            disableOsCache: "停用作業系統快取",
            enableOsCache: "啟用作業系統快取",
            writeThrough: "連續寫入 (libtorrent >= 2.0.6)"
        },
        diskIoType: {
            default: "預設",
            memoryMappedFiles: "記憶體對映檔案",
            posixCompliant: "遵循 POSIX"
        },
        encryption: {
            forceOff: "停用加密",
            forceOn: "要求加密",
            preferEncryption: "允許加密"
        },
        file_log_age_type: {
            days: "天",
            months: "月",
            years: "年"
        },
        file_priority: {
            high: "高",
            max: "最高",
            mixed: "混合",
            normal: "一般",
            unwanted: "不要下載"
        },
        filter_type: {
            conjunctive: "結合過濾器（與）",
            disjunctive: "選擇過濾器（或）"
        },
        monitoredFolderSaveLocation: {
            defaultSavePath: "預設儲存路徑",
            monitoredFolder: "已監視的資料夾",
            other: "其他"
        },
        proxy_type: {
            http: "HTTP",
            socks4: "SOCKS4",
            socks5: "SOCKS5"
        },
        scheduler: {
            everyDay: "每天",
            everyFriday: "星期五",
            everyMonday: "星期一",
            everySaturday: "星期六",
            everySunday: "星期天",
            everyThursday: "星期四",
            everyTuesday: "星期二",
            everyWednesday: "星期三",
            everyWeekday: "平日",
            everyWeekend: "週末"
        },
        shareLimitAction: {
            removeTorrent: "移除種子",
            removeTorrentAndFiles: "移除種子與其檔案",
            stopTorrent: "暫停種子",
            torrentSuperseeding: "為種子啟用超級做種"
        },
        stopCondition: {
            filesChecked: "檢查檔案後",
            metadataReceived: "收到元資料後",
            none: "無",
            title: "種子停止條件"
        },
        themes: {
            dark: {
                legacy: "傳統",
                redesigned: "重制版"
            },
            light: {
                legacy: "傳統",
                redesigned: "重制版"
            }
        },
        titleOptions: {
            custom: "自訂",
            default: "預設",
            first_torrent_speed: "首個種子速率",
            global_speed: "全域速率"
        },
        torrentContentRemovingMode: {
            delete: "永久刪除檔案",
            moveToTrash: "將檔案移至垃圾桶（如果可能）"
        },
        torrentCreatorTaskStatus: {
            failed: "失敗",
            finished: "已完成",
            queued: "排隊中",
            running: "運行中"
        },
        torrentFormat: {
            hybrid: "混合",
            v1: "V1",
            v2: "V2"
        },
        trackerStatus: {
            disabled: "已停用",
            not_working: "沒有運作",
            not_yet_contacted: "尚未連線",
            updating: "正在更新",
            working: "正在運作"
        },
        uploadChokingAlgorithm: {
            antiLeech: "反蝗族",
            fastestUpload: "上傳最快",
            roundRobin: "循環"
        },
        uploadSlotsBehavior: {
            fixedSlots: "固定通道",
            uploadRateBased: "基於上傳速率"
        },
        utpTcpMixedMode: {
            peerProportional: "用戶比例 (TCP 節流)",
            preferTcp: "偏好 TCP"
        }
    };
    gV = {
        displayMode: {
            grid: "網格",
            list: "清單",
            table: "表格",
            title: "顯示模式"
        },
        not_complete: "從未完整可見",
        right_click: {
            advanced: {
                auto_tmm: "自動種子管理 （ATM）",
                download_path: "設定下載路徑",
                f_l_prio: "首末優先",
                reannounce: "強制重新發佈",
                recheck: "強制重新檢查",
                rename: "重新命名",
                save_path: "設置儲存路徑",
                seq_dl: "順序下載",
                title: "進階"
            },
            category: {
                clear: "(清除分類)",
                disabled_title: "無分類",
                title: "設定分類"
            },
            copy: {
                comment: "註釋",
                hash: "雜湊值",
                magnet: "磁力連結",
                name: "名稱",
                title: "複製"
            },
            export: "匯出種子 | 匯出種子",
            info: "顯示詳情",
            priority: {
                bottom: "最低優先級",
                decrease: "降低優先級",
                increase: "提升優先級",
                title: "設定優先級",
                top: "最高優先級"
            },
            speed_limit: {
                download: "設定下載限制",
                share: "設定分享限制",
                title: "設定速率限制",
                upload: "設定上傳限制"
            },
            tags: {
                clear_all: "全部刪除",
                disabled_title: "無標籤",
                title: "設定標籤"
            },
            top: {
                delete: "移除",
                force_resume: "強制繼續",
                pause: "暫停",
                resume: "繼續"
            }
        },
        searchInputLabel: "搜尋",
        selectAll: "(取消) 選擇全部 (Ctrl + A)",
        selectedTorrentsCount: "無種子 | {total} 個種子中的 {count} 個 ({size}) | {total} 個種子中的 {count} 個 ({size})",
        sortLabel: "排序方式",
        toggleSearchFilter: "切換搜尋過濾器",
        toggleSelectMode: "切換選擇模式",
        toggleSortOrder: "反轉排序",
        torrentsCount: "無種子 | {n} 個種子 | {n} 個種子"
    };
    vV = {
        add: {
            cookie: "Cookie",
            cookie_placeholder: "名稱1=值1; 名稱2=值2; ...",
            drop_label: "拖拽檔案和連結至此處",
            file_overflow: "+{n} 個",
            files: "選擇檔案",
            first_last_piece_prio: "優先下載首末塊",
            instant_drop_label: "立即開始",
            links: "連結 (磁力, http, 檔案, ...)",
            params: {
                add_to_top_of_queue: "新增至佇列頂部",
                category: "分類",
                download_limit: "下載限制",
                download_path: "下載路徑 （未完成時）",
                inactive_seeding_time_limit: "閒置做種時間限制",
                limit_collapse: "限制設定",
                limit_hint: "-1 以禁用, -2 或空使用全域值",
                no_categories: "尚無分類。輸入名稱以新增",
                no_categories_match: '無分類符合 "{query}"。將會自動新增。',
                no_tags: "尚無標籤。輸入名稱以新增。",
                no_tags_match: '無標籤符合 "{query}"。 按 Enter 鍵以新增。',
                ratio_limit: "分享率限制",
                save_path: "儲存路徑 （完成時）",
                seeding_time_limit: "做種時間限制",
                skip_checking: "跳過雜湊值檢查",
                stopped: "不立即開始",
                tags: "標籤",
                title: "種子設定",
                upload_limit: "上傳限制",
                use_auto_tmm: "自動種子管理（ATM）"
            },
            rename: "重新命名種子",
            reset_form: "重置表單",
            sequential_download: "順序下載",
            submit: "新增種子",
            title: "新增種子"
        },
        bulkRenameFiles: {
            col_origin_name: "原名稱",
            col_result_name: "結果",
            duplicated: "重複的檔案名稱",
            flags: "旗標",
            fold: "收起",
            not_changed: "檔案名稱未變更",
            notForFolder: "不支持目錄更名",
            nothing_to_do: "無待執行任務",
            regexp: "正規表示式",
            run: "執行",
            select_regex_flags: "選擇正規表示式旗標",
            success: "成功改名",
            target: "變更為",
            title: "批量改名",
            unfold: "展開"
        },
        category: {
            name: "分類名稱",
            nameRequired: "必須填寫分類名稱",
            oldName: "舊分類名稱",
            savePath: "儲存路徑",
            title: {
                create: "新增分類",
                edit: "編輯分類"
            },
            warnEdit: `編輯分類名稱會將種子轉移至新分類。
有可能會發生錯誤，請謹慎使用。`
        },
        connectionStatus: {
            dht_nodes: "DHT 節點",
            externalIp: "外部 IP 位置",
            fetch_geo_failed: "無法取得地理位置資訊",
            fetch_isp_failed: "無法取得ISP資訊",
            geo_details: "地理位置資訊",
            isp_details: "ISP資訊",
            noExternalIp: "無法從日誌中移除",
            status: "連線狀態",
            total_peer_connections: "活躍的用戶連接數"
        },
        delete: {
            deleteWithFiles: "移除種子與其檔案",
            title: "移除 {n} 個種子 | 移除 {n} 個種子",
            warnDelete: "打勾此方格將移除種子包含的所有內容。"
        },
        importSettings: {
            required: "必須提供設定",
            title: "匯入設定",
            valid: "請提供有效的設定"
        },
        moveTorrent: {
            dl: {
                title: "更改下載路徑"
            },
            newPath: "新路徑",
            oldPath: "舊路徑",
            required: "必須填寫新路徑",
            samePath: "新路徑必須與舊路徑不同",
            save: {
                title: "更改儲存路徑"
            }
        },
        moveTorrentFile: {
            oldName: "舊名稱",
            title: "移動種子檔案 | 移動種子資料夾"
        },
        pluginManager: {
            headers: {
                actions: "動作",
                enabled: "已啟用",
                name: "名稱",
                url: "引擎 URL",
                version: "版本"
            },
            install: {
                activator: "安裝新外掛",
                label: "外掛 URL",
                title: "安裝外掛"
            },
            title: "外掛管理器",
            update: "更新外掛"
        },
        renameTorrent: {
            newName: "新名稱",
            oldName: "舊名稱",
            required: "必須填寫新名稱",
            sameName: "新名稱必須與舊名稱不同",
            title: "重新命名種子"
        },
        rss: {
            feed: {
                name: "名稱",
                rules: {
                    name_required: "必須填寫訂閱名稱",
                    url_required: "必須填寫訂閱連結"
                },
                title: {
                    create: "新增 RSS 訂閱源",
                    edit: "編輯 RSS 訂閱源"
                },
                url: "連結"
            },
            rule: {
                addStopped: "加入時暫停",
                affectedFeedsSubheader: "受影響的訂閱源",
                assignedCategory: "指派分類",
                enabled: "啟用規則",
                episodeFilter: "章節過濾器",
                episodeFilterPlaceholder: "例子: S01E02-S01E05",
                ignoreDays: "忽略過去 {day} 天內發佈的項目",
                ignoreDaysHint: "0 以停用",
                lastMatch: {
                    knownValue: "今天 | {n} 天前 | {n} 天前",
                    label: "最後符合",
                    unknownValue: "未知"
                },
                matchingArticles: {
                    noMatch: "無符合的文章",
                    title: "符合的文章"
                },
                mustContain: "必須包含",
                mustNotContain: "必須不包含",
                name: "名稱",
                savePath: "儲存路徑",
                savePathPlaceholder: "留空以使用預設儲存路徑",
                smartFilter: "使用智慧型章節過濾器",
                title: {
                    create: "新增 RSS 規則",
                    edit: "編輯 RSS 規則"
                },
                useRegex: "使用正規表達式"
            }
        },
        share_limit: {
            disabled: "設定無分享限制",
            enabled: "設定分享限制為",
            global: "使用全域分享限制",
            inactive_seeding_time_limit: "閒置分鐘數",
            ratio_limit: "分享率",
            seeding_time_limit: "總分鐘數",
            title: "設定分享率限制"
        },
        shutdown: {
            content: "你確認想要結束 qBittorrent 嗎？",
            error: "無法結束應用，請確認 qBittorrent 正在運行！",
            success: "已成功結束 qBittorrent!",
            title: "結束 qBittorrent"
        },
        speed_limit: {
            download: "設定下載速率限制",
            label: "速率限制",
            upload: "設定上傳速率限制"
        },
        tag: {
            comma: "重新命名標籤時名稱不可包含逗號",
            hint: "提示: 可使用逗號分隔以新增多個標籤",
            name: "標籤名稱",
            oldName: "舊標籤名稱",
            required: "必須填寫標籤名稱",
            title: {
                create: "新增標籤",
                rename: "重新命名標籤"
            },
            warnEdit: `編輯標籤名稱會將種子轉移至新標籤。
有可能會發生錯誤，請謹慎使用。`
        },
        torrentCreator: {
            actions: {
                submit: "執行創建任務"
            },
            comment: "註釋",
            format: "種子格式",
            optimizeAlignment: "優化對齊",
            paddedFileSizeLimit: "對大於此大小的文件對齊到片段邊界",
            paddedFileSizeLimitHint: "-1 以停用",
            paddedFileSizeLimitRule: "值必須為正數",
            pieceSize: "區塊大小",
            private: "私有種子（不會在DHT網絡上分發）",
            rules: {
                outputFileExtension: "輸出路徑必須以 .torrent 結尾",
                sourcePathRequired: "必須填寫來源路徑"
            },
            sourcePath: "要包含在 torrent 中的檔案",
            startSeeding: "立即開始做種",
            title: "新增新任務",
            torrentFilePath: "已建立的種子檔案目的地",
            trackers: "追蹤者連結",
            trackersHint: "您可以使用空行分隔追蹤器層級/群組",
            urlSeeds: "Web 種子 URL"
        }
    };
    yV = {
        error: "登入失敗！",
        password: "密碼",
        pending: "正在檢測驗證狀態...",
        rules: {
            password_required: "必須填寫密碼",
            username_required: "必須填寫使用者名稱"
        },
        submit: "登入",
        subtitle: "輸入你的憑證",
        success: "登入成功！",
        title: "登入",
        username: "使用者名稱"
    };
    bV = {
        emptyLogList: "未找到日誌",
        filters: {
            query: "在日誌信息中搜尋",
            type: "日誌等級"
        },
        title: "qBittorrent 日誌"
    };
    FV = {
        addPanel: {
            torrentsPendingCount: "{n} 個種子待上傳 | {n} 個種子待上傳"
        },
        side: {
            bottom_actions: {
                alt_speed: "替補速率限制",
                conn_status: "連線狀態：{status}",
                logout: "登出",
                shutdown: "結束 qBittorrent"
            },
            current_speed: {
                title: "當前速率"
            },
            filters: {
                activeFilter: "{n} 個過濾器啟用中",
                category: {
                    empty: "(未分類)",
                    title: "分類過濾器"
                },
                disabled: "(已停用)",
                state: {
                    active: "活躍",
                    error: "錯誤",
                    offline: "離線",
                    title: "種子狀態過濾器"
                },
                tag: {
                    empty: "(未標籤)",
                    title: "標籤過濾器"
                },
                tracker: {
                    empty: "(未追蹤)",
                    title: "追蹤者過濾器"
                }
            },
            speed_graph: {
                download_label: "下載",
                download_limit_label: "下載限制",
                upload_label: "上傳",
                upload_limit_label: "上傳限制"
            },
            stats: {
                alltime: {
                    title: "歷史狀態"
                },
                downloaded: "已下載",
                free_space: "剩餘空間",
                ratio: "分享率",
                session: {
                    title: "會話狀態"
                },
                uploaded: "已上傳"
            }
        },
        top: {
            active_filters: {
                category: "分類過濾器：{value}",
                menu_label: "啟用中的過濾器: {n} | 啟用中的過濾器: {n}",
                multiple_category: "分類過濾器: {n} 個分類",
                multiple_state: "狀態過濾器: {n} 種狀態",
                multiple_tag: "標籤過濾器: {n} 個標籤",
                multiple_tracker: "追蹤者過濾器: {n} 個追蹤者",
                state: "狀態過濾器: {value}",
                tag: "標籤過濾器: {value}",
                text: "文本過濾器: {value}",
                tracker: "追蹤者過濾器: {value}"
            }
        }
    };
    kV = {
        feeds: {
            empty: {
                action: "新增 RSS 訂閱源",
                value: "未有註冊的RSS訂閱"
            },
            filters: {
                title: "標題過濾器",
                unread: "僅顯示未讀文章"
            },
            item: {
                author: "作者: {author}",
                category: "分類: {category}",
                feedName: "訂閱源名稱: {name}"
            },
            markAllAsRead: "標記全部項目為已讀",
            markAsRead: "標註為已讀",
            promise: {
                error: "標記文章時發生錯誤",
                pending: "標記中...",
                success: "已標記 {n} 篇文章為已讀"
            },
            refreshAllFeeds: "更新所有訂閱",
            refreshPromise: {
                error: "更新訂閱資訊時發生錯誤",
                pending: "正在更新…",
                success: "{n}條訂閱資訊已更新"
            },
            title: "RSS 文章"
        },
        rules: {
            empty: {
                action: "新增 RSS 規則",
                value: "未有配置的RSS規則"
            },
            title: "RSS規則"
        },
        toggle: {
            feeds: "顯示訂閱資訊",
            rules: "顯示訂閱規則"
        }
    };
    xV = {
        filters: {
            category: {
                all: "所有",
                anime: "動畫",
                books: "書籍",
                games: "遊戲",
                label: "搜尋分類",
                movies: "電影",
                music: "音樂",
                pictures: "圖片",
                software: "軟體",
                tv: "電視劇"
            },
            plugins: {
                all: "所有",
                enabled: "已啟用",
                label: "搜尋外掛"
            },
            title: {
                label: "按標題過濾"
            }
        },
        headers: {
            engineName: "引擎名稱",
            fileName: "檔案名稱",
            fileSize: "檔案大小",
            nbLeechers: "下載者",
            nbSeeders: "種子",
            pubDate: "發佈日期",
            siteUrl: "網站連結"
        },
        query: "搜尋查詢",
        runSearch: "搜尋",
        stopSearch: "停止",
        tabHeaderEmpty: "(空查詢)",
        title: "搜尋種子"
    };
    wV = JSON.parse('{"addons":{"enhanced_edition":{"auto_ban_bt_player_peer":"自動禁止BT用戶","auto_ban_unknown_peer":"自動禁止未知用戶","auto_update_trackers":"自動更新公開跟蹤器清單","public_trackers":"公開跟蹤器","trackers_list_url":"自定義跟蹤器連結清單"}},"advanced":{"libtorrent":{"announceAllTiers":"總是發佈到所有追蹤者群組","announceAllTrackers":"總是發佈到同一追蹤者群組內的所有追蹤者","announceIP":"向追蹤器回報的 IP 位置 (需要重新啟動)","coalesceReadsWrites":"合併讀寫 (libtorrent < 2.0)","dhtBootstrapNodes":"DHT 引導節點","dhtBootstrapNodesHint":"如果為空則重置為預設值","disk":{"diskCache":"硬碟快取 (libtorrent < 2.0)","diskCacheExpiry":"硬碟快取過期區間 (libtorrent < 2.0)","diskIoReadMode":"硬碟 IO 讀取模式","diskIoType":"硬碟 IO 類型 (libtorrent >= 2.0; 需要重新啟動)","diskIoWriteMode":"硬碟 IO 寫入模式","diskQueueSize":"硬碟佇列大小","subheader":"硬碟"},"i2p":{"inboundLength":"I2P 入站長度","inboundQuantity":"I2P 入站數量","invalidLength":"I2P 長度值必須介於 0 到 7 之間","invalidQuantity":"I2P 數量值必須介於 1 到 16 之間","outboundLength":"I2P 出站長度","outboundQuantity":"I2P 出站數量","restartNeeded":"這些設定的任何變更將在下次重新建立 SAM 連接時生效（通過重新啟動 I2P 或更改 I2P 地址或端口）"},"maxConcurrentHTTPAnnounces":"最大並行 HTTP 發佈","networking":{"outgoingPortsMax":"連出埠（最大）[0: 停用]","outgoingPortsMin":"連出埠（最小）[0: 停用]","peerTos":"連接到用戶的 DSCP 值","subheader":"網路","upnpLeaseDuration":"UPnP 租約期限 [0: 永久租約]","utpTcpMixedModeAlgorithm":"μTP-TCP 混合模式演算法"},"outgoingConnectionsPerSecond":"每秒對外連線數","peerTurnover":"用戶流動斷線百分比","peerTurnoverCutoff":"用戶流動閾值百分比","peerTurnoverInterval":"用戶流動斷線區間","pieceExtentAffinity":"使用分塊範圍關聯","requestQueueSize":"對單個用戶的最多未完成請求","security":{"allowMultipleConnectionsFromTheSameIPAddress":"允許從同一個 IP 位置而來的多重連線","blockPeersOnPrivilegedPorts":"不允許連線到在特權連接埠上的用戶","idnSupport":"啟用國際化域名 (IDN)支援","mitigateSSRF":"伺服器端請求偽造 (SSRF) 緩解","subheader":"安全","validateHTTPSTrackerCertificate":"驗證 HTTPS 追蹤器憑證"},"sendBufferLowWatermark":"傳送緩衝低浮水印","sendBufferWatermark":"傳送緩衝浮水印","sendBufferWatermarkFactor":"傳送緩衝浮水印因子","sendUploadPieceSuggestions":"傳送上傳分塊建議","socketBacklogSize":"Socket 紀錄檔大小","socketReceiveBufferSize":"Socket 接收緩衝大小","socketReceiveBufferSizeHint":"0: 系統預設值","socketSendBufferSize":"Socket 傳送緩衝大小","socketSendBufferSizeHint":"0: 系統預設值","ssl":{"disclaimer":"「SSL torrent」功能並非標準化，沒有與之相關的 BEP（BitTorrent 增強提案）。\\n僅在需要時啟用此功能。","enabled":"啟用 SSL 種子","listenPort":"SSL 連線時使用的埠","listenPortHint":"留空以自動選擇","rule":"端口必須介於 0 到 65535 之間"},"stopTrackerTimeout":"停止追蹤者逾時","subheader":"libtorrent 部分","threads":{"asyncIoThreads":"異步 I/O 執行緒","bdecodeDepthLimit":"Bdecode 深度限制","bdecodeTokenLimit":"Bdecode 令牌限制","filePoolSize":"檔案叢集大小","hashingThreads":"雜湊執行緒 (libtorrent >= 2.0)","outstandingMemory":"檢查種子時的未完成記憶體","subheader":"執行緒"},"uploadChokingAlgorithm":"上傳演算法","uploadSlotsBehavior":"上傳通道行為"},"openDoc":"開啟文檔","qbittorrent":{"allocatedRam":"實體記憶體 (RAM) 使用限制 (libtorrent >= 2.0)","appInstanceName":"應用程式實例名稱","embeddedTracker":{"enable":"啟用嵌入追蹤者","port":"嵌入追蹤者埠","portForward":"為嵌入追蹤者啟用連接埠轉發","title":"嵌入追蹤者"},"enableMarkOfTheWeb":"啟用下載文件的網頁標記 (MOTW)","enableMarkOfTheWebHint":"需要 macOS 或 Windows","networking":{"ipAddress":{"all":"所有位置","allIPv4":"所有 IPv4 位置","allIPv6":"所有 IPv6 位置","label":"可選擇綁定的 IP 位置"},"networkInterfaces":{"any":"任何介面","label":"網路介面"},"title":"網路"},"pythonExecutablePath":"Python 可執行檔路徑","pythonExecutablePathHint":"如果為空則自動檢測，需要重新啟動","reannounceOnIpPortChanged":"當 IP 或連接埠變更時通知所有追蹤者","recheckOnCompletion":"完成後重新檢查種子","refreshInterval":"介面重新整理區間","resolveCountries":"解析用戶國家","resumeDataStorageType":{"label":"恢復數據儲存類型 (需要重新啟動)","legacy":"快速恢復檔案","sqlite":"SQLite 數據庫 (實驗性)"},"saveInterval":"儲存復原資料區間","subheader":"qBittorrent 部分","torrentContentRemovingMode":"種子內容移除模式","torrentFileSizeLimit":".torrent 檔案大小限制"}},"behavior":{"logs":{"file_log_age":"刪除早於以下時間的備份日誌","file_log_backup_enabled":"啟用日誌備份","file_log_delete_old":"移除舊的備份日誌","file_log_enabled":"啟用日誌文件","file_log_max_size":"備份日誌當","file_log_path":"儲存路徑","subheader":"日誌管理"},"performance_warning":"日誌效能警告"},"bittorrent":{"autoAddTrackers":"自動新增這些追蹤者至新的下載中","autoAddTrackersHint":"每行一個追蹤者","maxActiveCheckingTorrents":"最大活躍的正在檢查種子數","privacy":{"enableAnonymous":"啟用匿名模式","enableDHT":"啟用 DHT (分散式網絡) 以尋找更多用戶","enableLPD":"啟用本地用戶搜尋以尋找更多用戶","enablePeX":"啟用用戶交換 (PeX) 以尋找更多用戶","encryptionMode":"加密模式","moreInfo":"更多資訊","subheader":"隱私"},"seedLimits":{"subheader":"做種限制","then":"然後","whenInactiveSeedingTimeReaches":"當閒置做種時間達到","whenRatioReaches":"當分享率達到","whenSeedingTimeReaches":"當做種時間達到"},"torrentQueueing":{"downloadRateLimit":"下載速率閾值","excludeSlowTorrent":"不要在這些限制範圍內計算速率慢的種子","maxActiveDownload":"最大活躍下載數","maxActiveTorrent":"最大活躍種子數","maxActiveUpload":"最大活躍上傳數","subheader":"種子佇列","torrentInactivityTimer":"種子閒置計時器","uploadRateLimit":"上傳速率閾值"}},"connection":{"connectionLimits":{"globalMaxConnection":"全域最大連線數","globalMaxUploadSlots":"全域上傳通道最大數","perTorrentMaxConnection":"單個種子的最大連線數","perTorrentMaxUploadSlots":"單個種子的上傳通道最大數","subheader":"連線限制"},"i2p":{"address":"I2P 主機","disclaimer":"如果啟用了「混合模式」，I2P種子允許從追蹤器以外的其他來源獲取同伴，並連接到常規IP，這不提供任何匿名化。如果用戶對I2P的匿名化不感興趣，但仍希望能夠連接到I2P同伴，這可能會有用。","enabled":"啟用 I2P","mixedMode":"混合模式","port":"埠","rule":"端口值必須介於 0 到 65535 之間","subheader":"I2P（實驗性）"},"ipFiltering":{"applyToTrackers":"套用到追蹤者","bannedIps":"手動封鎖的 IP 位置","bannedIpsHint":"每行一個","filterPath":"過濾器路徑 (.dat, .p2p, .p2b)","subheader":"IP 過濾"},"listeningPort":{"incomingConnectionPort":"連入連線時使用的埠","randomPort":"隨機連接埠","subheader":"監聽埠","useUPnP":"使用從路由器轉送的 UPnP / NAT-PMP 連接埠"},"protocol":"用戶連線協定","proxy":{"auth":{"password":"密碼","subtitle":"驗證","tip":"資訊: 密碼以未加密的形式儲存","username":"使用者名稱"},"bittorrent":"對 BitTorrent 使用代理","host":"主機","hostNameLookup":"為主機名稱查詢使用代理","misc":"對一般用途使用代理","peerConnections":"使用代理來連線用戶","port":"埠","rss":"對 RSS 使用代理","subheader":"代理伺服器"}},"downloads":{"excludedFileNames":{"hint":"每行一個檔案名稱","label":"排除的檔案名稱"},"mailNotification":{"authEnabled":"驗證","enabled":"下載完成時使用電子郵件通知","from":"從","password":"密碼","smtpServer":"SMTP 伺服器","sslEnabled":"這個伺服器需要加密連線 (SSL)","test":{"error":"電子郵件發送失敗\\n{message}","label":"發送測試電子郵件","success":"電子郵件請求已發送！\\n檢查您的收件箱以確認成功"},"to":"到","username":"使用者名稱"},"monitoredFolders":{"actions":"動作","confirmDelete":"你確認想要移除此項目？","editItem":"編輯","monitoredFolderPath":"已監視的資料夾","newItem":"新增","noData":"沒有已監視的資料夾","otherPath":"其他路徑","saveType":"覆寫儲存位置","subheader":"已監視的資料夾"},"publicSettings":{"appendQBExtension":"在未完成檔案加上 .!qB 副檔名","preAllocateDisk":"為所有檔案事先分配硬碟空間","useUnwantedFolder":"將未選擇的文件保存在 \\".unwanted\\" 文件夾中"},"runExternalProgram":{"onAddedEnabled":"當新增種子時執行外部程式:","onAddedLabel":"命令","onFinishedEnabled":"當種子下載結束時執行外部程式:","onFinishedLabel":"命令","subheader":"執行外部程式","supportParamC":"%C: 檔案數","supportParamD":"%D: 儲存路徑","supportParamF":"%F: 內容路徑 (與多檔案種子的根路徑相同)","supportParamG":"%G: 標籤 (以逗號分隔)","supportParamI":"%I: 資訊雜湊值 v1","supportParamJ":"%J: 資訊雜湊值 v2","supportParamK":"%K: 種子 ID","supportParamL":"%L: 分類","supportParamN":"%N: 種子名稱","supportParamR":"%R: 根路徑 (第一個種子的子目錄路徑)","supportParamT":"%T: 當前的追蹤者","supportParamTitle":"支援的參數（區分大小寫）：","supportParamZ":"%Z: 種子大小 (位元組 byte)","tip":"提示: 把參數以引號包起來以避免被空格切斷 (例如: \\"%N\\")"},"saveManagement":{"autoTMMEnabled":"預設種子管理模式","categoryChangedTMM":"當分類儲存路徑變更時","defaultSavePath":"預設儲存路徑 (完成時)","defaultTMMOptions":{"automatic":"自動","manual":"手動"},"exportDir":"複製 .torrent 檔案到","exportDirFinished":"複製已完成的 .torrent 檔案到","keepIncomplete":"預設下載路徑 (未完成的種子)","paramChangedTMMOptions":{"relocateTorrent":"重新定位種子","switchToManual":"切換種子至手動模式"},"savePathChangedTMM":"當預設儲存路徑變更時","subheader":"存檔管理","torrentChangedTMM":"當種子分類變更時","useCategoryPathInManualMode":"在手動模式中使用分類路徑","useCategoryPathInManualModeHint":"針對適當的類別路徑解析相對儲存路徑，而不是預設路徑"},"whenAddTorrent":{"addToTopOfQueue":"新增至佇列頂部","autoDeleteMode":"事後移除 .torrent 檔案","doNotAutoStart":"不要自動開始下載","mergeTrackers":"如果 torrent 已存在則合併追蹤者","subheader":"當新增種子時"}},"rss":{"autoDownloader":{"enable":"啟用 RSS 規則處理","subheader":"RSS 種子自動下載器"},"reader":{"enableProcessing":"啟用抓取 RSS 訂閱","feedsRefreshInterval":"訂閱源更新區間","maximumArticlesPerFeed":"每個訂閱源的最大文章數","sameHostRequestDelay":"相同主機請求延遲","subheader":"RSS 閱讀器"},"smartEpisodeFilter":{"downloadEpisodes":"下載 REPACK/PROPER 章節","filters":"過濾器","filtersHint":"每行一個","subheader":"RSS 智慧型章節過濾器"},"useIdForRssLinks":"在 RSS 文章連結中使用 ID"},"saveSuccess":"設定儲存成功！","speed":{"download":"下載","scheduler":{"from":"從","selectButtonLabel":"選擇時間","subheader":"預約使用替補速率限制","to":"到","when":"何時"},"settings":{"applyToPeersOnLan":"套用速率限制至 LAN 上的用戶","applyToTransportOverhead":"套用速率限制至傳輸負載","applyToUtp":"套用速率限制至 µTP 協定"},"subheader":{"alternative":"替補速率限制","global":"全域速率限制","settings":"速率限制設定"},"tip":"0 代表無限制","upload":"上傳"},"tabs":{"addons":{"enhanced_edition":"加強版"},"advanced":"進階","behavior":"行為","bittorrent":"BitTorrent","connection":"連線","downloads":"下載","rss":"RSS","speed":"速率","tagsAndCategories":"標籤和分類","vuetorrent":{"general":"一般","title":"VueTorrent","torrent_card":{"grid":"網格檢視","list":"清單檢視","table":"表格檢視"}},"webui":"網頁介面"},"tagsAndCategories":{"categoriesSubheader":"可用分類:","createNewCategory":"新增新分類","createNewTag":"新增新標籤","noCategories":"尚無分類","noTags":"尚無標籤","tagsSubheader":"可用標籤:"},"title":"設定","vuetorrent":{"general":{"check_new":"檢查新版本","currentVersion":"當前版本","customTitle":"自訂標題","darkVariants":"深色界面式樣","dateFormat":"日期格式","displayGraphLimits":"在圖表裡顯示速度限制","download":"匯出設定","durationFormat":"持續時間顯示格式","enableHashColors":"啟用自動生成的卡片顏色","enableRatioColors":"啟用彩色的分享率","fileContentInterval":"種子檔案內容更新區間","filterType":"過濾器組合類別","hideChipIfUnset":"未設置時隱藏塊","hideColoredChip":"為卡片使用文本模式","historySize":"符合條件欄位的歷史大小","import":"匯入設定","isDrawerRight":"側邊欄居右顯示","isShutdownButtonVisible":"顯示結束按鈕","language":"語言","lightVariants":"淺色界面式樣","paginationSize":{"infinite_scroll":"無限滾動","label":"每頁展示數量","warning":"使用过高的值可能会影响性能"},"qbittorrentVersion":"qBittorrent 版本","refreshInterval":"qBittorrent API 更新區間","registerMagnet":"註冊磁力連結","resetSettings":"重置設定","showAlltimeStat":"顯示歷史狀態","showCurrentSpeed":"顯示當前速率","showFreeSpace":"顯示剩餘空間","showSessionStat":"顯示會話狀態","showSpeedGraph":"顯示速率圖表","tip":"這些設定適用於自訂WebUI","useBinarySize":"以二進位制取代容量單位 (kB -> KiB)","useBitSpeed":"以位元取代速率單位 (kB/s -> kbps)","useEmojiState":"在種子狀態前加上表情符號","vueTorrentTitle":"VueTorrent 標題"},"torrentCard":{"grid":{"busyTip":"在網格檢視中為未完成的種子顯示的屬性","doneTip":"在網格檢視中為已完成的種子顯示的屬性"},"list":{"busyTip":"在清單檢視中為未完成的種子顯示的屬性","doneTip":"在清單檢視中為已完成的種子顯示的屬性"},"table":{"tip":"在表格檢視中為種子顯示的屬性"}}},"webUI":{"authentication":{"banDuration":"封鎖時長","banDurationHint":"秒","bypassLocalhost":"跳過本機客戶端的驗證","bypassWhitelist":"跳過白名單內 IP 子網中客戶端的驗證","maxAttempts":"最大嘗試次數","password":"密碼","passwordPlaceholder":"(不變更)","sessionTimeout":"會話逾時","sessionTimeoutHint":"秒","subheader":"驗證","username":"使用者名稱","whitelistExamples":"範例: 192.168.1.0/24, fdff:ffff:c8::/40"},"customHeaders":"新增自訂 HTTP 標頭","customHeadersHint":"每行一個","customHeadersPlaceholder":"標頭1: 鍵值1\\n標頭2: 鍵值2\\n...","dynDns":{"domainName":"網域名稱","password":"密碼","providers":{"dynDns":"DynDNS","noIp":"NO-IP"},"registerBtn":"註冊","subheader":"更新我的動態網域名稱","username":"使用者名稱"},"https":{"certificate":"憑證","key":"鍵值","subheader":"使用 HTTPS","tip":"關於憑證的資訊"},"interface":{"ipAddress":"IP 位置","port":"埠","subheader":"網頁介面 (遠端控制)","useAlternativeWebUI":"使用替補 WebUI","useUPnP":"使用從路由器轉送的 UPnP / NAT-PMP 連接埠"},"proxiesList":"受信任的代理伺服器清單","proxiesListHint":"使用分號分隔 IP ( ; )","reverseProxySupport":"啟用反向代理支援","security":{"clickjacking":"啟用點選劫持保護","csrf":"啟用跨站請求偽造 (CSRF) 保護","hostHeaderValidation":"啟用主機標頭驗證","hostHeaderValidationHint":"使用分號分隔 ( ; )","secureCookie":"啟用Cookie 安全旗標（需要 HTTPS）","serverDomains":"伺服器網域","subheader":"安全"}}}');
    SV = {
        add: {
            error: "新增種子時出錯",
            pending: "正在傳送種子...",
            success: "已添加 {n} 個種子 | 已添加 {n} 個種子"
        },
        copy: {
            error: "無法複製，當前環境不安全!",
            success: "已複製到剪貼簿!"
        },
        magnet_handler: {
            not_supported: "當前環境不安全，無法註冊處理器。",
            registered: "磁力連結處理器已註冊。"
        },
        qbit: {
            not_supported: "僅適用於 qbit >= {version}"
        },
        version: {
            latest: "你已經在使用最新版本了!",
            new: "新版本已發佈!"
        }
    };
    CV = {
        actions: {
            delete: "移除種子",
            logs: "開啟日誌",
            pause: "暫停種子",
            resume: "繼續種子",
            rssArticles: "開啟 RSS 文章",
            searchEngine: "開啟搜尋引擎",
            settings: "開啟設定",
            torrentCreator: "打開種子創建器"
        },
        addTorrents: "新增種子",
        overflow: {
            delete: "移除",
            logs: "qBittorrent日誌",
            pause: "暫停",
            resume: "繼續",
            rssArticles: "RSS 文章",
            searchEngine: "搜尋引擎",
            settings: "設定",
            torrentCreator: "種子創建器"
        },
        searchTorrents: "搜尋種子"
    };
    AV = {
        empty: {
            action: "新增新任務",
            value: "未有配置的任務"
        },
        table: {
            comment: "註釋",
            create: "新增新任務",
            errorMessage: "錯誤訊息",
            format: "種子格式",
            optimizeAlignment: "是否優化對齊？",
            pieceSize: "區塊大小",
            private: "是否私有？",
            progress: "進度",
            sourcePath: "來源路徑",
            status: "任務狀態",
            taskID: "任務 ID",
            timeAdded: "添加日期",
            timeFinished: "完成日期",
            timeStarted: "開始日期",
            trackers: {
                activator: "{n} 個追蹤器 | {n} 個追蹤器",
                header: "追踪器",
                title: "已註冊的追蹤器"
            },
            urlSeeds: {
                activator: "{n} 連結 | {n} 連結",
                header: "Web 種子",
                title: "已註冊的Web種子"
            }
        },
        title: "種子創建器"
    };
    DV = {
        content: {
            fileInfo: "{n} 個檔案 | {n} 個檔案",
            filter: {
                activator: "批量選擇",
                exclude: "剔除",
                extensions: "檔案副檔名",
                include: "包含",
                preview: "過濾器配對 {count}/{total} 檔案 ({size})",
                priority: "檔案優先級",
                size: "檔案大小",
                title: "批量選擇檔案"
            },
            filter_placeholder: "在檔案樹中搜尋",
            folderInfo: "{n} 個資料夾 | {n} 個資料夾",
            invert_priority: "顛倒優先級",
            priority: "設定優先級",
            rename: {
                bulk: "批量重命名",
                file: "重新命名",
                folder: "重新命名資料夾"
            },
            rootNode: "(根節點)"
        },
        info: {
            boolean_values: "布林值",
            data_values: "資料值",
            datetime_values: "日期時間值",
            duration_values: "時長值",
            long_text_values: "長文字值",
            speed_values: "速率值",
            text_values: "文字值"
        },
        overview: {
            canvasRefreshDisabled: "已禁用 Canvas 自動更新",
            canvasRenderDisabled: "已禁用 Canvas 渲染",
            copy_hash: "複製雜湊值",
            dlSpeedAverage: "平均下載速率",
            downloaded: "已下載",
            fetchingMetadata: "正在抓取...",
            fileCount: "已選擇檔案",
            pieceCount: "{owned} / {total} ({pieceSize})",
            ratio: "分享率",
            selectedFileSize: "選中的檔案大小",
            uploaded: "已上傳",
            upSpeedAverage: "平均上傳速率",
            waitingForMetadata: "正在等待元資料..."
        },
        peers: {
            addPeers: {
                newPeers: "要新增的用戶主機",
                newPeersHint: "每行一個",
                newPeersPlaceholder: "主機:埠",
                title: "新增用戶"
            },
            empty: "當前無已連接的用戶",
            fields: {
                client: "客戶端",
                country: "國家和地區",
                download: "下載",
                files: "檔案",
                flags: "旗標",
                host: "主機",
                progress: "進度",
                relevance: "關聯",
                upload: "上傳"
            }
        },
        tabs: {
            content: "內容",
            info: "資訊",
            overview: "概覽",
            peers: "用戶",
            tagsAndCategories: "標籤和分類",
            trackers: "追蹤者"
        },
        tagsAndCategories: {
            categories: "分類",
            tags: "標籤"
        },
        title: "種子詳情",
        trackers: {
            addTrackers: {
                newTrackers: "要新增的追蹤者連結",
                newTrackersHint: "每行一個，使用空行分層",
                title: "新增追蹤者"
            },
            editTracker: {
                newUrl: "新連結",
                newUrlRequired: "必須填寫新連結",
                oldUrl: "舊連結",
                title: "編輯追蹤者"
            },
            error: "從追蹤者獲取數據時出錯",
            fields: {
                msg: "訊息",
                num_downloaded: "已下載",
                num_leeches: "下載者",
                num_peers: "用戶",
                num_seeds: "種子",
                status: "狀態",
                tier: "#",
                url: "追蹤者URL"
            },
            loading: "加載追蹤者數據...",
            reannounce: "全部重新發佈",
            tier: "層: {n}"
        }
    };
    TV = {
        properties: {
            added_on: "新增於",
            amount_left: "剩餘大小",
            auto_tmm: "自動種子管理（ATM）",
            availability: "可得性",
            available_peers: "用戶 (群)",
            available_seeds: "種子 (群)",
            avg_download_speed: "平均下載速率",
            avg_upload_speed: "平均上傳速率",
            basename_content_path: "內容路徑（基底）",
            basename_download_path: "下載路徑（基底）",
            basename_save_path: "儲存路徑（基底）",
            category: "分類",
            comment: "註釋",
            completed_on: "完成於",
            content_path: "內容路徑",
            created_by: "創建者",
            creation_date: "創建日期",
            downloaded: "已下載 (全域)",
            downloaded_session: "已下載 (會話)",
            download_limit: "下載限制",
            download_path: "下載路徑",
            download_speed: "下載速率",
            empty_category: "(無分類)",
            empty_tags: "(無標籤)",
            empty_tracker: "(無追蹤者)",
            eta: "預估剩餘時間",
            f_l_piece_prio: "首末塊優先",
            forced: "強制狀態",
            global_speed: "全域速率",
            global_volume: "全域大小",
            hash: "雜湊值",
            inactive_seeding_time_limit: "閒置做種時間限制",
            infohash_v1: "資訊雜湊值 v1",
            infohash_v2: "資訊雜湊值 v2",
            is_private: "私有种子",
            last_activity: "最後活躍",
            magnet: "磁力連結",
            name: "種子標題",
            nb_connections: "總連線數",
            nb_connections_limit: "連線限制",
            num_leechs: "用戶 (已連線)",
            num_seeds: "種子 (已連線)",
            peers: "用戶",
            priority: "優先級",
            progress: "進度",
            progress_bar: "進度列",
            ratio: "分享率",
            ratio_limit: "分享率限制",
            reannounce: "下次重新發佈时间",
            save_path: "儲存路徑",
            seeding_time: "做種時間",
            seeding_time_limit: "做種時間限制",
            seeds: "種子",
            seen_complete: "最後完整可見",
            seq_dl: "順序下載",
            size: "大小",
            state: "狀態",
            super_seeding: "超級做種",
            tags: "標籤",
            time_active: "經過時間",
            total_size: "總大小",
            total_wasted: "無用的資料",
            tracker: "追蹤者",
            trackers_count: "追蹤者數",
            truncated_hash: "截短的雜湊值",
            uploaded: "已上傳 (全域)",
            uploaded_session: "已上傳 (會話)",
            upload_limit: "上傳限制",
            upload_speed: "上傳速率"
        },
        state: {
            checking_disk: "正在檢查硬碟中的檔案",
            checking_resume_data: "正在檢查復原資料",
            dl_forced: "[F] 下載中",
            dl_queued: "排隊中 (下載)",
            dl_stalled: "停滞中",
            dl_stopped: "已停止",
            downloading: "下載中",
            error: "錯誤",
            forced_meta_download: "[F]元資料",
            meta_download: "元資料",
            missing_files: "缺失檔案",
            moving: "正在移動",
            ul_forced: "[F] 上傳中",
            ul_queued: "排隊中 (上傳)",
            ul_stalled: "做種中",
            ul_stopped: "完成",
            unknown: "未知",
            uploading: "上傳中"
        }
    };
    EV = {
        minutes: "分鐘",
        seconds: "秒"
    };
    _V = {
        _comments: mV,
        common: fV,
        constants: pV,
        dashboard: gV,
        dialogs: vV,
        login: yV,
        logs: bV,
        navbar: FV,
        rssArticles: kV,
        searchEngine: xV,
        settings: wV,
        toast: SV,
        topbar: CV,
        torrentCreator: AV,
        torrentDetail: DV,
        torrent: TV,
        units: EV
    };
    XW = [
        {
            title: "čeština",
            value: "cs"
        },
        {
            title: "English",
            value: "en"
        },
        {
            title: "español",
            value: "es"
        },
        {
            title: "Français",
            value: "fr"
        },
        {
            title: "magyar",
            value: "hu"
        },
        {
            title: "italiano",
            value: "it"
        },
        {
            title: "日本語",
            value: "ja"
        },
        {
            title: "한국어",
            value: "ko"
        },
        {
            title: "Nederlands",
            value: "nl"
        },
        {
            title: "polski",
            value: "pl"
        },
        {
            title: "português (Brasil)",
            value: "pt-BR"
        },
        {
            title: "Русский",
            value: "ru"
        },
        {
            title: "Türkçe",
            value: "tr"
        },
        {
            title: "українська",
            value: "uk"
        },
        {
            title: "简体中文",
            value: "zh-Hans"
        },
        {
            title: "繁體中文",
            value: "zh-Hant"
        }
    ];
    PV = {
        cs: MN,
        en: JN,
        es: mO,
        fr: _O,
        hu: jO,
        it: nH,
        ja: FH,
        ko: IH,
        nl: OH,
        pl: t9,
        "pt-BR": s9,
        ru: S9,
        tr: H9,
        uk: q9,
        "zh-Hans": hV,
        "zh-Hant": _V
    };
    BV = "en";
    MV = "en";
    RV = Lx({
        legacy: !1,
        locale: BV,
        fallbackLocale: MV,
        messages: PV,
        pluralRules: {
            ru: (t, e)=>{
                if (t === 0) return 0;
                const a = t > 10 && t < 20, r = t % 10 === 1;
                return e == 2 ? t === 1 ? 0 : 1 : e < 4 ? !a && r ? 1 : 2 : !a && r ? 1 : !a && t % 10 >= 2 && t % 10 <= 4 || e < 4 ? 2 : 3;
            }
        }
    });
    LV = {
        autoClose: 1500,
        clearOnUrlChange: !1,
        containerId: gr.POSITION.BOTTOM_RIGHT,
        limit: 5,
        position: gr.POSITION.BOTTOM_RIGHT,
        theme: gr.THEME.COLORED
    };
    cx = Ix();
    cx.use(zx({
        assertStorage: ()=>{},
        storeKeysPrefix: "vuetorrent",
        persistenceDefault: !1,
        ensureAsyncStorageUpdateOrder: !0
    }));
    const dx = Nx(S4);
    dx.config.performance = !0;
    dx.use(uk).use(AN).use(RV).use(Ox, LV).use(cx).mount("#app");
})();
export { sh as $, Th as A, qs as B, Qn as C, jn as D, Sl as E, Bi as F, kr as G, e1 as H, K3 as I, Ks as J, zl as K, rt as L, Dh as M, Os as N, M4 as O, U6 as P, Bf as Q, sa as R, oW as S, Nt as T, Jr as U, ya as V, Ll as W, Ka as X, nW as Y, oa as Z, ko as _, _e as a, pv as a$, Ee as a0, G6 as a1, Te as a2, xm as a3, gN as a4, ox as a5, iW as a6, gD as a7, uW as a8, d1 as a9, Zy as aA, Mw as aB, Rw as aC, Bw as aD, Pw as aE, _w as aF, Aw as aG, Cw as aH, Dw as aI, Xy as aJ, Sw as aK, ww as aL, no as aM, io as aN, Tw as aO, Ew as aP, Yn as aQ, Vt as aR, ZB as aS, bn as aT, Zt as aU, yh as aV, qB as aW, $s as aX, RF as aY, YB as aZ, XW as a_, Ys as aa, NV as ab, tb as ac, jr as ad, n1 as ae, MF as af, eb as ag, ez as ah, Ml as ai, pD as aj, fd as ak, cW as al, eM as am, Yr as an, b0 as ao, ob as ap, Si as aq, OV as ar, a4 as as, N4 as at, iR as au, wl as av, lN as aw, F0 as ax, Br as ay, Jy as az, zm as b, gv as b0, Nn as b1, Ln as b2, Rn as b3, Im as b4, mW as b5, hl as b6, Lz as b7, Mz as b8, No as b9, Qy as bA, fD as bB, hW as bC, dW as bD, sW as bE, fW as bF, JB as bG, XI as ba, Vm as bb, r4 as bc, lh as bd, Mm as be, Rm as bf, ID as bg, nF as bh, iF as bi, Vs as bj, Le as bk, Um as bl, to as bm, Ze as bn, Lr as bo, _l as bp, lW as bq, mi as br, $A as bs, Cr as bt, zD as bu, ND as bv, Bm as bw, OD as bx, zz as by, RD as bz, bl as c, ri as d, Hi as e, ai as f, rk as g, QF as h, Oi as i, un as j, Re as k, Pn as l, Wm as m, LF as n, ka as o, Qd as p, qe as q, Pa as r, tt as s, _n as t, qt as u, Pr as v, _a as w, tm as x, W0 as y, V0 as z, __tla };
