(function(X, ie) {
    typeof exports == "object" && typeof module < "u" ? ie(exports) : typeof define == "function" && define.amd ? define(["exports"], ie) : ie((X = typeof globalThis < "u" ? globalThis : X || self).Popper = {})
})(this, function(X) {
    "use strict";

    function ie(o) {
        if (o == null) return window;
        if (o.toString() !== "[object Window]") {
            var s = o.ownerDocument;
            return s && s.defaultView || window
        }
        return o
    }

    function Re(o) {
        return o instanceof ie(o).Element || o instanceof Element
    }

    function ve(o) {
        return o instanceof ie(o).HTMLElement || o instanceof HTMLElement
    }

    function un(o) {
        return typeof ShadowRoot < "u" && (o instanceof ie(o).ShadowRoot || o instanceof ShadowRoot)
    }
    var Qe = Math.max,
        Ae = Math.min,
        be = Math.round;

    function Ge() {
        var o = navigator.userAgentData;
        return o != null && o.brands && Array.isArray(o.brands) ? o.brands.map(function(s) {
            return s.brand + "/" + s.version
        }).join(" ") : navigator.userAgent
    }

    function ze() {
        return !/^((?!chrome|android).)*safari/i.test(Ge())
    }

    function rt(o, s, l) {
        s === void 0 && (s = !1), l === void 0 && (l = !1);
        var u = o.getBoundingClientRect(),
            _ = 1,
            h = 1;
        s && ve(o) && (_ = o.offsetWidth > 0 && be(u.width) / o.offsetWidth || 1, h = o.offsetHeight > 0 && be(u.height) / o.offsetHeight || 1);
        var v = (Re(o) ? ie(o) : window).visualViewport,
            p = !ze() && l,
            g = (u.left + (p && v ? v.offsetLeft : 0)) / _,
            O = (u.top + (p && v ? v.offsetTop : 0)) / h,
            A = u.width / _,
            y = u.height / h;
        return {
            width: A,
            height: y,
            top: O,
            right: g + A,
            bottom: O + y,
            left: g,
            x: g,
            y: O
        }
    }

    function gt(o) {
        var s = ie(o);
        return {
            scrollLeft: s.pageXOffset,
            scrollTop: s.pageYOffset
        }
    }

    function pe(o) {
        return o ? (o.nodeName || "").toLowerCase() : null
    }

    function Ve(o) {
        return ((Re(o) ? o.ownerDocument : o.document) || window.document).documentElement
    }

    function Dt(o) {
        return rt(Ve(o)).left + gt(o).scrollLeft
    }

    function oe(o) {
        return ie(o).getComputedStyle(o)
    }

    function me(o) {
        var s = oe(o),
            l = s.overflow,
            u = s.overflowX,
            _ = s.overflowY;
        return /auto|scroll|overlay|hidden/.test(l + _ + u)
    }

    function ge(o, s, l) {
        l === void 0 && (l = !1);
        var u, _, h = ve(s),
            v = ve(s) && function(y) {
                var q = y.getBoundingClientRect(),
                    I = be(q.width) / y.offsetWidth || 1,
                    F = be(q.height) / y.offsetHeight || 1;
                return I !== 1 || F !== 1
            }(s),
            p = Ve(s),
            g = rt(o, v, l),
            O = {
                scrollLeft: 0,
                scrollTop: 0
            },
            A = {
                x: 0,
                y: 0
            };
        return (h || !h && !l) && ((pe(s) !== "body" || me(p)) && (O = (u = s) !== ie(u) && ve(u) ? {
            scrollLeft: (_ = u).scrollLeft,
            scrollTop: _.scrollTop
        } : gt(u)), ve(s) ? ((A = rt(s, !0)).x += s.clientLeft, A.y += s.clientTop) : p && (A.x = Dt(p))), {
            x: g.left + O.scrollLeft - A.x,
            y: g.top + O.scrollTop - A.y,
            width: g.width,
            height: g.height
        }
    }

    function Vt(o) {
        var s = rt(o),
            l = o.offsetWidth,
            u = o.offsetHeight;
        return Math.abs(s.width - l) <= 1 && (l = s.width), Math.abs(s.height - u) <= 1 && (u = s.height), {
            x: o.offsetLeft,
            y: o.offsetTop,
            width: l,
            height: u
        }
    }

    function _t(o) {
        return pe(o) === "html" ? o : o.assignedSlot || o.parentNode || (un(o) ? o.host : null) || Ve(o)
    }

    function Tn(o) {
        return ["html", "body", "#document"].indexOf(pe(o)) >= 0 ? o.ownerDocument.body : ve(o) && me(o) ? o : Tn(_t(o))
    }

    function St(o, s) {
        var l;
        s === void 0 && (s = []);
        var u = Tn(o),
            _ = u === ((l = o.ownerDocument) == null ? void 0 : l.body),
            h = ie(u),
            v = _ ? [h].concat(h.visualViewport || [], me(u) ? u : []) : u,
            p = s.concat(v);
        return _ ? p : p.concat(St(_t(v)))
    }

    function ei(o) {
        return ["table", "td", "th"].indexOf(pe(o)) >= 0
    }

    function qt(o) {
        return ve(o) && oe(o).position !== "fixed" ? o.offsetParent : null
    }

    function vt(o) {
        for (var s = ie(o), l = qt(o); l && ei(l) && oe(l).position === "static";) l = qt(l);
        return l && (pe(l) === "html" || pe(l) === "body" && oe(l).position === "static") ? s : l || function(u) {
            var _ = /firefox/i.test(Ge());
            if (/Trident/i.test(Ge()) && ve(u) && oe(u).position === "fixed") return null;
            var h = _t(u);
            for (un(h) && (h = h.host); ve(h) && ["html", "body"].indexOf(pe(h)) < 0;) {
                var v = oe(h);
                if (v.transform !== "none" || v.perspective !== "none" || v.contain === "paint" || ["transform", "perspective"].indexOf(v.willChange) !== -1 || _ && v.willChange === "filter" || _ && v.filter && v.filter !== "none") return h;
                h = h.parentNode
            }
            return null
        }(o) || s
    }
    var de = "top",
        Te = "bottom",
        ye = "right",
        he = "left",
        Kt = "auto",
        bt = [de, Te, ye, he],
        at = "start",
        lt = "end",
        Cn = "viewport",
        yt = "popper",
        d = bt.reduce(function(o, s) {
            return o.concat([s + "-" + at, s + "-" + lt])
        }, []),
        Ut = [].concat(bt, [Kt]).reduce(function(o, s) {
            return o.concat([s, s + "-" + at, s + "-" + lt])
        }, []),
        kn = ["beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite"];

    function fn(o) {
        var s = new Map,
            l = new Set,
            u = [];

        function _(h) {
            l.add(h.name), [].concat(h.requires || [], h.requiresIfExists || []).forEach(function(v) {
                if (!l.has(v)) {
                    var p = s.get(v);
                    p && _(p)
                }
            }), u.push(h)
        }
        return o.forEach(function(h) {
            s.set(h.name, h)
        }), o.forEach(function(h) {
            l.has(h.name) || _(h)
        }), u
    }

    function Me(o, s) {
        var l = s.getRootNode && s.getRootNode();
        if (o.contains(s)) return !0;
        if (l && un(l)) {
            var u = s;
            do {
                if (u && o.isSameNode(u)) return !0;
                u = u.parentNode || u.host
            } while (u)
        }
        return !1
    }

    function ct(o) {
        return Object.assign({}, o, {
            left: o.x,
            top: o.y,
            right: o.x + o.width,
            bottom: o.y + o.height
        })
    }

    function Ce(o, s, l) {
        return s === Cn ? ct(function(u, _) {
            var h = ie(u),
                v = Ve(u),
                p = h.visualViewport,
                g = v.clientWidth,
                O = v.clientHeight,
                A = 0,
                y = 0;
            if (p) {
                g = p.width, O = p.height;
                var q = ze();
                (q || !q && _ === "fixed") && (A = p.offsetLeft, y = p.offsetTop)
            }
            return {
                width: g,
                height: O,
                x: A + Dt(u),
                y
            }
        }(o, l)) : Re(s) ? function(u, _) {
            var h = rt(u, !1, _ === "fixed");
            return h.top = h.top + u.clientTop, h.left = h.left + u.clientLeft, h.bottom = h.top + u.clientHeight, h.right = h.left + u.clientWidth, h.width = u.clientWidth, h.height = u.clientHeight, h.x = h.left, h.y = h.top, h
        }(s, l) : ct(function(u) {
            var _, h = Ve(u),
                v = gt(u),
                p = (_ = u.ownerDocument) == null ? void 0 : _.body,
                g = Qe(h.scrollWidth, h.clientWidth, p ? p.scrollWidth : 0, p ? p.clientWidth : 0),
                O = Qe(h.scrollHeight, h.clientHeight, p ? p.scrollHeight : 0, p ? p.clientHeight : 0),
                A = -v.scrollLeft + Dt(u),
                y = -v.scrollTop;
            return oe(p || h).direction === "rtl" && (A += Qe(h.clientWidth, p ? p.clientWidth : 0) - g), {
                width: g,
                height: O,
                x: A,
                y
            }
        }(Ve(o)))
    }

    function dn(o, s, l, u) {
        var _ = s === "clippingParents" ? function(g) {
                var O = St(_t(g)),
                    A = ["absolute", "fixed"].indexOf(oe(g).position) >= 0 && ve(g) ? vt(g) : g;
                return Re(A) ? O.filter(function(y) {
                    return Re(y) && Me(y, A) && pe(y) !== "body"
                }) : []
            }(o) : [].concat(s),
            h = [].concat(_, [l]),
            v = h[0],
            p = h.reduce(function(g, O) {
                var A = Ce(o, O, u);
                return g.top = Qe(A.top, g.top), g.right = Ae(A.right, g.right), g.bottom = Ae(A.bottom, g.bottom), g.left = Qe(A.left, g.left), g
            }, Ce(o, v, u));
        return p.width = p.right - p.left, p.height = p.bottom - p.top, p.x = p.left, p.y = p.top, p
    }

    function E(o) {
        return o.split("-")[0]
    }

    function qe(o) {
        return o.split("-")[1]
    }

    function Xt(o) {
        return ["top", "bottom"].indexOf(o) >= 0 ? "x" : "y"
    }

    function Ln(o) {
        var s, l = o.reference,
            u = o.element,
            _ = o.placement,
            h = _ ? E(_) : null,
            v = _ ? qe(_) : null,
            p = l.x + l.width / 2 - u.width / 2,
            g = l.y + l.height / 2 - u.height / 2;
        switch (h) {
            case de:
                s = {
                    x: p,
                    y: l.y - u.height
                };
                break;
            case Te:
                s = {
                    x: p,
                    y: l.y + l.height
                };
                break;
            case ye:
                s = {
                    x: l.x + l.width,
                    y: g
                };
                break;
            case he:
                s = {
                    x: l.x - u.width,
                    y: g
                };
                break;
            default:
                s = {
                    x: l.x,
                    y: l.y
                }
        }
        var O = h ? Xt(h) : null;
        if (O != null) {
            var A = O === "y" ? "height" : "width";
            switch (v) {
                case at:
                    s[O] = s[O] - (l[A] / 2 - u[A] / 2);
                    break;
                case lt:
                    s[O] = s[O] + (l[A] / 2 - u[A] / 2)
            }
        }
        return s
    }

    function Dn(o) {
        return Object.assign({}, {
            top: 0,
            right: 0,
            bottom: 0,
            left: 0
        }, o)
    }

    function wt(o, s) {
        return s.reduce(function(l, u) {
            return l[u] = o, l
        }, {})
    }

    function ut(o, s) {
        s === void 0 && (s = {});
        var l = s,
            u = l.placement,
            _ = u === void 0 ? o.placement : u,
            h = l.strategy,
            v = h === void 0 ? o.strategy : h,
            p = l.boundary,
            g = p === void 0 ? "clippingParents" : p,
            O = l.rootBoundary,
            A = O === void 0 ? Cn : O,
            y = l.elementContext,
            q = y === void 0 ? yt : y,
            I = l.altBoundary,
            F = I !== void 0 && I,
            W = l.padding,
            k = W === void 0 ? 0 : W,
            G = Dn(typeof k != "number" ? k : wt(k, bt)),
            te = q === yt ? "reference" : yt,
            V = o.rects.popper,
            K = o.elements[F ? te : q],
            M = dn(Re(K) ? K : K.contextElement || Ve(o.elements.popper), g, A, v),
            D = rt(o.elements.reference),
            L = Ln({
                reference: D,
                element: V,
                strategy: "absolute",
                placement: _
            }),
            $ = ct(Object.assign({}, V, L)),
            P = q === yt ? $ : D,
            R = {
                top: M.top - P.top + G.top,
                bottom: P.bottom - M.bottom + G.bottom,
                left: M.left - P.left + G.left,
                right: P.right - M.right + G.right
            },
            le = o.modifiersData.offset;
        if (q === yt && le) {
            var ue = le[_];
            Object.keys(R).forEach(function(ce) {
                var _e = [ye, Te].indexOf(ce) >= 0 ? 1 : -1,
                    je = [de, Te].indexOf(ce) >= 0 ? "y" : "x";
                R[ce] += ue[je] * _e
            })
        }
        return R
    }
    var xt = {
        placement: "bottom",
        modifiers: [],
        strategy: "absolute"
    };

    function ft() {
        for (var o = arguments.length, s = new Array(o), l = 0; l < o; l++) s[l] = arguments[l];
        return !s.some(function(u) {
            return !(u && typeof u.getBoundingClientRect == "function")
        })
    }

    function hn(o) {
        o === void 0 && (o = {});
        var s = o,
            l = s.defaultModifiers,
            u = l === void 0 ? [] : l,
            _ = s.defaultOptions,
            h = _ === void 0 ? xt : _;
        return function(v, p, g) {
            g === void 0 && (g = h);
            var O, A, y = {
                    placement: "bottom",
                    orderedModifiers: [],
                    options: Object.assign({}, xt, h),
                    modifiersData: {},
                    elements: {
                        reference: v,
                        popper: p
                    },
                    attributes: {},
                    styles: {}
                },
                q = [],
                I = !1,
                F = {
                    state: y,
                    setOptions: function(k) {
                        var G = typeof k == "function" ? k(y.options) : k;
                        W(), y.options = Object.assign({}, h, y.options, G), y.scrollParents = {
                            reference: Re(v) ? St(v) : v.contextElement ? St(v.contextElement) : [],
                            popper: St(p)
                        };
                        var te, V, K = function(M) {
                            var D = fn(M);
                            return kn.reduce(function(L, $) {
                                return L.concat(D.filter(function(P) {
                                    return P.phase === $
                                }))
                            }, [])
                        }((te = [].concat(u, y.options.modifiers), V = te.reduce(function(M, D) {
                            var L = M[D.name];
                            return M[D.name] = L ? Object.assign({}, L, D, {
                                options: Object.assign({}, L.options, D.options),
                                data: Object.assign({}, L.data, D.data)
                            }) : D, M
                        }, {}), Object.keys(V).map(function(M) {
                            return V[M]
                        })));
                        return y.orderedModifiers = K.filter(function(M) {
                            return M.enabled
                        }), y.orderedModifiers.forEach(function(M) {
                            var D = M.name,
                                L = M.options,
                                $ = L === void 0 ? {} : L,
                                P = M.effect;
                            if (typeof P == "function") {
                                var R = P({
                                        state: y,
                                        name: D,
                                        instance: F,
                                        options: $
                                    }),
                                    le = function() {};
                                q.push(R || le)
                            }
                        }), F.update()
                    },
                    forceUpdate: function() {
                        if (!I) {
                            var k = y.elements,
                                G = k.reference,
                                te = k.popper;
                            if (ft(G, te)) {
                                y.rects = {
                                    reference: ge(G, vt(te), y.options.strategy === "fixed"),
                                    popper: Vt(te)
                                }, y.reset = !1, y.placement = y.options.placement, y.orderedModifiers.forEach(function(P) {
                                    return y.modifiersData[P.name] = Object.assign({}, P.data)
                                });
                                for (var V = 0; V < y.orderedModifiers.length; V++)
                                    if (y.reset !== !0) {
                                        var K = y.orderedModifiers[V],
                                            M = K.fn,
                                            D = K.options,
                                            L = D === void 0 ? {} : D,
                                            $ = K.name;
                                        typeof M == "function" && (y = M({
                                            state: y,
                                            options: L,
                                            name: $,
                                            instance: F
                                        }) || y)
                                    } else y.reset = !1, V = -1
                            }
                        }
                    },
                    update: (O = function() {
                        return new Promise(function(k) {
                            F.forceUpdate(), k(y)
                        })
                    }, function() {
                        return A || (A = new Promise(function(k) {
                            Promise.resolve().then(function() {
                                A = void 0, k(O())
                            })
                        })), A
                    }),
                    destroy: function() {
                        W(), I = !0
                    }
                };
            if (!ft(v, p)) return F;

            function W() {
                q.forEach(function(k) {
                    return k()
                }), q = []
            }
            return F.setOptions(g).then(function(k) {
                !I && g.onFirstUpdate && g.onFirstUpdate(k)
            }), F
        }
    }
    var Yt = {
            passive: !0
        },
        pn = {
            name: "eventListeners",
            enabled: !0,
            phase: "write",
            fn: function() {},
            effect: function(o) {
                var s = o.state,
                    l = o.instance,
                    u = o.options,
                    _ = u.scroll,
                    h = _ === void 0 || _,
                    v = u.resize,
                    p = v === void 0 || v,
                    g = ie(s.elements.popper),
                    O = [].concat(s.scrollParents.reference, s.scrollParents.popper);
                return h && O.forEach(function(A) {
                        A.addEventListener("scroll", l.update, Yt)
                    }), p && g.addEventListener("resize", l.update, Yt),
                    function() {
                        h && O.forEach(function(A) {
                            A.removeEventListener("scroll", l.update, Yt)
                        }), p && g.removeEventListener("resize", l.update, Yt)
                    }
            },
            data: {}
        },
        mn = {
            name: "popperOffsets",
            enabled: !0,
            phase: "read",
            fn: function(o) {
                var s = o.state,
                    l = o.name;
                s.modifiersData[l] = Ln({
                    reference: s.rects.reference,
                    element: s.rects.popper,
                    strategy: "absolute",
                    placement: s.placement
                })
            },
            data: {}
        },
        ti = {
            top: "auto",
            right: "auto",
            bottom: "auto",
            left: "auto"
        };

    function Sn(o) {
        var s, l = o.popper,
            u = o.popperRect,
            _ = o.placement,
            h = o.variation,
            v = o.offsets,
            p = o.position,
            g = o.gpuAcceleration,
            O = o.adaptive,
            A = o.roundOffsets,
            y = o.isFixed,
            q = v.x,
            I = q === void 0 ? 0 : q,
            F = v.y,
            W = F === void 0 ? 0 : F,
            k = typeof A == "function" ? A({
                x: I,
                y: W
            }) : {
                x: I,
                y: W
            };
        I = k.x, W = k.y;
        var G = v.hasOwnProperty("x"),
            te = v.hasOwnProperty("y"),
            V = he,
            K = de,
            M = window;
        if (O) {
            var D = vt(l),
                L = "clientHeight",
                $ = "clientWidth";
            D === ie(l) && oe(D = Ve(l)).position !== "static" && p === "absolute" && (L = "scrollHeight", $ = "scrollWidth"), D = D, (_ === de || (_ === he || _ === ye) && h === lt) && (K = Te, W -= (y && D === M && M.visualViewport ? M.visualViewport.height : D[L]) - u.height, W *= g ? 1 : -1), (_ === he || (_ === de || _ === Te) && h === lt) && (V = ye, I -= (y && D === M && M.visualViewport ? M.visualViewport.width : D[$]) - u.width, I *= g ? 1 : -1)
        }
        var P, R = Object.assign({
                position: p
            }, O && ti),
            le = A === !0 ? function(ue, ce) {
                var _e = ue.x,
                    je = ue.y,
                    se = ce.devicePixelRatio || 1;
                return {
                    x: be(_e * se) / se || 0,
                    y: be(je * se) / se || 0
                }
            }({
                x: I,
                y: W
            }, ie(l)) : {
                x: I,
                y: W
            };
        return I = le.x, W = le.y, g ? Object.assign({}, R, ((P = {})[K] = te ? "0" : "", P[V] = G ? "0" : "", P.transform = (M.devicePixelRatio || 1) <= 1 ? "translate(" + I + "px, " + W + "px)" : "translate3d(" + I + "px, " + W + "px, 0)", P)) : Object.assign({}, R, ((s = {})[K] = te ? W + "px" : "", s[V] = G ? I + "px" : "", s.transform = "", s))
    }
    var gn = {
            name: "computeStyles",
            enabled: !0,
            phase: "beforeWrite",
            fn: function(o) {
                var s = o.state,
                    l = o.options,
                    u = l.gpuAcceleration,
                    _ = u === void 0 || u,
                    h = l.adaptive,
                    v = h === void 0 || h,
                    p = l.roundOffsets,
                    g = p === void 0 || p,
                    O = {
                        placement: E(s.placement),
                        variation: qe(s.placement),
                        popper: s.elements.popper,
                        popperRect: s.rects.popper,
                        gpuAcceleration: _,
                        isFixed: s.options.strategy === "fixed"
                    };
                s.modifiersData.popperOffsets != null && (s.styles.popper = Object.assign({}, s.styles.popper, Sn(Object.assign({}, O, {
                    offsets: s.modifiersData.popperOffsets,
                    position: s.options.strategy,
                    adaptive: v,
                    roundOffsets: g
                })))), s.modifiersData.arrow != null && (s.styles.arrow = Object.assign({}, s.styles.arrow, Sn(Object.assign({}, O, {
                    offsets: s.modifiersData.arrow,
                    position: "absolute",
                    adaptive: !1,
                    roundOffsets: g
                })))), s.attributes.popper = Object.assign({}, s.attributes.popper, {
                    "data-popper-placement": s.placement
                })
            },
            data: {}
        },
        Et = {
            name: "applyStyles",
            enabled: !0,
            phase: "write",
            fn: function(o) {
                var s = o.state;
                Object.keys(s.elements).forEach(function(l) {
                    var u = s.styles[l] || {},
                        _ = s.attributes[l] || {},
                        h = s.elements[l];
                    ve(h) && pe(h) && (Object.assign(h.style, u), Object.keys(_).forEach(function(v) {
                        var p = _[v];
                        p === !1 ? h.removeAttribute(v) : h.setAttribute(v, p === !0 ? "" : p)
                    }))
                })
            },
            effect: function(o) {
                var s = o.state,
                    l = {
                        popper: {
                            position: s.options.strategy,
                            left: "0",
                            top: "0",
                            margin: "0"
                        },
                        arrow: {
                            position: "absolute"
                        },
                        reference: {}
                    };
                return Object.assign(s.elements.popper.style, l.popper), s.styles = l, s.elements.arrow && Object.assign(s.elements.arrow.style, l.arrow),
                    function() {
                        Object.keys(s.elements).forEach(function(u) {
                            var _ = s.elements[u],
                                h = s.attributes[u] || {},
                                v = Object.keys(s.styles.hasOwnProperty(u) ? s.styles[u] : l[u]).reduce(function(p, g) {
                                    return p[g] = "", p
                                }, {});
                            ve(_) && pe(_) && (Object.assign(_.style, v), Object.keys(h).forEach(function(p) {
                                _.removeAttribute(p)
                            }))
                        })
                    }
            },
            requires: ["computeStyles"]
        },
        Ke = {
            name: "offset",
            enabled: !0,
            phase: "main",
            requires: ["popperOffsets"],
            fn: function(o) {
                var s = o.state,
                    l = o.options,
                    u = o.name,
                    _ = l.offset,
                    h = _ === void 0 ? [0, 0] : _,
                    v = Ut.reduce(function(A, y) {
                        return A[y] = function(q, I, F) {
                            var W = E(q),
                                k = [he, de].indexOf(W) >= 0 ? -1 : 1,
                                G = typeof F == "function" ? F(Object.assign({}, I, {
                                    placement: q
                                })) : F,
                                te = G[0],
                                V = G[1];
                            return te = te || 0, V = (V || 0) * k, [he, ye].indexOf(W) >= 0 ? {
                                x: V,
                                y: te
                            } : {
                                x: te,
                                y: V
                            }
                        }(y, s.rects, h), A
                    }, {}),
                    p = v[s.placement],
                    g = p.x,
                    O = p.y;
                s.modifiersData.popperOffsets != null && (s.modifiersData.popperOffsets.x += g, s.modifiersData.popperOffsets.y += O), s.modifiersData[u] = v
            }
        },
        jn = {
            left: "right",
            right: "left",
            bottom: "top",
            top: "bottom"
        };

    function Qt(o) {
        return o.replace(/left|right|bottom|top/g, function(s) {
            return jn[s]
        })
    }
    var ni = {
        start: "end",
        end: "start"
    };

    function Ot(o) {
        return o.replace(/start|end/g, function(s) {
            return ni[s]
        })
    }

    function At(o, s) {
        s === void 0 && (s = {});
        var l = s,
            u = l.placement,
            _ = l.boundary,
            h = l.rootBoundary,
            v = l.padding,
            p = l.flipVariations,
            g = l.allowedAutoPlacements,
            O = g === void 0 ? Ut : g,
            A = qe(u),
            y = A ? p ? d : d.filter(function(F) {
                return qe(F) === A
            }) : bt,
            q = y.filter(function(F) {
                return O.indexOf(F) >= 0
            });
        q.length === 0 && (q = y);
        var I = q.reduce(function(F, W) {
            return F[W] = ut(o, {
                placement: W,
                boundary: _,
                rootBoundary: h,
                padding: v
            })[E(W)], F
        }, {});
        return Object.keys(I).sort(function(F, W) {
            return I[F] - I[W]
        })
    }
    var dt = {
        name: "flip",
        enabled: !0,
        phase: "main",
        fn: function(o) {
            var s = o.state,
                l = o.options,
                u = o.name;
            if (!s.modifiersData[u]._skip) {
                for (var _ = l.mainAxis, h = _ === void 0 || _, v = l.altAxis, p = v === void 0 || v, g = l.fallbackPlacements, O = l.padding, A = l.boundary, y = l.rootBoundary, q = l.altBoundary, I = l.flipVariations, F = I === void 0 || I, W = l.allowedAutoPlacements, k = s.options.placement, G = E(k), te = g || (G === k || !F ? [Qt(k)] : function(ke) {
                        if (E(ke) === Kt) return [];
                        var Le = Qt(ke);
                        return [Ot(ke), Le, Ot(Le)]
                    }(k)), V = [k].concat(te).reduce(function(ke, Le) {
                        return ke.concat(E(Le) === Kt ? At(s, {
                            placement: Le,
                            boundary: A,
                            rootBoundary: y,
                            padding: O,
                            flipVariations: F,
                            allowedAutoPlacements: W
                        }) : Le)
                    }, []), K = s.rects.reference, M = s.rects.popper, D = new Map, L = !0, $ = V[0], P = 0; P < V.length; P++) {
                    var R = V[P],
                        le = E(R),
                        ue = qe(R) === at,
                        ce = [de, Te].indexOf(le) >= 0,
                        _e = ce ? "width" : "height",
                        je = ut(s, {
                            placement: R,
                            boundary: A,
                            rootBoundary: y,
                            altBoundary: q,
                            padding: O
                        }),
                        se = ce ? ue ? ye : he : ue ? Te : de;
                    K[_e] > M[_e] && (se = Qt(se));
                    var we = Qt(se),
                        Ze = [];
                    if (h && Ze.push(je[le] <= 0), p && Ze.push(je[se] <= 0, je[we] <= 0), Ze.every(function(ke) {
                            return ke
                        })) {
                        $ = R, L = !1;
                        break
                    }
                    D.set(R, Ze)
                }
                if (L)
                    for (var Tt = function(ke) {
                            var Le = V.find(function(jt) {
                                var Pt = D.get(jt);
                                if (Pt) return Pt.slice(0, ke).every(function(Mt) {
                                    return Mt
                                })
                            });
                            if (Le) return $ = Le, "break"
                        }, et = F ? 3 : 1; et > 0 && Tt(et) !== "break"; et--);
                s.placement !== $ && (s.modifiersData[u]._skip = !0, s.placement = $, s.reset = !0)
            }
        },
        requiresIfExists: ["offset"],
        data: {
            _skip: !1
        }
    };

    function Je(o, s, l) {
        return Qe(o, Ae(s, l))
    }
    var Pn = {
            name: "preventOverflow",
            enabled: !0,
            phase: "main",
            fn: function(o) {
                var s = o.state,
                    l = o.options,
                    u = o.name,
                    _ = l.mainAxis,
                    h = _ === void 0 || _,
                    v = l.altAxis,
                    p = v !== void 0 && v,
                    g = l.boundary,
                    O = l.rootBoundary,
                    A = l.altBoundary,
                    y = l.padding,
                    q = l.tether,
                    I = q === void 0 || q,
                    F = l.tetherOffset,
                    W = F === void 0 ? 0 : F,
                    k = ut(s, {
                        boundary: g,
                        rootBoundary: O,
                        padding: y,
                        altBoundary: A
                    }),
                    G = E(s.placement),
                    te = qe(s.placement),
                    V = !te,
                    K = Xt(G),
                    M = K === "x" ? "y" : "x",
                    D = s.modifiersData.popperOffsets,
                    L = s.rects.reference,
                    $ = s.rects.popper,
                    P = typeof W == "function" ? W(Object.assign({}, s.rects, {
                        placement: s.placement
                    })) : W,
                    R = typeof P == "number" ? {
                        mainAxis: P,
                        altAxis: P
                    } : Object.assign({
                        mainAxis: 0,
                        altAxis: 0
                    }, P),
                    le = s.modifiersData.offset ? s.modifiersData.offset[s.placement] : null,
                    ue = {
                        x: 0,
                        y: 0
                    };
                if (D) {
                    if (h) {
                        var ce, _e = K === "y" ? de : he,
                            je = K === "y" ? Te : ye,
                            se = K === "y" ? "height" : "width",
                            we = D[K],
                            Ze = we + k[_e],
                            Tt = we - k[je],
                            et = I ? -$[se] / 2 : 0,
                            ke = te === at ? L[se] : $[se],
                            Le = te === at ? -$[se] : -L[se],
                            jt = s.elements.arrow,
                            Pt = I && jt ? Vt(jt) : {
                                width: 0,
                                height: 0
                            },
                            Mt = s.modifiersData["arrow#persistent"] ? s.modifiersData["arrow#persistent"].padding : {
                                top: 0,
                                right: 0,
                                bottom: 0,
                                left: 0
                            },
                            _n = Mt[_e],
                            vn = Mt[je],
                            $t = Je(0, L[se], Pt[se]),
                            Hn = V ? L[se] / 2 - et - $t - _n - R.mainAxis : ke - $t - _n - R.mainAxis,
                            Fn = V ? -L[se] / 2 + et + $t + vn + R.mainAxis : Le + $t + vn + R.mainAxis,
                            De = s.elements.arrow && vt(s.elements.arrow),
                            xe = De ? K === "y" ? De.clientTop || 0 : De.clientLeft || 0 : 0,
                            tt = (ce = le ? .[K]) != null ? ce : 0,
                            Se = we + Fn - tt,
                            Jt = Je(I ? Ae(Ze, we + Hn - tt - xe) : Ze, we, I ? Qe(Tt, Se) : Tt);
                        D[K] = Jt, ue[K] = Jt - we
                    }
                    if (p) {
                        var Zt, $e = K === "x" ? de : he,
                            ht = K === "x" ? Te : ye,
                            Ie = D[M],
                            Ue = M === "y" ? "height" : "width",
                            en = Ie + k[$e],
                            bn = Ie - k[ht],
                            nt = [de, he].indexOf(G) !== -1,
                            tn = (Zt = le ? .[M]) != null ? Zt : 0,
                            yn = nt ? en : Ie - L[Ue] - $[Ue] - tn + R.altAxis,
                            Ne = nt ? Ie + L[Ue] + $[Ue] - tn - R.altAxis : bn,
                            Wn = I && nt ? function(it, nn, sn) {
                                var Ct = Je(it, nn, sn);
                                return Ct > sn ? sn : Ct
                            }(yn, Ie, Ne) : Je(I ? yn : en, Ie, I ? Ne : bn);
                        D[M] = Wn, ue[M] = Wn - Ie
                    }
                    s.modifiersData[u] = ue
                }
            },
            requiresIfExists: ["offset"]
        },
        Gt = {
            name: "arrow",
            enabled: !0,
            phase: "main",
            fn: function(o) {
                var s, l = o.state,
                    u = o.name,
                    _ = o.options,
                    h = l.elements.arrow,
                    v = l.modifiersData.popperOffsets,
                    p = E(l.placement),
                    g = Xt(p),
                    O = [he, ye].indexOf(p) >= 0 ? "height" : "width";
                if (h && v) {
                    var A = function($, P) {
                            return Dn(typeof($ = typeof $ == "function" ? $(Object.assign({}, P.rects, {
                                placement: P.placement
                            })) : $) != "number" ? $ : wt($, bt))
                        }(_.padding, l),
                        y = Vt(h),
                        q = g === "y" ? de : he,
                        I = g === "y" ? Te : ye,
                        F = l.rects.reference[O] + l.rects.reference[g] - v[g] - l.rects.popper[O],
                        W = v[g] - l.rects.reference[g],
                        k = vt(h),
                        G = k ? g === "y" ? k.clientHeight || 0 : k.clientWidth || 0 : 0,
                        te = F / 2 - W / 2,
                        V = A[q],
                        K = G - y[O] - A[I],
                        M = G / 2 - y[O] / 2 + te,
                        D = Je(V, M, K),
                        L = g;
                    l.modifiersData[u] = ((s = {})[L] = D, s.centerOffset = D - M, s)
                }
            },
            effect: function(o) {
                var s = o.state,
                    l = o.options.element,
                    u = l === void 0 ? "[data-popper-arrow]" : l;
                u != null && (typeof u != "string" || (u = s.elements.popper.querySelector(u))) && Me(s.elements.popper, u) && (s.elements.arrow = u)
            },
            requires: ["popperOffsets"],
            requiresIfExists: ["preventOverflow"]
        };

    function Mn(o, s, l) {
        return l === void 0 && (l = {
            x: 0,
            y: 0
        }), {
            top: o.top - s.height - l.y,
            right: o.right - s.width + l.x,
            bottom: o.bottom - s.height + l.y,
            left: o.left - s.width - l.x
        }
    }

    function $n(o) {
        return [de, ye, Te, he].some(function(s) {
            return o[s] >= 0
        })
    }
    var In = {
            name: "hide",
            enabled: !0,
            phase: "main",
            requiresIfExists: ["preventOverflow"],
            fn: function(o) {
                var s = o.state,
                    l = o.name,
                    u = s.rects.reference,
                    _ = s.rects.popper,
                    h = s.modifiersData.preventOverflow,
                    v = ut(s, {
                        elementContext: "reference"
                    }),
                    p = ut(s, {
                        altBoundary: !0
                    }),
                    g = Mn(v, u),
                    O = Mn(p, _, h),
                    A = $n(g),
                    y = $n(O);
                s.modifiersData[l] = {
                    referenceClippingOffsets: g,
                    popperEscapeOffsets: O,
                    isReferenceHidden: A,
                    hasPopperEscaped: y
                }, s.attributes.popper = Object.assign({}, s.attributes.popper, {
                    "data-popper-reference-hidden": A,
                    "data-popper-escaped": y
                })
            }
        },
        ii = hn({
            defaultModifiers: [pn, mn, gn, Et]
        }),
        Nn = [pn, mn, gn, Et, Ke, dt, Pn, Gt, In],
        si = hn({
            defaultModifiers: Nn
        });
    X.applyStyles = Et, X.arrow = Gt, X.computeStyles = gn, X.createPopper = si, X.createPopperLite = ii, X.defaultModifiers = Nn, X.detectOverflow = ut, X.eventListeners = pn, X.flip = dt, X.hide = In, X.offset = Ke, X.popperGenerator = hn, X.popperOffsets = mn, X.preventOverflow = Pn, Object.defineProperty(X, "__esModule", {
        value: !0
    })
});
/*!
 * Bootstrap v5.3.8 (https://getbootstrap.com/)
 * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */
