PageSourceSearch

https://smythre-apollobay.com.au/js/jquery-ui.min.js

js smythre-apollobay.com.au collected 2026-10-07 18:58:21 UTC 412,192 bytes, 11,911 lines download raw bytes

1/*! jQuery UI - v1.11.0 - 2014-06-26
2 * http://jqueryui.com
3 * Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, sortable.js, spinner.js, tabs.js, tooltip.js
4 * Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
5
6(function (e) {
7  "function" == typeof define && define.amd ? define(["jquery"], e) : e(jQuery);
8})(function (e) {
9  function t(t, s) {
10    var n,
11      a,
12      o,
13      r = t.nodeName.toLowerCase();
14    return "area" === r
15      ? ((n = t.parentNode),
16        (a = n.name),
17        t.href && a && "map" === n.nodeName.toLowerCase()
18          ? ((o = e("img[usemap=#" + a + "]")[0]), !!o && i(o))
19          : !1)
20      : (/input|select|textarea|button|object/.test(r)
21          ? !t.disabled
22          : "a" === r
23          ? t.href || s
24          : s) && i(t);
25  }
26  function i(t) {
27    return (
28      e.expr.filters.visible(t) &&
29      !e(t)
30        .parents()
31        .addBack()
32        .filter(function () {
33          return "hidden" === e.css(this, "visibility");
34        }).length
35    );
36  }
37  function s(e) {
38    for (var t, i; e.length && e[0] !== document; ) {
39      if (
40        ((t = e.css("position")),
41        ("absolute" === t || "relative" === t || "fixed" === t) &&
42          ((i = parseInt(e.css("zIndex"), 10)), !isNaN(i) && 0 !== i))
43      )
44        return i;
45      e = e.parent();
46    }
47    return 0;
48  }
49  function n() {
50    (this._curInst = null),
51      (this._keyEvent = !1),
52      (this._disabledInputs = []),
53      (this._datepickerShowing = !1),
54      (this._inDialog = !1),
55      (this._mainDivId = "ui-datepicker-div"),
56      (this._inlineClass = "ui-datepicker-inline"),
57      (this._appendClass = "ui-datepicker-append"),
58      (this._triggerClass = "ui-datepicker-trigger"),
59      (this._dialogClass = "ui-datepicker-dialog"),
60      (this._disableClass = "ui-datepicker-disabled"),
61      (this._unselectableClass = "ui-datepicker-unselectable"),
62      (this._currentClass = "ui-datepicker-current-day"),
63      (this._dayOverClass = "ui-datepicker-days-cell-over"),
64      (this.regional = []),
65      (this.regional[""] = {
66        closeText: "Done",
67        prevText: "Prev",
68        nextText: "Next",
69        currentText: "Today",
70        monthNames: [
71          "January",
72          "February",
73          "March",
74          "April",
75          "May",
76          "June",
77          "July",
78          "August",
79          "September",
80          "October",
81          "November",
82          "December",
83        ],
84        monthNamesShort: [
85          "Jan",
86          "Feb",
87          "Mar",
88          "Apr",
89          "May",
90          "Jun",
91          "Jul",
92          "Aug",
93          "Sep",
94          "Oct",
95          "Nov",
96          "Dec",
97        ],
98        dayNames: [
99          "Sunday",
100          "Monday",
101          "Tuesday",
102          "Wednesday",
103          "Thursday",
104          "Friday",
105          "Saturday",
106        ],
107        dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
108        dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
109        weekHeader: "Wk",
110        dateFormat: "mm/dd/yy",
111        firstDay: 0,
112        isRTL: !1,
113        showMonthAfterYear: !1,
114        yearSuffix: "",
115      }),
116      (this._defaults = {
117        showOn: "focus",
118        showAnim: "fadeIn",
119        showOptions: {},
120        defaultDate: null,
121        appendText: "",
122        buttonText: "...",
123        buttonImage: "",
124        buttonImageOnly: !1,
125        hideIfNoPrevNext: !1,
126        navigationAsDateFormat: !1,
127        gotoCurrent: !1,
128        changeMonth: !1,
129        changeYear: !1,
130        yearRange: "c-10:c+10",
131        showOtherMonths: !1,
132        selectOtherMonths: !1,
133        showWeek: !1,
134        calculateWeek: this.iso8601Week,
135        shortYearCutoff: "+10",
136        minDate: null,
137        maxDate: null,
138        duration: "fast",
139        beforeShowDay: null,
140        beforeShow: null,
141        onSelect: null,
142        onChangeMonthYear: null,
143        onClose: null,
144        numberOfMonths: 1,
145        showCurrentAtPos: 0,
146        stepMonths: 1,
147        stepBigMonths: 12,
148        altField: "",
149        altFormat: "",
150        constrainInput: !0,
151        showButtonPanel: !1,
152        autoSize: !1,
153        disabled: !1,
154      }),
155      e.extend(this._defaults, this.regional[""]),
156      (this.regional.en = e.extend(!0, {}, this.regional[""])),
157      (this.regional["en-US"] = e.extend(!0, {}, this.regional.en)),
158      (this.dpDiv = a(
159        e(
160          "<div id='" +
161            this._mainDivId +
162            "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"
163        )
164      ));
165  }
166  function a(t) {
167    var i =
168      "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
169    return t
170      .delegate(i, "mouseout", function () {
171        e(this).removeClass("ui-state-hover"),
172          -1 !== this.className.indexOf("ui-datepicker-prev") &&
173            e(this).removeClass("ui-datepicker-prev-hover"),
174          -1 !== this.className.indexOf("ui-datepicker-next") &&
175            e(this).removeClass("ui-datepicker-next-hover");
176      })
177      .delegate(i, "mouseover", function () {
178        e.datepicker._isDisabledDatepicker(
179          g.inline ? t.parent()[0] : g.input[0]
180        ) ||
181          (e(this)
182            .parents(".ui-datepicker-calendar")
183            .find("a")
184            .removeClass("ui-state-hover"),
185          e(this).addClass("ui-state-hover"),
186          -1 !== this.className.indexOf("ui-datepicker-prev") &&
187            e(this).addClass("ui-datepicker-prev-hover"),
188          -1 !== this.className.indexOf("ui-datepicker-next") &&
189            e(this).addClass("ui-datepicker-next-hover"));
190      });
191  }
192  function o(t, i) {
193    e.extend(t, i);
194    for (var s in i) null == i[s] && (t[s] = i[s]);
195    return t;
196  }
197  function r(e) {
198    return function () {
199      var t = this.element.val();
200      e.apply(this, arguments),
201        this._refresh(),
202        t !== this.element.val() && this._trigger("change");
203    };
204  }
205  (e.ui = e.ui || {}),
206    e.extend(e.ui, {
207      version: "1.11.0",
208      keyCode: {
209        BACKSPACE: 8,
210        COMMA: 188,
211        DELETE: 46,
212        DOWN: 40,
213        END: 35,
214        ENTER: 13,
215        ESCAPE: 27,
216        HOME: 36,
217        LEFT: 37,
218        PAGE_DOWN: 34,
219        PAGE_UP: 33,
220        PERIOD: 190,
221        RIGHT: 39,
222        SPACE: 32,
223        TAB: 9,
224        UP: 38,
225      },
226    }),
227    e.fn.extend({
228      scrollParent: function () {
229        var t = this.css("position"),
230          i = "absolute" === t,
231          s = this.parents()
232            .filter(function () {
233              var t = e(this);
234              return i && "static" === t.css("position")
235                ? !1
236                : /(auto|scroll)/.test(
237                    t.css("overflow") +
238                      t.css("overflow-y") +
239                      t.css("overflow-x")
240                  );
241            })
242            .eq(0);
243        return "fixed" !== t && s.length
244          ? s
245          : e(this[0].ownerDocument || document);
246      },
247      uniqueId: (function () {
248        var e = 0;
249        return function () {
250          return this.each(function () {
251            this.id || (this.id = "ui-id-" + ++e);
252          });
253        };
254      })(),
255      removeUniqueId: function () {
256        return this.each(function () {
257          /^ui-id-\d+$/.test(this.id) && e(this).removeAttr("id");
258        });
259      },
260    }),
261    e.extend(e.expr[":"], {
262      data: e.expr.createPseudo
263        ? e.expr.createPseudo(function (t) {
264            return function (i) {
265              return !!e.data(i, t);
266            };
267          })
268        : function (t, i, s) {
269            return !!e.data(t, s[3]);
270          },
271      focusable: function (i) {
272        return t(i, !isNaN(e.attr(i, "tabindex")));
273      },
274      tabbable: function (i) {
275        var s = e.attr(i, "tabindex"),
276          n = isNaN(s);
277        return (n || s >= 0) && t(i, !n);
278      },
279    }),
280    e("<a>").outerWidth(1).jquery ||
281      e.each(["Width", "Height"], function (t, i) {
282        function s(t, i, s, a) {
283          return (
284            e.each(n, function () {
285              (i -= parseFloat(e.css(t, "padding" + this)) || 0),
286                s &&
287                  (i -= parseFloat(e.css(t, "border" + this + "Width")) || 0),
288                a && (i -= parseFloat(e.css(t, "margin" + this)) || 0);
289            }),
290            i
291          );
292        }
293        var n = "Width" === i ? ["Left", "Right"] : ["Top", "Bottom"],
294          a = i.toLowerCase(),
295          o = {
296            innerWidth: e.fn.innerWidth,
297            innerHeight: e.fn.innerHeight,
298            outerWidth: e.fn.outerWidth,
299            outerHeight: e.fn.outerHeight,
300          };
301        (e.fn["inner" + i] = function (t) {
302          return void 0 === t
303            ? o["inner" + i].call(this)
304            : this.each(function () {
305                e(this).css(a, s(this, t) + "px");
306              });
307        }),
308          (e.fn["outer" + i] = function (t, n) {
309            return "number" != typeof t
310              ? o["outer" + i].call(this, t)
311              : this.each(function () {
312                  e(this).css(a, s(this, t, !0, n) + "px");
313                });
314          });
315      }),
316    e.fn.addBack ||
317      (e.fn.addBack = function (e) {
318        return this.add(
319          null == e ? this.prevObject : this.prevObject.filter(e)
320        );
321      }),
322    e("<a>").data("a-b", "a").removeData("a-b").data("a-b") &&
323      (e.fn.removeData = (function (t) {
324        return function (i) {
325          return arguments.length ? t.call(this, e.camelCase(i)) : t.call(this);
326        };
327      })(e.fn.removeData)),
328    (e.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())),
329    e.fn.extend({
330      focus: (function (t) {
331        return function (i, s) {
332          return "number" == typeof i
333            ? this.each(function () {
334                var t = this;
335                setTimeout(function () {
336                  e(t).focus(), s && s.call(t);
337                }, i);
338              })
339            : t.apply(this, arguments);
340        };
341      })(e.fn.focus),
342      disableSelection: (function () {
343        var e =
344          "onselectstart" in document.createElement("div")
345            ? "selectstart"
346            : "mousedown";
347        return function () {
348          return this.bind(e + ".ui-disableSelection", function (e) {
349            e.preventDefault();
350          });
351        };
352      })(),
353      enableSelection: function () {
354        return this.unbind(".ui-disableSelection");
355      },
356      zIndex: function (t) {
357        if (void 0 !== t) return this.css("zIndex", t);
358        if (this.length)
359          for (var i, s, n = e(this[0]); n.length && n[0] !== document; ) {
360            if (
361              ((i = n.css("position")),
362              ("absolute" === i || "relative" === i || "fixed" === i) &&
363                ((s = parseInt(n.css("zIndex"), 10)), !isNaN(s) && 0 !== s))
364            )
365              return s;
366            n = n.parent();
367          }
368        return 0;
369      },
370    }),
371    (e.ui.plugin = {
372      add: function (t, i, s) {
373        var n,
374          a = e.ui[t].prototype;
375        for (n in s)
376          (a.plugins[n] = a.plugins[n] || []), a.plugins[n].push([i, s[n]]);
377      },
378      call: function (e, t, i, s) {
379        var n,
380          a = e.plugins[t];
381        if (
382          a &&
383          (s ||
384            (e.element[0].parentNode &&
385              11 !== e.element[0].parentNode.nodeType))
386        )
387          for (n = 0; a.length > n; n++)
388            e.options[a[n][0]] && a[n][1].apply(e.element, i);
389      },
390    });
391  var h = 0,
392    l = Array.prototype.slice;
393  (e.cleanData = (function (t) {
394    return function (i) {
395      for (var s, n = 0; null != (s = i[n]); n++)
396        try {
397          e(s).triggerHandler("remove");
398        } catch (a) {}
399      t(i);
400    };
401  })(e.cleanData)),
402    (e.widget = function (t, i, s) {
403      var n,
404        a,
405        o,
406        r,
407        h = {},
408        l = t.split(".")[0];
409      return (
410        (t = t.split(".")[1]),
411        (n = l + "-" + t),
412        s || ((s = i), (i = e.Widget)),
413        (e.expr[":"][n.toLowerCase()] = function (t) {
414          return !!e.data(t, n);
415        }),
416        (e[l] = e[l] || {}),
417        (a = e[l][t]),
418        (o = e[l][t] =
419          function (e, t) {
420            return this._createWidget
421              ? (arguments.length && this._createWidget(e, t), void 0)
422              : new o(e, t);
423          }),
424        e.extend(o, a, {
425          version: s.version,
426          _proto: e.extend({}, s),
427          _childConstructors: [],
428        }),
429        (r = new i()),
430        (r.options = e.widget.extend({}, r.options)),
431        e.each(s, function (t, s) {
432          return e.isFunction(s)
433            ? ((h[t] = (function () {
434                var e = function () {
435                    return i.prototype[t].apply(this, arguments);
436                  },
437                  n = function (e) {
438                    return i.prototype[t].apply(this, e);
439                  };
440                return function () {
441                  var t,
442                    i = this._super,
443                    a = this._superApply;
444                  return (
445                    (this._super = e),
446                    (this._superApply = n),
447                    (t = s.apply(this, arguments)),
448                    (this._super = i),
449                    (this._superApply = a),
450                    t
451                  );
452                };
453              })()),
454              void 0)
455            : ((h[t] = s), void 0);
456        }),
457        (o.prototype = e.widget.extend(
458          r,
459          { widgetEventPrefix: a ? r.widgetEventPrefix || t : t },
460          h,
461          { constructor: o, namespace: l, widgetName: t, widgetFullName: n }
462        )),
463        a
464          ? (e.each(a._childConstructors, function (t, i) {
465              var s = i.prototype;
466              e.widget(s.namespace + "." + s.widgetName, o, i._proto);
467            }),
468            delete a._childConstructors)
469          : i._childConstructors.push(o),
470        e.widget.bridge(t, o),
471        o
472      );
473    }),
474    (e.widget.extend = function (t) {
475      for (var i, s, n = l.call(arguments, 1), a = 0, o = n.length; o > a; a++)
476        for (i in n[a])
477          (s = n[a][i]),
478            n[a].hasOwnProperty(i) &&
479              void 0 !== s &&
480              (t[i] = e.isPlainObject(s)
481                ? e.isPlainObject(t[i])
482                  ? e.widget.extend({}, t[i], s)
483                  : e.widget.extend({}, s)
484                : s);
485      return t;
486    }),
487    (e.widget.bridge = function (t, i) {
488      var s = i.prototype.widgetFullName || t;
489      e.fn[t] = function (n) {
490        var a = "string" == typeof n,
491          o = l.call(arguments, 1),
492          r = this;
493        return (
494          (n = !a && o.length ? e.widget.extend.apply(null, [n].concat(o)) : n),
495          a
496            ? this.each(function () {
497                var i,
498                  a = e.data(this, s);
499                return "instance" === n
500                  ? ((r = a), !1)
501                  : a
502                  ? e.isFunction(a[n]) && "_" !== n.charAt(0)
503                    ? ((i = a[n].apply(a, o)),
504                      i !== a && void 0 !== i
505                        ? ((r = i && i.jquery ? r.pushStack(i.get()) : i), !1)
506                        : void 0)
507                    : e.error(
508                        "no such method '" +
509                          n +
510                          "' for " +
511                          t +
512                          " widget instance"
513                      )
514                  : e.error(
515                      "cannot call methods on " +
516                        t +
517                        " prior to initialization; " +
518                        "attempted to call method '" +
519                        n +
520                        "'"
521                    );
522              })
523            : this.each(function () {
524                var t = e.data(this, s);
525                t
526                  ? (t.option(n || {}), t._init && t._init())
527                  : e.data(this, s, new i(n, this));
528              }),
529          r
530        );
531      };
532    }),
533    (e.Widget = function () {}),
534    (e.Widget._childConstructors = []),
535    (e.Widget.prototype = {
536      widgetName: "widget",
537      widgetEventPrefix: "",
538      defaultElement: "<div>",
539      options: { disabled: !1, create: null },
540      _createWidget: function (t, i) {
541        (i = e(i || this.defaultElement || this)[0]),
542          (this.element = e(i)),
543          (this.uuid = h++),
544          (this.eventNamespace = "." + this.widgetName + this.uuid),
545          (this.options = e.widget.extend(
546            {},
547            this.options,
548            this._getCreateOptions(),
549            t
550          )),
551          (this.bindings = e()),
552          (this.hoverable = e()),
553          (this.focusable = e()),
554          i !== this &&
555            (e.data(i, this.widgetFullName, this),
556            this._on(!0, this.element, {
557              remove: function (e) {
558                e.target === i && this.destroy();
559              },
560            }),
561            (this.document = e(i.style ? i.ownerDocument : i.document || i)),
562            (this.window = e(
563              this.document[0].defaultView || this.document[0].parentWindow
564            ))),
565          this._create(),
566          this._trigger("create", null, this._getCreateEventData()),
567          this._init();
568      },
569      _getCreateOptions: e.noop,
570      _getCreateEventData: e.noop,
571      _create: e.noop,
572      _init: e.noop,
573      destroy: function () {
574        this._destroy(),
575          this.element
576            .unbind(this.eventNamespace)
577            .removeData(this.widgetFullName)
578            .removeData(e.camelCase(this.widgetFullName)),
579          this.widget()
580            .unbind(this.eventNamespace)
581            .removeAttr("aria-disabled")
582            .removeClass(
583              this.widgetFullName + "-disabled " + "ui-state-disabled"
584            ),
585          this.bindings.unbind(this.eventNamespace),
586          this.hoverable.removeClass("ui-state-hover"),
587          this.focusable.removeClass("ui-state-focus");
588      },
589      _destroy: e.noop,
590      widget: function () {
591        return this.element;
592      },
593      option: function (t, i) {
594        var s,
595          n,
596          a,
597          o = t;
598        if (0 === arguments.length) return e.widget.extend({}, this.options);
599        if ("string" == typeof t)
600          if (((o = {}), (s = t.split(".")), (t = s.shift()), s.length)) {
601            for (
602              n = o[t] = e.widget.extend({}, this.options[t]), a = 0;
603              s.length - 1 > a;
604              a++
605            )
606              (n[s[a]] = n[s[a]] || {}), (n = n[s[a]]);
607            if (((t = s.pop()), 1 === arguments.length))
608              return void 0 === n[t] ? null : n[t];
609            n[t] = i;
610          } else {
611            if (1 === arguments.length)
612              return void 0 === this.options[t] ? null : this.options[t];
613            o[t] = i;
614          }
615        return this._setOptions(o), this;
616      },
617      _setOptions: function (e) {
618        var t;
619        for (t in e) this._setOption(t, e[t]);
620        return this;
621      },
622      _setOption: function (e, t) {
623        return (
624          (this.options[e] = t),
625          "disabled" === e &&
626            (this.widget().toggleClass(this.widgetFullName + "-disabled", !!t),
627            t &&
628              (this.hoverable.removeClass("ui-state-hover"),
629              this.focusable.removeClass("ui-state-focus"))),
630          this
631        );
632      },
633      enable: function () {
634        return this._setOptions({ disabled: !1 });
635      },
636      disable: function () {
637        return this._setOptions({ disabled: !0 });
638      },
639      _on: function (t, i, s) {
640        var n,
641          a = this;
642        "boolean" != typeof t && ((s = i), (i = t), (t = !1)),
643          s
644            ? ((i = n = e(i)), (this.bindings = this.bindings.add(i)))
645            : ((s = i), (i = this.element), (n = this.widget())),
646          e.each(s, function (s, o) {
647            function r() {
648              return t ||
649                (a.options.disabled !== !0 &&
650                  !e(this).hasClass("ui-state-disabled"))
651                ? ("string" == typeof o ? a[o] : o).apply(a, arguments)
652                : void 0;
653            }
654            "string" != typeof o &&
655              (r.guid = o.guid = o.guid || r.guid || e.guid++);
656            var h = s.match(/^([\w:-]*)\s*(.*)$/),
657              l = h[1] + a.eventNamespace,
658              u = h[2];
659            u ? n.delegate(u, l, r) : i.bind(l, r);
660          });
661      },
662      _off: function (e, t) {
663        (t =
664          (t || "").split(" ").join(this.eventNamespace + " ") +
665          this.eventNamespace),
666          e.unbind(t).undelegate(t);
667      },
668      _delay: function (e, t) {
669        function i() {
670          return ("string" == typeof e ? s[e] : e).apply(s, arguments);
671        }
672        var s = this;
673        return setTimeout(i, t || 0);
674      },
675      _hoverable: function (t) {
676        (this.hoverable = this.hoverable.add(t)),
677          this._on(t, {
678            mouseenter: function (t) {
679              e(t.currentTarget).addClass("ui-state-hover");
680            },
681            mouseleave: function (t) {
682              e(t.currentTarget).removeClass("ui-state-hover");
683            },
684          });
685      },
686      _focusable: function (t) {
687        (this.focusable = this.focusable.add(t)),
688          this._on(t, {
689            focusin: function (t) {
690              e(t.currentTarget).addClass("ui-state-focus");
691            },
692            focusout: function (t) {
693              e(t.currentTarget).removeClass("ui-state-focus");
694            },
695          });
696      },
697      _trigger: function (t, i, s) {
698        var n,
699          a,
700          o = this.options[t];
701        if (
702          ((s = s || {}),
703          (i = e.Event(i)),
704          (i.type = (
705            t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t
706          ).toLowerCase()),
707          (i.target = this.element[0]),
708          (a = i.originalEvent))
709        )
710          for (n in a) n in i || (i[n] = a[n]);
711        return (
712          this.element.trigger(i, s),
713          !(
714            (e.isFunction(o) &&
715              o.apply(this.element[0], [i].concat(s)) === !1) ||
716            i.isDefaultPrevented()
717          )
718        );
719      },
720    }),
721    e.each({ show: "fadeIn", hide: "fadeOut" }, function (t, i) {
722      e.Widget.prototype["_" + t] = function (s, n, a) {
723        "string" == typeof n && (n = { effect: n });
724        var o,
725          r = n ? (n === !0 || "number" == typeof n ? i : n.effect || i) : t;
726        (n = n || {}),
727          "number" == typeof n && (n = { duration: n }),
728          (o = !e.isEmptyObject(n)),
729          (n.complete = a),
730          n.delay && s.delay(n.delay),
731          o && e.effects && e.effects.effect[r]
732            ? s[t](n)
733            : r !== t && s[r]
734            ? s[r](n.duration, n.easing, a)
735            : s.queue(function (i) {
736                e(this)[t](), a && a.call(s[0]), i();
737              });
738      };
739    }),
740    e.widget;
741  var u = !1;
742  e(document).mouseup(function () {
743    u = !1;
744  }),
745    e.widget("ui.mouse", {
746      version: "1.11.0",
747      options: {
748        cancel: "input,textarea,button,select,option",
749        distance: 1,
750        delay: 0,
751      },
752      _mouseInit: function () {
753        var t = this;
754        this.element
755          .bind("mousedown." + this.widgetName, function (e) {
756            return t._mouseDown(e);
757          })
758          .bind("click." + this.widgetName, function (i) {
759            return !0 === e.data(i.target, t.widgetName + ".preventClickEvent")
760              ? (e.removeData(i.target, t.widgetName + ".preventClickEvent"),
761                i.stopImmediatePropagation(),
762                !1)
763              : void 0;
764          }),
765          (this.started = !1);
766      },
767      _mouseDestroy: function () {
768        this.element.unbind("." + this.widgetName),
769          this._mouseMoveDelegate &&
770            this.document
771              .unbind("mousemove." + this.widgetName, this._mouseMoveDelegate)
772              .unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
773      },
774      _mouseDown: function (t) {
775        if (!u) {
776          this._mouseStarted && this._mouseUp(t), (this._mouseDownEvent = t);
777          var i = this,
778            s = 1 === t.which,
779            n =
780              "string" == typeof this.options.cancel && t.target.nodeName
781                ? e(t.target).closest(this.options.cancel).length
782                : !1;
783          return s && !n && this._mouseCapture(t)
784            ? ((this.mouseDelayMet = !this.options.delay),
785              this.mouseDelayMet ||
786                (this._mouseDelayTimer = setTimeout(function () {
787                  i.mouseDelayMet = !0;
788                }, this.options.delay)),
789              this._mouseDistanceMet(t) &&
790              this._mouseDelayMet(t) &&
791              ((this._mouseStarted = this._mouseStart(t) !== !1),
792              !this._mouseStarted)
793                ? (t.preventDefault(), !0)
794                : (!0 ===
795                    e.data(t.target, this.widgetName + ".preventClickEvent") &&
796                    e.removeData(
797                      t.target,
798                      this.widgetName + ".preventClickEvent"
799                    ),
800                  (this._mouseMoveDelegate = function (e) {
801                    return i._mouseMove(e);
802                  }),
803                  (this._mouseUpDelegate = function (e) {
804                    return i._mouseUp(e);
805                  }),
806                  this.document
807                    .bind(
808                      "mousemove." + this.widgetName,
809                      this._mouseMoveDelegate
810                    )
811                    .bind("mouseup." + this.widgetName, this._mouseUpDelegate),
812                  t.preventDefault(),
813                  (u = !0),
814                  !0))
815            : !0;
816        }
817      },
818      _mouseMove: function (t) {
819        return e.ui.ie &&
820          (!document.documentMode || 9 > document.documentMode) &&
821          !t.button
822          ? this._mouseUp(t)
823          : t.which
824          ? this._mouseStarted
825            ? (this._mouseDrag(t), t.preventDefault())
826            : (this._mouseDistanceMet(t) &&
827                this._mouseDelayMet(t) &&
828                ((this._mouseStarted =
829                  this._mouseStart(this._mouseDownEvent, t) !== !1),
830                this._mouseStarted ? this._mouseDrag(t) : this._mouseUp(t)),
831              !this._mouseStarted)
832          : this._mouseUp(t);
833      },
834      _mouseUp: function (t) {
835        return (
836          this.document
837            .unbind("mousemove." + this.widgetName, this._mouseMoveDelegate)
838            .unbind("mouseup." + this.widgetName, this._mouseUpDelegate),
839          this._mouseStarted &&
840            ((this._mouseStarted = !1),
841            t.target === this._mouseDownEvent.target &&
842              e.data(t.target, this.widgetName + ".preventClickEvent", !0),
843            this._mouseStop(t)),
844          (u = !1),
845          !1
846        );
847      },
848      _mouseDistanceMet: function (e) {
849        return (
850          Math.max(
851            Math.abs(this._mouseDownEvent.pageX - e.pageX),
852            Math.abs(this._mouseDownEvent.pageY - e.pageY)
853          ) >= this.options.distance
854        );
855      },
856      _mouseDelayMet: function () {
857        return this.mouseDelayMet;
858      },
859      _mouseStart: function () {},
860      _mouseDrag: function () {},
861      _mouseStop: function () {},
862      _mouseCapture: function () {
863        return !0;
864      },
865    }),
866    (function () {
867      function t(e, t, i) {
868        return [
869          parseFloat(e[0]) * (p.test(e[0]) ? t / 100 : 1),
870          parseFloat(e[1]) * (p.test(e[1]) ? i / 100 : 1),
871        ];
872      }
873      function i(t, i) {
874        return parseInt(e.css(t, i), 10) || 0;
875      }
876      fu
876nction s(t) {
877        var i = t[0];
878        return 9 === i.nodeType
879          ? {
880              width: t.width(),
881              height: t.height(),
882              offset: { top: 0, left: 0 },
883            }
884          : e.isWindow(i)
885          ? {
886              width: t.width(),
887              height: t.height(),
888              offset: { top: t.scrollTop(), left: t.scrollLeft() },
889            }
890          : i.preventDefault
891          ? { width: 0, height: 0, offset: { top: i.pageY, left: i.pageX } }
892          : {
893              width: t.outerWidth(),
894              height: t.outerHeight(),
895              offset: t.offset(),
896            };
897      }
898      e.ui = e.ui || {};
899      var n,
900        a,
901        o = Math.max,
902        r = Math.abs,
903        h = Math.round,
904        l = /left|center|right/,
905        u = /top|center|bottom/,
906        d = /[\+\-]\d+(\.[\d]+)?%?/,
907        c = /^\w+/,
908        p = /%$/,
909        f = e.fn.position;
910      (e.position = {
911        scrollbarWidth: function () {
912          if (void 0 !== n) return n;
913          var t,
914            i,
915            s = e(
916              "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"
917            ),
918            a = s.children()[0];
919          return (
920            e("body").append(s),
921            (t = a.offsetWidth),
922            s.css("overflow", "scroll"),
923            (i = a.offsetWidth),
924            t === i && (i = s[0].clientWidth),
925            s.remove(),
926            (n = t - i)
927          );
928        },
929        getScrollInfo: function (t) {
930          var i = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x"),
931            s = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y"),
932            n =
933              "scroll" === i ||
934              ("auto" === i && t.width < t.element[0].scrollWidth),
935            a =
936              "scroll" === s ||
937              ("auto" === s && t.height < t.element[0].scrollHeight);
938          return {
939            width: a ? e.position.scrollbarWidth() : 0,
940            height: n ? e.position.scrollbarWidth() : 0,
941          };
942        },
943        getWithinInfo: function (t) {
944          var i = e(t || window),
945            s = e.isWindow(i[0]),
946            n = !!i[0] && 9 === i[0].nodeType;
947          return {
948            element: i,
949            isWindow: s,
950            isDocument: n,
951            offset: i.offset() || { left: 0, top: 0 },
952            scrollLeft: i.scrollLeft(),
953            scrollTop: i.scrollTop(),
954            width: s ? i.width() : i.outerWidth(),
955            height: s ? i.height() : i.outerHeight(),
956          };
957        },
958      }),
959        (e.fn.position = function (n) {
960          if (!n || !n.of) return f.apply(this, arguments);
961          n = e.extend({}, n);
962          var p,
963            m,
964            g,
965            v,
966            y,
967            b,
968            _ = e(n.of),
969            x = e.position.getWithinInfo(n.within),
970            w = e.position.getScrollInfo(x),
971            k = (n.collision || "flip").split(" "),
972            T = {};
973          return (
974            (b = s(_)),
975            _[0].preventDefault && (n.at = "left top"),
976            (m = b.width),
977            (g = b.height),
978            (v = b.offset),
979            (y = e.extend({}, v)),
980            e.each(["my", "at"], function () {
981              var e,
982                t,
983                i = (n[this] || "").split(" ");
984              1 === i.length &&
985                (i = l.test(i[0])
986                  ? i.concat(["center"])
987                  : u.test(i[0])
988                  ? ["center"].concat(i)
989                  : ["center", "center"]),
990                (i[0] = l.test(i[0]) ? i[0] : "center"),
991                (i[1] = u.test(i[1]) ? i[1] : "center"),
992                (e = d.exec(i[0])),
993                (t = d.exec(i[1])),
994                (T[this] = [e ? e[0] : 0, t ? t[0] : 0]),
995                (n[this] = [c.exec(i[0])[0], c.exec(i[1])[0]]);
996            }),
997            1 === k.length && (k[1] = k[0]),
998            "right" === n.at[0]
999              ? (y.left += m)
1000              : "center" === n.at[0] && (y.left += m / 2),
1001            "bottom" === n.at[1]
1002              ? (y.top += g)
1003              : "center" === n.at[1] && (y.top += g / 2),
1004            (p = t(T.at, m, g)),
1005            (y.left += p[0]),
1006            (y.top += p[1]),
1007            this.each(function () {
1008              var s,
1009                l,
1010                u = e(this),
1011                d = u.outerWidth(),
1012                c = u.outerHeight(),
1013                f = i(this, "marginLeft"),
1014                b = i(this, "marginTop"),
1015                D = d + f + i(this, "marginRight") + w.width,
1016                S = c + b + i(this, "marginBottom") + w.height,
1017                M = e.extend({}, y),
1018                N = t(T.my, u.outerWidth(), u.outerHeight());
1019              "right" === n.my[0]
1020                ? (M.left -= d)
1021                : "center" === n.my[0] && (M.left -= d / 2),
1022                "bottom" === n.my[1]
1023                  ? (M.top -= c)
1024                  : "center" === n.my[1] && (M.top -= c / 2),
1025                (M.left += N[0]),
1026                (M.top += N[1]),
1027                a || ((M.left = h(M.left)), (M.top = h(M.top))),
1028                (s = { marginLeft: f, marginTop: b }),
1029                e.each(["left", "top"], function (t, i) {
1030                  e.ui.position[k[t]] &&
1031                    e.ui.position[k[t]][i](M, {
1032                      targetWidth: m,
1033                      targetHeight: g,
1034                      elemWidth: d,
1035                      elemHeight: c,
1036                      collisionPosition: s,
1037                      collisionWidth: D,
1038                      collisionHeight: S,
1039                      offset: [p[0] + N[0], p[1] + N[1]],
1040                      my: n.my,
1041                      at: n.at,
1042                      within: x,
1043                      elem: u,
1044                    });
1045                }),
1046                n.using &&
1047                  (l = function (e) {
1048                    var t = v.left - M.left,
1049                      i = t + m - d,
1050                      s = v.top - M.top,
1051                      a = s + g - c,
1052                      h = {
1053                        target: {
1054                          element: _,
1055                          left: v.left,
1056                          top: v.top,
1057                          width: m,
1058                          height: g,
1059                        },
1060                        element: {
1061                          element: u,
1062                          left: M.left,
1063                          top: M.top,
1064                          width: d,
1065                          height: c,
1066                        },
1067                        horizontal: 0 > i ? "left" : t > 0 ? "right" : "center",
1068                        vertical: 0 > a ? "top" : s > 0 ? "bottom" : "middle",
1069                      };
1070                    d > m && m > r(t + i) && (h.horizontal = "center"),
1071                      c > g && g > r(s + a) && (h.vertical = "middle"),
1072                      (h.important =
1073                        o(r(t), r(i)) > o(r(s), r(a))
1074                          ? "horizontal"
1075                          : "vertical"),
1076                      n.using.call(this, e, h);
1077                  }),
1078                u.offset(e.extend(M, { using: l }));
1079            })
1080          );
1081        }),
1082        (e.ui.position = {
1083          fit: {
1084            left: function (e, t) {
1085              var i,
1086                s = t.within,
1087                n = s.isWindow ? s.scrollLeft : s.offset.left,
1088                a = s.width,
1089                r = e.left - t.collisionPosition.marginLeft,
1090                h = n - r,
1091                l = r + t.collisionWidth - a - n;
1092              t.collisionWidth > a
1093                ? h > 0 && 0 >= l
1094                  ? ((i = e.left + h + t.collisionWidth - a - n),
1095                    (e.left += h - i))
1096                  : (e.left =
1097                      l > 0 && 0 >= h
1098                        ? n
1099                        : h > l
1100                        ? n + a - t.collisionWidth
1101                        : n)
1102                : h > 0
1103                ? (e.left += h)
1104                : l > 0
1105                ? (e.left -= l)
1106                : (e.left = o(e.left - r, e.left));
1107            },
1108            top: function (e, t) {
1109              var i,
1110                s = t.within,
1111                n = s.isWindow ? s.scrollTop : s.offset.top,
1112                a = t.within.height,
1113                r = e.top - t.collisionPosition.marginTop,
1114                h = n - r,
1115                l = r + t.collisionHeight - a - n;
1116              t.collisionHeight > a
1117                ? h > 0 && 0 >= l
1118                  ? ((i = e.top + h + t.collisionHeight - a - n),
1119                    (e.top += h - i))
1120                  : (e.top =
1121                      l > 0 && 0 >= h
1122                        ? n
1123                        : h > l
1124                        ? n + a - t.collisionHeight
1125                        : n)
1126                : h > 0
1127                ? (e.top += h)
1128                : l > 0
1129                ? (e.top -= l)
1130                : (e.top = o(e.top - r, e.top));
1131            },
1132          },
1133          flip: {
1134            left: function (e, t) {
1135              var i,
1136                s,
1137                n = t.within,
1138                a = n.offset.left + n.scrollLeft,
1139                o = n.width,
1140                h = n.isWindow ? n.scrollLeft : n.offset.left,
1141                l = e.left - t.collisionPosition.marginLeft,
1142                u = l - h,
1143                d = l + t.collisionWidth - o - h,
1144                c =
1145                  "left" === t.my[0]
1146                    ? -t.elemWidth
1147                    : "right" === t.my[0]
1148                    ? t.elemWidth
1149                    : 0,
1150                p =
1151                  "left" === t.at[0]
1152                    ? t.targetWidth
1153                    : "right" === t.at[0]
1154                    ? -t.targetWidth
1155                    : 0,
1156                f = -2 * t.offset[0];
1157              0 > u
1158                ? ((i = e.left + c + p + f + t.collisionWidth - o - a),
1159                  (0 > i || r(u) > i) && (e.left += c + p + f))
1160                : d > 0 &&
1161                  ((s =
1162                    e.left - t.collisionPosition.marginLeft + c + p + f - h),
1163                  (s > 0 || d > r(s)) && (e.left += c + p + f));
1164            },
1165            top: function (e, t) {
1166              var i,
1167                s,
1168                n = t.within,
1169                a = n.offset.top + n.scrollTop,
1170                o = n.height,
1171                h = n.isWindow ? n.scrollTop : n.offset.top,
1172                l = e.top - t.collisionPosition.marginTop,
1173                u = l - h,
1174                d = l + t.collisionHeight - o - h,
1175                c = "top" === t.my[1],
1176                p = c ? -t.elemHeight : "bottom" === t.my[1] ? t.elemHeight : 0,
1177                f =
1178                  "top" === t.at[1]
1179                    ? t.targetHeight
1180                    : "bottom" === t.at[1]
1181                    ? -t.targetHeight
1182                    : 0,
1183                m = -2 * t.offset[1];
1184              0 > u
1185                ? ((s = e.top + p + f + m + t.collisionHeight - o - a),
1186                  e.top + p + f + m > u &&
1187                    (0 > s || r(u) > s) &&
1188                    (e.top += p + f + m))
1189                : d > 0 &&
1190                  ((i = e.top - t.collisionPosition.marginTop + p + f + m - h),
1191                  e.top + p + f + m > d &&
1192                    (i > 0 || d > r(i)) &&
1193                    (e.top += p + f + m));
1194            },
1195          },
1196          flipfit: {
1197            left: function () {
1198              e.ui.position.flip.left.apply(this, arguments),
1199                e.ui.position.fit.left.apply(this, arguments);
1200            },
1201            top: function () {
1202              e.ui.position.flip.top.apply(this, arguments),
1203                e.ui.position.fit.top.apply(this, arguments);
1204            },
1205          },
1206        }),
1207        (function () {
1208          var t,
1209            i,
1210            s,
1211            n,
1212            o,
1213            r = document.getElementsByTagName("body")[0],
1214            h = document.createElement("div");
1215          (t = document.createElement(r ? "div" : "body")),
1216            (s = {
1217              visibility: "hidden",
1218              width: 0,
1219              height: 0,
1220              border: 0,
1221              margin: 0,
1222              background: "none",
1223            }),
1224            r &&
1225              e.extend(s, {
1226                position: "absolute",
1227                left: "-1000px",
1228                top: "-1000px",
1229              });
1230          for (o in s) t.style[o] = s[o];
1231          t.appendChild(h),
1232            (i = r || document.documentElement),
1233            i.insertBefore(t, i.firstChild),
1234            (h.style.cssText = "position: absolute; left: 10.7432222px;"),
1235            (n = e(h).offset().left),
1236            (a = n > 10 && 11 > n),
1237            (t.innerHTML = ""),
1238            i.removeChild(t);
1239        })();
1240    })(),
1241    e.ui.position,
1242    e.widget("ui.accordion", {
1243      version: "1.11.0",
1244      options: {
1245        active: 0,
1246        animate: {},
1247        collapsible: !1,
1248        event: "click",
1249        header: "> li > :first-child,> :not(li):even",
1250        heightStyle: "auto",
1251        icons: {
1252          activeHeader: "ui-icon-triangle-1-s",
1253          header: "ui-icon-triangle-1-e",
1254        },
1255        activate: null,
1256        beforeActivate: null,
1257      },
1258      hideProps: {
1259        borderTopWidth: "hide",
1260        borderBottomWidth: "hide",
1261        paddingTop: "hide",
1262        paddingBottom: "hide",
1263        height: "hide",
1264      },
1265      showProps: {
1266        borderTopWidth: "show",
1267        borderBottomWidth: "show",
1268        paddingTop: "show",
1269        paddingBottom: "show",
1270        height: "show",
1271      },
1272      _create: function () {
1273        var t = this.options;
1274        (this.prevShow = this.prevHide = e()),
1275          this.element
1276            .addClass("ui-accordion ui-widget ui-helper-reset")
1277            .attr("role", "tablist"),
1278          t.collapsible ||
1279            (t.active !== !1 && null != t.active) ||
1280            (t.active = 0),
1281          this._processPanels(),
1282          0 > t.active && (t.active += this.headers.length),
1283          this._refresh();
1284      },
1285      _getCreateEventData: function () {
1286        return {
1287          header: this.active,
1288          panel: this.active.length ? this.active.next() : e(),
1289        };
1290      },
1291      _createIcons: function () {
1292        var t = this.options.icons;
1293        t &&
1294          (e("<span>")
1295            .addClass("ui-accordion-header-icon ui-icon " + t.header)
1296            .prependTo(this.headers),
1297          this.active
1298            .children(".ui-accordion-header-icon")
1299            .removeClass(t.header)
1300            .addClass(t.activeHeader),
1301          this.headers.addClass("ui-accordion-icons"));
1302      },
1303      _destroyIcons: function () {
1304        this.headers
1305          .removeClass("ui-accordion-icons")
1306          .children(".ui-accordion-header-icon")
1307          .remove();
1308      },
1309      _destroy: function () {
1310        var e;
1311        this.element
1312          .removeClass("ui-accordion ui-widget ui-helper-reset")
1313          .removeAttr("role"),
1314          this.headers
1315            .removeClass(
1316              "ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top"
1317            )
1318            .removeAttr("role")
1319            .removeAttr("aria-expanded")
1320            .removeAttr("aria-selected")
1321            .removeAttr("aria-controls")
1322            .removeAttr("tabIndex")
1323            .removeUniqueId(),
1324          this._destroyIcons(),
1325          (e = this.headers
1326            .next()
1327            .removeClass(
1328              "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled"
1329            )
1330            .css("display", "")
1331            .removeAttr("role")
1332            .removeAttr("aria-hidden")
1333            .removeAttr("aria-labelledby")
1334            .removeUniqueId()),
1335          "content" !== this.options.heightStyle && e.css("height", "");
1336      },
1337      _setOption: function (e, t) {
1338        return "active" === e
1339          ? (this._activate(t), void 0)
1340          : ("event" === e &&
1341              (this.options.event &&
1342                this._off(this.headers, this.options.event),
1343              this._setupEvents(t)),
1344            this._super(e, t),
1345            "collapsible" !== e ||
1346              t ||
1347              this.options.active !== !1 ||
1348              this._activate(0),
1349            "icons" === e && (this._destroyIcons(), t && this._createIcons()),
1350            "disabled" === e &&
1351              (this.element
1352                .toggleClass("ui-state-disabled", !!t)
1353                .attr("aria-disabled", t),
1354              this.headers
1355                .add(this.headers.next())
1356                .toggleClass("ui-state-disabled", !!t)),
1357            void 0);
1358      },
1359      _keydown: function (t) {
1360        if (!t.altKey && !t.ctrlKey) {
1361          var i = e.ui.keyCode,
1362            s = this.headers.length,
1363            n = this.headers.index(t.target),
1364            a = !1;
1365          switch (t.keyCode) {
1366            case i.RIGHT:
1367            case i.DOWN:
1368              a = this.headers[(n + 1) % s];
1369              break;
1370            case i.LEFT:
1371            case i.UP:
1372              a = this.headers[(n - 1 + s) % s];
1373              break;
1374            case i.SPACE:
1375            case i.ENTER:
1376              this._eventHandler(t);
1377              break;
1378            case i.HOME:
1379              a = this.headers[0];
1380              break;
1381            case i.END:
1382              a = this.headers[s - 1];
1383          }
1384          a &&
1385            (e(t.target).attr("tabIndex", -1),
1386            e(a).attr("tabIndex", 0),
1387            a.focus(),
1388            t.preventDefault());
1389        }
1390      },
1391      _panelKeyDown: function (t) {
1392        t.keyCode === e.ui.keyCode.UP &&
1393          t.ctrlKey &&
1394          e(t.currentTarget).prev().focus();
1395      },
1396      refresh: function () {
1397        var t = this.options;
1398        this._processPanels(),
1399          (t.active === !1 && t.collapsible === !0) || !this.headers.length
1400            ? ((t.active = !1), (this.active = e()))
1401            : t.active === !1
1402            ? this._activate(0)
1403            : this.active.length && !e.contains(this.element[0], this.active[0])
1404            ? this.headers.length ===
1405              this.headers.find(".ui-state-disabled").length
1406              ? ((t.active = !1), (this.active = e()))
1407              : this._activate(Math.max(0, t.active - 1))
1408            : (t.active = this.headers.index(this.active)),
1409          this._destroyIcons(),
1410          this._refresh();
1411      },
1412      _processPanels: function () {
1413        (this.headers = this.element
1414          .find(this.options.header)
1415          .addClass("ui-accordion-header ui-state-default ui-corner-all")),
1416          this.headers
1417            .next()
1418            .addClass(
1419              "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"
1420            )
1421            .filter(":not(.ui-accordion-content-active)")
1422            .hide();
1423      },
1424      _refresh: function () {
1425        var t,
1426          i = this.options,
1427          s = i.heightStyle,
1428          n = this.element.parent();
1429        (this.active = this._findActive(i.active)
1430          .addClass("ui-accordion-header-active ui-state-active ui-corner-top")
1431          .removeClass("ui-corner-all")),
1432          this.active.next().addClass("ui-accordion-content-active").show(),
1433          this.headers
1434            .attr("role", "tab")
1435            .each(function () {
1436              var t = e(this),
1437                i = t.uniqueId().attr("id"),
1438                s = t.next(),
1439                n = s.uniqueId().attr("id");
1440              t.attr("aria-controls", n), s.attr("aria-labelledby", i);
1441            })
1442            .next()
1443            .attr("role", "tabpanel"),
1444          this.headers
1445            .not(this.active)
1446            .attr({
1447              "aria-selected": "false",
1448              "aria-expanded": "false",
1449              tabIndex: -1,
1450            })
1451            .next()
1452            .attr({ "aria-hidden": "true" })
1453            .hide(),
1454          this.active.length
1455            ? this.active
1456                .attr({
1457                  "aria-selected": "true",
1458                  "aria-expanded": "true",
1459                  tabIndex: 0,
1460                })
1461                .next()
1462                .attr({ "aria-hidden": "false" })
1463            : this.headers.eq(0).attr("tabIndex", 0),
1464          this._createIcons(),
1465          this._setupEvents(i.event),
1466          "fill" === s
1467            ? ((t = n.height()),
1468              this.element.siblings(":visible").each(function () {
1469                var i = e(this),
1470                  s = i.css("position");
1471                "absolute" !== s && "fixed" !== s && (t -= i.outerHeight(!0));
1472              }),
1473              this.headers.each(function () {
1474                t -= e(this).outerHeight(!0);
1475              }),
1476              this.headers
1477                .next()
1478                .each(function () {
1479                  e(this).height(
1480                    Math.max(0, t - e(this).innerHeight() + e(this).height())
1481                  );
1482                })
1483                .css("overflow", "auto"))
1484            : "auto" === s &&
1485              ((t = 0),
1486              this.headers
1487                .next()
1488                .each(function () {
1489                  t = Math.max(t, e(this).css("height", "").height());
1490                })
1491                .height(t));
1492      },
1493      _activate: function (t) {
1494        var i = this._findActive(t)[0];
1495        i !== this.active[0] &&
1496          ((i = i || this.active[0]),
1497          this._eventHandler({
1498            target: i,
1499            currentTarget: i,
1500            preventDefault: e.noop,
1501          }));
1502      },
1503      _findActive: function (t) {
1504        return "number" == typeof t ? this.headers.eq(t) : e();
1505      },
1506      _setupEvents: function (t) {
1507        var i = { keydown: "_keydown" };
1508        t &&
1509          e.each(t.split(" "), function (e, t) {
1510            i[t] = "_eventHandler";
1511          }),
1512          this._off(this.headers.add(this.headers.next())),
1513          this._on(this.headers, i),
1514          this._on(this.headers.next(), { keydown: "_panelKeyDown" }),
1515          this._hoverable(this.headers),
1516          this._focusable(this.headers);
1517      },
1518      _eventHandler: function (t) {
1519        var i = this.options,
1520          s = this.active,
1521          n = e(t.currentTarget),
1522          a = n[0] === s[0],
1523          o = a && i.collapsible,
1524          r = o ? e() : n.next(),
1525          h = s.next(),
1526          l = {
1527            oldHeader: s,
1528            oldPanel: h,
1529            newHeader: o ? e() : n,
1530            newPanel: r,
1531          };
1532        t.preventDefault(),
1533          (a && !i.collapsible) ||
1534            this._trigger("beforeActivate", t, l) === !1 ||
1535            ((i.active = o ? !1 : this.headers.index(n)),
1536            (this.active = a ? e() : n),
1537            this._toggle(l),
1538            s.removeClass("ui-accordion-header-active ui-state-active"),
1539            i.icons &&
1540              s
1541                .children(".ui-accordion-header-icon")
1542                .removeClass(i.icons.activeHeader)
1543                .addClass(i.icons.header),
1544            a ||
1545              (n
1546                .removeClass("ui-corner-all")
1547                .addClass(
1548                  "ui-accordion-header-active ui-state-active ui-corner-top"
1549                ),
1550              i.icons &&
1551                n
1552                  .children(".ui-accordion-header-icon")
1553                  .removeClass(i.icons.header)
1554                  .addClass(i.icons.activeHeader),
1555              n.next().addClass("ui-accordion-content-active")));
1556      },
1557      _toggle: function (t) {
1558        var i = t.newPanel,
1559          s = this.prevShow.length ? this.prevShow : t.oldPanel;
1560        this.prevShow.add(this.prevHide).stop(!0, !0),
1561          (this.prevShow = i),
1562          (this.prevHide = s),
1563          this.options.animate
1564            ? this._animate(i, s, t)
1565            : (s.hide(), i.show(), this._toggleComplete(t)),
1566          s.attr({ "aria-hidden": "true" }),
1567          s.prev().attr("aria-selected", "false"),
1568          i.length && s.length
1569            ? s.prev().attr({ tabIndex: -1, "aria-expanded": "false" })
1570            : i.length &&
1571              this.headers
1572                .filter(function () {
1573                  return 0 === e(this).attr("tabIndex");
1574                })
1575                .attr("tabIndex", -1),
1576          i.attr("aria-hidden", "false").prev().attr({
1577            "aria-selected": "true",
1578            tabIndex: 0,
1579            "aria-expanded": "true",
1580          });
1581      },
1582      _animate: function (e, t, i) {
1583        var s,
1584          n,
1585          a,
1586          o = this,
1587          r = 0,
1588          h = e.length && (!t.length || e.index() < t.index()),
1589          l = this.options.animate || {},
1590          u = (h && l.down) || l,
1591          d = function () {
1592            o._toggleComplete(i);
1593          };
1594        return (
1595          "number" == typeof u && (a = u),
1596          "string" == typeof u && (n = u),
1597          (n = n || u.easing || l.easing),
1598          (a = a || u.duration || l.duration),
1599          t.length
1600            ? e.length
1601              ? ((s = e.show().outerHeight()),
1602                t.animate(this.hideProps, {
1603                  duration: a,
1604                  easing: n,
1605                  step: function (e, t) {
1606                    t.now = Math.round(e);
1607                  },
1608                }),
1609                e.hide().animate(this.showProps, {
1610                  duration: a,
1611                  easing: n,
1612                  complete: d,
1613                  step: function (e, i) {
1614                    (i.now = Math.round(e)),
1615                      "height" !== i.prop
1616                        ? (r += i.now)
1617                        : "content" !== o.options.heightStyle &&
1618                          ((i.now = Math.round(s - t.outerHeight() - r)),
1619                          (r = 0));
1620                  },
1621                }),
1622                void 0)
1623              : t.animate(this.hideProps, a, n, d)
1624            : e.animate(this.showProps, a, n, d)
1625        );
1626      },
1627      _toggleComplete: function (e) {
1628        var t = e.oldPanel;
1629        t
1630          .removeClass("ui-accordion-content-active")
1631          .prev()
1632          .removeClass("ui-corner-top")
1633          .addClass("ui-corner-all"),
1634          t.length && (t.parent()[0].className = t.parent()[0].className),
1635          this._trigger("activate", null, e);
1636      },
1637    }),
1638    e.widget("ui.menu", {
1639      version: "1.11.0",
1640      defaultElement: "<ul>",
1641      delay: 300,
1642      options: {
1643        icons: { submenu: "ui-icon-carat-1-e" },
1644        items: "> *",
1645        menus: "ul",
1646        position: { my: "left-1 top", at: "right top" },
1647        role: "menu",
1648        blur: null,
1649        focus: null,
1650        select: null,
1651      },
1652      _create: function () {
1653        (this.activeMenu = this.element),
1654          (this.mouseHandled = !1),
1655          this.element
1656            .uniqueId()
1657            .addClass("ui-menu ui-widget ui-widget-content")
1658            .toggleClass(
1659              "ui-menu-icons",
1660              !!this.element.find(".ui-icon").length
1661            )
1662            .attr({ role: this.options.role, tabIndex: 0 }),
1663          this.options.disabled &&
1664            this.element
1665              .addClass("ui-state-disabled")
1666              .attr("aria-disabled", "true"),
1667          this._on({
1668            "mousedown .ui-menu-item": function (e) {
1669              e.preventDefault();
1670            },
1671            "click .ui-menu-item": function (t) {
1672              var i = e(t.target);
1673              !this.mouseHandled &&
1674                i.not(".ui-state-disabled").length &&
1675                (this.select(t),
1676                t.isPropagationStopped() || (this.mouseHandled = !0),
1677                i.has(".ui-menu").length
1678                  ? this.expand(t)
1679                  : !this.element.is(":focus") &&
1680                    e(this.document[0].activeElement).closest(".ui-menu")
1681                      .length &&
1682                    (this.element.trigger("focus", [!0]),
1683                    this.active &&
1684                      1 === this.active.parents(".ui-menu").length &&
1685                      clearTimeout(this.timer)));
1686            },
1687            "mouseenter .ui-menu-item": function (t) {
1688              var i = e(t.currentTarget);
1689              i.siblings(".ui-state-active").removeClass("ui-state-active"),
1690                this.focus(t, i);
1691            },
1692            mouseleave: "collapseAll",
1693            "mouseleave .ui-menu": "collapseAll",
1694            focus: function (e, t) {
1695              var i =
1696                this.active || this.element.find(this.options.items).eq(0);
1697              t || this.focus(e, i);
1698            },
1699            blur: function (t) {
1700              this._delay(function () {
1701                e.contains(this.element[0], this.document[0].activeElement) ||
1702                  this.collapseAll(t);
1703              });
1704            },
1705            keydown: "_keydown",
1706          }),
1707          this.refresh(),
1708          this._on(this.document, {
1709            click: function (e) {
1710              this._closeOnDocumentClick(e) && this.collapseAll(e),
1711                (this.mouseHandled = !1);
1712            },
1713          });
1714      },
1715      _destroy: function () {
1716        this.element
1717          .removeAttr("aria-activedescendant")
1718          .find(".ui-menu")
1719          .addBack()
1720          .removeClass(
1721            "ui-menu ui-widget ui-widget-content ui-menu-icons ui-front"
1722          )
1723          .removeAttr("role")
1724          .removeAttr("tabIndex")
1725          .removeAttr("aria-labelledby")
1726          .removeAttr("aria-expanded")
1727          .removeAttr("aria-hidden")
1728          .removeAttr("aria-disabled")
1729          .removeUniqueId()
1730          .show(),
1731          this.element
1732            .find(".ui-menu-item")
1733            .removeClass("ui-menu-ite
1733m")
1734            .removeAttr("role")
1735            .removeAttr("aria-disabled")
1736            .removeUniqueId()
1737            .removeClass("ui-state-hover")
1738            .removeAttr("tabIndex")
1739            .removeAttr("role")
1740            .removeAttr("aria-haspopup")
1741            .children()
1742            .each(function () {
1743              var t = e(this);
1744              t.data("ui-menu-submenu-carat") && t.remove();
1745            }),
1746          this.element
1747            .find(".ui-menu-divider")
1748            .removeClass("ui-menu-divider ui-widget-content");
1749      },
1750      _keydown: function (t) {
1751        function i(e) {
1752          return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
1753        }
1754        var s,
1755          n,
1756          a,
1757          o,
1758          r,
1759          h = !0;
1760        switch (t.keyCode) {
1761          case e.ui.keyCode.PAGE_UP:
1762            this.previousPage(t);
1763            break;
1764          case e.ui.keyCode.PAGE_DOWN:
1765            this.nextPage(t);
1766            break;
1767          case e.ui.keyCode.HOME:
1768            this._move("first", "first", t);
1769            break;
1770          case e.ui.keyCode.END:
1771            this._move("last", "last", t);
1772            break;
1773          case e.ui.keyCode.UP:
1774            this.previous(t);
1775            break;
1776          case e.ui.keyCode.DOWN:
1777            this.next(t);
1778            break;
1779          case e.ui.keyCode.LEFT:
1780            this.collapse(t);
1781            break;
1782          case e.ui.keyCode.RIGHT:
1783            this.active &&
1784              !this.active.is(".ui-state-disabled") &&
1785              this.expand(t);
1786            break;
1787          case e.ui.keyCode.ENTER:
1788          case e.ui.keyCode.SPACE:
1789            this._activate(t);
1790            break;
1791          case e.ui.keyCode.ESCAPE:
1792            this.collapse(t);
1793            break;
1794          default:
1795            (h = !1),
1796              (n = this.previousFilter || ""),
1797              (a = String.fromCharCode(t.keyCode)),
1798              (o = !1),
1799              clearTimeout(this.filterTimer),
1800              a === n ? (o = !0) : (a = n + a),
1801              (r = RegExp("^" + i(a), "i")),
1802              (s = this.activeMenu.find(this.options.items).filter(function () {
1803                return r.test(e(this).text());
1804              })),
1805              (s =
1806                o && -1 !== s.index(this.active.next())
1807                  ? this.active.nextAll(".ui-menu-item")
1808                  : s),
1809              s.length ||
1810                ((a = String.fromCharCode(t.keyCode)),
1811                (r = RegExp("^" + i(a), "i")),
1812                (s = this.activeMenu
1813                  .find(this.options.items)
1814                  .filter(function () {
1815                    return r.test(e(this).text());
1816                  }))),
1817              s.length
1818                ? (this.focus(t, s),
1819                  s.length > 1
1820                    ? ((this.previousFilter = a),
1821                      (this.filterTimer = this._delay(function () {
1822                        delete this.previousFilter;
1823                      }, 1e3)))
1824                    : delete this.previousFilter)
1825                : delete this.previousFilter;
1826        }
1827        h && t.preventDefault();
1828      },
1829      _activate: function (e) {
1830        this.active.is(".ui-state-disabled") ||
1831          (this.active.is("[aria-haspopup='true']")
1832            ? this.expand(e)
1833            : this.select(e));
1834      },
1835      refresh: function () {
1836        var t,
1837          i,
1838          s = this,
1839          n = this.options.icons.submenu,
1840          a = this.element.find(this.options.menus);
1841        this.element.toggleClass(
1842          "ui-menu-icons",
1843          !!this.element.find(".ui-icon").length
1844        ),
1845          a
1846            .filter(":not(.ui-menu)")
1847            .addClass("ui-menu ui-widget ui-widget-content ui-front")
1848            .hide()
1849            .attr({
1850              role: this.options.role,
1851              "aria-hidden": "true",
1852              "aria-expanded": "false",
1853            })
1854            .each(function () {
1855              var t = e(this),
1856                i = t.parent(),
1857                s = e("<span>")
1858                  .addClass("ui-menu-icon ui-icon " + n)
1859                  .data("ui-menu-submenu-carat", !0);
1860              i.attr("aria-haspopup", "true").prepend(s),
1861                t.attr("aria-labelledby", i.attr("id"));
1862            }),
1863          (t = a.add(this.element)),
1864          (i = t.find(this.options.items)),
1865          i.not(".ui-menu-item").each(function () {
1866            var t = e(this);
1867            s._isDivider(t) && t.addClass("ui-widget-content ui-menu-divider");
1868          }),
1869          i
1870            .not(".ui-menu-item, .ui-menu-divider")
1871            .addClass("ui-menu-item")
1872            .uniqueId()
1873            .attr({ tabIndex: -1, role: this._itemRole() }),
1874          i.filter(".ui-state-disabled").attr("aria-disabled", "true"),
1875          this.active &&
1876            !e.contains(this.element[0], this.active[0]) &&
1877            this.blur();
1878      },
1879      _itemRole: function () {
1880        return { menu: "menuitem", listbox: "option" }[this.options.role];
1881      },
1882      _setOption: function (e, t) {
1883        "icons" === e &&
1884          this.element
1885            .find(".ui-menu-icon")
1886            .removeClass(this.options.icons.submenu)
1887            .addClass(t.submenu),
1888          "disabled" === e &&
1889            this.element
1890              .toggleClass("ui-state-disabled", !!t)
1891              .attr("aria-disabled", t),
1892          this._super(e, t);
1893      },
1894      focus: function (e, t) {
1895        var i, s;
1896        this.blur(e, e && "focus" === e.type),
1897          this._scrollIntoView(t),
1898          (this.active = t.first()),
1899          (s = this.active
1900            .addClass("ui-state-focus")
1901            .removeClass("ui-state-active")),
1902          this.options.role &&
1903            this.element.attr("aria-activedescendant", s.attr("id")),
1904          this.active
1905            .parent()
1906            .closest(".ui-menu-item")
1907            .addClass("ui-state-active"),
1908          e && "keydown" === e.type
1909            ? this._close()
1910            : (this.timer = this._delay(function () {
1911                this._close();
1912              }, this.delay)),
1913          (i = t.children(".ui-menu")),
1914          i.length && e && /^mouse/.test(e.type) && this._startOpening(i),
1915          (this.activeMenu = t.parent()),
1916          this._trigger("focus", e, { item: t });
1917      },
1918      _scrollIntoView: function (t) {
1919        var i, s, n, a, o, r;
1920        this._hasScroll() &&
1921          ((i = parseFloat(e.css(this.activeMenu[0], "borderTopWidth")) || 0),
1922          (s = parseFloat(e.css(this.activeMenu[0], "paddingTop")) || 0),
1923          (n = t.offset().top - this.activeMenu.offset().top - i - s),
1924          (a = this.activeMenu.scrollTop()),
1925          (o = this.activeMenu.height()),
1926          (r = t.outerHeight()),
1927          0 > n
1928            ? this.activeMenu.scrollTop(a + n)
1929            : n + r > o && this.activeMenu.scrollTop(a + n - o + r));
1930      },
1931      blur: function (e, t) {
1932        t || clearTimeout(this.timer),
1933          this.active &&
1934            (this.active.removeClass("ui-state-focus"),
1935            (this.active = null),
1936            this._trigger("blur", e, { item: this.active }));
1937      },
1938      _startOpening: function (e) {
1939        clearTimeout(this.timer),
1940          "true" === e.attr("aria-hidden") &&
1941            (this.timer = this._delay(function () {
1942              this._close(), this._open(e);
1943            }, this.delay));
1944      },
1945      _open: function (t) {
1946        var i = e.extend({ of: this.active }, this.options.position);
1947        clearTimeout(this.timer),
1948          this.element
1949            .find(".ui-menu")
1950            .not(t.parents(".ui-menu"))
1951            .hide()
1952            .attr("aria-hidden", "true"),
1953          t
1954            .show()
1955            .removeAttr("aria-hidden")
1956            .attr("aria-expanded", "true")
1957            .position(i);
1958      },
1959      collapseAll: function (t, i) {
1960        clearTimeout(this.timer),
1961          (this.timer = this._delay(function () {
1962            var s = i
1963              ? this.element
1964              : e(t && t.target).closest(this.element.find(".ui-menu"));
1965            s.length || (s = this.element),
1966              this._close(s),
1967              this.blur(t),
1968              (this.activeMenu = s);
1969          }, this.delay));
1970      },
1971      _close: function (e) {
1972        e || (e = this.active ? this.active.parent() : this.element),
1973          e
1974            .find(".ui-menu")
1975            .hide()
1976            .attr("aria-hidden", "true")
1977            .attr("aria-expanded", "false")
1978            .end()
1979            .find(".ui-state-active")
1980            .not(".ui-state-focus")
1981            .removeClass("ui-state-active");
1982      },
1983      _closeOnDocumentClick: function (t) {
1984        return !e(t.target).closest(".ui-menu").length;
1985      },
1986      _isDivider: function (e) {
1987        return !/[^\-\u2014\u2013\s]/.test(e.text());
1988      },
1989      collapse: function (e) {
1990        var t =
1991          this.active &&
1992          this.active.parent().closest(".ui-menu-item", this.element);
1993        t && t.length && (this._close(), this.focus(e, t));
1994      },
1995      expand: function (e) {
1996        var t =
1997          this.active &&
1998          this.active.children(".ui-menu ").find(this.options.items).first();
1999        t &&
2000          t.length &&
2001          (this._open(t.parent()),
2002          this._delay(function () {
2003            this.focus(e, t);
2004          }));
2005      },
2006      next: function (e) {
2007        this._move("next", "first", e);
2008      },
2009      previous: function (e) {
2010        this._move("prev", "last", e);
2011      },
2012      isFirstItem: function () {
2013        return this.active && !this.active.prevAll(".ui-menu-item").length;
2014      },
2015      isLastItem: function () {
2016        return this.active && !this.active.nextAll(".ui-menu-item").length;
2017      },
2018      _move: function (e, t, i) {
2019        var s;
2020        this.active &&
2021          (s =
2022            "first" === e || "last" === e
2023              ? this.active["first" === e ? "prevAll" : "nextAll"](
2024                  ".ui-menu-item"
2025                ).eq(-1)
2026              : this.active[e + "All"](".ui-menu-item").eq(0)),
2027          (s && s.length && this.active) ||
2028            (s = this.activeMenu.find(this.options.items)[t]()),
2029          this.focus(i, s);
2030      },
2031      nextPage: function (t) {
2032        var i, s, n;
2033        return this.active
2034          ? (this.isLastItem() ||
2035              (this._hasScroll()
2036                ? ((s = this.active.offset().top),
2037                  (n = this.element.height()),
2038                  this.active.nextAll(".ui-menu-item").each(function () {
2039                    return (i = e(this)), 0 > i.offset().top - s - n;
2040                  }),
2041                  this.focus(t, i))
2042                : this.focus(
2043                    t,
2044                    this.activeMenu
2045                      .find(this.options.items)
2046                      [this.active ? "last" : "first"]()
2047                  )),
2048            void 0)
2049          : (this.next(t), void 0);
2050      },
2051      previousPage: function (t) {
2052        var i, s, n;
2053        return this.active
2054          ? (this.isFirstItem() ||
2055              (this._hasScroll()
2056                ? ((s = this.active.offset().top),
2057                  (n = this.element.height()),
2058                  this.active.prevAll(".ui-menu-item").each(function () {
2059                    return (i = e(this)), i.offset().top - s + n > 0;
2060                  }),
2061                  this.focus(t, i))
2062                : this.focus(
2063                    t,
2064                    this.activeMenu.find(this.options.items).first()
2065                  )),
2066            void 0)
2067          : (this.next(t), void 0);
2068      },
2069      _hasScroll: function () {
2070        return this.element.outerHeight() < this.element.prop("scrollHeight");
2071      },
2072      select: function (t) {
2073        this.active = this.active || e(t.target).closest(".ui-menu-item");
2074        var i = { item: this.active };
2075        this.active.has(".ui-menu").length || this.collapseAll(t, !0),
2076          this._trigger("select", t, i);
2077      },
2078    }),
2079    e.widget("ui.autocomplete", {
2080      version: "1.11.0",
2081      defaultElement: "<input>",
2082      options: {
2083        appendTo: null,
2084        autoFocus: !1,
2085        delay: 300,
2086        minLength: 1,
2087        position: { my: "left top", at: "left bottom", collision: "none" },
2088        source: null,
2089        change: null,
2090        close: null,
2091        focus: null,
2092        open: null,
2093        response: null,
2094        search: null,
2095        select: null,
2096      },
2097      requestIndex: 0,
2098      pending: 0,
2099      _create: function () {
2100        var t,
2101          i,
2102          s,
2103          n = this.element[0].nodeName.toLowerCase(),
2104          a = "textarea" === n,
2105          o = "input" === n;
2106        (this.isMultiLine = a
2107          ? !0
2108          : o
2109          ? !1
2110          : this.element.prop("isContentEditable")),
2111          (this.valueMethod = this.element[a || o ? "val" : "text"]),
2112          (this.isNewMenu = !0),
2113          this.element
2114            .addClass("ui-autocomplete-input")
2115            .attr("autocomplete", "off"),
2116          this._on(this.element, {
2117            keydown: function (n) {
2118              if (this.element.prop("readOnly"))
2119                return (t = !0), (s = !0), (i = !0), void 0;
2120              (t = !1), (s = !1), (i = !1);
2121              var a = e.ui.keyCode;
2122              switch (n.keyCode) {
2123                case a.PAGE_UP:
2124                  (t = !0), this._move("previousPage", n);
2125                  break;
2126                case a.PAGE_DOWN:
2127                  (t = !0), this._move("nextPage", n);
2128                  break;
2129                case a.UP:
2130                  (t = !0), this._keyEvent("previous", n);
2131                  break;
2132                case a.DOWN:
2133                  (t = !0), this._keyEvent("next", n);
2134                  break;
2135                case a.ENTER:
2136                  this.menu.active &&
2137                    ((t = !0), n.preventDefault(), this.menu.select(n));
2138                  break;
2139                case a.TAB:
2140                  this.menu.active && this.menu.select(n);
2141                  break;
2142                case a.ESCAPE:
2143                  this.menu.element.is(":visible") &&
2144                    (this._value(this.term), this.close(n), n.preventDefault());
2145                  break;
2146                default:
2147                  (i = !0), this._searchTimeout(n);
2148              }
2149            },
2150            keypress: function (s) {
2151              if (t)
2152                return (
2153                  (t = !1),
2154                  (!this.isMultiLine || this.menu.element.is(":visible")) &&
2155                    s.preventDefault(),
2156                  void 0
2157                );
2158              if (!i) {
2159                var n = e.ui.keyCode;
2160                switch (s.keyCode) {
2161                  case n.PAGE_UP:
2162                    this._move("previousPage", s);
2163                    break;
2164                  case n.PAGE_DOWN:
2165                    this._move("nextPage", s);
2166                    break;
2167                  case n.UP:
2168                    this._keyEvent("previous", s);
2169                    break;
2170                  case n.DOWN:
2171                    this._keyEvent("next", s);
2172                }
2173              }
2174            },
2175            input: function (e) {
2176              return s
2177                ? ((s = !1), e.preventDefault(), void 0)
2178                : (this._searchTimeout(e), void 0);
2179            },
2180            focus: function () {
2181              (this.selectedItem = null), (this.previous = this._value(
2181));
2182            },
2183            blur: function (e) {
2184              return this.cancelBlur
2185                ? (delete this.cancelBlur, void 0)
2186                : (clearTimeout(this.searching),
2187                  this.close(e),
2188                  this._change(e),
2189                  void 0);
2190            },
2191          }),
2192          this._initSource(),
2193          (this.menu = e("<ul>")
2194            .addClass("ui-autocomplete ui-front")
2195            .appendTo(this._appendTo())
2196            .menu({ role: null })
2197            .hide()
2198            .menu("instance")),
2199          this._on(this.menu.element, {
2200            mousedown: function (t) {
2201              t.preventDefault(),
2202                (this.cancelBlur = !0),
2203                this._delay(function () {
2204                  delete this.cancelBlur;
2205                });
2206              var i = this.menu.element[0];
2207              e(t.target).closest(".ui-menu-item").length ||
2208                this._delay(function () {
2209                  var t = this;
2210                  this.document.one("mousedown", function (s) {
2211                    s.target === t.element[0] ||
2212                      s.target === i ||
2213                      e.contains(i, s.target) ||
2214                      t.close();
2215                  });
2216                });
2217            },
2218            menufocus: function (t, i) {
2219              var s, n;
2220              return this.isNewMenu &&
2221                ((this.isNewMenu = !1),
2222                t.originalEvent && /^mouse/.test(t.originalEvent.type))
2223                ? (this.menu.blur(),
2224                  this.document.one("mousemove", function () {
2225                    e(t.target).trigger(t.originalEvent);
2226                  }),
2227                  void 0)
2228                : ((n = i.item.data("ui-autocomplete-item")),
2229                  !1 !== this._trigger("focus", t, { item: n }) &&
2230                    t.originalEvent &&
2231                    /^key/.test(t.originalEvent.type) &&
2232                    this._value(n.value),
2233                  (s = i.item.attr("aria-label") || n.value),
2234                  s &&
2235                    jQuery.trim(s).length &&
2236                    (this.liveRegion.children().hide(),
2237                    e("<div>").text(s).appendTo(this.liveRegion)),
2238                  void 0);
2239            },
2240            menuselect: function (e, t) {
2241              var i = t.item.data("ui-autocomplete-item"),
2242                s = this.previous;
2243              this.element[0] !== this.document[0].activeElement &&
2244                (this.element.focus(),
2245                (this.previous = s),
2246                this._delay(function () {
2247                  (this.previous = s), (this.selectedItem = i);
2248                })),
2249                !1 !== this._trigger("select", e, { item: i }) &&
2250                  this._value(i.value),
2251                (this.term = this._value()),
2252                this.close(e),
2253                (this.selectedItem = i);
2254            },
2255          }),
2256          (this.liveRegion = e("<span>", {
2257            role: "status",
2258            "aria-live": "assertive",
2259            "aria-relevant": "additions",
2260          })
2261            .addClass("ui-helper-hidden-accessible")
2262            .appendTo(this.document[0].body)),
2263          this._on(this.window, {
2264            beforeunload: function () {
2265              this.element.removeAttr("autocomplete");
2266            },
2267          });
2268      },
2269      _destroy: function () {
2270        clearTimeout(this.searching),
2271          this.element
2272            .removeClass("ui-autocomplete-input")
2273            .removeAttr("autocomplete"),
2274          this.menu.element.remove(),
2275          this.liveRegion.remove();
2276      },
2277      _setOption: function (e, t) {
2278        this._super(e, t),
2279          "source" === e && this._initSource(),
2280          "appendTo" === e && this.menu.element.appendTo(this._appendTo()),
2281          "disabled" === e && t && this.xhr && this.xhr.abort();
2282      },
2283      _appendTo: function () {
2284        var t = this.options.appendTo;
2285        return (
2286          t &&
2287            (t = t.jquery || t.nodeType ? e(t) : this.document.find(t).eq(0)),
2288          (t && t[0]) || (t = this.element.closest(".ui-front")),
2289          t.length || (t = this.document[0].body),
2290          t
2291        );
2292      },
2293      _initSource: function () {
2294        var t,
2295          i,
2296          s = this;
2297        e.isArray(this.options.source)
2298          ? ((t = this.options.source),
2299            (this.source = function (i, s) {
2300              s(e.ui.autocomplete.filter(t, i.term));
2301            }))
2302          : "string" == typeof this.options.source
2303          ? ((i = this.options.source),
2304            (this.source = function (t, n) {
2305              s.xhr && s.xhr.abort(),
2306                (s.xhr = e.ajax({
2307                  url: i,
2308                  data: t,
2309                  dataType: "json",
2310                  success: function (e) {
2311                    n(e);
2312                  },
2313                  error: function () {
2314                    n([]);
2315                  },
2316                }));
2317            }))
2318          : (this.source = this.options.source);
2319      },
2320      _searchTimeout: function (e) {
2321        clearTimeout(this.searching),
2322          (this.searching = this._delay(function () {
2323            var t = this.term === this._value(),
2324              i = this.menu.element.is(":visible"),
2325              s = e.altKey || e.ctrlKey || e.metaKey || e.shiftKey;
2326            (!t || (t && !i && !s)) &&
2327              ((this.selectedItem = null), this.search(null, e));
2328          }, this.options.delay));
2329      },
2330      search: function (e, t) {
2331        return (
2332          (e = null != e ? e : this._value()),
2333          (this.term = this._value()),
2334          e.length < this.options.minLength
2335            ? this.close(t)
2336            : this._trigger("search", t) !== !1
2337            ? this._search(e)
2338            : void 0
2339        );
2340      },
2341      _search: function (e) {
2342        this.pending++,
2343          this.element.addClass("ui-autocomplete-loading"),
2344          (this.cancelSearch = !1),
2345          this.source({ term: e }, this._response());
2346      },
2347      _response: function () {
2348        var t = ++this.requestIndex;
2349        return e.proxy(function (e) {
2350          t === this.requestIndex && this.__response(e),
2351            this.pending--,
2352            this.pending || this.element.removeClass("ui-autocomplete-loading");
2353        }, this);
2354      },
2355      __response: function (e) {
2356        e && (e = this._normalize(e)),
2357          this._trigger("response", null, { content: e }),
2358          !this.options.disabled && e && e.length && !this.cancelSearch
2359            ? (this._suggest(e), this._trigger("open"))
2360            : this._close();
2361      },
2362      close: function (e) {
2363        (this.cancelSearch = !0), this._close(e);
2364      },
2365      _close: function (e) {
2366        this.menu.element.is(":visible") &&
2367          (this.menu.element.hide(),
2368          this.menu.blur(),
2369          (this.isNewMenu = !0),
2370          this._trigger("close", e));
2371      },
2372      _change: function (e) {
2373        this.previous !== this._value() &&
2374          this._trigger("change", e, { item: this.selectedItem });
2375      },
2376      _normalize: function (t) {
2377        return t.length && t[0].label && t[0].value
2378          ? t
2379          : e.map(t, function (t) {
2380              return "string" == typeof t
2381                ? { label: t, value: t }
2382                : e.extend({}, t, {
2383                    label: t.label || t.value,
2384                    value: t.value || t.label,
2385                  });
2386            });
2387      },
2388      _suggest: function (t) {
2389        var i = this.menu.element.empty();
2390        this._renderMenu(i, t),
2391          (this.isNewMenu = !0),
2392          this.menu.refresh(),
2393          i.show(),
2394          this._resizeMenu(),
2395          i.position(e.extend({ of: this.element }, this.options.position)),
2396          this.options.autoFocus && this.menu.next();
2397      },
2398      _resizeMenu: function () {
2399        var e = this.menu.element;
2400        e.outerWidth(
2401          Math.max(e.width("").outerWidth() + 1, this.element.outerWidth())
2402        );
2403      },
2404      _renderMenu: function (t, i) {
2405        var s = this;
2406        e.each(i, function (e, i) {
2407          s._renderItemData(t, i);
2408        });
2409      },
2410      _renderItemData: function (e, t) {
2411        return this._renderItem(e, t).data("ui-autocomplete-item", t);
2412      },
2413      _renderItem: function (t, i) {
2414        return e("<li>").text(i.label).appendTo(t);
2415      },
2416      _move: function (e, t) {
2417        return this.menu.element.is(":visible")
2418          ? (this.menu.isFirstItem() && /^previous/.test(e)) ||
2419            (this.menu.isLastItem() && /^next/.test(e))
2420            ? (this.isMultiLine || this._value(this.term),
2421              this.menu.blur(),
2422              void 0)
2423            : (this.menu[e](t), void 0)
2424          : (this.search(null, t), void 0);
2425      },
2426      widget: function () {
2427        return this.menu.element;
2428      },
2429      _value: function () {
2430        return this.valueMethod.apply(this.element, arguments);
2431      },
2432      _keyEvent: function (e, t) {
2433        (!this.isMultiLine || this.menu.element.is(":visible")) &&
2434          (this._move(e, t), t.preventDefault());
2435      },
2436    }),
2437    e.extend(e.ui.autocomplete, {
2438      escapeRegex: function (e) {
2439        return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
2440      },
2441      filter: function (t, i) {
2442        var s = RegExp(e.ui.autocomplete.escapeRegex(i), "i");
2443        return e.grep(t, function (e) {
2444          return s.test(e.label || e.value || e);
2445        });
2446      },
2447    }),
2448    e.widget("ui.autocomplete", e.ui.autocomplete, {
2449      options: {
2450        messages: {
2451          noResults: "No search results.",
2452          results: function (e) {
2453            return (
2454              e +
2455              (e > 1 ? " results are" : " result is") +
2456              " available, use up and down arrow keys to navigate."
2457            );
2458          },
2459        },
2460      },
2461      __response: function (t) {
2462        var i;
2463        this._superApply(arguments),
2464          this.options.disabled ||
2465            this.cancelSearch ||
2466            ((i =
2467              t && t.length
2468                ? this.options.messages.results(t.length)
2469                : this.options.messages.noResults),
2470            this.liveRegion.children().hide(),
2471            e("<div>").text(i).appendTo(this.liveRegion));
2472      },
2473    }),
2474    e.ui.autocomplete;
2475  var d,
2476    c = "ui-button ui-widget ui-state-default ui-corner-all",
2477    p =
2478      "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
2479    f = function () {
2480      var t = e(this);
2481      setTimeout(function () {
2482        t.find(":ui-button").button("refresh");
2483      }, 1);
2484    },
2485    m = function (t) {
2486      var i = t.name,
2487        s = t.form,
2488        n = e([]);
2489      return (
2490        i &&
2491          ((i = i.replace(/'/g, "\\'")),
2492          (n = s
2493            ? e(s).find("[name='" + i + "'][type=radio]")
2494            : e("[name='" + i + "'][type=radio]", t.ownerDocument).filter(
2495                function () {
2496                  return !this.form;
2497                }
2498              ))),
2499        n
2500      );
2501    };
2502  e.widget("ui.button", {
2503    version: "1.11.0",
2504    defaultElement: "<button>",
2505    options: {
2506      disabled: null,
2507      text: !0,
2508      label: null,
2509      icons: { primary: null, secondary: null },
2510    },
2511    _create: function () {
2512      this.element
2513        .closest("form")
2514        .unbind("reset" + this.eventNamespace)
2515        .bind("reset" + this.eventNamespace, f),
2516        "boolean" != typeof this.options.disabled
2517          ? (this.options.disabled = !!this.element.prop("disabled"))
2518          : this.element.prop("disabled", this.options.disabled),
2519        this._determineButtonType(),
2520        (this.hasTitle = !!this.buttonElement.attr("title"));
2521      var t = this,
2522        i = this.options,
2523        s = "checkbox" === this.type || "radio" === this.type,
2524        n = s ? "" : "ui-state-active";
2525      null === i.label &&
2526        (i.label =
2527          "input" === this.type
2528            ? this.buttonElement.val()
2529            : this.buttonElement.html()),
2530        this._hoverable(this.buttonElement),
2531        this.buttonElement
2532          .addClass(c)
2533          .attr("role", "button")
2534          .bind("mouseenter" + this.eventNamespace, function () {
2535            i.disabled || (this === d && e(this).addClass("ui-state-active"));
2536          })
2537          .bind("mouseleave" + this.eventNamespace, function () {
2538            i.disabled || e(this).removeClass(n);
2539          })
2540          .bind("click" + this.eventNamespace, function (e) {
2541            i.disabled && (e.preventDefault(), e.stopImmediatePropagation());
2542          }),
2543        this._on({
2544          focus: function () {
2545            this.buttonElement.addClass("ui-state-focus");
2546          },
2547          blur: function () {
2548            this.buttonElement.removeClass("ui-state-focus");
2549          },
2550        }),
2551        s &&
2552          this.element.bind("change" + this.eventNamespace, function () {
2553            t.refresh();
2554          }),
2555        "checkbox" === this.type
2556          ? this.buttonElement.bind("click" + this.eventNamespace, function () {
2557              return i.disabled ? !1 : void 0;
2558            })
2559          : "radio" === this.type
2560          ? this.buttonElement.bind("click" + this.eventNamespace, function () {
2561              if (i.disabled) return !1;
2562              e(this).addClass("ui-state-active"),
2563                t.buttonElement.attr("aria-pressed", "true");
2564              var s = t.element[0];
2565              m(s)
2566                .not(s)
2567                .map(function () {
2568                  return e(this).button("widget")[0];
2569                })
2570                .removeClass("ui-state-active")
2571                .attr("aria-pressed", "false");
2572            })
2573          : (this.buttonElement
2574              .bind("mousedown" + this.eventNamespace, function () {
2575                return i.disabled
2576                  ? !1
2577                  : (e(this).addClass("ui-state-active"),
2578                    (d = this),
2579                    t.document.one("mouseup", function () {
2580                      d = null;
2581                    }),
2582                    void 0);
2583              })
2584              .bind("mouseup" + this.eventNamespace, function () {
2585                return i.disabled
2586                  ? !1
2587                  : (e(this).removeClass("ui-state-active"), void 0);
2588              })
2589              .bind("keydown" + this.eventNamespace, function (t) {
2590                return i.disabled
2591                  ? !1
2592                  : ((t.keyCode === e.ui.keyCode.SPACE ||
2593                      t.keyCode === e.ui.keyCode.ENTER) &&
2594                      e(this).addClass("ui-state-active"),
2595                    void 0);
2596              })
2597              .bind(
2598                "keyup" + this.eventNamespace + " blur" + this.eventNamespace,
2599                function () {
2600                  e(this).removeClass("ui-state-active");
2601                }
2602              ),
2603            this.buttonElement.is("a") &&
2604              this.buttonElement.keyup(function (t) {
2605                t.keyCode === e.ui.keyCode.SPACE && e(this).click();
2606              })),
2607        this._setOption("disabled", i.disabled),
2608        this._resetButton();
2609    },
2610    _determineButtonType: function () {
2611      var e, t, i;
2612      (this.type = this.element.is("[type=checkbox]")
2613        ? "checkbox"
2614        : this.element.is("[type=radio]")
2615        ? "radio"
2616        : this.element.is("input")
2617        ? "input"
2618        : "button"),
2619        "checkbox" === this.type || "radio" === this.type
2620          ? ((e = this.element.parents().last()),
2621            (t = "label[for='" + this.element.attr("id") + "']"),
2622            (this.buttonElement = e.find(t)),
2623            this.buttonElement.length ||
2624              ((e = e.length ? e.siblings() : this.element.siblings()),
2625              (this.buttonElement = e.filter(t)),
2626              this.buttonElement.length || (this.buttonElement = e.find(t))),
2627            this.element.addClass("ui-helper-hidden-accessible"),
2628            (i = this.element.is(":checked")),
2629            i && this.buttonElement.addClass("ui-state-active"),
2630            this.buttonElement.prop("aria-pressed", i))
2631          : (this.buttonElement = this.element);
2632    },
2633    widget: function () {
2634      return this.buttonElement;
2635    },
2636    _destroy: function () {
2637      this.element.removeClass("ui-helper-hidden-accessible"),
2638        this.buttonElement
2639          .removeClass(c + " ui-state-active " + p)
2640          .removeAttr("role")
2641          .removeAttr("aria-pressed")
2642          .html(this.buttonElement.find(".ui-button-text").html()),
2643        this.hasTitle || this.buttonElement.removeAttr("title");
2644    },
2645    _setOption: function (e, t) {
2646      return (
2647        this._super(e, t),
2648        "disabled" === e
2649          ? (this.widget().toggleClass("ui-state-disabled", !!t),
2650            this.element.prop("disabled", !!t),
2651            t &&
2652              ("checkbox" === this.type || "radio" === this.type
2653                ? this.buttonElement.removeClass("ui-state-focus")
2654                : this.buttonElement.removeClass(
2655                    "ui-state-focus ui-state-active"
2656                  )),
2657            void 0)
2658          : (this._resetButton(), void 0)
2659      );
2660    },
2661    refresh: function () {
2662      var t = this.element.is("input, button")
2663        ? this.element.is(":disabled")
2664        : this.element.hasClass("ui-button-disabled");
2665      t !== this.options.disabled && this._setOption("disabled", t),
2666        "radio" === this.type
2667          ? m(this.element[0]).each(function () {
2668              e(this).is(":checked")
2669                ? e(this)
2670                    .button("widget")
2671                    .addClass("ui-state-active")
2672                    .attr("aria-pressed", "true")
2673                : e(this)
2674                    .button("widget")
2675                    .removeClass("ui-state-active")
2676                    .attr("aria-pressed", "false");
2677            })
2678          : "checkbox" === this.type &&
2679            (this.element.is(":checked")
2680              ? this.buttonElement
2681                  .addClass("ui-state-active")
2682                  .attr("aria-pressed", "true")
2683              : this.buttonElement
2684                  .removeClass("ui-state-active")
2685                  .attr("aria-pressed", "false"));
2686    },
2687    _resetButton: function () {
2688      if ("input" === this.type)
2689        return (
2690          this.options.label && this.element.val(this.options.label), void 0
2691        );
2692      var t = this.buttonElement.removeClass(p),
2693        i = e("<span></span>", this.document[0])
2694          .addClass("ui-button-text")
2695          .html(this.options.label)
2696          .appendTo(t.empty())
2697          .text(),
2698        s = this.options.icons,
2699        n = s.primary && s.secondary,
2700        a = [];
2701      s.primary || s.secondary
2702        ? (this.options.text &&
2703            a.push(
2704              "ui-button-text-icon" +
2705                (n ? "s" : s.primary ? "-primary" : "-secondary")
2706            ),
2707          s.primary &&
2708            t.prepend(
2709              "<span class='ui-button-icon-primary ui-icon " +
2710                s.primary +
2711                "'></span>"
2712            ),
2713          s.secondary &&
2714            t.append(
2715              "<span class='ui-button-icon-secondary ui-icon " +
2716                s.secondary +
2717                "'></span>"
2718            ),
2719          this.options.text ||
2720            (a.push(n ? "ui-button-icons-only" : "ui-button-icon-only"),
2721            this.hasTitle || t.attr("title", e.trim(i))))
2722        : a.push("ui-button-text-only"),
2723        t.addClass(a.join(" "));
2724    },
2725  }),
2726    e.widget("ui.buttonset", {
2727      version: "1.11.0",
2728      options: {
2729        items:
2730          "button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)",
2731      },
2732      _create: function () {
2733        this.element.addClass("ui-buttonset");
2734      },
2735      _init: function () {
2736        this.refresh();
2737      },
2738      _setOption: function (e, t) {
2739        "disabled" === e && this.buttons.button("option", e, t),
2740          this._super(e, t);
2741      },
2742      refresh: function () {
2743        var t = "rtl" === this.element.css("direction"),
2744          i = this.element.find(this.options.items),
2745          s = i.filter(":ui-button");
2746        i.not(":ui-button").button(),
2747          s.button("refresh"),
2748          (this.buttons = i
2749            .map(function () {
2750              return e(this).button("widget")[0];
2751            })
2752            .removeClass("ui-corner-all ui-corner-left ui-corner-right")
2753            .filter(":first")
2754            .addClass(t ? "ui-corner-right" : "ui-corner-left")
2755            .end()
2756            .filter(":last")
2757            .addClass(t ? "ui-corner-left" : "ui-corner-right")
2758            .end()
2759            .end());
2760      },
2761      _destroy: function () {
2762        this.element.removeClass("ui-buttonset"),
2763          this.buttons
2764            .map(function () {
2765              return e(this).button("widget")[0];
2766            })
2767            .removeClass("ui-corner-left ui-corner-right")
2768            .end()
2769            .button("destroy");
2770      },
2771    }),
2772    e.ui.button,
2773    e.extend(e.ui, { datepicker: { version: "1.11.0" } });
2774  var g;
2775  e.extend(n.prototype, {
2776    markerClassName: "hasDatepicker",
2777    maxRows: 4,
2778    _widgetDatepicker: function () {
2779      return this.dpDiv;
2780    },
2781    setDefaults: function (e) {
2782      return o(this._defaults, e || {}), this;
2783    },
2784    _attachDatepicker: function (t, i) {
2785      var s, n, a;
2786      (s = t.nodeName.toLowerCase()),
2787        (n = "div" === s || "span" === s),
2788        t.id || ((this.uuid += 1), (t.id = "dp" + this.uuid)),
2789        (a = this._newInst(e(t), n)),
2790        (a.settings = e.extend({}, i || {})),
2791        "input" === s
2792          ? this._connectDatepicker(t, a)
2793          : n && this._inlineDatepicker(t, a);
2794    },
2795    _newInst: function (t, i) {
2796      var s = t[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1");
2797      return {
2798        id: s,
2799        input: t,
2800        selectedDay: 0,
2801        selectedMonth: 0,
2802        selectedYear: 0,
2803        drawMonth: 0,
2804        drawYear: 0,
2805        inline: i,
2806        dpDiv: i
2807          ? a(
2808              e(
2809                "<div class='" +
2810                  this._inlineClass +
2811                  " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"
2812              )
2813            )
2814          : this.dpDiv,
2815      };
2816    },
2817    _connectDatepicker: function (t, i) {
2818      var s = e(t);
2819      (i.append = e([])),
2820        (i.trigger = e([])),
2821        s.hasClass(this.markerClassName) ||
2822          (this._attachments(s, i),
2823          s
2824            .addClass(this.markerClassName)
2825            .keydown(this._doKeyDown)
2826            .keypress(this._doKeyPress)
2827            .keyup(this._doKeyUp),
2828          this._autoSize(i),
2829          e.data(t, "datepicker", i),
2830          i.settings.disabled && this._disableDatepicker(t));
2831    },
2832    _attachments: function (t, i) {
2833      var s,
2834        n,
2835        a,
2836        o = this._get(i, "appendText"),
2837        r = this._get(i, "isRTL");
2838      i.append && i.append.remove(),
2839        o &&
2840          ((i.append = e(
2841            "<span class='" + this._appendClass + "'>" + o + "</span>"
2842          )),
2843          t[r ? "before" : "after"](i.append)),
2844        t.unbind("focus", this._showDatepicker),
2845        i.trigger && i.trigger.remove(),
2846        (s = this._get(i, "showOn")),
2847        ("focus" === s || "both" === s) && t.focus(this._showDatepicker),
2848        ("button" === s || "both" === s) &&
2849          ((n = this._get(i, "buttonText")),
2850          (a = this._get(i, "buttonImage")),
2851          (i.trigger = e(
2852            this._get(i, "buttonImageOnly")
2853              ? e("<img/>")
2854                  .addClass(this._triggerClass)
2855                  .attr({ src: a, alt: n, title: n })
2856              : e("<button type='button'></button>")
2857                  .addClass(this._triggerClass)
2858                  .html(a ? e("<img/>").attr({ src: a, alt: n, title: n }
2858) : n)
2859          )),
2860          t[r ? "before" : "after"](i.trigger),
2861          i.trigger.click(function () {
2862            return (
2863              e.datepicker._datepickerShowing &&
2864              e.datepicker._lastInput === t[0]
2865                ? e.datepicker._hideDatepicker()
2866                : e.datepicker._datepickerShowing &&
2867                  e.datepicker._lastInput !== t[0]
2868                ? (e.datepicker._hideDatepicker(),
2869                  e.datepicker._showDatepicker(t[0]))
2870                : e.datepicker._showDatepicker(t[0]),
2871              !1
2872            );
2873          }));
2874    },
2875    _autoSize: function (e) {
2876      if (this._get(e, "autoSize") && !e.inline) {
2877        var t,
2878          i,
2879          s,
2880          n,
2881          a = new Date(2009, 11, 20),
2882          o = this._get(e, "dateFormat");
2883        o.match(/[DM]/) &&
2884          ((t = function (e) {
2885            for (i = 0, s = 0, n = 0; e.length > n; n++)
2886              e[n].length > i && ((i = e[n].length), (s = n));
2887            return s;
2888          }),
2889          a.setMonth(
2890            t(this._get(e, o.match(/MM/) ? "monthNames" : "monthNamesShort"))
2891          ),
2892          a.setDate(
2893            t(this._get(e, o.match(/DD/) ? "dayNames" : "dayNamesShort")) +
2894              20 -
2895              a.getDay()
2896          )),
2897          e.input.attr("size", this._formatDate(e, a).length);
2898      }
2899    },
2900    _inlineDatepicker: function (t, i) {
2901      var s = e(t);
2902      s.hasClass(this.markerClassName) ||
2903        (s.addClass(this.markerClassName).append(i.dpDiv),
2904        e.data(t, "datepicker", i),
2905        this._setDate(i, this._getDefaultDate(i), !0),
2906        this._updateDatepicker(i),
2907        this._updateAlternate(i),
2908        i.settings.disabled && this._disableDatepicker(t),
2909        i.dpDiv.css("display", "block"));
2910    },
2911    _dialogDatepicker: function (t, i, s, n, a) {
2912      var r,
2913        h,
2914        l,
2915        u,
2916        d,
2917        c = this._dialogInst;
2918      return (
2919        c ||
2920          ((this.uuid += 1),
2921          (r = "dp" + this.uuid),
2922          (this._dialogInput = e(
2923            "<input type='text' id='" +
2924              r +
2925              "' style='position: absolute; top: -100px; width: 0px;'/>"
2926          )),
2927          this._dialogInput.keydown(this._doKeyDown),
2928          e("body").append(this._dialogInput),
2929          (c = this._dialogInst = this._newInst(this._dialogInput, !1)),
2930          (c.settings = {}),
2931          e.data(this._dialogInput[0], "datepicker", c)),
2932        o(c.settings, n || {}),
2933        (i = i && i.constructor === Date ? this._formatDate(c, i) : i),
2934        this._dialogInput.val(i),
2935        (this._pos = a ? (a.length ? a : [a.pageX, a.pageY]) : null),
2936        this._pos ||
2937          ((h = document.documentElement.clientWidth),
2938          (l = document.documentElement.clientHeight),
2939          (u = document.documentElement.scrollLeft || document.body.scrollLeft),
2940          (d = document.documentElement.scrollTop || document.body.scrollTop),
2941          (this._pos = [h / 2 - 100 + u, l / 2 - 150 + d])),
2942        this._dialogInput
2943          .css("left", this._pos[0] + 20 + "px")
2944          .css("top", this._pos[1] + "px"),
2945        (c.settings.onSelect = s),
2946        (this._inDialog = !0),
2947        this.dpDiv.addClass(this._dialogClass),
2948        this._showDatepicker(this._dialogInput[0]),
2949        e.blockUI && e.blockUI(this.dpDiv),
2950        e.data(this._dialogInput[0], "datepicker", c),
2951        this
2952      );
2953    },
2954    _destroyDatepicker: function (t) {
2955      var i,
2956        s = e(t),
2957        n = e.data(t, "datepicker");
2958      s.hasClass(this.markerClassName) &&
2959        ((i = t.nodeName.toLowerCase()),
2960        e.removeData(t, "datepicker"),
2961        "input" === i
2962          ? (n.append.remove(),
2963            n.trigger.remove(),
2964            s
2965              .removeClass(this.markerClassName)
2966              .unbind("focus", this._showDatepicker)
2967              .unbind("keydown", this._doKeyDown)
2968              .unbind("keypress", this._doKeyPress)
2969              .unbind("keyup", this._doKeyUp))
2970          : ("div" === i || "span" === i) &&
2971            s.removeClass(this.markerClassName).empty());
2972    },
2973    _enableDatepicker: function (t) {
2974      var i,
2975        s,
2976        n = e(t),
2977        a = e.data(t, "datepicker");
2978      n.hasClass(this.markerClassName) &&
2979        ((i = t.nodeName.toLowerCase()),
2980        "input" === i
2981          ? ((t.disabled = !1),
2982            a.trigger
2983              .filter("button")
2984              .each(function () {
2985                this.disabled = !1;
2986              })
2987              .end()
2988              .filter("img")
2989              .css({ opacity: "1.0", cursor: "" }))
2990          : ("div" === i || "span" === i) &&
2991            ((s = n.children("." + this._inlineClass)),
2992            s.children().removeClass("ui-state-disabled"),
2993            s
2994              .find("select.ui-datepicker-month, select.ui-datepicker-year")
2995              .prop("disabled", !1)),
2996        (this._disabledInputs = e.map(this._disabledInputs, function (e) {
2997          return e === t ? null : e;
2998        })));
2999    },
3000    _disableDatepicker: function (t) {
3001      var i,
3002        s,
3003        n = e(t),
3004        a = e.data(t, "datepicker");
3005      n.hasClass(this.markerClassName) &&
3006        ((i = t.nodeName.toLowerCase()),
3007        "input" === i
3008          ? ((t.disabled = !0),
3009            a.trigger
3010              .filter("button")
3011              .each(function () {
3012                this.disabled = !0;
3013              })
3014              .end()
3015              .filter("img")
3016              .css({ opacity: "0.5", cursor: "default" }))
3017          : ("div" === i || "span" === i) &&
3018            ((s = n.children("." + this._inlineClass)),
3019            s.children().addClass("ui-state-disabled"),
3020            s
3021              .find("select.ui-datepicker-month, select.ui-datepicker-year")
3022              .prop("disabled", !0)),
3023        (this._disabledInputs = e.map(this._disabledInputs, function (e) {
3024          return e === t ? null : e;
3025        })),
3026        (this._disabledInputs[this._disabledInputs.length] = t));
3027    },
3028    _isDisabledDatepicker: function (e) {
3029      if (!e) return !1;
3030      for (var t = 0; this._disabledInputs.length > t; t++)
3031        if (this._disabledInputs[t] === e) return !0;
3032      return !1;
3033    },
3034    _getInst: function (t) {
3035      try {
3036        return e.data(t, "datepicker");
3037      } catch (i) {
3038        throw "Missing instance data for this datepicker";
3039      }
3040    },
3041    _optionDatepicker: function (t, i, s) {
3042      var n,
3043        a,
3044        r,
3045        h,
3046        l = this._getInst(t);
3047      return 2 === arguments.length && "string" == typeof i
3048        ? "defaults" === i
3049          ? e.extend({}, e.datepicker._defaults)
3050          : l
3051          ? "all" === i
3052            ? e.extend({}, l.settings)
3053            : this._get(l, i)
3054          : null
3055        : ((n = i || {}),
3056          "string" == typeof i && ((n = {}), (n[i] = s)),
3057          l &&
3058            (this._curInst === l && this._hideDatepicker(),
3059            (a = this._getDateDatepicker(t, !0)),
3060            (r = this._getMinMaxDate(l, "min")),
3061            (h = this._getMinMaxDate(l, "max")),
3062            o(l.settings, n),
3063            null !== r &&
3064              void 0 !== n.dateFormat &&
3065              void 0 === n.minDate &&
3066              (l.settings.minDate = this._formatDate(l, r)),
3067            null !== h &&
3068              void 0 !== n.dateFormat &&
3069              void 0 === n.maxDate &&
3070              (l.settings.maxDate = this._formatDate(l, h)),
3071            "disabled" in n &&
3072              (n.disabled
3073                ? this._disableDatepicker(t)
3074                : this._enableDatepicker(t)),
3075            this._attachments(e(t), l),
3076            this._autoSize(l),
3077            this._setDate(l, a),
3078            this._updateAlternate(l),
3079            this._updateDatepicker(l)),
3080          void 0);
3081    },
3082    _changeDatepicker: function (e, t, i) {
3083      this._optionDatepicker(e, t, i);
3084    },
3085    _refreshDatepicker: function (e) {
3086      var t = this._getInst(e);
3087      t && this._updateDatepicker(t);
3088    },
3089    _setDateDatepicker: function (e, t) {
3090      var i = this._getInst(e);
3091      i &&
3092        (this._setDate(i, t),
3093        this._updateDatepicker(i),
3094        this._updateAlternate(i));
3095    },
3096    _getDateDatepicker: function (e, t) {
3097      var i = this._getInst(e);
3098      return (
3099        i && !i.inline && this._setDateFromField(i, t),
3100        i ? this._getDate(i) : null
3101      );
3102    },
3103    _doKeyDown: function (t) {
3104      var i,
3105        s,
3106        n,
3107        a = e.datepicker._getInst(t.target),
3108        o = !0,
3109        r = a.dpDiv.is(".ui-datepicker-rtl");
3110      if (((a._keyEvent = !0), e.datepicker._datepickerShowing))
3111        switch (t.keyCode) {
3112          case 9:
3113            e.datepicker._hideDatepicker(), (o = !1);
3114            break;
3115          case 13:
3116            return (
3117              (n = e(
3118                "td." +
3119                  e.datepicker._dayOverClass +
3120                  ":not(." +
3121                  e.datepicker._currentClass +
3122                  ")",
3123                a.dpDiv
3124              )),
3125              n[0] &&
3126                e.datepicker._selectDay(
3127                  t.target,
3128                  a.selectedMonth,
3129                  a.selectedYear,
3130                  n[0]
3131                ),
3132              (i = e.datepicker._get(a, "onSelect")),
3133              i
3134                ? ((s = e.datepicker._formatDate(a)),
3135                  i.apply(a.input ? a.input[0] : null, [s, a]))
3136                : e.datepicker._hideDatepicker(),
3137              !1
3138            );
3139          case 27:
3140            e.datepicker._hideDatepicker();
3141            break;
3142          case 33:
3143            e.datepicker._adjustDate(
3144              t.target,
3145              t.ctrlKey
3146                ? -e.datepicker._get(a, "stepBigMonths")
3147                : -e.datepicker._get(a, "stepMonths"),
3148              "M"
3149            );
3150            break;
3151          case 34:
3152            e.datepicker._adjustDate(
3153              t.target,
3154              t.ctrlKey
3155                ? +e.datepicker._get(a, "stepBigMonths")
3156                : +e.datepicker._get(a, "stepMonths"),
3157              "M"
3158            );
3159            break;
3160          case 35:
3161            (t.ctrlKey || t.metaKey) && e.datepicker._clearDate(t.target),
3162              (o = t.ctrlKey || t.metaKey);
3163            break;
3164          case 36:
3165            (t.ctrlKey || t.metaKey) && e.datepicker._gotoToday(t.target),
3166              (o = t.ctrlKey || t.metaKey);
3167            break;
3168          case 37:
3169            (t.ctrlKey || t.metaKey) &&
3170              e.datepicker._adjustDate(t.target, r ? 1 : -1, "D"),
3171              (o = t.ctrlKey || t.metaKey),
3172              t.originalEvent.altKey &&
3173                e.datepicker._adjustDate(
3174                  t.target,
3175                  t.ctrlKey
3176                    ? -e.datepicker._get(a, "stepBigMonths")
3177                    : -e.datepicker._get(a, "stepMonths"),
3178                  "M"
3179                );
3180            break;
3181          case 38:
3182            (t.ctrlKey || t.metaKey) &&
3183              e.datepicker._adjustDate(t.target, -7, "D"),
3184              (o = t.ctrlKey || t.metaKey);
3185            break;
3186          case 39:
3187            (t.ctrlKey || t.metaKey) &&
3188              e.datepicker._adjustDate(t.target, r ? -1 : 1, "D"),
3189              (o = t.ctrlKey || t.metaKey),
3190              t.originalEvent.altKey &&
3191                e.datepicker._adjustDate(
3192                  t.target,
3193                  t.ctrlKey
3194                    ? +e.datepicker._get(a, "stepBigMonths")
3195                    : +e.datepicker._get(a, "stepMonths"),
3196                  "M"
3197                );
3198            break;
3199          case 40:
3200            (t.ctrlKey || t.metaKey) &&
3201              e.datepicker._adjustDate(t.target, 7, "D"),
3202              (o = t.ctrlKey || t.metaKey);
3203            break;
3204          default:
3205            o = !1;
3206        }
3207      else
3208        36 === t.keyCode && t.ctrlKey
3209          ? e.datepicker._showDatepicker(this)
3210          : (o = !1);
3211      o && (t.preventDefault(), t.stopPropagation());
3212    },
3213    _doKeyPress: function (t) {
3214      var i,
3215        s,
3216        n = e.datepicker._getInst(t.target);
3217      return e.datepicker._get(n, "constrainInput")
3218        ? ((i = e.datepicker._possibleChars(
3219            e.datepicker._get(n, "dateFormat")
3220          )),
3221          (s = String.fromCharCode(
3222            null == t.charCode ? t.keyCode : t.charCode
3223          )),
3224          t.ctrlKey || t.metaKey || " " > s || !i || i.indexOf(s) > -1)
3225        : void 0;
3226    },
3227    _doKeyUp: function (t) {
3228      var i,
3229        s = e.datepicker._getInst(t.target);
3230      if (s.input.val() !== s.lastVal)
3231        try {
3232          (i = e.datepicker.parseDate(
3233            e.datepicker._get(s, "dateFormat"),
3234            s.input ? s.input.val() : null,
3235            e.datepicker._getFormatConfig(s)
3236          )),
3237            i &&
3238              (e.datepicker._setDateFromField(s),
3239              e.datepicker._updateAlternate(s),
3240              e.datepicker._updateDatepicker(s));
3241        } catch (n) {}
3242      return !0;
3243    },
3244    _showDatepicker: function (t) {
3245      if (
3246        ((t = t.target || t),
3247        "input" !== t.nodeName.toLowerCase() &&
3248          (t = e("input", t.parentNode)[0]),
3249        !e.datepicker._isDisabledDatepicker(t) && e.datepicker._lastInput !== t)
3250      ) {
3251        var i, n, a, r, h, l, u;
3252        (i = e.datepicker._getInst(t)),
3253          e.datepicker._curInst &&
3254            e.datepicker._curInst !== i &&
3255            (e.datepicker._curInst.dpDiv.stop(!0, !0),
3256            i &&
3257              e.datepicker._datepickerShowing &&
3258              e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),
3259          (n = e.datepicker._get(i, "beforeShow")),
3260          (a = n ? n.apply(t, [t, i]) : {}),
3261          a !== !1 &&
3262            (o(i.settings, a),
3263            (i.lastVal = null),
3264            (e.datepicker._lastInput = t),
3265            e.datepicker._setDateFromField(i),
3266            e.datepicker._inDialog && (t.value = ""),
3267            e.datepicker._pos ||
3268              ((e.datepicker._pos = e.datepicker._findPos(t)),
3269              (e.datepicker._pos[1] += t.offsetHeight)),
3270            (r = !1),
3271            e(t)
3272              .parents()
3273              .each(function () {
3274                return (r |= "fixed" === e(this).css("position")), !r;
3275              }),
3276            (h = { left: e.datepicker._pos[0], top: e.datepicker._pos[1] }),
3277            (e.datepicker._pos = null),
3278            i.dpDiv.empty(),
3279            i.dpDiv.css({
3280              position: "absolute",
3281              display: "block",
3282              top: "-1000px",
3283            }),
3284            e.datepicker._updateDatepicker(i),
3285            (h = e.datepicker._checkOffset(i, h, r)),
3286            i.dpDiv.css({
3287              position:
3288                e.datepicker._inDialog && e.blockUI
3289                  ? "static"
3290                  : r
3291                  ? "fixed"
3292                  : "absolute",
3293              display: "none",
3294              left: h.left + "px",
3295              top: h.top + "px",
3296            }),
3297            i.inline ||
3298              ((l = e.datepicker._get(i, "showAnim")),
3299              (u = e.datepicker._get(i, "duration")),
3300              i.dpDiv.css("z-index", s(e(t)) + 1),
3301              (e.datepicker._datepickerShowing = !0),
3302              e.effects && e.effects.effect[l]
3303                ? i.dpDiv.show(l, e.datepicker._get(i, "showOptions"), u)
3304                : i.dpDiv[l || "show"](l ? u : null),
3305              e.datepicker._shouldFocusInput(i) && i.input.focus(),
3306              (e.datepicker._curInst = i)));
3307      }
3308    },
3309    _updateDatepicker: function (t) {
3310      (this.maxRows = 4),
3311        (g = t),
3312        t.dpDiv.empty().append(this._generateHTML(t)),
3313        this._attachHandlers(t),
3314        t.dpDiv.find("." + this._dayOverClass + " a");
3315      var i,
3316        s = this._getNumberOfMonths(t),
3317        n = s[1],
3318        a = 17;
3319      t.dpDiv
3320        .removeClass(
3321          "ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4"
3322        )
3323        .width(""),
3324        n > 1 &&
3325          t.dpDiv
3326            .addClass("ui-datepicker-multi-" + n)
3327            .css("width", a * n + "em"),
3328        t.dpDiv[(1 !== s[0] || 1 !== s[1] ? "add" : "remove") + "Class"](
3329          "ui-datepicker-multi"
3330        ),
3331        t.dpDiv[(this._get(t, "isRTL") ? "add" : "remove") + "Class"](
3332          "ui-datepicker-rtl"
3333        ),
3334        t === e.datepicker._curInst &&
3335          e.datepicker._datepickerShowing &&
3336          e.datepicker._shouldFocusInput(t) &&
3337          t.input.focus(),
3338        t.yearshtml &&
3339          ((i = t.yearshtml),
3340          setTimeout(function () {
3341            i === t.yearshtml &&
3342              t.yearshtml &&
3343              t.dpDiv
3344                .find("select.ui-datepicker-year:first")
3345                .replaceWith(t.yearshtml),
3346              (i = t.yearshtml = null);
3347          }, 0));
3348    },
3349    _shouldFocusInput: function (e) {
3350      return (
3351        e.input &&
3352        e.input.is(":visible") &&
3353        !e.input.is(":disabled") &&
3354        !e.input.is(":focus")
3355      );
3356    },
3357    _checkOffset: function (t, i, s) {
3358      var n = t.dpDiv.outerWidth(),
3359        a = t.dpDiv.outerHeight(),
3360        o = t.input ? t.input.outerWidth() : 0,
3361        r = t.input ? t.input.outerHeight() : 0,
3362        h =
3363          document.documentElement.clientWidth +
3364          (s ? 0 : e(document).scrollLeft()),
3365        l =
3366          document.documentElement.clientHeight +
3367          (s ? 0 : e(document).scrollTop());
3368      return (
3369        (i.left -= this._get(t, "isRTL") ? n - o : 0),
3370        (i.left -=
3371          s && i.left === t.input.offset().left ? e(document).scrollLeft() : 0),
3372        (i.top -=
3373          s && i.top === t.input.offset().top + r
3374            ? e(document).scrollTop()
3375            : 0),
3376        (i.left -= Math.min(
3377          i.left,
3378          i.left + n > h && h > n ? Math.abs(i.left + n - h) : 0
3379        )),
3380        (i.top -= Math.min(
3381          i.top,
3382          i.top + a > l && l > a ? Math.abs(a + r) : 0
3383        )),
3384        i
3385      );
3386    },
3387    _findPos: function (t) {
3388      for (
3389        var i, s = this._getInst(t), n = this._get(s, "isRTL");
3390        t &&
3391        ("hidden" === t.type || 1 !== t.nodeType || e.expr.filters.hidden(t));
3392
3393      )
3394        t = t[n ? "previousSibling" : "nextSibling"];
3395      return (i = e(t).offset()), [i.left, i.top];
3396    },
3397    _hideDatepicker: function (t) {
3398      var i,
3399        s,
3400        n,
3401        a,
3402        o = this._curInst;
3403      !o ||
3404        (t && o !== e.data(t, "datepicker")) ||
3405        (this._datepickerShowing &&
3406          ((i = this._get(o, "showAnim")),
3407          (s = this._get(o, "duration")),
3408          (n = function () {
3409            e.datepicker._tidyDialog(o);
3410          }),
3411          e.effects && (e.effects.effect[i] || e.effects[i])
3412            ? o.dpDiv.hide(i, e.datepicker._get(o, "showOptions"), s, n)
3413            : o.dpDiv[
3414                "slideDown" === i
3415                  ? "slideUp"
3416                  : "fadeIn" === i
3417                  ? "fadeOut"
3418                  : "hide"
3419              ](i ? s : null, n),
3420          i || n(),
3421          (this._datepickerShowing = !1),
3422          (a = this._get(o, "onClose")),
3423          a &&
3424            a.apply(o.input ? o.input[0] : null, [
3425              o.input ? o.input.val() : "",
3426              o,
3427            ]),
3428          (this._lastInput = null),
3429          this._inDialog &&
3430            (this._dialogInput.css({
3431              position: "absolute",
3432              left: "0",
3433              top: "-100px",
3434            }),
3435            e.blockUI && (e.unblockUI(), e("body").append(this.dpDiv))),
3436          (this._inDialog = !1)));
3437    },
3438    _tidyDialog: function (e) {
3439      e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar");
3440    },
3441    _checkExternalClick: function (t) {
3442      if (e.datepicker._curInst) {
3443        var i = e(t.target),
3444          s = e.datepicker._getInst(i[0]);
3445        ((i[0].id !== e.datepicker._mainDivId &&
3446          0 === i.parents("#" + e.datepicker._mainDivId).length &&
3447          !i.hasClass(e.datepicker.markerClassName) &&
3448          !i.closest("." + e.datepicker._triggerClass).length &&
3449          e.datepicker._datepickerShowing &&
3450          (!e.datepicker._inDialog || !e.blockUI)) ||
3451          (i.hasClass(e.datepicker.markerClassName) &&
3452            e.datepicker._curInst !== s)) &&
3453          e.datepicker._hideDatepicker();
3454      }
3455    },
3456    _adjustDate: function (t, i, s) {
3457      var n = e(t),
3458        a = this._getInst(n[0]);
3459      this._isDisabledDatepicker(n[0]) ||
3460        (this._adjustInstDate(
3461          a,
3462          i + ("M" === s ? this._get(a, "showCurrentAtPos") : 0),
3463          s
3464        ),
3465        this._updateDatepicker(a));
3466    },
3467    _gotoToday: function (t) {
3468      var i,
3469        s = e(t),
3470        n = this._getInst(s[0]);
3471      this._get(n, "gotoCurrent") && n.currentDay
3472        ? ((n.selectedDay = n.currentDay),
3473          (n.drawMonth = n.selectedMonth = n.currentMonth),
3474          (n.drawYear = n.selectedYear = n.currentYear))
3475        : ((i = new Date()),
3476          (n.selectedDay = i.getDate()),
3477          (n.drawMonth = n.selectedMonth = i.getMonth()),
3478          (n.drawYear = n.selectedYear = i.getFullYear())),
3479        this._notifyChange(n),
3480        this._adjustDate(s);
3481    },
3482    _selectMonthYear: function (t, i, s) {
3483      var n = e(t),
3484        a = this._getInst(n[0]);
3485      (a["selected" + ("M" === s ? "Month" : "Year")] = a[
3486        "draw" + ("M" === s ? "Month" : "Year")
3487      ] =
3488        parseInt(i.options[i.selectedIndex].value, 10)),
3489        this._notifyChange(a),
3490        this._adjustDate(n);
3491    },
3492    _selectDay: function (t, i, s, n) {
3493      var a,
3494        o = e(t);
3495      e(n).hasClass(this._unselectableClass) ||
3496        this._isDisabledDatepicker(o[0]) ||
3497        ((a = this._getInst(o[0])),
3498        (a.selectedDay = a.currentDay = e("a", n).html()),
3499        (a.selectedMonth = a.currentMonth = i),
3500        (a.selectedYear = a.currentYear = s),
3501        this._selectDate(
3502          t,
3503          this._formatDate(a, a.currentDay, a.currentMonth, a.currentYear)
3504        ));
3505    },
3506    _clearDate: function (t) {
3507      var i = e(t);
3508      this._selectDate(i, "");
3509    },
3510    _selectDate: function (t, i) {
3511      var s,
3512        n = e(t),
3513        a = this._getInst(n[0]);
3514      (i = null != i ? i : this._formatDate(a)),
3515        a.input && a.input.val(i),
3516        this._updateAlternate(a),
3517        (s = this._get(a, "onSelect")),
3518        s
3519          ? s.apply(a.input ? a.input[0] : null, [i, a])
3520          : a.input && a.input.trigger("change"),
3521        a.inline
3522          ? this._updateDatepicker(a)
3523          : (this._hideDatepicker(),
3524            (this._lastInput = a.input[0]),
3525            "object" != typeof a.input[0] && a.input.focus(),
3526            (this._lastInput = null));
3527    },
3528    _updateAlternate: function (t) {
3529      var i,
3530        s,
3531        n,
3532        a = this._get(t, "altField");
3533      a &&
3534        ((i = this._get(t, "altFormat") || this._get(t, "dateFormat")),
3535        (s = this._getDate(t)),
3536        (n = this.formatDate(i, s, this._getFormatConfig(t))),
3537        e(a).each(function () {
3538          e(this).val(n);
3539        }));
3540    },
3541    noWeekends: function (e) {
3542      var t = e.getDay();
3543      return [t > 0 && 6 > t, ""];
3544    },
3545    iso8601Week: function (e) {
3546      var t,
3547        i = new Date(e.getTime());
3548      return (
3549        i.setDate(i.getDate() + 4 - (i.getDay() || 7)),
3550        (t = i.getTime()),
3551        i.setMonth(0),
3552        i.setDate(1),
3553        Math.floor(Math.round((t - i) / 864e5) / 7) + 1
3554      );
3555    },
3556    parseDate: function (t, i, s) {
3557      if (null == t || null == i) throw "Invalid arguments";
3558      if (((i = "object" == typeof i ? "" + i : i + ""), "" === i)) return null;
3559      var n,
3560        a,
3561        o,
3562        r,
3563        h = 0,
3564        l = (s ? s.shortYearCutoff : null) || this._defaults.shortYearCutoff,
3565        u =
3566          "string" != typeof l
3567            ? l
3568            : (new Date().getFullYear() % 100) + parseInt(l, 10),
3569        d = (s ? s.dayNamesShort : null) || this._defaults.dayNamesShort,
3570        c = (s ? s.dayNames : null) || this._defaults.dayNames,
3571        p = (s ? s.monthNamesShort : null) || this._defaults.monthNamesShort,
3572        f = (s ? s.monthNames : null) || this._defaults.monthNames,
3573        m = -1,
3574        g = -1,
3575        v = -1,
3576        y = -1,
3577        b = !1,
3578        _ = function (e) {
3579          var i = t.length > n + 1 && t.charAt(n + 1) === e;
3580          return i && n++, i;
3581        },
3582        x = function (e) {
3583          var t = _(e),
3584            s =
3585              "@" === e
3586                ? 14
3587                : "!" === e
3588                ? 20
3589                : "y" === e && t
3590                ? 4
3591                : "o" === e
3592                ? 3
3593                : 2,
3594            n = RegExp("^\\d{1," + s + "}"),
3595            a = i.substring(h).match(n);
3596          if (!a) throw "Missing number at position " + h;
3597          return (h += a[0].length), parseInt(a[0], 10);
3598        },
3599        w = function (t, s, n) {
3600          var a = -1,
3601            o = e
3602              .map(_(t) ? n : s, function (e, t) {
3603                return [[t, e]];
3604              })
3605              .sort(function (e, t) {
3606                return -(e[1].length - t[1].length);
3607              });
3608          if (
3609            (e.each(o, function (e, t) {
3610              var s = t[1];
3611              return i.substr(h, s.length).toLowerCase() === s.toLowerCase()
3612                ? ((a = t[0]), (h += s.length), !1)
3613                : void 0;
3614            }),
3615            -1 !== a)
3616          )
3617            return a + 1;
3618          throw "Unknown name at position " + h;
3619        },
3620        k = function () {
3621          if (i.charAt(h) !== t.charAt(n))
3622            throw "Unexpected literal at position " + h;
3623          h++;
3624        };
3625      for (n = 0; t.length > n; n++)
3626        if (b) "'" !== t.charAt(n) || _("'") ? k() : (b = !1);
3627        else
3628          switch (t.charAt(n)) {
3629            case "d":
3630              v = x("d");
3631              break;
3632            case "D":
3633              w("D", d, c);
3634              break;
3635            case "o":
3636              y = x("o");
3637              break;
3638            case "m":
3639              g = x("m");
3640              break;
3641            case "M":
3642              g = w("M", p, f);
3643              break;
3644            case "y":
3645              m = x("y");
3646              break;
3647            case "@":
3648              (r = new Date(x("@"))),
3649                (m = r.getFullYear()),
3650                (g = r.getMonth() + 1),
3651                (v = r.getDate());
3652              break;
3653            case "!":
3654              (r = new Date((x("!") - this._ticksTo1970) / 1e4)),
3655                (m = r.getFullYear()),
3656                (g = r.getMonth() + 1),
3657                (v = r.getDate());
3658              break;
3659            case "'":
3660              _("'") ? k() : (b = !0);
3661              break;
3662            default:
3663              k();
3664          }
3665      if (i.length > h && ((o = i.substr(h)), !/^\s+/.test(o)))
3666        throw "Extra/unparsed characters found in date: " + o;
3667      if (
3668        (-1 === m
3669          ? (m = new Date().getFullYear())
3670          : 100 > m &&
3671            (m +=
3672              new Date().getFullYear() -
3673              (new Date().getFullYear() % 100) +
3674              (u >= m ? 0 : -100)),
3675        y > -1)
3676      )
3677        for (g = 1, v = y; ; ) {
3678          if (((a = this._getDaysInMonth(m, g - 1)), a >= v)) break;
3679          g++, (v -= a);
3680        }
3681      if (
3682        ((r = this._daylightSavingAdjust(new Date(m, g - 1, v))),
3683        r.getFullYear() !== m || r.getMonth() + 1 !== g || r.getDate() !== v)
3684      )
3685        throw "Invalid date";
3686      return r;
3687    },
3688    ATOM: "yy-mm-dd",
3689    COOKIE: "D, dd M yy",
3690    ISO_8601: "yy-mm-dd",
3691    RFC_822: "D, d M y",
3692    RFC_850: "DD, dd-M-y",
3693    RFC_1036: "D, d M y",
3694    RFC_1123: "D, d M yy",
3695    RFC_2822: "D, d M yy",
3696    RSS: "D, d M y",
3697    TICKS: "!",
3698    TIMESTAMP: "@",
3699    W3C: "yy-mm-dd",
3700    _ticksTo1970:
3701      1e7 *
3702      60 *
3703      60 *
3704      24 *
3705      (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)),
3706    formatDate: function (e, t, i) {
3707      if (!t) return "";
3708      var s,
3709        n = (i ? i.dayNamesShort : null) || this._defaults.dayNamesShort,
3710        a = (i ? i.dayNames : null) || this._defaults.dayNames,
3711        o = (i ? i.monthNamesShort : null) || this._defaults.monthNamesShort,
3712        r = (i ? i.monthNames : null) || this._defaults.monthNames,
3713        h = function (t) {
3714          var i = e.length > s + 1 && e.charAt(s + 1) === t;
3715          return i && s++, i;
3716        },
3717        l = function (e, t, i) {
3718          var s = "" + t;
3719          if (h(e)) for (; i > s.length; ) s = "0" + s;
3720          return s;
3721        },
3722        u = function (e, t, i, s) {
3723          return h(e) ? s[t] : i[t];
3724        },
3725        d = "",
3726        c = !1;
3727      if (t)
3728        for (s = 0; e.length > s; s++)
3729          if (c) "'" !== e.charAt(s) || h("'") ? (d += e.charAt(s)) : (c = !1);
3730          else
3731            switch (e.charAt(s)) {
3732              case "d":
3733                d += l("d", t.getDate(), 2);
3734                break;
3735              case "D":
3736                d += u("D", t.getDay(), n, a);
3737                break;
3738              case "o":
3739                d += l(
3740                  "o",
3741                  Math.round(
3742                    (new Date(
3743                      t.getFullYear(),
3744                      t.getMonth(),
3745                      t.getDate()
3746                    ).getTime() -
3747                      new Date(t.getFullYear(), 0, 0).getTime()) /
3748                      864e5
3749                  ),
3750                  3
3751                );
3752                break;
3753              case "m":
3754                d += l("m", t.getMonth() + 1, 2);
3755                break;
3756              case "M":
3757                d += u("M", t.getMonth(), o, r);
3758                break;
3759              case "y":
3760                d += h("y")
3761                  ? t.getFullYear()
3762                  : (10 > t.getYear() % 100 ? "0" : "") + (t.getYear() % 100);
3763                break;
3764              case "@":
3765                d += t.getTime();
3766                break;
3767              case "!":
3768                d += 1e4 * t.getTime() + this._ticksTo1970;
3769                break;
3770              case "'":
3771                h("'") ? (d += "'") : (c = !0);
3772                break;
3773              default:
3774                d += e.charAt(s);
3775            }
3776      return d;
3777    },
3778    _possibleChars: function (e) {
3779      var t,
3780        i = "",
3781        s = !1,
3782        n = function (i) {
3783          var s = e.length > t + 1 && e.charAt(t + 1) === i;
3784          return s && t++, s;
3785        };
3786      for (t = 0; e.length > t; t++)
3787        if (s) "'" !== e.charAt(t) || n("'") ? (i += e.charAt(t)) : (s = !1);
3788        else
3789          switch (e.charAt(t)) {
3790            case "d":
3791            case "m":
3792            case "y":
3793            case "@":
3794              i += "0123456789";
3795              break;
3796            case "D":
3797            case "M":
3798              return null;
3799            case "'":
3800              n("'") ? (i += "'") : (s = !0);
3801              break;
3802            default:
3803              i += e.charAt(t);
3804          }
3805      return i;
3806    },
3807    _get: function (e, t) {
3808      return void 0 !== e.settings[t] ? e.settings[t] : this._defaults[t];
3809    },
3810    _setDateFromField: function (e, t) {
3811      if (e.input.val() !== e.lastVal) {
3812        var i = this._get(e, "dateFormat"),
3813          s = (e.lastVal = e.input ? e.input.val() : null),
3814          n = this._getDefaultDate(e),
3815          a = n,
3816          o = this._getFormatConfig(e);
3817        try {
3818          a = this.parseDate(i, s, o) || n;
3819        } catch (r) {
3820          s = t ? "" : s;
3821        }
3822        (e.selectedDay = a.getDate()),
3823          (e.drawMonth = e.selectedMonth = a.getMonth()),
3824          (e.drawYear = e.selectedYear = a.getFullYear()),
3825          (e.currentDay = s ? a.getDate() : 0),
3826          (e.currentMonth = s ? a.getMonth() : 0),
3827          (e.currentYear = s ? a.getFullYear() : 0),
3828          this._adjustInstDate(e);
3829      }
3830    },
3831    _getDefaultDate: function (e) {
3832      return this._restrictMinMax(
3833        e,
3834        this._determineDate(e, this._get(e, "defaultDate"), new Date())
3835      );
3836    },
3837    _determineDate: function (t, i, s) {
3838      var n = function (e) {
3839          var t = new Date();
3840          return t.setDate(t.getDate() + e), t;
3841        },
3842        a = function (i) {
3843          try {
3844            return e.datepicker.parseDate(
3845              e.datepicker._get(t, "dateFormat"),
3846              i,
3847              e.datepicker._getFormatConfig(t)
3848            );
3849          } catch (s) {}
3850          for (
3851            var n =
3852                (i.toLowerCase().match(/^c/)
3853                  ? e.datepicker._getDate(t)
3854                  : null) || new Date(),
3855              a = n.getFullYear(),
3856              o = n.getMonth(),
3857              r = n.getDate(),
3858              h = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
3859              l = h.exec(i);
3860            l;
3861
3862          ) {
3863            switch (l[2] || "d") {
3864              case "d":
3865              case "D":
3866                r += parseInt(l[1], 10);
3867                break;
3868              case "w":
3869              case "W":
3870                r += 7 * parseInt(l[1], 10);
3871                break;
3872              case "m":
3873              case "M":
3874                (o += parseInt(l[1], 10)),
3875                  (r = Math.min(r, e.datepicker._getDaysInMonth(a, o)));
3876                break;
3877              case "y":
3878              case "Y":
3879                (a += parseInt(l[1], 10)),
3880                  (r = Math.min(r, e.datepicker._getDaysInMonth(a, o)));
3881            }
3882            l = h.exec(i);
3883          }
3884          return new Date(a, o, r);
3885        },
3886        o =
3887          null == i || "" === i
3888            ? s
3889            : "string" == typeof i
3890            ? a(i)
3891            : "number" == typeof i
3892            ? isNaN(i)
3893              ? s
3894              : n(i)
3895            : new Date(i.getTime());
3896      return (
3897        (o = o && "Invalid Date" == "" + o ? s : o),
3898        o &&
3899          (o.setHours(0),
3900          o.setMinutes(0),
3901          o.setSeconds(0),
3902          o.setMilliseconds(0)),
3903        this._daylightSavingAdjust(o)
3904      );
3905    },
3906    _daylightSavingAdjust: function (e) {
3907      return e
3908        ? (e.setHours(e.getHours() > 12 ? e.getHours() + 2 : 0), e)
3909        : null;
3910    },
3911    _setDate: function (e, t, i) {
3912      var s = !t,
3913        n = e.selectedMonth,
3914        a = e.selectedYear,
3915        o = this._restrictMinMax(e, this._determineDate(e, t, new Date()));
3916      (e.selectedDay = e.currentDay = o.getDate()),
3917        (e.drawMonth = e.selectedMonth = e.currentMonth = o.getMonth()),
3918        (e.drawYear = e.selectedYear = e.currentYear = o.getFullYear()),
3919        (n === e.selectedMonth && a === e.selectedYear) ||
3920          i ||
3921          this._notifyChange(e),
3922        this._adjustInstDate(e),
3923        e.input && e.input.val(s ? "" : this._formatDate(e));
3924    },
3925    _getDate: function (e) {
3926      var t =
3927        !e.currentYear || (e.input && "" === e.input.val())
3928          ? null
3929          : this._daylightSavingAdjust(
3930              new Date(e.currentYear, e.currentMonth, e.currentDay)
3931            );
3932      return t;
3933    },
3934    _attachHandlers: function (t) {
3935      var i = this._get(t, "stepMonths"),
3936        s = "#" + t.id.replace(/\\\\/g, "\\");
3937      t.dpDiv.find("[data-handler]").map(function () {
3938        var t = {
3939          prev: function () {
3940            e.datepicker._adjustDate(s, -i, "M");
3941          },
3942          next: function () {
3943            e.datepicker._adjustDate(s, +i, "M");
3944          },
3945          hide: function () {
3946            e.datepicker._hideDatepicker();
3947          },
3948          today: function () {
3949            e.datepicker._gotoToday(s);
3950          },
3951          selectDay: function () {
3952            return (
3953              e.datepicker._selectDay(
3954                s,
3955                +this.getAttribute("data-month"),
3956                +this.getAttribute("data-year"),
3957                this
3958              ),
3959              !1
3960            );
3961          },
3962          selectMonth: function () {
3963            return e.datepicker._selectMonthYear(s, this, "M"), !1;
3964          },
3965          selectYear: function () {
3966            return e.datepicker._selectMonthYear(s, this, "Y"), !1;
3967          },
3968        };
3969        e(this).bind(
3970          this.getAttribute("data-event"),
3971          t[this.getAttribute("data-handler")]
3972        );
3973      });
3974    },
3975    _generateHTML: function (e) {
3976      var t,
3977        i,
3978        s,
3979        n,
3980        a,
3981        o,
3982        r,
3983        h,
3984        l,
3985        u,
3986        d,
3987        c,
3988        p,
3989        f,
3990        m,
3991        g,
3992        v,
3993        y,
3994        b,
3995        _,
3996        x,
3997        w,
3998        k,
3999        T,
4000        D,
4001        S,
4002        M,
4003        N,
4004        C,
4005        A,
4006        I,
4007        P,
4008        z,
4009        H,
4010        F,
4011        E,
4012        j,
4013        O,
4014        W,
4015        L = new Date(),
4016        R = this._daylightSavingAdjust(
4017          new Date(L.getFullYear(), L.getMonth(), L.getDate())
4018        ),
4019        Y = this._get(e, "isRTL"),
4020        B = this._get(e, "showButtonPanel"),
4021        J = this._get(e, "hideIfNoPrevNext"),
4022        q = this._get(e, "navigationAsDateFormat"),
4023        K = this._getNumberOfMonths(e),
4024        V = this._get(e, "showCurrentAtPos"),
4025        U = this._get(e, "stepMonths"),
4026        Q = 1 !== K[0] || 1 !== K[1],
4027        G = this._daylightSavingAdjust(
4028          e.currentDay
4029            ? new Date(e.currentYear, e.currentMonth, e.currentDay)
4030            : new Date(9999, 9, 9)
4031        ),
4032        X = this._getMinMaxDate(e, "min"),
4033        $ = this._getMinMaxDate(e, "max"),
4034        Z = e.drawMonth - V,
4035        et = e.drawYear;
4036      if ((0 > Z && ((Z += 12), et--), $))
4037        for (
4038          t = this._daylightSavingAdjust(
4039            new Date(
4040              $.getFullYear(),
4041              $.getMonth() - K[0] * K[1] + 1,
4042              $.getDate()
4043            )
4044          ),
4045            t = X && X > t ? X : t;
4046          this._daylightSavingAdjust(new Date(et, Z, 1)) > t;
4047
4048        )
4049          Z--, 0 > Z && ((Z = 11), et--);
4050      for (
4051        e.drawMonth = Z,
4052          e.drawYear = et,
4053          i = this._get(e, "prevText"),
4054          i = q
4055            ? this.formatDate(
4056                i,
4057                this._daylightSavingAdjust(new Date(et, Z - U, 1)),
4058                this._getFormatConfig(e)
4059              )
4060            : i,
4061          s = this._canAdjustMonth(e, -1, et, Z)
4062            ? "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='" +
4063              i +
4064              "'><span class='ui-icon ui-icon-circle-triangle-" +
4065              (Y ? "e" : "w") +
4066              "'>" +
4067              i +
4068              "</span></a>"
4069            : J
4070            ? ""
4071            : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" +
4072              i +
4073              "'><span class='ui-icon ui-icon-circle-triangle-" +
4074              (Y ? "e" : "w") +
4075              "'>" +
4076              i +
4077              "</span></a>",
4078          n = this._get(e, "nextText"),
4079          n = q
4080            ? this.formatDate(
4081                n,
4082                this._daylightSavingAdjust(new Date(et, Z + U, 1)),
4083                this._getFormatConfig(e)
4084              )
4085            : n,
4086          a = this._canAdjustMonth(e, 1, et, Z)
4087            ? "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='" +
4088              n +
4089              "'><span class='ui-icon ui-icon-circle-triangle-" +
4090              (Y ? "w" : "e") +
4091              "'>" +
4092              n +
4093              "</span></a>"
4094            : J
4095            ? ""
4096            : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" +
4097              n +
4098              "'><span class='ui-icon ui-icon-circle-triangle-" +
4099              (Y ? "w" : "e") +
4100              "'>" +
4101              n +
4102              "</span></a>",
4103          o = this._get(e, "currentText"),
4104          r = this._get(e, "gotoCurrent") && e.currentDay ? G : R,
4105          o = q ? this.formatDate(o, r, this._getFormatConfig(e)) : o,
4106          h = e.inline
4107            ? ""
4108            : "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
4109              this._get(e, "closeText") +
4110              "</button>",
4111          l = B
4112            ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" +
4113              (Y ? h : "") +
4114              (this._isInRange(e, r)
4115                ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>" +
4116                  o +
4117                  "</button>"
4118                : "") +
4119              (Y ? "" : h) +
4120              "</div>"
4121            : "",
4122          u = parseInt(this._get(e, "firstDay"), 10),
4123          u = isNaN(u) ? 0 : u,
4124          d = this._get(e, "showWeek"),
4125          c = this._get(e, "dayNames"),
4126          p = this._get(e, "dayNamesMin"),
4127          f = this._get(e, "monthNames"),
4128          m = this._get(e, "monthNamesShort"),
4129          g = this._get(e, "beforeShowDay"),
4130          v = this._get(e, "showOtherMonths"),
4131          y = this._get(e, "selectOtherMonths"),
4132          b = this._getDefaultDate(e),
4133          _ = "",
4134          w = 0;
4135        K[0] > w;
4136        w++
4137      ) {
4138        for (k = "", this.maxRows = 4, T = 0; K[1] > T; T++) {
4139          if (
4140            ((D = this._daylightSavingAdjust(new Date(et, Z, e.selectedDay))),
4141            (S = " ui-corner-all"),
4142            (M = ""),
4143            Q)
4144          ) {
4145            if (((M += "<div class='ui-datepicker-group"), K[1] > 1))
4146              switch (T) {
4147                case 0:
4148                  (M += " ui-datepicker-group-first"),
4149                    (S = " ui-corner-" + (Y ? "right" : "left"));
4150                  break;
4151                case K[1] - 1:
4152                  (M += " ui-datepicker-group-last"),
4153                    (S = " ui-corner-" + (Y ? "left" : "right"));
4154                  break;
4155                default:
4156                  (M += " ui-datepicker-group-middle"), (S = "");
4157              }
4158            M += "'>";
4159          }
4160          for (
4161            M +=
4162              "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" +
4163              S +
4164              "'>" +
4165              (/all|left/.test(S) && 0 === w ? (Y ? a : s) : "") +
4166              (/all|right/.test(S) && 0 === w ? (Y ? s : a) : "") +
4167              this._generateMonthYearHeader(
4168                e,
4169                Z,
4170                et,
4171                X,
4172                $,
4173                w > 0 || T > 0,
4174                f,
4175                m
4176              ) +
4177              "</div><table class='ui-datepicker-calendar'><thead>" +
4178              "<tr>",
4179              N = d
4180                ? "<th class='ui-datepicker-week-col'>" +
4181                  this._get(e, "weekHeader") +
4182                  "</th>"
4183                : "",
4184              x = 0;
4185            7 > x;
4186            x++
4187          )
4188            (C = (x + u) % 7),
4189              (N +=
4190                "<th scope='col'" +
4191                ((x + u + 6) % 7 >= 5
4192                  ? " class='ui-datepicker-week-end'"
4193                  : "") +
4194                ">" +
4195                "<span title='" +
4196                c[C] +
4197                "'>" +
4198                p[C] +
4199                "</span></th>");
4200          for (
4201            M += N + "</tr></thead><tbody>",
4202              A = this._getDaysInMonth(et, Z),
4203              et === e.selectedYear &&
4204                Z === e.selectedMonth &&
4205                (e.selectedDay = Math.min(e.selectedDay, A)),
4206              I = (this._getFirstDayOfMonth(et, Z) - u + 7) % 7,
4207              P = Math.ceil((I + A) / 7),
4208              z = Q ? (this.maxRows > P ? this.maxRows : P) : P,
4209              this.maxRows = z,
4210              H = this._daylightSavingAdjust(new Date(et, Z, 1 - I)),
4211              F = 0;
4212            z > F;
4213            F++
4214          ) {
4215            for (
4216              M += "<tr>",
4217                E = d
4218                  ? "<td class='ui-datepicker-week-col'>" +
4219                    this._get(e, "calculateWeek")(H) +
4220                    "</td>"
4221                  : "",
4222                x = 0;
4223              7 > x;
4224              x++
4225            )
4226              (j = g ? g.apply(e.input ? e.input[0] : null, [H]) : [!0, ""]),
4227                (O = H.getMonth() !== Z),
4228                (W = (O && !y) || !j[0] || (X && X > H) || ($ && H > $)),
4229                (E +=
4230                  "<td class='" +
4231                  ((x + u + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") +
4232                  (O ? " ui-datepicker-other-month" : "") +
4233                  ((H.getTime() === D.getTime() &&
4234                    Z === e.selectedMonth &&
4235                    e._keyEvent) ||
4236                  (b.getTime() === H.getTime() && b.getTime() === D.getTime())
4237                    ? " " + this._dayOverClass
4238                    : "") +
4239                  (W
4240                    ? " " + this._unselectableClass + " ui-state-disabled"
4241                    : "") +
4242                  (O && !v
4243                    ? ""
4244                    : " " +
4245                      j[1] +
4246                      (H.getTime() === G.getTime()
4247                        ? " " + this._currentClass
4248                        : "") +
4249                      (H.getTime() === R.getTime()
4250                        ? " ui-datepicker-today"
4251                        : "")) +
4252                  "'" +
4253                  ((O && !v) || !j[2]
4254                    ? ""
4255                    : " title='" + j[2].replace(/'/g, "&#39;") + "'") +
4256                  (W
4257                    ? ""
4258                    : " data-handler='selectDay' data-event='click' data-month='" +
4259                      H.getMonth() +
4260                      "' data-year='" +
4261                      H.getFullYear() +
4262                      "'") +
4263                  ">" +
4264                  (O && !v
4265                    ? "&#xa0;"
4266                    : W
4267                    ? "<span class='ui-state-default'>" +
4268                      H.getDate() +
4269                      "</span>"
4270                    : "<a class='ui-state-default" +
4271                      (H.getTime() === R.getTime()
4272                        ? " ui-state-highlight"
4273                        : "") +
4274                      (H.getTime() === G.getTime() ? " ui-state-active" : "") +
4275                      (O ? " ui-priority-secondary" : "") +
4276                      "' href='#'>" +
4277                      H.getDate() +
4278                      "</a>") +
4279                  "</td>"),
4280                H.setDate(H.getDate() + 1),
4281                (H = this._daylightSavingAdjust(H));
4282            M += E + "</tr>";
4283          }
4284          Z++,
4285            Z > 11 && ((Z = 0), et++),
4286            (M +=
4287              "</tbody></table>" +
4288              (Q
4289                ? "</div>" +
4290                  (K[0] > 0 && T === K[1] - 1
4291                    ? "<div class='ui-datepicker-row-break'></div>"
4292                    : "")
4293                : "")),
4294            (k += M);
4295        }
4296        _ += k;
4297      }
4298      return (_ += l), (e._keyEvent = !1), _;
4299    },
4300    _generateMonthYearHeader: function (e, t, i, s, n, a, o, r) {
4301      var h,
4302        l,
4303        u,
4304        d,
4305        c,
4306        p,
4307        f,
4308        m,
4309        g = this._get(e, "changeMonth"),
4310        v = this._get(e, "changeYear"),
4311        y = this._get(e, "showMonthAfterYear"),
4312        b = "<div class='ui-datepicker-title'>",
4313        _ = "";
4314      if (a || !g) _ += "<span class='ui-datepicker-month'>" + o[t] + "</span>";
4315      else {
4316        for (
4317          h = s && s.getFullYear() === i,
4318            l = n && n.getFullYear() === i,
4319            _ +=
4320              "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",
4321            u = 0;
4322          12 > u;
4323          u++
4324        )
4325          (!h || u >= s.getMonth()) &&
4326            (!l || n.getMonth() >= u) &&
4327            (_ +=
4328              "<option value='" +
4329              u +
4330              "'" +
4331              (u === t ? " selected='selected'" : "") +
4332              ">" +
4333              r[u] +
4334              "</option>");
4335        _ += "</select>";
4336      }
4337      if ((y || (b += _ + (!a && g && v ? "" : "&#xa0;")), !e.yearshtml))
4338        if (((e.yearshtml = ""), a || !v))
4339          b += "<span class='ui-datepicker-year'>" + i + "</span>";
4340        else {
4341          for (
4342            d = this._get(e, "yearRange").split(":"),
4343              c = new Date().getFullYear(),
4344              p = function (e) {
4345                var t = e.match(/c[+\-].*/)
4346                  ? i + parseInt(e.substring(1), 10)
4347                  : e.match(/[+\-].*/)
4348                  ? c + parseInt(e, 10)
4349                  : parseInt(e, 10);
4350                return isNaN(t) ? c : t;
4351              },
4352              f = p(d[0]),
4353              m = Math.max(f, p(d[1] || "")),
4354              f = s ? Math.max(f, s.getFullYear()) : f,
4355              m = n ? Math.min(m, n.getFullYear()) : m,
4356              e.yearshtml +=
4357                "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";
4358            m >= f;
4359            f++
4360          )
4361            e.yearshtml +=
4362              "<option value='" +
4363              f +
4364              "'" +
4365              (f === i ? " selected='selected'" : "") +
4366              ">" +
4367              f +
4368              "</option>";
4369          (e.yearshtml += "</select>"),
4370            (b += e.yearshtml),
4371            (e.yearshtml = null);
4372        }
4373      return (
4374        (b += this._get(e, "yearSuffix")),
4375        y && (b += (!a && g && v ? "" : "&#xa0;") + _),
4376        (b += "</div>")
4377      );
4378    },
4379    _adjustInstDate: function (e, t, i) {
4380      var s = e.drawYear + ("Y" === i ? t : 0),
4381        n = e.drawMonth + ("M" === i ? t : 0),
4382        a =
4383          Math.min(e.selectedDay, this._getDaysInMonth(s, n)) +
4384          ("D" === i ? t : 0),
4385        o = this._restrictMinMax(
4386          e,
4387          this._daylightSavingAdjust(new Date(s, n, a))
4388        );
4389      (e.selectedDay = o.getDate()),
4390        (e.drawMonth = e.selectedMonth = o.getMonth()),
4391        (e.drawYear = e.selectedYear = o.getFullYear()),
4392        ("M" === i || "Y" === i) && this._notifyChange(e);
4393    },
4394    _restrictMinMax: function (e, t) {
4395      var i = this._getMinMaxDate(e, "min"),
4396        s = this._getMinMaxDate(e, "max"),
4397        n = i && i > t ? i : t;
4398      return s && n > s ? s : n;
4399    },
4400    _notifyChange: function (e) {
4401      var t = this._get(e, "onChangeMonthYear");
4402      t &&
4403        t.apply(e.input ? e.input[0] : null, [
4404          e.selectedYear,
4405          e.selectedMonth + 1,
4406          e,
4407        ]);
4408    },
4409    _getNumberOfMonths: function (e) {
4410      var t = this._get(e, "numberOfMonths");
4411      return null == t ? [1, 1] : "number" == typeof t ? [1, t] : t;
4412    },
4413    _getMinMaxDate: function (e, t) {
4414      return this._determineDate(e, this._get(e, t + "Date"), null);
4415    },
4416    _getDaysInMonth: function (e, t) {
4417      return 32 - this._daylightSavingAdjust(new Date(e, t, 32)).getDate();
4418    },
4419    _getFirstDayOfMonth: function (e, t) {
4420      return new Date(e, t, 1).getDay();
4421    },
4422    _canAdjustMonth: function (e, t, i, s) {
4423      var n = this._getNumberOfMonths(e),
4424        a = this._daylightSavingAdjust(
4425          new Date(i, s + (0 > t ? t : n[0] * n[1]), 1)
4426        );
4427      return (
4428        0 > t && a.setDate(this._getDaysInMonth(a.getFullYear(), a.getMonth())),
4429        this._isInRange(e, a)
4430      );
4431    },
4432    _isInRange: function (e, t) {
4433      var i,
4434        s,
4435        n = this._getMinMaxDate(e, "min"),
4436        a = this._getMinMaxDate(e, "max"),
4437        o = null,
4438        r = null,
4439        h = this._get(e, "yearRange");
4440      return (
4441        h &&
4442          ((i = h.split(":")),
4443          (s = new Date().getFullYear()),
4444          (o = parseInt(i[0], 10)),
4445          (r = parseInt(i[1], 10)),
4446          i[0].match(/[+\-].*/) && (o += s),
4447          i[1].match(/[+\-].*/) && (r += s)),
4448        (!n || t.getTime() >= n.getTime()) &&
4449          (!a || t.getTime() <= a.getTime()) &&
4450          (!o || t.getFullYear() >= o) &&
4451          (!r || r >= t.getFullYear())
4452      );
4453    },
4454    _getFormatConfig: function (e) {
4455      var t = this._get(e, "shortYearCutoff");
4456      return (
4457        (t =
4458          "string" != typeof t
4459            ? t
4460            : (new Date().getFullYear() % 100) + parseInt(t, 10)),
4461        {
4462          shortYearCutoff: t,
4463          dayNamesShort: this._get(e, "dayNamesShort"),
4464          dayNames: this._get(e, "dayNames"),
4465          monthNamesShort: this._get(e, "monthNamesShort"),
4466          monthNames: this._get(e, "monthNames"),
4467        }
4468      );
4469    },
4470    _formatDate: function (e, t, i, s) {
4471      t ||
4472        ((e.currentDay = e.selectedDay),
4473        (e.currentMonth = e.selectedMonth),
4474        (e.currentYear = e.selectedYear));
4475      var n = t
4476        ? "object" == typeof t
4477          ? t
4478          : this._daylightSavingAdjust(new Date(s, i, t))
4479        : this._daylightSavingAdjust(
4480            new Date(e.currentYear, e.currentMonth, e.currentDay)
4481          );
4482      return this.formatDate(
4483        this._get(e, "dateFormat"),
4484        n,
4485        this._getFormatConfig(e)
4486      );
4487    },
4488  }),
4489    (e.fn.datepicker = function (t) {
4490      if (!this.length) return this;
4491      e.datepicker.initialized ||
4492        (e(document).mousedown(e.datepicker._checkExternalClick),
4493        (e.datepicker.initialized = !0)),
4494        0 === e("#" + e.datepicker._mainDivId).length &&
4495          e("body").append(e.datepicker.dpDiv);
4496      var i = Array.prototype.slice.call(arguments, 1);
4497      return "string" != typeof t ||
4498        ("isDisabled" !== t && "getDate" !== t && "widget" !== t)
4499        ? "option" === t &&
4500          2 === arguments.length &&
4501          "string" == typeof arguments[1]
4502          ? e.datepicker["_" + t + "Datepicker"].apply(
4503              e.datepicker,
4504              [this[0]].concat(i)
4505            )
4506          : this.each(function () {
4507              "string" == typeof t
4508                ? e.datepicker["_" + t + "Datepicker"].apply(
4509                    e.datepicker,
4510                    [this].concat(i)
4511                  )
4512                : e.datepicker._attachDatepicker(this, t);
4513            })
4514        : e.datepicker["_" + t + "Datepicker"].apply(
4515            e.datepicker,
4516            [this[0]].concat(i)
4517          );
4518    }),
4519    (e.datepicker = new n()),
4520    (e.datepicker.initialized = !1),
4521    (e.datepicker.uuid = new Date().getTime()),
4522    (e.datepicker.version = "1.11.0"),
4523    e.datepicker,
4524    e.widget("ui.draggable", e.ui.mouse, {
4525      version: "1.11.0",
4526      widgetEventPrefix: "drag",
4527      options: {
4528        addClasses: !0,
4529        appendTo: "parent",
4530        axis: !1,
4531        connectToSortable: !1,
4532        containment: !1,
4533        cursor: "auto",
4534        cursorAt: !1,
4535        grid: !1,
4536        handle: !1,
4537        helper: "original",
4538        iframeFix: !1,
4539        opacity: !1,
4540        refreshPositions: !1,
4541        revert: !1,
4542        revertDuration: 500,
4543        scope: "default",
4544        scroll: !0,
4545        scrollSensitivity: 20,
4546        scrollSpeed: 20,
4547        snap: !1,
4548        snapMode: "both",
4549        snapTolerance: 20,
4550        stack: !1,
4551        zIndex: !1,
4552        drag: null,
4553        start: null,
4554        stop: null,
4555      },
4556      _create: function () {
4557        "original" !== this.options.helper ||
4558          /^(?:r|a|f)/.test(this.element.css("position")) ||
4559          (this.element[0].style.position = "relative"),
4560          this.options.addClasses && this.element.addClass("ui-draggable"),
4561          this.options.disabled &&
4562            this.element.addClass("ui-draggable-disabled"),
4563          this._setHandleClassName(),
4564          this._mouseInit();
4565      },
4566      _setOption: function (e, t) {
4567        this._super(e, t), "handle" === e && this._setHandleClassName();
4568      },
4569      _destroy: function () {
4570        return (this.helper || this.element).is(".ui-draggable-dragging")
4571          ? ((this.destroyOnClear = !0), void 0)
4572          : (this.element.removeClass(
4573              "ui-draggable ui-draggable-dragging ui-draggable-disabled"
4574            ),
4575            this._removeHandleClassName(),
4576            this._mouseDestroy(),
4577            void 0);
4578      },
4579      _mouseCapture: function (t) {
4580        var i = this.document[0],
4581          s = this.options;
4582        try {
4583          i.activeElement &&
4584            "body" !== i.activeElement.nodeName.toLowerCase() &&
4585            e(i.activeElement).blur();
4586        } catch (n) {}
4587        return this.helper ||
4588          s.disabled ||
4589          e(t.target).closest(".ui-resizable-handle").length > 0
4590          ? !1
4591          : ((this.handle = this._getHandle(t)),
4592            this.handle
4593              ? (e(s.iframeFix === !0 ? "iframe" : s.iframeFix).each(
4594                  function () {
4595                    e(
4596                      "<div class='ui-draggable-iframeFix' style='background: #fff;'></div>"
4597                    )
4598                      .css({
4599                        width: this.offsetWidth + "px",
4600                        height: this.offsetHeight + "px",
4601                        position: "absolute",
4602                        opacity: "0.001",
4603                        zIndex: 1e3,
4604                      })
4605                      .css(e(this).offset())
4606                      .appendTo("body");
4607                  }
4608                ),
4609                !0)
4610              : !1);
4611      },
4612      _mouseStart: function (t) {
4613        var i = this.options;
4614        return (
4615          (this.helper = this._createHelper(t)),
4616          this.helper.addClass("ui-draggable-dragging"),
4617          this._cacheHelperProportions(),
4618          e.ui.ddmanager && (e.ui.ddmanager.current = this),
4619          this._cacheMargins(),
4620          (this.cssPosition = this.helper.css("position")),
4621          (this.scrollParent = this.helper.scrollParent()),
4622          (this.offsetParent = this.helper.offsetParent()),
4623          (this.offsetParentCssPosition = this.offsetParent.css("position")),
4624          (this.offset = this.positionAbs = this.element.offset()),
4625          (this.offset = {
4626            top: this.offset.top - this.margins.top,
4627            left: this.offset.left - this.margins.left,
4628          }),
4629          (this.offset.scroll = !1),
4630          e.extend(this.offset, {
4631            click: {
4632              left: t.pageX - this.offset.left,
4633              top: t.pageY - this.offset.top,
4634            },
4635            parent: this._getParentOffset(),
4636            relative: this._getRelativeOffset(),
4637          }),
4638          (this.originalPosition = this.position =
4639            this._generatePosition(t, !1)),
4640          (this.originalPageX = t.pageX),
4641          (this.originalPageY = t.pageY),
4642          i.cursorAt && this._adjustOffsetFromHelper(i.cursorAt),
4643          this._setContainment(),
4644          this._trigger("start", t) === !1
4645            ? (this._clear(), !1)
4646            : (this._cacheHelperProportions(),
4647              e.ui.ddmanager &&
4648                !i.dropBehaviour &&
4649                e.ui.ddmanager.prepareOffsets(this, t),
4650              this._mouseDrag(t, !0),
4651              e.ui.ddmanager && e.ui.ddmanager.dragStart(this, t),
4652              !0)
4653        );
4654      },
4655      _mouseDrag: function (t, i) {
4656        if (
4657          ("fixed" === this.offsetParentCssPosition &&
4658            (this.offset.parent = this._getParentOffset()),
4659          (this.position = this._generatePosition(t, !0)),
4660          (this.positionAbs = this._convertPositionTo("absolute")),
4661          !i)
4662        ) {
4663          var s = this._uiHash();
4664          if (this._trigger("drag", t, s) === !1) return this._mouseUp({}), !1;
4665          this.position = s.position;
4666        }
4667        return (
4668          (this.helper[0].style.left = this.position.left + "px"),
4669          (this.helper[0].style.top = this.position.top + "px"),
4670          e.ui.ddmanager && e.ui.ddmanager.drag(this, t),
4671          !1
4672        );
4673      },
4674      _mouseStop: function (t) {
4675        var i = this,
4676          s = !1;
4677        return (
4678          e.ui.ddmanager &&
4679            !this.options.dropBehaviour &&
4680            (s = e.ui.ddmanager.drop(this, t)),
4681          this.dropped && ((s = this.dropped), (this.dropped = !1)),
4682          ("invalid" === this.options.revert && !s) ||
4683          ("valid" === this.options.revert && s) ||
4684          this.options.revert === !0 ||
4685          (e.isFunction(this.options.revert) &&
4686            this.options.revert.call(this.element, s))
4687            ? e(this.helper).animate(
4688                this.originalPosition,
4689                parseInt(this.options.revertDuration, 10),
4690                function () {
4691                  i._trigger("stop", t) !== !1 && i._clear();
4692                }
4693              )
4694            : this._trigger("stop", t) !== !1 && this._clear(),
4695          !1
4696        );
4697      },
4698      _mouseUp: function (t) {
4699        return (
4700          e("div.ui-draggable-iframeFix").each(function () {
4701            this.parentNode.removeChild(this);
4702          }),
4703          e.ui.ddmanager && e.ui.ddmanager.dragStop(this, t),
4704          this.element.focus(),
4705          e.ui.mouse.prototype._mouseUp.call(this, t)
4706        );
4707      },
4708      cancel: function () {
4709        return (
4710          this.helper.is(".ui-draggable-dragging")
4711            ? this._mouseUp({})
4712            : this._clear(),
4713          this
4714        );
4715      },
4716      _getHandle: function (t) {
4717        return this.options.handle
4718          ? !!e(t.target).closest(this.element.find(this.options.handle)).length
4719          : !0;
4720      },
4721      _setHandleClassName: function () {
4722        this._removeHandleClassName(),
4723          e(this.options.handle || this.element).addClass(
4724            "ui-draggable-handle"
4725          );
4726      },
4727      _removeHandleClassName: function () {
4728        this.element
4729          .find(".ui-draggable-handle")
4730          .addBack()
4731          .removeClass("ui-draggable-handle");
4732      },
4733      _createHelper: function (t) {
4734        var i = this.options,
4735          s = e.isFunction(i.helper)
4736            ? e(i.helper.apply(this.element[0], [t]))
4737            : "clone" === i.helper
4738            ? this.element.clone().removeAttr("id")
4739            : this.element;
4740        return (
4741          s.parents("body").length ||
4742            s.appendTo(
4743              "parent" === i.appendTo ? this.element[0].parentNode : i.appendTo
4744            ),
4745          s[0] === this.element[0] ||
4746            /(fixed|absolute)/.test(s.css("position")) ||
4747            s.css("position", "absolute"),
4748          s
4749        );
4750      },
4751      _adjustOffsetFromHelper: function (t) {
4752        "string" == typeof t && (t = t.split(" ")),
4753          e.isArray(t) && (t = { left: +t[0], top: +t[1] || 0 }),
4754          "left" in t && (this.offset.click.left = t.left + this.margins.left),
4755          "right" in t &&
4756            (this.offset.click.left =
4757              this.helperProportions.width - t.right + this.margins.left),
4758          "top" in t && (this.offset.click.top = t.top + this.margins.top),
4759          "bottom" in t &&
4760            (this.offset.click.top =
4761              this.helperProportions.height - t.bottom + this.margins.top);
4762      },
4763      _isRootNode: function (e) {
4764        return /(html|body)/i.test(e.tagName) || e === this.document[0];
4765      },
4766      _getParentOffset: function () {
4767        var t = this.offsetParent.offset(),
4768          i = this.document[0];
4769        return (
4770          "absolute" === this.cssPosition &&
4771            this.scrollParent[0] !== i &&
4772            e.contains(this.scrollParent[0], this.offsetParent[0]) &&
4773            ((t.left += this.scrollParent.scrollLeft()),
4774            (t.top += this.scrollParent.scrollTop())),
4775          this._isRootNode(this.offsetParent[0]) && (t = { top: 0, left: 0 }),
4776          {
4777            top:
4778              t.top +
4779              (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
4780            left:
4781              t.left +
4782              (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0),
4783          }
4784        );
4785      },
4786      _getRelativeOffset: function () {
4787        if ("relative" !== this.cssPosition) return { top: 0, left: 0 };
4788        var e = this.element.position(),
4789          t = this._isRootNode(this.scrollParent[0]);
4790        return {
4791          top:
4792            e.top -
4793            (parseInt(this.helper.css("top"), 10) || 0) +
4794            (t ? 0 : this.scrollParent.scrollTop()),
4795          left:
4796            e.left -
4797            (parseInt(this.helper.css("left"), 10) || 0) +
4798            (t ? 0 : this.scrollParent.scrollLeft()),
4799        };
4800      },
4801      _cacheMargins: function () {
4802        this.margins = {
4803          left: parseInt(this.element.css("marginLeft"), 10) || 0,
4804          top: parseInt(this.element.css("marginTop"), 10) || 0,
4805          right: parseInt(this.element.css("marginRight"), 10) || 0,
4806          bottom: parseInt(this.element.css("marginBottom"), 10) || 0,
4807        };
4808      },
4809      _cacheHelperProportions: function () {
4810        this.helperProportions = {
4811          width: this.helper.outerWidth(),
4812          height: this.helper.outerHeight(),
4813        };
4814      },
4815      _setContainment: function () {
4816        var t,
4817          i,
4818          s,
4819          n = this.options,
4820          a = this.document[0];
4821        return (
4822          (this.relative_container = null),
4823          n.containment
4824            ? "window" === n.containment
4825              ? ((this.containment = [
4826                  e(window).scrollLeft() -
4827                    this.offset.relative.left -
4828                    this.offset.parent.left,
4829                  e(window).scrollTop() -
4830                    this.offset.relative.top -
4831                    this.offset.parent.top,
4832                  e(window).scrollLeft() +
4833                    e(window).width() -
4834                    this.helperProportions.width -
4835                    this.margins.left,
4836                  e(window).scrollTop() +
4837                    (e(window).height() || a.body.parentNode.scrollHeight) -
4838                    this.helperProportions.height -
4839                    this.margins.top,
4840                ]),
4841                void 0)
4842              : "document" === n.containment
4843              ? ((this.containment = [
4844                  0,
4845                  0,
4846                  e(a).width() -
4847                    this.helperProportions.width -
4848                    this.margins.left,
4849                  (e(a).height() || a.body.parentNode.scrollHeight) -
4850                    this.helperProportions.height -
4851                    this.margins.top,
4852                ]),
4853                void 0)
4854              : n.containment.constructor === Array
4855              ? ((this.containment = n.containment), void 0)
4856              : ("parent" === n.containment &&
4857                  (n.containment = this.helper[0].parentNode),
4858                (i = e(n.containment)),
4859                (s = i[0]),
4860                s &&
4861                  ((t = "hidden" !== i.css("overflow")),
4862                  (this.containment = [
4863                    (parseInt(i.css("borderLeftWidth"), 10) || 0) +
4864                      (parseInt(i.css("paddingLeft"), 10) || 0),
4865                    (parseInt(i.css("borderTopWidth"), 10) || 0) +
4866                      (parseInt(i.css("paddingTop"), 10) || 0),
4867                    (t
4868                      ? Math.max(s.scrollWidth, s.offsetWidth)
4869                      : s.offsetWidth) -
4870                      (parseInt(i.css("borderRightWidth"), 10) || 0) -
4871                      (parseInt(i.css("paddingRight"), 10) || 0) -
4872                      this.helperProportions.width -
4873                      this.margins.left -
4874                      this.margins.right,
4875                    (t
4876                      ? Math.max(s.scrollHeight, s.offsetHeight)
4877                      : s.offsetHeight) -
4878                      (parseInt(i.css("borderBottomWidth"), 10) || 0) -
4879                      (parseInt(i.css("paddingBottom"), 10) || 0) -
4880                      this.helperProportions.height -
4881                      this.margins.top -
4882                      this.margins.bottom,
4883                  ]),
4884                  (this.relative_container = i)),
4885                void 0)
4886            : ((this.containment = null), void 0)
4887        );
4888      },
4889      _convertPositionTo: function (e, t) {
4890        t || (t = this.position);
4891        var i = "absolute" === e ? 1 : -1,
4892          s = this._isRootNode(this.scrollParent[0]);
4893        return {
4894          top:
4895            t.top +
4896            this.offset.relative.top * i +
4897            this.offset.parent.top * i -
4898            ("fixed" === this.cssPosition
4899              ? -this.offset.scroll.top
4900              : s
4901              ? 0
4902              : this.offset.scroll.top) *
4903              i,
4904          left:
4905            t.left +
4906            this.offset.relative.left * i +
4907            this.offset.parent.left * i -
4908            ("fixed" === this.cssPosition
4909              ? -this.offset.scroll.left
4910              : s
4911              ? 0
4912              : this.offset.scroll.left) *
4913              i,
4914        };
4915      },
4916      _generatePosition: function (e, t) {
4917        var i,
4918          s,
4919          n,
4920          a,
4921          o = this.options,
4922          r = this._isRootNode(this.scrollParent[0]),
4923          h = e.pageX,
4924          l = e.pageY;
4925        return (
4926          (r && this.offset.scroll) ||
4927            (this.offset.scroll = {
4928              top: this.scrollParent.scrollTop(),
4929              left: this.scrollParent.scrollLeft(),
4930            }),
4931          t &&
4932            (this.containment &&
4933              (this.relative_container
4934                ? ((s = this.relative_container.offset()),
4935                  (i = [
4936                    this.containment[0] + s.left,
4937                    this.containment[1] + s.top,
4938                    this.containment[2] + s.left,
4939                    this.containment[3] + s.top,
4940                  ]))
4941                : (i = this.containment),
4942              e.pageX - this.offset.click.left < i[0] &&
4943                (h = i[0] + this.offset.click.left),
4944              e.pageY - this.offset.click.top < i[1] &&
4945                (l = i[1] + this.offset.click.top),
4946              e.pageX - this.offset.click.left > i[2] &&
4947                (h = i[2] + this.offset.click.left),
4948              e.pageY - this.offset.click.top > i[3] &&
4949                (l = i[3] + this.offset.click.top)),
4950            o.grid &&
4951              ((n = o.grid[1]
4952                ? this.originalPageY +
4953                  Math.round((l - this.originalPageY) / o.grid[1]) * o.grid[1]
4954                : this.originalPageY),
4955              (l = i
4956                ? n - this.offset.click.top >= i[1] ||
4957                  n - this.offset.click.top > i[3]
4958                  ? n
4959                  : n - this.offset.click.top >= i[1]
4960                  ? n - o.grid[1]
4961                  : n + o.grid[1]
4962                : n),
4963              (a = o.grid[0]
4964                ? this.originalPageX +
4965                  Math.round((h - this.originalPageX) / o.grid[0]) * o.grid[0]
4966                : this.originalPageX),
4967              (h = i
4968                ? a - this.offset.click.left >= i[0] ||
4969                  a - this.offset.click.left > i[2]
4970                  ? a
4971                  : a - this.offset.click.left >= i[0]
4972                  ? a - o.grid[0]
4973                  : a + o.grid[0]
4974                : a)),
4975            "y" === o.axis && (h = this.originalPageX),
4976            "x" === o.axis && (l = this.originalPageY)),
4977          {
4978            top:
4979              l -
4980              this.offset.click.top -
4981              this.offset.relative.top -
4982              this.offset.parent.top +
4983              ("fixed" === this.cssPosition
4984                ? -this.offset.scroll.top
4985                : r
4986                ? 0
4987                : this.offset.scroll.top),
4988            left:
4989              h -
4990              this.offset.click.left -
4991              this.offset.relative.left -
4992              this.offset.parent.left +
4993              ("fixed" === this.cssPosition
4994                ? -this.offset.scroll.left
4995                : r
4996                ? 0
4997                : this.offset.scroll.left),
4998          }
4999        );
5000      },
5001      _clear: function () {
5002        this.helper.removeClass("ui-draggable-dragging"),
5003          this.helper[0] === this.element[0] ||
5004            this.cancelHelperRemoval ||
5005            this.helper.remove(),
5006          (this.helper = null),
5007          (this.cancelHelperRemoval = !1),
5008          this.destroyOnClear && this.destroy();
5009      },
5010      _trigger: function (t, i, s) {
5011        return (
5012          (s = s || this._uiHash()),
5013          e.ui.plugin.call(this, t, [i, s, this], !0),
5014          "drag" === t &&
5015            (this.positionAbs = this._convertPositionTo("absolute")),
5016          e.Widget.prototype._trigger.call(this, t, i, s)
5017        );
5018      },
5019      plugins: {},
5020      _uiHash: function () {
5021        return {
5022          helper: this.helper,
5023          position: this.position,
5024          originalPosition: this.originalPosition,
5025          offset: this.positionAbs,
5026        };
5027      },
5028    }),
5029    e.ui.plugin.add("draggable", "connectToSortable", {
5030      start: function (t, i, s) {
5031        var n = s.options,
5032          a = e.extend({}, i, { item: s.element });
5033        (s.sortables = []),
5034          e(n.connectToSortable).each(function () {
5035            var i = e(this).sortable("instance");
5036            i &&
5037              !i.options.disabled &&
5038              (s.sortables.push({
5039                instance: i,
5040                shouldRevert: i.options.revert,
5041              }),
5042              i.refreshPositions(),
5043              i._trigger("activate", t, a));
5044          });
5045      },
5046      stop: function (t, i, s) {
5047        var n = e.extend({}, i, { item: s.element });
5048        e.each(s.sortables, function () {
5049          this.instance.isOver
5050            ? ((this.instance.isOver = 0),
5051              (s.cancelHelperRemoval = !0),
5052              (this.instance.cancelHelperRemoval = !1),
5053              this.shouldRevert &&
5054                (this.instance.options.revert = this.shouldRevert),
5055              this.instance._mouseStop(t),
5056              (this.instance.options.helper = this.instance.options._helper),
5057              "original" === s.options.helper &&
5058                this.instance.currentItem.css({ top: "auto", left: "auto" }))
5059            : ((this.instance.cancelHelperRemoval = !1),
5060              this.instance._trigger("deactivate", t, n));
5061        });
5062      },
5063      drag: function (t, i, s) {
5064        var n = this;
5065        e.each(s.sortables, function () {
5066          var a = !1,
5067            o = this;
5068          (this.instance.positionAbs = s.positionAbs),
5069            (this.instance.helperProportions = s.helperProportions),
5070            (this.instance.offset.click = s.offset.click),
5071            this.instance._intersectsWith(this.instance.containerCache) &&
5072              ((a = !0),
5073              e.each(s.sortables, function () {
5074                return (
5075                  (this.instance.positionAbs = s.positionAbs),
5076                  (this.instance.helperProportions = s.helperProportions),
5077                  (this.instance.offset.click = s.offset.click),
5078                  this !== o &&
5079                    this.instance._intersectsWith(
5080                      this.instance.containerCache
5081                    ) &&
5082                    e.contains(
5083                      o.instance.element[0],
5084                      this.instance.element[0]
5085                    ) &&
5086                    (a = !1),
5087                  a
5088                );
5089              })),
5090            a
5091              ? (this.instance.isOver ||
5092                  ((this.instance.isOver = 1),
5093                  (this.instance.currentItem = e(n)
5094                    .clone()
5095                    .removeAttr("id")
5096                    .appendTo(this.instance.element)
5097                    .data("ui-sortable-item", !0)),
5098                  (this.instance.options._helper =
5099                    this.instance.options.helper),
5100                  (this.instance.options.helper = function () {
5101                    return i.helper[0];
5102                  }),
5103                  (t.target = this.instance.currentItem[0]),
5104                  this.instance._mouseCapture(t, !0),
5105                  this.instance._mouseStart(t, !0, !0),
5106                  (this.instance.offset.click.top = s.offset.click.top),
5107                  (this.instance.offset.click.left = s.offset.click.left),
5108                  (this.instance.offset.parent.left -=
5109                    s.offset.parent.left - this.instance.offset.parent.left),
5110                  (this.instance.offset.parent.top -=
5111                    s.offset.parent.top - this.instance.offset.parent.top),
5112                  s._trigger("toSortable", t),
5113                  (s.dropped = this.instance.element),
5114                  (s.currentItem = s.element),
5115                  (this.instance.fromOutside = s)),
5116                this.instance.currentItem && this.instance._mouseDrag(t))
5117              : this.instance.isOver &&
5118                ((this.instance.isOver = 0),
5119                (this.instance.cancelHelperRemoval = !0),
5120                (this.instance.options.revert = !1),
5121                this.instance._trigger(
5122                  "out",
5123                  t,
5124                  this.instance._uiHash(this.instance)
5125                ),
5126                this.instance._mouseStop(t, !0),
5127                (this.instance.options.helper = this.instance.options._helper),
5128                this.instance.currentItem.remove(),
5129                this.instance.placeholder && this.instance.placeholder.remove(),
5130                s._trigger("fromSortable", t),
5131                (s.dropped = !1));
5132        });
5133      },
5134    }),
5135    e.ui.plugin.add("draggable", "cursor", {
5136      start: function (t, i, s) {
5137        var n = e("body"),
5138          a = s.options;
5139        n.css("cursor") && (a._cursor = n.css("cursor")),
5140          n.css("cursor", a.cursor);
5141      },
5142      stop: function (t, i, s) {
5143        var n = s.options;
5144        n._cursor && e("body").css("cursor", n._cursor);
5145      },
5146    }),
5147    e.ui.plugin.add("draggable", "opacity", {
5148      start: function (t, i, s) {
5149        var n = e(i.helper),
5150          a = s.options;
5151        n.css("opacity") && (a._opacity = n.css("opacity")),
5152          n.css("opacity", a.opacity);
5153      },
5154      stop: function (t, i, s) {
5155        var n = s.options;
5156        n._opacity && e(i.helper).css("opacity", n._opacity);
5157      },
5158    }),
5159    e.ui.plugin.add("draggable", "scroll", {
5160      start: function (e, t, i) {
5161        i.scrollParent[0] !== i.document[0] &&
5162          "HTML" !== i.scrollParent[0].tagName &&
5163          (i.overflowOffset = i.scrollParent.offset());
5164      },
5165      drag: function (t, i, s) {
5166        var n = s.options,
5167          a = !1,
5168          o = s.document[0];
5169        s.scrollParent[0] !== o && "HTML" !== s.scrollParent[0].tagName
5170          ? ((n.axis && "x" === n.axis) ||
5171              (s.overflowOffset.top + s.scrollParent[0].offsetHeight - t.pageY <
5172              n.scrollSensitivity
5173                ? (s.scrollParent[0].scrollTop = a =
5174                    s.scrollParent[0].scrollTop + n.scrollSpeed)
5175                : t.pageY - s.overflowOffset.top < n.scrollSensitivity &&
5176                  (s.scrollParent[0].scrollTop = a =
5177                    s.scrollParent[0].scrollTop - n.scrollSpeed)),
5178            (n.axis && "y" === n.axis) ||
5179              (s.overflowOffset.left + s.scrollParent[0].offsetWidth - t.pageX <
5180              n.scrollSensitivity
5181                ? (s.scrollParent[0].scrollLeft = a =
5182                    s.scrollParent[0].scrollLeft + n.scrollSpeed)
5183                : t.pageX - s.overflowOffset.left < n.scrollSensitivity &&
5184                  (s.scrollParent[0].scrollLeft = a =
5185                    s.scrollParent[0].scrollLeft - n.scrollSpeed)))
5186          : ((n.axis && "x" === n.axis) ||
5187              (t.pageY - e(o).scrollTop() < n.scrollSensitivity
5188                ? (a = e(o).scrollTop(e(o).scrollTop() - n.scrollSpeed))
5189                : e(window).height() - (t.pageY - e(o).scrollTop()) <
5190                    n.scrollSensitivity &&
5191                  (a = e(o).scrollTop(e(o).scrollTop() + n.scrollSpeed))),
5192            (n.axis && "y" === n.axis) ||
5193              (t.pageX - e(o).scrollLeft() < n.scrollSensitivity
5194                ? (a = e(o).scrollLeft(e(o).scrollLeft() - n.scrollSpeed))
5195                : e(window).width() - (t.pageX - e(o).scrollLeft()) <
5196                    n.scrollSensitivity &&
5197                  (a = e(o).scrollLeft(e(o).scrollLeft() + n.scrollSpeed)))),
5198          a !== !1 &&
5199            e.ui.ddmanager &&
5200            !n.dropBehaviour &&
5201            e.ui.ddmanager.prepareOffsets(s, t);
5202      },
5203    }),
5204    e.ui.plugin.add("draggable", "snap", {
5205      start: function (t, i, s) {
5206        var n = s.options;
5207        (s.snapElements = []),
5208          e(
5209            n.snap.constructor !== String
5210              ? n.snap.items || ":data(ui-draggable)"
5211              : n.snap
5212          ).each(function () {
5213            var t = e(this),
5214              i = t.offset();
5215            this !== s.element[0] &&
5216              s.snapElements.push({
5217                item: this,
5218                width: t.outerWidth(),
5219                height: t.outerHeight(),
5220                top: i.top,
5221                left: i.left,
5222              });
5223          });
5224      },
5225      drag: function (t, i, s) {
5226        var n,
5227          a,
5228          o,
5229          r,
5230          h,
5231          l,
5232          u,
5233          d,
5234          c,
5235          p,
5236          f = s.options,
5237          m = f.snapTolerance,
5238          g = i.offset.left,
5239          v = g + s.helperProportions.width,
5240          y = i.offset.top,
5241          b = y + s.helperProportions.height;
5242        for (c = s.snapElements.length - 1; c >= 0; c--)
5243          (h = s.snapElements[c].left),
5244            (l = h + s.snapElements[c].width),
5245            (u = s.snapElements[c].top),
5246            (d = u + s.snapElements[c].height),
5247            h - m > v ||
5248            g > l + m ||
5249            u - m > b ||
5250            y > d + m ||
5251            !e.contains(
5252              s.snapElements[c].item.ownerDocument,
5253              s.snapElements[c].item
5254            )
5255              ? (s.snapElements[c].snapping &&
5256                  s.options.snap.release &&
5257                  s.options.snap.release.call(
5258                    s.element,
5259                    t,
5260                    e.extend(s._uiHash(), { snapItem: s.snapElements[c].item })
5261                  ),
5262                (s.snapElements[c].snapping = !1))
5263              : ("inner" !== f.snapMode &&
5264                  ((n = m >= Math.abs(u - b)),
5265                  (a = m >= Math.abs(d - y)),
5266                  (o = m >= Math.abs(h - v)),
5267                  (r = m >= Math.abs(l - g)),
5268                  n &&
5269                    (i.position.top =
5270                      s._convertPositionTo("relative", {
5271                        top: u - s.helperProportions.height,
5272                        left: 0,
5273                      }).top - s.margins.top),
5274                  a &&
5275                    (i.position.top =
5276                      s._convertPositionTo("relative", { top: d, left: 0 })
5277                        .top - s.margins.top),
5278                  o &&
5279                    (i.position.left =
5280                      s._convertPositionTo("relative", {
5281                        top: 0,
5282                        left: h - s.helperProportions.width,
5283                      }).left - s.margins.left),
5284                  r &&
5285                    (i.position.left =
5286                      s._convertPositionTo("relative", { top: 0, left: l })
5287                        .left - s.margins.left)),
5288                (p = n || a || o || r),
5289                "outer" !== f.snapMode &&
5290                  ((n = m >= Math.abs(u - y)),
5291                  (a = m >= Math.abs(d - b)),
5292                  (o = m >= Math.abs(h - g)),
5293                  (r = m >= Math.abs(l - v)),
5294                  n &&
5295                    (i.position.top =
5296                      s._convertPositionTo("relative", { top: u, left: 0 })
5297                        .top - s.margins.top),
5298                  a &&
5299                    (i.position.top =
5300                      s._convertPositionTo("relative", {
5301                        top: d - s.helperProportions.height,
5302                        left: 0,
5303                      }).top - s.margins.top),
5304                  o &&
5305                    (i.position.left =
5306                      s._convertPositionTo("relative", { top: 0, left: h })
5307                        .left - s.margins.left),
5308                  r &&
5309                    (i.position.left =
5310                      s._convertPositionTo("relative", {
5311                        top: 0,
5312                        left: l - s.helperProportions.width,
5313                      }).left - 
5313s.margins.left)),
5314                !s.snapElements[c].snapping &&
5315                  (n || a || o || r || p) &&
5316                  s.options.snap.snap &&
5317                  s.options.snap.snap.call(
5318                    s.element,
5319                    t,
5320                    e.extend(s._uiHash(), { snapItem: s.snapElements[c].item })
5321                  ),
5322                (s.snapElements[c].snapping = n || a || o || r || p));
5323      },
5324    }),
5325    e.ui.plugin.add("draggable", "stack", {
5326      start: function (t, i, s) {
5327        var n,
5328          a = s.options,
5329          o = e.makeArray(e(a.stack)).sort(function (t, i) {
5330            return (
5331              (parseInt(e(t).css("zIndex"), 10) || 0) -
5332              (parseInt(e(i).css("zIndex"), 10) || 0)
5333            );
5334          });
5335        o.length &&
5336          ((n = parseInt(e(o[0]).css("zIndex"), 10) || 0),
5337          e(o).each(function (t) {
5338            e(this).css("zIndex", n + t);
5339          }),
5340          this.css("zIndex", n + o.length));
5341      },
5342    }),
5343    e.ui.plugin.add("draggable", "zIndex", {
5344      start: function (t, i, s) {
5345        var n = e(i.helper),
5346          a = s.options;
5347        n.css("zIndex") && (a._zIndex = n.css("zIndex")),
5348          n.css("zIndex", a.zIndex);
5349      },
5350      stop: function (t, i, s) {
5351        var n = s.options;
5352        n._zIndex && e(i.helper).css("zIndex", n._zIndex);
5353      },
5354    }),
5355    e.ui.draggable,
5356    e.widget("ui.resizable", e.ui.mouse, {
5357      version: "1.11.0",
5358      widgetEventPrefix: "resize",
5359      options: {
5360        alsoResize: !1,
5361        animate: !1,
5362        animateDuration: "slow",
5363        animateEasing: "swing",
5364        aspectRatio: !1,
5365        autoHide: !1,
5366        containment: !1,
5367        ghost: !1,
5368        grid: !1,
5369        handles: "e,s,se",
5370        helper: !1,
5371        maxHeight: null,
5372        maxWidth: null,
5373        minHeight: 10,
5374        minWidth: 10,
5375        zIndex: 90,
5376        resize: null,
5377        start: null,
5378        stop: null,
5379      },
5380      _num: function (e) {
5381        return parseInt(e, 10) || 0;
5382      },
5383      _isNumber: function (e) {
5384        return !isNaN(parseInt(e, 10));
5385      },
5386      _hasScroll: function (t, i) {
5387        if ("hidden" === e(t).css("overflow")) return !1;
5388        var s = i && "left" === i ? "scrollLeft" : "scrollTop",
5389          n = !1;
5390        return t[s] > 0 ? !0 : ((t[s] = 1), (n = t[s] > 0), (t[s] = 0), n);
5391      },
5392      _create: function () {
5393        var t,
5394          i,
5395          s,
5396          n,
5397          a,
5398          o = this,
5399          r = this.options;
5400        if (
5401          (this.element.addClass("ui-resizable"),
5402          e.extend(this, {
5403            _aspectRatio: !!r.aspectRatio,
5404            aspectRatio: r.aspectRatio,
5405            originalElement: this.element,
5406            _proportionallyResizeElements: [],
5407            _helper:
5408              r.helper || r.ghost || r.animate
5409                ? r.helper || "ui-resizable-helper"
5410                : null,
5411          }),
5412          this.element[0].nodeName.match(
5413            /canvas|textarea|input|select|button|img/i
5414          ) &&
5415            (this.element.wrap(
5416              e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css(
5417                {
5418                  position: this.element.css("position"),
5419                  width: this.element.outerWidth(),
5420                  height: this.element.outerHeight(),
5421                  top: this.element.css("top"),
5422                  left: this.element.css("left"),
5423                }
5424              )
5425            ),
5426            (this.element = this.element
5427              .parent()
5428              .data("ui-resizable", this.element.resizable("instance"))),
5429            (this.elementIsWrapper = !0),
5430            this.element.css({
5431              marginLeft: this.originalElement.css("marginLeft"),
5432              marginTop: this.originalElement.css("marginTop"),
5433              marginRight: this.originalElement.css("marginRight"),
5434              marginBottom: this.originalElement.css("marginBottom"),
5435            }),
5436            this.originalElement.css({
5437              marginLeft: 0,
5438              marginTop: 0,
5439              marginRight: 0,
5440              marginBottom: 0,
5441            }),
5442            (this.originalResizeStyle = this.originalElement.css("resize")),
5443            this.originalElement.css("resize", "none"),
5444            this._proportionallyResizeElements.push(
5445              this.originalElement.css({
5446                position: "static",
5447                zoom: 1,
5448                display: "block",
5449              })
5450            ),
5451            this.originalElement.css({
5452              margin: this.originalElement.css("margin"),
5453            }),
5454            this._proportionallyResize()),
5455          (this.handles =
5456            r.handles ||
5457            (e(".ui-resizable-handle", this.element).length
5458              ? {
5459                  n: ".ui-resizable-n",
5460                  e: ".ui-resizable-e",
5461                  s: ".ui-resizable-s",
5462                  w: ".ui-resizable-w",
5463                  se: ".ui-resizable-se",
5464                  sw: ".ui-resizable-sw",
5465                  ne: ".ui-resizable-ne",
5466                  nw: ".ui-resizable-nw",
5467                }
5468              : "e,s,se")),
5469          this.handles.constructor === String)
5470        )
5471          for (
5472            "all" === this.handles && (this.handles = "n,e,s,w,se,sw,ne,nw"),
5473              t = this.handles.split(","),
5474              this.handles = {},
5475              i = 0;
5476            t.length > i;
5477            i++
5478          )
5479            (s = e.trim(t[i])),
5480              (a = "ui-resizable-" + s),
5481              (n = e("<div class='ui-resizable-handle " + a + "'></div>")),
5482              n.css({ zIndex: r.zIndex }),
5483              "se" === s && n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),
5484              (this.handles[s] = ".ui-resizable-" + s),
5485              this.element.append(n);
5486        (this._renderAxis = function (t) {
5487          var i, s, n, a;
5488          t = t || this.element;
5489          for (i in this.handles)
5490            this.handles[i].constructor === String &&
5491              (this.handles[i] = this.element
5492                .children(this.handles[i])
5493                .first()
5494                .show()),
5495              this.elementIsWrapper &&
5496                this.originalElement[0].nodeName.match(
5497                  /textarea|input|select|button/i
5498                ) &&
5499                ((s = e(this.handles[i], this.element)),
5500                (a = /sw|ne|nw|se|n|s/.test(i)
5501                  ? s.outerHeight()
5502                  : s.outerWidth()),
5503                (n = [
5504                  "padding",
5505                  /ne|nw|n/.test(i)
5506                    ? "Top"
5507                    : /se|sw|s/.test(i)
5508                    ? "Bottom"
5509                    : /^e$/.test(i)
5510                    ? "Right"
5511                    : "Left",
5512                ].join("")),
5513                t.css(n, a),
5514                this._proportionallyResize()),
5515              e(this.handles[i]).length;
5516        }),
5517          this._renderAxis(this.element),
5518          (this._handles = e(
5519            ".ui-resizable-handle",
5520            this.element
5521          ).disableSelection()),
5522          this._handles.mouseover(function () {
5523            o.resizing ||
5524              (this.className &&
5525                (n = this.className.match(
5526                  /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i
5527                )),
5528              (o.axis = n && n[1] ? n[1] : "se"));
5529          }),
5530          r.autoHide &&
5531            (this._handles.hide(),
5532            e(this.element)
5533              .addClass("ui-resizable-autohide")
5534              .mouseenter(function () {
5535                r.disabled ||
5536                  (e(this).removeClass("ui-resizable-autohide"),
5537                  o._handles.show());
5538              })
5539              .mouseleave(function () {
5540                r.disabled ||
5541                  o.resizing ||
5542                  (e(this).addClass("ui-resizable-autohide"),
5543                  o._handles.hide());
5544              })),
5545          this._mouseInit();
5546      },
5547      _destroy: function () {
5548        this._mouseDestroy();
5549        var t,
5550          i = function (t) {
5551            e(t)
5552              .removeClass(
5553                "ui-resizable ui-resizable-disabled ui-resizable-resizing"
5554              )
5555              .removeData("resizable")
5556              .removeData("ui-resizable")
5557              .unbind(".resizable")
5558              .find(".ui-resizable-handle")
5559              .remove();
5560          };
5561        return (
5562          this.elementIsWrapper &&
5563            (i(this.element),
5564            (t = this.element),
5565            this.originalElement
5566              .css({
5567                position: t.css("position"),
5568                width: t.outerWidth(),
5569                height: t.outerHeight(),
5570                top: t.css("top"),
5571                left: t.css("left"),
5572              })
5573              .insertAfter(t),
5574            t.remove()),
5575          this.originalElement.css("resize", this.originalResizeStyle),
5576          i(this.originalElement),
5577          this
5578        );
5579      },
5580      _mouseCapture: function (t) {
5581        var i,
5582          s,
5583          n = !1;
5584        for (i in this.handles)
5585          (s = e(this.handles[i])[0]),
5586            (s === t.target || e.contains(s, t.target)) && (n = !0);
5587        return !this.options.disabled && n;
5588      },
5589      _mouseStart: function (t) {
5590        var i,
5591          s,
5592          n,
5593          a = this.options,
5594          o = this.element;
5595        return (
5596          (this.resizing = !0),
5597          this._renderProxy(),
5598          (i = this._num(this.helper.css("left"))),
5599          (s = this._num(this.helper.css("top"))),
5600          a.containment &&
5601            ((i += e(a.containment).scrollLeft() || 0),
5602            (s += e(a.containment).scrollTop() || 0)),
5603          (this.offset = this.helper.offset()),
5604          (this.position = { left: i, top: s }),
5605          (this.size = this._helper
5606            ? { width: this.helper.width(), height: this.helper.height() }
5607            : { width: o.width(), height: o.height() }),
5608          (this.originalSize = this._helper
5609            ? { width: o.outerWidth(), height: o.outerHeight() }
5610            : { width: o.width(), height: o.height() }),
5611          (this.originalPosition = { left: i, top: s }),
5612          (this.sizeDiff = {
5613            width: o.outerWidth() - o.width(),
5614            height: o.outerHeight() - o.height(),
5615          }),
5616          (this.originalMousePosition = { left: t.pageX, top: t.pageY }),
5617          (this.aspectRatio =
5618            "number" == typeof a.aspectRatio
5619              ? a.aspectRatio
5620              : this.originalSize.width / this.originalSize.height || 1),
5621          (n = e(".ui-resizable-" + this.axis).css("cursor")),
5622          e("body").css("cursor", "auto" === n ? this.axis + "-resize" : n),
5623          o.addClass("ui-resizable-resizing"),
5624          this._propagate("start", t),
5625          !0
5626        );
5627      },
5628      _mouseDrag: function (t) {
5629        var i,
5630          s = this.helper,
5631          n = {},
5632          a = this.originalMousePosition,
5633          o = this.axis,
5634          r = t.pageX - a.left || 0,
5635          h = t.pageY - a.top || 0,
5636          l = this._change[o];
5637        return (
5638          (this.prevPosition = {
5639            top: this.position.top,
5640            left: this.position.left,
5641          }),
5642          (this.prevSize = {
5643            width: this.size.width,
5644            height: this.size.height,
5645          }),
5646          l
5647            ? ((i = l.apply(this, [t, r, h])),
5648              this._updateVirtualBoundaries(t.shiftKey),
5649              (this._aspectRatio || t.shiftKey) &&
5650                (i = this._updateRatio(i, t)),
5651              (i = this._respectSize(i, t)),
5652              this._updateCache(i),
5653              this._propagate("resize", t),
5654              this.position.top !== this.prevPosition.top &&
5655                (n.top = this.position.top + "px"),
5656              this.position.left !== this.prevPosition.left &&
5657                (n.left = this.position.left + "px"),
5658              this.size.width !== this.prevSize.width &&
5659                (n.width = this.size.width + "px"),
5660              this.size.height !== this.prevSize.height &&
5661                (n.height = this.size.height + "px"),
5662              s.css(n),
5663              !this._helper &&
5664                this._proportionallyResizeElements.length &&
5665                this._proportionallyResize(),
5666              e.isEmptyObject(n) || this._trigger("resize", t, this.ui()),
5667              !1)
5668            : !1
5669        );
5670      },
5671      _mouseStop: function (t) {
5672        this.resizing = !1;
5673        var i,
5674          s,
5675          n,
5676          a,
5677          o,
5678          r,
5679          h,
5680          l = this.options,
5681          u = this;
5682        return (
5683          this._helper &&
5684            ((i = this._proportionallyResizeElements),
5685            (s = i.length && /textarea/i.test(i[0].nodeName)),
5686            (n = s && this._hasScroll(i[0], "left") ? 0 : u.sizeDiff.height),
5687            (a = s ? 0 : u.sizeDiff.width),
5688            (o = {
5689              width: u.helper.width() - a,
5690              height: u.helper.height() - n,
5691            }),
5692            (r =
5693              parseInt(u.element.css("left"), 10) +
5694                (u.position.left - u.originalPosition.left) || null),
5695            (h =
5696              parseInt(u.element.css("top"), 10) +
5697                (u.position.top - u.originalPosition.top) || null),
5698            l.animate || this.element.css(e.extend(o, { top: h, left
5698: r })),
5699            u.helper.height(u.size.height),
5700            u.helper.width(u.size.width),
5701            this._helper && !l.animate && this._proportionallyResize()),
5702          e("body").css("cursor", "auto"),
5703          this.element.removeClass("ui-resizable-resizing"),
5704          this._propagate("stop", t),
5705          this._helper && this.helper.remove(),
5706          !1
5707        );
5708      },
5709      _updateVirtualBoundaries: function (e) {
5710        var t,
5711          i,
5712          s,
5713          n,
5714          a,
5715          o = this.options;
5716        (a = {
5717          minWidth: this._isNumber(o.minWidth) ? o.minWidth : 0,
5718          maxWidth: this._isNumber(o.maxWidth) ? o.maxWidth : 1 / 0,
5719          minHeight: this._isNumber(o.minHeight) ? o.minHeight : 0,
5720          maxHeight: this._isNumber(o.maxHeight) ? o.maxHeight : 1 / 0,
5721        }),
5722          (this._aspectRatio || e) &&
5723            ((t = a.minHeight * this.aspectRatio),
5724            (s = a.minWidth / this.aspectRatio),
5725            (i = a.maxHeight * this.aspectRatio),
5726            (n = a.maxWidth / this.aspectRatio),
5727            t > a.minWidth && (a.minWidth = t),
5728            s > a.minHeight && (a.minHeight = s),
5729            a.maxWidth > i && (a.maxWidth = i),
5730            a.maxHeight > n && (a.maxHeight = n)),
5731          (this._vBoundaries = a);
5732      },
5733      _updateCache: function (e) {
5734        (this.offset = this.helper.offset()),
5735          this._isNumber(e.left) && (this.position.left = e.left),
5736          this._isNumber(e.top) && (this.position.top = e.top),
5737          this._isNumber(e.height) && (this.size.height = e.height),
5738          this._isNumber(e.width) && (this.size.width = e.width);
5739      },
5740      _updateRatio: function (e) {
5741        var t = this.position,
5742          i = this.size,
5743          s = this.axis;
5744        return (
5745          this._isNumber(e.height)
5746            ? (e.width = e.height * this.aspectRatio)
5747            : this._isNumber(e.width) &&
5748              (e.height = e.width / this.aspectRatio),
5749          "sw" === s &&
5750            ((e.left = t.left + (i.width - e.width)), (e.top = null)),
5751          "nw" === s &&
5752            ((e.top = t.top + (i.height - e.height)),
5753            (e.left = t.left + (i.width - e.width))),
5754          e
5755        );
5756      },
5757      _respectSize: function (e) {
5758        var t = this._vBoundaries,
5759          i = this.axis,
5760          s = this._isNumber(e.width) && t.maxWidth && t.maxWidth < e.width,
5761          n = this._isNumber(e.height) && t.maxHeight && t.maxHeight < e.height,
5762          a = this._isNumber(e.width) && t.minWidth && t.minWidth > e.width,
5763          o = this._isNumber(e.height) && t.minHeight && t.minHeight > e.height,
5764          r = this.originalPosition.left + this.originalSize.width,
5765          h = this.position.top + this.size.height,
5766          l = /sw|nw|w/.test(i),
5767          u = /nw|ne|n/.test(i);
5768        return (
5769          a && (e.width = t.minWidth),
5770          o && (e.height = t.minHeight),
5771          s && (e.width = t.maxWidth),
5772          n && (e.height = t.maxHeight),
5773          a && l && (e.left = r - t.minWidth),
5774          s && l && (e.left = r - t.maxWidth),
5775          o && u && (e.top = h - t.minHeight),
5776          n && u && (e.top = h - t.maxHeight),
5777          e.width || e.height || e.left || !e.top
5778            ? e.width || e.height || e.top || !e.left || (e.left = null)
5779            : (e.top = null),
5780          e
5781        );
5782      },
5783      _proportionallyResize: function () {
5784        if (this._proportionallyResizeElements.length) {
5785          var e,
5786            t,
5787            i,
5788            s,
5789            n,
5790            a = this.helper || this.element;
5791          for (e = 0; this._proportionallyResizeElements.length > e; e++) {
5792            if (((n = this._proportionallyResizeElements[e]), !this.borderDif))
5793              for (
5794                this.borderDif = [],
5795                  i = [
5796                    n.css("borderTopWidth"),
5797                    n.css("borderRightWidth"),
5798                    n.css("borderBottomWidth"),
5799                    n.css("borderLeftWidth"),
5800                  ],
5801                  s = [
5802                    n.css("paddingTop"),
5803                    n.css("paddingRight"),
5804                    n.css("paddingBottom"),
5805                    n.css("paddingLeft"),
5806                  ],
5807                  t = 0;
5808                i.length > t;
5809                t++
5810              )
5811                this.borderDif[t] =
5812                  (parseInt(i[t], 10) || 0) + (parseInt(s[t], 10) || 0);
5813            n.css({
5814              height: a.height() - this.borderDif[0] - this.borderDif[2] || 0,
5815              width: a.width() - this.borderDif[1] - this.borderDif[3] || 0,
5816            });
5817          }
5818        }
5819      },
5820      _renderProxy: function () {
5821        var t = this.element,
5822          i = this.options;
5823        (this.elementOffset = t.offset()),
5824          this._helper
5825            ? ((this.helper =
5826                this.helper || e("<div style='overflow:hidden;'></div>")),
5827              this.helper.addClass(this._helper).css({
5828                width: this.element.outerWidth() - 1,
5829                height: this.element.outerHeight() - 1,
5830                position: "absolute",
5831                left: this.elementOffset.left + "px",
5832                top: this.elementOffset.top + "px",
5833                zIndex: ++i.zIndex,
5834              }),
5835              this.helper.appendTo("body").disableSelection())
5836            : (this.helper = this.element);
5837      },
5838      _change: {
5839        e: function (e, t) {
5840          return { width: this.originalSize.width + t };
5841        },
5842        w: function (e, t) {
5843          var i = this.originalSize,
5844            s = this.originalPosition;
5845          return { left: s.left + t, width: i.width - t };
5846        },
5847        n: function (e, t, i) {
5848          var s = this.originalSize,
5849            n = this.originalPosition;
5850          return { top: n.top + i, height: s.height - i };
5851        },
5852        s: function (e, t, i) {
5853          return { height: this.originalSize.height + i };
5854        },
5855        se: function (t, i, s) {
5856          return e.extend(
5857            this._change.s.apply(this, arguments),
5858            this._change.e.apply(this, [t, i, s])
5859          );
5860        },
5861        sw: function (t, i, s) {
5862          return e.extend(
5863            this._change.s.apply(this, arguments),
5864            this._change.w.apply(this, [t, i, s])
5865          );
5866        },
5867        ne: function (t, i, s) {
5868          return e.extend(
5869            this._change.n.apply(this, arguments),
5870            this._change.e.apply(this, [t, i, s])
5871          );
5872        },
5873        nw: function (t, i, s) {
5874          return e.extend(
5875            this._change.n.apply(this, arguments),
5876            this._change.w.apply(this, [t, i, s])
5877          );
5878        },
5879      },
5880      _propagate: function (t, i) {
5881        e.ui.plugin.call(this, t, [i, this.ui()]),
5882          "resize" !== t && this._trigger(t, i, this.ui());
5883      },
5884      plugins: {},
5885      ui: function () {
5886        return {
5887          originalElement: this.originalElement,
5888          element: this.element,
5889          helper: this.helper,
5890          position: this.position,
5891          size: this.size,
5892          originalSize: this.originalSize,
5893          originalPosition: this.originalPosition,
5894          prevSize: this.prevSize,
5895          prevPosition: this.prevPosition,
5896        };
5897      },
5898    }),
5899    e.ui.plugin.add("resizable", "animate", {
5900      stop: function (t) {
5901        var i = e(this).resizable("instance"),
5902          s = i.options,
5903          n = i._proportionallyResizeElements,
5904          a = n.length && /textarea/i.test(n[0].nodeName),
5905          o = a && i._hasScroll(n[0], "left") ? 0 : i.sizeDiff.height,
5906          r = a ? 0 : i.sizeDiff.width,
5907          h = { width: i.size.width - r, height: i.size.height - o },
5908          l =
5909            parseInt(i.element.css("left"), 10) +
5910              (i.position.left - i.originalPosition.left) || null,
5911          u =
5912            parseInt(i.element.css("top"), 10) +
5913              (i.position.top - i.originalPosition.top) || null;
5914        i.element.animate(e.extend(h, u && l ? { top: u, left: l } : {}), {
5915          duration: s.animateDuration,
5916          easing: s.animateEasing,
5917          step: function () {
5918            var s = {
5919              width: parseInt(i.element.css("width"), 10),
5920              height: parseInt(i.element.css("height"), 10),
5921              top: parseInt(i.element.css("top"), 10),
5922              left: parseInt(i.element.css("left"), 10),
5923            };
5924            n && n.length && e(n[0]).css({ width: s.width, height: s.height }),
5925              i._updateCache(s),
5926              i._propagate("resize", t);
5927          },
5928        });
5929      },
5930    }),
5931    e.ui.plugin.add("resizable", "containment", {
5932      start: function () {
5933        var t,
5934          i,
5935          s,
5936          n,
5937          a,
5938          o,
5939          r,
5940          h = e(this).resizable("instance"),
5941          l = h.options,
5942          u = h.element,
5943          d = l.containment,
5944          c =
5945            d instanceof e
5946              ? d.get(0)
5947              : /parent/.test(d)
5948              ? u.parent().get(0)
5949              : d;
5950        c &&
5951          ((h.containerElement = e(c)),
5952          /document/.test(d) || d === document
5953            ? ((h.containerOffset = { left: 0, top: 0 }),
5954              (h.containerPosition = { left: 0, top: 0 }),
5955              (h.parentData = {
5956                element: e(document),
5957                left: 0,
5958                top: 0,
5959                width: e(document).width(),
5960                height:
5961                  e(document).height() || document.body.parentNode.scrollHeight,
5962              }))
5963            : ((t = e(c)),
5964              (i = []),
5965              e(["Top", "Right", "Left", "Bottom"]).each(function (e, s) {
5966                i[e] = h._num(t.css("padding" + s));
5967              }),
5968              (h.containerOffset = t.offset()),
5969              (h.containerPosition = t.position()),
5970              (h.containerSize = {
5971                height: t.innerHeight() - i[3],
5972                width: t.innerWidth() - i[1],
5973              }),
5974              (s = h.containerOffset),
5975              (n = h.containerSize.height),
5976              (a = h.containerSize.width),
5977              (o = h._hasScroll(c, "left") ? c.scrollWidth : a),
5978              (r = h._hasScroll(c) ? c.scrollHeight : n),
5979              (h.parentData = {
5980                element: c,
5981                left: s.left,
5982                top: s.top,
5983                width: o,
5984                height: r,
5985              })));
5986      },
5987      resize: function (t, i) {
5988        var s,
5989          n,
5990          a,
5991          o,
5992          r = e(this).resizable("instance"),
5993          h = r.options,
5994          l = r.containerOffset,
5995          u = r.position,
5996          d = r._aspectRatio || t.shiftKey,
5997          c = { top: 0, left: 0 },
5998          p = r.containerElement,
5999          f = !0;
6000        p[0] !== document && /static/.test(p.css("position")) && (c = l),
6001          u.left < (r._helper ? l.left : 0) &&
6002            ((r.size.width =
6003              r.size.width +
6004              (r._helper
6005                ? r.position.left - l.left
6006                : r.position.left - c.left)),
6007            d && ((r.size.height = r.size.width / r.aspectRatio), (f = !1)),
6008            (r.position.left = h.helper ? l.left : 0)),
6009          u.top < (r._helper ? l.top : 0) &&
6010            ((r.size.height =
6011              r.size.height +
6012              (r._helper ? r.position.top - l.top : r.position.top)),
6013            d && ((r.size.width = r.size.height * r.aspectRatio), (f = !1)),
6014            (r.position.top = r._helper ? l.top : 0)),
6015          (r.offset.left = r.parentData.left + r.position.left),
6016          (r.offset.top = r.parentData.top + r.position.top),
6017          (s = Math.abs(
6018            (r._helper ? r.offset.left - c.left : r.offset.left - l.left) +
6019              r.sizeDiff.width
6020          )),
6021          (n = Math.abs(
6022            (r._helper ? r.offset.top - c.top : r.offset.top - l.top) +
6023              r.sizeDiff.height
6024          )),
6025          (a = r.containerElement.get(0) === r.element.parent().get(0)),
6026          (o = /relative|absolute/.test(r.containerElement.css("position"))),
6027          a && o && (s -= Math.abs(r.parentData.left)),
6028          s + r.size.width >= r.parentData.width &&
6029            ((r.size.width = r.parentData.width - s),
6030            d && ((r.size.height = r.size.width / r.aspectRatio), (f = !1))),
6031          n + r.size.height >= r.parentData.height &&
6032            ((r.size.height = r.parentData.height - n),
6033            d && ((r.size.width = r.size.height * r.aspectRatio), (f = !1))),
6034          f ||
6035            ((r.position.left = i.prevPosition.left),
6036            (r.position.top = i.prevPosition.top),
6037            (r.size.width = i.prevSize.width),
6038            (r.size.height = i.prevSize.height));
6039      },
6040      stop: function () {
6041        var t = e(this).resizable("instance"),
6042          i = t.options,
6043          s = t.containerOffset,
6044          n = t.containerPosition,
6045          a = t.containerElement,
6046          o = e(t.helper),
6047          r = o.offset(),
6048          h = o.outerWidth() - t.sizeDiff.width,
6049          l = o.outerHeight() - t.sizeDiff.height;
6050        t._helper &&
6051          !i.animate &&
6052          /relative/.test(a.css("position")) &&
6053          e(this).css({ left: r.left - n.left - s.left, width: h, height: l }),
6054          t._helper &&
6055            !i.animate &&
6056            /static/.test(a.css("position")) &&
6057            e(this).css({
6058              left: r.left - n.left - s.left,
6059              width: h,
6060              height: l,
6061            });
6062      },
6063    }),
6064    e.ui.plugin.add("resizable", "alsoResize", {
6065      start: function () {
6066        var t = e(this).resizable("instance"),
6067          i = t.options,
6068          s = function (t) {
6069            e(t).each(function () {
6070              var t = e(this);
6071              t.data("ui-resizable-alsoresize", {
6072                width: parseInt(t.width(), 10),
6073                height: parseInt(t.height(), 10),
6074                left: parseInt(t.css("left"), 10),
6075                top: parseInt(t.css("top"), 10),
6076              });
6077            });
6078          };
6079        "object" != typeof i.alsoResize || i.alsoResize.parentNode
6080          ? s(i.alsoResize)
6081          : i.alsoResize.length
6082          ? ((i.alsoResize = i.alsoResize[0]), s(i.alsoResize))
6083          : e.each(i.alsoResize, function (e) {
6084              s(e);
6085            });
6086      },
6087      resize: function (t, i) {
6088        var s = e(this).resizable("instance"),
6089          n = s.options,
6090          a = s.originalSize,
6091          o = s.originalPosition,
6092          r = {
6093            height: s.size.height - a.height || 0,
6094            width: s.size.width - a.width || 0,
6095            top: s.position.top - o.top || 0,
6096            left: s.position.left - o.left || 0,
6097          },
6098          h = function (t, s) {
6099            e(t).each(function () {
6100              var t = e(this),
6101                n = e(this).data("ui-resizable-alsoresize"),
6102                a = {},
6103                o =
6104                  s && s.length
6105                    ? s
6106                    : t.parents(i.originalElement[0]).length
6107                    ? ["width", "height"]
6108                    : ["width", "height", "top", "left"];
6109              e.each(o, function (e, t) {
6110                var i = (n[t] || 0) + (r[t] || 0);
6111                i && i >= 0 && (a[t] = i || null);
6112              }),
6113                t.css(a);
6114            });
6115          };
6116        "object" != typeof n.alsoResize || n.alsoResize.nodeType
6117          ? h(n.alsoResize)
6118          : e.each(n.alsoResize, function (e, t) {
6119              h(e, t);
6120            });
6121      },
6122      stop: function () {
6123        e(this).removeData("resizable-alsoresize");
6124      },
6125    }),
6126    e.ui.plugin.add("resizable", "ghost", {
6127      start: function () {
6128        var t = e(this).resizable("instance"),
6129          i = t.options,
6130          s = t.size;
6131        (t.ghost = t.originalElement.clone()),
6132          t.ghost
6133            .css({
6134              opacity: 0.25,
6135              display: "block",
6136              position: "relative",
6137              height: s.height,
6138              width: s.width,
6139              margin: 0,
6140              left: 0,
6141              top: 0,
6142            })
6143            .addClass("ui-resizable-ghost")
6144            .addClass("string" == typeof i.ghost ? i.ghost : ""),
6145          t.ghost.appendTo(t.helper);
6146      },
6147      resize: function () {
6148        var t = e(this).resizable("instance");
6149        t.ghost &&
6150          t.ghost.css({
6151            position: "relative",
6152            height: t.size.height,
6153            width: t.size.width,
6154          });
6155      },
6156      stop: function () {
6157        var t = e(this).resizable("instance");
6158        t.ghost && t.helper && t.helper.get(0).removeChild(t.ghost.get(0));
6159      },
6160    }),
6161    e.ui.plugin.add("resizable", "grid", {
6162      resize: function () {
6163        var t = e(this).resizable("instance"),
6164          i = t.options,
6165          s = t.size,
6166          n = t.originalSize,
6167          a = t.originalPosition,
6168          o = t.axis,
6169          r = "number" == typeof i.grid ? [i.grid, i.grid] : i.grid,
6170          h = r[0] || 1,
6171          l = r[1] || 1,
6172          u = Math.round((s.width - n.width) / h) * h,
6173          d = Math.round((s.height - n.height) / l) * l,
6174          c = n.width + u,
6175          p = n.height + d,
6176          f = i.maxWidth && c > i.maxWidth,
6177          m = i.maxHeight && p > i.maxHeight,
6178          g = i.minWidth && i.minWidth > c,
6179          v = i.minHeight && i.minHeight > p;
6180        (i.grid = r),
6181          g && (c += h),
6182          v && (p += l),
6183          f && (c -= h),
6184          m && (p -= l),
6185          /^(se|s|e)$/.test(o)
6186            ? ((t.size.width = c), (t.size.height = p))
6187            : /^(ne)$/.test(o)
6188            ? ((t.size.width = c),
6189              (t.size.height = p),
6190              (t.position.top = a.top - d))
6191            : /^(sw)$/.test(o)
6192            ? ((t.size.width = c),
6193              (t.size.height = p),
6194              (t.position.left = a.left - u))
6195            : (p - l > 0
6196                ? ((t.size.height = p), (t.position.top = a.top - d))
6197                : ((t.size.height = l),
6198                  (t.position.top = a.top + n.height - l)),
6199              c - h > 0
6200                ? ((t.size.width = c), (t.position.left = a.left - u))
6201                : ((t.size.width = h),
6202                  (t.position.left = a.left + n.width - h)));
6203      },
6204    }),
6205    e.ui.resizable,
6206    e.widget("ui.dialog", {
6207      version: "1.11.0",
6208      options: {
6209        appendTo: "body",
6210        autoOpen: !0,
6211        buttons: [],
6212        closeOnEscape: !0,
6213        closeText: "Close",
6214        dialogClass: "",
6215        draggable: !0,
6216        hide: null,
6217        height: "auto",
6218        maxHeight: null,
6219        maxWidth: null,
6220        minHeight: 150,
6221        minWidth: 150,
6222        modal: !1,
6223        position: {
6224          my: "center",
6225          at: "center",
6226          of: window,
6227          collision: "fit",
6228          using: function (t) {
6229            var i = e(this).css(t).offset().top;
6230            0 > i && e(this).css("top", t.top - i);
6231          },
6232        },
6233        resizable: !0,
6234        show: null,
6235        title: null,
6236        width: 300,
6237        beforeClose: null,
6238        close: null,
6239        drag: null,
6240        dragStart: null,
6241        dragStop: null,
6242        focus: null,
6243        open: null,
6244        resize: null,
6245        resizeStart: null,
6246        resizeStop: null,
6247      },
6248      sizeRelatedOptions: {
6249        buttons: !0,
6250        height: !0,
6251        maxHeight: !0,
6252        maxWidth: !0,
6253        minHeight: !0,
6254        minWidth: !0,
6255        width: !0,
6256      },
6257      resizableRelatedOptions: {
6258        maxHeight: !0,
6259        maxWidth: !0,
6260        minHeight: !0,
6261        minWidth: !0,
6262      },
6263      _create: function () {
6264        (this.originalCss = {
6265          display: this.element[0].style.display,
6266          width: this.element[0].style.width,
6267          minHeight: this.element[0].style.minHeight,
6268          maxHeight: this.element[0].style.maxHeight,
6269          height: this.element[0].style.height,
6270        }),
6271          (this.originalPosition = {
6272            parent: this.element.parent(),
6273            index: this.element.parent().children().index(this.element),
6274          }),
6275          (this.originalTitle = this.element.attr("title")),
6276          (this.options.title = this.options.title || this.originalTitle),
6277          this._createWrapper(),
6278          this.element
6279            .show()
6280            .removeAttr("title")
6281            .addClass("ui-dialog-content ui-widget-content")
6282            .appendTo(this.uiDialog),
6283          this._createTitlebar(),
6284          this._createButtonPane(),
6285          this.options.draggable && e.fn.draggable && this._makeDraggable(),
6286          this.options.resizable && e.fn.resizable && this._makeResizable(),
6287          (this._isOpen = !1),
6288          this._trackFocus();
6289      },
6290      _init: function () {
6291        this.options.autoOpen && this.open();
6292      },
6293      _appendTo: function () {
6294        var t = this.options.appendTo;
6295        return t && (t.jquery || t.nodeType)
6296          ? e(t)
6297          : this.document.find(t || "body").eq(0);
6298      },
6299      _destroy: function () {
6300        var e,
6301          t = this.originalPosition;
6302        this._destroyOverlay(),
6303          this.element
6304            .removeUniqueId()
6305            .removeClass("ui-dialog-content ui-widget-content")
6306            .css(this.originalCss)
6307            .detach(),
6308          this.uiDialog.stop(!0, !0).remove(),
6309          this.originalTitle && this.element.attr("title", this.originalTitle),
6310          (e = t.parent.children().eq(t.index)),
6311          e.length && e[0] !== this.element[0]
6312            ? e.before(this.element)
6313            : t.parent.append(this.element);
6314      },
6315      widget: function () {
6316        return this.uiDialog;
6317      },
6318      disable: e.noop,
6319      enable: e.noop,
6320      close: function (t) {
6321        var i,
6322          s = this;
6323        if (this._isOpen && this._trigger("beforeClose", t) !== !1) {
6324          if (
6325            ((this._isOpen = !1),
6326            (this._focusedElement = null),
6327            this._destroyOverlay(),
6328            this._untrackInstance(),
6329            !this.opener.filter(":focusable").focus().length)
6330          )
6331            try {
6332              (i = this.document[0].activeElement),
6333                i && "body" !== i.nodeName.toLowerCase() && e(i).blur();
6334            } catch (n) {}
6335          this._hide(this.uiDialog, this.options.hide, function () {
6336            s._trigger("close", t);
6337          });
6338        }
6339      },
6340      isOpen: function () {
6341        return this._isOpen;
6342      },
6343      moveToTop: function () {
6344        this._moveToTop();
6345      },
6346      _moveToTop: function (t, i) {
6347        var s = !1,
6348          n = this.uiDialog
6349            .siblings(".ui-front:visible")
6350            .map(function () {
6351              return +e(this).css("z-index");
6352            })
6353            .get(),
6354          a = Math.max.apply(null, n);
6355        return (
6356          a >= +this.uiDialog.css("z-index") &&
6357            (this.uiDialog.css("z-index", a + 1), (s = !0)),
6358          s && !i && this._trigger("focus", t),
6359          s
6360        );
6361      },
6362      open: function () {
6363        var t = this;
6364        return this._isOpen
6365          ? (this._moveToTop() && this._focusTabbable(), void 0)
6366          : ((this._isOpen = !0),
6367            (this.opener = e(this.document[0].activeElement)),
6368            this._size(),
6369            this._position(),
6370            this._createOverlay(),
6371            this._moveToTop(null, !0),
6372            this._show(this.uiDialog, this.options.show, function () {
6373              t._focusTabbable(), t._trigger("focus");
6374            }),
6375            this._trigger("open"),
6376            void 0);
6377      },
6378      _focusTabbable: function () {
6379        var e = this._focusedElement;
6380        e || (e = this.element.find("[autofocus]")),
6381          e.length || (e = this.element.find(":tabbable")),
6382          e.length || (e = this.uiDialogButtonPane.find(":tabbable")),
6383          e.length || (e = this.uiDialogTitlebarClose.filter(":tabbable")),
6384          e.length || (e = this.uiDialog),
6385          e.eq(0).focus();
6386      },
6387      _keepFocus: function (t) {
6388        function i() {
6389          var t = this.document[0].activeElement,
6390            i = this.uiDialog[0] === t || e.contains(this.uiDialog[0], t);
6391          i || this._focusTabbable();
6392        }
6393        t.preventDefault(), i.call(this), this._delay(i);
6394      },
6395      _createWrapper: function () {
6396        (this.uiDialog = e("<div>")
6397          .addClass(
6398            "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " +
6399              this.options.dialogClass
6400          )
6401          .hide()
6402          .attr({ tabIndex: -1, role: "dialog" })
6403          .appendTo(this._appendTo())),
6404          this._on(this.uiDialog, {
6405            keydown: function (t) {
6406              if (
6407                this.options.closeOnEscape &&
6408                !t.isDefaultPrevented() &&
6409                t.keyCode &&
6410                t.keyCode === e.ui.keyCode.ESCAPE
6411              )
6412                return t.preventDefault(), this.close(t), void 0;
6413              if (t.keyCode === e.ui.keyCode.TAB && !t.isDefaultPrevented()) {
6414                var i = this.uiDialog.find(":tabbable"),
6415                  s = i.filter(":first"),
6416                  n = i.filter(":last");
6417                (t.target !== n[0] && t.target !== this.uiDialog[0]) ||
6418                t.shiftKey
6419                  ? (t.target !== s[0] && t.target !== this.uiDialog[0]) ||
6420                    !t.shiftKey ||
6421                    (this._delay(function () {
6422                      n.focus();
6423                    }),
6424                    t.preventDefault())
6425                  : (this._delay(function () {
6426                      s.focus();
6427                    }),
6428                    t.preventDefault());
6429              }
6430            },
6431            mousedown: function (e) {
6432              this._moveToTop(e) && this._focusTabbable();
6433            },
6434          }),
6435          this.element.find("[aria-describedby]").length ||
6436            this.uiDialog.attr({
6437              "aria-describedby": this.element.uniqueId().attr("id"),
6438            });
6439      },
6440      _createTitlebar: function () {
6441        var t;
6442        (this.uiDialogTitlebar = e("<div>")
6443          .addClass(
6444            "ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"
6445          )
6446          .prependTo(this.uiDialog)),
6447          this._on(this.uiDialogTitlebar, {
6448            mousedown: function (t) {
6449              e(t.target).closest(".ui-dialog-titlebar-close") ||
6450                this.uiDialog.focus();
6451            },
6452          }),
6453          (this.uiDialogTitlebarClose = e("<button type='button'></button>")
6454            .button({
6455              label: this.options.closeText,
6456              icons: { primary: "ui-icon-closethick" },
6457              text: !1,
6458            })
6459            .addClass("ui-dialog-titlebar-close")
6460            .appendTo(this.uiDialogTitlebar)),
6461          this._on(this.uiDialogTitlebarClose, {
6462            click: function (e) {
6463              e.preventDefault(), this.close(e);
6464            },
6465          }),
6466          (t = e("<span>")
6467            .uniqueId()
6468            .addClass("ui-dialog-title")
6469            .prependTo(this.uiDialogTitlebar)),
6470          this._title(t),
6471          this.uiDialog.attr({ "aria-labelledby": t.attr("id") });
6472      },
6473      _title: function (e) {
6474        this.options.title || e.html("&#160;"), e.text(this.options.title);
6475      },
6476      _createButtonPane: function () {
6477        (this.uiDialogButtonPane = e("<div>").addClass(
6478          "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"
6479        )),
6480          (this.uiButtonSet = e("<div>")
6481            .addClass("ui-dialog-buttonset")
6482            .appendTo(this.uiDialogButtonPane)),
6483          this._createButtons();
6484      },
6485      _createButtons: function () {
6486        var t = this,
6487          i = this.options.buttons;
6488        return (
6489          this.uiDialogButtonPane.remove(),
6490          this.uiButtonSet.empty(),
6491          e.isEmptyObject(i) || (e.isArray(i) && !i.length)
6492            ? (this.uiDialog.removeClass("ui-dialog-buttons"), void 0)
6493            : (e.each(i, function (i, s) {
6494                var n, a;
6495                (s = e.isFunction(s) ? { click: s, text: i } : s),
6496                  (s = e.extend({ type: "button" }, s)),
6497                  (n = s.click),
6498                  (s.click = function () {
6499                    n.apply(t.element[0], arguments);
6500                  }),
6501                  (a = { icons: s.icons, text: s.showText }),
6502                  delete s.icons,
6503                  delete s.showText,
6504                  e("<button></button>", s).button(a).appendTo(t.uiButtonSet);
6505              }),
6506              this.uiDialog.addClass("ui-dialog-buttons"),
6507              this.uiDialogButtonPane.appendTo(this.uiDialog),
6508              void 0)
6509        );
6510      },
6511      _makeDraggable: function () {
6512        function t(e) {
6513          return { position: e.position, offset: e.offset };
6514        }
6515        var i = this,
6516          s = this.options;
6517        this.uiDialog.draggable({
6518          cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
6519          handle: ".ui-dialog-titlebar",
6520          containment: "document",
6521          start: function (s, n) {
6522            e(this).addClass("ui-dialog-dragging"),
6523              i._blockFrames(),
6524              i._trigger("dragStart", s, t(n));
6525          },
6526          drag: function (e, s) {
6527            i._trigger("drag", e, t(s));
6528          },
6529          stop: function (n, a) {
6530            var o = a.offset.left - i.document.scrollLeft(),
6531              r = a.offset.top - i.document.scrollTop();
6532            (s.position = {
6533              my: "left top",
6534              at:
6535                "left" +
6536                (o >= 0 ? "+" : "") +
6537                o +
6538                " " +
6539                "top" +
6540                (r >= 0 ? "+" : "") +
6541                r,
6542              of: i.window,
6543            }),
6544              e(this).removeClass("ui-dialog-dragging"),
6545              i._unblockFrames(),
6546              i._trigger("dragStop", n, t(a));
6547          },
6548        });
6549      },
6550      _makeResizable: function () {
6551        function t(e) {
6552          return {
6553            originalPosition: e.originalPosition,
6554            originalSize: e.originalSize,
6555            position: e.position,
6556            size: e.size,
6557          };
6558        }
6559        var i = this,
6560          s = this.options,
6561          n = s.resizable,
6562          a = this.uiDialog.css("position"),
6563          o = "string" == typeof n ? n : "n,e,s,w,se,sw,ne,nw";
6564        this.uiDialog
6565          .resizable({
6566            cancel: ".ui-dialog-content",
6567            containment: "document",
6568            alsoResize: this.element,
6569            maxWidth: s.maxWidth,
6570            maxHeight: s.maxHeight,
6571            minWidth: s.minWidth,
6572            minHeight: this._minHeight(),
6573            handles: o,
6574            start: function (s, n) {
6575              e(this).addClass("ui-dialog-resizing"),
6576                i._blockFrames(),
6577                i._trigger("resizeStart", s, t(n));
6578            },
6579            resize: function (e, s) {
6580              i._trigger("resize", e, t(s));
6581            },
6582            stop: function (n, a) {
6583              var o = i.uiDialog.offset(),
6584                r = o.left - i.document.scrollLeft(),
6585                h = o.top - i.document.scrollTop();
6586              (s.height = i.uiDialog.height()),
6587                (s.width = i.uiDialog.width()),
6588                (s.position = {
6589                  my: "left top",
6590                  at:
6591                    "left" +
6592                    (r >= 0 ? "+" : "") +
6593                    r +
6594                    " " +
6595                    "top" +
6596                    (h >= 0 ? "+" : "") +
6597                    h,
6598                  of: i.window,
6599                }),
6600                e(this).removeClass("ui-dialog-resizing"),
6601                i._unblockFrames(),
6602                i._trigger("resizeStop", n, t(a));
6603            },
6604          })
6605          .css("position", a);
6606      },
6607      _trackFocus: function () {
6608        this._on(this.widget(), {
6609          focusin: function (t) {
6610            this._untrackInstance(),
6611              this._trackingInstances().unshift(this),
6612              (this._focusedElement = e(t.target));
6613          },
6614        });
6615      },
6616      _untrackInstance: function () {
6617        var t = this._trackingInstances(),
6618          i = e.inArray(this, t);
6619        -1 !== i && t.splice(i, 1);
6620      },
6621      _trackingInstances: function () {
6622        var e = this.document.data("ui-dialog-instances");
6623        return e || ((e = []), this.document.data("ui-dialog-instances", e)), e;
6624      },
6625      _minHeight: function () {
6626        var e = this.options;
6627        return "auto" === e.height
6628          ? e.minHeight
6629          : Math.min(e.minHeight, e.height);
6630      },
6631      _position: function () {
6632        var e = this.uiDialog.is(":visible");
6633        e || this.uiDialog.show(),
6634          this.uiDialog.position(this.options.position),
6635          e || this.uiDialog.hide();
6636      },
6637      _setOptions: function (t) {
6638        var i = this,
6639          s = !1,
6640          n = {};
6641        e.each(t, function (e, t) {
6642          i._setOption(e, t),
6643            e in i.sizeRelatedOptions && (s = !0),
6644            e in i.resizableRelatedOptions && (n[e] = t);
6645        }),
6646          s && (this._size(), this._position()),
6647          this.uiDialog.is(":data(ui-resizable)") &&
6648            this.uiDialog.resizable("option", n);
6649      },
6650      _setOption: function (e, t) {
6651        var i,
6652          s,
6653          n = this.uiDialog;
6654        "dialogClass" === e &&
6655          n.removeClass(this.options.dialogClass).addClass(t),
6656          "disabled" !== e &&
6657            (this._super(e, t),
6658            "appendTo" === e && this.uiDialog.appendTo(this._appendTo()),
6659            "buttons" === e && this._createButtons(),
6660            "closeText" === e &&
6661              this.uiDialogTitlebarClose.button({ label: "" + t }),
6662            "draggable" === e &&
6663              ((i = n.is(":data(ui-draggable)")),
6664              i && !t && n.draggable("destroy"),
6665              !i && t && this._makeDraggable()),
6666            "position" === e && this._position(),
6667            "resizable" === e &&
6668              ((s = n.is(":data(ui-resizable)")),
6669              s && !t && n.resizable("destroy"),
6670              s && "string" == typeof t && n.resizable("option", "handles", t),
6671              s || t === !1 || this._makeResizable()),
6672            "title" === e &&
6673              this._title(this.uiDialogTitlebar.find(".ui-dialog-title")));
6674      },
6675      _size: function () {
6676        var e,
6677          t,
6678          i,
6679          s = this.options;
6680        this.element
6681          .show()
6682          .css({ width: "auto", minHeight: 0, maxHeight: "none", height: 0 }),
6683          s.minWidth > s.width && (s.width = s.minWidth),
6684          (e = this.uiDialog
6685            .css({ height: "auto", width: s.width })
6686            .outerHeight()),
6687          (t = Math.max(0, s.minHeight - e)),
6688          (i =
6689            "number" == typeof s.maxHeight
6690              ? Math.max(0, s.maxHeight - e)
6691              : "none"),
6692          "auto" === s.height
6693            ? this.element.css({ minHeight: t, maxHeight: i, height: "auto" })
6694            : this.element.height(Math.max(0, s.height - e)),
6695          this.uiDialog.is(":data(ui-resizable)") &&
6696            this.uiDialog.resizable("option", "minHeight", this._minHeight());
6697      },
6698      _blockFrames: function () {
6699        this.iframeBlocks = this.document.find("iframe").map(function () {
6700          var t = e(this);
6701          return e("<div>")
6702            .css({
6703              position: "absolute",
6704              width: t.outerWidth(),
6705              height: t.outerHeight(),
6706            })
6707            .appendTo(t.parent())
6708            .offset(t.offset())[0];
6709        });
6710      },
6711      _unblockFrames: function () {
6712        this.iframeBlocks &&
6713          (this.iframeBlocks.remove(), delete this.iframeBlocks);
6714      },
6715      _allowInteraction: function (t) {
6716        return e(t.target).closest(".ui-dialog").length
6717          ? !0
6718          : !!e(t.target).closest(".ui-datepicker").length;
6719      },
6720      _createOverlay: function () {
6721        if (this.options.modal) {
6722          var t = !0;
6723          this._delay(function () {
6724            t = !1;
6725          }),
6726            this.document.data("ui-dialog-overlays") ||
6727              this._on(this.document, {
6728                focusin: function (e) {
6729                  t ||
6730                    this._allowInteraction(e) ||
6731                    (e.preventDefault(),
6732                    this._trackingInstances()[0]._focusTabbable());
6733                },
6734              }),
6735            (this.overlay = e("<div>")
6736              .addClass("ui-widget-overlay ui-front")
6737              .appendTo(this._appendTo())),
6738            this._on(this.overlay, { mousedown: "_keepFocus" }),
6739            this.document.data(
6740              "ui-dialog-overlays",
6741              (this.document.data("ui-dialog-overlays") || 0) + 1
6742            );
6743        }
6744      },
6745      _destroyOverlay: function () {
6746        if (this.options.modal && this.overlay) {
6747          var e = this.document.data("ui-dialog-overlays") - 1;
6748          e
6749            ? this.document.data("ui-dialog-overlays", e)
6750            : this.document.unbind("focusin").removeData("ui-dialog-overlays"),
6751            this.overlay.remove(),
6752            (this.overlay = null);
6753        }
6754      },
6755    }),
6756    e.widget("ui.droppable", {
6757      version: "1.11.0",
6758      widgetEventPrefix: "drop",
6759      options: {
6760        accept: "*",
6761        activeClass: !1,
6762        addClasses: !0,
6763        greedy: !1,
6764        hoverClass: !1,
6765        scope: "default",
6766        tolerance: "intersect",
6767        activate: null,
6768        deactivate: null,
6769        drop: null,
6770        out: null,
6771        over: null,
6772      },
6773      _create: function () {
6774        var t,
6775          i = this.options,
6776          s = i.accept;
6777        (this.isover = !1),
6778          (this.isout = !0),
6779          (this.accept = e.isFunction(s)
6780            ? s
6781            : function (e) {
6782                return e.is(s);
6783              }),
6784          (this.proportions = function () {
6785            return arguments.length
6786              ? ((t = arguments[0]), void 0)
6787              : t
6788              ? t
6789              : (t = {
6790                  width: this.element[0].offsetWidth,
6791                  height: this.element[0].offsetHeight,
6792                });
6793          }),
6794          this._addToManager(i.scope),
6795          i.addClasses && this.element.addClass("ui-droppable");
6796      },
6797      _addToManager: function (t) {
6798        (e.ui.ddmanager.droppables[t] = e.ui.ddmanager.droppables[t] || []),
6799          e.ui.ddmanager.droppables[t].push(this);
6800      },
6801      _splice: function (e) {
6802        for (var t = 0; e.length > t; t++) e[t] === this && e.splice(t, 1);
6803      },
6804      _destroy: function () {
6805        var t = e.ui.ddmanager.droppables[this.options.scope];
6806        this._splice(t),
6807          this.element.removeClass("ui-droppable ui-droppable-disabled");
6808      },
6809      _setOption: function (t, i) {
6810        if ("accept" === t)
6811          this.accept = e.isFunction(i)
6812            ? i
6813            : function (e) {
6814                return e.is(i);
6815              };
6816        else if ("scope" === t) {
6817          var s = e.ui.ddmanager.droppables[this.options.scope];
6818          this._splice(s), this._addToManager(i);
6819        }
6820        this._super(t, i);
6821      },
6822      _activate: function (t) {
6823        var i = e.ui.ddmanager.current;
6824        this.options.activeClass &&
6825          this.element.addClass(this.options.activeClass),
6826          i && this._trigger("activate", t, this.ui(i));
6827      },
6828      _deactivate: function (t) {
6829        var i = e.ui.ddmanager.current;
6830        this.options.activeClass &&
6831          this.element.removeClass(this.options.activeClass),
6832          i && this._trigger("deactivate", t, this.ui(i));
6833      },
6834      _over: function (t) {
6835        var i = e.ui.ddmanager.current;
6836        i &&
6837          (i.currentItem || i.element)[0] !== this.element[0] &&
6838          this.accept.call(this.element[0], i.currentItem || i.element) &&
6839          (this.options.hoverClass &&
6840            this.element.addClass(this.options.hoverClass),
6841          this._trigger("over", t, this.ui(i)));
6842      },
6843      _out: function (t) {
6844        var i = e.ui.ddmanager.current;
6845        i &&
6846          (i.currentItem || i.element)[0] !== this.element[0] &&
6847          this.accept.call(this.element[0], i.currentItem || i.element) &&
6848          (this.options.hoverClass &&
6849            this.element.removeClass(this.options.hoverClass),
6850          this._trigger("out", t, this.ui(i)));
6851      },
6852      _drop: function (t, i) {
6853        var s = i || e.ui.ddmanager.current,
6854          n = !1;
6855        return s && (s.currentItem || s.element)[0] !== this.element[0]
6856          ? (this.element
6857              .find(":data(ui-droppable)")
6858              .not(".ui-draggable-dragging")
6859              .each(function () {
6860                var t = e(this).droppable("instance");
6861                return t.options.greedy &&
6862                  !t.options.disabled &&
6863                  t.options.scope === s.options.scope &&
6864                  t.accept.call(t.element[0], s.currentItem || s.element) &&
6865                  e.ui.intersect(
6866                    s,
6867                    e.extend(t, { offset: t.element.offset() }),
6868                    t.options.tolerance
6869                  )
6870                  ? ((n = !0), !1)
6871                  : void 0;
6872              }),
6873            n
6874              ? !1
6875              : this.accept.call(this.element[0], s.currentItem || s.element)
6876              ? (this.options.activeClass &&
6877                  this.element.removeClass(this.options.activeClass),
6878                this.options.hoverClass &&
6879                  this.element.removeClass(this.options.hoverClass),
6880                this._trigger("drop", t, this.ui(s)),
6881                this.element)
6882              : !1)
6883          : !1;
6884      },
6885      ui: function (e) {
6886        return {
6887          draggable: e.currentItem || e.element,
6888          helper: e.helper,
6889          position: e.position,
6890          offset: e.positionAbs,
6891        };
6892      },
6893    }),
6894    (e.ui.intersect = (function () {
6895      function e(e, t, i) {
6896        return e >= t && t + i > e;
6897      }
6898      return function (t, i, s) {
6899        if (!i.offset) return !1;
6900        var n,
6901          a,
6902          o = (t.positionAbs || t.position.absolute).left,
6903          r = (t.positionAbs || t.position.absolute).top,
6904          h = o + t.helperProportions.width,
6905          l = r + t.helperProportions.height,
6906          u = i.offset.left,
6907          d = i.offset.top,
6908          c = u + i.proportions().width,
6909          p = d + i.proportions().height;
6910        switch (s) {
6911          case "fit":
6912            return o >= u && c >= h && r >= d && p >= l;
6913          case "intersect":
6914            return (
6915              o + t.helperProportions.width / 2 > u &&
6916              c > h - t.helperProportions.width / 2 &&
6917              r + t.helperProportions.height / 2 > d &&
6918              p > l - t.helperProportions.height / 2
6919            );
6920          case "pointer":
6921            return (
6922              (n =
6923                (t.positionAbs || t.position.absolute).left +
6924                (t.clickOffset || t.offset.click).left),
6925              (a =
6926                (t.positionAbs || t.position.absolute).top +
6927                (t.clickOffset || t.offset.click).top),
6928              e(a, d, i.proportions().height) && e(n, u, i.proportions().width)
6929            );
6930          case "touch":
6931            return (
6932              ((r >= d && p >= r) || (l >= d && p >= l) || (d > r && l > p)) &&
6933              ((o >= u && c >= o) || (h >= u && c >= h) || (u > o && h > c))
6934            );
6935          default:
6936            return !1;
6937        }
6938      };
6939    })()),
6940    (e.ui.ddmanager = {
6941      current: null,
6942      droppables: { default: [] },
6943      prepareOffsets: function (t, i) {
6944        var s,
6945          n,
6946          a = e.ui.ddmanager.droppables[t.options.scope] || [],
6947          o = i ? i.type : null,
6948          r = (t.currentItem || t.element)
6949            .find(":data(ui-droppable)")
6950            .addBack();
6951        e: for (s = 0; a.length > s; s++)
6952          if (
6953            !(
6954              a[s].options.disabled ||
6955              (t &&
6956                !a[s].accept.call(a[s].element[0], t.currentItem || t.element))
6957            )
6958          ) {
6959            for (n = 0; r.length > n; n++)
6960              if (r[n] === a[s].element[0]) {
6961                a[s].proportions().height = 0;
6962                continue e;
6963              }
6964            (a[s].visible = "none" !== a[s].element.css("display")),
6965              a[s].visible &&
6966                ("mousedown" === o && a[s]._activate.call(a[s], i),
6967                (a[s].offset = a[s].element.offset()),
6968                a[s].proportions({
6969                  width: a[s].element[0].offsetWidth,
6970                  height: a[s].element[0].offsetHeight,
6971                }));
6972          }
6973      },
6974      drop: function (t, i) {
6975        var s = !1;
6976        return (
6977          e.each(
6978            (e.ui.ddmanager.droppables[t.options.scope] || []).slice(),
6979            function () {
6980              this.options &&
6981                (!this.options.disabled &&
6982                  this.visible &&
6983                  e.ui.intersect(t, this, this.options.tolerance) &&
6984                  (s = this._drop.call(this, i) || s),
6985                !this.options.disabled &&
6986                  this.visible &&
6987                  this.accept.call(
6988                    this.element[0],
6989                    t.currentItem || t.element
6990                  ) &&
6991                  ((this.isout = !0),
6992                  (this.isover = !1),
6993                  this._deactivate.call(this, i)));
6994            }
6995          ),
6996          s
6997        );
6998      },
6999      dragStart: function (t, i) {
7000        t.element.parentsUntil("body").bind("scroll.droppable", function () {
7001          t.options.refreshPositions || e.ui.ddmanager.prepareOffsets(t, i);
7002        });
7003      },
7004      drag: function (t, i) {
7005        t.options.refreshPositions && e.ui.ddmanager.prepareOffsets(t, i),
7006          e.each(e.ui.ddmanager.droppables[t.options.scope] || [], function () {
7007            if (!this.options.disabled && !this.greedyChild && this.visible) {
7008              var s,
7009                n,
7010                a,
7011                o = e.ui.intersect(t, this, this.options.tolerance),
7012                r =
7013                  !o && this.isover
7014                    ? "isout"
7015                    : o && !this.isover
7016                    ? "isover"
7017                    : null;
7018              r &&
7019                (this.options.greedy &&
7020                  ((n = this.options.scope),
7021                  (a = this.element
7022                    .parents(":data(ui-droppable)")
7023                    .filter(function () {
7024                      return e(this).droppable("instance").options.scope === n;
7025                    })),
7026                  a.length &&
7027                    ((s = e(a[0]).droppable("instance")),
7028                    (s.greedyChild = "isover" === r))),
7029                s &&
7030                  "isover" === r &&
7031                  ((s.isover = !1), (s.isout = !0), s._out.call(s, i)),
7032                (this[r] = !0),
7033                (this["isout" === r ? "isover" : "isout"] = !1),
7034                this["isover" === r ? "_over" : "_out"].call(this, i),
7035                s &&
7036                  "isout" === r &&
7037                  ((s.isout = !1), (s.isover = !0), s._over.call(s, i)));
7038            }
7039          });
7040      },
7041      dragStop: function (t, i) {
7042        t.element.parentsUntil("body").unbind("scroll.droppable"),
7043          t.options.refreshPositions || e.ui.ddmanager.prepareOffsets(t, i);
7044      },
7045    }),
7046    e.ui.droppable;
7047  var v = "ui-effects-";
7048  (e.effects = { effect: {} }),
7049    (function (e, t) {
7050      function i(e, t, i) {
7051        var s = d[t.type] || {};
7052        return null == e
7053          ? i || !t.def
7054            ? null
7055            : t.def
7056          : ((e = s.floor ? ~~e : parseFloat(e)),
7057            isNaN(e)
7058              ? t.def
7059              : s.mod
7060              ? (e + s.mod) % s.mod
7061              : 0 > e
7062              ? 0
7063              : e > s.max
7064              ? s.max
7065              : e);
7066      }
7067      function s(i) {
7068        var s = l(),
7069          n = (s._rgba = []);
7070        return (
7071          (i = i.toLowerCase()),
7072          f(h, function (e, a) {
7073            var o,
7074              r = a.re.exec(i),
7075              h = r && a.parse(r),
7076              l = a.space || "rgba";
7077            return h
7078              ? ((o = s[l](h)),
7079                (s[u[l].cache] = o[u[l].cache]),
7080                (n = s._rgba = o._rgba),
7081                !1)
7082              : t;
7083          }),
7084          n.length
7085            ? ("0,0,0,0" === n.join() && e.extend(n, a.transparent), s)
7086            : a[i]
7087        );
7088      }
7089      function n(e, t, i) {
7090        return (
7091          (i = (i + 1) % 1),
7092          1 > 6 * i
7093            ? e + 6 * (t - e) * i
7094            : 1 > 2 * i
7095            ? t
7096            : 2 > 3 * i
7097            ? e + 6 * (t - e) * (2 / 3 - i)
7098            : e
7099        );
7100      }
7101      var a,
7102        o =
7103          "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
7104        r = /^([\-+])=\s*(\d+\.?\d*)/,
7105        h = [
7106          {
7107            re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
7108            parse: function (e) {
7109              return [e[1], e[2], e[3], e[4]];
7110            },
7111          },
7112          {
7113            re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
7114            parse: function (e) {
7115              return [2.55 * e[1], 2.55 * e[2], 2.55 * e[3], e[4]];
7116            },
7117          },
7118          {
7119            re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
7120            parse: function (e) {
7121              return [
7122                parseInt(e[1], 16),
7123                parseInt(e[2], 16),
7124                parseInt(e[3], 16),
7125              ];
7126            },
7127          },
7128          {
7129            re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
7130            parse: function (e) {
7131              return [
7132                parseInt(e[1] + e[1], 16),
7133                parseInt(e[2] + e[2], 16),
7134                parseInt(e[3] + e[3], 16),
7135              ];
7136            },
7137          },
7138          {
7139            re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
7140            space: "hsla",
7141            parse: function (e) {
7142              return [e[1], e[2] / 100, e[3] / 100, e[4]];
7143            },
7144          },
7145        ],
7146        l = (e.Color = function (t, i, s, n) {
7147          return new e.Color.fn.parse(t, i, s, n);
7148        }),
7149        u = {
7150          rgba: {
7151            props: {
7152              red: { idx: 0, type: "byte" },
7153              green: { idx: 1, type: "byte" },
7154              blue: { idx: 2, type: "byte" },
7155            },
7156          },
7157          hsla: {
7158            props: {
7159              hue: { idx: 0, type: "degrees" },
7160              saturation: { idx: 1, type: "percent" },
7161              lightness: { idx: 2, type: "percent" },
7162            },
7163          },
7164        },
7165        d = {
7166          byte: { floor: !0, max: 255 },
7167          percent: { max: 1 },
7168          degrees: { mod: 360, floor: !0 },
7169        },
7170        c = (l.support = {}),
7171        p = e("<p>")[0],
7172        f = e.each;
7173      (p.style.cssText = "background-color:rgba(1,1,1,.5)"),
7174        (c.rgba = p.style.backgroundColor.indexOf("rgba") > -1),
7175        f(u, function (e, t) {
7176          (t.cache = "_" + e),
7177            (t.props.alpha = { idx: 3, type: "percent", def: 1 });
7178        }),
7179        (l.fn = e.extend(l.prototype, {
7180          parse: function (n, o, r, h) {
7181            if (n === t) return (this._rgba = [null, null, null, null]), this;
7182            (n.jquery || n.nodeType) && ((n = e(n).css(o)), (o = t));
7183            var d = this,
7184              c = e.type(n),
7185              p = (this._rgba = []);
7186            return (
7187              o !== t && ((n = [n, o, r, h]), (c = "array")),
7188              "string" === c
7189                ? this.parse(s(n) || a._default)
7190                : "array" === c
7191                ? (f(u.rgba.props, function (e, t) {
7192                    p[t.idx] = i(n[t.idx], t);
7193                  }),
7194                  this)
7195                : "object" === c
7196                ? (n instanceof l
7197                    ? f(u, function (e, t) {
7198                        n[t.cache] && (d[t.cache] = n[t.cache].slice());
7199                      })
7200                    : f(u, function (t, s) {
7201                        var a = s.cache;
7202                        f(s.props, function (e, t) {
7203                          if (!d[a] && s.to) {
7204                            if ("alpha" === e || null == n[e]) return;
7205                            d[a] = s.to(d._rgba);
7206                          }
7207                          d[a][t.idx] = i(n[e], t, !0);
7208                        }),
7209                          d[a] &&
7210                            0 > e.inArray(null, d[a].slice(0, 3)) &&
7211                            ((d[a][3] = 1), s.from && (d._rgba = s.from(d[a])));
7212                      }),
7213                  this)
7214                : t
7215            );
7216          },
7217          is: function (e) {
7218            var i = l(e),
7219              s = !0,
7220              n = this;
7221            return (
7222              f(u, function (e, a) {
7223                var o,
7224                  r = i[a.cache];
7225                return (
7226                  r &&
7227                    ((o = n[a.cache] || (a.to && a.to(n._rgba)) || []),
7228                    f(a.props, function (e, i) {
7229                      return null != r[i.idx] ? (s = r[i.idx] === o[i.idx]) : t;
7230                    })),
7231                  s
7232                );
7233              }),
7234              s
7235            );
7236          },
7237          _space: function () {
7238            var e = [],
7239              t = this;
7240            return (
7241              f(u, function (i, s) {
7242                t[s.cache] && e.push(i);
7243              }),
7244              e.pop()
7245            );
7246          },
7247          transition: function (e, t) {
7248            var s = l(e),
7249              n = s._space(),
7250              a = u[n],
7251              o = 0 === this.alpha() ? l("transparent") : this,
7252              r = o[a.cache] || a.to(o._rgba),
7253              h = r.slice();
7254            return (
7255              (s = s[a.cache]),
7256              f(a.props, function (e, n) {
7257                var a = n.idx,
7258                  o = r[a],
7259                  l = s[a],
7260                  u = d[n.type] || {};
7261                null !== l &&
7262                  (null === o
7263                    ? (h[a] = l)
7264                    : (u.mod &&
7265                        (l - o > u.mod / 2
7266                          ? (o += u.mod)
7267                          : o - l > u.mod / 2 && (o -= u.mod)),
7268                      (h[a] = i((l - o) * t + o, n))));
7269              }),
7270              this[n](h)
7271            );
7272          },
7273          blend: function (t) {
7274            if (1 === this._rgba[3]) return this;
7275            var i = this._rgba.slice(),
7276              s = i.pop(),
7277              n = l(t)._rgba;
7278            return l(
7279              e.map(i, function (e, t) {
7280                return (1 - s) * n[t] + s * e;
7281              })
7282            );
7283          },
7284          toRgbaString: function () {
7285            var t = "rgba(",
7286              i = e.map(this._rgba, function (e, t) {
7287                return null == e ? (t > 2 ? 1 : 0) : e;
7288              });
7289            return 1 === i[3] && (i.pop(), (t = "rgb(")), t + i.join() + ")";
7290          },
7291          toHslaString: function () {
7292            var t = "hsla(",
7293              i = e.map(this.hsla(), function (e, t) {
7294                return (
7295                  null == e && (e = t > 2 ? 1 : 0),
7296                  t && 3 > t && (e = Math.round(100 * e) + "%"),
7297                  e
7298                );
7299              });
7300            return 1 === i[3] && (i.pop(), (t = "hsl(")), t + i.join() + ")";
7301          },
7302          toHexString: function (t) {
7303            var i = this._rgba.slice(),
7304              s = i.pop();
7305            return (
7306              t && i.push(~~(255 * s)),
7307              "#" +
7308                e
7309                  .map(i, function (e) {
7310                    return (
7311                      (e = (e || 0).toString(16)), 1 === e.length ? "0" + e : e
7312                    );
7313                  })
7314                  .join("")
7315            );
7316          },
7317          toString: function () {
7318            return 0 === this._rgba[3] ? "transparent" : this.toRgbaString();
7319          },
7320        })),
7321        (l.fn.parse.prototype = l.fn),
7322        (u.hsla.to = function (e) {
7323          if (null == e[0] || null == e[1] || null == e[2])
7324            return [null, null, null, e[3]];
7325          var t,
7326            i,
7327            s = e[0] / 255,
7328            n = e[1] / 255,
7329            a = e[2] / 255,
7330            o = e[3],
7331            r = Math.max(s, n, a),
7332            h = Math.min(s, n, a),
7333            l = r - h,
7334            u = r + h,
7335            d = 0.5 * u;
7336          return (
7337            (t =
7338              h === r
7339                ? 0
7340                : s === r
7341                ? (60 * (n - a)) / l + 360
7342                : n === r
7343                ? (60 * (a - s)) / l + 120
7344                : (60 * (s - n)) / l + 240),
7345            (i = 0 === l ? 0 : 0.5 >= d ? l / u : l / (2 - u)),
7346            [Math.round(t) % 360, i, d, null == o ? 1 : o]
7347          );
7348        }),
7349        (u.hsla.from = function (e) {
7350          if (null == e[0] || null == e[1] || null == e[2])
7351            return [null, null, null, e[3]];
7352          var t = e[0] / 360,
7353            i = e[1],
7354            s = e[2],
7355            a = e[3],
7356            o = 0.5 >= s ? s * (1 + i) : s + i - s * i,
7357            r = 2 * s - o;
7358          return [
7359            Math.round(255 * n(r, o, t + 1 / 3)),
7360            Math.round(255 * n(r, o, t)),
7361            Math.round(255 * n(r, o, t - 1 / 3)),
7362            a,
7363          ];
7364        }),
7365        f(u, function (s, n) {
7366          var a = n.props,
7367            o = n.cache,
7368            h = n.to,
7369            u = n.from;
7370          (l.fn[s] = function (s) {
7371            if ((h && !this[o] && (this[o] = h(this._rgba)), s === t))
7372              return this[o].slice();
7373            var n,
7374              r = e.type(s),
7375              d = "array" === r || "object" === r ? s : arguments,
7376              c = this[o].slice();
7377            return (
7378              f(a, function (e, t) {
7379                var s = d["object" === r ? e : t.idx];
7380                null == s && (s = c[t.idx]), (c[t.idx] = i(s, t));
7381              }),
7382              u ? ((n = l(u(c))), (n[o] = c), n) : l(c)
7383            );
7384          }),
7385            f(a, function (t, i) {
7386              l.fn[t] ||
7387                (l.fn[t] = function (n) {
7388                  var a,
7389                    o = e.type(n),
7390                    h = "alpha" === t ? (this._hsla ? "hsla" : "rgba") : s,
7391                    l = this[h](),
7392                    u = l[i.idx];
7393                  return "undefined" === o
7394                    ? u
7395                    : ("function" === o &&
7396                        ((n = n.call(this, u)), (o = e.type(n))),
7397                      null == n && i.empty
7398                        ? this
7399                        : ("string" === o &&
7400                            ((a = r.exec(n)),
7401                            a &&
7402                              (n =
7403                                u +
7404                                parseFloat(a[2]) * ("+" === a[1] ? 1 : -1))),
7405                          (l[i.idx] = n),
7406                          this[h](l)));
7407                });
7408            });
7409        }),
7410        (l.hook = function (t) {
7411          var i = t.split(" ");
7412          f(i, function (t, i) {
7413            (e.cssHooks[i] = {
7414              set: function (t, n) {
7415                var a,
7416                  o,
7417                  r = "";
7418                if (
7419                  "transparent" !== n &&
7420                  ("string" !== e.type(n) || (a = s(n)))
7421                ) {
7422                  if (((n = l(a || n)), !c.rgba && 1 !== n._rgba[3])) {
7423                    for (
7424                      o = "backgroundColor" === i ? t.parentNode : t;
7425                      ("" === r || "transparent" === r) && o && o.style;
7426
7427                    )
7428                      try {
7429                        (r = e.css(o, "backgroundColor")), (o = o.parentNode);
7430                      } catch (h) {}
7431                    n = n.blend(r && "transparent" !== r ? r : "_default");
7432                  }
7433                  n = n.toRgbaString();
7434                }
7435                try {
7436                  t.style[i] = n;
7437                } catch (h) {}
7438              },
7439            }),
7440              (e.fx.step[i] = function (t) {
7441                t.colorInit ||
7442                  ((t.start = l(t.elem, i)),
7443                  (t.end = l(t.end)),
7444                  (t.colorInit = !0)),
7445                  e.cssHooks[i].set(t.elem, t.start.transition(t.end, t.pos));
7446              });
7447          });
7448        }),
7449        l.hook(o),
7450        (e.cssHooks.borderColor = {
7451          expand: function (e) {
7452            var t = {};
7453            return (
7454              f(["Top", "Right", "Bottom", "Left"], function (i, s) {
7455                t["border" + s + "Color"] = e;
7456              }),
7457              t
7458            );
7459          },
7460        }),
7461        (a = e.Color.names =
7462          {
7463            aqua: "#00ffff",
7464            black: "#000000",
7465            blue: "#0000ff",
7466            fuchsia: "#ff00ff",
7467            gray: "#808080",
7468            green: "#008000",
7469            lime: "#00ff00",
7470            maroon: "#800000",
7471            navy: "#000080",
7472            olive: "#808000",
7473            purple: "#800080",
7474            red: "#ff0000",
7475            silver: "#c0c0c0",
7476            teal: "#008080",
7477            white: "#ffffff",
7478            yellow: "#ffff00",
7479            transparent: [null, null, null, 0],
7480            _default: "#ffffff",
7481          });
7482    })(jQuery),
7483    (function () {
7484      function t(t) {
7485        var i,
7486          s,
7487          n = t.ownerDocument.defaultView
7488            ? t.ownerDocument.defaultView.getComputedStyle(t, null)
7489            : t.currentStyle,
7490          a = {};
7491        if (n && n.length && n[0] && n[n[0]])
7492          for (s = n.length; s--; )
7493            (i = n[s]), "string" == typeof n[i] && (a[e.camelCase(i)] = n[i]);
7494        else for (i in n) "string" == typeof n[i] && (a[i] = n[i]);
7495        return a;
7496      }
7497      function i(t, i) {
7498        var s,
7499          a,
7500          o = {};
7501        for (s in i)
7502          (a = i[s]),
7503            t[s] !== a &&
7504              (n[s] || ((e.fx.step[s] || !isNaN(parseFloat(a))) && (o[s] = a)));
7505        return o;
7506      }
7507      var s = ["add", "remove", "toggle"],
7508        n = {
7509          border: 1,
7510          borderBottom: 1,
7511          borderColor: 1,
7512          borderLeft: 1,
7513          borderRight: 1,
7514          borderTop: 1,
7515          borderWidth: 1,
7516          margin: 1,
7517          padding: 1,
7518        };
7519      e.each(
7520        [
7521          "borderLeftStyle",
7522          "borderRightStyle",
7523          "borderBottomStyle",
7524          "borderTopStyle",
7525        ],
7526        function (t, i) {
7527          e.fx.step[i] = function (e) {
7528            (("none" !== e.end && !e.setAttr) || (1 === e.pos && !e.setAttr)) &&
7529              (jQuery.style(e.elem, i, e.end), (e.setAttr = !0));
7530          };
7531        }
7532      ),
7533        e.fn.addBack ||
7534          (e.fn.addBack = function (e) {
7535            return this.add(
7536              null == e ? this.prevObject : this.prevObject.filter(e)
7537            );
7538          }),
7539        (e.effects.animateClass = function (n, a, o, r) {
7540          var h = e.speed(a, o, r);
7541          return this.queue(function () {
7542            var a,
7543              o = e(this),
7544              r = o.attr("class") || "",
7545              l = h.children ? o.find("*").addBack() : o;
7546            (l = l.map(function () {
7547              var i = e(this);
7548              return { el: i, start: t(this) };
7549            })),
7550              (a = function () {
7551                e.each(s, function (e, t) {
7552                  n[t] && o[t + "Class"](n[t]);
7553                });
7554              }),
7555              a(),
7556              (l = l.map(function () {
7557                return (
7558                  (this.end = t(this.el[0])),
7559                  (this.diff = i(this.start, this.end)),
7560                  this
7561                );
7562              })),
7563              o.attr("class", r),
7564              (l = l.map(function () {
7565                var t = this,
7566                  i = e.Deferred(),
7567                  s = e.extend({}, h, {
7568                    queue: !1,
7569                    complete: function () {
7570                      i.resolve(t);
7571                    },
7572                  });
7573                return this.el.animate(this.diff, s), i.promise();
7574              })),
7575              e.when.apply(e, l.get()).done(function () {
7576                a(),
7577                  e.each(arguments, function () {
7578                    var t = this.el;
7579                    e.each(this.diff, function (e) {
7580                      t.css(e, "");
7581                    });
7582                  }),
7583                  h.complete.call(o[0]);
7584              });
7585          });
7586        }),
7587        e.fn.extend({
7588          addClass: (function (t) {
7589            return function (i, s, n, a) {
7590              return s
7591                ? e.effects.animateClass.call(this, { add: i }, s, n, a)
7592                : t.apply(this, arguments);
7593            };
7594          })(e.fn.addClass),
7595          removeClass: (function (t) {
7596            return function (i, s, n, a) {
7597              return arguments.length > 1
7598                ? e.effects.animateClass.call(this, { remove: i }, s, n, a)
7599                : t.apply(this, arguments);
7600            };
7601          })(e.fn.removeClass),
7602          toggleClass: (function (t) {
7603            return function (i, s, n, a, o) {
7604              return "boolean" == typeof s || void 0 === s
7605                ? n
7606                  ? e.effects.animateClass.call(
7607                      this,
7608                      s ? { add: i } : { remove: i },
7609                      n,
7610                      a,
7611                      o
7612                    )
7613                  : t.apply(this, arguments)
7614                : e.effects.animateClass.call(this, { toggle: i }, s, n, a);
7615            };
7616          })(e.fn.toggleClass),
7617          switchClass: function (t, i, s, n, a) {
7618            return e.effects.animateClass.call(
7619              this,
7620              { add: i, remove: t },
7621              s,
7622              n,
7623              a
7624            );
7625          },
7626        });
7627    })(),
7628    (function () {
7629      function t(t, i, s, n) {
7630        return (
7631          e.isPlainObject(t) && ((i = t), (t = t.effect)),
7632          (t = { effect: t }),
7633          null == i && (i = {}),
7634          e.isFunction(i) && ((n = i), (s = null), (i = {})),
7635          ("number" == typeof i || e.fx.speeds[i]) &&
7636            ((n = s), (s = i), (i = {})),
7637          e.isFunction(s) && ((n = s), (s = null)),
7638          i && e.extend(t, i),
7639          (s = s || i.duration),
7640          (t.duration = e.fx.off
7641            ? 0
7642            : "number" == typeof s
7643            ? s
7644            : s in e.fx.speeds
7645            ? e.fx.speeds[s]
7646            : e.fx.speeds._default),
7647          (t.complete = n || i.complete),
7648          t
7649        );
7650      }
7651      function i(t) {
7652        return !t || "number" == typeof t || e.fx.speeds[t]
7653          ? !0
7654          : "string" != typeof t || e.effects.effect[t]
7655          ? e.isFunction(t)
7656            ? !0
7657            : "object" != typeof t || t.effect
7658            ? !1
7659            : !0
7660          : !0;
7661      }
7662      e.extend(e.effects, {
7663        version: "1.11.0",
7664        save: function (e, t) {
7665          for (var i = 0; t.length > i; i++)
7666            null !== t[i] && e.data(v + t[i], e[0].style[t[i]]);
7667        },
7668        restore: function (e, t) {
7669          var i, s;
7670          for (s = 0; t.length > s; s++)
7671            null !== t[s] &&
7672              ((i = e.data(v + t[s])),
7673              void 0 === i && (i = ""),
7674              e.css(t[s], i));
7675        },
7676        setMode: function (e, t) {
7677          return "toggle" === t && (t = e.is(":hidden") ? "show" : "hide"), t;
7678        },
7679        getBaseline: function (e, t) {
7680          var i, s;
7681          switch (e[0]) {
7682            case "top":
7683              i = 0;
7684              break;
7685            case "middle":
7686              i = 0.5;
7687              break;
7688            case "bottom":
7689              i = 1;
7690              break;
7691            default:
7692              i = e[0] / t.height;
7693          }
7694          switch (e[1]) {
7695            case "left":
7696              s = 0;
7697              break;
7698            case "center":
7699              s = 0.5;
7700              break;
7701            case "right":
7702              s = 1;
7703              break;
7704            default:
7705              s = e[1] / t.width;
7706          }
7707          return { x: s, y: i };
7708        },
7709        createWrapper: function (t) {
7710          if (t.parent().is(".ui-effects-wrapper")) return t.parent();
7711          var i = {
7712              width: t.outerWidth(!0),
7713              height: t.outerHeight(!0),
7714              float: t.css("float"),
7715            },
7716            s = e("<div></div>").addClass("ui-effects-wrapper").css({
7717              fontSize: "100%",
7718              background: "transparent",
7719              border: "none",
7720              margin: 0,
7721              padding: 0,
7722            }),
7723            n = { width: t.width(), height: t.height() },
7724            a = document.activeElement;
7725          try {
7726            a.id;
7727          } catch (o) {
7728            a = document.body;
7729          }
7730          return (
7731            t.wrap(s),
7732            (t[0] === a || e.contains(t[0], a)) && e(a).focus(),
7733            (s = t.parent()),
7734            "static" === t.css("position")
7735              ? (s.css({ position: "relative" }),
7736                t.css({ position: "relative" }))
7737              : (e.extend(i, {
7738                  position: t.css("position"),
7739                  zIndex: t.css("z-index"),
7740                }),
7741                e.each(["top", "left", "bottom", "right"], function (e, s) {
7742                  (i[s] = t.css(s)),
7743                    isNaN(parseInt(i[s], 10)) && (i[s] = "auto");
7744                }),
7745                t.css({
7746                  position: "relative",
7747                  top: 0,
7748                  left: 0,
7749                  right: "auto",
7750                  bottom: "auto",
7751                })),
7752            t.css(n),
7753            s.css(i).show()
7754          );
7755        },
7756        removeWrapper: function (t) {
7757          var i = document.activeElement;
7758          return (
7759            t.parent().is(".ui-effects-wrapper") &&
7760              (t.parent().replaceWith(t),
7761              (t[0] === i || e.contains(t[0], i)) && e(i).focus()),
7762            t
7763          );
7764        },
7765        setTransition: function (t, i, s, n) {
7766          return (
7767            (n = n || {}),
7768            e.each(i, function (e, i) {
7769              var a = t.cssUnit(i);
7770              a[0] > 0 && (n[i] = a[0] * s + a[1]);
7771            }),
7772            n
7773          );
7774        },
7775      }),
7776        e.fn.extend({
7777          effect: function () {
7778            function i(t) {
7779              function i() {
7780                e.isFunction(a) && a.call(n[0]), e.isFunction(t) && t();
7781              }
7782              var n = e(this),
7783                a = s.complete,
7784                r = s.mode;
7785              (n.is(":hidden") ? "hide" === r : "show" === r)
7786                ? (n[r](), i())
7787                : o.call(n[0], s, i);
7788            }
7789            var s = t.apply(this, arguments),
7790              n = s.mode,
7791              a = s.queue,
7792              o = e.effects.effect[s.effect];
7793            return e.fx.off || !o
7794              ? n
7795                ? this[n](s.duration, s.complete)
7796                : this.each(function () {
7797                    s.complete && s.complete.call(this);
7798                  })
7799              : a === !1
7800              ? this.each(i)
7801              : this.queue(a || "fx", i);
7802          },
7803          show: (function (e) {
7804            return function (s) {
7805              if (i(s)) return e.apply(this, arguments);
7806              var n = t.apply(this, arguments);
7807              return (n.mode = "show"), this.effect.call(this, n);
7808            };
7809          })(e.fn.show),
7810          hide: (function (e) {
7811            return function (s) {
7812              if (i(s)) return e.apply(this, arguments);
7813              var n = t.apply(this, arguments);
7814              return (n.mode = "hide"), this.effect.call(this, n);
7815            };
7816          })(e.fn.hide),
7817          toggle: (function (e) {
7818            return function (s) {
7819              if (i(s) || "boolean" == typeof s)
7820                return e.apply(this, arguments);
7821              var n = t.apply(this, arguments);
7822              return (n.mode = "toggle"), this.effect.call(this, n);
7823            };
7824          })(e.fn.toggle),
7825          cssUnit: function (t) {
7826            var i = this.css(t),
7827              s = [];
7828            return (
7829              e.each(["em", "px", "%", "pt"], function (e, t) {
7830                i.indexOf(t) > 0 && (s = [parseFloat(i), t]);
7831              }),
7832              s
7833            );
7834          },
7835        });
7836    })(),
7837    (function () {
7838      var t = {};
7839      e.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function (e, i) {
7840        t[i] = function (t) {
7841          return Math.pow(t, e + 2);
7842        };
7843      }),
7844        e.extend(t, {
7845          Sine: function (e) {
7846            return 1 - Math.cos((e * Math.PI) / 2);
7847          },
7848          Circ: function (e) {
7849            return 1 - Math.sqrt(1 - e * e);
7850          },
7851          Elastic: function (e) {
7852            return 0 === e || 1 === e
7853              ? e
7854              : -Math.pow(2, 8 * (e - 1)) *
7855                  Math.sin(((80 * (e - 1) - 7.5) * Math.PI) / 15);
7856          },
7857          Back: function (e) {
7858            return e * e * (3 * e - 2);
7859          },
7860          Bounce: function (e) {
7861            for (var t, i = 4; ((t = Math.pow(2, --i)) - 1) / 11 > e; );
7862            return (
7863              1 / Math.pow(4, 3 - i) -
7864              7.5625 * Math.pow((3 * t - 2) / 22 - e, 2)
7865            );
7866          },
7867        }),
7868        e.each(t, function (t, i) {
7869          (e.easing["easeIn" + t] = i),
7870            (e.easing["easeOut" + t] = function (e) {
7871              return 1 - i(1 - e);
7872            }),
7873            (e.easing["easeInOut" + t] = function (e) {
7874              return 0.5 > e ? i(2 * e) / 2 : 1 - i(-2 * e + 2) / 2;
7875            });
7876        });
7877    })(),
7878    e.effects,
7879    (e.effects.effect.blind = function (t, i) {
7880      var s,
7881        n,
7882        a,
7883        o = e(this),
7884        r = /up|down|vertical/,
7885        h = /up|left|vertical|horizontal/,
7886        l = ["position", "top", "bottom", "left", "right", "height", "width"],
7887        u = e.effects.setMode(o, t.mode || "hide"),
7888        d = t.direction || "up",
7889        c = r.test(d),
7890        p = c ? "height" : "width",
7891        f = c ? "top" : "left",
7892        m = h.test(d),
7893        g = {},
7894        v = "show" === u;
7895      o.parent().is(".ui-effects-wrapper")
7896        ? e.effects.save(o.parent(), l)
7897        : e.effects.save(o, l),
7898        o.show(),
7899        (s = e.effects.createWrapper(o).css({ overflow: "hidden" })),
7900        (n = s[p]()),
7901        (a = parseFloat(s.css(f)) || 0),
7902        (g[p] = v ? n : 0),
7903        m ||
7904          (o
7905            .css(c ? "bottom" : "right", 0)
7906            .css(c ? "top" : "left", "auto")
7907            .css({ position: "absolute" }),
7908          (g[f] = v ? a : n + a)),
7909        v && (s.css(p, 0), m || s.css(f, a + n)),
7910        s.animate(g, {
7911          duration: t.duration,
7912          easing: t.easing,
7913          queue: !1,
7914          complete: function () {
7915            "hide" === u && o.hide(),
7916              e.effects.restore(o, l),
7917              e.effects.removeWrapper(o),
7918              i();
7919          },
7920        });
7921    }),
7922    (e.effects.effect.bounce = function (t, i) {
7923      var s,
7924        n,
7925        a,
7926        o = e(this),
7927        r = ["position", "top", "bottom", "left", "right", "height", "width"],
7928        h = e.effects.setMode(o, t.mode || "effect"),
7929        l = "hide" === h,
7930        u = "show" === h,
7931        d = t.direction || "up",
7932        c = t.distance,
7933        p = t.times || 5,
7934        f = 2 * p + (u || l ? 1 : 0),
7935        m = t.duration / f,
7936        g = t.easing,
7937        v = "up" === d || "down" === d ? "top" : "left",
7938        y = "up" === d || "left" === d,
7939        b = o.queue(),
7940        _ = b.length;
7941      for (
7942        (u || l) && r.push("opacity"),
7943          e.effects.save(o, r),
7944          o.show(),
7945          e.effects.createWrapper(o),
7946          c || (c = o["top" === v ? "outerHeight" : "outerWidth"]() / 3),
7947          u &&
7948            ((a = { opacity: 1 }),
7949            (a[v] = 0),
7950            o
7951              .css("opacity", 0)
7952              .css(v, y ? 2 * -c : 2 * c)
7953              .animate(a, m, g)),
7954          l && (c /= Math.pow(2, p - 1)),
7955          a = {},
7956          a[v] = 0,
7957          s = 0;
7958        p > s;
7959        s++
7960      )
7961        (n = {}),
7962          (n[v] = (y ? "-=" : "+=") + c),
7963          o.animate(n, m, g).animate(a, m, g),
7964          (c = l ? 2 * c : c / 2);
7965      l &&
7966        ((n = { opacity: 0 }),
7967        (n[v] = (y ? "-=" : "+=") + c),
7968        o.animate(n, m, g)),
7969        o.queue(function () {
7970          l && o.hide(),
7971            e.effects.restore(o, r),
7972            e.effects.removeWrapper(o),
7973            i();
7974        }),
7975        _ > 1 && b.splice.apply(b, [1, 0].concat(b.splice(_, f + 1))),
7976        o.dequeue();
7977    }),
7978    (e.effects.effect.clip = function (t, i) {
7979      var s,
7980        n,
7981        a,
7982        o = e(this),
7983        r = ["position", "top", "bottom", "left", "right", "height", "width"],
7984        h = e.effects.setMode(o, t.mode || "hide"),
7985        l = "show" === h,
7986        u = t.direction || "vertical",
7987        d = "vertical" === u,
7988        c = d ? "height" : "width",
7989        p = d ? "top" : "left",
7990        f = {};
7991      e.effects.save(o, r),
7992        o.show(),
7993        (s = e.effects.createWrapper(o).css({ overflow: "hidden" })),
7994        (n = "IMG" === o[0].tagName ? s : o),
7995        (a = n[c]()),
7996        l && (n.css(c, 0), n.css(p, a / 2)),
7997        (f[c] = l ? a : 0),
7998        (f[p] = l ? 0 : a / 2),
7999        n.animate(f, {
8000          queue: !1,
8001          duration: t.duration,
8002          easing: t.easing,
8003          complete: function () {
8004            l || o.hide(),
8005              e.effects.restore(o, r),
8006              e.effects.removeWrapper(o),
8007              i();
8008          },
8009        });
8010    }),
8011    (e.effects.effect.drop = function (t, i) {
8012      var s,
8013        n = e(this),
8014        a = [
8015          "position",
8016          "top",
8017          "bottom",
8018          "left",
8019          "right",
8020          "opacity",
8021          "height",
8022          "width",
8023        ],
8024        o = e.effects.setMode(n, t.mode || "hide"),
8025        r = "show" === o,
8026        h = t.direction || "left",
8027        l = "up" === h || "down" === h ? "top" : "left",
8028        u = "up" === h || "left" === h ? "pos" : "neg",
8029        d = { opacity: r ? 1 : 0 };
8030      e.effects.save(n, a),
8031        n.show(),
8032        e.effects.createWrapper(n),
8033        (s =
8034          t.distance || n["top" === l ? "outerHeight" : "outerWidth"](!0) / 2),
8035        r && n.css("opacity", 0).css(l, "pos" === u ? -s : s),
8036        (d[l] =
8037          (r ? ("pos" === u ? "+=" : "-=") : "pos" === u ? "-=" : "+=") + s),
8038        n.animate(d, {
8039          queue: !1,
8040          duration: t.duration,
8041          easing: t.easing,
8042          complete: function () {
8043            "hide" === o && n.hide(),
8044              e.effects.restore(n, a),
8045              e.effects.removeWrapper(n),
8046              i();
8047          },
8048        });
8049    }),
8050    (e.effects.effect.explode = function (t, i) {
8051      function s() {
8052        b.push(this), b.length === d * c && n();
8053      }
8054      function n() {
8055        p.css({ visibility: "visible" }), e(b).remove(), m || p.hide(), i();
8056      }
8057      var a,
8058        o,
8059        r,
8060        h,
8061        l,
8062        u,
8063        d = t.pieces ? Math.round(Math.sqrt(t.pieces)) : 3,
8064        c = d,
8065        p = e(this),
8066        f = e.effects.setMode(p, t.mode || "hide"),
8067        m = "show" === f,
8068        g = p.show().css("visibility", "hidden").offset(),
8069        v = Math.ceil(p.outerWidth() / c),
8070        y = Math.ceil(p.outerHeight() / d),
8071        b = [];
8072      for (a = 0; d > a; a++)
8073        for (h = g.top + a * y, u = a - (d - 1) / 2, o = 0; c > o; o++)
8074          (r = g.left + o * v),
8075            (l = o - (c - 1) / 2),
8076            p
8077              .clone()
8078              .appendTo("body")
8079              .wrap("<div></div>")
8080              .css({
8081                position: "absolute",
8082                visibility: "visible",
8083                left: -o * v,
8084                top: -a * y,
8085              })
8086              .parent()
8087              .addClass("ui-effects-explode")
8088              .css({
8089                position: "absolute",
8090                overflow: "hidden",
8091                width: v,
8092                height: y,
8093                left: r + (m ? l * v : 0),
8094                top: h + (m ? u * y : 0),
8095                opacity: m ? 0 : 1,
8096              })
8097              .animate(
8098                {
8099                  left: r + (m ? 0 : l * v),
8100                  top: h + (m ? 0 : u * y),
8101                  opacity: m ? 1 : 0,
8102                },
8103                t.duration || 500,
8104                t.easing,
8105                s
8106              );
8107    }),
8108    (e.effects.effect.fade = function (t, i) {
8109      var s = e(this),
8110        n = e.effects.setMode(s, t.mode || "toggle");
8111      s.animate(
8112        { opacity: n },
8113        { queue: !1, duration: t.duration, easing: t.easing, complete: i }
8114      );
8115    }),
8116    (e.effects.effect.fold = function (t, i) {
8117      var s,
8118        n,
8119        a = e(this),
8120        o = ["position", "top", "bottom", "left", "right", "height", "width"],
8121        r = e.effects.setMode(a, t.mode || "hide"),
8122        h = "show" === r,
8123        l = "hide" === r,
8124        u = t.size || 15,
8125        d = /([0-9]+)%/.exec(u),
8126        c = !!t.horizFirst,
8127        p = h !== c,
8128        f = p ? ["width", "height"] : ["height", "width"],
8129        m = t.duration / 2,
8130        g = {},
8131        v = {};
8132      e.effects.save(a, o),
8133        a.show(),
8134        (s = e.effects.createWrapper(a).css({ overflow: "hidden" })),
8135        (n = p ? [s.width(), s.height()] : [s.height(), s.width()]),
8136        d && (u = (parseInt(d[1], 10) / 100) * n[l ? 0 : 1]),
8137        h && s.css(c ? { height: 0, width: u } : { height: u, width: 0 }),
8138        (g[f[0]] = h ? n[0] : u),
8139        (v[f[1]] = h ? n[1] : 0),
8140        s.animate(g, m, t.easing).animate(v, m, t.easing, function () {
8141          l && a.hide(),
8142            e.effects.restore(a, o),
8143            e.effects.removeWrapper(a),
8144            i();
8145        });
8146    }),
8147    (e.effects.effect.highlight = function (t, i) {
8148      var s = e(this),
8149        n = ["backgroundImage", "backgroundColor", "opacity"],
8150        a = e.effects.setMode(s, t.mode || "show"),
8151        o = { backgroundColor: s.css("backgroundColor") };
8152      "hide" === a && (o.opacity = 0),
8153        e.effects.save(s, n),
8154        s
8155          .show()
8156          .css({
8157            backgroundImage: "none",
8158            backgroundColor: t.color || "#ffff99",
8159          })
8160          .animate(o, {
8161            queue: !1,
8162            duration: t.duration,
8163            easing: t.easing,
8164            complete: function () {
8165              "hide" === a && s.hide(), e.effects.restore(s, n), i();
8166            },
8167          });
8168    }),
8169    (e.effects.effect.size = function (t, i) {
8170      var s,
8171        n,
8172        a,
8173        o = e(this),
8174        r = [
8175          "position",
8176          "top",
8177          "bottom",
8178          "left",
8179          "right",
8180          "width",
8181          "height",
8182          "overflow",
8183          "opacity",
8184        ],
8185        h = [
8186          "position",
8187          "top",
8188          "bottom",
8189          "left",
8190          "right",
8191          "overflow",
8192          "opacity",
8193        ],
8194        l = ["width", "height", "overflow"],
8195        u = ["fontSize"],
8196        d = [
8197          "borderTopWidth",
8198          "borderBottomWidth",
8199          "paddingTop",
8200          "paddingBottom",
8201        ],
8202        c = [
8203          "borderLeftWidth",
8204          "borderRightWidth",
8205          "paddingLeft",
8206          "paddingRight",
8207        ],
8208        p = e.effects.setMode(o, t.mode || "effect"),
8209        f = t.restore || "effect" !== p,
8210        m = t.scale || "both",
8211        g = t.origin || ["middle", "center"],
8212        v = o.css("position"),
8213        y = f ? r : h,
8214        b = { height: 0, width: 0, outerHeight: 0, outerWidth: 0 };
8215      "show" === p && o.show(),
8216        (s = {
8217          height: o.height(),
8218          width: o.width(),
8219          outerHeight: o.outerHeight(),
8220          outerWidth: o.outerWidth(),
8221        }),
8222        "toggle" === t.mode && "show" === p
8223          ? ((o.from = t.to || b), (o.to = t.from || s))
8224          : ((o.from = t.from || ("show" === p ? b : s)),
8225            (o.to = t.to || ("hide" === p ? b : s))),
8226        (a = {
8227          from: { y: o.from.height / s.height, x: o.from.width / s.width },
8228          to: { y: o.to.height / s.height, x: o.to.width / s.width },
8229        }),
8230        ("box" === m || "both" === m) &&
8231          (a.from.y !== a.to.y &&
8232            ((y = y.concat(d)),
8233            (o.from = e.effects.setTransition(o, d, a.from.y, o.from)),
8234            (o.to = e.effects.setTransition(o, d, a.to.y, o.to))),
8235          a.from.x !== a.to.x &&
8236            ((y = y.concat(c)),
8237            (o.from = e.effects.setTransition(o, c, a.from.x, o.from)),
8238            (o.to = e.effects.setTransition(o, c, a.to.x, o.to)))),
8239        ("content" === m || "both" === m) &&
8240          a.from.y !== a.to.y &&
8241          ((y = y.concat(u).concat(l)),
8242          (o.from = e.effects.setTransition(o, u, a.from.y, o.from)),
8243          (o.to = e.effects.setTransition(o, u, a.to.y, o.to))),
8244        e.effects.save(o, y),
8245        o.show(),
8246        e.effects.createWrapper(o),
8247        o.css("overflow", "hidden").css(o.from),
8248        g &&
8249          ((n = e.effects.getBaseline(g, s)),
8250          (o.from.top = (s.outerHeight - o.outerHeight()) * n.y),
8251          (o.from.left = (s.outerWidth - o.outerWidth()) * n.x),
8252          (o.to.top = (s.outerHeight - o.to.outerHeight) * n.y),
8253          (o.to.left = (s.outerWidth - o.to.outerWidth) * n.x)),
8254        o.css(o.from),
8255        ("content" === m || "both" === m) &&
8256          ((d = d.concat(["marginTop", "marginBottom"]).concat(u)),
8257          (c = c.concat(["marginLeft", "marginRight"])),
8258          (l = r.concat(d).concat(c)),
8259          o.find("*[width]").each(function () {
8260            var i = e(this),
8261              s = {
8262                height: i.height(),
8263                width: i.width(),
8264                outerHeight: i.outerHeight(),
8265                outerWidth: i.outerWidth(),
8266              };
8267            f && e.effects.save(i, l),
8268              (i.from = {
8269                height: s.height * a.from.y,
8270                width: s.width * a.from.x,
8271                outerHeight: s.outerHeight * a.from.y,
8272                outerWidth: s.outerWidth * a.from.x,
8273              }),
8274              (i.to = {
8275                height: s.height * a.to.y,
8276                width: s.width * a.to.x,
8277                outerHeight: s.height * a.to.y,
8278                outerWidth: s.width * a.to.x,
8279              }),
8280              a.from.y !== a.to.y &&
8281                ((i.from = e.effects.setTransition(i, d, a.from.y, i.from)),
8282                (i.to = e.effects.setTransition(i, d, a.to.y, i.to))),
8283              a.from.x !== a.to.x &&
8284                ((i.from = e.effects.setTransition(i, c, a.from.x, i.from)),
8285                (i.to = e.effects.setTransition(i, c, a.to.x, i.to))),
8286              i.css(i.from),
8287              i.animate(i.to, t.duration, t.easing, function () {
8288                f && e.effects.restore(i, l);
8289              });
8290          })),
8291        o.animate(o.to, {
8292          queue: !1,
8293          duration: t.duration,
8294          easing: t.easing,
8295          complete: function () {
8296            0 === o.to.opacity && o.css("opacity", o.from.opacity),
8297              "hide" === p && o.hide(),
8298              e.effects.restore(o, y),
8299              f ||
8300                ("static" === v
8301                  ? o.css({
8302                      position: "relative",
8303                      top: o.to.top,
8304                      left: o.to.left,
8305                    })
8306                  : e.each(["top", "left"], function (e, t) {
8307                      o.css(t, function (t, i) {
8308                        var s = parseInt(i, 10),
8309                          n = e ? o.to.left : o.to.top;
8310                        return "auto" === i ? n + "px" : s + n + "px";
8311                      });
8312                    })),
8313              e.effects.removeWrapper(o),
8314              i();
8315          },
8316        });
8317    }),
8318    (e.effects.effect.scale = function (t, i) {
8319      var s = e(this),
8320        n = e.extend(!0, {}, t),
8321        a = e.effects.setMode(s, t.mode || "effect"),
8322        o =
8323          parseInt(t.percent, 10) ||
8324          (0 === parseInt(t.percent, 10) ? 0 : "hide" === a ? 0 : 100),
8325        r = t.direction || "both",
8326        h = t.origin,
8327        l = {
8328          height: s.height(),
8329          width: s.width(),
8330          outerHeight: s.outerHeight(),
8331          outerWidth: s.outerWidth(),
8332        },
8333        u = {
8334          y: "horizontal" !== r ? o / 100 : 1,
8335          x: "vertical" !== r ? o / 100 : 1,
8336        };
8337      (n.effect = "size"),
8338        (n.queue = !1),
8339        (n.complete = i),
8340        "effect" !== a &&
8341          ((n.origin = h || ["middle", "center"]), (n.restore = !0)),
8342        (n.from =
8343          t.from ||
8344          ("show" === a
8345            ? { height: 0, width: 0, outerHeight: 0, outerWidth: 0 }
8346            : l)),
8347        (n.to = {
8348          height: l.height * u.y,
8349          width: l.width * u.x,
8350          outerHeight: l.outerHeight * u.y,
8351          outerWidth: l.outerWidth * u.x,
8352        }),
8353        n.fade &&
8354          ("show" === a && ((n.from.opacity = 0), (n.to.opacity = 1)),
8355          "hide" === a && ((n.from.opacity = 1), (n.to.opacity = 0))),
8356        s.effect(n);
8357    }),
8358    (e.effects.effect.puff = function (t, i) {
8359      var s = e(this),
8360        n = e.effects.setMode(s, t.mode || "hide"),
8361        a = "hide" === n,
8362        o = parseInt(t.percent, 10) || 150,
8363        r = o / 100,
8364        h = {
8365          height: s.height(),
8366          width: s.width(),
8367          outerHeight: s.outerHeight(),
8368          outerWidth: s.outerWidth(),
8369        };
8370      e.extend(t, {
8371        effect: "scale",
8372        queue: !1,
8373        fade: !0,
8374        mode: n,
8375        complete: i,
8376        percent: a ? o : 100,
8377        from: a
8378          ? h
8379          : {
8380              height: h.height * r,
8381              width: h.width * r,
8382              outerHeight: h.outerHeight * r,
8383              outerWidth: h.outerWidth * r,
8384            },
8385      }),
8386        s.effect(t);
8387    }),
8388    (e.effects.effect.pulsate = function (t, i) {
8389      var s,
8390        n = e(this),
8391        a = e.effects.setMode(n, t.mode || "show"),
8392        o = "show" === a,
8393        r = "hide" === a,
8394        h = o || "hide" === a,
8395        l = 2 * (t.times || 5) + (h ? 1 : 0),
8396        u = t.duration / l,
8397        d = 0,
8398        c = n.queue(),
8399        p = c.length;
8400      for (
8401        (o || !n.is(":visible")) && (n.css("opacity", 0).show(), (d = 1)),
8402          s = 1;
8403        l > s;
8404        s++
8405      )
8406        n.animate({ opacity: d }, u, t.easing), (d = 1 - d);
8407      n.animate({ opacity: d }, u, t.easing),
8408        n.queue(function () {
8409          r && n.hide(), i();
8410        }),
8411        p > 1 && c.splice.apply(c, [1, 0].concat(c.splice(p, l + 1))),
8412        n.dequeue();
8413    }),
8414    (e.effects.effect.shake = function (t, i) {
8415      var s,
8416        n = e(this),
8417        a = ["position", "top", "bottom", "left", "right", "height", "width"],
8418        o = e.effects.setMode(n, t.mode || "effect"),
8419        r = t.direction || "left",
8420        h = t.distance || 20,
8421        l = t.times || 3,
8422        u = 2 * l + 1,
8423        d = Math.round(t.duration / u),
8424        c = "up" === r || "down" === r ? "top" : "left",
8425        p = "up" === r || "left" === r,
8426        f = {},
8427        m = {},
8428        g = {},
8429        v = n.queue(),
8430        y = v.length;
8431      for (
8432        e.effects.save(n, a),
8433          n.show(),
8434          e.effects.createWrapper(n),
8435          f[c] = (p ? "-=" : "+=") + h,
8436          m[c] = (p ? "+=" : "-=") + 2 * h,
8437          g[c] = (p ? "-=" : "+=") + 2 * h,
8438          n.animate(f, d, t.easing),
8439          s = 1;
8440        l > s;
8441        s++
8442      )
8443        n.animate(m, d, t.easing).animate(g, d, t.easing);
8444      n
8445        .animate(m, d, t.easing)
8446        .animate(f, d / 2, t.easing)
8447        .queue(function () {
8448          "hide" === o && n.hide(),
8449            e.effects.restore(n, a),
8450            e.effects.removeWrapper(n),
8451            i();
8452        }),
8453        y > 1 && v.splice.apply(v, [1, 0].concat(v.splice(y, u + 1))),
8454        n.dequeue();
8455    }),
8456    (e.effects.effect.slide = function (t, i) {
8457      var s,
8458        n = e(this),
8459        a = ["position", "top", "bottom", "left", "right", "width", "height"],
8460        o = e.effects.setMode(n, t.mode || "show"),
8461        r = "show" === o,
8462        h = t.direction || "left",
8463        l = "up" === h || "down" === h ? "top" : "left",
8464        u = "up" === h || "left" === h,
8465        d = {};
8466      e.effects.save(n, a),
8467        n.show(),
8468        (s = t.distance || n["top" === l ? "outerHeight" : "outerWidth"](!0)),
8469        e.effects.createWrapper(n).css({ overflow: "hidden" }),
8470        r && n.css(l, u ? (isNaN(s) ? "-" + s : -s) : s),
8471        (d[l] = (r ? (u ? "+=" : "-=") : u ? "-=" : "+=") + s),
8472        n.animate(d, {
8473          queue: !1,
8474          duration: t.duration,
8475          easing: t.easing,
8476          complete: function () {
8477            "hide" === o && n.hide(),
8478              e.effects.restore(n, a),
8479              e.effects.removeWrapper(n),
8480              i();
8481          },
8482        });
8483    }),
8484    (e.effects.effect.transfer = function (t, i) {
8485      var s = e(this),
8486        n = e(t.to),
8487        a = "fixed" === n.css("position"),
8488        o = e("body"),
8489        r = a ? o.scrollTop() : 0,
8490        h = a ? o.scrollLeft() : 0,
8491        l = n.offset(),
8492        u = {
8493          top: l.top - r,
8494          left: l.left - h,
8495          height: n.innerHeight(),
8496          width: n.innerWidth(),
8497        },
8498        d = s.offset(),
8499        c = e("<div class='ui-effects-transfer'></div>")
8500          .appendTo(document.body)
8501          .addClass(t.className)
8502          .css({
8503            top: d.top - r,
8504            left: d.left - h,
8505            height: s.innerHeight(),
8506            width: s.innerWidth(),
8507            position: a ? "fixed" : "absolute",
8508          })
8509          .animate(u, t.duration, t.easing, function () {
8510            c.remove(), i();
8511          });
8512    }),
8513    e.widget("ui.progressbar", {
8514      version: "1.11.0",
8515      options: { max: 100, value: 0, change: null, complete: null },
8516      min: 0,
8517      _create: function () {
8518        (this.oldValue = this.options.value = this._constrainedValue()),
8519          this.element
8520            .addClass(
8521              "ui-progressbar ui-widget ui-widget-content ui-corner-all"
8522            )
8523            .attr({ role: "progressbar", "aria-valuemin": this.min }),
8524          (this.valueDiv = e(
8525            "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>"
8526          ).appendTo(this.element)),
8527          this._refreshValue();
8528      },
8529      _destroy: function () {
8530        this.element
8531          .removeClass(
8532            "ui-progressbar ui-widget ui-widget-content ui-corner-all"
8533          )
8534          .removeAttr("role")
8535          .removeAttr("aria-valuemin")
8536          .removeAttr("aria-valuemax")
8537          .removeAttr("aria-valuenow"),
8538          this.valueDiv.remove();
8539      },
8540      value: function (e) {
8541        return void 0 === e
8542          ? this.options.value
8543          : ((this.options.value = this._constrainedValue(e)),
8544            this._refreshValue(),
8545            void 0);
8546      },
8547      _constrainedValue: function (e) {
8548        return (
8549          void 0 === e && (e = this.options.value),
8550          (this.indeterminate = e === !1),
8551          "number" != typeof e && (e = 0),
8552          this.indeterminate
8553            ? !1
8554            : Math.min(this.options.max, Math.max(this.min, e))
8555        );
8556      },
8557      _setOptions: function (e) {
8558        var t = e.value;
8559        delete e.value,
8560          this._super(e),
8561          (this.options.value = this._constrainedValue(t)),
8562          this._refreshValue();
8563      },
8564      _setOption: function (e, t) {
8565        "max" === e && (t = Math.max(this.min, t)),
8566          "disabled" === e &&
8567            this.element
8568              .toggleClass("ui-state-disabled", !!t)
8569              .attr("aria-disabled", t),
8570          this._super(e, t);
8571      },
8572      _percentage: function () {
8573        return this.indeterminate
8574          ? 100
8575          : (100 * (this.options.value - this.min)) /
8576              (this.options.max - this.min);
8577      },
8578      _refreshValue: function () {
8579        var t = this.options.value,
8580          i = this._percentage();
8581        this.valueDiv
8582          .toggle(this.indeterminate || t > this.min)
8583          .toggleClass("ui-corner-right", t === this.options.max)
8584          .width(i.toFixed(0) + "%"),
8585          this.element.toggleClass(
8586            "ui-progressbar-indeterminate",
8587            this.indeterminate
8588          ),
8589          this.indeterminate
8590            ? (this.element.removeAttr("aria-valuenow"),
8591              this.overlayDiv ||
8592                (this.overlayDiv = e(
8593                  "<div class='ui-progressbar-overlay'></div>"
8594                ).appendTo(this.valueDiv)))
8595            : (this.element.attr({
8596                "aria-valuemax": this.options.max,
8597                "aria-valuenow": t,
8598              }),
8599              this.overlayDiv &&
8600                (this.overlayDiv.remove(), (this.overlayDiv = null))),
8601          this.oldValue !== t && ((this.oldValue = t), this._trigger("change")),
8602          t === this.options.max && this._trigger("complete");
8603      },
8604    }),
8605    e.widget("ui.selectable", e.ui.mouse, {
8606      version: "1.11.0",
8607      options: {
8608        appendTo: "body",
8609        autoRefresh: !0,
8610        distance: 0,
8611        filter: "*",
8612        tolerance: "touch",
8613        selected: null,
8614        selecting: null,
8615        start: null,
8616        stop: null,
8617        unselected: null,
8618        unselecting: null,
8619      },
8620      _create: function () {
8621        var t,
8622          i = this;
8623        this.element.addClass("ui-selectable"),
8624          (this.dragged = !1),
8625          (this.refresh = function () {
8626            (t = e(i.options.filter, i.element[0])),
8627              t.addClass("ui-selectee"),
8628              t.each(function () {
8629                var t = e(this),
8630                  i = t.offset();
8631                e.data(this, "selectable-item", {
8632                  element: this,
8633                  $element: t,
8634                  left: i.left,
8635                  top: i.top,
8636                  right: i.left + t.outerWidth(),
8637                  bottom: i.top + t.outerHeight(),
8638                  startselected: !1,
8639                  selected: t.hasClass("ui-selected"),
8640                  selecting: t.hasClass("ui-selecting"),
8641                  unselecting: t.hasClass("ui-unselecting"),
8642                });
8643              });
8644          }),
8645          this.refresh(),
8646          (this.selectees = t.addClass("ui-selectee")),
8647          this._mouseInit(),
8648          (this.helper = e("<div class='ui-selectable-helper'></div>"));
8649      },
8650      _destroy: function () {
8651        this.selectees.removeClass("ui-selectee").removeData("selectable-item"),
8652          this.element.removeClass("ui-selectable ui-selectable-disabled"),
8653          this._mouseDestroy();
8654      },
8655      _mouseStart: function (t) {
8656        var i = this,
8657          s = this.options;
8658        (this.opos = [t.pageX, t.pageY]),
8659          this.options.disabled ||
8660            ((this.selectees = e(s.filter, this.element[0])),
8661            this._trigger("start", t),
8662            e(s.appendTo).append(this.helper),
8663            this.helper.css({
8664              left: t.pageX,
8665              top: t.pageY,
8666              width: 0,
8667              height: 0,
8668            }),
8669            s.autoRefresh && this.refresh(),
8670            this.selectees.filter(".ui-selected").each(function () {
8671              var s = e.data(this, "selectable-item");
8672              (s.startselected = !0),
8673                t.metaKey ||
8674                  t.ctrlKey ||
8675                  (s.$element.removeClass("ui-selected"),
8676                  (s.selected = !1),
8677                  s.$element.addClass("ui-unselecting"),
8678                  (s.unselecting = !0),
8679                  i._trigger("unselecting", t, { unselecting: s.element }));
8680            }),
8681            e(t.target)
8682              .parents()
8683              .addBack()
8684              .each(function () {
8685                var s,
8686                  n = e.data(this, "selectable-item");
8687                return n
8688                  ? ((s =
8689                      (!t.metaKey && !t.ctrlKey) ||
8690                      !n.$element.hasClass("ui-selected")),
8691                    n.$elemen
8691t
8692                      .removeClass(s ? "ui-unselecting" : "ui-selected")
8693                      .addClass(s ? "ui-selecting" : "ui-unselecting"),
8694                    (n.unselecting = !s),
8695                    (n.selecting = s),
8696                    (n.selected = s),
8697                    s
8698                      ? i._trigger("selecting", t, { selecting: n.element })
8699                      : i._trigger("unselecting", t, {
8700                          unselecting: n.element,
8701                        }),
8702                    !1)
8703                  : void 0;
8704              }));
8705      },
8706      _mouseDrag: function (t) {
8707        if (((this.dragged = !0), !this.options.disabled)) {
8708          var i,
8709            s = this,
8710            n = this.options,
8711            a = this.opos[0],
8712            o = this.opos[1],
8713            r = t.pageX,
8714            h = t.pageY;
8715          return (
8716            a > r && ((i = r), (r = a), (a = i)),
8717            o > h && ((i = h), (h = o), (o = i)),
8718            this.helper.css({ left: a, top: o, width: r - a, height: h - o }),
8719            this.selectees.each(function () {
8720              var i = e.data(this, "selectable-item"),
8721                l = !1;
8722              i &&
8723                i.element !== s.element[0] &&
8724                ("touch" === n.tolerance
8725                  ? (l = !(
8726                      i.left > r ||
8727                      a > i.right ||
8728                      i.top > h ||
8729                      o > i.bottom
8730                    ))
8731                  : "fit" === n.tolerance &&
8732                    (l =
8733                      i.left > a && r > i.right && i.top > o && h > i.bottom),
8734                l
8735                  ? (i.selected &&
8736                      (i.$element.removeClass("ui-selected"),
8737                      (i.selected = !1)),
8738                    i.unselecting &&
8739                      (i.$element.removeClass("ui-unselecting"),
8740                      (i.unselecting = !1)),
8741                    i.selecting ||
8742                      (i.$element.addClass("ui-selecting"),
8743                      (i.selecting = !0),
8744                      s._trigger("selecting", t, { selecting: i.element })))
8745                  : (i.selecting &&
8746                      ((t.metaKey || t.ctrlKey) && i.startselected
8747                        ? (i.$element.removeClass("ui-selecting"),
8748                          (i.selecting = !1),
8749                          i.$element.addClass("ui-selected"),
8750                          (i.selected = !0))
8751                        : (i.$element.removeClass("ui-selecting"),
8752                          (i.selecting = !1),
8753                          i.startselected &&
8754                            (i.$element.addClass("ui-unselecting"),
8755                            (i.unselecting = !0)),
8756                          s._trigger("unselecting", t, {
8757                            unselecting: i.element,
8758                          }))),
8759                    i.selected &&
8760                      (t.metaKey ||
8761                        t.ctrlKey ||
8762                        i.startselected ||
8763                        (i.$element.removeClass("ui-selected"),
8764                        (i.selected = !1),
8765                        i.$element.addClass("ui-unselecting"),
8766                        (i.unselecting = !0),
8767                        s._trigger("unselecting", t, {
8768                          unselecting: i.element,
8769                        })))));
8770            }),
8771            !1
8772          );
8773        }
8774      },
8775      _mouseStop: function (t) {
8776        var i = this;
8777        return (
8778          (this.dragged = !1),
8779          e(".ui-unselecting", this.element[0]).each(function () {
8780            var s = e.data(this, "selectable-item");
8781            s.$element.removeClass("ui-unselecting"),
8782              (s.unselecting = !1),
8783              (s.startselected = !1),
8784              i._trigger("unselected", t, { unselected: s.element });
8785          }),
8786          e(".ui-selecting", this.element[0]).each(function () {
8787            var s = e.data(this, "selectable-item");
8788            s.$element.removeClass("ui-selecting").addClass("ui-selected"),
8789              (s.selecting = !1),
8790              (s.selected = !0),
8791              (s.startselected = !0),
8792              i._trigger("selected", t, { selected: s.element });
8793          }),
8794          this._trigger("stop", t),
8795          this.helper.remove(),
8796          !1
8797        );
8798      },
8799    }),
8800    e.widget("ui.selectmenu", {
8801      version: "1.11.0",
8802      defaultElement: "<select>",
8803      options: {
8804        appendTo: null,
8805        disabled: null,
8806        icons: { button: "ui-icon-triangle-1-s" },
8807        position: { my: "left top", at: "left bottom", collision: "none" },
8808        width: null,
8809        change: null,
8810        close: null,
8811        focus: null,
8812        open: null,
8813        select: null,
8814      },
8815      _create: function () {
8816        var e = this.element.uniqueId().attr("id");
8817        (this.ids = { element: e, button: e + "-button", menu: e + "-menu" }),
8818          this._drawButton(),
8819          this._drawMenu(),
8820          this.options.disabled && this.disable();
8821      },
8822      _drawButton: function () {
8823        var t = this,
8824          i = this.element.attr("tabindex");
8825        (this.label = e("label[for='" + this.ids.element + "']").attr(
8826          "for",
8827          this.ids.button
8828        )),
8829          this._on(this.label, {
8830            click: function (e) {
8831              this.button.focus(), e.preventDefault();
8832            },
8833          }),
8834          this.element.hide(),
8835          (this.button = e("<span>", {
8836            class:
8837              "ui-selectmenu-button ui-widget ui-state-default ui-corner-all",
8838            tabindex: i || this.options.disabled ? -1 : 0,
8839            id: this.ids.button,
8840            role: "combobox",
8841            "aria-expanded": "false",
8842            "aria-autocomplete": "list",
8843            "aria-owns": this.ids.menu,
8844            "aria-haspopup": "true",
8845          }).insertAfter(this.element)),
8846          e("<span>", {
8847            class: "ui-icon " + this.options.icons.button,
8848          }).prependTo(this.button),
8849          (this.buttonText = e("<span>", {
8850            class: "ui-selectmenu-text",
8851          }).appendTo(this.button)),
8852          this._setText(
8853            this.buttonText,
8854            this.element.find("option:selected").text()
8855          ),
8856          this._setOption("width", this.options.width),
8857          this._on(this.button, this._buttonEvents),
8858          this.button.one("focusin", function () {
8859            t.menuItems || t._refreshMenu();
8860          }),
8861          this._hoverable(this.button),
8862          this._focusable(this.button);
8863      },
8864      _drawMenu: function () {
8865        var t = this;
8866        (this.menu = e("<ul>", {
8867          "aria-hidden": "true",
8868          "aria-labelledby": this.ids.button,
8869          id: this.ids.menu,
8870        })),
8871          (this.menuWrap = e("<div>", { class: "ui-selectmenu-menu ui-front" })
8872            .append(this.menu)
8873            .appendTo(this._appendTo())),
8874          (this.menuInstance = this.menu
8875            .menu({
8876              role: "listbox",
8877              select: function (e, i) {
8878                e.preventDefault(),
8879                  t._select(i.item.data("ui-selectmenu-item"), e);
8880              },
8881              focus: function (e, i) {
8882                var s = i.item.data("ui-selectmenu-item");
8883                null != t.focusIndex &&
8884                  s.index !== t.focusIndex &&
8885                  (t._trigger("focus", e, { item: s }),
8886                  t.isOpen || t._select(s, e)),
8887                  (t.focusIndex = s.index),
8888                  t.button.attr(
8889                    "aria-activedescendant",
8890                    t.menuItems.eq(s.index).attr("id")
8891                  );
8892              },
8893            })
8894            .menu("instance")),
8895          this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),
8896          this.menuInstance._off(this.menu, "mouseleave"),
8897          (this.menuInstance._closeOnDocumentClick = function () {
8898            return !1;
8899          }),
8900          (this.menuInstance._isDivider = function () {
8901            return !1;
8902          });
8903      },
8904      refresh: function () {
8905        this._refreshMenu(),
8906          this._setText(this.buttonText, this._getSelectedItem().text()),
8907          this._setOption("width", this.options.width);
8908      },
8909      _refreshMenu: function () {
8910        this.menu.empty();
8911        var e,
8912          t = this.element.find("option");
8913        t.length &&
8914          (this._parseOptions(t),
8915          this._renderMenu(this.menu, this.items),
8916          this.menuInstance.refresh(),
8917          (this.menuItems = this.menu
8918            .find("li")
8919            .not(".ui-selectmenu-optgroup")),
8920          (e = this._getSelectedItem()),
8921          this.menuInstance.focus(null, e),
8922          this._setAria(e.data("ui-selectmenu-item")),
8923          this._setOption("disabled", this.element.prop("disabled")));
8924      },
8925      open: function (e) {
8926        this.options.disabled ||
8927          (this.menuItems
8928            ? (this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),
8929              this.menuInstance.focus(null, this._getSelectedItem()))
8930            : this._refreshMenu(),
8931          (this.isOpen = !0),
8932          this._toggleAttr(),
8933          this._resizeMenu(),
8934          this._position(),
8935          this._on(this.document, this._documentClick),
8936          this._trigger("open", e));
8937      },
8938      _position: function () {
8939        this.menuWrap.position(
8940          e.extend({ of: this.button }, this.options.position)
8941        );
8942      },
8943      close: function (e) {
8944        this.isOpen &&
8945          ((this.isOpen = !1),
8946          this._toggleAttr(),
8947          this._off(this.document),
8948          this._trigger("close", e));
8949      },
8950      widget: function () {
8951        return this.button;
8952      },
8953      menuWidget: function () {
8954        return this.menu;
8955      },
8956      _renderMenu: function (t, i) {
8957        var s = this,
8958          n = "";
8959        e.each(i, function (i, a) {
8960          a.optgroup !== n &&
8961            (e("<li>", {
8962              class:
8963                "ui-selectmenu-optgroup ui-menu-divider" +
8964                (a.element.parent("optgroup").prop("disabled")
8965                  ? " ui-state-disabled"
8966                  : ""),
8967              text: a.optgroup,
8968            }).appendTo(t),
8969            (n = a.optgroup)),
8970            s._renderItemData(t, a);
8971        });
8972      },
8973      _renderItemData: function (e, t) {
8974        return this._renderItem(e, t).data("ui-selectmenu-item", t);
8975      },
8976      _renderItem: function (t, i) {
8977        var s = e("<li>");
8978        return (
8979          i.disabled && s.addClass("ui-state-disabled"),
8980          this._setText(s, i.label),
8981          s.appendTo(t)
8982        );
8983      },
8984      _setText: function (e, t) {
8985        t ? e.text(t) : e.html("&#160;");
8986      },
8987      _move: function (e, t) {
8988        var i,
8989          s,
8990          n = ".ui-menu-item";
8991        this.isOpen
8992          ? (i = this.menuItems.eq(this.focusIndex))
8993          : ((i = this.menuItems.eq(this.element[0].selectedIndex)),
8994            (n += ":not(.ui-state-disabled)")),
8995          (s =
8996            "first" === e || "last" === e
8997              ? i["first" === e ? "prevAll" : "nextAll"](n).eq(-1)
8998              : i[e + "All"](n).eq(0)),
8999          s.length && this.menuInstance.focus(t, s);
9000      },
9001      _getSelectedItem: function () {
9002        return this.menuItems.eq(this.element[0].selectedIndex);
9003      },
9004      _toggle: function (e) {
9005        this[this.isOpen ? "close" : "open"](e);
9006      },
9007      _documentClick: {
9008        mousedown: function (t) {
9009          this.isOpen &&
9010            (e(t.target).closest(".ui-selectmenu-menu, #" + this.ids.button)
9011              .length ||
9012              this.close(t));
9013        },
9014      },
9015      _buttonEvents: {
9016        click: "_toggle",
9017        keydown: function (t) {
9018          var i = !0;
9019          switch (t.keyCode) {
9020            case e.ui.keyCode.TAB:
9021            case e.ui.keyCode.ESCAPE:
9022              this.close(t), (i = !1);
9023              break;
9024            case e.ui.keyCode.ENTER:
9025              this.isOpen && this._selectFocusedItem(t);
9026              break;
9027            case e.ui.keyCode.UP:
9028              t.altKey ? this._toggle(t) : this._move("prev", t);
9029              break;
9030            case e.ui.keyCode.DOWN:
9031              t.altKey ? this._toggle(t) : this._move("next", t);
9032              break;
9033            case e.ui.keyCode.SPACE:
9034              this.isOpen ? this._selectFocusedItem(t) : this._toggle(t);
9035              break;
9036            case e.ui.keyCode.LEFT:
9037              this._move("prev", t);
9038              break;
9039            case e.ui.keyCode.RIGHT:
9040              this._move("next", t);
9041              break;
9042            case e.ui.keyCode.HOME:
9043            case e.ui.keyCode.PAGE_UP:
9044              this._move("first", t);
9045              break;
9046            case e.ui.keyCode.END:
9047            case e.ui.keyCode.PAGE_DOWN:
9048              this._move("last", t);
9049              break;
9050            default:
9051              this.menu.trigger(t), (i = !1);
9052          }
9053          i && t.preventDefault();
9054        },
9055      },
9056      _selectFocusedItem: function (e) {
9057        var t = this.menuItems.eq(this.focusIndex);
9058        t.hasClass("ui-state-disabled") ||
9059          this._select(t.data("ui-selectmenu-item"), e);
9060      },
9061      _select: function (e, t) {
9062        var i = this.element[0].selectedIndex;
9063        (this.element[0].selectedIndex = e.index),
9064          this._setText(this.buttonText, e.label),
9065          this._setAria(e),
9066          this._trigger("select", t, { item: e }),
9067          e.index !== i && this._trigger("change", t, { item: e }),
9068          this.close(t);
9069      },
9070      _setAria: function (e) {
9071        var t = this.menuItems.eq(e.index).attr("id");
9072        this.button.attr({ "aria-labelledby": t, "aria-activedescendant": t }),
9073          this.menu.attr("aria-activedescendant", t);
9074      },
9075      _setOption: function (e, t) {
9076        "icons" === e &&
9077          this.button
9078            .find("span.ui-icon")
9079            .removeClass(this.options.icons.button)
9080            .addClass(t.button),
9081          this._super(e, t),
9082          "appendTo" === e && this.menuWrap.appendTo(this._appendTo()),
9083          "disabled" === e &&
9084            (this.menuInstance.option("disabled", t),
9085            this.button
9086              .toggleClass("ui-state-disabled", t)
9087              .attr("aria-disabled", t),
9088            this.element.prop("disabled", t),
9089            t
9090              ? (this.button.attr("tabindex", -1), this.close())
9091              : this.button.attr("tabindex", 0)),
9092          "width" === e &&
9093            (t || (t = this.element.outerWidth()), this.button.outerWidth(t));
9094      },
9095      _appendTo: function () {
9096        var t = this.options.appendTo;
9097        return (
9098          t &&
9099            (t = t.jquery || t.nodeType ? e(t) : this.document.find(t).eq(0)),
9100          (t && t[0]) || (t = this.element.closest(".ui-front")),
9101          t.length || (t = this.document[0].body),
9102          t
9103        );
9104      },
9105      _toggleAttr: function () {
9106        this.button
9107          .toggleClass("ui-corner-top", this.isOpen)
9108          .toggleClass("ui-corner-all", !this.isOpen)
9109          .attr("aria-expanded", this.isOpen),
9110          this.menuWrap.toggleClass("ui-selectmenu-open", this.isOpen),
9111          this.menu.attr("aria-hidden", !this.isOpen);
9112      },
9113      _resizeMenu: function () {
9114        this.menu.outerWidth(
9115          Math.max(
9116            this.button.outerWidth(),
9117            this.menu.width("").outerWidth() + 1
9118          )
9119        );
9120      },
9121      _getCreateOptions: function () {
9122        return { disabled: this.element.prop("disabled") };
9123      },
9124      _parseOptions: function (t) {
9125        var i = [];
9126        t.each(function (t, s) {
9127          var n = e(s),
9128            a = n.parent("optgroup");
9129          i.push({
9130            element: n,
9131            index: t,
9132            value: n.attr("value"),
9133            label: n.text(),
9134            optgroup: a.attr("label") || "",
9135            disabled: a.prop("disabled") || n.prop("disabled"),
9136          });
9137        }),
9138          (this.items = i);
9139      },
9140      _destroy: function () {
9141        this.menuWrap.remove(),
9142          this.button.remove(),
9143          this.element.show(),
9144          this.element.removeUniqueId(),
9145          this.label.attr("for", this.ids.element);
9146      },
9147    }),
9148    e.widget("ui.slider",
9148 e.ui.mouse, {
9149      version: "1.11.0",
9150      widgetEventPrefix: "slide",
9151      options: {
9152        animate: !1,
9153        distance: 0,
9154        max: 100,
9155        min: 0,
9156        orientation: "horizontal",
9157        range: !1,
9158        step: 1,
9159        value: 0,
9160        values: null,
9161        change: null,
9162        slide: null,
9163        start: null,
9164        stop: null,
9165      },
9166      numPages: 5,
9167      _create: function () {
9168        (this._keySliding = !1),
9169          (this._mouseSliding = !1),
9170          (this._animateOff = !0),
9171          (this._handleIndex = null),
9172          this._detectOrientation(),
9173          this._mouseInit(),
9174          this.element.addClass(
9175            "ui-slider ui-slider-" +
9176              this.orientation +
9177              " ui-widget" +
9178              " ui-widget-content" +
9179              " ui-corner-all"
9180          ),
9181          this._refresh(),
9182          this._setOption("disabled", this.options.disabled),
9183          (this._animateOff = !1);
9184      },
9185      _refresh: function () {
9186        this._createRange(),
9187          this._createHandles(),
9188          this._setupEvents(),
9189          this._refreshValue();
9190      },
9191      _createHandles: function () {
9192        var t,
9193          i,
9194          s = this.options,
9195          n = this.element
9196            .find(".ui-slider-handle")
9197            .addClass("ui-state-default ui-corner-all"),
9198          a =
9199            "<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",
9200          o = [];
9201        for (
9202          i = (s.values && s.values.length) || 1,
9203            n.length > i && (n.slice(i).remove(), (n = n.slice(0, i))),
9204            t = n.length;
9205          i > t;
9206          t++
9207        )
9208          o.push(a);
9209        (this.handles = n.add(e(o.join("")).appendTo(this.element))),
9210          (this.handle = this.handles.eq(0)),
9211          this.handles.each(function (t) {
9212            e(this).data("ui-slider-handle-index", t);
9213          });
9214      },
9215      _createRange: function () {
9216        var t = this.options,
9217          i = "";
9218        t.range
9219          ? (t.range === !0 &&
9220              (t.values
9221                ? t.values.length && 2 !== t.values.length
9222                  ? (t.values = [t.values[0], t.values[0]])
9223                  : e.isArray(t.values) && (t.values = t.values.slice(0))
9224                : (t.values = [this._valueMin(), this._valueMin()])),
9225            this.range && this.range.length
9226              ? this.range
9227                  .removeClass("ui-slider-range-min ui-slider-range-max")
9228                  .css({ left: "", bottom: "" })
9229              : ((this.range = e("<div></div>").appendTo(this.element)),
9230                (i = "ui-slider-range ui-widget-header ui-corner-all")),
9231            this.range.addClass(
9232              i +
9233                ("min" === t.range || "max" === t.range
9234                  ? " ui-slider-range-" + t.range
9235                  : "")
9236            ))
9237          : (this.range && this.range.remove(), (this.range = null));
9238      },
9239      _setupEvents: function () {
9240        this._off(this.handles),
9241          this._on(this.handles, this._handleEvents),
9242          this._hoverable(this.handles),
9243          this._focusable(this.handles);
9244      },
9245      _destroy: function () {
9246        this.handles.remove(),
9247          this.range && this.range.remove(),
9248          this.element.removeClass(
9249            "ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"
9250          ),
9251          this._mouseDestroy();
9252      },
9253      _mouseCapture: function (t) {
9254        var i,
9255          s,
9256          n,
9257          a,
9258          o,
9259          r,
9260          h,
9261          l,
9262          u = this,
9263          d = this.options;
9264        return d.disabled
9265          ? !1
9266          : ((this.elementSize = {
9267              width: this.element.outerWidth(),
9268              height: this.element.outerHeight(),
9269            }),
9270            (this.elementOffset = this.element.offset()),
9271            (i = { x: t.pageX, y: t.pageY }),
9272            (s = this._normValueFromMouse(i)),
9273            (n = this._valueMax() - this._valueMin() + 1),
9274            this.handles.each(function (t) {
9275              var i = Math.abs(s - u.values(t));
9276              (n > i ||
9277                (n === i &&
9278                  (t === u._lastChangedValue || u.values(t) === d.min))) &&
9279                ((n = i), (a = e(this)), (o = t));
9280            }),
9281            (r = this._start(t, o)),
9282            r === !1
9283              ? !1
9284              : ((this._mouseSliding = !0),
9285                (this._handleIndex = o),
9286                a.addClass("ui-state-active").focus(),
9287                (h = a.offset()),
9288                (l = !e(t.target).parents().addBack().is(".ui-slider-handle")),
9289                (this._clickOffset = l
9290                  ? { left: 0, top: 0 }
9291                  : {
9292                      left: t.pageX - h.left - a.width() / 2,
9293                      top:
9294                        t.pageY -
9295                        h.top -
9296                        a.height() / 2 -
9297                        (parseInt(a.css("borderTopWidth"), 10) || 0) -
9298                        (parseInt(a.css("borderBottomWidth"), 10) || 0) +
9299                        (parseInt(a.css("marginTop"), 10) || 0),
9300                    }),
9301                this.handles.hasClass("ui-state-hover") || this._slide(t, o, s),
9302                (this._animateOff = !0),
9303                !0));
9304      },
9305      _mouseStart: function () {
9306        return !0;
9307      },
9308      _mouseDrag: function (e) {
9309        var t = { x: e.pageX, y: e.pageY },
9310          i = this._normValueFromMouse(t);
9311        return this._slide(e, this._handleIndex, i), !1;
9312      },
9313      _mouseStop: function (e) {
9314        return (
9315          this.handles.removeClass("ui-state-active"),
9316          (this._mouseSliding = !1),
9317          this._stop(e, this._handleIndex),
9318          this._change(e, this._handleIndex),
9319          (this._handleIndex = null),
9320          (this._clickOffset = null),
9321          (this._animateOff = !1),
9322          !1
9323        );
9324      },
9325      _detectOrientation: function () {
9326        this.orientation =
9327          "vertical" === this.options.orientation ? "vertical" : "horizontal";
9328      },
9329      _normValueFromMouse: function (e) {
9330        var t, i, s, n, a;
9331        return (
9332          "horizontal" === this.orientation
9333            ? ((t = this.elementSize.width),
9334              (i =
9335                e.x -
9336                this.elementOffset.left -
9337                (this._clickOffset ? this._clickOffset.left : 0)))
9338            : ((t = this.elementSize.height),
9339              (i =
9340                e.y -
9341                this.elementOffset.top -
9342                (this._clickOffset ? this._clickOffset.top : 0))),
9343          (s = i / t),
9344          s > 1 && (s = 1),
9345          0 > s && (s = 0),
9346          "vertical" === this.orientation && (s = 1 - s),
9347          (n = this._valueMax() - this._valueMin()),
9348          (a = this._valueMin() + s * n),
9349          this._trimAlignValue(a)
9350        );
9351      },
9352      _start: function (e, t) {
9353        var i = { handle: this.handles[t], value: this.value() };
9354        return (
9355          this.options.values &&
9356            this.options.values.length &&
9357            ((i.value = this.values(t)), (i.values = this.values())),
9358          this._trigger("start", e, i)
9359        );
9360      },
9361      _slide: function (e, t, i) {
9362        var s, n, a;
9363        this.options.values && this.options.values.length
9364          ? ((s = this.values(t ? 0 : 1)),
9365            2 === this.options.values.length &&
9366              this.options.range === !0 &&
9367              ((0 === t && i > s) || (1 === t && s > i)) &&
9368              (i = s),
9369            i !== this.values(t) &&
9370              ((n = this.values()),
9371              (n[t] = i),
9372              (a = this._trigger("slide", e, {
9373                handle: this.handles[t],
9374                value: i,
9375                values: n,
9376              })),
9377              (s = this.values(t ? 0 : 1)),
9378              a !== !1 && this.values(t, i)))
9379          : i !== this.value() &&
9380            ((a = this._trigger("slide", e, {
9381              handle: this.handles[t],
9382              value: i,
9383            })),
9384            a !== !1 && this.value(i));
9385      },
9386      _stop: function (e, t) {
9387        var i = { handle: this.handles[t], value: this.value() };
9388        this.options.values &&
9389          this.options.values.length &&
9390          ((i.value = this.values(t)), (i.values = this.values())),
9391          this._trigger("stop", e, i);
9392      },
9393      _change: function (e, t) {
9394        if (!this._keySliding && !this._mouseSliding) {
9395          var i = { handle: this.handles[t], value: this.value() };
9396          this.options.values &&
9397            this.options.values.length &&
9398            ((i.value = this.values(t)), (i.values = this.values())),
9399            (this._lastChangedValue = t),
9400            this._trigger("change", e, i);
9401        }
9402      },
9403      value: function (e) {
9404        return arguments.length
9405          ? ((this.options.value = this._trimAlignValue(e)),
9406            this._refreshValue(),
9407            this._change(null, 0),
9408            void 0)
9409          : this._value();
9410      },
9411      values: function (t, i) {
9412        var s, n, a;
9413        if (arguments.length > 1)
9414          return (
9415            (this.options.values[t] = this._trimAlignValue(i)),
9416            this._refreshValue(),
9417            this._change(null, t),
9418            void 0
9419          );
9420        if (!arguments.length) return this._values();
9421        if (!e.isArray(arguments[0]))
9422          return this.options.values && this.options.values.length
9423            ? this._values(t)
9424            : this.value();
9425        for (
9426          s = this.options.values, n = arguments[0], a = 0;
9427          s.length > a;
9428          a += 1
9429        )
9430          (s[a] = this._trimAlignValue(n[a])), this._change(null, a);
9431        this._refreshValue();
9432      },
9433      _setOption: function (t, i) {
9434        var s,
9435          n = 0;
9436        switch (
9437          ("range" === t &&
9438            this.options.range === !0 &&
9439            ("min" === i
9440              ? ((this.options.value = this._values(0)),
9441                (this.options.values = null))
9442              : "max" === i &&
9443                ((this.options.value = this._values(
9444                  this.options.values.length - 1
9445                )),
9446                (this.options.values = null))),
9447          e.isArray(this.options.values) && (n = this.options.values.length),
9448          "disabled" === t &&
9449            this.element.toggleClass("ui-state-disabled", !!i),
9450          this._super(t, i),
9451          t)
9452        ) {
9453          case "orientation":
9454            this._detectOrientation(),
9455              this.element
9456                .removeClass("ui-slider-horizontal ui-slider-vertical")
9457                .addClass("ui-slider-" + this.orientation),
9458              this._refreshValue();
9459            break;
9460          case "value":
9461            (this._animateOff = !0),
9462              this._refreshValue(),
9463              this._change(null, 0),
9464              (this._animateOff = !1);
9465            break;
9466          case "values":
9467            for (
9468              this._animateOff = !0, this._refreshValue(), s = 0;
9469              n > s;
9470              s += 1
9471            )
9472              this._change(null, s);
9473            this._animateOff = !1;
9474            break;
9475          case "min":
9476          case "max":
9477            (this._animateOff = !0),
9478              this._refreshValue(),
9479              (this._animateOff = !1);
9480            break;
9481          case "range":
9482            (this._animateOff = !0), this._refresh(), (this._animateOff = !1);
9483        }
9484      },
9485      _value: function () {
9486        var e = this.options.value;
9487        return (e = this._trimAlignValue(e));
9488      },
9489      _values: function (e) {
9490        var t, i, s;
9491        if (arguments.length)
9492          return (t = this.options.values[e]), (t = this._trimAlignValue(t));
9493        if (this.options.values && this.options.values.length) {
9494          for (i = this.options.values.slice(), s = 0; i.length > s; s += 1)
9495            i[s] = this._trimAlignValue(i[s]);
9496          return i;
9497        }
9498        return [];
9499      },
9500      _trimAlignValue: function (e) {
9501        if (this._valueMin() >= e) return this._valueMin();
9502        if (e >= this._valueMax()) return this._valueMax();
9503        var t = this.options.step > 0 ? this.options.step : 1,
9504          i = (e - this._valueMin()) % t,
9505          s = e - i;
9506        return (
9507          2 * Math.abs(i) >= t && (s += i > 0 ? t : -t),
9508          parseFloat(s.toFixed(5))
9509        );
9510      },
9511      _valueMin: function () {
9512        return this.options.min;
9513      },
9514      _valueMax: function () {
9515        return this.options.max;
9516      },
9517      _refreshValue: function () {
9518        var t,
9519          i,
9520          s,
9521          n,
9522          a,
9523          o = this.options.range,
9524          r = this.options,
9525          h = this,
9526          l = this._animateOff ? !1 : r.animate,
9527          u = {};
9528        this.options.values && this.options.values.length
9529          ? this.handles.each(function (s) {
9530              (i =
9531                100 *
9532                ((h.values(s) - h._valueMin()) /
9533                  (h._valueMax() - h._valueMin()))),
9534                (u["horizontal" === h.orientation ? "left" : "bottom"] =
9535                  i + "%"),
9536                e(this).stop(1, 1)[l ? "animate" : "css"](u, r.animate),
9537                h.options.range === !0 &&
9538                  ("horizontal" === h.orientation
9539                    ? (0 === s &&
9540                        h.range
9541                          .stop(1, 1)
9542                          [l ? "animate" : "css"]({ left: i + "%" }, r.animate),
9543                      1 === s &&
9544                        h.range[l ? "animate" : "css"](
9545                          { width: i - t + "%" },
9546                          { queue: !1, duration: r.animate }
9547                        ))
9548                    : (0 === s &&
9549                        h.range
9550                          .stop(1, 1)
9551                          [l ? "animate" : "css"](
9552                            { bottom: i + "%" },
9553                            r.animate
9554                          ),
9555                      1 === s &&
9556                        h.range[l ? "animate" : "css"](
9557                          { height: i - t + "%" },
9558                          { queue: !1, duration: r.animate }
9559                        ))),
9560                (t = i);
9561            })
9562          : ((s = this.value()),
9563            (n = this._valueMin()),
9564            (a = this._valueMax()),
9565            (i = a !== n ? 100 * ((s - n) / (a - n)) : 0),
9566            (u["horizontal" === this.orientation ? "left" : "bottom"] =
9567              i + "%"),
9568            this.handle.stop(1, 1)[l ? "animate" : "css"](u, r.animate),
9569            "min" === o &&
9570              "horizontal" === this.orientation &&
9571              this.range
9572                .stop(1, 1)
9573                [l ? "animate" : "css"]({ width: i + "%" }, r.animate),
9574            "max" === o &&
9575              "horizontal" === this.orientation &&
9576              this.range[l ? "animate" : "css"](
9577                { width: 100 - i + "%" },
9578                { queue: !1, duration: r.animate }
9579              ),
9580            "min" === o &&
9581              "vertical" === this.orientation &&
9582              this.range
9583                .stop(1, 1)
9584                [l ? "animate" : "css"]({ height: i + "%" }, r.animate),
9585            "max" === o &&
9586              "vertical" === this.orientation &&
9587              this.range[l ? "animate" : "css"](
9588                { height: 100 - i + "%" },
9589                { queue: !1, duration: r.animate }
9590              ));
9591      },
9592      _handleEvents: {
9593        keydown: function (t) {
9594          var i,
9595            s,
9596            n,
9597            a,
9598            o = e(t.target).data("ui-slider-handle-index");
9599          switch (t.keyCode) {
9600            case e.ui.keyCode.HOME:
9601            case e.ui.keyCode.END:
9602            case e.ui.keyCode.PAGE_UP:
9603            case e.ui.keyCode.PAGE_DOWN:
9604            case e.ui.keyCode.UP:
9605            case e.ui.keyCode.RIGHT:
9606            case e.ui.keyCode.DOWN:
9607            case e.ui.keyCode.LEFT:
9608              if (
9609                (t.preventDefault(),
9610                !this._keySliding &&
9611                  ((this._keySliding = !0),
9612                  e(t.target).addClass("ui-state-active"),
9613                  (i = this._start(t, o)),
9614                  i === !1))
9615              )
9616                return;
9617          }
9618          switch (
9619            ((a = this.options.step),
9620            (s = n =
9621              this.options.values && this.options.values.length
9622                ? this.values(o)
9623                : this.value()),
9624            t.keyCode)
9625          ) {
9626            case e.ui.keyCode.HOME:
9627              n = this._valueMin();
9628              break;
9629            case e.ui.keyCode.END:
9630              n = this._valueMax();
9631              break;
9632            case e.ui.keyCode.PAGE_UP:
9633              n = this._trimAlignValue(
9634                s + (this._valueMax() - this._valueMin()) / this.numPages
9635              );
9636              break;
9637            case e.ui.keyCode.PAGE_DOWN:
9638              n = this._trimAlignValue(
9639                s - (this._valueMax() - this._valueMin()) / this.numPages
9640              );
9641              break;
9642            case e.ui.keyCode.UP:
9643            case e.ui.keyCode.RIGHT:
9644              if (s === this._valueMax()) return;
9645              n = this._trimAlignValue(s + a);
9646              break;
9647            case e.ui.keyCode.DOWN:
9648            case e.ui.keyCode.LEFT:
9649              if (s === this._valueMin()) return;
9650              n = this._trimAlignValue(s - a);
9651          }
9652          this._slide(t, o, n);
9653        },
9654        keyup: function (t) {
9655          var i = e(t.target).data("ui-slider-handle-index");
9656          this._keySliding &&
9657            ((this._keySliding = !1),
9658            this._stop(t, i),
9659            this._change(t, i),
9660            e(t.target).removeClass("ui-state-active"));
9661        },
9662      },
9663    }),
9664    e.widget("ui.sortable", e.ui.mouse, {
9665      version: "1.11.0",
9666      widgetEventPrefix: "sort",
9667      ready: !1,
9668      options: {
9669        appendTo: "parent",
9670        axis: !1,
9671        connectWith: !1,
9672        containment: !1,
9673        cursor: "auto",
9674        cursorAt: !1,
9675        dropOnEmpty: !0,
9676        forcePlaceholderSize: !1,
9677        forceHelperSize: !1,
9678        grid: !1,
9679        handle: !1,
9680        helper: "original",
9681        items: "> *",
9682        opacity: !1,
9683        placeholder: !1,
9684        revert: !1,
9685        scroll: !0,
9686        scrollSensitivity: 20,
9687        scrollSpeed: 20,
9688        scope: "default",
9689        tolerance: "intersect",
9690        zIndex: 1e3,
9691        activate: null,
9692        beforeStop: null,
9693        change: null,
9694        deactivate: null,
9695        out: null,
9696        over: null,
9697        receive: null,
9698        remove: null,
9699        sort: null,
9700        start: null,
9701        stop: null,
9702        update: null,
9703      },
9704      _isOverAxis: function (e, t, i) {
9705        return e >= t && t + i > e;
9706      },
9707      _isFloating: function (e) {
9708        return (
9709          /left|right/.test(e.css("float")) ||
9710          /inline|table-cell/.test(e.css("display"))
9711        );
9712      },
9713      _create: function () {
9714        var e = this.options;
9715        (this.containerCache = {}),
9716          this.element.addClass("ui-sortable"),
9717          this.refresh(),
9718          (this.floating = this.items.length
9719            ? "x" === e.axis || this._isFloating(this.items[0].item)
9720            : !1),
9721          (this.offset = this.element.offset()),
9722          this._mouseInit(),
9723          this._setHandleClassName(),
9724          (this.ready = !0);
9725      },
9726      _setOption: function (e, t) {
9727        this._super(e, t), "handle" === e && this._setHandleClassName();
9728      },
9729      _setHandleClassName: function () {
9730        this.element
9731          .find(".ui-sortable-handle")
9732          .removeClass("ui-sortable-handle"),
9733          e.each(this.items, function () {
9734            (this.instance.options.handle
9735              ? this.item.find(this.instance.options.handle)
9736              : this.item
9737            ).addClass("ui-sortable-handle");
9738          });
9739      },
9740      _destroy: function () {
9741        this.element
9742          .removeClass("ui-sortable ui-sortable-disabled")
9743          .find(".ui-sortable-handle")
9744          .removeClass("ui-sortable-handle"),
9745          this._mouseDestroy();
9746        for (var e = this.items.length - 1; e >= 0; e--)
9747          this.items[e].item.removeData(this.widgetName + "-item");
9748        return this;
9749      },
9750      _mouseCapture: function (t, i) {
9751        var s = null,
9752          n = !1,
9753          a = this;
9754        return this.reverting
9755          ? !1
9756          : this.options.disabled || "static" === this.options.type
9757          ? !1
9758          : (this._refreshItems(t),
9759            e(t.target)
9760              .parents()
9761              .each(function () {
9762                return e.data(this, a.widgetName + "-item") === a
9763                  ? ((s = e(this)), !1)
9764                  : void 0;
9765              }),
9766            e.data(t.target, a.widgetName + "-item") === a && (s = e(t.target)),
9767            s
9768              ? !this.options.handle ||
9769                i ||
9770                (e(this.options.handle, s)
9771                  .find("*")
9772                  .addBack()
9773                  .each(function () {
9774                    this === t.target && (n = !0);
9775                  }),
9776                n)
9777                ? ((this.currentItem = s), this._removeCurrentsFromItems(), !0)
9778                : !1
9779              : !1);
9780      },
9781      _mouseStart: function (t, i, s) {
9782        var n,
9783          a,
9784          o = this.options;
9785        if (
9786          ((this.currentContainer = this),
9787          this.refreshPositions(),
9788          (this.helper = this._createHelper(t)),
9789          this._cacheHelperProportions(),
9790          this._cacheMargins(),
9791          (this.scrollParent = this.helper.scrollParent()),
9792          (this.offset = this.currentItem.offset()),
9793          (this.offset = {
9794            top: this.offset.top - this.margins.top,
9795            left: this.offset.left - this.margins.left,
9796          }),
9797          e.extend(this.offset, {
9798            click: {
9799              left: t.pageX - this.offset.left,
9800              top: t.pageY - this.offset.top,
9801            },
9802            parent: this._getParentOffset(),
9803            relative: this._getRelativeOffset(),
9804          }),
9805          this.helper.css("position", "absolute"),
9806          (this.cssPosition = this.helper.css("position")),
9807          (this.originalPosition = this._generatePosition(t)),
9808          (this.originalPageX = t.pageX),
9809          (this.originalPageY = t.pageY),
9810          o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt),
9811          (this.domPosition = {
9812            prev: this.currentItem.prev()[0],
9813            parent: this.currentItem.parent()[0],
9814          }),
9815          this.helper[0] !== this.currentItem[0] && this.currentItem.hide(),
9816          this._createPlaceholder(),
9817          o.containment && this._setContainment(),
9818          o.cursor &&
9819            "auto" !== o.cursor &&
9820            ((a = this.document.find("body")),
9821            (this.storedCursor = a.css("cursor")),
9822            a.css("cursor", o.cursor),
9823            (this.storedStylesheet = e(
9824              "<style>*{ cursor: " + o.cursor + " !important; }</style>"
9825            ).appendTo(a))),
9826          o.opacity &&
9827            (this.helper.css("opacity") &&
9828              (this._storedOpacity = this.helper.css("opacity")),
9829            this.helper.css("opacity", o.opacity)),
9830          o.zIndex &&
9831            (this.helper.css("zIndex") &&
9832              (this._storedZIndex = this.helper.css("zIndex")),
9833            this.helper.css("zIndex", o.zIndex)),
9834          this.scrollParent[0] !== document &&
9835            "HTML" !== this.scrollParent[0].tagName &&
9836            (this.overflowOffset = this.scrollParent.offset()),
9837          this._trigger("start", t, this._uiHash()),
9838          this._preserveHelperProportions || this._cacheHelperProportions(),
9839          !s)
9840        )
9841          for (n = this.containers.length - 1; n >= 0; n--)
9842            this.containers[n]._trigger("activate", t, this._uiHash(this));
9843        return (
9844          e.ui.ddmanager && (e.ui.ddmanager.current = this),
9845          e.ui.ddmanager &&
9846            !o.dropBehaviour &&
9847            e.ui.ddmanager.prepareOffsets(this, t),
9848          (this.dragging = !0),
9849          this.helper.addClass("ui-sortable-helper"),
9850          this._mouseDrag(t),
9851          !0
9852        );
9853      },
9854      _mouseDrag: function (t) {
9855        var i,
9856          s,
9857          n,
9858          a,
9859          o = this.options,
9860          r = !1;
9861        for (
9862          this.position = this._generatePosition(t),
9863            this.positionAbs = this._convertPositionTo("absolute"),
9864            this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs),
9865            this.options.scroll &&
9866              (this.scrollParent[0] !== document &&
9867              "HTML" !== this.scrollParent[0].tagName
9868                ? (this.overflowOffset.top +
9869                    this.scrollParent[0].offsetHeight -
9870                    t.pageY <
9871                  o.scrollSensitivity
9872                    ? (this.scrollParent[0].scrollTop = r =
9873                        this.scrollParent[0].scrollTop + o.scrollSpeed)
9874                    : t.pageY - this.overflowOffset.top < o.scrollSensitivity &&
9875                      (this.scrollParent[0].scrollTop = r =
9876                        this.scrollParent[0].scrol
9876lTop - o.scrollSpeed),
9877                  this.overflowOffset.left +
9878                    this.scrollParent[0].offsetWidth -
9879                    t.pageX <
9880                  o.scrollSensitivity
9881                    ? (this.scrollParent[0].scrollLeft = r =
9882                        this.scrollParent[0].scrollLeft + o.scrollSpeed)
9883                    : t.pageX - this.overflowOffset.left <
9884                        o.scrollSensitivity &&
9885                      (this.scrollParent[0].scrollLeft = r =
9886                        this.scrollParent[0].scrollLeft - o.scrollSpeed))
9887                : (t.pageY - e(document).scrollTop() < o.scrollSensitivity
9888                    ? (r = e(document).scrollTop(
9889                        e(document).scrollTop() - o.scrollSpeed
9890                      ))
9891                    : e(window).height() - (t.pageY - e(document).scrollTop()) <
9892                        o.scrollSensitivity &&
9893                      (r = e(document).scrollTop(
9894                        e(document).scrollTop() + o.scrollSpeed
9895                      )),
9896                  t.pageX - e(document).scrollLeft() < o.scrollSensitivity
9897                    ? (r = e(document).scrollLeft(
9898                        e(document).scrollLeft() - o.scrollSpeed
9899                      ))
9900                    : e(window).width() - (t.pageX - e(document).scrollLeft()) <
9901                        o.scrollSensitivity &&
9902                      (r = e(document).scrollLeft(
9903                        e(document).scrollLeft() + o.scrollSpeed
9904                      ))),
9905              r !== !1 &&
9906                e.ui.ddmanager &&
9907                !o.dropBehaviour &&
9908                e.ui.ddmanager.prepareOffsets(this, t)),
9909            this.positionAbs = this._convertPositionTo("absolute"),
9910            (this.options.axis && "y" === this.options.axis) ||
9911              (this.helper[0].style.left = this.position.left + "px"),
9912            (this.options.axis && "x" === this.options.axis) ||
9913              (this.helper[0].style.top = this.position.top + "px"),
9914            i = this.items.length - 1;
9915          i >= 0;
9916          i--
9917        )
9918          if (
9919            ((s = this.items[i]),
9920            (n = s.item[0]),
9921            (a = this._intersectsWithPointer(s)),
9922            a &&
9923              s.instance === this.currentContainer &&
9924              n !== this.currentItem[0] &&
9925              this.placeholder[1 === a ? "next" : "prev"]()[0] !== n &&
9926              !e.contains(this.placeholder[0], n) &&
9927              ("semi-dynamic" === this.options.type
9928                ? !e.contains(this.element[0], n)
9929                : !0))
9930          ) {
9931            if (
9932              ((this.direction = 1 === a ? "down" : "up"),
9933              "pointer" !== this.options.tolerance &&
9934                !this._intersectsWithSides(s))
9935            )
9936              break;
9937            this._rearrange(t, s), this._trigger("change", t, this._uiHash());
9938            break;
9939          }
9940        return (
9941          this._contactContainers(t),
9942          e.ui.ddmanager && e.ui.ddmanager.drag(this, t),
9943          this._trigger("sort", t, this._uiHash()),
9944          (this.lastPositionAbs = this.positionAbs),
9945          !1
9946        );
9947      },
9948      _mouseStop: function (t, i) {
9949        if (t) {
9950          if (
9951            (e.ui.ddmanager &&
9952              !this.options.dropBehaviour &&
9953              e.ui.ddmanager.drop(this, t),
9954            this.options.revert)
9955          ) {
9956            var s = this,
9957              n = this.placeholder.offset(),
9958              a = this.options.axis,
9959              o = {};
9960            (a && "x" !== a) ||
9961              (o.left =
9962                n.left -
9963                this.offset.parent.left -
9964                this.margins.left +
9965                (this.offsetParent[0] === document.body
9966                  ? 0
9967                  : this.offsetParent[0].scrollLeft)),
9968              (a && "y" !== a) ||
9969                (o.top =
9970                  n.top -
9971                  this.offset.parent.top -
9972                  this.margins.top +
9973                  (this.offsetParent[0] === document.body
9974                    ? 0
9975                    : this.offsetParent[0].scrollTop)),
9976              (this.reverting = !0),
9977              e(this.helper).animate(
9978                o,
9979                parseInt(this.options.revert, 10) || 500,
9980                function () {
9981                  s._clear(t);
9982                }
9983              );
9984          } else this._clear(t, i);
9985          return !1;
9986        }
9987      },
9988      cancel: function () {
9989        if (this.dragging) {
9990          this._mouseUp({ target: null }),
9991            "original" === this.options.helper
9992              ? this.currentItem
9993                  .css(this._storedCSS)
9994                  .removeClass("ui-sortable-helper")
9995              : this.currentItem.show();
9996          for (var t = this.containers.length - 1; t >= 0; t--)
9997            this.containers[t]._trigger("deactivate", null, this._uiHash(this)),
9998              this.containers[t].containerCache.over &&
9999                (this.containers[t]._trigger("out", null, this._uiHash(this)),
10000                (this.containers[t].containerCache.over = 0));
10001        }
10002        return (
10003          this.placeholder &&
10004            (this.placeholder[0].parentNode &&
10005              this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
10006            "original" !== this.options.helper &&
10007              this.helper &&
10008              this.helper[0].parentNode &&
10009              this.helper.remove(),
10010            e.extend(this, {
10011              helper: null,
10012              dragging: !1,
10013              reverting: !1,
10014              _noFinalSort: null,
10015            }),
10016            this.domPosition.prev
10017              ? e(this.domPosition.prev).after(this.currentItem)
10018              : e(this.domPosition.parent).prepend(this.currentItem)),
10019          this
10020        );
10021      },
10022      serialize: function (t) {
10023        var i = this._getItemsAsjQuery(t && t.connected),
10024          s = [];
10025        return (
10026          (t = t || {}),
10027          e(i).each(function () {
10028            var i = (e(t.item || this).attr(t.attribute || "id") || "").match(
10029              t.expression || /(.+)[\-=_](.+)/
10030            );
10031            i &&
10032              s.push(
10033                (t.key || i[1] + "[]") +
10034                  "=" +
10035                  (t.key && t.expression ? i[1] : i[2])
10036              );
10037          }),
10038          !s.length && t.key && s.push(t.key + "="),
10039          s.join("&")
10040        );
10041      },
10042      toArray: function (t) {
10043        var i = this._getItemsAsjQuery(t && t.connected),
10044          s = [];
10045        return (
10046          (t = t || {}),
10047          i.each(function () {
10048            s.push(e(t.item || this).attr(t.attribute || "id") || "");
10049          }),
10050          s
10051        );
10052      },
10053      _intersectsWith: function (e) {
10054        var t = this.positionAbs.left,
10055          i = t + this.helperProportions.width,
10056          s = this.positionAbs.top,
10057          n = s + this.helperProportions.height,
10058          a = e.left,
10059          o = a + e.width,
10060          r = e.top,
10061          h = r + e.height,
10062          l = this.offset.click.top,
10063          u = this.offset.click.left,
10064          d = "x" === this.options.axis || (s + l > r && h > s + l),
10065          c = "y" === this.options.axis || (t + u > a && o > t + u),
10066          p = d && c;
10067        return "pointer" === this.options.tolerance ||
10068          this.options.forcePointerForContainers ||
10069          ("pointer" !== this.options.tolerance &&
10070            this.helperProportions[this.floating ? "width" : "height"] >
10071              e[this.floating ? "width" : "height"])
10072          ? p
10073          : t + this.helperProportions.width / 2 > a &&
10074              o > i - this.helperProportions.width / 2 &&
10075              s + this.helperProportions.height / 2 > r &&
10076              h > n - this.helperProportions.height / 2;
10077      },
10078      _intersectsWithPointer: function (e) {
10079        var t =
10080            "x" === this.options.axis ||
10081            this._isOverAxis(
10082              this.positionAbs.top + this.offset.click.top,
10083              e.top,
10084              e.height
10085            ),
10086          i =
10087            "y" === this.options.axis ||
10088            this._isOverAxis(
10089              this.positionAbs.left + this.offset.click.left,
10090              e.left,
10091              e.width
10092            ),
10093          s = t && i,
10094          n = this._getDragVerticalDirection(),
10095          a = this._getDragHorizontalDirection();
10096        return s
10097          ? this.floating
10098            ? (a && "right" === a) || "down" === n
10099              ? 2
10100              : 1
10101            : n && ("down" === n ? 2 : 1)
10102          : !1;
10103      },
10104      _intersectsWithSides: function (e) {
10105        var t = this._isOverAxis(
10106            this.positionAbs.top + this.offset.click.top,
10107            e.top + e.height / 2,
10108            e.height
10109          ),
10110          i = this._isOverAxis(
10111            this.positionAbs.left + this.offset.click.left,
10112            e.left + e.width / 2,
10113            e.width
10114          ),
10115          s = this._getDragVerticalDirection(),
10116          n = this._getDragHorizontalDirection();
10117        return this.floating && n
10118          ? ("right" === n && i) || ("left" === n && !i)
10119          : s && (("down" === s && t) || ("up" === s && !t));
10120      },
10121      _getDragVerticalDirection: function () {
10122        var e = this.positionAbs.top - this.lastPositionAbs.top;
10123        return 0 !== e && (e > 0 ? "down" : "up");
10124      },
10125      _getDragHorizontalDirection: function () {
10126        var e = this.positionAbs.left - this.lastPositionAbs.left;
10127        return 0 !== e && (e > 0 ? "right" : "left");
10128      },
10129      refresh: function (e) {
10130        return (
10131          this._refreshItems(e),
10132          this._setHandleClassName(),
10133          this.refreshPositions(),
10134          this
10135        );
10136      },
10137      _connectWith: function () {
10138        var e = this.options;
10139        return e.connectWith.constructor === String
10140          ? [e.connectWith]
10141          : e.connectWith;
10142      },
10143      _getItemsAsjQuery: function (t) {
10144        function i() {
10145          r.push(this);
10146        }
10147        var s,
10148          n,
10149          a,
10150          o,
10151          r = [],
10152          h = [],
10153          l = this._connectWith();
10154        if (l && t)
10155          for (s = l.length - 1; s >= 0; s--)
10156            for (a = e(l[s]), n = a.length - 1; n >= 0; n--)
10157              (o = e.data(a[n], this.widgetFullName)),
10158                o &&
10159                  o !== this &&
10160                  !o.options.disabled &&
10161                  h.push([
10162                    e.isFunction(o.options.items)
10163                      ? o.options.items.call(o.element)
10164                      : e(o.options.items, o.element)
10165                          .not(".ui-sortable-helper")
10166                          .not(".ui-sortable-placeholder"),
10167                    o,
10168                  ]);
10169        for (
10170          h.push([
10171            e.isFunction(this.options.items)
10172              ? this.options.items.call(this.element, null, {
10173                  options: this.options,
10174                  item: this.currentItem,
10175                })
10176              : e(this.options.items, this.element)
10177                  .not(".ui-sortable-helper")
10178                  .not(".ui-sortable-placeholder"),
10179            this,
10180          ]),
10181            s = h.length - 1;
10182          s >= 0;
10183          s--
10184        )
10185          h[s][0].each(i);
10186        return e(r);
10187      },
10188      _removeCurrentsFromItems: function () {
10189        var t = this.currentItem.find(":data(" + this.widgetName + "-item)");
10190        this.items = e.grep(this.items, function (e) {
10191          for (var i = 0; t.length > i; i++) if (t[i] === e.item[0]) return !1;
10192          return !0;
10193        });
10194      },
10195      _refreshItems: function (t) {
10196        (this.items = []), (this.containers = [this]);
10197        var i,
10198          s,
10199          n,
10200          a,
10201          o,
10202          r,
10203          h,
10204          l,
10205          u = this.items,
10206          d = [
10207            [
10208              e.isFunction(this.options.items)
10209                ? this.options.items.call(this.element[0], t, {
10210                    item: this.currentItem,
10211                  })
10212                : e(this.options.items, this.element),
10213              this,
10214            ],
10215          ],
10216          c = this._connectWith();
10217        if (c && this.ready)
10218          for (i = c.length - 1; i >= 0; i--)
10219            for (n = e(c[i]), s = n.length - 1; s >= 0; s--)
10220              (a = e.data(n[s], this.widgetFullName)),
10221                a &&
10222                  a !== this &&
10223                  !a.options.disabled &&
10224                  (d.push([
10225                    e.isFunction(a.options.items)
10226                      ? a.options.items.call(a.element[0], t, {
10227                          item: this.currentItem,
10228                        })
10229                      : e(a.options.items, a.element),
10230                    a,
10231                  ]),
10232                  this.containers.push(a));
10233        for (i = d.length - 1; i >= 0; i--)
10234          for (o = d[i][1], r = d[i][0], s = 0, l = r.length; l > s; s++)
10235            (h = e(r[s])),
10236              h.data(this.widgetName + "-item", o),
10237              u.push({
10238                item: h,
10239                instance: o,
10240                width: 0,
10241                height: 0,
10242                left: 0,
10243                top: 0,
10244              });
10245      },
10246      refreshPositions: function (t) {
10247        this.offsetParent &&
10248          this.helper &&
10249          (this.offset.parent = this._getParentOffset());
10250        var i, s, n, a;
10251        for (i = this.items.length - 1; i >= 0; i--)
10252          (s = this.items[i]),
10253            (s.instance !== this.currentContainer &&
10254              this.currentContainer &&
10255              s.item[0] !== this.currentItem[0]) ||
10256              ((n = this.options.toleranceElement
10257                ? e(this.options.toleranceElement, s.item)
10258                : s.item),
10259              t || ((s.width = n.outerWidth()), (s.height = n.outerHeight())),
10260              (a = n.offset()),
10261              (s.left = a.left),
10262              (s.top = a.top));
10263        if (this.options.custom && this.options.custom.refreshContainers
10263)
10264          this.options.custom.refreshContainers.call(this);
10265        else
10266          for (i = this.containers.length - 1; i >= 0; i--)
10267            (a = this.containers[i].element.offset()),
10268              (this.containers[i].containerCache.left = a.left),
10269              (this.containers[i].containerCache.top = a.top),
10270              (this.containers[i].containerCache.width =
10271                this.containers[i].element.outerWidth()),
10272              (this.containers[i].containerCache.height =
10273                this.containers[i].element.outerHeight());
10274        return this;
10275      },
10276      _createPlaceholder: function (t) {
10277        t = t || this;
10278        var i,
10279          s = t.options;
10280        (s.placeholder && s.placeholder.constructor !== String) ||
10281          ((i = s.placeholder),
10282          (s.placeholder = {
10283            element: function () {
10284              var s = t.currentItem[0].nodeName.toLowerCase(),
10285                n = e("<" + s + ">", t.document[0])
10286                  .addClass(
10287                    i || t.currentItem[0].className + " ui-sortable-placeholder"
10288                  )
10289                  .removeClass("ui-sortable-helper");
10290              return (
10291                "tr" === s
10292                  ? t.currentItem.children().each(function () {
10293                      e("<td>&#160;</td>", t.document[0])
10294                        .attr("colspan", e(this).attr("colspan") || 1)
10295                        .appendTo(n);
10296                    })
10297                  : "img" === s && n.attr("src", t.currentItem.attr("src")),
10298                i || n.css("visibility", "hidden"),
10299                n
10300              );
10301            },
10302            update: function (e, n) {
10303              (!i || s.forcePlaceholderSize) &&
10304                (n.height() ||
10305                  n.height(
vendor: 14,091 bytes, lines 10306-10667
10306                    t.currentItem.innerHeight() -
10307                      parseInt(t.currentItem.css("paddingTop") || 0, 10) -
10308                      parseInt(t.currentItem.css("paddingBottom") || 0, 10)
10309                  ),
10310                n.width() ||
10311                  n.width(
10312                    t.currentItem.innerWidth() -
10313                      parseInt(t.currentItem.css("paddingLeft") || 0, 10) -
10314                      parseInt(t.currentItem.css("paddingRight") || 0, 10)
10315                  ));
10316            },
10317          })),
10318          (t.placeholder = e(
10319            s.placeholder.element.call(t.element, t.currentItem)
10320          )),
10321          t.currentItem.after(t.placeholder),
10322          s.placeholder.update(t, t.placeholder);
10323      },
10324      _contactContainers: function (t) {
10325        var i,
10326          s,
10327          n,
10328          a,
10329          o,
10330          r,
10331          h,
10332          l,
10333          u,
10334          d,
10335          c = null,
10336          p = null;
10337        for (i = this.containers.length - 1; i >= 0; i--)
10338          if (!e.contains(this.currentItem[0], this.containers[i].element[0]))
10339            if (this._intersectsWith(this.containers[i].containerCache)) {
10340              if (c && e.contains(this.containers[i].element[0], c.element[0]))
10341                continue;
10342              (c = this.containers[i]), (p = i);
10343            } else
10344              this.containers[i].containerCache.over &&
10345                (this.containers[i]._trigger("out", t, this._uiHash(this)),
10346                (this.containers[i].containerCache.over = 0));
10347        if (c)
10348          if (1 === this.containers.length)
10349            this.containers[p].containerCache.over ||
10350              (this.containers[p]._trigger("over", t, this._uiHash(this)),
10351              (this.containers[p].containerCache.over = 1));
10352          else {
10353            for (
10354              n = 1e4,
10355                a = null,
10356                u = c.floating || this._isFloating(this.currentItem),
10357                o = u ? "left" : "top",
10358                r = u ? "width" : "height",
10359                d = u ? "clientX" : "clientY",
10360                s = this.items.length - 1;
10361              s >= 0;
10362              s--
10363            )
10364              e.contains(
10365                this.containers[p].element[0],
10366                this.items[s].item[0]
10367              ) &&
10368                this.items[s].item[0] !== this.currentItem[0] &&
10369                ((h = this.items[s].item.offset()[o]),
10370                (l = !1),
10371                t[d] - h > this.items[s][r] / 2 && (l = !0),
10372                n > Math.abs(t[d] - h) &&
10373                  ((n = Math.abs(t[d] - h)),
10374                  (a = this.items[s]),
10375                  (this.direction = l ? "up" : "down")));
10376            if (!a && !this.options.dropOnEmpty) return;
10377            if (this.currentContainer === this.containers[p]) return;
10378            a
10379              ? this._rearrange(t, a, null, !0)
10380              : this._rearrange(t, null, this.containers[p].element, !0),
10381              this._trigger("change", t, this._uiHash()),
10382              this.containers[p]._trigger("change", t, this._uiHash(this)),
10383              (this.currentContainer = this.containers[p]),
10384              this.options.placeholder.update(
10385                this.currentContainer,
10386                this.placeholder
10387              ),
10388              this.containers[p]._trigger("over", t, this._uiHash(this)),
10389              (this.containers[p].containerCache.over = 1);
10390          }
10391      },
10392      _createHelper: function (t) {
10393        var i = this.options,
10394          s = e.isFunction(i.helper)
10395            ? e(i.helper.apply(this.element[0], [t, this.currentItem]))
10396            : "clone" === i.helper
10397            ? this.currentItem.clone()
10398            : this.currentItem;
10399        return (
10400          s.parents("body").length ||
10401            e(
10402              "parent" !== i.appendTo
10403                ? i.appendTo
10404                : this.currentItem[0].parentNode
10405            )[0].appendChild(s[0]),
10406          s[0] === this.currentItem[0] &&
10407            (this._storedCSS = {
10408              width: this.currentItem[0].style.width,
10409              height: this.currentItem[0].style.height,
10410              position: this.currentItem.css("position"),
10411              top: this.currentItem.css("top"),
10412              left: this.currentItem.css("left"),
10413            }),
10414          (!s[0].style.width || i.forceHelperSize) &&
10415            s.width(this.currentItem.width()),
10416          (!s[0].style.height || i.forceHelperSize) &&
10417            s.height(this.currentItem.height()),
10418          s
10419        );
10420      },
10421      _adjustOffsetFromHelper: function (t) {
10422        "string" == typeof t && (t = t.split(" ")),
10423          e.isArray(t) && (t = { left: +t[0], top: +t[1] || 0 }),
10424          "left" in t && (this.offset.click.left = t.left + this.margins.left),
10425          "right" in t &&
10426            (this.offset.click.left =
10427              this.helperProportions.width - t.right + this.margins.left),
10428          "top" in t && (this.offset.click.top = t.top + this.margins.top),
10429          "bottom" in t &&
10430            (this.offset.click.top =
10431              this.helperProportions.height - t.bottom + this.margins.top);
10432      },
10433      _getParentOffset: function () {
10434        this.offsetParent = this.helper.offsetParent();
10435        var t = this.offsetParent.offset();
10436        return (
10437          "absolute" === this.cssPosition &&
10438            this.scrollParent[0] !== document &&
10439            e.contains(this.scrollParent[0], this.offsetParent[0]) &&
10440            ((t.left += this.scrollParent.scrollLeft()),
10441            (t.top += this.scrollParent.scrollTop())),
10442          (this.offsetParent[0] === document.body ||
10443            (this.offsetParent[0].tagName &&
10444              "html" === this.offsetParent[0].tagName.toLowerCase() &&
10445              e.ui.ie)) &&
10446            (t = { top: 0, left: 0 }),
10447          {
10448            top:
10449              t.top +
10450              (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0),
10451            left:
10452              t.left +
10453              (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0),
10454          }
10455        );
10456      },
10457      _getRelativeOffset: function () {
10458        if ("relative" === this.cssPosition) {
10459          var e = this.currentItem.position();
10460          return {
10461            top:
10462              e.top -
10463              (parseInt(this.helper.css("top"), 10) || 0) +
10464              this.scrollParent.scrollTop(),
10465            left:
10466              e.left -
10467              (parseInt(this.helper.css("left"), 10) || 0) +
10468              this.scrollParent.scrollLeft(),
10469          };
10470        }
10471        return { top: 0, left: 0 };
10472      },
10473      _cacheMargins: function () {
10474        this.margins = {
10475          left: parseInt(this.currentItem.css("marginLeft"), 10) || 0,
10476          top: parseInt(this.currentItem.css("marginTop"), 10) || 0,
10477        };
10478      },
10479      _cacheHelperProportions: function () {
10480        this.helperProportions = {
10481          width: this.helper.outerWidth(),
10482          height: this.helper.outerHeight(),
10483        };
10484      },
10485      _setContainment: function () {
10486        var t,
10487          i,
10488          s,
10489          n = this.options;
10490        "parent" === n.containment &&
10491          (n.containment = this.helper[0].parentNode),
10492          ("document" === n.containment || "window" === n.containment) &&
10493            (this.containment = [
10494              0 - this.offset.relative.left - this.offset.parent.left,
10495              0 - this.offset.relative.top - this.offset.parent.top,
10496              e("document" === n.containment ? document : window).width() -
10497                this.helperProportions.width -
10498                this.margins.left,
10499              (e("document" === n.containment ? document : window).height() ||
10500                document.body.parentNode.scrollHeight) -
10501                this.helperProportions.height -
10502                this.margins.top,
10503            ]),
10504          /^(document|window|parent)$/.test(n.containment) ||
10505            ((t = e(n.containment)[0]),
10506            (i = e(n.containment).offset()),
10507            (s = "hidden" !== e(t).css("overflow")),
10508            (this.containment = [
10509              i.left +
10510                (parseInt(e(t).css("borderLeftWidth"), 10) || 0) +
10511                (parseInt(e(t).css("paddingLeft"), 10) || 0) -
10512                this.margins.left,
10513              i.top +
10514                (parseInt(e(t).css("borderTopWidth"), 10) || 0) +
10515                (parseInt(e(t).css("paddingTop"), 10) || 0) -
10516                this.margins.top,
10517              i.left +
10518                (s ? Math.max(t.scrollWidth, t.offsetWidth) : t.offsetWidth) -
10519                (parseInt(e(t).css("borderLeftWidth"), 10) || 0) -
10520                (parseInt(e(t).css("paddingRight"), 10) || 0) -
10521                this.helperProportions.width -
10522                this.margins.left,
10523              i.top +
10524                (s
10525                  ? Math.max(t.scrollHeight, t.offsetHeight)
10526                  : t.offsetHeight) -
10527                (parseInt(e(t).css("borderTopWidth"), 10) || 0) -
10528                (parseInt(e(t).css("paddingBottom"), 10) || 0) -
10529                this.helperProportions.height -
10530                this.margins.top,
10531            ]));
10532      },
10533      _convertPositionTo: function (t, i) {
10534        i || (i = this.position);
10535        var s = "absolute" === t ? 1 : -1,
10536          n =
10537            "absolute" !== this.cssPosition ||
10538            (this.scrollParent[0] !== document &&
10539              e.contains(this.scrollParent[0], this.offsetParent[0]))
10540              ? this.scrollParent
10541              : this.offsetParent,
10542          a = /(html|body)/i.test(n[0].tagName);
10543        return {
10544          top:
10545            i.top +
10546            this.offset.relative.top * s +
10547            this.offset.parent.top * s -
10548            ("fixed" === this.cssPosition
10549              ? -this.scrollParent.scrollTop()
10550              : a
10551              ? 0
10552              : n.scrollTop()) *
10553              s,
10554          left:
10555            i.left +
10556            this.offset.relative.left * s +
10557            this.offset.parent.left * s -
10558            ("fixed" === this.cssPosition
10559              ? -this.scrollParent.scrollLeft()
10560              : a
10561              ? 0
10562              : n.scrollLeft()) *
10563              s,
10564        };
10565      },
10566      _generatePosition: function (t) {
10567        var i,
10568          s,
10569          n = this.options,
10570          a = t.pageX,
10571          o = t.pageY,
10572          r =
10573            "absolute" !== this.cssPosition ||
10574            (this.scrollParent[0] !== document &&
10575              e.contains(this.scrollParent[0], this.offsetParent[0]))
10576              ? this.scrollParent
10577              : this.offsetParent,
10578          h = /(html|body)/i.test(r[0].tagName);
10579        return (
10580          "relative" !== this.cssPosition ||
10581            (this.scrollParent[0] !== document &&
10582              this.scrollParent[0] !== this.offsetParent[0]) ||
10583            (this.offset.relative = this._getRelativeOffset()),
10584          this.originalPosition &&
10585            (this.containment &&
10586              (t.pageX - this.offset.click.left < this.containment[0] &&
10587                (a = this.containment[0] + this.offset.click.left),
10588              t.pageY - this.offset.click.top < this.containment[1] &&
10589                (o = this.containment[1] + this.offset.click.top),
10590              t.pageX - this.offset.click.left > this.containment[2] &&
10591                (a = this.containment[2] + this.offset.click.left),
10592              t.pageY - this.offset.click.top > this.containment[3] &&
10593                (o = this.containment[3] + this.offset.click.top)),
10594            n.grid &&
10595              ((i =
10596                this.originalPageY +
10597                Math.round((o - this.originalPageY) / n.grid[1]) * n.grid[1]),
10598              (o = this.containment
10599                ? i - this.offset.click.top >= this.containment[1] &&
10600                  i - this.offset.click.top <= this.containment[3]
10601                  ? i
10602                  : i - this.offset.click.top >= this.containment[1]
10603                  ? i - n.grid[1]
10604                  : i + n.grid[1]
10605                : i),
10606              (s =
10607                this.originalPageX +
10608                Math.round((a - this.originalPageX) / n.grid[0]) * n.grid[0]),
10609              (a = this.containment
10610                ? s - this.offset.click.left >= this.containment[0] &&
10611                  s - this.offset.click.left <= this.containment[2]
10612                  ? s
10613                  : s - this.offset.click.left >= this.containment[0]
10614                  ? s - n.grid[0]
10615                  : s + n.grid[0]
10616                : s))),
10617          {
10618            top:
10619              o -
10620              this.offset.click.top -
10621              this.offset.relative.top -
10622              this.offset.parent.top +
10623              ("fixed" === this.cssPosition
10624                ? -this.scrollParent.scrollTop()
10625                : h
10626                ? 0
10627                : r.scrollTop()),
10628            left:
10629              a -
10630              this.offset.click.left -
10631              this.offset.relative.left -
10632              this.offset.parent.left +
10633              ("fixed" === this.cssPosition
10634                ? -this.scrollParent.scrollLeft()
10635                : h
10636                ? 0
10637                : r.scrollLeft()),
10638          }
10639        );
10640      },
10641      _rearrange: function (e, t, i, s) {
10642        i
10643          ? i[0].appendChild(this.placeholder[0])
10644          : t.item[0].parentNode.insertBefore(
10645              this.placeholder[0],
10646              "down" === this.direction ? t.item[0] : t.item[0].nextSibling
10647            ),
10648          (this.counter = this.counter ? ++this.counter : 1);
10649        var n = this.counter;
10650        this._delay(function () {
10651          n === this.counter && this.refreshPositions(!s);
10652        });
10653      },
10654      _clear: function (e, t) {
10655        function i(e, t, i) {
10656          return function (s) {
10657            i._trigger(e, s, t._uiHash(t));
10658          };
10659        }
10660        this.reverting = !1;
10661        var s,
10662          n = [];
10663        if (
10664          (!this._noFinalSort &&
10665            this.currentItem.parent().length &&
10666            this.placeholder.before(this.currentItem),
10667          (this._noFinalSort = null),
10668          this.helper[0] === this.currentItem[0])
10669        ) {
10670          for (s in this._storedCSS)
10671            ("auto" === this._storedCSS[s] ||
10672              "static" === this._storedCSS[s]) &&
10673              (this._storedCSS[s] = "");
10674          this.currentItem
10675            .css(this._storedCSS)
10676            .removeClass("ui-sortable-helper");
10677        } else this.currentItem.show();
10678        for (
10679          this.fromOutside &&
10680            !t &&
10681            n.push(function (e) {
10682              this._trigger("receive", e, this._uiHash(this.fromOutside));
10683            }),
10684            (!this.fromOutside &&
10685              this.domPosition.prev ===
10686                this.currentItem.prev().not(".ui-sortable-helper")[0] &&
10687              this.domPosition.parent === this.currentItem.parent()[0]) ||
10688              t ||
10689              n.push(function (e) {
10690                this._trigger("update", e, this._uiHash());
10691              }),
10692            this !== this.currentContainer &&
10693              (t ||
10694                (n.push(function (e) {
10695                  this._trigger("remove", e, this._uiHash());
10696                }),
10697                n.push(
10698                  function (e) {
10699                    return function (t) {
10700                      e._trigger("receive", t, this._uiHash(this));
10701                    };
10702                  }.call(this, this.currentContainer)
10703                ),
10704                n.push(
10705                  function (e) {
10706                    return function (t) {
10707                      e._trigger("update", t, this._uiHash(this));
10708                    };
10709                  }.call(this, this.currentContainer)
10710                ))),
10711            s = this.containers.length - 1;
10712          s >= 0;
10713          s--
10714        )
10715          t || n.push(i("deactivate", this, this.containers[s])),
10716            this.containers[s].containerCache.over &&
10717              (n.push(i("out", this, this.containers[s])),
10718              (this.containers[s].containerCache.over = 0));
10719        if (
10720          (this.storedCursor &&
10721            (this.document.find("body").css("cursor", this.storedCursor),
10722            this.storedStylesheet.remove()),
10723          this._storedOpacity &&
10724            this.helper.css("opacity", this._storedOpacity),
10725          this._storedZIndex &&
10726            this.helper.css(
10727              "zIndex",
10728              "auto" === this._storedZIndex ? "" : this._storedZIndex
10729            ),
10730          (this.dragging = !1),
10731          this.cancelHelperRemoval)
10732        ) {
10733          if (!t) {
10734            for (
10735              this._trigger("beforeStop", e, this._uiHash()), s = 0;
10736              n.length > s;
10737              s++
10738            )
10739              n[s].call(this, e);
10740            this._trigger("stop", e, this._uiHash());
10741          }
10742          return (this.fromOutside = !1), !1;
10743        }
10744        if (
10745          (t || this._trigger("beforeStop", e, this._uiHash()),
10746          this.placeholder[0].parentNode.removeChild(this.placeholder[0]),
10747          this.helper[0] !== this.currentItem[0] && this.helper.remove(),
10748          (this.helper = null),
10749          !t)
10750        ) {
10751          for (s = 0; n.length > s; s++) n[s].call(this, e);
10752          this._trigger("stop", e, this._uiHash());
10753        }
10754        return (this.fromOutside = !1), !0;
10755      },
10756      _trigger: function () {
10757        e.Widget.prototype._trigger.apply(this, arguments) === !1 &&
10758          this.cancel();
10759      },
10760      _uiHash: function (t) {
10761        var i = t || this;
10762        return {
10763          helper: i.helper,
10764          placeholder: i.placeholder || e([]),
10765          position: i.position,
10766          originalPosition: i.originalPosition,
10767          offset: i.positionAbs,
10768          item: i.currentItem,
10769          sender: t ? t.element : null,
10770        };
10771      },
10772    }),
10773    e.widget("ui.spinner", {
10774      version: "1.11.0",
10775      defaultElement: "<input>",
10776      widgetEventPrefix: "spin",
10777      options: {
10778        culture: null,
10779        icons: { down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n" },
10780        incremental: !0,
10781        max: null,
10782        min: null,
10783        numberFormat: null,
10784        page: 10,
10785        step: 1,
10786        change: null,
10787        spin: null,
10788        start: null,
10789        stop: null,
10790      },
10791      _create: function () {
10792        this._setOption("max", this.options.max),
10793          this._setOption("min", this.options.min),
10794          this._setOption("step", this.options.step),
10795          "" !== this.value() && this._value(this.element.val(), !0),
10796          this._draw(),
10797          this._on(this._events),
10798          this._refresh(),
10799          this._on(this.window, {
10800            beforeunload: function () {
10801              this.element.removeAttr("autocomplete");
10802            },
10803          });
10804      },
10805      _getCreateOptions: function () {
10806        var t = {},
10807          i = this.element;
10808        return (
10809          e.each(["min", "max", "step"], function (e, s) {
10810            var n = i.attr(s);
10811            void 0 !== n && n.length && (t[s] = n);
10812          }),
10813          t
10814        );
10815      },
10816      _events: {
10817        keydown: function (e) {
10818          this._start(e) && this._keydown(e) && e.preventDefault();
10819        },
10820        keyup: "_stop",
10821        focus: function () {
10822          this.previous = this.element.val();
10823        },
10824        blur: function (e) {
10825          return this.cancelBlur
10826            ? (delete this.cancelBlur, void 0)
10827            : (this._stop(),
10828              this._refresh(),
10829              this.previous !== this.element.val() &&
10830                this._trigger("change", e),
10831              void 0);
10832        },
10833        mousewheel: function (e, t) {
10834          if (t) {
10835            if (!this.spinning && !this._start(e)) return !1;
10836            this._spin((t > 0 ? 1 : -1) * this.options.step, e),
10837              clearTimeout(this.mousewheelTimer),
10838              (this.mousewheelTimer = this._delay(function () {
10839                this.spinning && this._stop(e);
10840              }, 100)),
10841              e.preventDefault();
10842          }
10843        },
10844        "mousedown .ui-spinner-button": function (t) {
10845          function i() {
10846            var e = this.element[0] === this.document[0].activeElement;
10847            e ||
10848              (this.element.focus(),
10849              (this.previous = s),
10850              this._delay(function () {
10851                this.previous = s;
10852              }));
10853          }
10854          var s;
10855          (s =
10856            this.element[0] === this.document[0].activeElement
10857              ? this.previous
10858              : this.element.val()),
10859            t.preventDefault(),
10860            i.call(this),
10861            (this.cancelBlur = !0),
10862            this._delay(function () {
10863              delete this.cancelBlur, i.call(this);
10864            }),
10865            this._start(t) !== !1 &&
10866              this._repeat(
10867                null,
10868                e(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1,
10869                t
10870              );
10871        },
10872        "mouseup .ui-spinner-button": "_stop",
10873        "mouseenter .ui-spinner-button": function (t) {
10874          return e(t.currentTarget).hasClass("ui-state-active")
10875            ? this._start(t) === !1
10876              ? !1
10877              : (this._repeat(
10878                  null,
10879                  e(t.currentTarget).hasClass("ui-spinner-up") ? 1 : -1,
10880                  t
10881                ),
10882                void 0)
10883            : void 0;
10884        },
10885        "mouseleave .ui-spinner-button": "_stop",
10886      },
10887      _draw: function () {
10888        var e = (this.uiSpinner = this.element
10889          .addClass("ui-spinner-input")
10890          .attr("autocomplete", "off")
10891          .wrap(this._uiSpinnerHtml())
10892          .parent()
10893          .append(this._buttonHtml()));
10894        this.element.attr("role", "spinbutton"),
10895          (this.buttons = e
10896            .find(".ui-spinner-button")
10897            .attr("tabIndex", -1)
10898            .button()
10899            .removeClass("ui-corner-all")),
10900          this.buttons.height() > Math.ceil(0.5 * e.height()) &&
10901            e.height() > 0 &&
10902            e.height(e.height()),
10903          this.options.disabled && this.disable();
10904      },
10905      _keydown: function (t) {
10906        var i = this.options,
10907          s = e.ui.keyCode;
10908        switch (t.keyCode) {
10909          case s.UP:
10910            return this._repeat(null, 1, t), !0;
10911          case s.DOWN:
10912            return this._repeat(null, -1, t), !0;
10913          case s.PAGE_UP:
10914            return this._repeat(null, i.page, t), !0;
10915          case s.PAGE_DOWN:
10916            return this._repeat(null, -i.page, t), !0;
10917        }
10918        return !1;
10919      },
10920      _uiSpinnerHtml: function () {
10921        return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>";
10922      },
10923      _buttonHtml: function () {
10924        return (
10925          "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon " +
10926          this.options.icons.up +
10927          "'>&#9650;</span>" +
10928          "</a>" +
10929          "<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" +
10930          "<span class='ui-icon " +
10931          this.options.icons.down +
10932          "'>&#9660;</span>" +
10933          "</a>"
10934        );
10935      },
10936      _start: function (e) {
10937        return this.spinning || this._trigger("start", e) !== !1
10938          ? (this.counter || (this.counter = 1), (this.spinning = !0), !0)
10939          : !1;
10940      },
10941      _repeat: function (e, t, i) {
10942        (e = e || 500),
10943          clearTimeout(this.timer),
10944          (this.timer = this._delay(function () {
10945            this._repeat(40, t, i);
10946          }, e)),
10947          this._spin(t * this.options.step, i);
10948      },
10949      _spin: function (e, t) {
10950        var i = this.value() || 0;
10951        this.counter || (this.counter = 1),
10952          (i = this._adjustValue(i + e * this._increment(this.counter))),
10953          (this.spinning && this._trigger("spin", t, { value: i }) === !1) ||
10954            (this._value(i), this.counter++);
10955      },
10956      _increment: function (t) {
10957        var i = this.options.incremental;
10958        return i
10959          ? e.isFunction(i)
10960            ? i(t)
10961            : Math.floor((t * t * t) / 5e4 - (t * t) / 500 + (17 * t) / 200 + 1)
10962          : 1;
10963      },
10964      _precision: function () {
10965        var e = this._precisionOf(this.options.step);
10966        return (
10967          null !== this.options.min &&
10968            (e = Math.max(e, this._precisionOf(this.options.min))),
10969          e
10970        );
10971      },
10972      _precisionOf: function (e) {
10973        var t = "" + e,
10974          i = t.indexOf(".");
10975        return -1 === i ? 0 : t.length - i - 1;
10976      },
10977      _adjustValue: function (e) {
10978        var t,
10979          i,
10980          s = this.options;
10981        return (
10982          (t = null !== s.min ? s.min : 0),
10983          (i = e - t),
10984          (i = Math.round(i / s.step) * s.step),
10985          (e = t + i),
10986          (e = parseFloat(e.toFixed(this._precision()))),
10987          null !== s.max && e > s.max
10988            ? s.max
10989            : null !== s.min && s.min > e
10990            ? s.min
10991            : e
10992        );
10993      },
10994      _stop: function (e) {
10995        this.spinning &&
10996          (clearTimeout(this.timer),
10997          clearTimeout(this.mousewheelTimer),
10998          (this.counter = 0),
10999          (this.spinning = !1),
11000          this._trigger("stop", e));
11001      },
11002      _setOption: function (e, t) {
11003        if ("culture" === e || "numberFormat" === e) {
11004          var i = this._parse(this.element.val());
11005          return (
11006            (this.options[e] = t), this.element.val(this._format(i)), void 0
11007          );
11008        }
11009        ("max" === e || "min" === e || "step" === e) &&
11010          "string" == typeof t &&
11011          (t = this._parse(t)),
11012          "icons" === e &&
11013            (this.buttons
11014              .first()
11015              .find(".ui-icon")
11016              .removeClass(this.options.icons.up)
11017              .addClass(t.up),
11018            this.buttons
11019              .last()
11020              .find(".ui-icon")
11021              .removeClass(this.options.icons.down)
11022              .addClass(t.down)),
11023          this._super(e, t),
11024          "disabled" === e &&
11025            (this.widget().toggleClass("ui-state-disabled", !!t),
11026            this.element.prop("disabled", !!t),
11027            this.buttons.button(t ? "disable" : "enable"));
11028      },
11029      _setOptions: r(function (e) {
11030        this._super(e);
11031      }),
11032      _parse: function (e) {
11033        return (
11034          "string" == typeof e &&
11035            "" !== e &&
11036            (e =
11037              window.Globalize && this.options.numberFormat
11038                ? Globalize.parseFloat(e, 10, this.options.culture)
11039                : +e),
11040          "" === e || isNaN(e) ? null : e
11041        );
11042      },
11043      _format: function (e) {
11044        return "" === e
11045          ? ""
11046          : window.Globalize && this.options.numberFormat
11047          ? Globalize.format(e, this.options.numberFormat, this.options.culture)
11048          : e;
11049      },
11050      _refresh: function () {
11051        this.element.attr({
11052          "aria-valuemin": this.options.min,
11053          "aria-valuemax": this.options.max,
11054          "aria-valuenow": this._parse(this.element.val()),
11055        });
11056      },
11057      isValid: function () {
11058        var e = this.value();
11059        return null === e ? !1 : e === this._adjustValue(e);
11060      },
11061      _value: function (e, t) {
11062        var i;
11063        "" !== e &&
11064          ((i = this._parse(e)),
11065          null !== i &&
11066            (t || (i = this._adjustValue(i)), (e = this._format(i)))),
11067          this.element.val(e),
11068          this._refresh();
11069      },
11070      _destroy: function () {
11071        this.element
11072          .removeClass("ui-spinner-input")
11073          .prop("disabled", !1)
11074          .removeAttr("autocomplete")
11075          .removeAttr("role")
11076          .removeAttr("aria-valuemin")
11077          .removeAttr("aria-valuemax")
11078          .removeAttr("aria-valuenow"),
11079          this.uiSpinner.replaceWith(this.element);
11080      },
11081      stepUp: r(function (e) {
11082        this._stepUp(e);
11083      }),
11084      _stepUp: function (e) {
11085        this._start() &&
11086          (this._spin((e || 1) * this.options.step), this._stop());
11087      },
11088      stepDown: r(function (e) {
11089        this._stepDown(e);
11090      }),
11091      _stepDown: function (e) {
11092        this._start() &&
11093          (this._spin((e || 1) * -this.options.step), this._stop());
11094      },
11095      pageUp: r(function (e) {
11096        this._stepUp((e || 1) * this.options.page);
11097      }),
11098      pageDown: r(function (e) {
11099        this._stepDown((e || 1) * this.options.page);
11100      }),
11101      value: function (e) {
11102        return arguments.length
11103          ? (r(this._value).call(this, e), void 0)
11104          : this._parse(this.element.val());
11105      },
11106      widget: function () {
11107        return this.uiSpinner;
11108      },
11109    }),
11110    e.widget("ui.tabs", {
11111      version: "1.11.0",
11112      delay: 300,
11113      options: {
11114        active: null,
11115        collapsible: !1,
11116        event: "click",
11117        heightStyle: "content",
11118        hide: null,
11119        show: null,
11120        activate: null,
11121        beforeActivate: null,
11122        beforeLoad: null,
11123        load: null,
11124      },
11125      _isLocal: (function () {
11126        var e = /#.*$/;
11127        return function (t) {
11128          var i, s;
11129          (t = t.cloneNode(!1)),
11130            (i = t.href.replace(e, "")),
11131            (s = location.href.replace(e, ""));
11132          try {
11133            i = decodeURIComponent(i);
11134          } catch (n) {}
11135          try {
11136            s = decodeURIComponent(s);
11137          } catch (n) {}
11138          return t.hash.length > 1 && i === s;
11139        };
11140      })(),
11141      _create: function () {
11142        var t = this,
11143          i = this.options;
11144        (this.running = !1),
11145          this.element
11146            .addClass("ui-tabs ui-widget ui-widget-content ui-corner-all")
11147            .toggleClass("ui-tabs-collapsible", i.collapsible)
11148            .delegate(
11149              ".ui-tabs-nav > li",
11150              "mousedown" + this.eventNamespace,
11151              function (t) {
11152                e(this).is(".ui-state-disabled") && t.preventDefault();
11153              }
11154            )
11155            .delegate(
11156              ".ui-tabs-anchor",
11157              "focus" + this.eventNamespace,
11158              function () {
11159                e(this).closest("li").is(".ui-state-disabled") && this.blur();
11160              }
11161            ),
11162          this._processTabs(),
11163          (i.active = this._initialActive()),
11164          e.isArray(i.disabled) &&
11165            (i.disabled = e
11166              .unique(
11167                i.disabled.concat(
11168                  e.map(this.tabs.filter(".ui-state-disabled"), function (e) {
11169                    return t.tabs.index(e);
11170                  })
11171                )
11172              )
11173              .sort()),
11174          (this.active =
11175            this.options.active !== !1 && this.anchors.length
11176              ? this._findActive(i.active)
11177              : e()),
11178          this._refresh(),
11179          this.active.length && this.load(i.active);
11180      },
11181      _initialActive: function () {
11182        var t = this.options.active,
11183          i = this.options.collapsible,
11184          s = location.hash.substring(1);
11185        return (
11186          null === t &&
11187            (s &&
11188              this.tabs.each(function (i, n) {
11189                return e(n).attr("aria-controls") === s
11190                  ? ((t = i), !1)
11191                  : void 0;
11192              }),
11193            null === t &&
11194              (t = this.tabs.index(this.tabs.filter(".ui-tabs-active"))),
11195            (null === t || -1 === t) && (t = this.tabs.length ? 0 : !1)),
11196          t !== !1 &&
11197            ((t = this.tabs.index(this.tabs.eq(t))),
11198            -1 === t && (t = i ? !1 : 0)),
11199          !i && t === !1 && this.anchors.length && (t = 0),
11200          t
11201        );
11202      },
11203      _getCreateEventData: function () {
11204        return {
11205          tab: this.active,
11206          panel: this.active.length ? this._getPanelForTab(this.active) : e(),
11207        };
11208      },
11209      _tabKeydown: function (t) {
11210        var i = e(this.document[0].activeElement).closest("li"),
11211          s = this.tabs.index(i),
11212          n = !0;
11213        if (!this._handlePageNav(t)) {
11214          switch (t.keyCode) {
11215            case e.ui.keyCode.RIGHT:
11216            case e.ui.keyCode.DOWN:
11217              s++;
11218              break;
11219            case e.ui.keyCode.UP:
11220            case e.ui.keyCode.LEFT:
11221              (n = !1), s--;
11222              break;
11223            case e.ui.keyCode.END:
11224              s = this.anchors.length - 1;
11225              break;
11226            case e.ui.keyCode.HOME:
11227              s = 0;
11228              break;
11229            case e.ui.keyCode.SPACE:
11230              return (
11231                t.preventDefault(),
11232                clearTimeout(this.activating),
11233                this._activate(s),
11234                void 0
11235              );
11236            case e.ui.keyCode.ENTER:
11237              return (
11238                t.preventDefault(),
11239                clearTimeout(this.activating),
11240                this._activate(s === this.options.active ? !1 : s),
11241                void 0
11242              );
11243            default:
11244              return;
11245          }
11246          t.preventDefault(),
11247            clearTimeout(this.activating),
11248            (s = this._focusNextTab(s, n)),
11249            t.ctrlKey ||
11250              (i.attr("aria-selected", "false"),
11251              this.tabs.eq(s).attr("aria-selected", "true"),
11252              (this.activating = this._delay(function () {
11253                this.option("active", s);
11254              }, this.delay)));
11255        }
11256      },
11257      _panelKeydown: function (t) {
11258        this._handlePageNav(t) ||
11259          (t.ctrlKey &&
11260            t.keyCode === e.ui.keyCode.UP &&
11261            (t.preventDefault(), this.active.focus()));
11262      },
11263      _handlePageNav: function (t) {
11264        return t.altKey && t.keyCode === e.ui.keyCode.PAGE_UP
11265          ? (this._activate(this._focusNextTab(this.options.active - 1, !1)),
11266            !0)
11267          : t.altKey && t.keyCode === e.ui.keyCode.PAGE_DOWN
11268          ? (this._activate(this._focusNextTab(this.options.active + 1, !0)),
11269            !0)
11270          : void 0;
11271      },
11272      _findNextTab: function (t, i) {
11273        function s() {
11274          return t > n && (t = 0), 0 > t && (t = n), t;
11275        }
11276        for (
11277          var n = this.tabs.length - 1;
11278          -1 !== e.inArray(s(), this.options.disabled);
11279
11280        )
11281          t = i ? t + 1 : t - 1;
11282        return t;
11283      },
11284      _focusNextTab: function (e, t) {
11285        return (e = this._findNextTab(e, t)), this.tabs.eq(e).focus(), e;
11286      },
11287      _setOption: function (e, t) {
11288        return "active" === e
11289          ? (this._activate(t), void 0)
11290          : "disabled" === e
11291          ? (this._setupDisabled(t), void 0)
11292          : (this._super(e, t),
11293            "collapsible" === e &&
11294              (this.element.toggleClass("ui-tabs-collapsible", t),
11295              t || this.options.active !== !1 || this._activate(0)),
11296            "event" === e && this._setupEvents(t),
11297            "heightStyle" === e && this._setupHeightStyle(t),
11298            void 0);
11299      },
11300      _sanitizeSelector: function (e) {
11301        return e
11302          ? e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&")
11303          : "";
11304      },
11305      refresh: function () {
11306        var t = this.options,
11307          i = this.tablist.children(":has(a[href])");
11308        (t.disabled = e.map(i.filter(".ui-state-disabled"), function (e) {
11309          return i.index(e);
11310        })),
11311          this._processTabs(),
11312          t.active !== !1 && this.anchors.length
11313            ? this.active.length && !e.contains(this.tablist[0], this.active[0])
11314              ? thi
11314s.tabs.length === t.disabled.length
11315                ? ((t.active = !1), (this.active = e()))
11316                : this._activate(
11317                    this._findNextTab(Math.max(0, t.active - 1), !1)
11318                  )
11319              : (t.active = this.tabs.index(this.active))
11320            : ((t.active = !1), (this.active = e())),
11321          this._refresh();
11322      },
11323      _refresh: function () {
11324        this._setupDisabled(this.options.disabled),
11325          this._setupEvents(this.options.event),
11326          this._setupHeightStyle(this.options.heightStyle),
11327          this.tabs.not(this.active).attr({
11328            "aria-selected": "false",
11329            "aria-expanded": "false",
11330            tabIndex: -1,
11331          }),
11332          this.panels
11333            .not(this._getPanelForTab(this.active))
11334            .hide()
11335            .attr({ "aria-hidden": "true" }),
11336          this.active.length
11337            ? (this.active.addClass("ui-tabs-active ui-state-active").attr({
11338                "aria-selected": "true",
11339                "aria-expanded": "true",
11340                tabIndex: 0,
11341              }),
11342              this._getPanelForTab(this.active)
11343                .show()
11344                .attr({ "aria-hidden": "false" }))
11345            : this.tabs.eq(0).attr("tabIndex", 0);
11346      },
11347      _processTabs: function () {
11348        var t = this;
11349        (this.tablist = this._getList()
11350          .addClass(
11351            "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"
11352          )
11353          .attr("role", "tablist")),
11354          (this.tabs = this.tablist
11355            .find("> li:has(a[href])")
11356            .addClass("ui-state-default ui-corner-top")
11357            .attr({ role: "tab", tabIndex: -1 })),
11358          (this.anchors = this.tabs
11359            .map(function () {
11360              return e("a", this)[0];
11361            })
11362            .addClass("ui-tabs-anchor")
11363            .attr({ role: "presentation", tabIndex: -1 })),
11364          (this.panels = e()),
11365          this.anchors.each(function (i, s) {
11366            var n,
11367              a,
11368              o,
11369              r = e(s).uniqueId().attr("id"),
11370              h = e(s).closest("li"),
11371              l = h.attr("aria-controls");
11372            t._isLocal(s)
11373              ? ((n = s.hash),
11374                (o = n.substring(1)),
11375                (a = t.element.find(t._sanitizeSelector(n))))
11376              : ((o = h.attr("aria-controls") || e({}).uniqueId()[0].id),
11377                (n = "#" + o),
11378                (a = t.element.find(n)),
11379                a.length ||
11380                  ((a = t._createPanel(o)),
11381                  a.insertAfter(t.panels[i - 1] || t.tablist)),
11382                a.attr("aria-live", "polite")),
11383              a.length && (t.panels = t.panels.add(a)),
11384              l && h.data("ui-tabs-aria-controls", l),
11385              h.attr({ "aria-controls": o, "aria-labelledby": r }),
11386              a.attr("aria-labelledby", r);
11387          }),
11388          this.panels
11389            .addClass("ui-tabs-panel ui-widget-content ui-corner-bottom")
11390            .attr("role", "tabpanel");
11391      },
11392      _getList: function () {
11393        return this.tablist || this.element.find("ol,ul").eq(0);
11394      },
11395      _createPanel: function (t) {
11396        return e("<div>")
11397          .attr("id", t)
11398          .addClass("ui-tabs-panel ui-widget-content ui-corner-bottom")
11399          .data("ui-tabs-destroy", !0);
11400      },
11401      _setupDisabled: function (t) {
11402        e.isArray(t) &&
11403          (t.length ? t.length === this.anchors.length && (t = !0) : (t = !1));
11404        for (var i, s = 0; (i = this.tabs[s]); s++)
11405          t === !0 || -1 !== e.inArray(s, t)
11406            ? e(i).addClass("ui-state-disabled").attr("aria-disabled", "true")
11407            : e(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");
11408        this.options.disabled = t;
11409      },
11410      _setupEvents: function (t) {
11411        var i = {};
11412        t &&
11413          e.each(t.split(" "), function (e, t) {
11414            i[t] = "_eventHandler";
11415          }),
11416          this._off(this.anchors.add(this.tabs).add(this.panels)),
11417          this._on(!0, this.anchors, {
11418            click: function (e) {
11419              e.preventDefault();
11420            },
11421          }),
11422          this._on(this.anchors, i),
11423          this._on(this.tabs, { keydown: "_tabKeydown" }),
11424          this._on(this.panels, { keydown: "_panelKeydown" }),
11425          this._focusable(this.tabs),
11426          this._hoverable(this.tabs);
11427      },
11428      _setupHeightStyle: function (t) {
11429        var i,
11430          s = this.element.parent();
11431        "fill" === t
11432          ? ((i = s.height()),
11433            (i -= this.element.outerHeight() - this.element.height()),
11434            this.element.siblings(":visible").each(function () {
11435              var t = e(this),
11436                s = t.css("position");
11437              "absolute" !== s && "fixed" !== s && (i -= t.outerHeight(!0));
11438            }),
11439            this.element
11440              .children()
11441              .not(this.panels)
11442              .each(function () {
11443                i -= e(this).outerHeight(!0);
11444              }),
11445            this.panels
11446              .each(function () {
11447                e(this).height(
11448                  Math.max(0, i - e(this).innerHeight() + e(this).height())
11449                );
11450              })
11451              .css("overflow", "auto"))
11452          : "auto" === t &&
11453            ((i = 0),
11454            this.panels
11455              .each(function () {
11456                i = Math.max(i, e(this).height("").height());
11457              })
11458              .height(i));
11459      },
11460      _eventHandler: function (t) {
11461        var i = this.options,
11462          s = this.active,
11463          n = e(t.currentTarget),
11464          a = n.closest("li"),
11465          o = a[0] === s[0],
11466          r = o && i.collapsible,
11467          h = r ? e() : this._getPanelForTab(a),
11468          l = s.length ? this._getPanelForTab(s) : e(),
11469          u = { oldTab: s, oldPanel: l, newTab: r ? e() : a, newPanel: h };
11470        t.preventDefault(),
11471          a.hasClass("ui-state-disabled") ||
11472            a.hasClass("ui-tabs-loading") ||
11473            this.running ||
11474            (o && !i.collapsible) ||
11475            this._trigger("beforeActivate", t, u) === !1 ||
11476            ((i.active = r ? !1 : this.tabs.index(a)),
11477            (this.active = o ? e() : a),
11478            this.xhr && this.xhr.abort(),
11479            l.length ||
11480              h.length ||
11481              e.error("jQuery UI Tabs: Mismatching fragment identifier."),
11482            h.length && this.load(this.tabs.index(a), t),
11483            this._toggle(t, u));
11484      },
11485      _toggle: function (t, i) {
11486        function s() {
11487          (a.running = !1), a._trigger("activate", t, i);
11488        }
11489        function n() {
11490          i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),
11491            o.length && a.options.show
11492              ? a._show(o, a.options.show, s)
11493              : (o.show(), s());
11494        }
11495        var a = this,
11496          o = i.newPanel,
11497          r = i.oldPanel;
11498        (this.running = !0),
11499          r.length && this.options.hide
11500            ? this._hide(r, this.options.hide, function () {
11501                i.oldTab
11502                  .closest("li")
11503                  .removeClass("ui-tabs-active ui-state-active"),
11504                  n();
11505              })
11506            : (i.oldTab
11507                .closest("li")
11508                .removeClass("ui-tabs-active ui-state-active"),
11509              r.hide(),
11510              n()),
11511          r.attr("aria-hidden", "true"),
11512          i.oldTab.attr({ "aria-selected": "false", "aria-expanded": "false" }),
11513          o.length && r.length
11514            ? i.oldTab.attr("tabIndex", -1)
11515            : o.length &&
11516              this.tabs
11517                .filter(function () {
11518                  return 0 === e(this).attr("tabIndex");
11519                })
11520                .attr("tabIndex", -1),
11521          o.attr("aria-hidden", "false"),
11522          i.newTab.attr({
11523            "aria-selected": "true",
11524            "aria-expanded": "true",
11525            tabIndex: 0,
11526          });
11527      },
11528      _activate: function (t) {
11529        var i,
11530          s = this._findActive(t);
11531        s[0] !== this.active[0] &&
11532          (s.length || (s = this.active),
11533          (i = s.find(".ui-tabs-anchor")[0]),
11534          this._eventHandler({
11535            target: i,
11536            currentTarget: i,
11537            preventDefault: e.noop,
11538          }));
11539      },
11540      _findActive: function (t) {
11541        return t === !1 ? e() : this.tabs.eq(t);
11542      },
11543      _getIndex: function (e) {
11544        return (
11545          "string" == typeof e &&
11546            (e = this.anchors.index(
11547              this.anchors.filter("[href$='" + e + "']")
11548            )),
11549          e
11550        );
11551      },
11552      _destroy: function () {
11553        this.xhr && this.xhr.abort(),
11554          this.element.removeClass(
11555            "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"
11556          ),
11557          this.tablist
11558            .removeClass(
11559              "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"
11560            )
11561            .removeAttr("role"),
11562          this.anchors
11563            .removeClass("ui-tabs-anchor")
11564            .removeAttr("role")
11565            .removeAttr("tabIndex")
11566            .removeUniqueId(),
11567          this.tabs.add(this.panels).each(function () {
11568            e.data(this, "ui-tabs-destroy")
11569              ? e(this).remove()
11570              : e(this)
11571                  .removeClass(
11572                    "ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel"
11573                  )
11574                  .removeAttr("tabIndex")
11575                  .removeAttr("aria-live")
11576                  .removeAttr("aria-busy")
11577                  .removeAttr("aria-selected")
11578                  .removeAttr("aria-labelledby")
11579                  .removeAttr("aria-hidden")
11580                  .removeAttr("aria-expanded")
11581                  .removeAttr("role");
11582          }),
11583          this.tabs.each(function () {
11584            var t = e(this),
11585              i = t.data("ui-tabs-aria-controls");
11586            i
11587              ? t.attr("aria-controls", i).removeData("ui-tabs-aria-controls")
11588              : t.removeAttr("aria-controls");
11589          }),
11590          this.panels.show(),
11591          "content" !== this.options.heightStyle &&
11592            this.panels.css("height", "");
11593      },
11594      enable: function (t) {
11595        var i = this.options.disabled;
11596        i !== !1 &&
11597          (void 0 === t
11598            ? (i = !1)
11599            : ((t = this._getIndex(t)),
11600              (i = e.isArray(i)
11601                ? e.map(i, function (e) {
11602                    return e !== t ? e : null;
11603                  })
11604                : e.map(this.tabs, function (e, i) {
11605                    return i !== t ? i : null;
11606                  }))),
11607          this._setupDisabled(i));
11608      },
11609      disable: function (t) {
11610        var i = this.options.disabled;
11611        if (i !== !0) {
11612          if (void 0 === t) i = !0;
11613          else {
11614            if (((t = this._getIndex(t)), -1 !== e.inArray(t, i))) return;
11615            i = e.isArray(i) ? e.merge([t], i).sort() : [t];
11616          }
11617          this._setupDisabled(i);
11618        }
11619      },
11620      load: function (t, i) {
11621        t = this._getIndex(t);
11622        var s = this,
11623          n = this.tabs.eq(t),
11624          a = n.find(".ui-tabs-anchor"),
11625          o = this._getPanelForTab(n),
11626          r = { tab: n, panel: o };
11627        this._isLocal(a[0]) ||
11628          ((this.xhr = e.ajax(this._ajaxSettings(a, i, r))),
11629          this.xhr &&
11630            "canceled" !== this.xhr.statusText &&
11631            (n.addClass("ui-tabs-loading"),
11632            o.attr("aria-busy", "true"),
11633            this.xhr
11634              .success(function (e) {
11635                setTimeout(function () {
11636                  o.html(e), s._trigger("load", i, r);
11637                }, 1);
11638              })
11639              .complete(function (e, t) {
11640                setTimeout(function () {
11641                  "abort" === t && s.panels.stop(!1, !0),
11642                    n.removeClass("ui-tabs-loading"),
11643                    o.removeAttr("aria-busy"),
11644                    e === s.xhr && delete s.xhr;
11645                }, 1);
11646              })));
11647      },
11648      _ajaxSettings: function (t, i, s) {
11649        var n = this;
11650        return {
11651          url: t.attr("href"),
11652          beforeSend: function (t, a) {
11653            return n._trigger(
11654              "beforeLoad",
11655              i,
11656              e.extend({ jqXHR: t, ajaxSettings: a }, s)
11657            );
11658          },
11659        };
11660      },
11661      _getPanelForTab: function (t) {
11662        var i = e(t).attr("aria-controls");
11663        return this.element.find(this._sanitizeSelector("#" + i));
11664      },
11665    }),
11666    e.widget("ui.tooltip", {
11667      version: "1.11.0",
11668      options: {
11669        content: function () {
11670          var t = e(this).attr("title") || "";
11671          return e("<a>").text(t).html();
11672        },
11673        hide: !0,
11674        items: "[title]:not([disabled])",
11675        position: {
11676          my: "left top+15",
11677          at: "left bottom",
11678          collision: "flipfit flip",
11679        },
11680        show: !0,
11681        tooltipClass: null,
11682        track: !1,
11683        close: null,
11684        open: null,
11685      },
11686      _addDescribedBy: function (t, i) {
11687        var s = (t.attr("aria-describedby") || "").split(/\s+/);
11688        s.push(i),
11689          t
11690            .data("ui-tooltip-id", i)
11691            .attr("aria-describedby", e.trim(s.join(" ")));
11692      },
11693      _removeDescribedBy: function (t) {
11694        var i = t.data("ui-tooltip-id"),
11695          s = (t.attr("aria-describedby") || "").split(/\s+/),
11696          n = e.inArray(i, s);
11697        -1 !== n && s.splice(n, 1),
11698          t.removeData("ui-tooltip-id"),
11699          (s = e.trim(s.join(" "))),
11700          s ? t.attr("aria-describedby", s) : t.removeAttr("aria-describedby");
11701      },
11702      _create: function () {
11703        this._on({ mouseover: "open", focusin: "open" }),
11704          (this.tooltips = {}),
11705          (this.parents = {}),
11706          this.options.disabled && this._disable(),
11707          (this.liveRegion = e("<div>")
11708            .attr({
11709              role: "log",
11710              "aria-live": "assertive",
11711              "aria-relevant": "additions",
11712            })
11713            .addClass("ui-helper-hidden-accessible")
11714            .appendTo(this.document[0].body));
11715      },
11716      _setOption: function (t, i) {
11717        var s = this;
11718        return "disabled" === t
11719          ? (this[i ? "_disable" : "_enable"](), (this.options[t] = i), void 0)
11720          : (this._super(t, i),
11721            "content" === t &&
11722              e.each(this.tooltips, function (e, t) {
11723                s._updateContent(t);
11724              }),
11725            void 0);
11726      },
11727      _disable: function () {
11728        var t = this;
11729        e.each(this.tooltips, function (i, s) {
11730          var n = e.Event("blur");
11731          (n.target = n.currentTarget = s[0]), t.close(n, !0);
11732        }),
11733          this.element
11734            .find(this.options.items)
11735            .addBack()
11736            .each(function () {
11737              var t = e(this);
11738              t.is("[title]") &&
11739                t.data("ui-tooltip-title", t.attr("title")).removeAttr("title");
11740            });
11741      },
11742      _enable: function () {
11743        this.element
11744          .find(this.options.items)
11745          .addBack()
11746          .each(function () {
11747            var t = e(this);
11748            t.data("ui-tooltip-title") &&
11749              t.attr("title", t.data("ui-tooltip-title"));
11750          });
11751      },
11752      open: function (t) {
11753        var i = this,
11754          s = e(t ? t.target : this.element).closest(this.options.items);
11755        s.length &&
11756          !s.data("ui-tooltip-id") &&
11757          (s.attr("title") && s.data("ui-tooltip-title", s.attr("title")),
11758          s.data("ui-tooltip-open", !0),
11759          t &&
11760            "mouseover" === t.type &&
11761            s.parents().each(function () {
11762              var t,
11763                s = e(this);
11764              s.data("ui-tooltip-open") &&
11765                ((t = e.Event("blur")),
11766                (t.target = t.currentTarget = this),
11767                i.close(t, !0)),
11768                s.attr("title") &&
11769                  (s.uniqueId(),
11770                  (i.parents[this.id] = {
11771                    element: this,
11772                    title: s.attr("title"),
11773                  }),
11774                  s.attr("title", ""));
11775            }),
11776          this._updateContent(s, t));
11777      },
11778      _updateContent: function (e, t) {
11779        var i,
11780          s = this.options.content,
11781          n = this,
11782          a = t ? t.type : null;
11783        return "string" == typeof s
11784          ? this._open(t, e, s)
11785          : ((i = s.call(e[0], function (i) {
11786              e.data("ui-tooltip-open") &&
11787                n._delay(function () {
11788                  t && (t.type = a), this._open(t, e, i);
11789                });
11790            })),
11791            i && this._open(t, e, i),
11792            void 0);
11793      },
11794      _open: function (t, i, s) {
11795        function n(e) {
11796          (l.of = e), a.is(":hidden") || a.position(l);
11797        }
11798        var a,
11799          o,
11800          r,
11801          h,
11802          l = e.extend({}, this.options.position);
11803        if (s) {
11804          if (((a = this._find(i)), a.length))
11805            return a.find(".ui-tooltip-content").html(s), void 0;
11806          i.is("[title]") &&
11807            (t && "mouseover" === t.type
11808              ? i.attr("title", "")
11809              : i.removeAttr("title")),
11810            (a = this._tooltip(i)),
11811            this._addDescribedBy(i, a.attr("id")),
11812            a.find(".ui-tooltip-content").html(s),
11813            this.liveRegion.children().hide(),
11814            s.clone
11815              ? ((h = s.clone()),
11816                h.removeAttr("id").find("[id]").removeAttr("id"))
11817              : (h = s),
11818            e("<div>").html(h).appendTo(this.liveRegion),
11819            this.options.track && t && /^mouse/.test(t.type)
11820              ? (this._on(this.document, { mousemove: n }), n(t))
11821              : a.position(e.extend({ of: i }, this.options.position)),
11822            a.hide(),
11823            this._show(a, this.options.show),
11824            this.options.show &&
11825              this.options.show.delay &&
11826              (r = this.delayedShow =
11827                setInterval(function () {
11828                  a.is(":visible") && (n(l.of), clearInterval(r));
11829                }, e.fx.interval)),
11830            this._trigger("open", t, { tooltip: a }),
11831            (o = {
11832              keyup: function (t) {
11833                if (t.keyCode === e.ui.keyCode.ESCAPE) {
11834                  var s = e.Event(t);
11835                  (s.currentTarget = i[0]), this.close(s, !0);
11836                }
11837              },
11838            }),
11839            i[0] !== this.element[0] &&
11840              (o.remove = function () {
11841                this._removeTooltip(a);
11842              }),
11843            (t && "mouseover" !== t.type) || (o.mouseleave = "close"),
11844            (t && "focusin" !== t.type) || (o.focusout = "close"),
11845            this._on(!0, i, o);
11846        }
11847      },
11848      close: function (t) {
11849        var i = this,
11850          s = e(t ? t.currentTarget : this.element),
11851          n = this._find(s);
11852        this.closing ||
11853          (clearInterval(this.delayedShow),
11854          s.data("ui-tooltip-title") &&
11855            !s.attr("title") &&
11856            s.attr("title", s.data("ui-tooltip-title")),
11857          this._removeDescribedBy(s),
11858          n.stop(!0),
11859          this._hide(n, this.options.hide, function () {
11860            i._removeTooltip(e(this));
11861          }),
11862          s.removeData("ui-tooltip-open"),
11863          this._off(s, "mouseleave focusout keyup"),
11864          s[0] !== this.element[0] && this._off(s, "remove"),
11865          this._off(this.document, "mousemove"),
11866          t &&
11867            "mouseleave" === t.type &&
11868            e.each(this.parents, function (t, s) {
11869              e(s.element).attr("title", s.title), delete i.parents[t];
11870            }),
11871          (this.closing = !0),
11872          this._trigger("close", t, { tooltip: n }),
11873          (this.closing = !1));
11874      },
11875      _tooltip: function (t) {
11876        var i = e("<div>")
11877            .attr("role", "tooltip")
11878            .addClass(
11879              "ui-tooltip ui-widget ui-corner-all ui-widget-content " +
11880                (this.options.tooltipClass || "")
11881            ),
11882          s = i.uniqueId().attr("id");
11883        return (
11884          e("<div>").addClass("ui-tooltip-content").appendTo(i),
11885          i.appendTo(this.document[0].body),
11886          (this.tooltips[s] = t),
11887          i
11888        );
11889      },
11890      _find: function (t) {
11891        var i = t.data("ui-tooltip-id");
11892        return i ? e("#" + i) : e();
11893      },
11894      _removeTooltip: function (e) {
11895        e.remove(), delete this.tooltips[e.attr("id")];
11896      },
11897      _destroy: function () {
11898        var t = this;
11899        e.each(this.tooltips, function (i, s) {
11900          var n = e.Event("blur");
11901          (n.target = n.currentTarget = s[0]),
11902            t.close(n, !0),
11903            e("#" + i).remove(),
11904            s.data("ui-tooltip-title") &&
11905              (s.attr("title") || s.attr("title", s.data("ui-tooltip-title")),
11906              s.removeData("ui-tooltip-title"));
11907        }),
11908          this.liveRegion.remove();
11909      },
11910    });
11911});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.