/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
!(function (n) {
  "function" == typeof define && define.amd
    ? define(["jquery"], n)
    : "object" == typeof module && module.exports
    ? (module.exports = function (e, t) {
        return (
          void 0 === t &&
            (t =
              "undefined" != typeof window
                ? require("jquery")
                : require("jquery")(e)),
          n(t),
          t
        );
      })
    : n(jQuery);
})(function (u) {
  var e = (function () {
      if (u && u.fn && u.fn.select2 && u.fn.select2.amd)
        var e = u.fn.select2.amd;
      var t, n, r, h, o, s, f, g, m, v, y, _, i, a, b;
      function w(e, t) {
        return i.call(e, t);
      }
      function l(e, t) {
        var n,
          r,
          i,
          o,
          s,
          a,
          l,
          c,
          u,
          d,
          p,
          h = t && t.split("/"),
          f = y.map,
          g = (f && f["*"]) || {};
        if (e) {
          for (
            s = (e = e.split("/")).length - 1,
              y.nodeIdCompat && b.test(e[s]) && (e[s] = e[s].replace(b, "")),
              "." === e[0].charAt(0) &&
                h &&
                (e = h.slice(0, h.length - 1).concat(e)),
              u = 0;
            u < e.length;
            u++
          )
            if ("." === (p = e[u])) e.splice(u, 1), --u;
            else if (".." === p) {
              if (0 === u || (1 === u && ".." === e[2]) || ".." === e[u - 1])
                continue;
              0 < u && (e.splice(u - 1, 2), (u -= 2));
            }
          e = e.join("/");
        }
        if ((h || g) && f) {
          for (u = (n = e.split("/")).length; 0 < u; --u) {
            if (((r = n.slice(0, u).join("/")), h))
              for (d = h.length; 0 < d; --d)
                if ((i = (i = f[h.slice(0, d).join("/")]) && i[r])) {
                  (o = i), (a = u);
                  break;
                }
            if (o) break;
            !l && g && g[r] && ((l = g[r]), (c = u));
          }
          !o && l && ((o = l), (a = c)),
            o && (n.splice(0, a, o), (e = n.join("/")));
        }
        return e;
      }
      function A(t, n) {
        return function () {
          var e = a.call(arguments, 0);
          return (
            "string" != typeof e[0] && 1 === e.length && e.push(null),
            s.apply(h, e.concat([t, n]))
          );
        };
      }
      function x(t) {
        return function (e) {
          m[t] = e;
        };
      }
      function D(e) {
        if (w(v, e)) {
          var t = v[e];
          delete v[e], (_[e] = !0), o.apply(h, t);
        }
        if (!w(m, e) && !w(_, e)) throw new Error("No " + e);
        return m[e];
      }
      function c(e) {
        var t,
          n = e ? e.indexOf("!") : -1;
        return (
          -1 < n &&
            ((t = e.substring(0, n)), (e = e.substring(n + 1, e.length))),
          [t, e]
        );
      }
      function S(e) {
        return e ? c(e) : [];
      }
      return (
        (e && e.requirejs) ||
          (e ? (n = e) : (e = {}),
          (m = {}),
          (v = {}),
          (y = {}),
          (_ = {}),
          (i = Object.prototype.hasOwnProperty),
          (a = [].slice),
          (b = /\.js$/),
          (f = function (e, t) {
            var n,
              r,
              i = c(e),
              o = i[0],
              s = t[1];
            return (
              (e = i[1]),
              o && (n = D((o = l(o, s)))),
              o
                ? (e =
                    n && n.normalize
                      ? n.normalize(
                          e,
                          ((r = s),
                          function (e) {
                            return l(e, r);
                          })
                        )
                      : l(e, s))
                : ((o = (i = c((e = l(e, s))))[0]),
                  (e = i[1]),
                  o && (n = D(o))),
              { f: o ? o + "!" + e : e, n: e, pr: o, p: n }
            );
          }),
          (g = {
            require: function (e) {
              return A(e);
            },
            exports: function (e) {
              var t = m[e];
              return void 0 !== t ? t : (m[e] = {});
            },
            module: function (e) {
              return {
                id: e,
                uri: "",
                exports: m[e],
                config:
                  ((t = e),
                  function () {
                    return (y && y.config && y.config[t]) || {};
                  }),
              };
              var t;
            },
          }),
          (o = function (e, t, n, r) {
            var i,
              o,
              s,
              a,
              l,
              c,
              u,
              d = [],
              p = typeof n;
            if (((c = S((r = r || e))), "undefined" == p || "function" == p)) {
              for (
                t =
                  !t.length && n.length ? ["require", "exports", "module"] : t,
                  l = 0;
                l < t.length;
                l += 1
              )
                if ("require" === (o = (a = f(t[l], c)).f)) d[l] = g.require(e);
                else if ("exports" === o) (d[l] = g.exports(e)), (u = !0);
                else if ("module" === o) i = d[l] = g.module(e);
                else if (w(m, o) || w(v, o) || w(_, o)) d[l] = D(o);
                else {
                  if (!a.p) throw new Error(e + " missing " + o);
                  a.p.load(a.n, A(r, !0), x(o), {}), (d[l] = m[o]);
                }
              (s = n ? n.apply(m[e], d) : void 0),
                e &&
                  (i && i.exports !== h && i.exports !== m[e]
                    ? (m[e] = i.exports)
                    : (s === h && u) || (m[e] = s));
            } else e && (m[e] = n);
          }),
          (t =
            n =
            s =
              function (e, t, n, r, i) {
                if ("string" == typeof e)
                  return g[e] ? g[e](t) : D(f(e, S(t)).f);
                if (!e.splice) {
                  if (((y = e).deps && s(y.deps, y.callback), !t)) return;
                  t.splice ? ((e = t), (t = n), (n = null)) : (e = h);
                }
                return (
                  (t = t || function () {}),
                  "function" == typeof n && ((n = r), (r = i)),
                  r
                    ? o(h, e, t, n)
                    : setTimeout(function () {
                        o(h, e, t, n);
                      }, 4),
                  s
                );
              }),
          (s.config = function (e) {
            return s(e);
          }),
          (t._defined = m),
          ((r = function (e, t, n) {
            if ("string" != typeof e)
              throw new Error(
                "See almond README: incorrect module build, no module name"
              );
            t.splice || ((n = t), (t = [])),
              w(m, e) || w(v, e) || (v[e] = [e, t, n]);
          }).amd = { jQuery: !0 }),
          (e.requirejs = t),
          (e.require = n),
          (e.define = r)),
        e.define("almond", function () {}),
        e.define("jquery", [], function () {
          var e = u || $;
          return (
            null == e &&
              console &&
              console.error &&
              console.error(
                "Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."
              ),
            e
          );
        }),
        e.define("select2/utils", ["jquery"], function (o) {
          var i = {};
          function u(e) {
            var t = e.prototype,
              n = [];
            for (var r in t) {
              "function" == typeof t[r] && "constructor" !== r && n.push(r);
            }
            return n;
          }
          (i.Extend = function (e, t) {
            var n = {}.hasOwnProperty;
            function r() {
              this.constructor = e;
            }
            for (var i in t) n.call(t, i) && (e[i] = t[i]);
            return (
              (r.prototype = t.prototype),
              (e.prototype = new r()),
              (e.__super__ = t.prototype),
              e
            );
          }),
            (i.Decorate = function (r, i) {
              var e = u(i),
                t = u(r);
              function o() {
                var e = Array.prototype.unshift,
                  t = i.prototype.constructor.length,
                  n = r.prototype.constructor;
                0 < t &&
                  (e.call(arguments, r.prototype.constructor),
                  (n = i.prototype.constructor)),
                  n.apply(this, arguments);
              }
              (i.displayName = r.displayName),
                (o.prototype = new (function () {
                  this.constructor = o;
                })());
              for (var n = 0; n < t.length; n++) {
                var s = t[n];
                o.prototype[s] = r.prototype[s];
              }
              function a(e) {
                var t = function () {};
                e in o.prototype && (t = o.prototype[e]);
                var n = i.prototype[e];
                return function () {
                  return (
                    Array.prototype.unshift.call(arguments, t),
                    n.apply(this, arguments)
                  );
                };
              }
              for (var l = 0; l < e.length; l++) {
                var c = e[l];
                o.prototype[c] = a(c);
              }
              return o;
            });
          function e() {
            this.listeners = {};
          }
          (e.prototype.on = function (e, t) {
            (this.listeners = this.listeners || {}),
              e in this.listeners
                ? this.listeners[e].push(t)
                : (this.listeners[e] = [t]);
          }),
            (e.prototype.trigger = function (e) {
              var t = Array.prototype.slice,
                n = t.call(arguments, 1);
              (this.listeners = this.listeners || {}),
                null == n && (n = []),
                0 === n.length && n.push({}),
                (n[0]._type = e) in this.listeners &&
                  this.invoke(this.listeners[e], t.call(arguments, 1)),
                "*" in this.listeners &&
                  this.invoke(this.listeners["*"], arguments);
            }),
            (e.prototype.invoke = function (e, t) {
              for (var n = 0, r = e.length; n < r; n++) e[n].apply(this, t);
            }),
            (i.Observable = e),
            (i.generateChars = function (e) {
              for (var t = "", n = 0; n < e; n++) {
                t += Math.floor(36 * Math.random()).toString(36);
              }
              return t;
            }),
            (i.bind = function (e, t) {
              return function () {
                e.apply(t, arguments);
              };
            }),
            (i._convertData = function (e) {
              for (var t in e) {
                var n = t.split("-"),
                  r = e;
                if (1 !== n.length) {
                  for (var i = 0; i < n.length; i++) {
                    var o = n[i];
                    (o = o.substring(0, 1).toLowerCase() + o.substring(1)) in
                      r || (r[o] = {}),
                      i == n.length - 1 && (r[o] = e[t]),
                      (r = r[o]);
                  }
                  delete e[t];
                }
              }
              return e;
            }),
            (i.hasScroll = function (e, t) {
              var n = o(t),
                r = t.style.overflowX,
                i = t.style.overflowY;
              return (
                (r !== i || ("hidden" !== i && "visible" !== i)) &&
                ("scroll" === r ||
                  "scroll" === i ||
                  n.innerHeight() < t.scrollHeight ||
                  n.innerWidth() < t.scrollWidth)
              );
            }),
            (i.escapeMarkup = function (e) {
              var t = {
                "\\": "&#92;",
                "&": "&amp;",
                "<": "&lt;",
                ">": "&gt;",
                '"': "&quot;",
                "'": "&#39;",
                "/": "&#47;",
              };
              return "string" != typeof e
                ? e
                : String(e).replace(/[&<>"'\/\\]/g, function (e) {
                    return t[e];
                  });
            }),
            (i.appendMany = function (e, t) {
              if ("1.7" === o.fn.jquery.substr(0, 3)) {
                var n = o();
                o.map(t, function (e) {
                  n = n.add(e);
                }),
                  (t = n);
              }
              e.append(t);
            }),
            (i.__cache = {});
          var n = 0;
          return (
            (i.GetUniqueElementId = function (e) {
              var t = e.getAttribute("data-select2-id");
              return (
                null == t &&
                  (e.id
                    ? ((t = e.id), e.setAttribute("data-select2-id", t))
                    : (e.setAttribute("data-select2-id", ++n),
                      (t = n.toString()))),
                t
              );
            }),
            (i.StoreData = function (e, t, n) {
              var r = i.GetUniqueElementId(e);
              i.__cache[r] || (i.__cache[r] = {}), (i.__cache[r][t] = n);
            }),
            (i.GetData = function (e, t) {
              var n = i.GetUniqueElementId(e);
              return t
                ? i.__cache[n] && null != i.__cache[n][t]
                  ? i.__cache[n][t]
                  : o(e).data(t)
                : i.__cache[n];
            }),
            (i.RemoveData = function (e) {
              var t = i.GetUniqueElementId(e);
              null != i.__cache[t] && delete i.__cache[t],
                e.removeAttribute("data-select2-id");
            }),
            i
          );
        }),
        e.define("select2/results", ["jquery", "./utils"], function (h, f) {
          function r(e, t, n) {
            (this.$element = e),
              (this.data = n),
              (this.options = t),
              r.__super__.constructor.call(this);
          }
          return (
            f.Extend(r, f.Observable),
            (r.prototype.render = function () {
              var e = h(
                '<ul class="select2-results__options" role="listbox"></ul>'
              );
              return (
                this.options.get("multiple") &&
                  e.attr("aria-multiselectable", "true"),
                (this.$results = e)
              );
            }),
            (r.prototype.clear = function () {
              this.$results.empty();
            }),
            (r.prototype.displayMessage = function (e) {
              var t = this.options.get("escapeMarkup");
              this.clear(), this.hideLoading();
              var n = h(
                  '<li role="alert" aria-live="assertive" class="select2-results__option"></li>'
                ),
                r = this.options.get("translations").get(e.message);
              n.append(t(r(e.args))),
                (n[0].className += " select2-results__message"),
                this.$results.append(n);
            }),
            (r.prototype.hideMessages = function () {
              this.$results.find(".select2-results__message").remove();
            }),
            (r.prototype.append = function (e) {
              this.hideLoading();
              var t = [];
              if (null != e.results && 0 !== e.results.length) {
                e.results = this.sort(e.results);
                for (var n = 0; n < e.results.length; n++) {
                  var r = e.results[n],
                    i = this.option(r);
                  t.push(i);
                }
                this.$results.append(t);
              } else
                0 === this.$results.children().length &&
                  this.trigger("results:message", { message: "noResults" });
            }),
            (r.prototype.position = function (e, t) {
              t.find(".select2-results").append(e);
            }),
            (r.prototype.sort = function (e) {
              return this.options.get("sorter")(e);
            }),
            (r.prototype.highlightFirstItem = function () {
              var e = this.$results.find(
                  ".select2-results__option[aria-selected]"
                ),
                t = e.filter("[aria-selected=true]");
              0 < t.length
                ? t.first().trigger("mouseenter")
                : e.first().trigger("mouseenter"),
                this.ensureHighlightVisible();
            }),
            (r.prototype.setClasses = function () {
              var t = this;
              this.data.current(function (e) {
                var r = h.map(e, function (e) {
                  return e.id.toString();
                });
                t.$results
                  .find(".select2-results__option[aria-selected]")
                  .each(function () {
                    var e = h(this),
                      t = f.GetData(this, "data"),
                      n = "" + t.id;
                    (null != t.element && t.element.selected) ||
                    (null == t.element && -1 < h.inArray(n, r))
                      ? e.attr("aria-selected", "true")
                      : e.attr("aria-selected", "false");
                  });
              });
            }),
            (r.prototype.showLoading = function (e) {
              this.hideLoading();
              var t = {
                  disabled: !0,
                  loading: !0,
                  text: this.options.get("translations").get("searching")(e),
                },
                n = this.option(t);
              (n.className += " loading-results"), this.$results.prepend(n);
            }),
            (r.prototype.hideLoading = function () {
              this.$results.find(".loading-results").remove();
            }),
            (r.prototype.option = function (e) {
              var t = document.createElement("li");
              t.className = "select2-results__option";
              var n = { role: "option", "aria-selected": "false" },
                r =
                  window.Element.prototype.matches ||
                  window.Element.prototype.msMatchesSelector ||
                  window.Element.prototype.webkitMatchesSelector;
              for (var i in (((null != e.element &&
                r.call(e.element, ":disabled")) ||
                (null == e.element && e.disabled)) &&
                (delete n["aria-selected"], (n["aria-disabled"] = "true")),
              null == e.id && delete n["aria-selected"],
              null != e._resultId && (t.id = e._resultId),
              e.title && (t.title = e.title),
              e.children &&
                ((n.role = "group"),
                (n["aria-label"] = e.text),
                delete n["aria-selected"]),
              n)) {
                var o = n[i];
                t.setAttribute(i, o);
              }
              if (e.children) {
                var s = h(t),
                  a = document.createElement("strong");
                a.className = "select2-results__group";
                h(a);
                this.template(e, a);
                for (var l = [], c = 0; c < e.children.length; c++) {
                  var u = e.children[c],
                    d = this.option(u);
                  l.push(d);
                }
                var p = h("<ul></ul>", {
                  class:
                    "select2-results__options select2-results__options--nested",
                });
                p.append(l), s.append(a), s.append(p);
              } else this.template(e, t);
              return f.StoreData(t, "data", e), t;
            }),
            (r.prototype.bind = function (t, e) {
              var l = this,
                n = t.id + "-results";
              this.$results.attr("id", n),
                t.on("results:all", function (e) {
                  l.clear(),
                    l.append(e.data),
                    t.isOpen() && (l.setClasses(), l.highlightFirstItem());
                }),
                t.on("results:append", function (e) {
                  l.append(e.data), t.isOpen() && l.setClasses();
                }),
                t.on("query", function (e) {
                  l.hideMessages(), l.showLoading(e);
                }),
                t.on("select", function () {
                  t.isOpen() &&
                    (l.setClasses(),
                    l.options.get("scrollAfterSelect") &&
                      l.highlightFirstItem());
                }),
                t.on("unselect", function () {
                  t.isOpen() &&
                    (l.setClasses(),
                    l.options.get("scrollAfterSelect") &&
                      l.highlightFirstItem());
                }),
                t.on("open", function () {
                  l.$results.attr("aria-expanded", "true"),
                    l.$results.attr("aria-hidden", "false"),
                    l.setClasses(),
                    l.ensureHighlightVisible();
                }),
                t.on("close", function () {
                  l.$results.attr("aria-expanded", "false"),
                    l.$results.attr("aria-hidden", "true"),
                    l.$results.removeAttr("aria-activedescendant");
                }),
                t.on("results:toggle", function () {
                  var e = l.getHighlightedResults();
                  0 !== e.length && e.trigger("mouseup");
                }),
                t.on("results:select", function () {
                  var e = l.getHighlightedResults();
                  if (0 !== e.length) {
                    var t = f.GetData(e[0], "data");
                    "true" == e.attr("aria-selected")
                      ? l.trigger("close", {})
                      : l.trigger("select", { data: t });
                  }
                }),
                t.on("results:previous", function () {
                  var e = l.getHighlightedResults(),
                    t = l.$results.find("[aria-selected]"),
                    n = t.index(e);
                  if (!(n <= 0)) {
                    var r = n - 1;
                    0 === e.length && (r = 0);
                    var i = t.eq(r);
                    i.trigger("mouseenter");
                    var o = l.$results.offset().top,
                      s = i.offset().top,
                      a = l.$results.scrollTop() + (s - o);
                    0 === r
                      ? l.$results.scrollTop(0)
                      : s - o < 0 && l.$results.scrollTop(a);
                  }
                }),
                t.on("results:next", function () {
                  var e = l.getHighlightedResults(),
                    t = l.$results.find("[aria-selected]"),
                    n = t.index(e) + 1;
                  if (!(n >= t.length)) {
                    var r = t.eq(n);
                    r.trigger("mouseenter");
                    var i =
                        l.$results.offset().top + l.$results.outerHeight(!1),
                      o = r.offset().top + r.outerHeight(!1),
                      s = l.$results.scrollTop() + o - i;
                    0 === n
                      ? l.$results.scrollTop(0)
                      : i < o && l.$results.scrollTop(s);
                  }
                }),
                t.on("results:focus", function (e) {
                  e.element.addClass("select2-results__option--highlighted");
                }),
                t.on("results:message", function (e) {
                  l.displayMessage(e);
                }),
                h.fn.mousewheel &&
                  this.$results.on("mousewheel", function (e) {
                    var t = l.$results.scrollTop(),
                      n = l.$results.get(0).scrollHeight - t + e.deltaY,
                      r = 0 < e.deltaY && t - e.deltaY <= 0,
                      i = e.deltaY < 0 && n <= l.$results.height();
                    r
                      ? (l.$results.scrollTop(0),
                        e.preventDefault(),
                        e.stopPropagation())
                      : i &&
                        (l.$results.scrollTop(
                          l.$results.get(0).scrollHeight - l.$results.height()
                        ),
                        e.preventDefault(),
                        e.stopPropagation());
                  }),
                this.$results.on(
                  "mouseup",
                  ".select2-results__option[aria-selected]",
                  function (e) {
                    var t = h(this),
                      n = f.GetData(this, "data");
                    "true" !== t.attr("aria-selected")
                      ? l.trigger("select", { originalEvent: e, data: n })
                      : l.options.get("multiple")
                      ? l.trigger("unselect", { originalEvent: e, data: n })
                      : l.trigger("close", {});
                  }
                ),
                this.$results.on(
                  "mouseenter",
                  ".select2-results__option[aria-selected]",
                  function (e) {
                    var t = f.GetData(this, "data");
                    l
                      .getHighlightedResults()
                      .removeClass("select2-results__option--highlighted"),
                      l.trigger("results:focus", { data: t, element: h(this) });
                  }
                );
            }),
            (r.prototype.getHighlightedResults = function () {
              return this.$results.find(
                ".select2-results__option--highlighted"
              );
            }),
            (r.prototype.destroy = function () {
              this.$results.remove();
            }),
            (r.prototype.ensureHighlightVisible = function () {
              var e = this.getHighlightedResults();
              if (0 !== e.length) {
                var t = this.$results.find("[aria-selected]").index(e),
                  n = this.$results.offset().top,
                  r = e.offset().top,
                  i = this.$results.scrollTop() + (r - n),
                  o = r - n;
                (i -= 2 * e.outerHeight(!1)),
                  t <= 2
                    ? this.$results.scrollTop(0)
                    : (o > this.$results.outerHeight() || o < 0) &&
                      this.$results.scrollTop(i);
              }
            }),
            (r.prototype.template = function (e, t) {
              var n = this.options.get("templateResult"),
                r = this.options.get("escapeMarkup"),
                i = n(e, t);
              null == i
                ? (t.style.display = "none")
                : "string" == typeof i
                ? (t.innerHTML = r(i))
                : h(t).append(i);
            }),
            r
          );
        }),
        e.define("select2/keys", [], function () {
          return {
            BACKSPACE: 8,
            TAB: 9,
            ENTER: 13,
            SHIFT: 16,
            CTRL: 17,
            ALT: 18,
            ESC: 27,
            SPACE: 32,
            PAGE_UP: 33,
            PAGE_DOWN: 34,
            END: 35,
            HOME: 36,
            LEFT: 37,
            UP: 38,
            RIGHT: 39,
            DOWN: 40,
            DELETE: 46,
          };
        }),
        e.define(
          "select2/selection/base",
          ["jquery", "../utils", "../keys"],
          function (n, r, i) {
            function o(e, t) {
              (this.$element = e),
                (this.options = t),
                o.__super__.constructor.call(this);
            }
            return (
              r.Extend(o, r.Observable),
              (o.prototype.render = function () {
                var e = n(
                  '<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>'
                );
                return (
                  (this._tabindex = 0),
                  null != r.GetData(this.$element[0], "old-tabindex")
                    ? (this._tabindex = r.GetData(
                        this.$element[0],
                        "old-tabindex"
                      ))
                    : null != this.$element.attr("tabindex") &&
                      (this._tabindex = this.$element.attr("tabindex")),
                  e.attr("title", this.$element.attr("title")),
                  e.attr("tabindex", this._tabindex),
                  e.attr("aria-disabled", "false"),
                  (this.$selection = e)
                );
              }),
              (o.prototype.bind = function (e, t) {
                var n = this,
                  r = e.id + "-results";
                (this.container = e),
                  this.$selection.on("focus", function (e) {
                    n.trigger("focus", e);
                  }),
                  this.$selection.on("blur", function (e) {
                    n._handleBlur(e);
                  }),
                  this.$selection.on("keydown", function (e) {
                    n.trigger("keypress", e),
                      e.which === i.SPACE && e.preventDefault();
                  }),
                  e.on("results:focus", function (e) {
                    n.$selection.attr(
                      "aria-activedescendant",
                      e.data._resultId
                    );
                  }),
                  e.on("selection:update", function (e) {
                    n.update(e.data);
                  }),
                  e.on("open", function () {
                    n.$selection.attr("aria-expanded", "true"),
                      n.$selection.attr("aria-owns", r),
                      n._attachCloseHandler(e);
                  }),
                  e.on("close", function () {
                    n.$selection.attr("aria-expanded", "false"),
                      n.$selection.removeAttr("aria-activedescendant"),
                      n.$selection.removeAttr("aria-owns"),
                      n.$selection.trigger("focus"),
                      n._detachCloseHandler(e);
                  }),
                  e.on("enable", function () {
                    n.$selection.attr("tabindex", n._tabindex),
                      n.$selection.attr("aria-disabled", "false");
                  }),
                  e.on("disable", function () {
                    n.$selection.attr("tabindex", "-1"),
                      n.$selection.attr("aria-disabled", "true");
                  });
              }),
              (o.prototype._handleBlur = function (e) {
                var t = this;
                window.setTimeout(function () {
                  document.activeElement == t.$selection[0] ||
                    n.contains(t.$selection[0], document.activeElement) ||
                    t.trigger("blur", e);
                }, 1);
              }),
              (o.prototype._attachCloseHandler = function (e) {
                n(document.body).on("mousedown.select2." + e.id, function (e) {
                  var t = n(e.target).closest(".select2");
                  n(".select2.select2-container--open").each(function () {
                    this != t[0] && r.GetData(this, "element").select2("close");
                  });
                });
              }),
              (o.prototype._detachCloseHandler = function (e) {
                n(document.body).off("mousedown.select2." + e.id);
              }),
              (o.prototype.position = function (e, t) {
                t.find(".selection").append(e);
              }),
              (o.prototype.destroy = function () {
                this._detachCloseHandler(this.container);
              }),
              (o.prototype.update = function (e) {
                throw new Error(
                  "The `update` method must be defined in child classes."
                );
              }),
              (o.prototype.isEnabled = function () {
                return !this.isDisabled();
              }),
              (o.prototype.isDisabled = function () {
                return this.options.get("disabled");
              }),
              o
            );
          }
        ),
        e.define(
          "select2/selection/single",
          ["jquery", "./base", "../utils", "../keys"],
          function (e, t, n, r) {
            function i() {
              i.__super__.constructor.apply(this, arguments);
            }
            return (
              n.Extend(i, t),
              (i.prototype.render = function () {
                var e = i.__super__.render.call(this);
                return (
                  e.addClass("select2-selection--single"),
                  e.html(
                    '<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'
                  ),
                  e
                );
              }),
              (i.prototype.bind = function (t, e) {
                var n = this;
                i.__super__.bind.apply(this, arguments);
                var r = t.id + "-container";
                this.$selection
                  .find(".select2-selection__rendered")
                  .attr("id", r)
                  .attr("role", "textbox")
                  .attr("aria-readonly", "true"),
                  this.$selection.attr("aria-labelledby", r),
                  this.$selection.on("mousedown", function (e) {
                    1 === e.which && n.trigger("toggle", { originalEvent: e });
                  }),
                  this.$selection.on("focus", function (e) {}),
                  this.$selection.on("blur", function (e) {}),
                  t.on("focus", function (e) {
                    t.isOpen() || n.$selection.trigger("focus");
                  });
              }),
              (i.prototype.clear = function () {
                var e = this.$selection.find(".select2-selection__rendered");
                e.empty(), e.removeAttr("title");
              }),
              (i.prototype.display = function (e, t) {
                var n = this.options.get("templateSelection");
                return this.options.get("escapeMarkup")(n(e, t));
              }),
              (i.prototype.selectionContainer = function () {
                return e("<span></span>");
              }),
              (i.prototype.update = function (e) {
                if (0 !== e.length) {
                  var t = e[0],
                    n = this.$selection.find(".select2-selection__rendered"),
                    r = this.display(t, n);
                  n.empty().append(r);
                  var i = t.title || t.text;
                  i ? n.attr("title", i) : n.removeAttr("title");
                } else this.clear();
              }),
              i
            );
          }
        ),
        e.define(
          "select2/selection/multiple",
          ["jquery", "./base", "../utils"],
          function (i, e, l) {
            function n(e, t) {
              n.__super__.constructor.apply(this, arguments);
            }
            return (
              l.Extend(n, e),
              (n.prototype.render = function () {
                var e = n.__super__.render.call(this);
                return (
                  e.addClass("select2-selection--multiple"),
                  e.html('<ul class="select2-selection__rendered"></ul>'),
                  e
                );
              }),
              (n.prototype.bind = function (e, t) {
                var r = this;
                n.__super__.bind.apply(this, arguments),
                  this.$selection.on("click", function (e) {
                    r.trigger("toggle", { originalEvent: e });
                  }),
                  this.$selection.on(
                    "click",
                    ".select2-selection__choice__remove",
                    function (e) {
                      if (!r.isDisabled()) {
                        var t = i(this).parent(),
                          n = l.GetData(t[0], "data");
                        r.trigger("unselect", { originalEvent: e, data: n });
                      }
                    }
                  );
              }),
              (n.prototype.clear = function () {
                var e = this.$selection.find(".select2-selection__rendered");
                e.empty(), e.removeAttr("title");
              }),
              (n.prototype.display = function (e, t) {
                var n = this.options.get("templateSelection");
                return this.options.get("escapeMarkup")(n(e, t));
              }),
              (n.prototype.selectionContainer = function () {
                return i(
                  '<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>'
                );
              }),
              (n.prototype.update = function (e) {
                if ((this.clear(), 0 !== e.length)) {
                  for (var t = [], n = 0; n < e.length; n++) {
                    var r = e[n],
                      i = this.selectionContainer(),
                      o = this.display(r, i);
                    i.append(o);
                    var s = r.title || r.text;
                    s && i.attr("title", s),
                      l.StoreData(i[0], "data", r),
                      t.push(i);
                  }
                  var a = this.$selection.find(".select2-selection__rendered");
                  l.appendMany(a, t);
                }
              }),
              n
            );
          }
        ),
        e.define("select2/selection/placeholder", ["../utils"], function (e) {
          function t(e, t, n) {
            (this.placeholder = this.normalizePlaceholder(
              n.get("placeholder")
            )),
              e.call(this, t, n);
          }
          return (
            (t.prototype.normalizePlaceholder = function (e, t) {
              return "string" == typeof t && (t = { id: "", text: t }), t;
            }),
            (t.prototype.createPlaceholder = function (e, t) {
              var n = this.selectionContainer();
              return (
                n.html(this.display(t)),
                n
                  .addClass("select2-selection__placeholder")
                  .removeClass("select2-selection__choice"),
                n
              );
            }),
            (t.prototype.update = function (e, t) {
              var n = 1 == t.length && t[0].id != this.placeholder.id;
              if (1 < t.length || n) return e.call(this, t);
              this.clear();
              var r = this.createPlaceholder(this.placeholder);
              this.$selection.find(".select2-selection__rendered").append(r);
            }),
            t
          );
        }),
        e.define(
          "select2/selection/allowClear",
          ["jquery", "../keys", "../utils"],
          function (i, r, a) {
            function e() {}
            return (
              (e.prototype.bind = function (e, t, n) {
                var r = this;
                e.call(this, t, n),
                  null == this.placeholder &&
                    this.options.get("debug") &&
                    window.console &&
                    console.error &&
                    console.error(
                      "Select2: The `allowClear` option should be used in combination with the `placeholder` option."
                    ),
                  this.$selection.on(
                    "mousedown",
                    ".select2-selection__clear",
                    function (e) {
                      r._handleClear(e);
                    }
                  ),
                  t.on("keypress", function (e) {
                    r._handleKeyboardClear(e, t);
                  });
              }),
              (e.prototype._handleClear = function (e, t) {
                if (!this.isDisabled()) {
                  var n = this.$selection.find(".select2-selection__clear");
                  if (0 !== n.length) {
                    t.stopPropagation();
                    var r = a.GetData(n[0], "data"),
                      i = this.$element.val();
                    this.$element.val(this.placeholder.id);
                    var o = { data: r };
                    if ((this.trigger("clear", o), o.prevented))
                      this.$element.val(i);
                    else {
                      for (var s = 0; s < r.length; s++)
                        if (
                          ((o = { data: r[s] }),
                          this.trigger("unselect", o),
                          o.prevented)
                        )
                          return void this.$element.val(i);
                      this.$element.trigger("input").trigger("change"),
                        this.trigger("toggle", {});
                    }
                  }
                }
              }),
              (e.prototype._handleKeyboardClear = function (e, t, n) {
                n.isOpen() ||
                  (t.which != r.DELETE && t.which != r.BACKSPACE) ||
                  this._handleClear(t);
              }),
              (e.prototype.update = function (e, t) {
                if (
                  (e.call(this, t),
                  !(
                    0 <
                      this.$selection.find(".select2-selection__placeholder")
                        .length || 0 === t.length
                  ))
                ) {
                  var n = this.options
                      .get("translations")
                      .get("removeAllItems"),
                    r = i(
                      '<span class="select2-selection__clear" title="' +
                        n() +
                        '">&times;</span>'
                    );
                  a.StoreData(r[0], "data", t),
                    this.$selection
                      .find(".select2-selection__rendered")
                      .prepend(r);
                }
              }),
              e
            );
          }
        ),
        e.define(
          "select2/selection/search",
          ["jquery", "../utils", "../keys"],
          function (r, a, l) {
            function e(e, t, n) {
              e.call(this, t, n);
            }
            return (
              (e.prototype.render = function (e) {
                var t = r(
                  '<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>'
                );
                (this.$searchContainer = t), (this.$search = t.find("input"));
                var n = e.call(this);
                return this._transferTabIndex(), n;
              }),
              (e.prototype.bind = function (e, t, n) {
                var r = this,
                  i = t.id + "-results";
                e.call(this, t, n),
                  t.on("open", function () {
                    r.$search.attr("aria-controls", i),
                      r.$search.trigger("focus");
                  }),
                  t.on("close", function () {
                    r.$search.val(""),
                      r.$search.removeAttr("aria-controls"),
                      r.$search.removeAttr("aria-activedescendant"),
                      r.$search.trigger("focus");
                  }),
                  t.on("enable", function () {
                    r.$search.prop("disabled", !1), r._transferTabIndex();
                  }),
                  t.on("disable", function () {
                    r.$search.prop("disabled", !0);
                  }),
                  t.on("focus", function (e) {
                    r.$search.trigger("focus");
                  }),
                  t.on("results:focus", function (e) {
                    e.data._resultId
                      ? r.$search.attr(
                          "aria-activedescendant",
                          e.data._resultId
                        )
                      : r.$search.removeAttr("aria-activedescendant");
                  }),
                  this.$selection.on(
                    "focusin",
                    ".select2-search--inline",
                    function (e) {
                      r.trigger("focus", e);
                    }
                  ),
                  this.$selection.on(
                    "focusout",
                    ".select2-search--inline",
                    function (e) {
                      r._handleBlur(e);
                    }
                  ),
                  this.$selection.on(
                    "keydown",
                    ".select2-search--inline",
                    function (e) {
                      if (
                        (e.stopPropagation(),
                        r.trigger("keypress", e),
                        (r._keyUpPrevented = e.isDefaultPrevented()),
                        e.which === l.BACKSPACE && "" === r.$search.val())
                      ) {
                        var t = r.$searchContainer.prev(
                          ".select2-selection__choice"
                        );
                        if (0 < t.length) {
                          var n = a.GetData(t[0], "data");
                          r.searchRemoveChoice(n), e.preventDefault();
                        }
                      }
                    }
                  ),
                  this.$selection.on(
                    "click",
                    ".select2-search--inline",
                    function (e) {
                      r.$search.val() && e.stopPropagation();
                    }
                  );
                var o = document.documentMode,
                  s = o && o <= 11;
                this.$selection.on(
                  "input.searchcheck",
                  ".select2-search--inline",
                  function (e) {
                    s
                      ? r.$selection.off("input.search input.searchcheck")
                      : r.$selection.off("keyup.search");
                  }
                ),
                  this.$selection.on(
                    "keyup.search input.search",
                    ".select2-search--inline",
                    function (e) {
                      if (s && "input" === e.type)
                        r.$selection.off("input.search input.searchcheck");
                      else {
                        var t = e.which;
                        t != l.SHIFT &&
                          t != l.CTRL &&
                          t != l.ALT &&
                          t != l.TAB &&
                          r.handleSearch(e);
                      }
                    }
                  );
              }),
              (e.prototype._transferTabIndex = function (e) {
                this.$search.attr("tabindex", this.$selection.attr("tabindex")),
                  this.$selection.attr("tabindex", "-1");
              }),
              (e.prototype.createPlaceholder = function (e, t) {
                this.$search.attr("placeholder", t.text);
              }),
              (e.prototype.update = function (e, t) {
                var n = this.$search[0] == document.activeElement;
                this.$search.attr("placeholder", ""),
                  e.call(this, t),
                  this.$selection
                    .find(".select2-selection__rendered")
                    .append(this.$searchContainer),
                  this.resizeSearch(),
                  n && this.$search.trigger("focus");
              }),
              (e.prototype.handleSearch = function () {
                if ((this.resizeSearch(), !this._keyUpPrevented)) {
                  var e = this.$search.val();
                  this.trigger("query", { term: e });
                }
                this._keyUpPrevented = !1;
              }),
              (e.prototype.searchRemoveChoice = function (e, t) {
                this.trigger("unselect", { data: t }),
                  this.$search.val(t.text),
                  this.handleSearch();
              }),
              (e.prototype.resizeSearch = function () {
                this.$search.css("width", "25px");
                var e = "";
                "" !== this.$search.attr("placeholder")
                  ? (e = this.$selection
                      .find(".select2-selection__rendered")
                      .width())
                  : (e = 0.75 * (this.$search.val().length + 1) + "em");
                this.$search.css("width", e);
              }),
              e
            );
          }
        ),
        e.define("select2/selection/eventRelay", ["jquery"], function (s) {
          function e() {}
          return (
            (e.prototype.bind = function (e, t, n) {
              var r = this,
                i = [
                  "open",
                  "opening",
                  "close",
                  "closing",
                  "select",
                  "selecting",
                  "unselect",
                  "unselecting",
                  "clear",
                  "clearing",
                ],
                o = [
                  "opening",
                  "closing",
                  "selecting",
                  "unselecting",
                  "clearing",
                ];
              e.call(this, t, n),
                t.on("*", function (e, t) {
                  if (-1 !== s.inArray(e, i)) {
                    t = t || {};
                    var n = s.Event("select2:" + e, { params: t });
                    r.$element.trigger(n),
                      -1 !== s.inArray(e, o) &&
                        (t.prevented = n.isDefaultPrevented());
                  }
                });
            }),
            e
          );
        }),
        e.define("select2/translation", ["jquery", "require"], function (t, n) {
          function r(e) {
            this.dict = e || {};
          }
          return (
            (r.prototype.all = function () {
              return this.dict;
            }),
            (r.prototype.get = function (e) {
              return this.dict[e];
            }),
            (r.prototype.extend = function (e) {
              this.dict = t.extend({}, e.all(), this.dict);
            }),
            (r._cache = {}),
            (r.loadPath = function (e) {
              if (!(e in r._cache)) {
                var t = n(e);
                r._cache[e] = t;
              }
              return new r(r._cache[e]);
            }),
            r
          );
        }),
        e.define("select2/diacritics", [], function () {
          return {
            "Ⓐ": "A",
            Ａ: "A",
            À: "A",
            Á: "A",
            Â: "A",
            Ầ: "A",
            Ấ: "A",
            Ẫ: "A",
            Ẩ: "A",
            Ã: "A",
            Ā: "A",
            Ă: "A",
            Ằ: "A",
            Ắ: "A",
            Ẵ: "A",
            Ẳ: "A",
            Ȧ: "A",
            Ǡ: "A",
            Ä: "A",
            Ǟ: "A",
            Ả: "A",
            Å: "A",
            Ǻ: "A",
            Ǎ: "A",
            Ȁ: "A",
            Ȃ: "A",
            Ạ: "A",
            Ậ: "A",
            Ặ: "A",
            Ḁ: "A",
            Ą: "A",
            Ⱥ: "A",
            Ɐ: "A",
            Ꜳ: "AA",
            Æ: "AE",
            Ǽ: "AE",
            Ǣ: "AE",
            Ꜵ: "AO",
            Ꜷ: "AU",
            Ꜹ: "AV",
            Ꜻ: "AV",
            Ꜽ: "AY",
            "Ⓑ": "B",
            Ｂ: "B",
            Ḃ: "B",
            Ḅ: "B",
            Ḇ: "B",
            Ƀ: "B",
            Ƃ: "B",
            Ɓ: "B",
            "Ⓒ": "C",
            Ｃ: "C",
            Ć: "C",
            Ĉ: "C",
            Ċ: "C",
            Č: "C",
            Ç: "C",
            Ḉ: "C",
            Ƈ: "C",
            Ȼ: "C",
            Ꜿ: "C",
            "Ⓓ": "D",
            Ｄ: "D",
            Ḋ: "D",
            Ď: "D",
            Ḍ: "D",
            Ḑ: "D",
            Ḓ: "D",
            Ḏ: "D",
            Đ: "D",
            Ƌ: "D",
            Ɗ: "D",
            Ɖ: "D",
            Ꝺ: "D",
            Ǳ: "DZ",
            Ǆ: "DZ",
            ǲ: "Dz",
            ǅ: "Dz",
            "Ⓔ": "E",
            Ｅ: "E",
            È: "E",
            É: "E",
            Ê: "E",
            Ề: "E",
            Ế: "E",
            Ễ: "E",
            Ể: "E",
            Ẽ: "E",
            Ē: "E",
            Ḕ: "E",
            Ḗ: "E",
            Ĕ: "E",
            Ė: "E",
            Ë: "E",
            Ẻ: "E",
            Ě: "E",
            Ȅ: "E",
            Ȇ: "E",
            Ẹ: "E",
            Ệ: "E",
            Ȩ: "E",
            Ḝ: "E",
            Ę: "E",
            Ḙ: "E",
            Ḛ: "E",
            Ɛ: "E",
            Ǝ: "E",
            "Ⓕ": "F",
            Ｆ: "F",
            Ḟ: "F",
            Ƒ: "F",
            Ꝼ: "F",
            "Ⓖ": "G",
            Ｇ: "G",
            Ǵ: "G",
            Ĝ: "G",
            Ḡ: "G",
            Ğ: "G",
            Ġ: "G",
            Ǧ: "G",
            Ģ: "G",
            Ǥ: "G",
            Ɠ: "G",
            Ꞡ: "G",
            Ᵹ: "G",
            Ꝿ: "G",
            "Ⓗ": "H",
            Ｈ: "H",
            Ĥ: "H",
            Ḣ: "H",
            Ḧ: "H",
            Ȟ: "H",
            Ḥ: "H",
            Ḩ: "H",
            Ḫ: "H",
            Ħ: "H",
            Ⱨ: "H",
            Ⱶ: "H",
            Ɥ: "H",
            "Ⓘ": "I",
            Ｉ: "I",
            Ì: "I",
            Í: "I",
            Î: "I",
            Ĩ: "I",
            Ī: "I",
            Ĭ: "I",
            İ: "I",
            Ï: "I",
            Ḯ: "I",
            Ỉ: "I",
            Ǐ: "I",
            Ȉ: "I",
            Ȋ: "I",
            Ị: "I",
            Į: "I",
            Ḭ: "I",
            Ɨ: "I",
            "Ⓙ": "J",
            Ｊ: "J",
            Ĵ: "J",
            Ɉ: "J",
            "Ⓚ": "K",
            Ｋ: "K",
            Ḱ: "K",
            Ǩ: "K",
            Ḳ: "K",
            Ķ: "K",
            Ḵ: "K",
            Ƙ: "K",
            Ⱪ: "K",
            Ꝁ: "K",
            Ꝃ: "K",
            Ꝅ: "K",
            Ꞣ: "K",
            "Ⓛ": "L",
            Ｌ: "L",
            Ŀ: "L",
            Ĺ: "L",
            Ľ: "L",
            Ḷ: "L",
            Ḹ: "L",
            Ļ: "L",
            Ḽ: "L",
            Ḻ: "L",
            Ł: "L",
            Ƚ: "L",
            Ɫ: "L",
            Ⱡ: "L",
            Ꝉ: "L",
            Ꝇ: "L",
            Ꞁ: "L",
            Ǉ: "LJ",
            ǈ: "Lj",
            "Ⓜ": "M",
            Ｍ: "M",
            Ḿ: "M",
            Ṁ: "M",
            Ṃ: "M",
            Ɱ: "M",
            Ɯ: "M",
            "Ⓝ": "N",
            Ｎ: "N",
            Ǹ: "N",
            Ń: "N",
            Ñ: "N",
            Ṅ: "N",
            Ň: "N",
            Ṇ: "N",
            Ņ: "N",
            Ṋ: "N",
            Ṉ: "N",
            Ƞ: "N",
            Ɲ: "N",
            Ꞑ: "N",
            Ꞥ: "N",
            Ǌ: "NJ",
            ǋ: "Nj",
            "Ⓞ": "O",
            Ｏ: "O",
            Ò: "O",
            Ó: "O",
            Ô: "O",
            Ồ: "O",
            Ố: "O",
            Ỗ: "O",
            Ổ: "O",
            Õ: "O",
            Ṍ: "O",
            Ȭ: "O",
            Ṏ: "O",
            Ō: "O",
            Ṑ: "O",
            Ṓ: "O",
            Ŏ: "O",
            Ȯ: "O",
            Ȱ: "O",
            Ö: "O",
            Ȫ: "O",
            Ỏ: "O",
            Ő: "O",
            Ǒ: "O",
            Ȍ: "O",
            Ȏ: "O",
            Ơ: "O",
            Ờ: "O",
            Ớ: "O",
            Ỡ: "O",
            Ở: "O",
            Ợ: "O",
            Ọ: "O",
            Ộ: "O",
            Ǫ: "O",
            Ǭ: "O",
            Ø: "O",
            Ǿ: "O",
            Ɔ: "O",
            Ɵ: "O",
            Ꝋ: "O",
            Ꝍ: "O",
            Œ: "OE",
            Ƣ: "OI",
            Ꝏ: "OO",
            Ȣ: "OU",
            "Ⓟ": "P",
            Ｐ: "P",
            Ṕ: "P",
            Ṗ: "P",
            Ƥ: "P",
            Ᵽ: "P",
            Ꝑ: "P",
            Ꝓ: "P",
            Ꝕ: "P",
            "Ⓠ": "Q",
            Ｑ: "Q",
            Ꝗ: "Q",
            Ꝙ: "Q",
            Ɋ: "Q",
            "Ⓡ": "R",
            Ｒ: "R",
            Ŕ: "R",
            Ṙ: "R",
            Ř: "R",
            Ȑ: "R",
            Ȓ: "R",
            Ṛ: "R",
            Ṝ: "R",
            Ŗ: "R",
            Ṟ: "R",
            Ɍ: "R",
            Ɽ: "R",
            Ꝛ: "R",
            Ꞧ: "R",
            Ꞃ: "R",
            "Ⓢ": "S",
            Ｓ: "S",
            ẞ: "S",
            Ś: "S",
            Ṥ: "S",
            Ŝ: "S",
            Ṡ: "S",
            Š: "S",
            Ṧ: "S",
            Ṣ: "S",
            Ṩ: "S",
            Ș: "S",
            Ş: "S",
            Ȿ: "S",
            Ꞩ: "S",
            Ꞅ: "S",
            "Ⓣ": "T",
            Ｔ: "T",
            Ṫ: "T",
            Ť: "T",
            Ṭ: "T",
            Ț: "T",
            Ţ: "T",
            Ṱ: "T",
            Ṯ: "T",
            Ŧ: "T",
            Ƭ: "T",
            Ʈ: "T",
            Ⱦ: "T",
            Ꞇ: "T",
            Ꜩ: "TZ",
            "Ⓤ": "U",
            Ｕ: "U",
            Ù: "U",
            Ú: "U",
            Û: "U",
            Ũ: "U",
            Ṹ: "U",
            Ū: "U",
            Ṻ: "U",
            Ŭ: "U",
            Ü: "U",
            Ǜ: "U",
            Ǘ: "U",
            Ǖ: "U",
            Ǚ: "U",
            Ủ: "U",
            Ů: "U",
            Ű: "U",
            Ǔ: "U",
            Ȕ: "U",
            Ȗ: "U",
            Ư: "U",
            Ừ: "U",
            Ứ: "U",
            Ữ: "U",
            Ử: "U",
            Ự: "U",
            Ụ: "U",
            Ṳ: "U",
            Ų: "U",
            Ṷ: "U",
            Ṵ: "U",
            Ʉ: "U",
            "Ⓥ": "V",
            Ｖ: "V",
            Ṽ: "V",
            Ṿ: "V",
            Ʋ: "V",
            Ꝟ: "V",
            Ʌ: "V",
            Ꝡ: "VY",
            "Ⓦ": "W",
            Ｗ: "W",
            Ẁ: "W",
            Ẃ: "W",
            Ŵ: "W",
            Ẇ: "W",
            Ẅ: "W",
            Ẉ: "W",
            Ⱳ: "W",
            "Ⓧ": "X",
            Ｘ: "X",
            Ẋ: "X",
            Ẍ: "X",
            "Ⓨ": "Y",
            Ｙ: "Y",
            Ỳ: "Y",
            Ý: "Y",
            Ŷ: "Y",
            Ỹ: "Y",
            Ȳ: "Y",
            Ẏ: "Y",
            Ÿ: "Y",
            Ỷ: "Y",
            Ỵ: "Y",
            Ƴ: "Y",
            Ɏ: "Y",
            Ỿ: "Y",
            "Ⓩ": "Z",
            Ｚ: "Z",
            Ź: "Z",
            Ẑ: "Z",
            Ż: "Z",
            Ž: "Z",
            Ẓ: "Z",
            Ẕ: "Z",
            Ƶ: "Z",
            Ȥ: "Z",
            Ɀ: "Z",
            Ⱬ: "Z",
            Ꝣ: "Z",
            "ⓐ": "a",
            ａ: "a",
            ẚ: "a",
            à: "a",
            á: "a",
            â: "a",
            ầ: "a",
            ấ: "a",
            ẫ: "a",
            ẩ: "a",
            ã: "a",
            ā: "a",
            ă: "a",
            ằ: "a",
            ắ: "a",
            ẵ: "a",
            ẳ: "a",
            ȧ: "a",
            ǡ: "a",
            ä: "a",
            ǟ: "a",
            ả: "a",
            å: "a",
            ǻ: "a",
            ǎ: "a",
            ȁ: "a",
            ȃ: "a",
            ạ: "a",
            ậ: "a",
            ặ: "a",
            ḁ: "a",
            ą: "a",
            ⱥ: "a",
            ɐ: "a",
            ꜳ: "aa",
            æ: "ae",
            ǽ: "ae",
            ǣ: "ae",
            ꜵ: "ao",
            ꜷ: "au",
            ꜹ: "av",
            ꜻ: "av",
            ꜽ: "ay",
            "ⓑ": "b",
            ｂ: "b",
            ḃ: "b",
            ḅ: "b",
            ḇ: "b",
            ƀ: "b",
            ƃ: "b",
            ɓ: "b",
            "ⓒ": "c",
            ｃ: "c",
            ć: "c",
            ĉ: "c",
            ċ: "c",
            č: "c",
            ç: "c",
            ḉ: "c",
            ƈ: "c",
            ȼ: "c",
            ꜿ: "c",
            ↄ: "c",
            "ⓓ": "d",
            ｄ: "d",
            ḋ: "d",
            ď: "d",
            ḍ: "d",
            ḑ: "d",
            ḓ: "d",
            ḏ: "d",
            đ: "d",
            ƌ: "d",
            ɖ: "d",
            ɗ: "d",
            ꝺ: "d",
            ǳ: "dz",
            ǆ: "dz",
            "ⓔ": "e",
            ｅ: "e",
            è: "e",
            é: "e",
            ê: "e",
            ề: "e",
            ế: "e",
            ễ: "e",
            ể: "e",
            ẽ: "e",
            ē: "e",
            ḕ: "e",
            ḗ: "e",
            ĕ: "e",
            ė: "e",
            ë: "e",
            ẻ: "e",
            ě: "e",
            ȅ: "e",
            ȇ: "e",
            ẹ: "e",
            ệ: "e",
            ȩ: "e",
            ḝ: "e",
            ę: "e",
            ḙ: "e",
            ḛ: "e",
            ɇ: "e",
            ɛ: "e",
            ǝ: "e",
            "ⓕ": "f",
            ｆ: "f",
            ḟ: "f",
            ƒ: "f",
            ꝼ: "f",
            "ⓖ": "g",
            ｇ: "g",
            ǵ: "g",
            ĝ: "g",
            ḡ: "g",
            ğ: "g",
            ġ: "g",
            ǧ: "g",
            ģ: "g",
            ǥ: "g",
            ɠ: "g",
            ꞡ: "g",
            ᵹ: "g",
            ꝿ: "g",
            "ⓗ": "h",
            ｈ: "h",
            ĥ: "h",
            ḣ: "h",
            ḧ: "h",
            ȟ: "h",
            ḥ: "h",
            ḩ: "h",
            ḫ: "h",
            ẖ: "h",
            ħ: "h",
            ⱨ: "h",
            ⱶ: "h",
            ɥ: "h",
            ƕ: "hv",
            "ⓘ": "i",
            ｉ: "i",
            ì: "i",
            í: "i",
            î: "i",
            ĩ: "i",
            ī: "i",
            ĭ: "i",
            ï: "i",
            ḯ: "i",
            ỉ: "i",
            ǐ: "i",
            ȉ: "i",
            ȋ: "i",
            ị: "i",
            į: "i",
            ḭ: "i",
            ɨ: "i",
            ı: "i",
            "ⓙ": "j",
            ｊ: "j",
            ĵ: "j",
            ǰ: "j",
            ɉ: "j",
            "ⓚ": "k",
            ｋ: "k",
            ḱ: "k",
            ǩ: "k",
            ḳ: "k",
            ķ: "k",
            ḵ: "k",
            ƙ: "k",
            ⱪ: "k",
            ꝁ: "k",
            ꝃ: "k",
            ꝅ: "k",
            ꞣ: "k",
            "ⓛ": "l",
            ｌ: "l",
            ŀ: "l",
            ĺ: "l",
            ľ: "l",
            ḷ: "l",
            ḹ: "l",
            ļ: "l",
            ḽ: "l",
            ḻ: "l",
            ſ: "l",
            ł: "l",
            ƚ: "l",
            ɫ: "l",
            ⱡ: "l",
            ꝉ: "l",
            ꞁ: "l",
            ꝇ: "l",
            ǉ: "lj",
            "ⓜ": "m",
            ｍ: "m",
            ḿ: "m",
            ṁ: "m",
            ṃ: "m",
            ɱ: "m",
            ɯ: "m",
            "ⓝ": "n",
            ｎ: "n",
            ǹ: "n",
            ń: "n",
            ñ: "n",
            ṅ: "n",
            ň: "n",
            ṇ: "n",
            ņ: "n",
            ṋ: "n",
            ṉ: "n",
            ƞ: "n",
            ɲ: "n",
            ŉ: "n",
            ꞑ: "n",
            ꞥ: "n",
            ǌ: "nj",
            "ⓞ": "o",
            ｏ: "o",
            ò: "o",
            ó: "o",
            ô: "o",
            ồ: "o",
            ố: "o",
            ỗ: "o",
            ổ: "o",
            õ: "o",
            ṍ: "o",
            ȭ: "o",
            ṏ: "o",
            ō: "o",
            ṑ: "o",
            ṓ: "o",
            ŏ: "o",
            ȯ: "o",
            ȱ: "o",
            ö: "o",
            ȫ: "o",
            ỏ: "o",
            ő: "o",
            ǒ: "o",
            ȍ: "o",
            ȏ: "o",
            ơ: "o",
            ờ: "o",
            ớ: "o",
            ỡ: "o",
            ở: "o",
            ợ: "o",
            ọ: "o",
            ộ: "o",
            ǫ: "o",
            ǭ: "o",
            ø: "o",
            ǿ: "o",
            ɔ: "o",
            ꝋ: "o",
            ꝍ: "o",
            ɵ: "o",
            œ: "oe",
            ƣ: "oi",
            ȣ: "ou",
            ꝏ: "oo",
            "ⓟ": "p",
            ｐ: "p",
            ṕ: "p",
            ṗ: "p",
            ƥ: "p",
            ᵽ: "p",
            ꝑ: "p",
            ꝓ: "p",
            ꝕ: "p",
            "ⓠ": "q",
            ｑ: "q",
            ɋ: "q",
            ꝗ: "q",
            ꝙ: "q",
            "ⓡ": "r",
            ｒ: "r",
            ŕ: "r",
            ṙ: "r",
            ř: "r",
            ȑ: "r",
            ȓ: "r",
            ṛ: "r",
            ṝ: "r",
            ŗ: "r",
            ṟ: "r",
            ɍ: "r",
            ɽ: "r",
            ꝛ: "r",
            ꞧ: "r",
            ꞃ: "r",
            "ⓢ": "s",
            ｓ: "s",
            ß: "s",
            ś: "s",
            ṥ: "s",
            ŝ: "s",
            ṡ: "s",
            š: "s",
            ṧ: "s",
            ṣ: "s",
            ṩ: "s",
            ș: "s",
            ş: "s",
            ȿ: "s",
            ꞩ: "s",
            ꞅ: "s",
            ẛ: "s",
            "ⓣ": "t",
            ｔ: "t",
            ṫ: "t",
            ẗ: "t",
            ť: "t",
            ṭ: "t",
            ț: "t",
            ţ: "t",
            ṱ: "t",
            ṯ: "t",
            ŧ: "t",
            ƭ: "t",
            ʈ: "t",
            ⱦ: "t",
            ꞇ: "t",
            ꜩ: "tz",
            "ⓤ": "u",
            ｕ: "u",
            ù: "u",
            ú: "u",
            û: "u",
            ũ: "u",
            ṹ: "u",
            ū: "u",
            ṻ: "u",
            ŭ: "u",
            ü: "u",
            ǜ: "u",
            ǘ: "u",
            ǖ: "u",
            ǚ: "u",
            ủ: "u",
            ů: "u",
            ű: "u",
            ǔ: "u",
            ȕ: "u",
            ȗ: "u",
            ư: "u",
            ừ: "u",
            ứ: "u",
            ữ: "u",
            ử: "u",
            ự: "u",
            ụ: "u",
            ṳ: "u",
            ų: "u",
            ṷ: "u",
            ṵ: "u",
            ʉ: "u",
            "ⓥ": "v",
            ｖ: "v",
            ṽ: "v",
            ṿ: "v",
            ʋ: "v",
            ꝟ: "v",
            ʌ: "v",
            ꝡ: "vy",
            "ⓦ": "w",
            ｗ: "w",
            ẁ: "w",
            ẃ: "w",
            ŵ: "w",
            ẇ: "w",
            ẅ: "w",
            ẘ: "w",
            ẉ: "w",
            ⱳ: "w",
            "ⓧ": "x",
            ｘ: "x",
            ẋ: "x",
            ẍ: "x",
            "ⓨ": "y",
            ｙ: "y",
            ỳ: "y",
            ý: "y",
            ŷ: "y",
            ỹ: "y",
            ȳ: "y",
            ẏ: "y",
            ÿ: "y",
            ỷ: "y",
            ẙ: "y",
            ỵ: "y",
            ƴ: "y",
            ɏ: "y",
            ỿ: "y",
            "ⓩ": "z",
            ｚ: "z",
            ź: "z",
            ẑ: "z",
            ż: "z",
            ž: "z",
            ẓ: "z",
            ẕ: "z",
            ƶ: "z",
            ȥ: "z",
            ɀ: "z",
            ⱬ: "z",
            ꝣ: "z",
            Ά: "Α",
            Έ: "Ε",
            Ή: "Η",
            Ί: "Ι",
            Ϊ: "Ι",
            Ό: "Ο",
            Ύ: "Υ",
            Ϋ: "Υ",
            Ώ: "Ω",
            ά: "α",
            έ: "ε",
            ή: "η",
            ί: "ι",
            ϊ: "ι",
            ΐ: "ι",
            ό: "ο",
            ύ: "υ",
            ϋ: "υ",
            ΰ: "υ",
            ώ: "ω",
            ς: "σ",
            "’": "'",
          };
        }),
        e.define("select2/data/base", ["../utils"], function (r) {
          function n(e, t) {
            n.__super__.constructor.call(this);
          }
          return (
            r.Extend(n, r.Observable),
            (n.prototype.current = function (e) {
              throw new Error(
                "The `current` method must be defined in child classes."
              );
            }),
            (n.prototype.query = function (e, t) {
              throw new Error(
                "The `query` method must be defined in child classes."
              );
            }),
            (n.prototype.bind = function (e, t) {}),
            (n.prototype.destroy = function () {}),
            (n.prototype.generateResultId = function (e, t) {
              var n = e.id + "-result-";
              return (
                (n += r.generateChars(4)),
                null != t.id
                  ? (n += "-" + t.id.toString())
                  : (n += "-" + r.generateChars(4)),
                n
              );
            }),
            n
          );
        }),
        e.define(
          "select2/data/select",
          ["./base", "../utils", "jquery"],
          function (e, a, l) {
            function n(e, t) {
              (this.$element = e),
                (this.options = t),
                n.__super__.constructor.call(this);
            }
            return (
              a.Extend(n, e),
              (n.prototype.current = function (e) {
                var n = [],
                  r = this;
                this.$element.find(":selected").each(function () {
                  var e = l(this),
                    t = r.item(e);
                  n.push(t);
                }),
                  e(n);
              }),
              (n.prototype.select = function (i) {
                var o = this;
                if (((i.selected = !0), l(i.element).is("option")))
                  return (
                    (i.element.selected = !0),
                    void this.$element.trigger("input").trigger("change")
                  );
                if (this.$element.prop("multiple"))
                  this.current(function (e) {
                    var t = [];
                    (i = [i]).push.apply(i, e);
                    for (var n = 0; n < i.length; n++) {
                      var r = i[n].id;
                      -1 === l.inArray(r, t) && t.push(r);
                    }
                    o.$element.val(t),
                      o.$element.trigger("input").trigger("change");
                  });
                else {
                  var e = i.id;
                  this.$element.val(e),
                    this.$element.trigger("input").trigger("change");
                }
              }),
              (n.prototype.unselect = function (i) {
                var o = this;
                if (this.$element.prop("multiple")) {
                  if (((i.selected = !1), l(i.element).is("option")))
                    return (
                      (i.element.selected = !1),
                      void this.$element.trigger("input").trigger("change")
                    );
                  this.current(function (e) {
                    for (var t = [], n = 0; n < e.length; n++) {
                      var r = e[n].id;
                      r !== i.id && -1 === l.inArray(r, t) && t.push(r);
                    }
                    o.$element.val(t),
                      o.$element.trigger("input").trigger("change");
                  });
                }
              }),
              (n.prototype.bind = function (e, t) {
                var n = this;
                (this.container = e).on("select", function (e) {
                  n.select(e.data);
                }),
                  e.on("unselect", function (e) {
                    n.unselect(e.data);
                  });
              }),
              (n.prototype.destroy = function () {
                this.$element.find("*").each(function () {
                  a.RemoveData(this);
                });
              }),
              (n.prototype.query = function (r, e) {
                var i = [],
                  o = this;
                this.$element.children().each(function () {
                  var e = l(this);
                  if (e.is("option") || e.is("optgroup")) {
                    var t = o.item(e),
                      n = o.matches(r, t);
                    null !== n && i.push(n);
                  }
                }),
                  e({ results: i });
              }),
              (n.prototype.addOptions = function (e) {
                a.appendMany(this.$element, e);
              }),
              (n.prototype.option = function (e) {
                var t;
                e.children
                  ? ((t = document.createElement("optgroup")).label = e.text)
                  : void 0 !==
                    (t = document.createElement("option")).textContent
                  ? (t.textContent = e.text)
                  : (t.innerText = e.text),
                  void 0 !== e.id && (t.value = e.id),
                  e.disabled && (t.disabled = !0),
                  e.selected && (t.selected = !0),
                  e.title && (t.title = e.title);
                var n = l(t),
                  r = this._normalizeItem(e);
                return (r.element = t), a.StoreData(t, "data", r), n;
              }),
              (n.prototype.item = function (e) {
                var t = {};
                if (null != (t = a.GetData(e[0], "data"))) return t;
                if (e.is("option"))
                  t = {
                    id: e.val(),
                    text: e.text(),
                    disabled: e.prop("disabled"),
                    selected: e.prop("selected"),
                    title: e.prop("title"),
                  };
                else if (e.is("optgroup")) {
                  t = {
                    text: e.prop("label"),
                    children: [],
                    title: e.prop("title"),
                  };
                  for (
                    var n = e.children("option"), r = [], i = 0;
                    i < n.length;
                    i++
                  ) {
                    var o = l(n[i]),
                      s = this.item(o);
                    r.push(s);
                  }
                  t.children = r;
                }
                return (
                  ((t = this._normalizeItem(t)).element = e[0]),
                  a.StoreData(e[0], "data", t),
                  t
                );
              }),
              (n.prototype._normalizeItem = function (e) {
                e !== Object(e) && (e = { id: e, text: e });
                return (
                  null != (e = l.extend({}, { text: "" }, e)).id &&
                    (e.id = e.id.toString()),
                  null != e.text && (e.text = e.text.toString()),
                  null == e._resultId &&
                    e.id &&
                    null != this.container &&
                    (e._resultId = this.generateResultId(this.container, e)),
                  l.extend({}, { selected: !1, disabled: !1 }, e)
                );
              }),
              (n.prototype.matches = function (e, t) {
                return this.options.get("matcher")(e, t);
              }),
              n
            );
          }
        ),
        e.define(
          "select2/data/array",
          ["./select", "../utils", "jquery"],
          function (e, f, g) {
            function r(e, t) {
              (this._dataToConvert = t.get("data") || []),
                r.__super__.constructor.call(this, e, t);
            }
            return (
              f.Extend(r, e),
              (r.prototype.bind = function (e, t) {
                r.__super__.bind.call(this, e, t),
                  this.addOptions(this.convertToOptions(this._dataToConvert));
              }),
              (r.prototype.select = function (n) {
                var e = this.$element.find("option").filter(function (e, t) {
                  return t.value == n.id.toString();
                });
                0 === e.length && ((e = this.option(n)), this.addOptions(e)),
                  r.__super__.select.call(this, n);
              }),
              (r.prototype.convertToOptions = function (e) {
                var t = this,
                  n = this.$element.find("option"),
                  r = n
                    .map(function () {
                      return t.item(g(this)).id;
                    })
                    .get(),
                  i = [];
                function o(e) {
                  return function () {
                    return g(this).val() == e.id;
                  };
                }
                for (var s = 0; s < e.length; s++) {
                  var a = this._normalizeItem(e[s]);
                  if (0 <= g.inArray(a.id, r)) {
                    var l = n.filter(o(a)),
                      c = this.item(l),
                      u = g.extend(!0, {}, a, c),
                      d = this.option(u);
                    l.replaceWith(d);
                  } else {
                    var p = this.option(a);
                    if (a.children) {
                      var h = this.convertToOptions(a.children);
                      f.appendMany(p, h);
                    }
                    i.push(p);
                  }
                }
                return i;
              }),
              r
            );
          }
        ),
        e.define(
          "select2/data/ajax",
          ["./array", "../utils", "jquery"],
          function (e, t, o) {
            function n(e, t) {
              (this.ajaxOptions = this._applyDefaults(t.get("ajax"))),
                null != this.ajaxOptions.processResults &&
                  (this.processResults = this.ajaxOptions.processResults),
                n.__super__.constructor.call(this, e, t);
            }
            return (
              t.Extend(n, e),
              (n.prototype._applyDefaults = function (e) {
                var t = {
                  data: function (e) {
                    return o.extend({}, e, { q: e.term });
                  },
                  transport: function (e, t, n) {
                    var r = o.ajax(e);
                    return r.then(t), r.fail(n), r;
                  },
                };
                return o.extend({}, t, e, !0);
              }),
              (n.prototype.processResults = function (e) {
                return e;
              }),
              (n.prototype.query = function (n, r) {
                var i = this;
                null != this._request &&
                  (o.isFunction(this._request.abort) && this._request.abort(),
                  (this._request = null));
                var t = o.extend({ type: "GET" }, this.ajaxOptions);
                function e() {
                  var e = t.transport(
                    t,
                    function (e) {
                      var t = i.processResults(e, n);
                      i.options.get("debug") &&
                        window.console &&
                        console.error &&
                        ((t && t.results && o.isArray(t.results)) ||
                          console.error(
                            "Select2: The AJAX results did not return an array in the `results` key of the response."
                          )),
                        r(t);
                    },
                    function () {
                      ("status" in e && (0 === e.status || "0" === e.status)) ||
                        i.trigger("results:message", {
                          message: "errorLoading",
                        });
                    }
                  );
                  i._request = e;
                }
                "function" == typeof t.url &&
                  (t.url = t.url.call(this.$element, n)),
                  "function" == typeof t.data &&
                    (t.data = t.data.call(this.$element, n)),
                  this.ajaxOptions.delay && null != n.term
                    ? (this._queryTimeout &&
                        window.clearTimeout(this._queryTimeout),
                      (this._queryTimeout = window.setTimeout(
                        e,
                        this.ajaxOptions.delay
                      )))
                    : e();
              }),
              n
            );
          }
        ),
        e.define("select2/data/tags", ["jquery"], function (u) {
          function e(e, t, n) {
            var r = n.get("tags"),
              i = n.get("createTag");
            void 0 !== i && (this.createTag = i);
            var o = n.get("insertTag");
            if (
              (void 0 !== o && (this.insertTag = o),
              e.call(this, t, n),
              u.isArray(r))
            )
              for (var s = 0; s < r.length; s++) {
                var a = r[s],
                  l = this._normalizeItem(a),
                  c = this.option(l);
                this.$element.append(c);
              }
          }
          return (
            (e.prototype.query = function (e, c, u) {
              var d = this;
              this._removeOldTags(),
                null != c.term && null == c.page
                  ? e.call(this, c, function e(t, n) {
                      for (var r = t.results, i = 0; i < r.length; i++) {
                        var o = r[i],
                          s =
                            null != o.children &&
                            !e({ results: o.children }, !0);
                        if (
                          (o.text || "").toUpperCase() ===
                            (c.term || "").toUpperCase() ||
                          s
                        )
                          return !n && ((t.data = r), void u(t));
                      }
                      if (n) return !0;
                      var a = d.createTag(c);
                      if (null != a) {
                        var l = d.option(a);
                        l.attr("data-select2-tag", !0),
                          d.addOptions([l]),
                          d.insertTag(r, a);
                      }
                      (t.results = r), u(t);
                    })
                  : e.call(this, c, u);
            }),
            (e.prototype.createTag = function (e, t) {
              var n = u.trim(t.term);
              return "" === n ? null : { id: n, text: n };
            }),
            (e.prototype.insertTag = function (e, t, n) {
              t.unshift(n);
            }),
            (e.prototype._removeOldTags = function (e) {
              this.$element.find("option[data-select2-tag]").each(function () {
                this.selected || u(this).remove();
              });
            }),
            e
          );
        }),
        e.define("select2/data/tokenizer", ["jquery"], function (d) {
          function e(e, t, n) {
            var r = n.get("tokenizer");
            void 0 !== r && (this.tokenizer = r), e.call(this, t, n);
          }
          return (
            (e.prototype.bind = function (e, t, n) {
              e.call(this, t, n),
                (this.$search =
                  t.dropdown.$search ||
                  t.selection.$search ||
                  n.find(".select2-search__field"));
            }),
            (e.prototype.query = function (e, t, n) {
              var i = this;
              t.term = t.term || "";
              var r = this.tokenizer(t, this.options, function (e) {
                var t,
                  n = i._normalizeItem(e);
                if (
                  !i.$element.find("option").filter(function () {
                    return d(this).val() === n.id;
                  }).length
                ) {
                  var r = i.option(n);
                  r.attr("data-select2-tag", !0),
                    i._removeOldTags(),
                    i.addOptions([r]);
                }
                (t = n), i.trigger("select", { data: t });
              });
              r.term !== t.term &&
                (this.$search.length &&
                  (this.$search.val(r.term), this.$search.trigger("focus")),
                (t.term = r.term)),
                e.call(this, t, n);
            }),
            (e.prototype.tokenizer = function (e, t, n, r) {
              for (
                var i = n.get("tokenSeparators") || [],
                  o = t.term,
                  s = 0,
                  a =
                    this.createTag ||
                    function (e) {
                      return { id: e.term, text: e.term };
                    };
                s < o.length;

              ) {
                var l = o[s];
                if (-1 !== d.inArray(l, i)) {
                  var c = o.substr(0, s),
                    u = a(d.extend({}, t, { term: c }));
                  null != u
                    ? (r(u), (o = o.substr(s + 1) || ""), (s = 0))
                    : s++;
                } else s++;
              }
              return { term: o };
            }),
            e
          );
        }),
        e.define("select2/data/minimumInputLength", [], function () {
          function e(e, t, n) {
            (this.minimumInputLength = n.get("minimumInputLength")),
              e.call(this, t, n);
          }
          return (
            (e.prototype.query = function (e, t, n) {
              (t.term = t.term || ""),
                t.term.length < this.minimumInputLength
                  ? this.trigger("results:message", {
                      message: "inputTooShort",
                      args: {
                        minimum: this.minimumInputLength,
                        input: t.term,
                        params: t,
                      },
                    })
                  : e.call(this, t, n);
            }),
            e
          );
        }),
        e.define("select2/data/maximumInputLength", [], function () {
          function e(e, t, n) {
            (this.maximumInputLength = n.get("maximumInputLength")),
              e.call(this, t, n);
          }
          return (
            (e.prototype.query = function (e, t, n) {
              (t.term = t.term || ""),
                0 < this.maximumInputLength &&
                t.term.length > this.maximumInputLength
                  ? this.trigger("results:message", {
                      message: "inputTooLong",
                      args: {
                        maximum: this.maximumInputLength,
                        input: t.term,
                        params: t,
                      },
                    })
                  : e.call(this, t, n);
            }),
            e
          );
        }),
        e.define("select2/data/maximumSelectionLength", [], function () {
          function e(e, t, n) {
            (this.maximumSelectionLength = n.get("maximumSelectionLength")),
              e.call(this, t, n);
          }
          return (
            (e.prototype.bind = function (e, t, n) {
              var r = this;
              e.call(this, t, n),
                t.on("select", function () {
                  r._checkIfMaximumSelected();
                });
            }),
            (e.prototype.query = function (e, t, n) {
              var r = this;
              this._checkIfMaximumSelected(function () {
                e.call(r, t, n);
              });
            }),
            (e.prototype._checkIfMaximumSelected = function (e, n) {
              var r = this;
              this.current(function (e) {
                var t = null != e ? e.length : 0;
                0 < r.maximumSelectionLength && t >= r.maximumSelectionLength
                  ? r.trigger("results:message", {
                      message: "maximumSelected",
                      args: { maximum: r.maximumSelectionLength },
                    })
                  : n && n();
              });
            }),
            e
          );
        }),
        e.define("select2/dropdown", ["jquery", "./utils"], function (t, e) {
          function n(e, t) {
            (this.$element = e),
              (this.options = t),
              n.__super__.constructor.call(this);
          }
          return (
            e.Extend(n, e.Observable),
            (n.prototype.render = function () {
              var e = t(
                '<span class="select2-dropdown"><span class="select2-results"></span></span>'
              );
              return (
                e.attr("dir", this.options.get("dir")), (this.$dropdown = e)
              );
            }),
            (n.prototype.bind = function () {}),
            (n.prototype.position = function (e, t) {}),
            (n.prototype.destroy = function () {
              this.$dropdown.remove();
            }),
            n
          );
        }),
        e.define(
          "select2/dropdown/search",
          ["jquery", "../utils"],
          function (o, e) {
            function t() {}
            return (
              (t.prototype.render = function (e) {
                var t = e.call(this),
                  n = o(
                    '<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>'
                  );
                return (
                  (this.$searchContainer = n),
                  (this.$search = n.find("input")),
                  t.prepend(n),
                  t
                );
              }),
              (t.prototype.bind = function (e, t, n) {
                var r = this,
                  i = t.id + "-results";
                e.call(this, t, n),
                  this.$search.on("keydown", function (e) {
                    r.trigger("keypress", e),
                      (r._keyUpPrevented = e.isDefaultPrevented());
                  }),
                  this.$search.on("input", function (e) {
                    o(this).off("keyup");
                  }),
                  this.$search.on("keyup input", function (e) {
                    r.handleSearch(e);
                  }),
                  t.on("open", function () {
                    r.$search.attr("tabindex", 0),
                      r.$search.attr("aria-controls", i),
                      r.$search.trigger("focus"),
                      window.setTimeout(function () {
                        r.$search.trigger("focus");
                      }, 0);
                  }),
                  t.on("close", function () {
                    r.$search.attr("tabindex", -1),
                      r.$search.removeAttr("aria-controls"),
                      r.$search.removeAttr("aria-activedescendant"),
                      r.$search.val(""),
                      r.$search.trigger("blur");
                  }),
                  t.on("focus", function () {
                    t.isOpen() || r.$search.trigger("focus");
                  }),
                  t.on("results:all", function (e) {
                    (null != e.query.term && "" !== e.query.term) ||
                      (r.showSearch(e)
                        ? r.$searchContainer.removeClass("select2-search--hide")
                        : r.$searchContainer.addClass("select2-search--hide"));
                  }),
                  t.on("results:focus", function (e) {
                    e.data._resultId
                      ? r.$search.attr(
                          "aria-activedescendant",
                          e.data._resultId
                        )
                      : r.$search.removeAttr("aria-activedescendant");
                  });
              }),
              (t.prototype.handleSearch = function (e) {
                if (!this._keyUpPrevented) {
                  var t = this.$search.val();
                  this.trigger("query", { term: t });
                }
                this._keyUpPrevented = !1;
              }),
              (t.prototype.showSearch = function (e, t) {
                return !0;
              }),
              t
            );
          }
        ),
        e.define("select2/dropdown/hidePlaceholder", [], function () {
          function e(e, t, n, r) {
            (this.placeholder = this.normalizePlaceholder(
              n.get("placeholder")
            )),
              e.call(this, t, n, r);
          }
          return (
            (e.prototype.append = function (e, t) {
              (t.results = this.removePlaceholder(t.results)), e.call(this, t);
            }),
            (e.prototype.normalizePlaceholder = function (e, t) {
              return "string" == typeof t && (t = { id: "", text: t }), t;
            }),
            (e.prototype.removePlaceholder = function (e, t) {
              for (var n = t.slice(0), r = t.length - 1; 0 <= r; r--) {
                var i = t[r];
                this.placeholder.id === i.id && n.splice(r, 1);
              }
              return n;
            }),
            e
          );
        }),
        e.define("select2/dropdown/infiniteScroll", ["jquery"], function (n) {
          function e(e, t, n, r) {
            (this.lastParams = {}),
              e.call(this, t, n, r),
              (this.$loadingMore = this.createLoadingMore()),
              (this.loading = !1);
          }
          return (
            (e.prototype.append = function (e, t) {
              this.$loadingMore.remove(),
                (this.loading = !1),
                e.call(this, t),
                this.showLoadingMore(t) &&
                  (this.$results.append(this.$loadingMore),
                  this.loadMoreIfNeeded());
            }),
            (e.prototype.bind = function (e, t, n) {
              var r = this;
              e.call(this, t, n),
                t.on("query", function (e) {
                  (r.lastParams = e), (r.loading = !0);
                }),
                t.on("query:append", function (e) {
                  (r.lastParams = e), (r.loading = !0);
                }),
                this.$results.on("scroll", this.loadMoreIfNeeded.bind(this));
            }),
            (e.prototype.loadMoreIfNeeded = function () {
              var e = n.contains(
                document.documentElement,
                this.$loadingMore[0]
              );
              if (!this.loading && e) {
                var t =
                  this.$results.offset().top + this.$results.outerHeight(!1);
                this.$loadingMore.offset().top +
                  this.$loadingMore.outerHeight(!1) <=
                  t + 50 && this.loadMore();
              }
            }),
            (e.prototype.loadMore = function () {
              this.loading = !0;
              var e = n.extend({}, { page: 1 }, this.lastParams);
              e.page++, this.trigger("query:append", e);
            }),
            (e.prototype.showLoadingMore = function (e, t) {
              return t.pagination && t.pagination.more;
            }),
            (e.prototype.createLoadingMore = function () {
              var e = n(
                  '<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'
                ),
                t = this.options.get("translations").get("loadingMore");
              return e.html(t(this.lastParams)), e;
            }),
            e
          );
        }),
        e.define(
          "select2/dropdown/attachBody",
          ["jquery", "../utils"],
          function (f, a) {
            function e(e, t, n) {
              (this.$dropdownParent = f(
                n.get("dropdownParent") || document.body
              )),
                e.call(this, t, n);
            }
            return (
              (e.prototype.bind = function (e, t, n) {
                var r = this;
                e.call(this, t, n),
                  t.on("open", function () {
                    r._showDropdown(),
                      r._attachPositioningHandler(t),
                      r._bindContainerResultHandlers(t);
                  }),
                  t.on("close", function () {
                    r._hideDropdown(), r._detachPositioningHandler(t);
                  }),
                  this.$dropdownContainer.on("mousedown", function (e) {
                    e.stopPropagation();
                  });
              }),
              (e.prototype.destroy = function (e) {
                e.call(this), this.$dropdownContainer.remove();
              }),
              (e.prototype.position = function (e, t, n) {
                t.attr("class", n.attr("class")),
                  t.removeClass("select2"),
                  t.addClass("select2-container--open"),
                  t.css({ position: "absolute", top: -999999 }),
                  (this.$container = n);
              }),
              (e.prototype.render = function (e) {
                var t = f("<span></span>"),
                  n = e.call(this);
                return t.append(n), (this.$dropdownContainer = t);
              }),
              (e.prototype._hideDropdown = function (e) {
                this.$dropdownContainer.detach();
              }),
              (e.prototype._bindContainerResultHandlers = function (e, t) {
                if (!this._containerResultsHandlersBound) {
                  var n = this;
                  t.on("results:all", function () {
                    n._positionDropdown(), n._resizeDropdown();
                  }),
                    t.on("results:append", function () {
                      n._positionDropdown(), n._resizeDropdown();
                    }),
                    t.on("results:message", function () {
                      n._positionDropdown(), n._resizeDropdown();
                    }),
                    t.on("select", function () {
                      n._positionDropdown(), n._resizeDropdown();
                    }),
                    t.on("unselect", function () {
                      n._positionDropdown(), n._resizeDropdown();
                    }),
                    (this._containerResultsHandlersBound = !0);
                }
              }),
              (e.prototype._attachPositioningHandler = function (e, t) {
                var n = this,
                  r = "scroll.select2." + t.id,
                  i = "resize.select2." + t.id,
                  o = "orientationchange.select2." + t.id,
                  s = this.$container.parents().filter(a.hasScroll);
                s.each(function () {
                  a.StoreData(this, "select2-scroll-position", {
                    x: f(this).scrollLeft(),
                    y: f(this).scrollTop(),
                  });
                }),
                  s.on(r, function (e) {
                    var t = a.GetData(this, "select2-scroll-position");
                    f(this).scrollTop(t.y);
                  }),
                  f(window).on(r + " " + i + " " + o, function (e) {
                    n._positionDropdown(), n._resizeDropdown();
                  });
              }),
              (e.prototype._detachPositioningHandler = function (e, t) {
                var n = "scroll.select2." + t.id,
                  r = "resize.select2." + t.id,
                  i = "orientationchange.select2." + t.id;
                this.$container.parents().filter(a.hasScroll).off(n),
                  f(window).off(n + " " + r + " " + i);
              }),
              (e.prototype._positionDropdown = function () {
                var e = f(window),
                  t = this.$dropdown.hasClass("select2-dropdown--above"),
                  n = this.$dropdown.hasClass("select2-dropdown--below"),
                  r = null,
                  i = this.$container.offset();
                i.bottom = i.top + this.$container.outerHeight(!1);
                var o = { height: this.$container.outerHeight(!1) };
                (o.top = i.top), (o.bottom = i.top + o.height);
                var s = this.$dropdown.outerHeight(!1),
                  a = e.scrollTop(),
                  l = e.scrollTop() + e.height(),
                  c = a < i.top - s,
                  u = l > i.bottom + s,
                  d = { left: i.left, top: o.bottom },
                  p = this.$dropdownParent;
                "static" === p.css("position") && (p = p.offsetParent());
                var h = { top: 0, left: 0 };
                (f.contains(document.body, p[0]) || p[0].isConnected) &&
                  (h = p.offset()),
                  (d.top -= h.top),
                  (d.left -= h.left),
                  t || n || (r = "below"),
                  u || !c || t ? !c && u && t && (r = "below") : (r = "above"),
                  ("above" == r || (t && "below" !== r)) &&
                    (d.top = o.top - h.top - s),
                  null != r &&
                    (this.$dropdown
                      .removeClass(
                        "select2-dropdown--below select2-dropdown--above"
                      )
                      .addClass("select2-dropdown--" + r),
                    this.$container
                      .removeClass(
                        "select2-container--below select2-container--above"
                      )
                      .addClass("select2-container--" + r)),
                  this.$dropdownContainer.css(d);
              }),
              (e.prototype._resizeDropdown = function () {
                var e = { width: this.$container.outerWidth(!1) + "px" };
                this.options.get("dropdownAutoWidth") &&
                  ((e.minWidth = e.width),
                  (e.position = "relative"),
                  (e.width = "auto")),
                  this.$dropdown.css(e);
              }),
              (e.prototype._showDropdown = function (e) {
                this.$dropdownContainer.appendTo(this.$dropdownParent),
                  this._positionDropdown(),
                  this._resizeDropdown();
              }),
              e
            );
          }
        ),
        e.define("select2/dropdown/minimumResultsForSearch", [], function () {
          function e(e, t, n, r) {
            (this.minimumResultsForSearch = n.get("minimumResultsForSearch")),
              this.minimumResultsForSearch < 0 &&
                (this.minimumResultsForSearch = 1 / 0),
              e.call(this, t, n, r);
          }
          return (
            (e.prototype.showSearch = function (e, t) {
              return (
                !(
                  (function e(t) {
                    for (var n = 0, r = 0; r < t.length; r++) {
                      var i = t[r];
                      i.children ? (n += e(i.children)) : n++;
                    }
                    return n;
                  })(t.data.results) < this.minimumResultsForSearch
                ) && e.call(this, t)
              );
            }),
            e
          );
        }),
        e.define("select2/dropdown/selectOnClose", ["../utils"], function (o) {
          function e() {}
          return (
            (e.prototype.bind = function (e, t, n) {
              var r = this;
              e.call(this, t, n),
                t.on("close", function (e) {
                  r._handleSelectOnClose(e);
                });
            }),
            (e.prototype._handleSelectOnClose = function (e, t) {
              if (t && null != t.originalSelect2Event) {
                var n = t.originalSelect2Event;
                if ("select" === n._type || "unselect" === n._type) return;
              }
              var r = this.getHighlightedResults();
              if (!(r.length < 1)) {
                var i = o.GetData(r[0], "data");
                (null != i.element && i.element.selected) ||
                  (null == i.element && i.selected) ||
                  this.trigger("select", { data: i });
              }
            }),
            e
          );
        }),
        e.define("select2/dropdown/closeOnSelect", [], function () {
          function e() {}
          return (
            (e.prototype.bind = function (e, t, n) {
              var r = this;
              e.call(this, t, n),
                t.on("select", function (e) {
                  r._selectTriggered(e);
                }),
                t.on("unselect", function (e) {
                  r._selectTriggered(e);
                });
            }),
            (e.prototype._selectTriggered = function (e, t) {
              var n = t.originalEvent;
              (n && (n.ctrlKey || n.metaKey)) ||
                this.trigger("close", {
                  originalEvent: n,
                  originalSelect2Event: t,
                });
            }),
            e
          );
        }),
        e.define("select2/i18n/en", [], function () {
          return {
            errorLoading: function () {
              return "The results could not be loaded.";
            },
            inputTooLong: function (e) {
              var t = e.input.length - e.maximum,
                n = "Please delete " + t + " character";
              return 1 != t && (n += "s"), n;
            },
            inputTooShort: function (e) {
              return (
                "Please enter " +
                (e.minimum - e.input.length) +
                " or more characters"
              );
            },
            loadingMore: function () {
              return "Loading more results…";
            },
            maximumSelected: function (e) {
              var t = "You can only select " + e.maximum + " item";
              return 1 != e.maximum && (t += "s"), t;
            },
            noResults: function () {
              return "No results found";
            },
            searching: function () {
              return "Searching…";
            },
            removeAllItems: function () {
              return "Remove all items";
            },
          };
        }),
        e.define(
          "select2/defaults",
          [
            "jquery",
            "require",
            "./results",
            "./selection/single",
            "./selection/multiple",
            "./selection/placeholder",
            "./selection/allowClear",
            "./selection/search",
            "./selection/eventRelay",
            "./utils",
            "./translation",
            "./diacritics",
            "./data/select",
            "./data/array",
            "./data/ajax",
            "./data/tags",
            "./data/tokenizer",
            "./data/minimumInputLength",
            "./data/maximumInputLength",
            "./data/maximumSelectionLength",
            "./dropdown",
            "./dropdown/search",
            "./dropdown/hidePlaceholder",
            "./dropdown/infiniteScroll",
            "./dropdown/attachBody",
            "./dropdown/minimumResultsForSearch",
            "./dropdown/selectOnClose",
            "./dropdown/closeOnSelect",
            "./i18n/en",
          ],
          function (
            c,
            u,
            d,
            p,
            h,
            f,
            g,
            m,
            v,
            y,
            s,
            t,
            _,
            $,
            b,
            w,
            A,
            x,
            D,
            S,
            E,
            C,
            O,
            T,
            q,
            L,
            I,
            j,
            e
          ) {
            function n() {
              this.reset();
            }
            return (
              (n.prototype.apply = function (e) {
                if (
                  null == (e = c.extend(!0, {}, this.defaults, e)).dataAdapter
                ) {
                  if (
                    (null != e.ajax
                      ? (e.dataAdapter = b)
                      : null != e.data
                      ? (e.dataAdapter = $)
                      : (e.dataAdapter = _),
                    0 < e.minimumInputLength &&
                      (e.dataAdapter = y.Decorate(e.dataAdapter, x)),
                    0 < e.maximumInputLength &&
                      (e.dataAdapter = y.Decorate(e.dataAdapter, D)),
                    0 < e.maximumSelectionLength &&
                      (e.dataAdapter = y.Decorate(e.dataAdapter, S)),
                    e.tags && (e.dataAdapter = y.Decorate(e.dataAdapter, w)),
                    (null == e.tokenSeparators && null == e.tokenizer) ||
                      (e.dataAdapter = y.Decorate(e.dataAdapter, A)),
                    null != e.query)
                  ) {
                    var t = u(e.amdBase + "compat/query");
                    e.dataAdapter = y.Decorate(e.dataAdapter, t);
                  }
                  if (null != e.initSelection) {
                    var n = u(e.amdBase + "compat/initSelection");
                    e.dataAdapter = y.Decorate(e.dataAdapter, n);
                  }
                }
                if (
                  (null == e.resultsAdapter &&
                    ((e.resultsAdapter = d),
                    null != e.ajax &&
                      (e.resultsAdapter = y.Decorate(e.resultsAdapter, T)),
                    null != e.placeholder &&
                      (e.resultsAdapter = y.Decorate(e.resultsAdapter, O)),
                    e.selectOnClose &&
                      (e.resultsAdapter = y.Decorate(e.resultsAdapter, I))),
                  null == e.dropdownAdapter)
                ) {
                  if (e.multiple) e.dropdownAdapter = E;
                  else {
                    var r = y.Decorate(E, C);
                    e.dropdownAdapter = r;
                  }
                  if (
                    (0 !== e.minimumResultsForSearch &&
                      (e.dropdownAdapter = y.Decorate(e.dropdownAdapter, L)),
                    e.closeOnSelect &&
                      (e.dropdownAdapter = y.Decorate(e.dropdownAdapter, j)),
                    null != e.dropdownCssClass ||
                      null != e.dropdownCss ||
                      null != e.adaptDropdownCssClass)
                  ) {
                    var i = u(e.amdBase + "compat/dropdownCss");
                    e.dropdownAdapter = y.Decorate(e.dropdownAdapter, i);
                  }
                  e.dropdownAdapter = y.Decorate(e.dropdownAdapter, q);
                }
                if (null == e.selectionAdapter) {
                  if (
                    (e.multiple
                      ? (e.selectionAdapter = h)
                      : (e.selectionAdapter = p),
                    null != e.placeholder &&
                      (e.selectionAdapter = y.Decorate(e.selectionAdapter, f)),
                    e.allowClear &&
                      (e.selectionAdapter = y.Decorate(e.selectionAdapter, g)),
                    e.multiple &&
                      (e.selectionAdapter = y.Decorate(e.selectionAdapter, m)),
                    null != e.containerCssClass ||
                      null != e.containerCss ||
                      null != e.adaptContainerCssClass)
                  ) {
                    var o = u(e.amdBase + "compat/containerCss");
                    e.selectionAdapter = y.Decorate(e.selectionAdapter, o);
                  }
                  e.selectionAdapter = y.Decorate(e.selectionAdapter, v);
                }
                (e.language = this._resolveLanguage(e.language)),
                  e.language.push("en");
                for (var s = [], a = 0; a < e.language.length; a++) {
                  var l = e.language[a];
                  -1 === s.indexOf(l) && s.push(l);
                }
                return (
                  (e.language = s),
                  (e.translations = this._processTranslations(
                    e.language,
                    e.debug
                  )),
                  e
                );
              }),
              (n.prototype.reset = function () {
                function a(e) {
                  return e.replace(/[^\u0000-\u007E]/g, function (e) {
                    return t[e] || e;
                  });
                }
                this.defaults = {
                  amdBase: "./",
                  amdLanguageBase: "./i18n/",
                  closeOnSelect: !0,
                  debug: !1,
                  dropdownAutoWidth: !1,
                  escapeMarkup: y.escapeMarkup,
                  language: {},
                  matcher: function e(t, n) {
                    if ("" === c.trim(t.term)) return n;
                    if (n.children && 0 < n.children.length) {
                      for (
                        var r = c.extend(!0, {}, n), i = n.children.length - 1;
                        0 <= i;
                        i--
                      )
                        null == e(t, n.children[i]) && r.children.splice(i, 1);
                      return 0 < r.children.length ? r : e(t, r);
                    }
                    var o = a(n.text).toUpperCase(),
                      s = a(t.term).toUpperCase();
                    return -1 < o.indexOf(s) ? n : null;
                  },
                  minimumInputLength: 0,
                  maximumInputLength: 0,
                  maximumSelectionLength: 0,
                  minimumResultsForSearch: 0,
                  selectOnClose: !1,
                  scrollAfterSelect: !1,
                  sorter: function (e) {
                    return e;
                  },
                  templateResult: function (e) {
                    return e.text;
                  },
                  templateSelection: function (e) {
                    return e.text;
                  },
                  theme: "default",
                  width: "resolve",
                };
              }),
              (n.prototype.applyFromElement = function (e, t) {
                var n = e.language,
                  r = this.defaults.language,
                  i = t.prop("lang"),
                  o = t.closest("[lang]").prop("lang"),
                  s = Array.prototype.concat.call(
                    this._resolveLanguage(i),
                    this._resolveLanguage(n),
                    this._resolveLanguage(r),
                    this._resolveLanguage(o)
                  );
                return (e.language = s), e;
              }),
              (n.prototype._resolveLanguage = function (e) {
                if (!e) return [];
                if (c.isEmptyObject(e)) return [];
                if (c.isPlainObject(e)) return [e];
                var t;
                t = c.isArray(e) ? e : [e];
                for (var n = [], r = 0; r < t.length; r++)
                  if (
                    (n.push(t[r]),
                    "string" == typeof t[r] && 0 < t[r].indexOf("-"))
                  ) {
                    var i = t[r].split("-")[0];
                    n.push(i);
                  }
                return n;
              }),
              (n.prototype._processTranslations = function (e, t) {
                for (var n = new s(), r = 0; r < e.length; r++) {
                  var i = new s(),
                    o = e[r];
                  if ("string" == typeof o)
                    try {
                      i = s.loadPath(o);
                    } catch (e) {
                      try {
                        (o = this.defaults.amdLanguageBase + o),
                          (i = s.loadPath(o));
                      } catch (e) {
                        t &&
                          window.console &&
                          console.warn &&
                          console.warn(
                            'Select2: The language file for "' +
                              o +
                              '" could not be automatically loaded. A fallback will be used instead.'
                          );
                      }
                    }
                  else i = c.isPlainObject(o) ? new s(o) : o;
                  n.extend(i);
                }
                return n;
              }),
              (n.prototype.set = function (e, t) {
                var n = {};
                n[c.camelCase(e)] = t;
                var r = y._convertData(n);
                c.extend(!0, this.defaults, r);
              }),
              new n()
            );
          }
        ),
        e.define(
          "select2/options",
          ["require", "jquery", "./defaults", "./utils"],
          function (r, d, i, p) {
            function e(e, t) {
              if (
                ((this.options = e),
                null != t && this.fromElement(t),
                null != t &&
                  (this.options = i.applyFromElement(this.options, t)),
                (this.options = i.apply(this.options)),
                t && t.is("input"))
              ) {
                var n = r(this.get("amdBase") + "compat/inputData");
                this.options.dataAdapter = p.Decorate(
                  this.options.dataAdapter,
                  n
                );
              }
            }
            return (
              (e.prototype.fromElement = function (e) {
                var t = ["select2"];
                null == this.options.multiple &&
                  (this.options.multiple = e.prop("multiple")),
                  null == this.options.disabled &&
                    (this.options.disabled = e.prop("disabled")),
                  null == this.options.dir &&
                    (e.prop("dir")
                      ? (this.options.dir = e.prop("dir"))
                      : e.closest("[dir]").prop("dir")
                      ? (this.options.dir = e.closest("[dir]").prop("dir"))
                      : (this.options.dir = "ltr")),
                  e.prop("disabled", this.options.disabled),
                  e.prop("multiple", this.options.multiple),
                  p.GetData(e[0], "select2Tags") &&
                    (this.options.debug &&
                      window.console &&
                      console.warn &&
                      console.warn(
                        'Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'
                      ),
                    p.StoreData(e[0], "data", p.GetData(e[0], "select2Tags")),
                    p.StoreData(e[0], "tags", !0)),
                  p.GetData(e[0], "ajaxUrl") &&
                    (this.options.debug &&
                      window.console &&
                      console.warn &&
                      console.warn(
                        "Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."
                      ),
                    e.attr("ajax--url", p.GetData(e[0], "ajaxUrl")),
                    p.StoreData(e[0], "ajax-Url", p.GetData(e[0], "ajaxUrl")));
                var n = {};
                function r(e, t) {
                  return t.toUpperCase();
                }
                for (var i = 0; i < e[0].attributes.length; i++) {
                  var o = e[0].attributes[i].name,
                    s = "data-";
                  if (o.substr(0, s.length) == s) {
                    var a = o.substring(s.length),
                      l = p.GetData(e[0], a);
                    n[a.replace(/-([a-z])/g, r)] = l;
                  }
                }
                d.fn.jquery &&
                  "1." == d.fn.jquery.substr(0, 2) &&
                  e[0].dataset &&
                  (n = d.extend(!0, {}, e[0].dataset, n));
                var c = d.extend(!0, {}, p.GetData(e[0]), n);
                for (var u in (c = p._convertData(c)))
                  -1 < d.inArray(u, t) ||
                    (d.isPlainObject(this.options[u])
                      ? d.extend(this.options[u], c[u])
                      : (this.options[u] = c[u]));
                return this;
              }),
              (e.prototype.get = function (e) {
                return this.options[e];
              }),
              (e.prototype.set = function (e, t) {
                this.options[e] = t;
              }),
              e
            );
          }
        ),
        e.define(
          "select2/core",
          ["jquery", "./options", "./utils", "./keys"],
          function (o, c, u, r) {
            var d = function (e, t) {
              null != u.GetData(e[0], "select2") &&
                u.GetData(e[0], "select2").destroy(),
                (this.$element = e),
                (this.id = this._generateId(e)),
                (t = t || {}),
                (this.options = new c(t, e)),
                d.__super__.constructor.call(this);
              var n = e.attr("tabindex") || 0;
              u.StoreData(e[0], "old-tabindex", n), e.attr("tabindex", "-1");
              var r = this.options.get("dataAdapter");
              this.dataAdapter = new r(e, this.options);
              var i = this.render();
              this._placeContainer(i);
              var o = this.options.get("selectionAdapter");
              (this.selection = new o(e, this.options)),
                (this.$selection = this.selection.render()),
                this.selection.position(this.$selection, i);
              var s = this.options.get("dropdownAdapter");
              (this.dropdown = new s(e, this.options)),
                (this.$dropdown = this.dropdown.render()),
                this.dropdown.position(this.$dropdown, i);
              var a = this.options.get("resultsAdapter");
              (this.results = new a(e, this.options, this.dataAdapter)),
                (this.$results = this.results.render()),
                this.results.position(this.$results, this.$dropdown);
              var l = this;
              this._bindAdapters(),
                this._registerDomEvents(),
                this._registerDataEvents(),
                this._registerSelectionEvents(),
                this._registerDropdownEvents(),
                this._registerResultsEvents(),
                this._registerEvents(),
                this.dataAdapter.current(function (e) {
                  l.trigger("selection:update", { data: e });
                }),
                e.addClass("select2-hidden-accessible"),
                e.attr("aria-hidden", "true"),
                this._syncAttributes(),
                u.StoreData(e[0], "select2", this),
                e.data("select2", this);
            };
            return (
              u.Extend(d, u.Observable),
              (d.prototype._generateId = function (e) {
                return (
                  "select2-" +
                  (null != e.attr("id")
                    ? e.attr("id")
                    : null != e.attr("name")
                    ? e.attr("name") + "-" + u.generateChars(2)
                    : u.generateChars(4)
                  ).replace(/(:|\.|\[|\]|,)/g, "")
                );
              }),
              (d.prototype._placeContainer = function (e) {
                e.insertAfter(this.$element);
                var t = this._resolveWidth(
                  this.$element,
                  this.options.get("width")
                );
                null != t && e.css("width", t);
              }),
              (d.prototype._resolveWidth = function (e, t) {
                var n =
                  /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;
                if ("resolve" == t) {
                  var r = this._resolveWidth(e, "style");
                  return null != r ? r : this._resolveWidth(e, "element");
                }
                if ("element" == t) {
                  var i = e.outerWidth(!1);
                  return i <= 0 ? "auto" : i + "px";
                }
                if ("style" != t)
                  return "computedstyle" != t
                    ? t
                    : window.getComputedStyle(e[0]).width;
                var o = e.attr("style");
                if ("string" != typeof o) return null;
                for (var s = o.split(";"), a = 0, l = s.length; a < l; a += 1) {
                  var c = s[a].replace(/\s/g, "").match(n);
                  if (null !== c && 1 <= c.length) return c[1];
                }
                return null;
              }),
              (d.prototype._bindAdapters = function () {
                this.dataAdapter.bind(this, this.$container),
                  this.selection.bind(this, this.$container),
                  this.dropdown.bind(this, this.$container),
                  this.results.bind(this, this.$container);
              }),
              (d.prototype._registerDomEvents = function () {
                var t = this;
                this.$element.on("change.select2", function () {
                  t.dataAdapter.current(function (e) {
                    t.trigger("selection:update", { data: e });
                  });
                }),
                  this.$element.on("focus.select2", function (e) {
                    t.trigger("focus", e);
                  }),
                  (this._syncA = u.bind(this._syncAttributes, this)),
                  (this._syncS = u.bind(this._syncSubtree, this)),
                  this.$element[0].attachEvent &&
                    this.$element[0].attachEvent(
                      "onpropertychange",
                      this._syncA
                    );
                var e =
                  window.MutationObserver ||
                  window.WebKitMutationObserver ||
                  window.MozMutationObserver;
                null != e
                  ? ((this._observer = new e(function (e) {
                      t._syncA(), t._syncS(null, e);
                    })),
                    this._observer.observe(this.$element[0], {
                      attributes: !0,
                      childList: !0,
                      subtree: !1,
                    }))
                  : this.$element[0].addEventListener &&
                    (this.$element[0].addEventListener(
                      "DOMAttrModified",
                      t._syncA,
                      !1
                    ),
                    this.$element[0].addEventListener(
                      "DOMNodeInserted",
                      t._syncS,
                      !1
                    ),
                    this.$element[0].addEventListener(
                      "DOMNodeRemoved",
                      t._syncS,
                      !1
                    ));
              }),
              (d.prototype._registerDataEvents = function () {
                var n = this;
                this.dataAdapter.on("*", function (e, t) {
                  n.trigger(e, t);
                });
              }),
              (d.prototype._registerSelectionEvents = function () {
                var n = this,
                  r = ["toggle", "focus"];
                this.selection.on("toggle", function () {
                  n.toggleDropdown();
                }),
                  this.selection.on("focus", function (e) {
                    n.focus(e);
                  }),
                  this.selection.on("*", function (e, t) {
                    -1 === o.inArray(e, r) && n.trigger(e, t);
                  });
              }),
              (d.prototype._registerDropdownEvents = function () {
                var n = this;
                this.dropdown.on("*", function (e, t) {
                  n.trigger(e, t);
                });
              }),
              (d.prototype._registerResultsEvents = function () {
                var n = this;
                this.results.on("*", function (e, t) {
                  n.trigger(e, t);
                });
              }),
              (d.prototype._registerEvents = function () {
                var n = this;
                this.on("open", function () {
                  n.$container.addClass("select2-container--open");
                }),
                  this.on("close", function () {
                    n.$container.removeClass("select2-container--open");
                  }),
                  this.on("enable", function () {
                    n.$container.removeClass("select2-container--disabled");
                  }),
                  this.on("disable", function () {
                    n.$container.addClass("select2-container--disabled");
                  }),
                  this.on("blur", function () {
                    n.$container.removeClass("select2-container--focus");
                  }),
                  this.on("query", function (t) {
                    n.isOpen() || n.trigger("open", {}),
                      this.dataAdapter.query(t, function (e) {
                        n.trigger("results:all", { data: e, query: t });
                      });
                  }),
                  this.on("query:append", function (t) {
                    this.dataAdapter.query(t, function (e) {
                      n.trigger("results:append", { data: e, query: t });
                    });
                  }),
                  this.on("keypress", function (e) {
                    var t = e.which;
                    n.isOpen()
                      ? t === r.ESC || t === r.TAB || (t === r.UP && e.altKey)
                        ? (n.close(e), e.preventDefault())
                        : t === r.ENTER
                        ? (n.trigger("results:select", {}), e.preventDefault())
                        : t === r.SPACE && e.ctrlKey
                        ? (n.trigger("results:toggle", {}), e.preventDefault())
                        : t === r.UP
                        ? (n.trigger("results:previous", {}),
                          e.preventDefault())
                        : t === r.DOWN &&
                          (n.trigger("results:next", {}), e.preventDefault())
                      : (t === r.ENTER ||
                          t === r.SPACE ||
                          (t === r.DOWN && e.altKey)) &&
                        (n.open(), e.preventDefault());
                  });
              }),
              (d.prototype._syncAttributes = function () {
                this.options.set("disabled", this.$element.prop("disabled")),
                  this.isDisabled()
                    ? (this.isOpen() && this.close(),
                      this.trigger("disable", {}))
                    : this.trigger("enable", {});
              }),
              (d.prototype._isChangeMutation = function (e, t) {
                var n = !1,
                  r = this;
                if (
                  !e ||
                  !e.target ||
                  "OPTION" === e.target.nodeName ||
                  "OPTGROUP" === e.target.nodeName
                ) {
                  if (t)
                    if (t.addedNodes && 0 < t.addedNodes.length)
                      for (var i = 0; i < t.addedNodes.length; i++) {
                        t.addedNodes[i].selected && (n = !0);
                      }
                    else
                      t.removedNodes && 0 < t.removedNodes.length
                        ? (n = !0)
                        : o.isArray(t) &&
                          o.each(t, function (e, t) {
                            if (r._isChangeMutation(e, t)) return !(n = !0);
                          });
                  else n = !0;
                  return n;
                }
              }),
              (d.prototype._syncSubtree = function (e, t) {
                var n = this._isChangeMutation(e, t),
                  r = this;
                n &&
                  this.dataAdapter.current(function (e) {
                    r.trigger("selection:update", { data: e });
                  });
              }),
              (d.prototype.trigger = function (e, t) {
                var n = d.__super__.trigger,
                  r = {
                    open: "opening",
                    close: "closing",
                    select: "selecting",
                    unselect: "unselecting",
                    clear: "clearing",
                  };
                if ((void 0 === t && (t = {}), e in r)) {
                  var i = r[e],
                    o = { prevented: !1, name: e, args: t };
                  if ((n.call(this, i, o), o.prevented))
                    return void (t.prevented = !0);
                }
                n.call(this, e, t);
              }),
              (d.prototype.toggleDropdown = function () {
                this.isDisabled() ||
                  (this.isOpen() ? this.close() : this.open());
              }),
              (d.prototype.open = function () {
                this.isOpen() || this.isDisabled() || this.trigger("query", {});
              }),
              (d.prototype.close = function (e) {
                this.isOpen() && this.trigger("close", { originalEvent: e });
              }),
              (d.prototype.isEnabled = function () {
                return !this.isDisabled();
              }),
              (d.prototype.isDisabled = function () {
                return this.options.get("disabled");
              }),
              (d.prototype.isOpen = function () {
                return this.$container.hasClass("select2-container--open");
              }),
              (d.prototype.hasFocus = function () {
                return this.$container.hasClass("select2-container--focus");
              }),
              (d.prototype.focus = function (e) {
                this.hasFocus() ||
                  (this.$container.addClass("select2-container--focus"),
                  this.trigger("focus", {}));
              }),
              (d.prototype.enable = function (e) {
                this.options.get("debug") &&
                  window.console &&
                  console.warn &&
                  console.warn(
                    'Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'
                  ),
                  (null != e && 0 !== e.length) || (e = [!0]);
                var t = !e[0];
                this.$element.prop("disabled", t);
              }),
              (d.prototype.data = function () {
                this.options.get("debug") &&
                  0 < arguments.length &&
                  window.console &&
                  console.warn &&
                  console.warn(
                    'Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.'
                  );
                var t = [];
                return (
                  this.dataAdapter.current(function (e) {
                    t = e;
                  }),
                  t
                );
              }),
              (d.prototype.val = function (e) {
                if (
                  (this.options.get("debug") &&
                    window.console &&
                    console.warn &&
                    console.warn(
                      'Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'
                    ),
                  null == e || 0 === e.length)
                )
                  return this.$element.val();
                var t = e[0];
                o.isArray(t) &&
                  (t = o.map(t, function (e) {
                    return e.toString();
                  })),
                  this.$element.val(t).trigger("input").trigger("change");
              }),
              (d.prototype.destroy = function () {
                this.$container.remove(),
                  this.$element[0].detachEvent &&
                    this.$element[0].detachEvent(
                      "onpropertychange",
                      this._syncA
                    ),
                  null != this._observer
                    ? (this._observer.disconnect(), (this._observer = null))
                    : this.$element[0].removeEventListener &&
                      (this.$element[0].removeEventListener(
                        "DOMAttrModified",
                        this._syncA,
                        !1
                      ),
                      this.$element[0].removeEventListener(
                        "DOMNodeInserted",
                        this._syncS,
                        !1
                      ),
                      this.$element[0].removeEventListener(
                        "DOMNodeRemoved",
                        this._syncS,
                        !1
                      )),
                  (this._syncA = null),
                  (this._syncS = null),
                  this.$element.off(".select2"),
                  this.$element.attr(
                    "tabindex",
                    u.GetData(this.$element[0], "old-tabindex")
                  ),
                  this.$element.removeClass("select2-hidden-accessible"),
                  this.$element.attr("aria-hidden", "false"),
                  u.RemoveData(this.$element[0]),
                  this.$element.removeData("select2"),
                  this.dataAdapter.destroy(),
                  this.selection.destroy(),
                  this.dropdown.destroy(),
                  this.results.destroy(),
                  (this.dataAdapter = null),
                  (this.selection = null),
                  (this.dropdown = null),
                  (this.results = null);
              }),
              (d.prototype.render = function () {
                var e = o(
                  '<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>'
                );
                return (
                  e.attr("dir", this.options.get("dir")),
                  (this.$container = e),
                  this.$container.addClass(
                    "select2-container--" + this.options.get("theme")
                  ),
                  u.StoreData(e[0], "element", this.$element),
                  e
                );
              }),
              d
            );
          }
        ),
        e.define("jquery-mousewheel", ["jquery"], function (e) {
          return e;
        }),
        e.define(
          "jquery.select2",
          [
            "jquery",
            "jquery-mousewheel",
            "./select2/core",
            "./select2/defaults",
            "./select2/utils",
          ],
          function (i, e, o, t, s) {
            if (null == i.fn.select2) {
              var a = ["open", "close", "destroy"];
              i.fn.select2 = function (t) {
                if ("object" == typeof (t = t || {}))
                  return (
                    this.each(function () {
                      var e = i.extend(!0, {}, t);
                      new o(i(this), e);
                    }),
                    this
                  );
                if ("string" != typeof t)
                  throw new Error("Invalid arguments for Select2: " + t);
                var n,
                  r = Array.prototype.slice.call(arguments, 1);
                return (
                  this.each(function () {
                    var e = s.GetData(this, "select2");
                    null == e &&
                      window.console &&
                      console.error &&
                      console.error(
                        "The select2('" +
                          t +
                          "') method was called on an element that is not using Select2."
                      ),
                      (n = e[t].apply(e, r));
                  }),
                  -1 < i.inArray(t, a) ? this : n
                );
              };
            }
            return (
              null == i.fn.select2.defaults && (i.fn.select2.defaults = t), o
            );
          }
        ),
        { define: e.define, require: e.require }
      );
    })(),
    t = e.require("jquery.select2");
  return (u.fn.select2.amd = e), t;
});
$(document).on("htmx:afterRequest", function (event, data) {
  var response = event.detail.xhr.response;
  var target = $(event.detail.elt.getAttribute("hx-target"));
  target.find(".oh-select").select2();
});
$(document).on("htmx:afterSettle", function (event, data) {
  var response = event.detail.xhr.response;
  target = $(event.target);
  target.find(".oh-select").select2();
});
