!(function (n, r) {
  "object" == typeof exports && "undefined" != typeof module
    ? (module.exports = r())
    : "function" == typeof define && define.amd
    ? define("underscore", r)
    : ((n = "undefined" != typeof globalThis ? globalThis : n || self),
      (function () {
        var t = n._,
          e = (n._ = r());
        e.noConflict = function () {
          return (n._ = t), e;
        };
      })());
})(this, function () {
  //     Underscore.js 1.13.2
  //     https://underscorejs.org
  //     (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
  //     Underscore may be freely distributed under the MIT license.
  var n = "1.13.2",
    r =
      ("object" == typeof self && self.self === self && self) ||
      ("object" == typeof global && global.global === global && global) ||
      Function("return this")() ||
      {},
    t = Array.prototype,
    e = Object.prototype,
    u = "undefined" != typeof Symbol ? Symbol.prototype : null,
    o = t.push,
    i = t.slice,
    a = e.toString,
    f = e.hasOwnProperty,
    c = "undefined" != typeof ArrayBuffer,
    l = "undefined" != typeof DataView,
    s = Array.isArray,
    p = Object.keys,
    v = Object.create,
    h = c && ArrayBuffer.isView,
    y = isNaN,
    d = isFinite,
    g = !{ toString: null }.propertyIsEnumerable("toString"),
    b = [
      "valueOf",
      "isPrototypeOf",
      "toString",
      "propertyIsEnumerable",
      "hasOwnProperty",
      "toLocaleString",
    ],
    m = Math.pow(2, 53) - 1;
  function j(n, r) {
    return (
      (r = null == r ? n.length - 1 : +r),
      function () {
        for (
          var t = Math.max(arguments.length - r, 0), e = Array(t), u = 0;
          u < t;
          u++
        )
          e[u] = arguments[u + r];
        switch (r) {
          case 0:
            return n.call(this, e);
          case 1:
            return n.call(this, arguments[0], e);
          case 2:
            return n.call(this, arguments[0], arguments[1], e);
        }
        var o = Array(r + 1);
        for (u = 0; u < r; u++) o[u] = arguments[u];
        return (o[r] = e), n.apply(this, o);
      }
    );
  }
  function _(n) {
    var r = typeof n;
    return "function" === r || ("object" === r && !!n);
  }
  function w(n) {
    return void 0 === n;
  }
  function A(n) {
    return !0 === n || !1 === n || "[object Boolean]" === a.call(n);
  }
  function x(n) {
    var r = "[object " + n + "]";
    return function (n) {
      return a.call(n) === r;
    };
  }
  var S = x("String"),
    O = x("Number"),
    M = x("Date"),
    E = x("RegExp"),
    B = x("Error"),
    N = x("Symbol"),
    I = x("ArrayBuffer"),
    T = x("Function"),
    k = r.document && r.document.childNodes;
  "function" != typeof /./ &&
    "object" != typeof Int8Array &&
    "function" != typeof k &&
    (T = function (n) {
      return "function" == typeof n || !1;
    });
  var D = T,
    R = x("Object"),
    F = l && R(new DataView(new ArrayBuffer(8))),
    V = "undefined" != typeof Map && R(new Map()),
    P = x("DataView");
  var q = F
      ? function (n) {
          return null != n && D(n.getInt8) && I(n.buffer);
        }
      : P,
    U = s || x("Array");
  function W(n, r) {
    return null != n && f.call(n, r);
  }
  var z = x("Arguments");
  !(function () {
    z(arguments) ||
      (z = function (n) {
        return W(n, "callee");
      });
  })();
  var L = z;
  function $(n) {
    return O(n) && y(n);
  }
  function C(n) {
    return function () {
      return n;
    };
  }
  function K(n) {
    return function (r) {
      var t = n(r);
      return "number" == typeof t && t >= 0 && t <= m;
    };
  }
  function J(n) {
    return function (r) {
      return null == r ? void 0 : r[n];
    };
  }
  var G = J("byteLength"),
    H = K(G),
    Q =
      /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;
  var X = c
      ? function (n) {
          return h ? h(n) && !q(n) : H(n) && Q.test(a.call(n));
        }
      : C(!1),
    Y = J("length");
  function Z(n, r) {
    r = (function (n) {
      for (var r = {}, t = n.length, e = 0; e < t; ++e) r[n[e]] = !0;
      return {
        contains: function (n) {
          return !0 === r[n];
        },
        push: function (t) {
          return (r[t] = !0), n.push(t);
        },
      };
    })(r);
    var t = b.length,
      u = n.constructor,
      o = (D(u) && u.prototype) || e,
      i = "constructor";
    for (W(n, i) && !r.contains(i) && r.push(i); t--; )
      (i = b[t]) in n && n[i] !== o[i] && !r.contains(i) && r.push(i);
  }
  function nn(n) {
    if (!_(n)) return [];
    if (p) return p(n);
    var r = [];
    for (var t in n) W(n, t) && r.push(t);
    return g && Z(n, r), r;
  }
  function rn(n, r) {
    var t = nn(r),
      e = t.length;
    if (null == n) return !e;
    for (var u = Object(n), o = 0; o < e; o++) {
      var i = t[o];
      if (r[i] !== u[i] || !(i in u)) return !1;
    }
    return !0;
  }
  function tn(n) {
    return n instanceof tn
      ? n
      : this instanceof tn
      ? void (this._wrapped = n)
      : new tn(n);
  }
  function en(n) {
    return new Uint8Array(n.buffer || n, n.byteOffset || 0, G(n));
  }
  (tn.VERSION = n),
    (tn.prototype.value = function () {
      return this._wrapped;
    }),
    (tn.prototype.valueOf = tn.prototype.toJSON = tn.prototype.value),
    (tn.prototype.toString = function () {
      return String(this._wrapped);
    });
  var un = "[object DataView]";
  function on(n, r, t, e) {
    if (n === r) return 0 !== n || 1 / n == 1 / r;
    if (null == n || null == r) return !1;
    if (n != n) return r != r;
    var o = typeof n;
    return (
      ("function" === o || "object" === o || "object" == typeof r) &&
      (function n(r, t, e, o) {
        r instanceof tn && (r = r._wrapped);
        t instanceof tn && (t = t._wrapped);
        var i = a.call(r);
        if (i !== a.call(t)) return !1;
        if (F && "[object Object]" == i && q(r)) {
          if (!q(t)) return !1;
          i = un;
        }
        switch (i) {
          case "[object RegExp]":
          case "[object String]":
            return "" + r == "" + t;
          case "[object Number]":
            return +r != +r ? +t != +t : 0 == +r ? 1 / +r == 1 / t : +r == +t;
          case "[object Date]":
          case "[object Boolean]":
            return +r == +t;
          case "[object Symbol]":
            return u.valueOf.call(r) === u.valueOf.call(t);
          case "[object ArrayBuffer]":
          case un:
            return n(en(r), en(t), e, o);
        }
        var f = "[object Array]" === i;
        if (!f && X(r)) {
          if (G(r) !== G(t)) return !1;
          if (r.buffer === t.buffer && r.byteOffset === t.byteOffset) return !0;
          f = !0;
        }
        if (!f) {
          if ("object" != typeof r || "object" != typeof t) return !1;
          var c = r.constructor,
            l = t.constructor;
          if (
            c !== l &&
            !(D(c) && c instanceof c && D(l) && l instanceof l) &&
            "constructor" in r &&
            "constructor" in t
          )
            return !1;
        }
        o = o || [];
        var s = (e = e || []).length;
        for (; s--; ) if (e[s] === r) return o[s] === t;
        if ((e.push(r), o.push(t), f)) {
          if ((s = r.length) !== t.length) return !1;
          for (; s--; ) if (!on(r[s], t[s], e, o)) return !1;
        } else {
          var p,
            v = nn(r);
          if (((s = v.length), nn(t).length !== s)) return !1;
          for (; s--; )
            if (((p = v[s]), !W(t, p) || !on(r[p], t[p], e, o))) return !1;
        }
        return e.pop(), o.pop(), !0;
      })(n, r, t, e)
    );
  }
  function an(n) {
    if (!_(n)) return [];
    var r = [];
    for (var t in n) r.push(t);
    return g && Z(n, r), r;
  }
  function fn(n) {
    var r = Y(n);
    return function (t) {
      if (null == t) return !1;
      var e = an(t);
      if (Y(e)) return !1;
      for (var u = 0; u < r; u++) if (!D(t[n[u]])) return !1;
      return n !== hn || !D(t[cn]);
    };
  }
  var cn = "forEach",
    ln = "has",
    sn = ["clear", "delete"],
    pn = ["get", ln, "set"],
    vn = sn.concat(cn, pn),
    hn = sn.concat(pn),
    yn = ["add"].concat(sn, cn, ln),
    dn = V ? fn(vn) : x("Map"),
    gn = V ? fn(hn) : x("WeakMap"),
    bn = V ? fn(yn) : x("Set"),
    mn = x("WeakSet");
  function jn(n) {
    for (var r = nn(n), t = r.length, e = Array(t), u = 0; u < t; u++)
      e[u] = n[r[u]];
    return e;
  }
  function _n(n) {
    for (var r = {}, t = nn(n), e = 0, u = t.length; e < u; e++)
      r[n[t[e]]] = t[e];
    return r;
  }
  function wn(n) {
    var r = [];
    for (var t in n) D(n[t]) && r.push(t);
    return r.sort();
  }
  function An(n, r) {
    return function (t) {
      var e = arguments.length;
      if ((r && (t = Object(t)), e < 2 || null == t)) return t;
      for (var u = 1; u < e; u++)
        for (var o = arguments[u], i = n(o), a = i.length, f = 0; f < a; f++) {
          var c = i[f];
          (r && void 0 !== t[c]) || (t[c] = o[c]);
        }
      return t;
    };
  }
  var xn = An(an),
    Sn = An(nn),
    On = An(an, !0);
  function Mn(n) {
    if (!_(n)) return {};
    if (v) return v(n);
    var r = function () {};
    r.prototype = n;
    var t = new r();
    return (r.prototype = null), t;
  }
  function En(n) {
    return U(n) ? n : [n];
  }
  function Bn(n) {
    return tn.toPath(n);
  }
  function Nn(n, r) {
    for (var t = r.length, e = 0; e < t; e++) {
      if (null == n) return;
      n = n[r[e]];
    }
    return t ? n : void 0;
  }
  function In(n, r, t) {
    var e = Nn(n, Bn(r));
    return w(e) ? t : e;
  }
  function Tn(n) {
    return n;
  }
  function kn(n) {
    return (
      (n = Sn({}, n)),
      function (r) {
        return rn(r, n);
      }
    );
  }
  function Dn(n) {
    return (
      (n = Bn(n)),
      function (r) {
        return Nn(r, n);
      }
    );
  }
  function Rn(n, r, t) {
    if (void 0 === r) return n;
    switch (null == t ? 3 : t) {
      case 1:
        return function (t) {
          return n.call(r, t);
        };
      case 3:
        return function (t, e, u) {
          return n.call(r, t, e, u);
        };
      case 4:
        return function (t, e, u, o) {
          return n.call(r, t, e, u, o);
        };
    }
    return function () {
      return n.apply(r, arguments);
    };
  }
  function Fn(n, r, t) {
    return null == n ? Tn : D(n) ? Rn(n, r, t) : _(n) && !U(n) ? kn(n) : Dn(n);
  }
  function Vn(n, r) {
    return Fn(n, r, 1 / 0);
  }
  function Pn(n, r, t) {
    return tn.iteratee !== Vn ? tn.iteratee(n, r) : Fn(n, r, t);
  }
  function qn() {}
  function Un(n, r) {
    return (
      null == r && ((r = n), (n = 0)),
      n + Math.floor(Math.random() * (r - n + 1))
    );
  }
  (tn.toPath = En), (tn.iteratee = Vn);
  var Wn =
    Date.now ||
    function () {
      return new Date().getTime();
    };
  function zn(n) {
    var r = function (r) {
        return n[r];
      },
      t = "(?:" + nn(n).join("|") + ")",
      e = RegExp(t),
      u = RegExp(t, "g");
    return function (n) {
      return (n = null == n ? "" : "" + n), e.test(n) ? n.replace(u, r) : n;
    };
  }
  var Ln = {
      "&": "&amp;",
      "<": "&lt;",
      ">": "&gt;",
      '"': "&quot;",
      "'": "&#x27;",
      "`": "&#x60;",
    },
    $n = zn(Ln),
    Cn = zn(_n(Ln)),
    Kn = (tn.templateSettings = {
      evaluate: /<%([\s\S]+?)%>/g,
      interpolate: /<%=([\s\S]+?)%>/g,
      escape: /<%-([\s\S]+?)%>/g,
    }),
    Jn = /(.)^/,
    Gn = {
      "'": "'",
      "\\": "\\",
      "\r": "r",
      "\n": "n",
      "\u2028": "u2028",
      "\u2029": "u2029",
    },
    Hn = /\\|'|\r|\n|\u2028|\u2029/g;
  function Qn(n) {
    return "\\" + Gn[n];
  }
  var Xn = /^\s*(\w|\$)+\s*$/;
  var Yn = 0;
  function Zn(n, r, t, e, u) {
    if (!(e instanceof r)) return n.apply(t, u);
    var o = Mn(n.prototype),
      i = n.apply(o, u);
    return _(i) ? i : o;
  }
  var nr = j(function (n, r) {
    var t = nr.placeholder,
      e = function () {
        for (var u = 0, o = r.length, i = Array(o), a = 0; a < o; a++)
          i[a] = r[a] === t ? arguments[u++] : r[a];
        for (; u < arguments.length; ) i.push(arguments[u++]);
        return Zn(n, e, this, this, i);
      };
    return e;
  });
  nr.placeholder = tn;
  var rr = j(function (n, r, t) {
      if (!D(n)) throw new TypeError("Bind must be called on a function");
      var e = j(function (u) {
        return Zn(n, e, r, this, t.concat(u));
      });
      return e;
    }),
    tr = K(Y);
  function er(n, r, t, e) {
    if (((e = e || []), r || 0 === r)) {
      if (r <= 0) return e.concat(n);
    } else r = 1 / 0;
    for (var u = e.length, o = 0, i = Y(n); o < i; o++) {
      var a = n[o];
      if (tr(a) && (U(a) || L(a)))
        if (r > 1) er(a, r - 1, t, e), (u = e.length);
        else for (var f = 0, c = a.length; f < c; ) e[u++] = a[f++];
      else t || (e[u++] = a);
    }
    return e;
  }
  var ur = j(function (n, r) {
    var t = (r = er(r, !1, !1)).length;
    if (t < 1) throw new Error("bindAll must be passed function names");
    for (; t--; ) {
      var e = r[t];
      n[e] = rr(n[e], n);
    }
    return n;
  });
  var or = j(function (n, r, t) {
      return setTimeout(function () {
        return n.apply(null, t);
      }, r);
    }),
    ir = nr(or, tn, 1);
  function ar(n) {
    return function () {
      return !n.apply(this, arguments);
    };
  }
  function fr(n, r) {
    var t;
    return function () {
      return --n > 0 && (t = r.apply(this, arguments)), n <= 1 && (r = null), t;
    };
  }
  var cr = nr(fr, 2);
  function lr(n, r, t) {
    r = Pn(r, t);
    for (var e, u = nn(n), o = 0, i = u.length; o < i; o++)
      if (r(n[(e = u[o])], e, n)) return e;
  }
  function sr(n) {
    return function (r, t, e) {
      t = Pn(t, e);
      for (var u = Y(r), o = n > 0 ? 0 : u - 1; o >= 0 && o < u; o += n)
        if (t(r[o], o, r)) return o;
      return -1;
    };
  }
  var pr = sr(1),
    vr = sr(-1);
  function hr(n, r, t, e) {
    for (var u = (t = Pn(t, e, 1))(r), o = 0, i = Y(n); o < i; ) {
      var a = Math.floor((o + i) / 2);
      t(n[a]) < u ? (o = a + 1) : (i = a);
    }
    return o;
  }
  function yr(n, r, t) {
    return function (e, u, o) {
      var a = 0,
        f = Y(e);
      if ("number" == typeof o)
        n > 0
          ? (a = o >= 0 ? o : Math.max(o + f, a))
          : (f = o >= 0 ? Math.min(o + 1, f) : o + f + 1);
      else if (t && o && f) return e[(o = t(e, u))] === u ? o : -1;
      if (u != u) return (o = r(i.call(e, a, f), $)) >= 0 ? o + a : -1;
      for (o = n > 0 ? a : f - 1; o >= 0 && o < f; o += n)
        if (e[o] === u) return o;
      return -1;
    };
  }
  var dr = yr(1, pr, hr),
    gr = yr(-1, vr);
  function br(n, r, t) {
    var e = (tr(n) ? pr : lr)(n, r, t);
    if (void 0 !== e && -1 !== e) return n[e];
  }
  function mr(n, r, t) {
    var e, u;
    if (((r = Rn(r, t)), tr(n)))
      for (e = 0, u = n.length; e < u; e++) r(n[e], e, n);
    else {
      var o = nn(n);
      for (e = 0, u = o.length; e < u; e++) r(n[o[e]], o[e], n);
    }
    return n;
  }
  function jr(n, r, t) {
    r = Pn(r, t);
    for (
      var e = !tr(n) && nn(n), u = (e || n).length, o = Array(u), i = 0;
      i < u;
      i++
    ) {
      var a = e ? e[i] : i;
      o[i] = r(n[a], a, n);
    }
    return o;
  }
  function _r(n) {
    var r = function (r, t, e, u) {
      var o = !tr(r) && nn(r),
        i = (o || r).length,
        a = n > 0 ? 0 : i - 1;
      for (u || ((e = r[o ? o[a] : a]), (a += n)); a >= 0 && a < i; a += n) {
        var f = o ? o[a] : a;
        e = t(e, r[f], f, r);
      }
      return e;
    };
    return function (n, t, e, u) {
      var o = arguments.length >= 3;
      return r(n, Rn(t, u, 4), e, o);
    };
  }
  var wr = _r(1),
    Ar = _r(-1);
  function xr(n, r, t) {
    var e = [];
    return (
      (r = Pn(r, t)),
      mr(n, function (n, t, u) {
        r(n, t, u) && e.push(n);
      }),
      e
    );
  }
  function Sr(n, r, t) {
    r = Pn(r, t);
    for (var e = !tr(n) && nn(n), u = (e || n).length, o = 0; o < u; o++) {
      var i = e ? e[o] : o;
      if (!r(n[i], i, n)) return !1;
    }
    return !0;
  }
  function Or(n, r, t) {
    r = Pn(r, t);
    for (var e = !tr(n) && nn(n), u = (e || n).length, o = 0; o < u; o++) {
      var i = e ? e[o] : o;
      if (r(n[i], i, n)) return !0;
    }
    return !1;
  }
  function Mr(n, r, t, e) {
    return (
      tr(n) || (n = jn(n)),
      ("number" != typeof t || e) && (t = 0),
      dr(n, r, t) >= 0
    );
  }
  var Er = j(function (n, r, t) {
    var e, u;
    return (
      D(r)
        ? (u = r)
        : ((r = Bn(r)), (e = r.slice(0, -1)), (r = r[r.length - 1])),
      jr(n, function (n) {
        var o = u;
        if (!o) {
          if ((e && e.length && (n = Nn(n, e)), null == n)) return;
          o = n[r];
        }
        return null == o ? o : o.apply(n, t);
      })
    );
  });
  function Br(n, r) {
    return jr(n, Dn(r));
  }
  function Nr(n, r, t) {
    var e,
      u,
      o = -1 / 0,
      i = -1 / 0;
    if (
      null == r ||
      ("number" == typeof r && "object" != typeof n[0] && null != n)
    )
      for (var a = 0, f = (n = tr(n) ? n : jn(n)).length; a < f; a++)
        null != (e = n[a]) && e > o && (o = e);
    else
      (r = Pn(r, t)),
        mr(n, function (n, t, e) {
          ((u = r(n, t, e)) > i || (u === -1 / 0 && o === -1 / 0)) &&
            ((o = n), (i = u));
        });
    return o;
  }
  var Ir = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;
  function Tr(n) {
    return n
      ? U(n)
        ? i.call(n)
        : S(n)
        ? n.match(Ir)
        : tr(n)
        ? jr(n, Tn)
        : jn(n)
      : [];
  }
  function kr(n, r, t) {
    if (null == r || t) return tr(n) || (n = jn(n)), n[Un(n.length - 1)];
    var e = Tr(n),
      u = Y(e);
    r = Math.max(Math.min(r, u), 0);
    for (var o = u - 1, i = 0; i < r; i++) {
      var a = Un(i, o),
        f = e[i];
      (e[i] = e[a]), (e[a] = f);
    }
    return e.slice(0, r);
  }
  function Dr(n, r) {
    return function (t, e, u) {
      var o = r ? [[], []] : {};
      return (
        (e = Pn(e, u)),
        mr(t, function (r, u) {
          var i = e(r, u, t);
          n(o, r, i);
        }),
        o
      );
    };
  }
  var Rr = Dr(function (n, r, t) {
      W(n, t) ? n[t].push(r) : (n[t] = [r]);
    }),
    Fr = Dr(function (n, r, t) {
      n[t] = r;
    }),
    Vr = Dr(function (n, r, t) {
      W(n, t) ? n[t]++ : (n[t] = 1);
    }),
    Pr = Dr(function (n, r, t) {
      n[t ? 0 : 1].push(r);
    }, !0);
  function qr(n, r, t) {
    return r in t;
  }
  var Ur = j(function (n, r) {
      var t = {},
        e = r[0];
      if (null == n) return t;
      D(e)
        ? (r.length > 1 && (e = Rn(e, r[1])), (r = an(n)))
        : ((e = qr), (r = er(r, !1, !1)), (n = Object(n)));
      for (var u = 0, o = r.length; u < o; u++) {
        var i = r[u],
          a = n[i];
        e(a, i, n) && (t[i] = a);
      }
      return t;
    }),
    Wr = j(function (n, r) {
      var t,
        e = r[0];
      return (
        D(e)
          ? ((e = ar(e)), r.length > 1 && (t = r[1]))
          : ((r = jr(er(r, !1, !1), String)),
            (e = function (n, t) {
              return !Mr(r, t);
            })),
        Ur(n, e, t)
      );
    });
  function zr(n, r, t) {
    return i.call(n, 0, Math.max(0, n.length - (null == r || t ? 1 : r)));
  }
  function Lr(n, r, t) {
    return null == n || n.length < 1
      ? null == r || t
        ? void 0
        : []
      : null == r || t
      ? n[0]
      : zr(n, n.length - r);
  }
  function $r(n, r, t) {
    return i.call(n, null == r || t ? 1 : r);
  }
  var Cr = j(function (n, r) {
      return (
        (r = er(r, !0, !0)),
        xr(n, function (n) {
          return !Mr(r, n);
        })
      );
    }),
    Kr = j(function (n, r) {
      return Cr(n, r);
    });
  function Jr(n, r, t, e) {
    A(r) || ((e = t), (t = r), (r = !1)), null != t && (t = Pn(t, e));
    for (var u = [], o = [], i = 0, a = Y(n); i < a; i++) {
      var f = n[i],
        c = t ? t(f, i, n) : f;
      r && !t
        ? ((i && o === c) || u.push(f), (o = c))
        : t
        ? Mr(o, c) || (o.push(c), u.push(f))
        : Mr(u, f) || u.push(f);
    }
    return u;
  }
  var Gr = j(function (n) {
    return Jr(er(n, !0, !0));
  });
  function Hr(n) {
    for (var r = (n && Nr(n, Y).length) || 0, t = Array(r), e = 0; e < r; e++)
      t[e] = Br(n, e);
    return t;
  }
  var Qr = j(Hr);
  function Xr(n, r) {
    return n._chain ? tn(r).chain() : r;
  }
  function Yr(n) {
    return (
      mr(wn(n), function (r) {
        var t = (tn[r] = n[r]);
        tn.prototype[r] = function () {
          var n = [this._wrapped];
          return o.apply(n, arguments), Xr(this, t.apply(tn, n));
        };
      }),
      tn
    );
  }
  mr(
    ["pop", "push", "reverse", "shift", "sort", "splice", "unshift"],
    function (n) {
      var r = t[n];
      tn.prototype[n] = function () {
        var t = this._wrapped;
        return (
          null != t &&
            (r.apply(t, arguments),
            ("shift" !== n && "splice" !== n) || 0 !== t.length || delete t[0]),
          Xr(this, t)
        );
      };
    }
  ),
    mr(["concat", "join", "slice"], function (n) {
      var r = t[n];
      tn.prototype[n] = function () {
        var n = this._wrapped;
        return null != n && (n = r.apply(n, arguments)), Xr(this, n);
      };
    });
  var Zr = Yr({
    __proto__: null,
    VERSION: n,
    restArguments: j,
    isObject: _,
    isNull: function (n) {
      return null === n;
    },
    isUndefined: w,
    isBoolean: A,
    isElement: function (n) {
      return !(!n || 1 !== n.nodeType);
    },
    isString: S,
    isNumber: O,
    isDate: M,
    isRegExp: E,
    isError: B,
    isSymbol: N,
    isArrayBuffer: I,
    isDataView: q,
    isArray: U,
    isFunction: D,
    isArguments: L,
    isFinite: function (n) {
      return !N(n) && d(n) && !isNaN(parseFloat(n));
    },
    isNaN: $,
    isTypedArray: X,
    isEmpty: function (n) {
      if (null == n) return !0;
      var r = Y(n);
      return "number" == typeof r && (U(n) || S(n) || L(n))
        ? 0 === r
        : 0 === Y(nn(n));
    },
    isMatch: rn,
    isEqual: function (n, r) {
      return on(n, r);
    },
    isMap: dn,
    isWeakMap: gn,
    isSet: bn,
    isWeakSet: mn,
    keys: nn,
    allKeys: an,
    values: jn,
    pairs: function (n) {
      for (var r = nn(n), t = r.length, e = Array(t), u = 0; u < t; u++)
        e[u] = [r[u], n[r[u]]];
      return e;
    },
    invert: _n,
    functions: wn,
    methods: wn,
    extend: xn,
    extendOwn: Sn,
    assign: Sn,
    defaults: On,
    create: function (n, r) {
      var t = Mn(n);
      return r && Sn(t, r), t;
    },
    clone: function (n) {
      return _(n) ? (U(n) ? n.slice() : xn({}, n)) : n;
    },
    tap: function (n, r) {
      return r(n), n;
    },
    get: In,
    has: function (n, r) {
      for (var t = (r = Bn(r)).length, e = 0; e < t; e++) {
        var u = r[e];
        if (!W(n, u)) return !1;
        n = n[u];
      }
      return !!t;
    },
    mapObject: function (n, r, t) {
      r = Pn(r, t);
      for (var e = nn(n), u = e.length, o = {}, i = 0; i < u; i++) {
        var a = e[i];
        o[a] = r(n[a], a, n);
      }
      return o;
    },
    identity: Tn,
    constant: C,
    noop: qn,
    toPath: En,
    property: Dn,
    propertyOf: function (n) {
      return null == n
        ? qn
        : function (r) {
            return In(n, r);
          };
    },
    matcher: kn,
    matches: kn,
    times: function (n, r, t) {
      var e = Array(Math.max(0, n));
      r = Rn(r, t, 1);
      for (var u = 0; u < n; u++) e[u] = r(u);
      return e;
    },
    random: Un,
    now: Wn,
    escape: $n,
    unescape: Cn,
    templateSettings: Kn,
    template: function (n, r, t) {
      !r && t && (r = t), (r = On({}, r, tn.templateSettings));
      var e = RegExp(
          [
            (r.escape || Jn).source,
            (r.interpolate || Jn).source,
            (r.evaluate || Jn).source,
          ].join("|") + "|$",
          "g"
        ),
        u = 0,
        o = "__p+='";
      n.replace(e, function (r, t, e, i, a) {
        return (
          (o += n.slice(u, a).replace(Hn, Qn)),
          (u = a + r.length),
          t
            ? (o += "'+\n((__t=(" + t + "))==null?'':_.escape(__t))+\n'")
            : e
            ? (o += "'+\n((__t=(" + e + "))==null?'':__t)+\n'")
            : i && (o += "';\n" + i + "\n__p+='"),
          r
        );
      }),
        (o += "';\n");
      var i,
        a = r.variable;
      if (a) {
        if (!Xn.test(a))
          throw new Error("variable is not a bare identifier: " + a);
      } else (o = "with(obj||{}){\n" + o + "}\n"), (a = "obj");
      o =
        "var __t,__p='',__j=Array.prototype.join," +
        "print=function(){__p+=__j.call(arguments,'');};\n" +
        o +
        "return __p;\n";
      try {
        i = new Function(a, "_", o);
      } catch (n) {
        throw ((n.source = o), n);
      }
      var f = function (n) {
        return i.call(this, n, tn);
      };
      return (f.source = "function(" + a + "){\n" + o + "}"), f;
    },
    result: function (n, r, t) {
      var e = (r = Bn(r)).length;
      if (!e) return D(t) ? t.call(n) : t;
      for (var u = 0; u < e; u++) {
        var o = null == n ? void 0 : n[r[u]];
        void 0 === o && ((o = t), (u = e)), (n = D(o) ? o.call(n) : o);
      }
      return n;
    },
    uniqueId: function (n) {
      var r = ++Yn + "";
      return n ? n + r : r;
    },
    chain: function (n) {
      var r = tn(n);
      return (r._chain = !0), r;
    },
    iteratee: Vn,
    partial: nr,
    bind: rr,
    bindAll: ur,
    memoize: function (n, r) {
      var t = function (e) {
        var u = t.cache,
          o = "" + (r ? r.apply(this, arguments) : e);
        return W(u, o) || (u[o] = n.apply(this, arguments)), u[o];
      };
      return (t.cache = {}), t;
    },
    delay: or,
    defer: ir,
    throttle: function (n, r, t) {
      var e,
        u,
        o,
        i,
        a = 0;
      t || (t = {});
      var f = function () {
          (a = !1 === t.leading ? 0 : Wn()),
            (e = null),
            (i = n.apply(u, o)),
            e || (u = o = null);
        },
        c = function () {
          var c = Wn();
          a || !1 !== t.leading || (a = c);
          var l = r - (c - a);
          return (
            (u = this),
            (o = arguments),
            l <= 0 || l > r
              ? (e && (clearTimeout(e), (e = null)),
                (a = c),
                (i = n.apply(u, o)),
                e || (u = o = null))
              : e || !1 === t.trailing || (e = setTimeout(f, l)),
            i
          );
        };
      return (
        (c.cancel = function () {
          clearTimeout(e), (a = 0), (e = u = o = null);
        }),
        c
      );
    },
    debounce: function (n, r, t) {
      var e,
        u,
        o,
        i,
        a,
        f = function () {
          var c = Wn() - u;
          r > c
            ? (e = setTimeout(f, r - c))
            : ((e = null), t || (i = n.apply(a, o)), e || (o = a = null));
        },
        c = j(function (c) {
          return (
            (a = this),
            (o = c),
            (u = Wn()),
            e || ((e = setTimeout(f, r)), t && (i = n.apply(a, o))),
            i
          );
        });
      return (
        (c.cancel = function () {
          clearTimeout(e), (e = o = a = null);
        }),
        c
      );
    },
    wrap: function (n, r) {
      return nr(r, n);
    },
    negate: ar,
    compose: function () {
      var n = arguments,
        r = n.length - 1;
      return function () {
        for (var t = r, e = n[r].apply(this, arguments); t--; )
          e = n[t].call(this, e);
        return e;
      };
    },
    after: function (n, r) {
      return function () {
        if (--n < 1) return r.apply(this, arguments);
      };
    },
    before: fr,
    once: cr,
    findKey: lr,
    findIndex: pr,
    findLastIndex: vr,
    sortedIndex: hr,
    indexOf: dr,
    lastIndexOf: gr,
    find: br,
    detect: br,
    findWhere: function (n, r) {
      return br(n, kn(r));
    },
    each: mr,
    forEach: mr,
    map: jr,
    collect: jr,
    reduce: wr,
    foldl: wr,
    inject: wr,
    reduceRight: Ar,
    foldr: Ar,
    filter: xr,
    select: xr,
    reject: function (n, r, t) {
      return xr(n, ar(Pn(r)), t);
    },
    every: Sr,
    all: Sr,
    some: Or,
    any: Or,
    contains: Mr,
    includes: Mr,
    include: Mr,
    invoke: Er,
    pluck: Br,
    where: function (n, r) {
      return xr(n, kn(r));
    },
    max: Nr,
    min: function (n, r, t) {
      var e,
        u,
        o = 1 / 0,
        i = 1 / 0;
      if (
        null == r ||
        ("number" == typeof r && "object" != typeof n[0] && null != n)
      )
        for (var a = 0, f = (n = tr(n) ? n : jn(n)).length; a < f; a++)
          null != (e = n[a]) && e < o && (o = e);
      else
        (r = Pn(r, t)),
          mr(n, function (n, t, e) {
            ((u = r(n, t, e)) < i || (u === 1 / 0 && o === 1 / 0)) &&
              ((o = n), (i = u));
          });
      return o;
    },
    shuffle: function (n) {
      return kr(n, 1 / 0);
    },
    sample: kr,
    sortBy: function (n, r, t) {
      var e = 0;
      return (
        (r = Pn(r, t)),
        Br(
          jr(n, function (n, t, u) {
            return { value: n, index: e++, criteria: r(n, t, u) };
          }).sort(function (n, r) {
            var t = n.criteria,
              e = r.criteria;
            if (t !== e) {
              if (t > e || void 0 === t) return 1;
              if (t < e || void 0 === e) return -1;
            }
            return n.index - r.index;
          }),
          "value"
        )
      );
    },
    groupBy: Rr,
    indexBy: Fr,
    countBy: Vr,
    partition: Pr,
    toArray: Tr,
    size: function (n) {
      return null == n ? 0 : tr(n) ? n.length : nn(n).length;
    },
    pick: Ur,
    omit: Wr,
    first: Lr,
    head: Lr,
    take: Lr,
    initial: zr,
    last: function (n, r, t) {
      return null == n || n.length < 1
        ? null == r || t
          ? void 0
          : []
        : null == r || t
        ? n[n.length - 1]
        : $r(n, Math.max(0, n.length - r));
    },
    rest: $r,
    tail: $r,
    drop: $r,
    compact: function (n) {
      return xr(n, Boolean);
    },
    flatten: function (n, r) {
      return er(n, r, !1);
    },
    without: Kr,
    uniq: Jr,
    unique: Jr,
    union: Gr,
    intersection: function (n) {
      for (var r = [], t = arguments.length, e = 0, u = Y(n); e < u; e++) {
        var o = n[e];
        if (!Mr(r, o)) {
          var i;
          for (i = 1; i < t && Mr(arguments[i], o); i++);
          i === t && r.push(o);
        }
      }
      return r;
    },
    difference: Cr,
    unzip: Hr,
    transpose: Hr,
    zip: Qr,
    object: function (n, r) {
      for (var t = {}, e = 0, u = Y(n); e < u; e++)
        r ? (t[n[e]] = r[e]) : (t[n[e][0]] = n[e][1]);
      return t;
    },
    range: function (n, r, t) {
      null == r && ((r = n || 0), (n = 0)), t || (t = r < n ? -1 : 1);
      for (
        var e = Math.max(Math.ceil((r - n) / t), 0), u = Array(e), o = 0;
        o < e;
        o++, n += t
      )
        u[o] = n;
      return u;
    },
    chunk: function (n, r) {
      if (null == r || r < 1) return [];
      for (var t = [], e = 0, u = n.length; e < u; )
        t.push(i.call(n, e, (e += r)));
      return t;
    },
    mixin: Yr,
    default: tn,
  });
  return (Zr._ = Zr), Zr;
});