(function(X, ie) {
    typeof exports == "object" && typeof module < "u" ? module.exports = ie() : typeof define == "function" && define.amd ? define(ie) : (X = typeof globalThis < "u" ? globalThis : X || self).bootstrap = ie()
})(this, function() {
    "use strict";
    const X = new Map,
        ie = {
            set(n, e, t) {
                X.has(n) || X.set(n, new Map);
                const i = X.get(n);
                i.has(e) || i.size === 0 ? i.set(e, t) : console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(i.keys())[0]}.`)
            },
            get: (n, e) => X.has(n) && X.get(n).get(e) || null,
            remove(n, e) {
                if (!X.has(n)) return;
                const t = X.get(n);
                t.delete(e), t.size === 0 && X.delete(n)
            }
        },
        Re = "transitionend",
        ve = n => (n && window.CSS && window.CSS.escape && (n = n.replace(/#([^\s"#']+)/g, (e, t) => `#${CSS.escape(t)}`)), n),
        un = n => n == null ? `${n}` : Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase(),
        Qe = n => {
            n.dispatchEvent(new Event(Re))
        },
        Ae = n => !(!n || typeof n != "object") && (n.jquery !== void 0 && (n = n[0]), n.nodeType !== void 0),
        be = n => Ae(n) ? n.jquery ? n[0] : n : typeof n == "string" && n.length > 0 ? document.querySelector(ve(n)) : null,
        Ge = n => {
            if (!Ae(n) || n.getClientRects().length === 0) return !1;
            const e = getComputedStyle(n).getPropertyValue("visibility") === "visible",
                t = n.closest("details:not([open])");
            if (!t) return e;
            if (t !== n) {
                const i = n.closest("summary");
                if (i && i.parentNode !== t || i === null) return !1
            }
            return e
        },
        ze = n => !n || n.nodeType !== Node.ELEMENT_NODE || !!n.classList.contains("disabled") || (n.disabled !== void 0 ? n.disabled : n.hasAttribute("disabled") && n.getAttribute("disabled") !== "false"),
        rt = n => {
            if (!document.documentElement.attachShadow) return null;
            if (typeof n.getRootNode == "function") {
                const e = n.getRootNode();
                return e instanceof ShadowRoot ? e : null
            }
            return n instanceof ShadowRoot ? n : n.parentNode ? rt(n.parentNode) : null
        },
        gt = () => {},
        pe = n => {
            n.offsetHeight
        },
        Ve = () => window.jQuery && !document.body.hasAttribute("data-bs-no-jquery") ? window.jQuery : null,
        Dt = [],
        oe = () => document.documentElement.dir === "rtl",
        me = n => {
            var e;
            e = () => {
                const t = Ve();
                if (t) {
                    const i = n.NAME,
                        r = t.fn[i];
                    t.fn[i] = n.jQueryInterface, t.fn[i].Constructor = n, t.fn[i].noConflict = () => (t.fn[i] = r, n.jQueryInterface)
                }
            }, document.readyState === "loading" ? (Dt.length || document.addEventListener("DOMContentLoaded", () => {
                for (const t of Dt) t()
            }), Dt.push(e)) : e()
        },
        ge = (n, e = [], t = n) => typeof n == "function" ? n.call(...e) : t,
        Vt = (n, e, t = !0) => {
            if (!t) return void ge(n);
            const i = (c => {
                if (!c) return 0;
                let {
                    transitionDuration: f,
                    transitionDelay: m
                } = window.getComputedStyle(c);
                const w = Number.parseFloat(f),
                    x = Number.parseFloat(m);
                return w || x ? (f = f.split(",")[0], m = m.split(",")[0], 1e3 * (Number.parseFloat(f) + Number.parseFloat(m))) : 0
            })(e) + 5;
            let r = !1;
            const a = ({
                target: c
            }) => {
                c === e && (r = !0, e.removeEventListener(Re, a), ge(n))
            };
            e.addEventListener(Re, a), setTimeout(() => {
                r || Qe(e)
            }, i)
        },
        _t = (n, e, t, i) => {
            const r = n.length;
            let a = n.indexOf(e);
            return a === -1 ? !t && i ? n[r - 1] : n[0] : (a += t ? 1 : -1, i && (a = (a + r) % r), n[Math.max(0, Math.min(a, r - 1))])
        },
        Tn = /[^.]*(?=\..*)\.|.*/,
        St = /\..*/,
        ei = /::\d+$/,
        qt = {};
    let vt = 1;
    const de = {
            mouseenter: "mouseover",
            mouseleave: "mouseout"
        },
        Te = new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]);

    function ye(n, e) {
        return e && `${e}::${vt++}` || n.uidEvent || vt++
    }

    function he(n) {
        const e = ye(n);
        return n.uidEvent = e, qt[e] = qt[e] || {}, qt[e]
    }

    function Kt(n, e, t = null) {
        return Object.values(n).find(i => i.callable === e && i.delegationSelector === t)
    }

    function bt(n, e, t) {
        const i = typeof e == "string",
            r = i ? t : e || t;
        let a = yt(n);
        return Te.has(a) || (a = n), [i, r, a]
    }

    function at(n, e, t, i, r) {
        if (typeof e != "string" || !n) return;
        let [a, c, f] = bt(e, t, i);
        e in de && (c = (S => function(C) {
            if (!C.relatedTarget || C.relatedTarget !== C.delegateTarget && !C.delegateTarget.contains(C.relatedTarget)) return S.call(this, C)
        })(c));
        const m = he(n),
            w = m[f] || (m[f] = {}),
            x = Kt(w, c, a ? t : null);
        if (x) return void(x.oneOff = x.oneOff && r);
        const b = ye(c, e.replace(Tn, "")),
            N = a ? function(T, S, C) {
                return function j(J) {
                    const ne = T.querySelectorAll(S);
                    for (let {
                            target: B
                        } = J; B && B !== this; B = B.parentNode)
                        for (const U of ne)
                            if (U === B) return Ut(J, {
                                delegateTarget: B
                            }), j.oneOff && d.off(T, J.type, S, C), C.apply(B, [J])
                }
            }(n, t, c) : function(T, S) {
                return function C(j) {
                    return Ut(j, {
                        delegateTarget: T
                    }), C.oneOff && d.off(T, j.type, S), S.apply(T, [j])
                }
            }(n, c);
        N.delegationSelector = a ? t : null, N.callable = c, N.oneOff = r, N.uidEvent = b, w[b] = N, n.addEventListener(f, N, a)
    }

    function lt(n, e, t, i, r) {
        const a = Kt(e[t], i, r);
        a && (n.removeEventListener(t, a, !!r), delete e[t][a.uidEvent])
    }

    function Cn(n, e, t, i) {
        const r = e[t] || {};
        for (const [a, c] of Object.entries(r)) a.includes(i) && lt(n, e, t, c.callable, c.delegationSelector)
    }

    function yt(n) {
        return n = n.replace(St, ""), de[n] || n
    }
    const d = {
        on(n, e, t, i) {
            at(n, e, t, i, !1)
        },
        one(n, e, t, i) {
            at(n, e, t, i, !0)
        },
        off(n, e, t, i) {
            if (typeof e != "string" || !n) return;
            const [r, a, c] = bt(e, t, i), f = c !== e, m = he(n), w = m[c] || {}, x = e.startsWith(".");
            if (a === void 0) {
                if (x)
                    for (const b of Object.keys(m)) Cn(n, m, b, e.slice(1));
                for (const [b, N] of Object.entries(w)) {
                    const T = b.replace(ei, "");
                    f && !e.includes(T) || lt(n, m, c, N.callable, N.delegationSelector)
                }
            } else {
                if (!Object.keys(w).length) return;
                lt(n, m, c, a, r ? t : null)
            }
        },
        trigger(n, e, t) {
            if (typeof e != "string" || !n) return null;
            const i = Ve();
            let r = null,
                a = !0,
                c = !0,
                f = !1;
            e !== yt(e) && i && (r = i.Event(e, t), i(n).trigger(r), a = !r.isPropagationStopped(), c = !r.isImmediatePropagationStopped(), f = r.isDefaultPrevented());
            const m = Ut(new Event(e, {
                bubbles: a,
                cancelable: !0
            }), t);
            return f && m.preventDefault(), c && n.dispatchEvent(m), m.defaultPrevented && r && r.preventDefault(), m
        }
    };

    function Ut(n, e = {}) {
        for (const [t, i] of Object.entries(e)) try {
            n[t] = i
        } catch {
            Object.defineProperty(n, t, {
                configurable: !0,
                get: () => i
            })
        }
        return n
    }

    function kn(n) {
        if (n === "true") return !0;
        if (n === "false") return !1;
        if (n === Number(n).toString()) return Number(n);
        if (n === "" || n === "null") return null;
        if (typeof n != "string") return n;
        try {
            return JSON.parse(decodeURIComponent(n))
        } catch {
            return n
        }
    }

    function fn(n) {
        return n.replace(/[A-Z]/g, e => `-${e.toLowerCase()}`)
    }
    const Me = {
        setDataAttribute(n, e, t) {
            n.setAttribute(`data-bs-${fn(e)}`, t)
        },
        removeDataAttribute(n, e) {
            n.removeAttribute(`data-bs-${fn(e)}`)
        },
        getDataAttributes(n) {
            if (!n) return {};
            const e = {},
                t = Object.keys(n.dataset).filter(i => i.startsWith("bs") && !i.startsWith("bsConfig"));
            for (const i of t) {
                let r = i.replace(/^bs/, "");
                r = r.charAt(0).toLowerCase() + r.slice(1), e[r] = kn(n.dataset[i])
            }
            return e
        },
        getDataAttribute: (n, e) => kn(n.getAttribute(`data-bs-${fn(e)}`))
    };
    class ct {
        static get Default() {
            return {}
        }
        static get DefaultType() {
            return {}
        }
        static get NAME() {
            throw new Error('You have to implement the static method "NAME", for each component!')
        }
        _getConfig(e) {
            return e = this._mergeConfigObj(e), e = this._configAfterMerge(e), this._typeCheckConfig(e), e
        }
        _configAfterMerge(e) {
            return e
        }
        _mergeConfigObj(e, t) {
            const i = Ae(t) ? Me.getDataAttribute(t, "config") : {};
            return { ...this.constructor.Default,
                ...typeof i == "object" ? i : {},
                ...Ae(t) ? Me.getDataAttributes(t) : {},
                ...typeof e == "object" ? e : {}
            }
        }
        _typeCheckConfig(e, t = this.constructor.DefaultType) {
            for (const [i, r] of Object.entries(t)) {
                const a = e[i],
                    c = Ae(a) ? "element" : un(a);
                if (!new RegExp(r).test(c)) throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${c}" but expected type "${r}".`)
            }
        }
    }
    class Ce extends ct {
        constructor(e, t) {
            super(), (e = be(e)) && (this._element = e, this._config = this._getConfig(t), ie.set(this._element, this.constructor.DATA_KEY, this))
        }
        dispose() {
            ie.remove(this._element, this.constructor.DATA_KEY), d.off(this._element, this.constructor.EVENT_KEY);
            for (const e of Object.getOwnPropertyNames(this)) this[e] = null
        }
        _queueCallback(e, t, i = !0) {
            Vt(e, t, i)
        }
        _getConfig(e) {
            return e = this._mergeConfigObj(e, this._element), e = this._configAfterMerge(e), this._typeCheckConfig(e), e
        }
        static getInstance(e) {
            return ie.get(be(e), this.DATA_KEY)
        }
        static getOrCreateInstance(e, t = {}) {
            return this.getInstance(e) || new this(e, typeof t == "object" ? t : null)
        }
        static get VERSION() {
            return "5.3.8"
        }
        static get DATA_KEY() {
            return `bs.${this.NAME}`
        }
        static get EVENT_KEY() {
            return `.${this.DATA_KEY}`
        }
        static eventName(e) {
            return `${e}${this.EVENT_KEY}`
        }
    }
    const dn = n => {
            let e = n.getAttribute("data-bs-target");
            if (!e || e === "#") {
                let t = n.getAttribute("href");
                if (!t || !t.includes("#") && !t.startsWith(".")) return null;
                t.includes("#") && !t.startsWith("#") && (t = `#${t.split("#")[1]}`), e = t && t !== "#" ? t.trim() : null
            }
            return e ? e.split(",").map(t => ve(t)).join(",") : null
        },
        E = {
            find: (n, e = document.documentElement) => [].concat(...Element.prototype.querySelectorAll.call(e, n)),
            findOne: (n, e = document.documentElement) => Element.prototype.querySelector.call(e, n),
            children: (n, e) => [].concat(...n.children).filter(t => t.matches(e)),
            parents(n, e) {
                const t = [];
                let i = n.parentNode.closest(e);
                for (; i;) t.push(i), i = i.parentNode.closest(e);
                return t
            },
            prev(n, e) {
                let t = n.previousElementSibling;
                for (; t;) {
                    if (t.matches(e)) return [t];
                    t = t.previousElementSibling
                }
                return []
            },
            next(n, e) {
                let t = n.nextElementSibling;
                for (; t;) {
                    if (t.matches(e)) return [t];
                    t = t.nextElementSibling
                }
                return []
            },
            focusableChildren(n) {
                const e = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map(t => `${t}:not([tabindex^="-"])`).join(",");
                return this.find(e, n).filter(t => !ze(t) && Ge(t))
            },
            getSelectorFromElement(n) {
                const e = dn(n);
                return e && E.findOne(e) ? e : null
            },
            getElementFromSelector(n) {
                const e = dn(n);
                return e ? E.findOne(e) : null
            },
            getMultipleElementsFromSelector(n) {
                const e = dn(n);
                return e ? E.find(e) : []
            }
        },
        qe = (n, e = "hide") => {
            const t = `click.dismiss${n.EVENT_KEY}`,
                i = n.NAME;
            d.on(document, t, `[data-bs-dismiss="${i}"]`, function(r) {
                if (["A", "AREA"].includes(this.tagName) && r.preventDefault(), ze(this)) return;
                const a = E.getElementFromSelector(this) || this.closest(`.${i}`);
                n.getOrCreateInstance(a)[e]()
            })
        },
        Xt = ".bs.alert",
        Ln = `close${Xt}`,
        Dn = `closed${Xt}`;
    class wt extends Ce {
        static get NAME() {
            return "alert"
        }
        close() {
            if (d.trigger(this._element, Ln).defaultPrevented) return;
            this._element.classList.remove("show");
            const e = this._element.classList.contains("fade");
            this._queueCallback(() => this._destroyElement(), this._element, e)
        }
        _destroyElement() {
            this._element.remove(), d.trigger(this._element, Dn), this.dispose()
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = wt.getOrCreateInstance(this);
                if (typeof e == "string") {
                    if (t[e] === void 0 || e.startsWith("_") || e === "constructor") throw new TypeError(`No method named "${e}"`);
                    t[e](this)
                }
            })
        }
    }
    qe(wt, "close"), me(wt);
    const ut = '[data-bs-toggle="button"]';
    class xt extends Ce {
        static get NAME() {
            return "button"
        }
        toggle() {
            this._element.setAttribute("aria-pressed", this._element.classList.toggle("active"))
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = xt.getOrCreateInstance(this);
                e === "toggle" && t[e]()
            })
        }
    }
    d.on(document, "click.bs.button.data-api", ut, n => {
        n.preventDefault();
        const e = n.target.closest(ut);
        xt.getOrCreateInstance(e).toggle()
    }), me(xt);
    const ft = ".bs.swipe",
        hn = `touchstart${ft}`,
        Yt = `touchmove${ft}`,
        pn = `touchend${ft}`,
        mn = `pointerdown${ft}`,
        ti = `pointerup${ft}`,
        Sn = {
            endCallback: null,
            leftCallback: null,
            rightCallback: null
        },
        gn = {
            endCallback: "(function|null)",
            leftCallback: "(function|null)",
            rightCallback: "(function|null)"
        };
    class Et extends ct {
        constructor(e, t) {
            super(), this._element = e, e && Et.isSupported() && (this._config = this._getConfig(t), this._deltaX = 0, this._supportPointerEvents = !!window.PointerEvent, this._initEvents())
        }
        static get Default() {
            return Sn
        }
        static get DefaultType() {
            return gn
        }
        static get NAME() {
            return "swipe"
        }
        dispose() {
            d.off(this._element, ft)
        }
        _start(e) {
            this._supportPointerEvents ? this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX) : this._deltaX = e.touches[0].clientX
        }
        _end(e) {
            this._eventIsPointerPenTouch(e) && (this._deltaX = e.clientX - this._deltaX), this._handleSwipe(), ge(this._config.endCallback)
        }
        _move(e) {
            this._deltaX = e.touches && e.touches.length > 1 ? 0 : e.touches[0].clientX - this._deltaX
        }
        _handleSwipe() {
            const e = Math.abs(this._deltaX);
            if (e <= 40) return;
            const t = e / this._deltaX;
            this._deltaX = 0, t && ge(t > 0 ? this._config.rightCallback : this._config.leftCallback)
        }
        _initEvents() {
            this._supportPointerEvents ? (d.on(this._element, mn, e => this._start(e)), d.on(this._element, ti, e => this._end(e)), this._element.classList.add("pointer-event")) : (d.on(this._element, hn, e => this._start(e)), d.on(this._element, Yt, e => this._move(e)), d.on(this._element, pn, e => this._end(e)))
        }
        _eventIsPointerPenTouch(e) {
            return this._supportPointerEvents && (e.pointerType === "pen" || e.pointerType === "touch")
        }
        static isSupported() {
            return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0
        }
    }
    const Ke = ".bs.carousel",
        jn = ".data-api",
        Qt = "ArrowLeft",
        ni = "ArrowRight",
        Ot = "next",
        At = "prev",
        dt = "left",
        Je = "right",
        Pn = `slide${Ke}`,
        Gt = `slid${Ke}`,
        Mn = `keydown${Ke}`,
        $n = `mouseenter${Ke}`,
        In = `mouseleave${Ke}`,
        ii = `dragstart${Ke}`,
        Nn = `load${Ke}${jn}`,
        si = `click${Ke}${jn}`,
        o = "carousel",
        s = "active",
        l = ".active",
        u = ".carousel-item",
        _ = l + u,
        h = {
            [Qt]: Je,
            [ni]: dt
        },
        v = {
            interval: 5e3,
            keyboard: !0,
            pause: "hover",
            ride: !1,
            touch: !0,
            wrap: !0
        },
        p = {
            interval: "(number|boolean)",
            keyboard: "boolean",
            pause: "(string|boolean)",
            ride: "(boolean|string)",
            touch: "boolean",
            wrap: "boolean"
        };
    class g extends Ce {
        constructor(e, t) {
            super(e, t), this._interval = null, this._activeElement = null, this._isSliding = !1, this.touchTimeout = null, this._swipeHelper = null, this._indicatorsElement = E.findOne(".carousel-indicators", this._element), this._addEventListeners(), this._config.ride === o && this.cycle()
        }
        static get Default() {
            return v
        }
        static get DefaultType() {
            return p
        }
        static get NAME() {
            return "carousel"
        }
        next() {
            this._slide(Ot)
        }
        nextWhenVisible() {
            !document.hidden && Ge(this._element) && this.next()
        }
        prev() {
            this._slide(At)
        }
        pause() {
            this._isSliding && Qe(this._element), this._clearInterval()
        }
        cycle() {
            this._clearInterval(), this._updateInterval(), this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval)
        }
        _maybeEnableCycle() {
            this._config.ride && (this._isSliding ? d.one(this._element, Gt, () => this.cycle()) : this.cycle())
        }
        to(e) {
            const t = this._getItems();
            if (e > t.length - 1 || e < 0) return;
            if (this._isSliding) return void d.one(this._element, Gt, () => this.to(e));
            const i = this._getItemIndex(this._getActive());
            if (i === e) return;
            const r = e > i ? Ot : At;
            this._slide(r, t[e])
        }
        dispose() {
            this._swipeHelper && this._swipeHelper.dispose(), super.dispose()
        }
        _configAfterMerge(e) {
            return e.defaultInterval = e.interval, e
        }
        _addEventListeners() {
            this._config.keyboard && d.on(this._element, Mn, e => this._keydown(e)), this._config.pause === "hover" && (d.on(this._element, $n, () => this.pause()), d.on(this._element, In, () => this._maybeEnableCycle())), this._config.touch && Et.isSupported() && this._addTouchEventListeners()
        }
        _addTouchEventListeners() {
            for (const t of E.find(".carousel-item img", this._element)) d.on(t, ii, i => i.preventDefault());
            const e = {
                leftCallback: () => this._slide(this._directionToOrder(dt)),
                rightCallback: () => this._slide(this._directionToOrder(Je)),
                endCallback: () => {
                    this._config.pause === "hover" && (this.pause(), this.touchTimeout && clearTimeout(this.touchTimeout), this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), 500 + this._config.interval))
                }
            };
            this._swipeHelper = new Et(this._element, e)
        }
        _keydown(e) {
            if (/input|textarea/i.test(e.target.tagName)) return;
            const t = h[e.key];
            t && (e.preventDefault(), this._slide(this._directionToOrder(t)))
        }
        _getItemIndex(e) {
            return this._getItems().indexOf(e)
        }
        _setActiveIndicatorElement(e) {
            if (!this._indicatorsElement) return;
            const t = E.findOne(l, this._indicatorsElement);
            t.classList.remove(s), t.removeAttribute("aria-current");
            const i = E.findOne(`[data-bs-slide-to="${e}"]`, this._indicatorsElement);
            i && (i.classList.add(s), i.setAttribute("aria-current", "true"))
        }
        _updateInterval() {
            const e = this._activeElement || this._getActive();
            if (!e) return;
            const t = Number.parseInt(e.getAttribute("data-bs-interval"), 10);
            this._config.interval = t || this._config.defaultInterval
        }
        _slide(e, t = null) {
            if (this._isSliding) return;
            const i = this._getActive(),
                r = e === Ot,
                a = t || _t(this._getItems(), i, r, this._config.wrap);
            if (a === i) return;
            const c = this._getItemIndex(a),
                f = b => d.trigger(this._element, b, {
                    relatedTarget: a,
                    direction: this._orderToDirection(e),
                    from: this._getItemIndex(i),
                    to: c
                });
            if (f(Pn).defaultPrevented || !i || !a) return;
            const m = !!this._interval;
            this.pause(), this._isSliding = !0, this._setActiveIndicatorElement(c), this._activeElement = a;
            const w = r ? "carousel-item-start" : "carousel-item-end",
                x = r ? "carousel-item-next" : "carousel-item-prev";
            a.classList.add(x), pe(a), i.classList.add(w), a.classList.add(w), this._queueCallback(() => {
                a.classList.remove(w, x), a.classList.add(s), i.classList.remove(s, x, w), this._isSliding = !1, f(Gt)
            }, i, this._isAnimated()), m && this.cycle()
        }
        _isAnimated() {
            return this._element.classList.contains("slide")
        }
        _getActive() {
            return E.findOne(_, this._element)
        }
        _getItems() {
            return E.find(u, this._element)
        }
        _clearInterval() {
            this._interval && (clearInterval(this._interval), this._interval = null)
        }
        _directionToOrder(e) {
            return oe() ? e === dt ? At : Ot : e === dt ? Ot : At
        }
        _orderToDirection(e) {
            return oe() ? e === At ? dt : Je : e === At ? Je : dt
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = g.getOrCreateInstance(this, e);
                if (typeof e != "number") {
                    if (typeof e == "string") {
                        if (t[e] === void 0 || e.startsWith("_") || e === "constructor") throw new TypeError(`No method named "${e}"`);
                        t[e]()
                    }
                } else t.to(e)
            })
        }
    }
    d.on(document, si, "[data-bs-slide], [data-bs-slide-to]", function(n) {
        const e = E.getElementFromSelector(this);
        if (!e || !e.classList.contains(o)) return;
        n.preventDefault();
        const t = g.getOrCreateInstance(e),
            i = this.getAttribute("data-bs-slide-to");
        return i ? (t.to(i), void t._maybeEnableCycle()) : Me.getDataAttribute(this, "slide") === "next" ? (t.next(), void t._maybeEnableCycle()) : (t.prev(), void t._maybeEnableCycle())
    }), d.on(window, Nn, () => {
        const n = E.find('[data-bs-ride="carousel"]');
        for (const e of n) g.getOrCreateInstance(e)
    }), me(g);
    const O = ".bs.collapse",
        A = `show${O}`,
        y = `shown${O}`,
        q = `hide${O}`,
        I = `hidden${O}`,
        F = `click${O}.data-api`,
        W = "show",
        k = "collapse",
        G = "collapsing",
        te = `:scope .${k} .${k}`,
        V = '[data-bs-toggle="collapse"]',
        K = {
            parent: null,
            toggle: !0
        },
        M = {
            parent: "(null|element)",
            toggle: "boolean"
        };
    class D extends Ce {
        constructor(e, t) {
            super(e, t), this._isTransitioning = !1, this._triggerArray = [];
            const i = E.find(V);
            for (const r of i) {
                const a = E.getSelectorFromElement(r),
                    c = E.find(a).filter(f => f === this._element);
                a !== null && c.length && this._triggerArray.push(r)
            }
            this._initializeChildren(), this._config.parent || this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()), this._config.toggle && this.toggle()
        }
        static get Default() {
            return K
        }
        static get DefaultType() {
            return M
        }
        static get NAME() {
            return "collapse"
        }
        toggle() {
            this._isShown() ? this.hide() : this.show()
        }
        show() {
            if (this._isTransitioning || this._isShown()) return;
            let e = [];
            if (this._config.parent && (e = this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(r => r !== this._element).map(r => D.getOrCreateInstance(r, {
                    toggle: !1
                }))), e.length && e[0]._isTransitioning || d.trigger(this._element, A).defaultPrevented) return;
            for (const r of e) r.hide();
            const t = this._getDimension();
            this._element.classList.remove(k), this._element.classList.add(G), this._element.style[t] = 0, this._addAriaAndCollapsedClass(this._triggerArray, !0), this._isTransitioning = !0;
            const i = `scroll${t[0].toUpperCase()+t.slice(1)}`;
            this._queueCallback(() => {
                this._isTransitioning = !1, this._element.classList.remove(G), this._element.classList.add(k, W), this._element.style[t] = "", d.trigger(this._element, y)
            }, this._element, !0), this._element.style[t] = `${this._element[i]}px`
        }
        hide() {
            if (this._isTransitioning || !this._isShown() || d.trigger(this._element, q).defaultPrevented) return;
            const e = this._getDimension();
            this._element.style[e] = `${this._element.getBoundingClientRect()[e]}px`, pe(this._element), this._element.classList.add(G), this._element.classList.remove(k, W);
            for (const t of this._triggerArray) {
                const i = E.getElementFromSelector(t);
                i && !this._isShown(i) && this._addAriaAndCollapsedClass([t], !1)
            }
            this._isTransitioning = !0, this._element.style[e] = "", this._queueCallback(() => {
                this._isTransitioning = !1, this._element.classList.remove(G), this._element.classList.add(k), d.trigger(this._element, I)
            }, this._element, !0)
        }
        _isShown(e = this._element) {
            return e.classList.contains(W)
        }
        _configAfterMerge(e) {
            return e.toggle = !!e.toggle, e.parent = be(e.parent), e
        }
        _getDimension() {
            return this._element.classList.contains("collapse-horizontal") ? "width" : "height"
        }
        _initializeChildren() {
            if (!this._config.parent) return;
            const e = this._getFirstLevelChildren(V);
            for (const t of e) {
                const i = E.getElementFromSelector(t);
                i && this._addAriaAndCollapsedClass([t], this._isShown(i))
            }
        }
        _getFirstLevelChildren(e) {
            const t = E.find(te, this._config.parent);
            return E.find(e, this._config.parent).filter(i => !t.includes(i))
        }
        _addAriaAndCollapsedClass(e, t) {
            if (e.length)
                for (const i of e) i.classList.toggle("collapsed", !t), i.setAttribute("aria-expanded", t)
        }
        static jQueryInterface(e) {
            const t = {};
            return typeof e == "string" && /show|hide/.test(e) && (t.toggle = !1), this.each(function() {
                const i = D.getOrCreateInstance(this, t);
                if (typeof e == "string") {
                    if (i[e] === void 0) throw new TypeError(`No method named "${e}"`);
                    i[e]()
                }
            })
        }
    }
    d.on(document, F, V, function(n) {
        (n.target.tagName === "A" || n.delegateTarget && n.delegateTarget.tagName === "A") && n.preventDefault();
        for (const e of E.getMultipleElementsFromSelector(this)) D.getOrCreateInstance(e, {
            toggle: !1
        }).toggle()
    }), me(D);
    var L = "top",
        $ = "bottom",
        P = "right",
        R = "left",
        le = "auto",
        ue = [L, $, P, R],
        ce = "start",
        _e = "end",
        je = "clippingParents",
        se = "viewport",
        we = "popper",
        Ze = "reference",
        Tt = ue.reduce(function(n, e) {
            return n.concat([e + "-" + ce, e + "-" + _e])
        }, []),
        et = [].concat(ue, [le]).reduce(function(n, e) {
            return n.concat([e, e + "-" + ce, e + "-" + _e])
        }, []),
        ke = "beforeRead",
        Le = "read",
        jt = "afterRead",
        Pt = "beforeMain",
        Mt = "main",
        _n = "afterMain",
        vn = "beforeWrite",
        $t = "write",
        Hn = "afterWrite",
        Fn = [ke, Le, jt, Pt, Mt, _n, vn, $t, Hn];

    function De(n) {
        return n ? (n.nodeName || "").toLowerCase() : null
    }

    function xe(n) {
        if (n == null) return window;
        if (n.toString() !== "[object Window]") {
            var e = n.ownerDocument;
            return e && e.defaultView || window
        }
        return n
    }

    function tt(n) {
        return n instanceof xe(n).Element || n instanceof Element
    }

    function Se(n) {
        return n instanceof xe(n).HTMLElement || n instanceof HTMLElement
    }

    function Jt(n) {
        return typeof ShadowRoot < "u" && (n instanceof xe(n).ShadowRoot || n instanceof ShadowRoot)
    }
    const Zt = {
        name: "applyStyles",
        enabled: !0,
        phase: "write",
        fn: function(n) {
            var e = n.state;
            Object.keys(e.elements).forEach(function(t) {
                var i = e.styles[t] || {},
                    r = e.attributes[t] || {},
                    a = e.elements[t];
                Se(a) && De(a) && (Object.assign(a.style, i), Object.keys(r).forEach(function(c) {
                    var f = r[c];
                    f === !1 ? a.removeAttribute(c) : a.setAttribute(c, f === !0 ? "" : f)
                }))
            })
        },
        effect: function(n) {
            var e = n.state,
                t = {
                    popper: {
                        position: e.options.strategy,
                        left: "0",
                        top: "0",
                        margin: "0"
                    },
                    arrow: {
                        position: "absolute"
                    },
                    reference: {}
                };
            return Object.assign(e.elements.popper.style, t.popper), e.styles = t, e.elements.arrow && Object.assign(e.elements.arrow.style, t.arrow),
                function() {
                    Object.keys(e.elements).forEach(function(i) {
                        var r = e.elements[i],
                            a = e.attributes[i] || {},
                            c = Object.keys(e.styles.hasOwnProperty(i) ? e.styles[i] : t[i]).reduce(function(f, m) {
                                return f[m] = "", f
                            }, {});
                        Se(r) && De(r) && (Object.assign(r.style, c), Object.keys(a).forEach(function(f) {
                            r.removeAttribute(f)
                        }))
                    })
                }
        },
        requires: ["computeStyles"]
    };

    function $e(n) {
        return n.split("-")[0]
    }
    var ht = Math.max,
        Ie = Math.min,
        Ue = Math.round;

    function en() {
        var n = navigator.userAgentData;
        return n != null && n.brands && Array.isArray(n.brands) ? n.brands.map(function(e) {
            return e.brand + "/" + e.version
        }).join(" ") : navigator.userAgent
    }

    function bn() {
        return !/^((?!chrome|android).)*safari/i.test(en())
    }

    function nt(n, e, t) {
        e === void 0 && (e = !1), t === void 0 && (t = !1);
        var i = n.getBoundingClientRect(),
            r = 1,
            a = 1;
        e && Se(n) && (r = n.offsetWidth > 0 && Ue(i.width) / n.offsetWidth || 1, a = n.offsetHeight > 0 && Ue(i.height) / n.offsetHeight || 1);
        var c = (tt(n) ? xe(n) : window).visualViewport,
            f = !bn() && t,
            m = (i.left + (f && c ? c.offsetLeft : 0)) / r,
            w = (i.top + (f && c ? c.offsetTop : 0)) / a,
            x = i.width / r,
            b = i.height / a;
        return {
            width: x,
            height: b,
            top: w,
            right: m + x,
            bottom: w + b,
            left: m,
            x: m,
            y: w
        }
    }

    function tn(n) {
        var e = nt(n),
            t = n.offsetWidth,
            i = n.offsetHeight;
        return Math.abs(e.width - t) <= 1 && (t = e.width), Math.abs(e.height - i) <= 1 && (i = e.height), {
            x: n.offsetLeft,
            y: n.offsetTop,
            width: t,
            height: i
        }
    }

    function yn(n, e) {
        var t = e.getRootNode && e.getRootNode();
        if (n.contains(e)) return !0;
        if (t && Jt(t)) {
            var i = e;
            do {
                if (i && n.isSameNode(i)) return !0;
                i = i.parentNode || i.host
            } while (i)
        }
        return !1
    }

    function Ne(n) {
        return xe(n).getComputedStyle(n)
    }

    function Wn(n) {
        return ["table", "td", "th"].indexOf(De(n)) >= 0
    }

    function it(n) {
        return ((tt(n) ? n.ownerDocument : n.document) || window.document).documentElement
    }

    function nn(n) {
        return De(n) === "html" ? n : n.assignedSlot || n.parentNode || (Jt(n) ? n.host : null) || it(n)
    }

    function sn(n) {
        return Se(n) && Ne(n).position !== "fixed" ? n.offsetParent : null
    }

    function Ct(n) {
        for (var e = xe(n), t = sn(n); t && Wn(t) && Ne(t).position === "static";) t = sn(t);
        return t && (De(t) === "html" || De(t) === "body" && Ne(t).position === "static") ? e : t || function(i) {
            var r = /firefox/i.test(en());
            if (/Trident/i.test(en()) && Se(i) && Ne(i).position === "fixed") return null;
            var a = nn(i);
            for (Jt(a) && (a = a.host); Se(a) && ["html", "body"].indexOf(De(a)) < 0;) {
                var c = Ne(a);
                if (c.transform !== "none" || c.perspective !== "none" || c.contain === "paint" || ["transform", "perspective"].indexOf(c.willChange) !== -1 || r && c.willChange === "filter" || r && c.filter && c.filter !== "none") return a;
                a = a.parentNode
            }
            return null
        }(n) || e
    }

    function oi(n) {
        return ["top", "bottom"].indexOf(n) >= 0 ? "x" : "y"
    }

    function wn(n, e, t) {
        return ht(n, Ie(e, t))
    }

    function Li(n) {
        return Object.assign({}, {
            top: 0,
            right: 0,
            bottom: 0,
            left: 0
        }, n)
    }

    function Di(n, e) {
        return e.reduce(function(t, i) {
            return t[i] = n, t
        }, {})
    }
    const Si = {
        name: "arrow",
        enabled: !0,
        phase: "main",
        fn: function(n) {
            var e, t = n.state,
                i = n.name,
                r = n.options,
                a = t.elements.arrow,
                c = t.modifiersData.popperOffsets,
                f = $e(t.placement),
                m = oi(f),
                w = [R, P].indexOf(f) >= 0 ? "height" : "width";
            if (a && c) {
                var x = function(Z, Q) {
                        return Li(typeof(Z = typeof Z == "function" ? Z(Object.assign({}, Q.rects, {
                            placement: Q.placement
                        })) : Z) != "number" ? Z : Di(Z, ue))
                    }(r.padding, t),
                    b = tn(a),
                    N = m === "y" ? L : R,
                    T = m === "y" ? $ : P,
                    S = t.rects.reference[w] + t.rects.reference[m] - c[m] - t.rects.popper[w],
                    C = c[m] - t.rects.reference[m],
                    j = Ct(a),
                    J = j ? m === "y" ? j.clientHeight || 0 : j.clientWidth || 0 : 0,
                    ne = S / 2 - C / 2,
                    B = x[N],
                    U = J - b[w] - x[T],
                    H = J / 2 - b[w] / 2 + ne,
                    z = wn(B, H, U),
                    Y = m;
                t.modifiersData[i] = ((e = {})[Y] = z, e.centerOffset = z - H, e)
            }
        },
        effect: function(n) {
            var e = n.state,
                t = n.options.element,
                i = t === void 0 ? "[data-popper-arrow]" : t;
            i != null && (typeof i != "string" || (i = e.elements.popper.querySelector(i))) && yn(e.elements.popper, i) && (e.elements.arrow = i)
        },
        requires: ["popperOffsets"],
        requiresIfExists: ["preventOverflow"]
    };

    function on(n) {
        return n.split("-")[1]
    }
    var Ws = {
        top: "auto",
        right: "auto",
        bottom: "auto",
        left: "auto"
    };

    function ji(n) {
        var e, t = n.popper,
            i = n.popperRect,
            r = n.placement,
            a = n.variation,
            c = n.offsets,
            f = n.position,
            m = n.gpuAcceleration,
            w = n.adaptive,
            x = n.roundOffsets,
            b = n.isFixed,
            N = c.x,
            T = N === void 0 ? 0 : N,
            S = c.y,
            C = S === void 0 ? 0 : S,
            j = typeof x == "function" ? x({
                x: T,
                y: C
            }) : {
                x: T,
                y: C
            };
        T = j.x, C = j.y;
        var J = c.hasOwnProperty("x"),
            ne = c.hasOwnProperty("y"),
            B = R,
            U = L,
            H = window;
        if (w) {
            var z = Ct(t),
                Y = "clientHeight",
                Z = "clientWidth";
            z === xe(t) && Ne(z = it(t)).position !== "static" && f === "absolute" && (Y = "scrollHeight", Z = "scrollWidth"), (r === L || (r === R || r === P) && a === _e) && (U = $, C -= (b && z === H && H.visualViewport ? H.visualViewport.height : z[Y]) - i.height, C *= m ? 1 : -1), r !== R && (r !== L && r !== $ || a !== _e) || (B = P, T -= (b && z === H && H.visualViewport ? H.visualViewport.width : z[Z]) - i.width, T *= m ? 1 : -1)
        }
        var Q, ae = Object.assign({
                position: f
            }, w && Ws),
            Pe = x === !0 ? function(Ye, Ee) {
                var Fe = Ye.x,
                    We = Ye.y,
                    re = Ee.devicePixelRatio || 1;
                return {
                    x: Ue(Fe * re) / re || 0,
                    y: Ue(We * re) / re || 0
                }
            }({
                x: T,
                y: C
            }, xe(t)) : {
                x: T,
                y: C
            };
        return T = Pe.x, C = Pe.y, m ? Object.assign({}, ae, ((Q = {})[U] = ne ? "0" : "", Q[B] = J ? "0" : "", Q.transform = (H.devicePixelRatio || 1) <= 1 ? "translate(" + T + "px, " + C + "px)" : "translate3d(" + T + "px, " + C + "px, 0)", Q)) : Object.assign({}, ae, ((e = {})[U] = ne ? C + "px" : "", e[B] = J ? T + "px" : "", e.transform = "", e))
    }
    const ri = {
        name: "computeStyles",
        enabled: !0,
        phase: "beforeWrite",
        fn: function(n) {
            var e = n.state,
                t = n.options,
                i = t.gpuAcceleration,
                r = i === void 0 || i,
                a = t.adaptive,
                c = a === void 0 || a,
                f = t.roundOffsets,
                m = f === void 0 || f,
                w = {
                    placement: $e(e.placement),
                    variation: on(e.placement),
                    popper: e.elements.popper,
                    popperRect: e.rects.popper,
                    gpuAcceleration: r,
                    isFixed: e.options.strategy === "fixed"
                };
            e.modifiersData.popperOffsets != null && (e.styles.popper = Object.assign({}, e.styles.popper, ji(Object.assign({}, w, {
                offsets: e.modifiersData.popperOffsets,
                position: e.options.strategy,
                adaptive: c,
                roundOffsets: m
            })))), e.modifiersData.arrow != null && (e.styles.arrow = Object.assign({}, e.styles.arrow, ji(Object.assign({}, w, {
                offsets: e.modifiersData.arrow,
                position: "absolute",
                adaptive: !1,
                roundOffsets: m
            })))), e.attributes.popper = Object.assign({}, e.attributes.popper, {
                "data-popper-placement": e.placement
            })
        },
        data: {}
    };
    var Bn = {
        passive: !0
    };
    const ai = {
        name: "eventListeners",
        enabled: !0,
        phase: "write",
        fn: function() {},
        effect: function(n) {
            var e = n.state,
                t = n.instance,
                i = n.options,
                r = i.scroll,
                a = r === void 0 || r,
                c = i.resize,
                f = c === void 0 || c,
                m = xe(e.elements.popper),
                w = [].concat(e.scrollParents.reference, e.scrollParents.popper);
            return a && w.forEach(function(x) {
                    x.addEventListener("scroll", t.update, Bn)
                }), f && m.addEventListener("resize", t.update, Bn),
                function() {
                    a && w.forEach(function(x) {
                        x.removeEventListener("scroll", t.update, Bn)
                    }), f && m.removeEventListener("resize", t.update, Bn)
                }
        },
        data: {}
    };
    var Bs = {
        left: "right",
        right: "left",
        bottom: "top",
        top: "bottom"
    };

    function Rn(n) {
        return n.replace(/left|right|bottom|top/g, function(e) {
            return Bs[e]
        })
    }
    var Rs = {
        start: "end",
        end: "start"
    };

    function Pi(n) {
        return n.replace(/start|end/g, function(e) {
            return Rs[e]
        })
    }

    function li(n) {
        var e = xe(n);
        return {
            scrollLeft: e.pageXOffset,
            scrollTop: e.pageYOffset
        }
    }

    function ci(n) {
        return nt(it(n)).left + li(n).scrollLeft
    }

    function ui(n) {
        var e = Ne(n),
            t = e.overflow,
            i = e.overflowX,
            r = e.overflowY;
        return /auto|scroll|overlay|hidden/.test(t + r + i)
    }

    function Mi(n) {
        return ["html", "body", "#document"].indexOf(De(n)) >= 0 ? n.ownerDocument.body : Se(n) && ui(n) ? n : Mi(nn(n))
    }

    function xn(n, e) {
        var t;
        e === void 0 && (e = []);
        var i = Mi(n),
            r = i === ((t = n.ownerDocument) == null ? void 0 : t.body),
            a = xe(i),
            c = r ? [a].concat(a.visualViewport || [], ui(i) ? i : []) : i,
            f = e.concat(c);
        return r ? f : f.concat(xn(nn(c)))
    }

    function fi(n) {
        return Object.assign({}, n, {
            left: n.x,
            top: n.y,
            right: n.x + n.width,
            bottom: n.y + n.height
        })
    }

    function $i(n, e, t) {
        return e === se ? fi(function(i, r) {
            var a = xe(i),
                c = it(i),
                f = a.visualViewport,
                m = c.clientWidth,
                w = c.clientHeight,
                x = 0,
                b = 0;
            if (f) {
                m = f.width, w = f.height;
                var N = bn();
                (N || !N && r === "fixed") && (x = f.offsetLeft, b = f.offsetTop)
            }
            return {
                width: m,
                height: w,
                x: x + ci(i),
                y: b
            }
        }(n, t)) : tt(e) ? function(i, r) {
            var a = nt(i, !1, r === "fixed");
            return a.top = a.top + i.clientTop, a.left = a.left + i.clientLeft, a.bottom = a.top + i.clientHeight, a.right = a.left + i.clientWidth, a.width = i.clientWidth, a.height = i.clientHeight, a.x = a.left, a.y = a.top, a
        }(e, t) : fi(function(i) {
            var r, a = it(i),
                c = li(i),
                f = (r = i.ownerDocument) == null ? void 0 : r.body,
                m = ht(a.scrollWidth, a.clientWidth, f ? f.scrollWidth : 0, f ? f.clientWidth : 0),
                w = ht(a.scrollHeight, a.clientHeight, f ? f.scrollHeight : 0, f ? f.clientHeight : 0),
                x = -c.scrollLeft + ci(i),
                b = -c.scrollTop;
            return Ne(f || a).direction === "rtl" && (x += ht(a.clientWidth, f ? f.clientWidth : 0) - m), {
                width: m,
                height: w,
                x,
                y: b
            }
        }(it(n)))
    }

    function Ii(n) {
        var e, t = n.reference,
            i = n.element,
            r = n.placement,
            a = r ? $e(r) : null,
            c = r ? on(r) : null,
            f = t.x + t.width / 2 - i.width / 2,
            m = t.y + t.height / 2 - i.height / 2;
        switch (a) {
            case L:
                e = {
                    x: f,
                    y: t.y - i.height
                };
                break;
            case $:
                e = {
                    x: f,
                    y: t.y + t.height
                };
                break;
            case P:
                e = {
                    x: t.x + t.width,
                    y: m
                };
                break;
            case R:
                e = {
                    x: t.x - i.width,
                    y: m
                };
                break;
            default:
                e = {
                    x: t.x,
                    y: t.y
                }
        }
        var w = a ? oi(a) : null;
        if (w != null) {
            var x = w === "y" ? "height" : "width";
            switch (c) {
                case ce:
                    e[w] = e[w] - (t[x] / 2 - i[x] / 2);
                    break;
                case _e:
                    e[w] = e[w] + (t[x] / 2 - i[x] / 2)
            }
        }
        return e
    }

    function rn(n, e) {
        e === void 0 && (e = {});
        var t = e,
            i = t.placement,
            r = i === void 0 ? n.placement : i,
            a = t.strategy,
            c = a === void 0 ? n.strategy : a,
            f = t.boundary,
            m = f === void 0 ? je : f,
            w = t.rootBoundary,
            x = w === void 0 ? se : w,
            b = t.elementContext,
            N = b === void 0 ? we : b,
            T = t.altBoundary,
            S = T !== void 0 && T,
            C = t.padding,
            j = C === void 0 ? 0 : C,
            J = Li(typeof j != "number" ? j : Di(j, ue)),
            ne = N === we ? Ze : we,
            B = n.rects.popper,
            U = n.elements[S ? ne : N],
            H = function(Ee, Fe, We, re) {
                var st = Fe === "clippingParents" ? function(ee) {
                        var Oe = xn(nn(ee)),
                            Be = ["absolute", "fixed"].indexOf(Ne(ee).position) >= 0 && Se(ee) ? Ct(ee) : ee;
                        return tt(Be) ? Oe.filter(function(Lt) {
                            return tt(Lt) && yn(Lt, Be) && De(Lt) !== "body"
                        }) : []
                    }(Ee) : [].concat(Fe),
                    ot = [].concat(st, [We]),
                    cn = ot[0],
                    fe = ot.reduce(function(ee, Oe) {
                        var Be = $i(Ee, Oe, re);
                        return ee.top = ht(Be.top, ee.top), ee.right = Ie(Be.right, ee.right), ee.bottom = Ie(Be.bottom, ee.bottom), ee.left = ht(Be.left, ee.left), ee
                    }, $i(Ee, cn, re));
                return fe.width = fe.right - fe.left, fe.height = fe.bottom - fe.top, fe.x = fe.left, fe.y = fe.top, fe
            }(tt(U) ? U : U.contextElement || it(n.elements.popper), m, x, c),
            z = nt(n.elements.reference),
            Y = Ii({
                reference: z,
                element: B,
                placement: r
            }),
            Z = fi(Object.assign({}, B, Y)),
            Q = N === we ? Z : z,
            ae = {
                top: H.top - Q.top + J.top,
                bottom: Q.bottom - H.bottom + J.bottom,
                left: H.left - Q.left + J.left,
                right: Q.right - H.right + J.right
            },
            Pe = n.modifiersData.offset;
        if (N === we && Pe) {
            var Ye = Pe[r];
            Object.keys(ae).forEach(function(Ee) {
                var Fe = [P, $].indexOf(Ee) >= 0 ? 1 : -1,
                    We = [L, $].indexOf(Ee) >= 0 ? "y" : "x";
                ae[Ee] += Ye[We] * Fe
            })
        }
        return ae
    }

    function zs(n, e) {
        e === void 0 && (e = {});
        var t = e,
            i = t.placement,
            r = t.boundary,
            a = t.rootBoundary,
            c = t.padding,
            f = t.flipVariations,
            m = t.allowedAutoPlacements,
            w = m === void 0 ? et : m,
            x = on(i),
            b = x ? f ? Tt : Tt.filter(function(S) {
                return on(S) === x
            }) : ue,
            N = b.filter(function(S) {
                return w.indexOf(S) >= 0
            });
        N.length === 0 && (N = b);
        var T = N.reduce(function(S, C) {
            return S[C] = rn(n, {
                placement: C,
                boundary: r,
                rootBoundary: a,
                padding: c
            })[$e(C)], S
        }, {});
        return Object.keys(T).sort(function(S, C) {
            return T[S] - T[C]
        })
    }
    const Ni = {
        name: "flip",
        enabled: !0,
        phase: "main",
        fn: function(n) {
            var e = n.state,
                t = n.options,
                i = n.name;
            if (!e.modifiersData[i]._skip) {
                for (var r = t.mainAxis, a = r === void 0 || r, c = t.altAxis, f = c === void 0 || c, m = t.fallbackPlacements, w = t.padding, x = t.boundary, b = t.rootBoundary, N = t.altBoundary, T = t.flipVariations, S = T === void 0 || T, C = t.allowedAutoPlacements, j = e.options.placement, J = $e(j), ne = m || (J !== j && S ? function(ee) {
                        if ($e(ee) === le) return [];
                        var Oe = Rn(ee);
                        return [Pi(ee), Oe, Pi(Oe)]
                    }(j) : [Rn(j)]), B = [j].concat(ne).reduce(function(ee, Oe) {
                        return ee.concat($e(Oe) === le ? zs(e, {
                            placement: Oe,
                            boundary: x,
                            rootBoundary: b,
                            padding: w,
                            flipVariations: S,
                            allowedAutoPlacements: C
                        }) : Oe)
                    }, []), U = e.rects.reference, H = e.rects.popper, z = new Map, Y = !0, Z = B[0], Q = 0; Q < B.length; Q++) {
                    var ae = B[Q],
                        Pe = $e(ae),
                        Ye = on(ae) === ce,
                        Ee = [L, $].indexOf(Pe) >= 0,
                        Fe = Ee ? "width" : "height",
                        We = rn(e, {
                            placement: ae,
                            boundary: x,
                            rootBoundary: b,
                            altBoundary: N,
                            padding: w
                        }),
                        re = Ee ? Ye ? P : R : Ye ? $ : L;
                    U[Fe] > H[Fe] && (re = Rn(re));
                    var st = Rn(re),
                        ot = [];
                    if (a && ot.push(We[Pe] <= 0), f && ot.push(We[re] <= 0, We[st] <= 0), ot.every(function(ee) {
                            return ee
                        })) {
                        Z = ae, Y = !1;
                        break
                    }
                    z.set(ae, ot)
                }
                if (Y)
                    for (var cn = function(ee) {
                            var Oe = B.find(function(Be) {
                                var Lt = z.get(Be);
                                if (Lt) return Lt.slice(0, ee).every(function(Gn) {
                                    return Gn
                                })
                            });
                            if (Oe) return Z = Oe, "break"
                        }, fe = S ? 3 : 1; fe > 0 && cn(fe) !== "break"; fe--);
                e.placement !== Z && (e.modifiersData[i]._skip = !0, e.placement = Z, e.reset = !0)
            }
        },
        requiresIfExists: ["offset"],
        data: {
            _skip: !1
        }
    };

    function Hi(n, e, t) {
        return t === void 0 && (t = {
            x: 0,
            y: 0
        }), {
            top: n.top - e.height - t.y,
            right: n.right - e.width + t.x,
            bottom: n.bottom - e.height + t.y,
            left: n.left - e.width - t.x
        }
    }

    function Fi(n) {
        return [L, P, $, R].some(function(e) {
            return n[e] >= 0
        })
    }
    const Wi = {
            name: "hide",
            enabled: !0,
            phase: "main",
            requiresIfExists: ["preventOverflow"],
            fn: function(n) {
                var e = n.state,
                    t = n.name,
                    i = e.rects.reference,
                    r = e.rects.popper,
                    a = e.modifiersData.preventOverflow,
                    c = rn(e, {
                        elementContext: "reference"
                    }),
                    f = rn(e, {
                        altBoundary: !0
                    }),
                    m = Hi(c, i),
                    w = Hi(f, r, a),
                    x = Fi(m),
                    b = Fi(w);
                e.modifiersData[t] = {
                    referenceClippingOffsets: m,
                    popperEscapeOffsets: w,
                    isReferenceHidden: x,
                    hasPopperEscaped: b
                }, e.attributes.popper = Object.assign({}, e.attributes.popper, {
                    "data-popper-reference-hidden": x,
                    "data-popper-escaped": b
                })
            }
        },
        Bi = {
            name: "offset",
            enabled: !0,
            phase: "main",
            requires: ["popperOffsets"],
            fn: function(n) {
                var e = n.state,
                    t = n.options,
                    i = n.name,
                    r = t.offset,
                    a = r === void 0 ? [0, 0] : r,
                    c = et.reduce(function(x, b) {
                        return x[b] = function(N, T, S) {
                            var C = $e(N),
                                j = [R, L].indexOf(C) >= 0 ? -1 : 1,
                                J = typeof S == "function" ? S(Object.assign({}, T, {
                                    placement: N
                                })) : S,
                                ne = J[0],
                                B = J[1];
                            return ne = ne || 0, B = (B || 0) * j, [R, P].indexOf(C) >= 0 ? {
                                x: B,
                                y: ne
                            } : {
                                x: ne,
                                y: B
                            }
                        }(b, e.rects, a), x
                    }, {}),
                    f = c[e.placement],
                    m = f.x,
                    w = f.y;
                e.modifiersData.popperOffsets != null && (e.modifiersData.popperOffsets.x += m, e.modifiersData.popperOffsets.y += w), e.modifiersData[i] = c
            }
        },
        di = {
            name: "popperOffsets",
            enabled: !0,
            phase: "read",
            fn: function(n) {
                var e = n.state,
                    t = n.name;
                e.modifiersData[t] = Ii({
                    reference: e.rects.reference,
                    element: e.rects.popper,
                    placement: e.placement
                })
            },
            data: {}
        },
        Ri = {
            name: "preventOverflow",
            enabled: !0,
            phase: "main",
            fn: function(n) {
                var e = n.state,
                    t = n.options,
                    i = n.name,
                    r = t.mainAxis,
                    a = r === void 0 || r,
                    c = t.altAxis,
                    f = c !== void 0 && c,
                    m = t.boundary,
                    w = t.rootBoundary,
                    x = t.altBoundary,
                    b = t.padding,
                    N = t.tether,
                    T = N === void 0 || N,
                    S = t.tetherOffset,
                    C = S === void 0 ? 0 : S,
                    j = rn(e, {
                        boundary: m,
                        rootBoundary: w,
                        padding: b,
                        altBoundary: x
                    }),
                    J = $e(e.placement),
                    ne = on(e.placement),
                    B = !ne,
                    U = oi(J),
                    H = U === "x" ? "y" : "x",
                    z = e.modifiersData.popperOffsets,
                    Y = e.rects.reference,
                    Z = e.rects.popper,
                    Q = typeof C == "function" ? C(Object.assign({}, e.rects, {
                        placement: e.placement
                    })) : C,
                    ae = typeof Q == "number" ? {
                        mainAxis: Q,
                        altAxis: Q
                    } : Object.assign({
                        mainAxis: 0,
                        altAxis: 0
                    }, Q),
                    Pe = e.modifiersData.offset ? e.modifiersData.offset[e.placement] : null,
                    Ye = {
                        x: 0,
                        y: 0
                    };
                if (z) {
                    if (a) {
                        var Ee, Fe = U === "y" ? L : R,
                            We = U === "y" ? $ : P,
                            re = U === "y" ? "height" : "width",
                            st = z[U],
                            ot = st + j[Fe],
                            cn = st - j[We],
                            fe = T ? -Z[re] / 2 : 0,
                            ee = ne === ce ? Y[re] : Z[re],
                            Oe = ne === ce ? -Z[re] : -Y[re],
                            Be = e.elements.arrow,
                            Lt = T && Be ? tn(Be) : {
                                width: 0,
                                height: 0
                            },
                            Gn = e.modifiersData["arrow#persistent"] ? e.modifiersData["arrow#persistent"].padding : {
                                top: 0,
                                right: 0,
                                bottom: 0,
                                left: 0
                            },
                            ks = Gn[Fe],
                            Ls = Gn[We],
                            Jn = wn(0, Y[re], Lt[re]),
                            xr = B ? Y[re] / 2 - fe - Jn - ks - ae.mainAxis : ee - Jn - ks - ae.mainAxis,
                            Er = B ? -Y[re] / 2 + fe + Jn + Ls + ae.mainAxis : Oe + Jn + Ls + ae.mainAxis,
                            Ti = e.elements.arrow && Ct(e.elements.arrow),
                            Or = Ti ? U === "y" ? Ti.clientTop || 0 : Ti.clientLeft || 0 : 0,
                            Ds = (Ee = Pe ? .[U]) != null ? Ee : 0,
                            Ar = st + Er - Ds,
                            Ss = wn(T ? Ie(ot, st + xr - Ds - Or) : ot, st, T ? ht(cn, Ar) : cn);
                        z[U] = Ss, Ye[U] = Ss - st
                    }
                    if (f) {
                        var js, Tr = U === "x" ? L : R,
                            Cr = U === "x" ? $ : P,
                            zt = z[H],
                            Zn = H === "y" ? "height" : "width",
                            Ps = zt + j[Tr],
                            Ms = zt - j[Cr],
                            Ci = [L, R].indexOf(J) !== -1,
                            $s = (js = Pe ? .[H]) != null ? js : 0,
                            Is = Ci ? Ps : zt - Y[Zn] - Z[Zn] - $s + ae.altAxis,
                            Ns = Ci ? zt + Y[Zn] + Z[Zn] - $s - ae.altAxis : Ms,
                            Hs = T && Ci ? function(kr, Lr, ki) {
                                var Fs = wn(kr, Lr, ki);
                                return Fs > ki ? ki : Fs
                            }(Is, zt, Ns) : wn(T ? Is : Ps, zt, T ? Ns : Ms);
                        z[H] = Hs, Ye[H] = Hs - zt
                    }
                    e.modifiersData[i] = Ye
                }
            },
            requiresIfExists: ["offset"]
        };

    function Vs(n, e, t) {
        t === void 0 && (t = !1);
        var i, r, a = Se(e),
            c = Se(e) && function(b) {
                var N = b.getBoundingClientRect(),
                    T = Ue(N.width) / b.offsetWidth || 1,
                    S = Ue(N.height) / b.offsetHeight || 1;
                return T !== 1 || S !== 1
            }(e),
            f = it(e),
            m = nt(n, c, t),
            w = {
                scrollLeft: 0,
                scrollTop: 0
            },
            x = {
                x: 0,
                y: 0
            };
        return (a || !a && !t) && ((De(e) !== "body" || ui(f)) && (w = (i = e) !== xe(i) && Se(i) ? {
            scrollLeft: (r = i).scrollLeft,
            scrollTop: r.scrollTop
        } : li(i)), Se(e) ? ((x = nt(e, !0)).x += e.clientLeft, x.y += e.clientTop) : f && (x.x = ci(f))), {
            x: m.left + w.scrollLeft - x.x,
            y: m.top + w.scrollTop - x.y,
            width: m.width,
            height: m.height
        }
    }

    function qs(n) {
        var e = new Map,
            t = new Set,
            i = [];

        function r(a) {
            t.add(a.name), [].concat(a.requires || [], a.requiresIfExists || []).forEach(function(c) {
                if (!t.has(c)) {
                    var f = e.get(c);
                    f && r(f)
                }
            }), i.push(a)
        }
        return n.forEach(function(a) {
            e.set(a.name, a)
        }), n.forEach(function(a) {
            t.has(a.name) || r(a)
        }), i
    }
    var zi = {
        placement: "bottom",
        modifiers: [],
        strategy: "absolute"
    };

    function Vi() {
        for (var n = arguments.length, e = new Array(n), t = 0; t < n; t++) e[t] = arguments[t];
        return !e.some(function(i) {
            return !(i && typeof i.getBoundingClientRect == "function")
        })
    }

    function zn(n) {
        n === void 0 && (n = {});
        var e = n,
            t = e.defaultModifiers,
            i = t === void 0 ? [] : t,
            r = e.defaultOptions,
            a = r === void 0 ? zi : r;
        return function(c, f, m) {
            m === void 0 && (m = a);
            var w, x, b = {
                    placement: "bottom",
                    orderedModifiers: [],
                    options: Object.assign({}, zi, a),
                    modifiersData: {},
                    elements: {
                        reference: c,
                        popper: f
                    },
                    attributes: {},
                    styles: {}
                },
                N = [],
                T = !1,
                S = {
                    state: b,
                    setOptions: function(j) {
                        var J = typeof j == "function" ? j(b.options) : j;
                        C(), b.options = Object.assign({}, a, b.options, J), b.scrollParents = {
                            reference: tt(c) ? xn(c) : c.contextElement ? xn(c.contextElement) : [],
                            popper: xn(f)
                        };
                        var ne, B, U = function(H) {
                            var z = qs(H);
                            return Fn.reduce(function(Y, Z) {
                                return Y.concat(z.filter(function(Q) {
                                    return Q.phase === Z
                                }))
                            }, [])
                        }((ne = [].concat(i, b.options.modifiers), B = ne.reduce(function(H, z) {
                            var Y = H[z.name];
                            return H[z.name] = Y ? Object.assign({}, Y, z, {
                                options: Object.assign({}, Y.options, z.options),
                                data: Object.assign({}, Y.data, z.data)
                            }) : z, H
                        }, {}), Object.keys(B).map(function(H) {
                            return B[H]
                        })));
                        return b.orderedModifiers = U.filter(function(H) {
                            return H.enabled
                        }), b.orderedModifiers.forEach(function(H) {
                            var z = H.name,
                                Y = H.options,
                                Z = Y === void 0 ? {} : Y,
                                Q = H.effect;
                            if (typeof Q == "function") {
                                var ae = Q({
                                    state: b,
                                    name: z,
                                    instance: S,
                                    options: Z
                                });
                                N.push(ae || function() {})
                            }
                        }), S.update()
                    },
                    forceUpdate: function() {
                        if (!T) {
                            var j = b.elements,
                                J = j.reference,
                                ne = j.popper;
                            if (Vi(J, ne)) {
                                b.rects = {
                                    reference: Vs(J, Ct(ne), b.options.strategy === "fixed"),
                                    popper: tn(ne)
                                }, b.reset = !1, b.placement = b.options.placement, b.orderedModifiers.forEach(function(Q) {
                                    return b.modifiersData[Q.name] = Object.assign({}, Q.data)
                                });
                                for (var B = 0; B < b.orderedModifiers.length; B++)
                                    if (b.reset !== !0) {
                                        var U = b.orderedModifiers[B],
                                            H = U.fn,
                                            z = U.options,
                                            Y = z === void 0 ? {} : z,
                                            Z = U.name;
                                        typeof H == "function" && (b = H({
                                            state: b,
                                            options: Y,
                                            name: Z,
                                            instance: S
                                        }) || b)
                                    } else b.reset = !1, B = -1
                            }
                        }
                    },
                    update: (w = function() {
                        return new Promise(function(j) {
                            S.forceUpdate(), j(b)
                        })
                    }, function() {
                        return x || (x = new Promise(function(j) {
                            Promise.resolve().then(function() {
                                x = void 0, j(w())
                            })
                        })), x
                    }),
                    destroy: function() {
                        C(), T = !0
                    }
                };
            if (!Vi(c, f)) return S;

            function C() {
                N.forEach(function(j) {
                    return j()
                }), N = []
            }
            return S.setOptions(m).then(function(j) {
                !T && m.onFirstUpdate && m.onFirstUpdate(j)
            }), S
        }
    }
    var Ks = zn(),
        Us = zn({
            defaultModifiers: [ai, di, ri, Zt]
        }),
        hi = zn({
            defaultModifiers: [ai, di, ri, Zt, Bi, Ni, Ri, Si, Wi]
        });
    const qi = Object.freeze(Object.defineProperty({
            __proto__: null,
            afterMain: _n,
            afterRead: jt,
            afterWrite: Hn,
            applyStyles: Zt,
            arrow: Si,
            auto: le,
            basePlacements: ue,
            beforeMain: Pt,
            beforeRead: ke,
            beforeWrite: vn,
            bottom: $,
            clippingParents: je,
            computeStyles: ri,
            createPopper: hi,
            createPopperBase: Ks,
            createPopperLite: Us,
            detectOverflow: rn,
            end: _e,
            eventListeners: ai,
            flip: Ni,
            hide: Wi,
            left: R,
            main: Mt,
            modifierPhases: Fn,
            offset: Bi,
            placements: et,
            popper: we,
            popperGenerator: zn,
            popperOffsets: di,
            preventOverflow: Ri,
            read: Le,
            reference: Ze,
            right: P,
            start: ce,
            top: L,
            variationPlacements: Tt,
            viewport: se,
            write: $t
        }, Symbol.toStringTag, {
            value: "Module"
        })),
        Ki = "dropdown",
        It = ".bs.dropdown",
        pi = ".data-api",
        Xs = "ArrowUp",
        Ui = "ArrowDown",
        Ys = `hide${It}`,
        Qs = `hidden${It}`,
        Gs = `show${It}`,
        Js = `shown${It}`,
        Xi = `click${It}${pi}`,
        Yi = `keydown${It}${pi}`,
        Zs = `keyup${It}${pi}`,
        an = "show",
        Nt = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',
        eo = `${Nt}.${an}`,
        Vn = ".dropdown-menu",
        to = oe() ? "top-end" : "top-start",
        no = oe() ? "top-start" : "top-end",
        io = oe() ? "bottom-end" : "bottom-start",
        so = oe() ? "bottom-start" : "bottom-end",
        oo = oe() ? "left-start" : "right-start",
        ro = oe() ? "right-start" : "left-start",
        ao = {
            autoClose: !0,
            boundary: "clippingParents",
            display: "dynamic",
            offset: [0, 2],
            popperConfig: null,
            reference: "toggle"
        },
        lo = {
            autoClose: "(boolean|string)",
            boundary: "(string|element)",
            display: "string",
            offset: "(array|string|function)",
            popperConfig: "(null|object|function)",
            reference: "(string|element|object)"
        };
    class Xe extends Ce {
        constructor(e, t) {
            super(e, t), this._popper = null, this._parent = this._element.parentNode, this._menu = E.next(this._element, Vn)[0] || E.prev(this._element, Vn)[0] || E.findOne(Vn, this._parent), this._inNavbar = this._detectNavbar()
        }
        static get Default() {
            return ao
        }
        static get DefaultType() {
            return lo
        }
        static get NAME() {
            return Ki
        }
        toggle() {
            return this._isShown() ? this.hide() : this.show()
        }
        show() {
            if (ze(this._element) || this._isShown()) return;
            const e = {
                relatedTarget: this._element
            };
            if (!d.trigger(this._element, Gs, e).defaultPrevented) {
                if (this._createPopper(), "ontouchstart" in document.documentElement && !this._parent.closest(".navbar-nav"))
                    for (const t of [].concat(...document.body.children)) d.on(t, "mouseover", gt);
                this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.add(an), this._element.classList.add(an), d.trigger(this._element, Js, e)
            }
        }
        hide() {
            if (ze(this._element) || !this._isShown()) return;
            const e = {
                relatedTarget: this._element
            };
            this._completeHide(e)
        }
        dispose() {
            this._popper && this._popper.destroy(), super.dispose()
        }
        update() {
            this._inNavbar = this._detectNavbar(), this._popper && this._popper.update()
        }
        _completeHide(e) {
            if (!d.trigger(this._element, Ys, e).defaultPrevented) {
                if ("ontouchstart" in document.documentElement)
                    for (const t of [].concat(...document.body.children)) d.off(t, "mouseover", gt);
                this._popper && this._popper.destroy(), this._menu.classList.remove(an), this._element.classList.remove(an), this._element.setAttribute("aria-expanded", "false"), Me.removeDataAttribute(this._menu, "popper"), d.trigger(this._element, Qs, e)
            }
        }
        _getConfig(e) {
            if (typeof(e = super._getConfig(e)).reference == "object" && !Ae(e.reference) && typeof e.reference.getBoundingClientRect != "function") throw new TypeError(`${Ki.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
            return e
        }
        _createPopper() {
            if (qi === void 0) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)");
            let e = this._element;
            this._config.reference === "parent" ? e = this._parent : Ae(this._config.reference) ? e = be(this._config.reference) : typeof this._config.reference == "object" && (e = this._config.reference);
            const t = this._getPopperConfig();
            this._popper = hi(e, this._menu, t)
        }
        _isShown() {
            return this._menu.classList.contains(an)
        }
        _getPlacement() {
            const e = this._parent;
            if (e.classList.contains("dropend")) return oo;
            if (e.classList.contains("dropstart")) return ro;
            if (e.classList.contains("dropup-center")) return "top";
            if (e.classList.contains("dropdown-center")) return "bottom";
            const t = getComputedStyle(this._menu).getPropertyValue("--bs-position").trim() === "end";
            return e.classList.contains("dropup") ? t ? no : to : t ? so : io
        }
        _detectNavbar() {
            return this._element.closest(".navbar") !== null
        }
        _getOffset() {
            const {
                offset: e
            } = this._config;
            return typeof e == "string" ? e.split(",").map(t => Number.parseInt(t, 10)) : typeof e == "function" ? t => e(t, this._element) : e
        }
        _getPopperConfig() {
            const e = {
                placement: this._getPlacement(),
                modifiers: [{
                    name: "preventOverflow",
                    options: {
                        boundary: this._config.boundary
                    }
                }, {
                    name: "offset",
                    options: {
                        offset: this._getOffset()
                    }
                }]
            };
            return (this._inNavbar || this._config.display === "static") && (Me.setDataAttribute(this._menu, "popper", "static"), e.modifiers = [{
                name: "applyStyles",
                enabled: !1
            }]), { ...e,
                ...ge(this._config.popperConfig, [void 0, e])
            }
        }
        _selectMenuItem({
            key: e,
            target: t
        }) {
            const i = E.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", this._menu).filter(r => Ge(r));
            i.length && _t(i, t, e === Ui, !i.includes(t)).focus()
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = Xe.getOrCreateInstance(this, e);
                if (typeof e == "string") {
                    if (t[e] === void 0) throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            })
        }
        static clearMenus(e) {
            if (e.button === 2 || e.type === "keyup" && e.key !== "Tab") return;
            const t = E.find(eo);
            for (const i of t) {
                const r = Xe.getInstance(i);
                if (!r || r._config.autoClose === !1) continue;
                const a = e.composedPath(),
                    c = a.includes(r._menu);
                if (a.includes(r._element) || r._config.autoClose === "inside" && !c || r._config.autoClose === "outside" && c || r._menu.contains(e.target) && (e.type === "keyup" && e.key === "Tab" || /input|select|option|textarea|form/i.test(e.target.tagName))) continue;
                const f = {
                    relatedTarget: r._element
                };
                e.type === "click" && (f.clickEvent = e), r._completeHide(f)
            }
        }
        static dataApiKeydownHandler(e) {
            const t = /input|textarea/i.test(e.target.tagName),
                i = e.key === "Escape",
                r = [Xs, Ui].includes(e.key);
            if (!r && !i || t && !i) return;
            e.preventDefault();
            const a = this.matches(Nt) ? this : E.prev(this, Nt)[0] || E.next(this, Nt)[0] || E.findOne(Nt, e.delegateTarget.parentNode),
                c = Xe.getOrCreateInstance(a);
            if (r) return e.stopPropagation(), c.show(), void c._selectMenuItem(e);
            c._isShown() && (e.stopPropagation(), c.hide(), a.focus())
        }
    }
    d.on(document, Yi, Nt, Xe.dataApiKeydownHandler), d.on(document, Yi, Vn, Xe.dataApiKeydownHandler), d.on(document, Xi, Xe.clearMenus), d.on(document, Zs, Xe.clearMenus), d.on(document, Xi, Nt, function(n) {
        n.preventDefault(), Xe.getOrCreateInstance(this).toggle()
    }), me(Xe);
    const Qi = "backdrop",
        Gi = "show",
        Ji = `mousedown.bs.${Qi}`,
        co = {
            className: "modal-backdrop",
            clickCallback: null,
            isAnimated: !1,
            isVisible: !0,
            rootElement: "body"
        },
        uo = {
            className: "string",
            clickCallback: "(function|null)",
            isAnimated: "boolean",
            isVisible: "boolean",
            rootElement: "(element|string)"
        };
    class Zi extends ct {
        constructor(e) {
            super(), this._config = this._getConfig(e), this._isAppended = !1, this._element = null
        }
        static get Default() {
            return co
        }
        static get DefaultType() {
            return uo
        }
        static get NAME() {
            return Qi
        }
        show(e) {
            if (!this._config.isVisible) return void ge(e);
            this._append();
            const t = this._getElement();
            this._config.isAnimated && pe(t), t.classList.add(Gi), this._emulateAnimation(() => {
                ge(e)
            })
        }
        hide(e) {
            this._config.isVisible ? (this._getElement().classList.remove(Gi), this._emulateAnimation(() => {
                this.dispose(), ge(e)
            })) : ge(e)
        }
        dispose() {
            this._isAppended && (d.off(this._element, Ji), this._element.remove(), this._isAppended = !1)
        }
        _getElement() {
            if (!this._element) {
                const e = document.createElement("div");
                e.className = this._config.className, this._config.isAnimated && e.classList.add("fade"), this._element = e
            }
            return this._element
        }
        _configAfterMerge(e) {
            return e.rootElement = be(e.rootElement), e
        }
        _append() {
            if (this._isAppended) return;
            const e = this._getElement();
            this._config.rootElement.append(e), d.on(e, Ji, () => {
                ge(this._config.clickCallback)
            }), this._isAppended = !0
        }
        _emulateAnimation(e) {
            Vt(e, this._getElement(), this._config.isAnimated)
        }
    }
    const qn = ".bs.focustrap",
        fo = `focusin${qn}`,
        ho = `keydown.tab${qn}`,
        es = "backward",
        po = {
            autofocus: !0,
            trapElement: null
        },
        mo = {
            autofocus: "boolean",
            trapElement: "element"
        };
    class ts extends ct {
        constructor(e) {
            super(), this._config = this._getConfig(e), this._isActive = !1, this._lastTabNavDirection = null
        }
        static get Default() {
            return po
        }
        static get DefaultType() {
            return mo
        }
        static get NAME() {
            return "focustrap"
        }
        activate() {
            this._isActive || (this._config.autofocus && this._config.trapElement.focus(), d.off(document, qn), d.on(document, fo, e => this._handleFocusin(e)), d.on(document, ho, e => this._handleKeydown(e)), this._isActive = !0)
        }
        deactivate() {
            this._isActive && (this._isActive = !1, d.off(document, qn))
        }
        _handleFocusin(e) {
            const {
                trapElement: t
            } = this._config;
            if (e.target === document || e.target === t || t.contains(e.target)) return;
            const i = E.focusableChildren(t);
            i.length === 0 ? t.focus() : this._lastTabNavDirection === es ? i[i.length - 1].focus() : i[0].focus()
        }
        _handleKeydown(e) {
            e.key === "Tab" && (this._lastTabNavDirection = e.shiftKey ? es : "forward")
        }
    }
    const ns = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
        is = ".sticky-top",
        Kn = "padding-right",
        ss = "margin-right";
    class mi {
        constructor() {
            this._element = document.body
        }
        getWidth() {
            const e = document.documentElement.clientWidth;
            return Math.abs(window.innerWidth - e)
        }
        hide() {
            const e = this.getWidth();
            this._disableOverFlow(), this._setElementAttributes(this._element, Kn, t => t + e), this._setElementAttributes(ns, Kn, t => t + e), this._setElementAttributes(is, ss, t => t - e)
        }
        reset() {
            this._resetElementAttributes(this._element, "overflow"), this._resetElementAttributes(this._element, Kn), this._resetElementAttributes(ns, Kn), this._resetElementAttributes(is, ss)
        }
        isOverflowing() {
            return this.getWidth() > 0
        }
        _disableOverFlow() {
            this._saveInitialAttribute(this._element, "overflow"), this._element.style.overflow = "hidden"
        }
        _setElementAttributes(e, t, i) {
            const r = this.getWidth();
            this._applyManipulationCallback(e, a => {
                if (a !== this._element && window.innerWidth > a.clientWidth + r) return;
                this._saveInitialAttribute(a, t);
                const c = window.getComputedStyle(a).getPropertyValue(t);
                a.style.setProperty(t, `${i(Number.parseFloat(c))}px`)
            })
        }
        _saveInitialAttribute(e, t) {
            const i = e.style.getPropertyValue(t);
            i && Me.setDataAttribute(e, t, i)
        }
        _resetElementAttributes(e, t) {
            this._applyManipulationCallback(e, i => {
                const r = Me.getDataAttribute(i, t);
                r !== null ? (Me.removeDataAttribute(i, t), i.style.setProperty(t, r)) : i.style.removeProperty(t)
            })
        }
        _applyManipulationCallback(e, t) {
            if (Ae(e)) t(e);
            else
                for (const i of E.find(e, this._element)) t(i)
        }
    }
    const He = ".bs.modal",
        go = `hide${He}`,
        _o = `hidePrevented${He}`,
        os = `hidden${He}`,
        rs = `show${He}`,
        vo = `shown${He}`,
        bo = `resize${He}`,
        yo = `click.dismiss${He}`,
        wo = `mousedown.dismiss${He}`,
        xo = `keydown.dismiss${He}`,
        Eo = `click${He}.data-api`,
        as = "modal-open",
        ls = "show",
        gi = "modal-static",
        Oo = {
            backdrop: !0,
            focus: !0,
            keyboard: !0
        },
        Ao = {
            backdrop: "(boolean|string)",
            focus: "boolean",
            keyboard: "boolean"
        };
    class Ht extends Ce {
        constructor(e, t) {
            super(e, t), this._dialog = E.findOne(".modal-dialog", this._element), this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._isShown = !1, this._isTransitioning = !1, this._scrollBar = new mi, this._addEventListeners()
        }
        static get Default() {
            return Oo
        }
        static get DefaultType() {
            return Ao
        }
        static get NAME() {
            return "modal"
        }
        toggle(e) {
            return this._isShown ? this.hide() : this.show(e)
        }
        show(e) {
            this._isShown || this._isTransitioning || d.trigger(this._element, rs, {
                relatedTarget: e
            }).defaultPrevented || (this._isShown = !0, this._isTransitioning = !0, this._scrollBar.hide(), document.body.classList.add(as), this._adjustDialog(), this._backdrop.show(() => this._showElement(e)))
        }
        hide() {
            this._isShown && !this._isTransitioning && (d.trigger(this._element, go).defaultPrevented || (this._isShown = !1, this._isTransitioning = !0, this._focustrap.deactivate(), this._element.classList.remove(ls), this._queueCallback(() => this._hideModal(), this._element, this._isAnimated())))
        }
        dispose() {
            d.off(window, He), d.off(this._dialog, He), this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose()
        }
        handleUpdate() {
            this._adjustDialog()
        }
        _initializeBackDrop() {
            return new Zi({
                isVisible: !!this._config.backdrop,
                isAnimated: this._isAnimated()
            })
        }
        _initializeFocusTrap() {
            return new ts({
                trapElement: this._element
            })
        }
        _showElement(e) {
            document.body.contains(this._element) || document.body.append(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0;
            const t = E.findOne(".modal-body", this._dialog);
            t && (t.scrollTop = 0), pe(this._element), this._element.classList.add(ls), this._queueCallback(() => {
                this._config.focus && this._focustrap.activate(), this._isTransitioning = !1, d.trigger(this._element, vo, {
                    relatedTarget: e
                })
            }, this._dialog, this._isAnimated())
        }
        _addEventListeners() {
            d.on(this._element, xo, e => {
                e.key === "Escape" && (this._config.keyboard ? this.hide() : this._triggerBackdropTransition())
            }), d.on(window, bo, () => {
                this._isShown && !this._isTransitioning && this._adjustDialog()
            }), d.on(this._element, wo, e => {
                d.one(this._element, yo, t => {
                    this._element === e.target && this._element === t.target && (this._config.backdrop !== "static" ? this._config.backdrop && this.hide() : this._triggerBackdropTransition())
                })
            })
        }
        _hideModal() {
            this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._backdrop.hide(() => {
                document.body.classList.remove(as), this._resetAdjustments(), this._scrollBar.reset(), d.trigger(this._element, os)
            })
        }
        _isAnimated() {
            return this._element.classList.contains("fade")
        }
        _triggerBackdropTransition() {
            if (d.trigger(this._element, _o).defaultPrevented) return;
            const e = this._element.scrollHeight > document.documentElement.clientHeight,
                t = this._element.style.overflowY;
            t === "hidden" || this._element.classList.contains(gi) || (e || (this._element.style.overflowY = "hidden"), this._element.classList.add(gi), this._queueCallback(() => {
                this._element.classList.remove(gi), this._queueCallback(() => {
                    this._element.style.overflowY = t
                }, this._dialog)
            }, this._dialog), this._element.focus())
        }
        _adjustDialog() {
            const e = this._element.scrollHeight > document.documentElement.clientHeight,
                t = this._scrollBar.getWidth(),
                i = t > 0;
            if (i && !e) {
                const r = oe() ? "paddingLeft" : "paddingRight";
                this._element.style[r] = `${t}px`
            }
            if (!i && e) {
                const r = oe() ? "paddingRight" : "paddingLeft";
                this._element.style[r] = `${t}px`
            }
        }
        _resetAdjustments() {
            this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
        }
        static jQueryInterface(e, t) {
            return this.each(function() {
                const i = Ht.getOrCreateInstance(this, e);
                if (typeof e == "string") {
                    if (i[e] === void 0) throw new TypeError(`No method named "${e}"`);
                    i[e](t)
                }
            })
        }
    }
    d.on(document, Eo, '[data-bs-toggle="modal"]', function(n) {
        const e = E.getElementFromSelector(this);
        ["A", "AREA"].includes(this.tagName) && n.preventDefault(), d.one(e, rs, i => {
            i.defaultPrevented || d.one(e, os, () => {
                Ge(this) && this.focus()
            })
        });
        const t = E.findOne(".modal.show");
        t && Ht.getInstance(t).hide(), Ht.getOrCreateInstance(e).toggle(this)
    }), qe(Ht), me(Ht);
    const pt = ".bs.offcanvas",
        cs = ".data-api",
        To = `load${pt}${cs}`,
        us = "show",
        fs = "showing",
        ds = "hiding",
        hs = ".offcanvas.show",
        Co = `show${pt}`,
        ko = `shown${pt}`,
        Lo = `hide${pt}`,
        ps = `hidePrevented${pt}`,
        ms = `hidden${pt}`,
        Do = `resize${pt}`,
        So = `click${pt}${cs}`,
        jo = `keydown.dismiss${pt}`,
        Po = {
            backdrop: !0,
            keyboard: !0,
            scroll: !1
        },
        Mo = {
            backdrop: "(boolean|string)",
            keyboard: "boolean",
            scroll: "boolean"
        };
    class mt extends Ce {
        constructor(e, t) {
            super(e, t), this._isShown = !1, this._backdrop = this._initializeBackDrop(), this._focustrap = this._initializeFocusTrap(), this._addEventListeners()
        }
        static get Default() {
            return Po
        }
        static get DefaultType() {
            return Mo
        }
        static get NAME() {
            return "offcanvas"
        }
        toggle(e) {
            return this._isShown ? this.hide() : this.show(e)
        }
        show(e) {
            this._isShown || d.trigger(this._element, Co, {
                relatedTarget: e
            }).defaultPrevented || (this._isShown = !0, this._backdrop.show(), this._config.scroll || new mi().hide(), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.classList.add(fs), this._queueCallback(() => {
                this._config.scroll && !this._config.backdrop || this._focustrap.activate(), this._element.classList.add(us), this._element.classList.remove(fs), d.trigger(this._element, ko, {
                    relatedTarget: e
                })
            }, this._element, !0))
        }
        hide() {
            this._isShown && (d.trigger(this._element, Lo).defaultPrevented || (this._focustrap.deactivate(), this._element.blur(), this._isShown = !1, this._element.classList.add(ds), this._backdrop.hide(), this._queueCallback(() => {
                this._element.classList.remove(us, ds), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._config.scroll || new mi().reset(), d.trigger(this._element, ms)
            }, this._element, !0)))
        }
        dispose() {
            this._backdrop.dispose(), this._focustrap.deactivate(), super.dispose()
        }
        _initializeBackDrop() {
            const e = !!this._config.backdrop;
            return new Zi({
                className: "offcanvas-backdrop",
                isVisible: e,
                isAnimated: !0,
                rootElement: this._element.parentNode,
                clickCallback: e ? () => {
                    this._config.backdrop !== "static" ? this.hide() : d.trigger(this._element, ps)
                } : null
            })
        }
        _initializeFocusTrap() {
            return new ts({
                trapElement: this._element
            })
        }
        _addEventListeners() {
            d.on(this._element, jo, e => {
                e.key === "Escape" && (this._config.keyboard ? this.hide() : d.trigger(this._element, ps))
            })
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = mt.getOrCreateInstance(this, e);
                if (typeof e == "string") {
                    if (t[e] === void 0 || e.startsWith("_") || e === "constructor") throw new TypeError(`No method named "${e}"`);
                    t[e](this)
                }
            })
        }
    }
    d.on(document, So, '[data-bs-toggle="offcanvas"]', function(n) {
        const e = E.getElementFromSelector(this);
        if (["A", "AREA"].includes(this.tagName) && n.preventDefault(), ze(this)) return;
        d.one(e, ms, () => {
            Ge(this) && this.focus()
        });
        const t = E.findOne(hs);
        t && t !== e && mt.getInstance(t).hide(), mt.getOrCreateInstance(e).toggle(this)
    }), d.on(window, To, () => {
        for (const n of E.find(hs)) mt.getOrCreateInstance(n).show()
    }), d.on(window, Do, () => {
        for (const n of E.find("[aria-modal][class*=show][class*=offcanvas-]")) getComputedStyle(n).position !== "fixed" && mt.getOrCreateInstance(n).hide()
    }), qe(mt), me(mt);
    const gs = {
            "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
            a: ["target", "href", "title", "rel"],
            area: [],
            b: [],
            br: [],
            col: [],
            code: [],
            dd: [],
            div: [],
            dl: [],
            dt: [],
            em: [],
            hr: [],
            h1: [],
            h2: [],
            h3: [],
            h4: [],
            h5: [],
            h6: [],
            i: [],
            img: ["src", "srcset", "alt", "title", "width", "height"],
            li: [],
            ol: [],
            p: [],
            pre: [],
            s: [],
            small: [],
            span: [],
            sub: [],
            sup: [],
            strong: [],
            u: [],
            ul: []
        },
        $o = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]),
        Io = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,
        No = (n, e) => {
            const t = n.nodeName.toLowerCase();
            return e.includes(t) ? !$o.has(t) || !!Io.test(n.nodeValue) : e.filter(i => i instanceof RegExp).some(i => i.test(t))
        },
        Ho = {
            allowList: gs,
            content: {},
            extraClass: "",
            html: !1,
            sanitize: !0,
            sanitizeFn: null,
            template: "<div></div>"
        },
        Fo = {
            allowList: "object",
            content: "object",
            extraClass: "(string|function)",
            html: "boolean",
            sanitize: "boolean",
            sanitizeFn: "(null|function)",
            template: "string"
        },
        Wo = {
            entry: "(string|element|function|null)",
            selector: "(string|element)"
        };
    class Bo extends ct {
        constructor(e) {
            super(), this._config = this._getConfig(e)
        }
        static get Default() {
            return Ho
        }
        static get DefaultType() {
            return Fo
        }
        static get NAME() {
            return "TemplateFactory"
        }
        getContent() {
            return Object.values(this._config.content).map(e => this._resolvePossibleFunction(e)).filter(Boolean)
        }
        hasContent() {
            return this.getContent().length > 0
        }
        changeContent(e) {
            return this._checkContent(e), this._config.content = { ...this._config.content,
                ...e
            }, this
        }
        toHtml() {
            const e = document.createElement("div");
            e.innerHTML = this._maybeSanitize(this._config.template);
            for (const [r, a] of Object.entries(this._config.content)) this._setContent(e, a, r);
            const t = e.children[0],
                i = this._resolvePossibleFunction(this._config.extraClass);
            return i && t.classList.add(...i.split(" ")), t
        }
        _typeCheckConfig(e) {
            super._typeCheckConfig(e), this._checkContent(e.content)
        }
        _checkContent(e) {
            for (const [t, i] of Object.entries(e)) super._typeCheckConfig({
                selector: t,
                entry: i
            }, Wo)
        }
        _setContent(e, t, i) {
            const r = E.findOne(i, e);
            r && ((t = this._resolvePossibleFunction(t)) ? Ae(t) ? this._putElementInTemplate(be(t), r) : this._config.html ? r.innerHTML = this._maybeSanitize(t) : r.textContent = t : r.remove())
        }
        _maybeSanitize(e) {
            return this._config.sanitize ? function(t, i, r) {
                if (!t.length) return t;
                if (r && typeof r == "function") return r(t);
                const a = new window.DOMParser().parseFromString(t, "text/html"),
                    c = [].concat(...a.body.querySelectorAll("*"));
                for (const f of c) {
                    const m = f.nodeName.toLowerCase();
                    if (!Object.keys(i).includes(m)) {
                        f.remove();
                        continue
                    }
                    const w = [].concat(...f.attributes),
                        x = [].concat(i["*"] || [], i[m] || []);
                    for (const b of w) No(b, x) || f.removeAttribute(b.nodeName)
                }
                return a.body.innerHTML
            }(e, this._config.allowList, this._config.sanitizeFn) : e
        }
        _resolvePossibleFunction(e) {
            return ge(e, [void 0, this])
        }
        _putElementInTemplate(e, t) {
            if (this._config.html) return t.innerHTML = "", void t.append(e);
            t.textContent = e.textContent
        }
    }
    const Ro = new Set(["sanitize", "allowList", "sanitizeFn"]),
        _i = "fade",
        Un = "show",
        zo = ".tooltip-inner",
        _s = ".modal",
        vs = "hide.bs.modal",
        En = "hover",
        vi = "focus",
        bi = "click",
        Vo = {
            AUTO: "auto",
            TOP: "top",
            RIGHT: oe() ? "left" : "right",
            BOTTOM: "bottom",
            LEFT: oe() ? "right" : "left"
        },
        qo = {
            allowList: gs,
            animation: !0,
            boundary: "clippingParents",
            container: !1,
            customClass: "",
            delay: 0,
            fallbackPlacements: ["top", "right", "bottom", "left"],
            html: !1,
            offset: [0, 6],
            placement: "top",
            popperConfig: null,
            sanitize: !0,
            sanitizeFn: null,
            selector: !1,
            template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
            title: "",
            trigger: "hover focus"
        },
        Ko = {
            allowList: "object",
            animation: "boolean",
            boundary: "(string|element)",
            container: "(string|element|boolean)",
            customClass: "(string|function)",
            delay: "(number|object)",
            fallbackPlacements: "array",
            html: "boolean",
            offset: "(array|string|function)",
            placement: "(string|function)",
            popperConfig: "(null|object|function)",
            sanitize: "boolean",
            sanitizeFn: "(null|function)",
            selector: "(string|boolean)",
            template: "string",
            title: "(string|element|function)",
            trigger: "string"
        };
    class Ft extends Ce {
        constructor(e, t) {
            if (qi === void 0) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");
            super(e, t), this._isEnabled = !0, this._timeout = 0, this._isHovered = null, this._activeTrigger = {}, this._popper = null, this._templateFactory = null, this._newContent = null, this.tip = null, this._setListeners(), this._config.selector || this._fixTitle()
        }
        static get Default() {
            return qo
        }
        static get DefaultType() {
            return Ko
        }
        static get NAME() {
            return "tooltip"
        }
        enable() {
            this._isEnabled = !0
        }
        disable() {
            this._isEnabled = !1
        }
        toggleEnabled() {
            this._isEnabled = !this._isEnabled
        }
        toggle() {
            this._isEnabled && (this._isShown() ? this._leave() : this._enter())
        }
        dispose() {
            clearTimeout(this._timeout), d.off(this._element.closest(_s), vs, this._hideModalHandler), this._element.getAttribute("data-bs-original-title") && this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title")), this._disposePopper(), super.dispose()
        }
        show() {
            if (this._element.style.display === "none") throw new Error("Please use show on visible elements");
            if (!this._isWithContent() || !this._isEnabled) return;
            const e = d.trigger(this._element, this.constructor.eventName("show")),
                t = (rt(this._element) || this._element.ownerDocument.documentElement).contains(this._element);
            if (e.defaultPrevented || !t) return;
            this._disposePopper();
            const i = this._getTipElement();
            this._element.setAttribute("aria-describedby", i.getAttribute("id"));
            const {
                container: r
            } = this._config;
            if (this._element.ownerDocument.documentElement.contains(this.tip) || (r.append(i), d.trigger(this._element, this.constructor.eventName("inserted"))), this._popper = this._createPopper(i), i.classList.add(Un), "ontouchstart" in document.documentElement)
                for (const a of [].concat(...document.body.children)) d.on(a, "mouseover", gt);
            this._queueCallback(() => {
                d.trigger(this._element, this.constructor.eventName("shown")), this._isHovered === !1 && this._leave(), this._isHovered = !1
            }, this.tip, this._isAnimated())
        }
        hide() {
            if (this._isShown() && !d.trigger(this._element, this.constructor.eventName("hide")).defaultPrevented) {
                if (this._getTipElement().classList.remove(Un), "ontouchstart" in document.documentElement)
                    for (const e of [].concat(...document.body.children)) d.off(e, "mouseover", gt);
                this._activeTrigger[bi] = !1, this._activeTrigger[vi] = !1, this._activeTrigger[En] = !1, this._isHovered = null, this._queueCallback(() => {
                    this._isWithActiveTrigger() || (this._isHovered || this._disposePopper(), this._element.removeAttribute("aria-describedby"), d.trigger(this._element, this.constructor.eventName("hidden")))
                }, this.tip, this._isAnimated())
            }
        }
        update() {
            this._popper && this._popper.update()
        }
        _isWithContent() {
            return !!this._getTitle()
        }
        _getTipElement() {
            return this.tip || (this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())), this.tip
        }
        _createTipElement(e) {
            const t = this._getTemplateFactory(e).toHtml();
            if (!t) return null;
            t.classList.remove(_i, Un), t.classList.add(`bs-${this.constructor.NAME}-auto`);
            const i = (r => {
                do r += Math.floor(1e6 * Math.random()); while (document.getElementById(r));
                return r
            })(this.constructor.NAME).toString();
            return t.setAttribute("id", i), this._isAnimated() && t.classList.add(_i), t
        }
        setContent(e) {
            this._newContent = e, this._isShown() && (this._disposePopper(), this.show())
        }
        _getTemplateFactory(e) {
            return this._templateFactory ? this._templateFactory.changeContent(e) : this._templateFactory = new Bo({ ...this._config,
                content: e,
                extraClass: this._resolvePossibleFunction(this._config.customClass)
            }), this._templateFactory
        }
        _getContentForTemplate() {
            return {
                [zo]: this._getTitle()
            }
        }
        _getTitle() {
            return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title")
        }
        _initializeOnDelegatedTarget(e) {
            return this.constructor.getOrCreateInstance(e.delegateTarget, this._getDelegateConfig())
        }
        _isAnimated() {
            return this._config.animation || this.tip && this.tip.classList.contains(_i)
        }
        _isShown() {
            return this.tip && this.tip.classList.contains(Un)
        }
        _createPopper(e) {
            const t = ge(this._config.placement, [this, e, this._element]),
                i = Vo[t.toUpperCase()];
            return hi(this._element, e, this._getPopperConfig(i))
        }
        _getOffset() {
            const {
                offset: e
            } = this._config;
            return typeof e == "string" ? e.split(",").map(t => Number.parseInt(t, 10)) : typeof e == "function" ? t => e(t, this._element) : e
        }
        _resolvePossibleFunction(e) {
            return ge(e, [this._element, this._element])
        }
        _getPopperConfig(e) {
            const t = {
                placement: e,
                modifiers: [{
                    name: "flip",
                    options: {
                        fallbackPlacements: this._config.fallbackPlacements
                    }
                }, {
                    name: "offset",
                    options: {
                        offset: this._getOffset()
                    }
                }, {
                    name: "preventOverflow",
                    options: {
                        boundary: this._config.boundary
                    }
                }, {
                    name: "arrow",
                    options: {
                        element: `.${this.constructor.NAME}-arrow`
                    }
                }, {
                    name: "preSetPlacement",
                    enabled: !0,
                    phase: "beforeMain",
                    fn: i => {
                        this._getTipElement().setAttribute("data-popper-placement", i.state.placement)
                    }
                }]
            };
            return { ...t,
                ...ge(this._config.popperConfig, [void 0, t])
            }
        }
        _setListeners() {
            const e = this._config.trigger.split(" ");
            for (const t of e)
                if (t === "click") d.on(this._element, this.constructor.eventName("click"), this._config.selector, i => {
                    const r = this._initializeOnDelegatedTarget(i);
                    r._activeTrigger[bi] = !(r._isShown() && r._activeTrigger[bi]), r.toggle()
                });
                else if (t !== "manual") {
                const i = t === En ? this.constructor.eventName("mouseenter") : this.constructor.eventName("focusin"),
                    r = t === En ? this.constructor.eventName("mouseleave") : this.constructor.eventName("focusout");
                d.on(this._element, i, this._config.selector, a => {
                    const c = this._initializeOnDelegatedTarget(a);
                    c._activeTrigger[a.type === "focusin" ? vi : En] = !0, c._enter()
                }), d.on(this._element, r, this._config.selector, a => {
                    const c = this._initializeOnDelegatedTarget(a);
                    c._activeTrigger[a.type === "focusout" ? vi : En] = c._element.contains(a.relatedTarget), c._leave()
                })
            }
            this._hideModalHandler = () => {
                this._element && this.hide()
            }, d.on(this._element.closest(_s), vs, this._hideModalHandler)
        }
        _fixTitle() {
            const e = this._element.getAttribute("title");
            e && (this._element.getAttribute("aria-label") || this._element.textContent.trim() || this._element.setAttribute("aria-label", e), this._element.setAttribute("data-bs-original-title", e), this._element.removeAttribute("title"))
        }
        _enter() {
            this._isShown() || this._isHovered ? this._isHovered = !0 : (this._isHovered = !0, this._setTimeout(() => {
                this._isHovered && this.show()
            }, this._config.delay.show))
        }
        _leave() {
            this._isWithActiveTrigger() || (this._isHovered = !1, this._setTimeout(() => {
                this._isHovered || this.hide()
            }, this._config.delay.hide))
        }
        _setTimeout(e, t) {
            clearTimeout(this._timeout), this._timeout = setTimeout(e, t)
        }
        _isWithActiveTrigger() {
            return Object.values(this._activeTrigger).includes(!0)
        }
        _getConfig(e) {
            const t = Me.getDataAttributes(this._element);
            for (const i of Object.keys(t)) Ro.has(i) && delete t[i];
            return e = { ...t,
                ...typeof e == "object" && e ? e : {}
            }, e = this._mergeConfigObj(e), e = this._configAfterMerge(e), this._typeCheckConfig(e), e
        }
        _configAfterMerge(e) {
            return e.container = e.container === !1 ? document.body : be(e.container), typeof e.delay == "number" && (e.delay = {
                show: e.delay,
                hide: e.delay
            }), typeof e.title == "number" && (e.title = e.title.toString()), typeof e.content == "number" && (e.content = e.content.toString()), e
        }
        _getDelegateConfig() {
            const e = {};
            for (const [t, i] of Object.entries(this._config)) this.constructor.Default[t] !== i && (e[t] = i);
            return e.selector = !1, e.trigger = "manual", e
        }
        _disposePopper() {
            this._popper && (this._popper.destroy(), this._popper = null), this.tip && (this.tip.remove(), this.tip = null)
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = Ft.getOrCreateInstance(this, e);
                if (typeof e == "string") {
                    if (t[e] === void 0) throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            })
        }
    }
    me(Ft);
    const Uo = ".popover-header",
        Xo = ".popover-body",
        Yo = { ...Ft.Default,
            content: "",
            offset: [0, 8],
            placement: "right",
            template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
            trigger: "click"
        },
        Qo = { ...Ft.DefaultType,
            content: "(null|string|element|function)"
        };
    class Xn extends Ft {
        static get Default() {
            return Yo
        }
        static get DefaultType() {
            return Qo
        }
        static get NAME() {
            return "popover"
        }
        _isWithContent() {
            return this._getTitle() || this._getContent()
        }
        _getContentForTemplate() {
            return {
                [Uo]: this._getTitle(),
                [Xo]: this._getContent()
            }
        }
        _getContent() {
            return this._resolvePossibleFunction(this._config.content)
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = Xn.getOrCreateInstance(this, e);
                if (typeof e == "string") {
                    if (t[e] === void 0) throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            })
        }
    }
    me(Xn);
    const yi = ".bs.scrollspy",
        Go = `activate${yi}`,
        bs = `click${yi}`,
        Jo = `load${yi}.data-api`,
        ln = "active",
        wi = "[href]",
        ys = ".nav-link",
        Zo = `${ys}, .nav-item > ${ys}, .list-group-item`,
        er = {
            offset: null,
            rootMargin: "0px 0px -25%",
            smoothScroll: !1,
            target: null,
            threshold: [.1, .5, 1]
        },
        tr = {
            offset: "(number|null)",
            rootMargin: "string",
            smoothScroll: "boolean",
            target: "element",
            threshold: "array"
        };
    class On extends Ce {
        constructor(e, t) {
            super(e, t), this._targetLinks = new Map, this._observableSections = new Map, this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element, this._activeTarget = null, this._observer = null, this._previousScrollData = {
                visibleEntryTop: 0,
                parentScrollTop: 0
            }, this.refresh()
        }
        static get Default() {
            return er
        }
        static get DefaultType() {
            return tr
        }
        static get NAME() {
            return "scrollspy"
        }
        refresh() {
            this._initializeTargetsAndObservables(), this._maybeEnableSmoothScroll(), this._observer ? this._observer.disconnect() : this._observer = this._getNewObserver();
            for (const e of this._observableSections.values()) this._observer.observe(e)
        }
        dispose() {
            this._observer.disconnect(), super.dispose()
        }
        _configAfterMerge(e) {
            return e.target = be(e.target) || document.body, e.rootMargin = e.offset ? `${e.offset}px 0px -30%` : e.rootMargin, typeof e.threshold == "string" && (e.threshold = e.threshold.split(",").map(t => Number.parseFloat(t))), e
        }
        _maybeEnableSmoothScroll() {
            this._config.smoothScroll && (d.off(this._config.target, bs), d.on(this._config.target, bs, wi, e => {
                const t = this._observableSections.get(e.target.hash);
                if (t) {
                    e.preventDefault();
                    const i = this._rootElement || window,
                        r = t.offsetTop - this._element.offsetTop;
                    if (i.scrollTo) return void i.scrollTo({
                        top: r,
                        behavior: "smooth"
                    });
                    i.scrollTop = r
                }
            }))
        }
        _getNewObserver() {
            const e = {
                root: this._rootElement,
                threshold: this._config.threshold,
                rootMargin: this._config.rootMargin
            };
            return new IntersectionObserver(t => this._observerCallback(t), e)
        }
        _observerCallback(e) {
            const t = c => this._targetLinks.get(`#${c.target.id}`),
                i = c => {
                    this._previousScrollData.visibleEntryTop = c.target.offsetTop, this._process(t(c))
                },
                r = (this._rootElement || document.documentElement).scrollTop,
                a = r >= this._previousScrollData.parentScrollTop;
            this._previousScrollData.parentScrollTop = r;
            for (const c of e) {
                if (!c.isIntersecting) {
                    this._activeTarget = null, this._clearActiveClass(t(c));
                    continue
                }
                const f = c.target.offsetTop >= this._previousScrollData.visibleEntryTop;
                if (a && f) {
                    if (i(c), !r) return
                } else a || f || i(c)
            }
        }
        _initializeTargetsAndObservables() {
            this._targetLinks = new Map, this._observableSections = new Map;
            const e = E.find(wi, this._config.target);
            for (const t of e) {
                if (!t.hash || ze(t)) continue;
                const i = E.findOne(decodeURI(t.hash), this._element);
                Ge(i) && (this._targetLinks.set(decodeURI(t.hash), t), this._observableSections.set(t.hash, i))
            }
        }
        _process(e) {
            this._activeTarget !== e && (this._clearActiveClass(this._config.target), this._activeTarget = e, e.classList.add(ln), this._activateParents(e), d.trigger(this._element, Go, {
                relatedTarget: e
            }))
        }
        _activateParents(e) {
            if (e.classList.contains("dropdown-item")) E.findOne(".dropdown-toggle", e.closest(".dropdown")).classList.add(ln);
            else
                for (const t of E.parents(e, ".nav, .list-group"))
                    for (const i of E.prev(t, Zo)) i.classList.add(ln)
        }
        _clearActiveClass(e) {
            e.classList.remove(ln);
            const t = E.find(`${wi}.${ln}`, e);
            for (const i of t) i.classList.remove(ln)
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = On.getOrCreateInstance(this, e);
                if (typeof e == "string") {
                    if (t[e] === void 0 || e.startsWith("_") || e === "constructor") throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            })
        }
    }
    d.on(window, Jo, () => {
        for (const n of E.find('[data-bs-spy="scroll"]')) On.getOrCreateInstance(n)
    }), me(On);
    const Wt = ".bs.tab",
        nr = `hide${Wt}`,
        ir = `hidden${Wt}`,
        sr = `show${Wt}`,
        or = `shown${Wt}`,
        rr = `click${Wt}`,
        ar = `keydown${Wt}`,
        lr = `load${Wt}`,
        cr = "ArrowLeft",
        ws = "ArrowRight",
        ur = "ArrowUp",
        xs = "ArrowDown",
        xi = "Home",
        Es = "End",
        Bt = "active",
        Os = "fade",
        Ei = "show",
        As = ".dropdown-toggle",
        Oi = `:not(${As})`,
        Ts = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',
        Ai = `.nav-link${Oi}, .list-group-item${Oi}, [role="tab"]${Oi}, ${Ts}`,
        fr = `.${Bt}[data-bs-toggle="tab"], .${Bt}[data-bs-toggle="pill"], .${Bt}[data-bs-toggle="list"]`;
    class Rt extends Ce {
        constructor(e) {
            super(e), this._parent = this._element.closest('.list-group, .nav, [role="tablist"]'), this._parent && (this._setInitialAttributes(this._parent, this._getChildren()), d.on(this._element, ar, t => this._keydown(t)))
        }
        static get NAME() {
            return "tab"
        }
        show() {
            const e = this._element;
            if (this._elemIsActive(e)) return;
            const t = this._getActiveElem(),
                i = t ? d.trigger(t, nr, {
                    relatedTarget: e
                }) : null;
            d.trigger(e, sr, {
                relatedTarget: t
            }).defaultPrevented || i && i.defaultPrevented || (this._deactivate(t, e), this._activate(e, t))
        }
        _activate(e, t) {
            e && (e.classList.add(Bt), this._activate(E.getElementFromSelector(e)), this._queueCallback(() => {
                e.getAttribute("role") === "tab" ? (e.removeAttribute("tabindex"), e.setAttribute("aria-selected", !0), this._toggleDropDown(e, !0), d.trigger(e, or, {
                    relatedTarget: t
                })) : e.classList.add(Ei)
            }, e, e.classList.contains(Os)))
        }
        _deactivate(e, t) {
            e && (e.classList.remove(Bt), e.blur(), this._deactivate(E.getElementFromSelector(e)), this._queueCallback(() => {
                e.getAttribute("role") === "tab" ? (e.setAttribute("aria-selected", !1), e.setAttribute("tabindex", "-1"), this._toggleDropDown(e, !1), d.trigger(e, ir, {
                    relatedTarget: t
                })) : e.classList.remove(Ei)
            }, e, e.classList.contains(Os)))
        }
        _keydown(e) {
            if (![cr, ws, ur, xs, xi, Es].includes(e.key)) return;
            e.stopPropagation(), e.preventDefault();
            const t = this._getChildren().filter(r => !ze(r));
            let i;
            if ([xi, Es].includes(e.key)) i = t[e.key === xi ? 0 : t.length - 1];
            else {
                const r = [ws, xs].includes(e.key);
                i = _t(t, e.target, r, !0)
            }
            i && (i.focus({
                preventScroll: !0
            }), Rt.getOrCreateInstance(i).show())
        }
        _getChildren() {
            return E.find(Ai, this._parent)
        }
        _getActiveElem() {
            return this._getChildren().find(e => this._elemIsActive(e)) || null
        }
        _setInitialAttributes(e, t) {
            this._setAttributeIfNotExists(e, "role", "tablist");
            for (const i of t) this._setInitialAttributesOnChild(i)
        }
        _setInitialAttributesOnChild(e) {
            e = this._getInnerElement(e);
            const t = this._elemIsActive(e),
                i = this._getOuterElement(e);
            e.setAttribute("aria-selected", t), i !== e && this._setAttributeIfNotExists(i, "role", "presentation"), t || e.setAttribute("tabindex", "-1"), this._setAttributeIfNotExists(e, "role", "tab"), this._setInitialAttributesOnTargetPanel(e)
        }
        _setInitialAttributesOnTargetPanel(e) {
            const t = E.getElementFromSelector(e);
            t && (this._setAttributeIfNotExists(t, "role", "tabpanel"), e.id && this._setAttributeIfNotExists(t, "aria-labelledby", `${e.id}`))
        }
        _toggleDropDown(e, t) {
            const i = this._getOuterElement(e);
            if (!i.classList.contains("dropdown")) return;
            const r = (a, c) => {
                const f = E.findOne(a, i);
                f && f.classList.toggle(c, t)
            };
            r(As, Bt), r(".dropdown-menu", Ei), i.setAttribute("aria-expanded", t)
        }
        _setAttributeIfNotExists(e, t, i) {
            e.hasAttribute(t) || e.setAttribute(t, i)
        }
        _elemIsActive(e) {
            return e.classList.contains(Bt)
        }
        _getInnerElement(e) {
            return e.matches(Ai) ? e : E.findOne(Ai, e)
        }
        _getOuterElement(e) {
            return e.closest(".nav-item, .list-group-item") || e
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = Rt.getOrCreateInstance(this);
                if (typeof e == "string") {
                    if (t[e] === void 0 || e.startsWith("_") || e === "constructor") throw new TypeError(`No method named "${e}"`);
                    t[e]()
                }
            })
        }
    }
    d.on(document, rr, Ts, function(n) {
        ["A", "AREA"].includes(this.tagName) && n.preventDefault(), ze(this) || Rt.getOrCreateInstance(this).show()
    }), d.on(window, lr, () => {
        for (const n of E.find(fr)) Rt.getOrCreateInstance(n)
    }), me(Rt);
    const kt = ".bs.toast",
        dr = `mouseover${kt}`,
        hr = `mouseout${kt}`,
        pr = `focusin${kt}`,
        mr = `focusout${kt}`,
        gr = `hide${kt}`,
        _r = `hidden${kt}`,
        vr = `show${kt}`,
        br = `shown${kt}`,
        Cs = "hide",
        Yn = "show",
        Qn = "showing",
        yr = {
            animation: "boolean",
            autohide: "boolean",
            delay: "number"
        },
        wr = {
            animation: !0,
            autohide: !0,
            delay: 5e3
        };
    class An extends Ce {
        constructor(e, t) {
            super(e, t), this._timeout = null, this._hasMouseInteraction = !1, this._hasKeyboardInteraction = !1, this._setListeners()
        }
        static get Default() {
            return wr
        }
        static get DefaultType() {
            return yr
        }
        static get NAME() {
            return "toast"
        }
        show() {
            d.trigger(this._element, vr).defaultPrevented || (this._clearTimeout(), this._config.animation && this._element.classList.add("fade"), this._element.classList.remove(Cs), pe(this._element), this._element.classList.add(Yn, Qn), this._queueCallback(() => {
                this._element.classList.remove(Qn), d.trigger(this._element, br), this._maybeScheduleHide()
            }, this._element, this._config.animation))
        }
        hide() {
            this.isShown() && (d.trigger(this._element, gr).defaultPrevented || (this._element.classList.add(Qn), this._queueCallback(() => {
                this._element.classList.add(Cs), this._element.classList.remove(Qn, Yn), d.trigger(this._element, _r)
            }, this._element, this._config.animation)))
        }
        dispose() {
            this._clearTimeout(), this.isShown() && this._element.classList.remove(Yn), super.dispose()
        }
        isShown() {
            return this._element.classList.contains(Yn)
        }
        _maybeScheduleHide() {
            this._config.autohide && (this._hasMouseInteraction || this._hasKeyboardInteraction || (this._timeout = setTimeout(() => {
                this.hide()
            }, this._config.delay)))
        }
        _onInteraction(e, t) {
            switch (e.type) {
                case "mouseover":
                case "mouseout":
                    this._hasMouseInteraction = t;
                    break;
                case "focusin":
                case "focusout":
                    this._hasKeyboardInteraction = t
            }
            if (t) return void this._clearTimeout();
            const i = e.relatedTarget;
            this._element === i || this._element.contains(i) || this._maybeScheduleHide()
        }
        _setListeners() {
            d.on(this._element, dr, e => this._onInteraction(e, !0)), d.on(this._element, hr, e => this._onInteraction(e, !1)), d.on(this._element, pr, e => this._onInteraction(e, !0)), d.on(this._element, mr, e => this._onInteraction(e, !1))
        }
        _clearTimeout() {
            clearTimeout(this._timeout), this._timeout = null
        }
        static jQueryInterface(e) {
            return this.each(function() {
                const t = An.getOrCreateInstance(this, e);
                if (typeof e == "string") {
                    if (t[e] === void 0) throw new TypeError(`No method named "${e}"`);
                    t[e](this)
                }
            })
        }
    }
    return qe(An), me(An), {
        Alert: wt,
        Button: xt,
        Carousel: g,
        Collapse: D,
        Dropdown: Xe,
        Modal: Ht,
        Offcanvas: mt,
        Popover: Xn,
        ScrollSpy: On,
        Tab: Rt,
        Toast: An,
        Tooltip: Ft
    }
});